Commit c1340c05 authored by Matt Fleming's avatar Matt Fleming Committed by Paul Mundt

sh: Define HAVE_FUNCTION_TRACE_MCOUNT_TEST

Enable HAVE_FUNCTION_TRACE_MCOUNT_TEST and test the value of
function_trace_stop from our assembly code as opposed to using the
generic C function. This should optimise our mcount/ftrace code path.
Signed-off-by: default avatarMatt Fleming <matt@console-pimps.org>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent ca0d1727
...@@ -31,6 +31,7 @@ config SUPERH32 ...@@ -31,6 +31,7 @@ config SUPERH32
select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_TRACER
select HAVE_FTRACE_MCOUNT_RECORD select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_DYNAMIC_FTRACE select HAVE_DYNAMIC_FTRACE
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_ARCH_KGDB select HAVE_ARCH_KGDB
select ARCH_HIBERNATION_POSSIBLE if MMU select ARCH_HIBERNATION_POSSIBLE if MMU
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* arch/sh/lib/mcount.S * arch/sh/lib/mcount.S
* *
* Copyright (C) 2008 Paul Mundt * Copyright (C) 2008 Paul Mundt
* Copyright (C) 2008 Matt Fleming * Copyright (C) 2008, 2009 Matt Fleming
* *
* This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive * License. See the file "COPYING" in the main directory of this archive
...@@ -35,6 +35,12 @@ ...@@ -35,6 +35,12 @@
.type mcount,@function .type mcount,@function
_mcount: _mcount:
mcount: mcount:
#ifndef CONFIG_DYNAMIC_FTRACE
mov.l .Lfunction_trace_stop, r0
mov.l @r0, r0
tst r0, r0
bf ftrace_stub
#endif
MCOUNT_ENTER() MCOUNT_ENTER()
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
...@@ -62,6 +68,11 @@ skip_trace: ...@@ -62,6 +68,11 @@ skip_trace:
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
.globl ftrace_caller .globl ftrace_caller
ftrace_caller: ftrace_caller:
mov.l .Lfunction_trace_stop, r0
mov.l @r0, r0
tst r0, r0
bf ftrace_stub
MCOUNT_ENTER() MCOUNT_ENTER()
.globl ftrace_call .globl ftrace_call
...@@ -88,3 +99,7 @@ ftrace_call: ...@@ -88,3 +99,7 @@ ftrace_call:
ftrace_stub: ftrace_stub:
rts rts
nop nop
.align 2
.Lfunction_trace_stop:
.long function_trace_stop
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment