Lines Matching +full:sub +full:- +full:function
1 /* SPDX-License-Identifier: GPL-2.0-only */
7 #include "entry-header.S"
10 * When compiling with -pg, gcc inserts a call to the mcount routine at the
11 * start of every function. In mcount, apart from the function's address (in
12 * lr), we need to get hold of the function's caller's address.
22 * mcount can be thought of as a function called in the middle of a subroutine
33 sub \rd, \rd, #MCOUNT_INSN_SIZE
57 mcount_adjust_addr r0, lr @ instrumented function
67 str lr, [sp, #-8]! @ store LR as PC and make space for CPSR/OLD_R0,
74 str lr, [sp, #-4]! @ store previous LR as LR
79 push {r0-r11, ip, lr}
88 @ function tracing op
94 mcount_adjust_addr r0, lr @ instrumented function
108 pop {r0-r11, ip, lr} @ restore r0 through r12
117 sub r0, fp, #4 @ lr of instrumented routine (parent)
131 pop {r0-r11, ip, lr} @ restore r0 through r12
143 mcount_adjust_addr r0, lr @ instrumented function
147 @ function tracing op
167 sub r0, fp, #4 @ &lr of instrumented routine (&parent)
192 * unable to unwind through a function which does not otherwise save its lr.
195 stmdb sp!, {r0-r3, lr}
196 UNWIND(.save {r0-r3, lr})
204 ldmia sp!, {r0-r3}
261 sub sp, #PT_REGS_SIZE