xref: /linux/arch/loongarch/include/asm/gpr-num.h (revision ddb7a62af2e766eabb4ab7080e6ed8d6b8915302)
1672999cfSYouling Tang /* SPDX-License-Identifier: GPL-2.0-only */
2672999cfSYouling Tang #ifndef __ASM_GPR_NUM_H
3672999cfSYouling Tang #define __ASM_GPR_NUM_H
4672999cfSYouling Tang 
5*f0ef0b02SThomas Huth #ifdef __ASSEMBLER__
6672999cfSYouling Tang 
7672999cfSYouling Tang 	.equ	.L__gpr_num_zero, 0
8672999cfSYouling Tang 	.irp	num,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
9672999cfSYouling Tang 	.equ	.L__gpr_num_$r\num, \num
10672999cfSYouling Tang 	.endr
11672999cfSYouling Tang 
1224da0249SWANG Rui 	/* ABI names of registers */
1324da0249SWANG Rui 	.equ	.L__gpr_num_$ra, 1
1424da0249SWANG Rui 	.equ	.L__gpr_num_$tp, 2
1524da0249SWANG Rui 	.equ	.L__gpr_num_$sp, 3
1624da0249SWANG Rui 	.irp	num,0,1,2,3,4,5,6,7
1724da0249SWANG Rui 	.equ	.L__gpr_num_$a\num, 4 + \num
1824da0249SWANG Rui 	.endr
1924da0249SWANG Rui 	.irp	num,0,1,2,3,4,5,6,7,8
2024da0249SWANG Rui 	.equ	.L__gpr_num_$t\num, 12 + \num
2124da0249SWANG Rui 	.endr
2224da0249SWANG Rui 	.equ	.L__gpr_num_$s9, 22
2324da0249SWANG Rui 	.equ	.L__gpr_num_$fp, 22
2424da0249SWANG Rui 	.irp	num,0,1,2,3,4,5,6,7,8
2524da0249SWANG Rui 	.equ	.L__gpr_num_$s\num, 23 + \num
2624da0249SWANG Rui 	.endr
2724da0249SWANG Rui 
28*f0ef0b02SThomas Huth #else /* __ASSEMBLER__ */
29672999cfSYouling Tang 
30672999cfSYouling Tang #define __DEFINE_ASM_GPR_NUMS					\
31672999cfSYouling Tang "	.equ	.L__gpr_num_zero, 0\n"				\
32672999cfSYouling Tang "	.irp	num,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31\n" \
33672999cfSYouling Tang "	.equ	.L__gpr_num_$r\\num, \\num\n"			\
34672999cfSYouling Tang "	.endr\n"						\
3524da0249SWANG Rui "	.equ	.L__gpr_num_$ra, 1\n"				\
3624da0249SWANG Rui "	.equ	.L__gpr_num_$tp, 2\n"				\
3724da0249SWANG Rui "	.equ	.L__gpr_num_$sp, 3\n"				\
3824da0249SWANG Rui "	.irp	num,0,1,2,3,4,5,6,7\n"				\
3924da0249SWANG Rui "	.equ	.L__gpr_num_$a\\num, 4 + \\num\n"		\
4024da0249SWANG Rui "	.endr\n"						\
4124da0249SWANG Rui "	.irp	num,0,1,2,3,4,5,6,7,8\n"			\
4224da0249SWANG Rui "	.equ	.L__gpr_num_$t\\num, 12 + \\num\n"		\
4324da0249SWANG Rui "	.endr\n"						\
4424da0249SWANG Rui "	.equ	.L__gpr_num_$s9, 22\n"				\
4524da0249SWANG Rui "	.equ	.L__gpr_num_$fp, 22\n"				\
4624da0249SWANG Rui "	.irp	num,0,1,2,3,4,5,6,7,8\n"			\
4724da0249SWANG Rui "	.equ	.L__gpr_num_$s\\num, 23 + \\num\n"		\
4824da0249SWANG Rui "	.endr\n"						\
49672999cfSYouling Tang 
50*f0ef0b02SThomas Huth #endif /* __ASSEMBLER__ */
51672999cfSYouling Tang 
52672999cfSYouling Tang #endif /* __ASM_GPR_NUM_H */
53