xref: /linux/arch/mips/include/uapi/asm/reg.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
29f07925cSAlex Smith /*
39f07925cSAlex Smith  * Various register offset definitions for debuggers, core file
49f07925cSAlex Smith  * examiners and whatnot.
59f07925cSAlex Smith  *
69f07925cSAlex Smith  * This file is subject to the terms and conditions of the GNU General Public
79f07925cSAlex Smith  * License.  See the file "COPYING" in the main directory of this archive
89f07925cSAlex Smith  * for more details.
99f07925cSAlex Smith  *
109f07925cSAlex Smith  * Copyright (C) 1995, 1999 Ralf Baechle
119f07925cSAlex Smith  * Copyright (C) 1995, 1999 Silicon Graphics
129f07925cSAlex Smith  */
139f07925cSAlex Smith #ifndef __UAPI_ASM_MIPS_REG_H
149f07925cSAlex Smith #define __UAPI_ASM_MIPS_REG_H
159f07925cSAlex Smith 
169f07925cSAlex Smith #define MIPS32_EF_R0		6
179f07925cSAlex Smith #define MIPS32_EF_R1		7
189f07925cSAlex Smith #define MIPS32_EF_R2		8
199f07925cSAlex Smith #define MIPS32_EF_R3		9
209f07925cSAlex Smith #define MIPS32_EF_R4		10
219f07925cSAlex Smith #define MIPS32_EF_R5		11
229f07925cSAlex Smith #define MIPS32_EF_R6		12
239f07925cSAlex Smith #define MIPS32_EF_R7		13
249f07925cSAlex Smith #define MIPS32_EF_R8		14
259f07925cSAlex Smith #define MIPS32_EF_R9		15
269f07925cSAlex Smith #define MIPS32_EF_R10		16
279f07925cSAlex Smith #define MIPS32_EF_R11		17
289f07925cSAlex Smith #define MIPS32_EF_R12		18
299f07925cSAlex Smith #define MIPS32_EF_R13		19
309f07925cSAlex Smith #define MIPS32_EF_R14		20
319f07925cSAlex Smith #define MIPS32_EF_R15		21
329f07925cSAlex Smith #define MIPS32_EF_R16		22
339f07925cSAlex Smith #define MIPS32_EF_R17		23
349f07925cSAlex Smith #define MIPS32_EF_R18		24
359f07925cSAlex Smith #define MIPS32_EF_R19		25
369f07925cSAlex Smith #define MIPS32_EF_R20		26
379f07925cSAlex Smith #define MIPS32_EF_R21		27
389f07925cSAlex Smith #define MIPS32_EF_R22		28
399f07925cSAlex Smith #define MIPS32_EF_R23		29
409f07925cSAlex Smith #define MIPS32_EF_R24		30
419f07925cSAlex Smith #define MIPS32_EF_R25		31
429f07925cSAlex Smith 
439f07925cSAlex Smith /*
449f07925cSAlex Smith  * k0/k1 unsaved
459f07925cSAlex Smith  */
469f07925cSAlex Smith #define MIPS32_EF_R26		32
479f07925cSAlex Smith #define MIPS32_EF_R27		33
489f07925cSAlex Smith 
499f07925cSAlex Smith #define MIPS32_EF_R28		34
509f07925cSAlex Smith #define MIPS32_EF_R29		35
519f07925cSAlex Smith #define MIPS32_EF_R30		36
529f07925cSAlex Smith #define MIPS32_EF_R31		37
539f07925cSAlex Smith 
549f07925cSAlex Smith /*
559f07925cSAlex Smith  * Saved special registers
569f07925cSAlex Smith  */
579f07925cSAlex Smith #define MIPS32_EF_LO		38
589f07925cSAlex Smith #define MIPS32_EF_HI		39
599f07925cSAlex Smith 
609f07925cSAlex Smith #define MIPS32_EF_CP0_EPC	40
619f07925cSAlex Smith #define MIPS32_EF_CP0_BADVADDR	41
629f07925cSAlex Smith #define MIPS32_EF_CP0_STATUS	42
639f07925cSAlex Smith #define MIPS32_EF_CP0_CAUSE	43
649f07925cSAlex Smith #define MIPS32_EF_UNUSED0	44
659f07925cSAlex Smith 
669f07925cSAlex Smith #define MIPS32_EF_SIZE		180
679f07925cSAlex Smith 
689f07925cSAlex Smith #define MIPS64_EF_R0		0
699f07925cSAlex Smith #define MIPS64_EF_R1		1
709f07925cSAlex Smith #define MIPS64_EF_R2		2
719f07925cSAlex Smith #define MIPS64_EF_R3		3
729f07925cSAlex Smith #define MIPS64_EF_R4		4
739f07925cSAlex Smith #define MIPS64_EF_R5		5
749f07925cSAlex Smith #define MIPS64_EF_R6		6
759f07925cSAlex Smith #define MIPS64_EF_R7		7
769f07925cSAlex Smith #define MIPS64_EF_R8		8
779f07925cSAlex Smith #define MIPS64_EF_R9		9
789f07925cSAlex Smith #define MIPS64_EF_R10		10
799f07925cSAlex Smith #define MIPS64_EF_R11		11
809f07925cSAlex Smith #define MIPS64_EF_R12		12
819f07925cSAlex Smith #define MIPS64_EF_R13		13
829f07925cSAlex Smith #define MIPS64_EF_R14		14
839f07925cSAlex Smith #define MIPS64_EF_R15		15
849f07925cSAlex Smith #define MIPS64_EF_R16		16
859f07925cSAlex Smith #define MIPS64_EF_R17		17
869f07925cSAlex Smith #define MIPS64_EF_R18		18
879f07925cSAlex Smith #define MIPS64_EF_R19		19
889f07925cSAlex Smith #define MIPS64_EF_R20		20
899f07925cSAlex Smith #define MIPS64_EF_R21		21
909f07925cSAlex Smith #define MIPS64_EF_R22		22
919f07925cSAlex Smith #define MIPS64_EF_R23		23
929f07925cSAlex Smith #define MIPS64_EF_R24		24
939f07925cSAlex Smith #define MIPS64_EF_R25		25
949f07925cSAlex Smith 
959f07925cSAlex Smith /*
969f07925cSAlex Smith  * k0/k1 unsaved
979f07925cSAlex Smith  */
989f07925cSAlex Smith #define MIPS64_EF_R26		26
999f07925cSAlex Smith #define MIPS64_EF_R27		27
1009f07925cSAlex Smith 
1019f07925cSAlex Smith 
1029f07925cSAlex Smith #define MIPS64_EF_R28		28
1039f07925cSAlex Smith #define MIPS64_EF_R29		29
1049f07925cSAlex Smith #define MIPS64_EF_R30		30
1059f07925cSAlex Smith #define MIPS64_EF_R31		31
1069f07925cSAlex Smith 
1079f07925cSAlex Smith /*
1089f07925cSAlex Smith  * Saved special registers
1099f07925cSAlex Smith  */
1109f07925cSAlex Smith #define MIPS64_EF_LO		32
1119f07925cSAlex Smith #define MIPS64_EF_HI		33
1129f07925cSAlex Smith 
1139f07925cSAlex Smith #define MIPS64_EF_CP0_EPC	34
1149f07925cSAlex Smith #define MIPS64_EF_CP0_BADVADDR	35
1159f07925cSAlex Smith #define MIPS64_EF_CP0_STATUS	36
1169f07925cSAlex Smith #define MIPS64_EF_CP0_CAUSE	37
1179f07925cSAlex Smith 
1189f07925cSAlex Smith #define MIPS64_EF_SIZE		304	/* size in bytes */
1199f07925cSAlex Smith 
1209f07925cSAlex Smith #if _MIPS_SIM == _MIPS_SIM_ABI32
1219f07925cSAlex Smith 
1229f07925cSAlex Smith #define EF_R0			MIPS32_EF_R0
1239f07925cSAlex Smith #define EF_R1			MIPS32_EF_R1
1249f07925cSAlex Smith #define EF_R2			MIPS32_EF_R2
1259f07925cSAlex Smith #define EF_R3			MIPS32_EF_R3
1269f07925cSAlex Smith #define EF_R4			MIPS32_EF_R4
1279f07925cSAlex Smith #define EF_R5			MIPS32_EF_R5
1289f07925cSAlex Smith #define EF_R6			MIPS32_EF_R6
1299f07925cSAlex Smith #define EF_R7			MIPS32_EF_R7
1309f07925cSAlex Smith #define EF_R8			MIPS32_EF_R8
1319f07925cSAlex Smith #define EF_R9			MIPS32_EF_R9
1329f07925cSAlex Smith #define EF_R10			MIPS32_EF_R10
1339f07925cSAlex Smith #define EF_R11			MIPS32_EF_R11
1349f07925cSAlex Smith #define EF_R12			MIPS32_EF_R12
1359f07925cSAlex Smith #define EF_R13			MIPS32_EF_R13
1369f07925cSAlex Smith #define EF_R14			MIPS32_EF_R14
1379f07925cSAlex Smith #define EF_R15			MIPS32_EF_R15
1389f07925cSAlex Smith #define EF_R16			MIPS32_EF_R16
1399f07925cSAlex Smith #define EF_R17			MIPS32_EF_R17
1409f07925cSAlex Smith #define EF_R18			MIPS32_EF_R18
1419f07925cSAlex Smith #define EF_R19			MIPS32_EF_R19
1429f07925cSAlex Smith #define EF_R20			MIPS32_EF_R20
1439f07925cSAlex Smith #define EF_R21			MIPS32_EF_R21
1449f07925cSAlex Smith #define EF_R22			MIPS32_EF_R22
1459f07925cSAlex Smith #define EF_R23			MIPS32_EF_R23
1469f07925cSAlex Smith #define EF_R24			MIPS32_EF_R24
1479f07925cSAlex Smith #define EF_R25			MIPS32_EF_R25
1489f07925cSAlex Smith #define EF_R26			MIPS32_EF_R26
1499f07925cSAlex Smith #define EF_R27			MIPS32_EF_R27
1509f07925cSAlex Smith #define EF_R28			MIPS32_EF_R28
1519f07925cSAlex Smith #define EF_R29			MIPS32_EF_R29
1529f07925cSAlex Smith #define EF_R30			MIPS32_EF_R30
1539f07925cSAlex Smith #define EF_R31			MIPS32_EF_R31
1549f07925cSAlex Smith #define EF_LO			MIPS32_EF_LO
1559f07925cSAlex Smith #define EF_HI			MIPS32_EF_HI
1569f07925cSAlex Smith #define EF_CP0_EPC		MIPS32_EF_CP0_EPC
1579f07925cSAlex Smith #define EF_CP0_BADVADDR		MIPS32_EF_CP0_BADVADDR
1589f07925cSAlex Smith #define EF_CP0_STATUS		MIPS32_EF_CP0_STATUS
1599f07925cSAlex Smith #define EF_CP0_CAUSE		MIPS32_EF_CP0_CAUSE
1609f07925cSAlex Smith #define EF_UNUSED0		MIPS32_EF_UNUSED0
1619f07925cSAlex Smith #define EF_SIZE			MIPS32_EF_SIZE
1629f07925cSAlex Smith 
1639f07925cSAlex Smith #elif _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
1649f07925cSAlex Smith 
1659f07925cSAlex Smith #define EF_R0			MIPS64_EF_R0
1669f07925cSAlex Smith #define EF_R1			MIPS64_EF_R1
1679f07925cSAlex Smith #define EF_R2			MIPS64_EF_R2
1689f07925cSAlex Smith #define EF_R3			MIPS64_EF_R3
1699f07925cSAlex Smith #define EF_R4			MIPS64_EF_R4
1709f07925cSAlex Smith #define EF_R5			MIPS64_EF_R5
1719f07925cSAlex Smith #define EF_R6			MIPS64_EF_R6
1729f07925cSAlex Smith #define EF_R7			MIPS64_EF_R7
1739f07925cSAlex Smith #define EF_R8			MIPS64_EF_R8
1749f07925cSAlex Smith #define EF_R9			MIPS64_EF_R9
1759f07925cSAlex Smith #define EF_R10			MIPS64_EF_R10
1769f07925cSAlex Smith #define EF_R11			MIPS64_EF_R11
1779f07925cSAlex Smith #define EF_R12			MIPS64_EF_R12
1789f07925cSAlex Smith #define EF_R13			MIPS64_EF_R13
1799f07925cSAlex Smith #define EF_R14			MIPS64_EF_R14
1809f07925cSAlex Smith #define EF_R15			MIPS64_EF_R15
1819f07925cSAlex Smith #define EF_R16			MIPS64_EF_R16
1829f07925cSAlex Smith #define EF_R17			MIPS64_EF_R17
1839f07925cSAlex Smith #define EF_R18			MIPS64_EF_R18
1849f07925cSAlex Smith #define EF_R19			MIPS64_EF_R19
1859f07925cSAlex Smith #define EF_R20			MIPS64_EF_R20
1869f07925cSAlex Smith #define EF_R21			MIPS64_EF_R21
1879f07925cSAlex Smith #define EF_R22			MIPS64_EF_R22
1889f07925cSAlex Smith #define EF_R23			MIPS64_EF_R23
1899f07925cSAlex Smith #define EF_R24			MIPS64_EF_R24
1909f07925cSAlex Smith #define EF_R25			MIPS64_EF_R25
1919f07925cSAlex Smith #define EF_R26			MIPS64_EF_R26
1929f07925cSAlex Smith #define EF_R27			MIPS64_EF_R27
1939f07925cSAlex Smith #define EF_R28			MIPS64_EF_R28
1949f07925cSAlex Smith #define EF_R29			MIPS64_EF_R29
1959f07925cSAlex Smith #define EF_R30			MIPS64_EF_R30
1969f07925cSAlex Smith #define EF_R31			MIPS64_EF_R31
1979f07925cSAlex Smith #define EF_LO			MIPS64_EF_LO
1989f07925cSAlex Smith #define EF_HI			MIPS64_EF_HI
1999f07925cSAlex Smith #define EF_CP0_EPC		MIPS64_EF_CP0_EPC
2009f07925cSAlex Smith #define EF_CP0_BADVADDR		MIPS64_EF_CP0_BADVADDR
2019f07925cSAlex Smith #define EF_CP0_STATUS		MIPS64_EF_CP0_STATUS
2029f07925cSAlex Smith #define EF_CP0_CAUSE		MIPS64_EF_CP0_CAUSE
2039f07925cSAlex Smith #define EF_SIZE			MIPS64_EF_SIZE
2049f07925cSAlex Smith 
2059f07925cSAlex Smith #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
2069f07925cSAlex Smith 
2079f07925cSAlex Smith #endif /* __UAPI_ASM_MIPS_REG_H */
208