1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_LOONGARCH_UNWIND_HINTS_H
3 #define _ASM_LOONGARCH_UNWIND_HINTS_H
4 
5 #include <linux/objtool.h>
6 #include <asm/orc_types.h>
7 
8 #ifdef __ASSEMBLY__
9 
10 .macro UNWIND_HINT_UNDEFINED
11 	UNWIND_HINT type=UNWIND_HINT_TYPE_UNDEFINED
12 .endm
13 
14 .macro UNWIND_HINT_END_OF_STACK
15 	UNWIND_HINT type=UNWIND_HINT_TYPE_END_OF_STACK
16 .endm
17 
18 .macro UNWIND_HINT_REGS
19 	UNWIND_HINT sp_reg=ORC_REG_SP type=UNWIND_HINT_TYPE_REGS
20 .endm
21 
22 .macro UNWIND_HINT_FUNC
23 	UNWIND_HINT sp_reg=ORC_REG_SP type=UNWIND_HINT_TYPE_CALL
24 .endm
25 
26 #else /* !__ASSEMBLY__ */
27 
28 #define UNWIND_HINT_SAVE \
29 	UNWIND_HINT(UNWIND_HINT_TYPE_SAVE, 0, 0, 0)
30 
31 #define UNWIND_HINT_RESTORE \
32 	UNWIND_HINT(UNWIND_HINT_TYPE_RESTORE, 0, 0, 0)
33 
34 #endif /* !__ASSEMBLY__ */
35 
36 #endif /* _ASM_LOONGARCH_UNWIND_HINTS_H */
37