diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-08-15 17:51:48 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-08-15 17:51:48 +0200 |
commit | 9b2616c2e8cc98ca98bbb40cad83a8d3d859e840 (patch) | |
tree | 5a971fa57298d58529d3ae82b68cbfc7139bde7b /arch/arm/kernel/entry-common.S | |
parent | Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into dev... (diff) | |
parent | [ARM] let arch/arm/Kconfig source drivers/Kconfig (diff) | |
download | linux-9b2616c2e8cc98ca98bbb40cad83a8d3d859e840.tar.xz linux-9b2616c2e8cc98ca98bbb40cad83a8d3d859e840.zip |
Merge branch 'for-rmk-2.6.32' of git://git.pengutronix.de/git/ukl/linux-2.6 into devel-stable
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index a0540c9f1f0c..df19e8bf2e4a 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -118,6 +118,25 @@ ftrace_call: #else +ENTRY(__gnu_mcount_nc) + stmdb sp!, {r0-r3, lr} + ldr r0, =ftrace_trace_function + ldr r2, [r0] + adr r0, ftrace_stub + cmp r0, r2 + bne gnu_trace + ldmia sp!, {r0-r3, ip, lr} + bx ip + +gnu_trace: + ldr r1, [sp, #20] @ lr of instrumented routine + mov r0, lr + sub r0, r0, #MCOUNT_INSN_SIZE + mov lr, pc + mov pc, r2 + ldmia sp!, {r0-r3, ip, lr} + bx ip + ENTRY(mcount) stmdb sp!, {r0-r3, lr} ldr r0, =ftrace_trace_function |