.text /* * Due to -fpatchable-function-entry=2: the compiler inserted 2 NOPs before the * regular C function prologue. When PC arrived here, the last 2 instructions * are as follows: * move t0, ra * bl callsite (for modules, callsite is a tramplione) * * modules trampoline is as follows: * lu12i.w t1, callsite[31:12] * lu32i.d t1, callsite[51:32] * lu52i.d t1, t1, callsite[63:52] * jirl zero, t1, callsite[11:0] >> 2 * * See arch/loongarch/kernel/ftrace_dyn.c for details. Here, pay attention to * that the T series regs are available and safe because each C functions * follows the LoongArch's psABI as well.
*/
/* * As we didn't use S series regs in this assmembly code and all calls * are C function which will save S series regs by themselves, there is * no need to restore S series regs. The T series is available and safe * at the callsite, so there is no need to restore the T series regs.
*/
ftrace_common_return:
PTR_L ra, sp, PT_R1
PTR_L a0, sp, PT_R4
PTR_L a1, sp, PT_R5
PTR_L a2, sp, PT_R6
PTR_L a3, sp, PT_R7
PTR_L a4, sp, PT_R8
PTR_L a5, sp, PT_R9
PTR_L a6, sp, PT_R10
PTR_L a7, sp, PT_R11
PTR_L fp, sp, PT_R22
PTR_L t0, sp, PT_ERA
PTR_L t1, sp, PT_R13
PTR_ADDI sp, sp, PT_SIZE
bnez t1, .Ldirect
jr t0
.Ldirect:
jr t1
SYM_CODE_END(ftrace_common)
SYM_CODE_START(ftrace_caller)
UNWIND_HINT_UNDEFINED
ftrace_regs_entry allregs=0
b ftrace_common
SYM_CODE_END(ftrace_caller)
#ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS
SYM_CODE_START(ftrace_regs_caller)
UNWIND_HINT_UNDEFINED
ftrace_regs_entry allregs=1
b ftrace_common
SYM_CODE_END(ftrace_regs_caller)
#endif
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.