Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2)  * MIPS specific _mcount support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * License.  See the file "COPYING" in the main directory of this archive for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  * Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University, China
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  * Copyright (C) 2010 DSLab, Lanzhou University, China
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  * Author: Wu Zhangjin <wuzhangjin@gmail.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #include <asm/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #include <asm/regdef.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #include <asm/stackframe.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #include <asm/ftrace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	.text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	.set noreorder
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	.set noat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	.macro MCOUNT_SAVE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	PTR_SUBU	sp, PT_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	PTR_S	ra, PT_R31(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	PTR_S	AT, PT_R1(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	PTR_S	a0, PT_R4(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	PTR_S	a1, PT_R5(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	PTR_S	a2, PT_R6(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	PTR_S	a3, PT_R7(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) #ifdef CONFIG_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	PTR_S	a4, PT_R8(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	PTR_S	a5, PT_R9(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	PTR_S	a6, PT_R10(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	PTR_S	a7, PT_R11(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	.macro MCOUNT_RESTORE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	PTR_L	ra, PT_R31(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	PTR_L	AT, PT_R1(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	PTR_L	a0, PT_R4(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	PTR_L	a1, PT_R5(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	PTR_L	a2, PT_R6(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	PTR_L	a3, PT_R7(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) #ifdef CONFIG_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	PTR_L	a4, PT_R8(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	PTR_L	a5, PT_R9(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	PTR_L	a6, PT_R10(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	PTR_L	a7, PT_R11(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	PTR_ADDIU	sp, PT_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	.macro RETURN_BACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	jr ra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	 move ra, AT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	.endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)  * The -mmcount-ra-address option of gcc 4.5 uses register $12 to pass
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)  * the location of the parent's return address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) #define MCOUNT_RA_ADDRESS_REG	$12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) #ifdef CONFIG_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) NESTED(ftrace_caller, PT_SIZE, ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	.globl _mcount
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) _mcount:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) EXPORT_SYMBOL(_mcount)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	b	ftrace_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) #ifdef CONFIG_32BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	 addiu sp,sp,8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	/* When tracing is activated, it calls ftrace_caller+8 (aka here) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	MCOUNT_SAVE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) #ifdef KBUILD_MCOUNT_RA_ADDRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	PTR_S	MCOUNT_RA_ADDRESS_REG, PT_R12(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	PTR_SUBU a0, ra, 8	/* arg1: self address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	PTR_LA   t1, _stext
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	sltu     t2, a0, t1	/* t2 = (a0 < _stext) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	PTR_LA   t1, _etext
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	sltu     t3, t1, a0	/* t3 = (a0 > _etext) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	or       t1, t2, t3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	beqz     t1, ftrace_call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) #if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	PTR_SUBU a0, a0, 16	/* arg1: adjust to module's recorded callsite */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	PTR_SUBU a0, a0, 12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	.globl ftrace_call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) ftrace_call:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	nop	/* a placeholder for the call to a real tracing function */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	 move	a1, AT		/* arg2: parent's return address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #ifdef CONFIG_FUNCTION_GRAPH_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	.globl ftrace_graph_call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) ftrace_graph_call:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	MCOUNT_RESTORE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	.globl ftrace_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) ftrace_stub:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	RETURN_BACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	END(ftrace_caller)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #else	/* ! CONFIG_DYNAMIC_FTRACE */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) NESTED(_mcount, PT_SIZE, ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) EXPORT_SYMBOL(_mcount)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	PTR_LA	t1, ftrace_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	PTR_L	t2, ftrace_trace_function /* Prepare t2 for (1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	beq	t1, t2, fgraph_trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	MCOUNT_SAVE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	move	a0, ra		/* arg1: self return address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	jalr	t2		/* (1) call *ftrace_trace_function */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	 move	a1, AT		/* arg2: parent's return address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	MCOUNT_RESTORE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) fgraph_trace:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #ifdef	CONFIG_FUNCTION_GRAPH_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	PTR_LA	t1, ftrace_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 	PTR_L	t3, ftrace_graph_return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	bne	t1, t3, ftrace_graph_caller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 	PTR_LA	t1, ftrace_graph_entry_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	PTR_L	t3, ftrace_graph_entry
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	bne	t1, t3, ftrace_graph_caller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) #ifdef CONFIG_32BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	addiu sp, sp, 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	.globl ftrace_stub
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) ftrace_stub:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	RETURN_BACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	END(_mcount)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) #endif	/* ! CONFIG_DYNAMIC_FTRACE */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) #ifdef CONFIG_FUNCTION_GRAPH_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) NESTED(ftrace_graph_caller, PT_SIZE, ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) #ifndef CONFIG_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	MCOUNT_SAVE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	/* arg1: Get the location of the parent's return address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) #ifdef KBUILD_MCOUNT_RA_ADDRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) #ifdef CONFIG_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	PTR_L	a0, PT_R12(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	move	a0, MCOUNT_RA_ADDRESS_REG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	bnez	a0, 1f	/* non-leaf func: stored in MCOUNT_RA_ADDRESS_REG */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	PTR_LA	a0, PT_R1(sp)	/* leaf func: the location in current stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	/* arg2: Get self return address */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) #ifdef CONFIG_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 	PTR_L	a1, PT_R31(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 	move	a1, ra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 	/* arg3: Get frame pointer of current stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) #ifdef CONFIG_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	PTR_LA	a2, PT_SIZE(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 	PTR_LA	a2, (PT_SIZE+8)(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	jal	prepare_ftrace_return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	MCOUNT_RESTORE_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #ifndef CONFIG_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) #ifdef CONFIG_32BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	addiu sp, sp, 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 	RETURN_BACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	END(ftrace_graph_caller)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	.align	2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	.globl	return_to_handler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) return_to_handler:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	PTR_SUBU	sp, PT_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	PTR_S	v0, PT_R2(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	jal	ftrace_return_to_handler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	 PTR_S	v1, PT_R3(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	/* restore the real parent address: v0 -> ra */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 	move	ra, v0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 	PTR_L	v0, PT_R2(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	PTR_L	v1, PT_R3(sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 	jr	ra
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 	 PTR_ADDIU	sp, PT_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	.set at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	.set reorder