Commit 249af81 1 parent b23b63c commit 249af81 Copy full SHA for 249af81
File tree 1 file changed +20
-2
lines changed
1 file changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -178,6 +178,24 @@ ENTRY(ftrace_stub)
178
178
ENDPROC(ftrace_stub)
179
179
180
180
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
181
+ /* save return value regs*/
182
+ .macro save_return_regs
183
+ sub sp, sp, #64
184
+ stp x0, x1, [sp]
185
+ stp x2, x3, [sp, #16]
186
+ stp x4, x5, [sp, #32]
187
+ stp x6, x7, [sp, #48]
188
+ .endm
189
+
190
+ /* restore return value regs*/
191
+ .macro restore_return_regs
192
+ ldp x0, x1, [sp]
193
+ ldp x2, x3, [sp, #16]
194
+ ldp x4, x5, [sp, #32]
195
+ ldp x6, x7, [sp, #48]
196
+ add sp, sp, #64
197
+ .endm
198
+
181
199
/*
182
200
* void ftrace_graph_caller(void)
183
201
*
@@ -204,11 +222,11 @@ ENDPROC(ftrace_graph_caller)
204
222
* only when CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST is enabled.
205
223
*/
206
224
ENTRY(return_to_handler)
207
- str x0, [sp, #-16]!
225
+ save_return_regs
208
226
mov x0, x29 // parent's fp
209
227
bl ftrace_return_to_handler// addr = ftrace_return_to_hander(fp);
210
228
mov x30, x0 // restore the original return address
211
- ldr x0, [sp], #16
229
+ restore_return_regs
212
230
ret
213
231
END(return_to_handler)
214
232
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
You can’t perform that action at this time.
0 commit comments