|
@@ -132,6 +132,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
|