aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/ftrace-entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/kernel/ftrace-entry.S')
-rw-r--r--arch/blackfin/kernel/ftrace-entry.S12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/blackfin/kernel/ftrace-entry.S b/arch/blackfin/kernel/ftrace-entry.S
index db3a51b0af21..d66446b572c0 100644
--- a/arch/blackfin/kernel/ftrace-entry.S
+++ b/arch/blackfin/kernel/ftrace-entry.S
@@ -115,9 +115,12 @@ ENTRY(_ftrace_graph_caller)
115 [--sp] = r1; 115 [--sp] = r1;
116 [--sp] = rets; 116 [--sp] = rets;
117 117
118 /* prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) */ 118 /* prepare_ftrace_return(parent, self_addr, frame_pointer) */
119 r0 = sp; 119 r0 = sp; /* unsigned long *parent */
120 r1 = rets; 120 r1 = rets; /* unsigned long self_addr */
121#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
122 r2 = fp; /* unsigned long frame_pointer */
123#endif
121 r0 += 16; /* skip the 4 local regs on stack */ 124 r0 += 16; /* skip the 4 local regs on stack */
122 r1 += -MCOUNT_INSN_SIZE; 125 r1 += -MCOUNT_INSN_SIZE;
123 call _prepare_ftrace_return; 126 call _prepare_ftrace_return;
@@ -136,6 +139,9 @@ ENTRY(_return_to_handler)
136 [--sp] = r1; 139 [--sp] = r1;
137 140
138 /* get original return address */ 141 /* get original return address */
142#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
143 r0 = fp; /* Blackfin is sane, so omit this */
144#endif
139 call _ftrace_return_to_handler; 145 call _ftrace_return_to_handler;
140 rets = r0; 146 rets = r0;
141 147