18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Various register offset definitions for debuggers, core file
48c2ecf20Sopenharmony_ci * examiners and whatnot.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
78c2ecf20Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
88c2ecf20Sopenharmony_ci * for more details.
98c2ecf20Sopenharmony_ci *
108c2ecf20Sopenharmony_ci * Copyright (C) 1995, 1999 Ralf Baechle
118c2ecf20Sopenharmony_ci * Copyright (C) 1995, 1999 Silicon Graphics
128c2ecf20Sopenharmony_ci */
138c2ecf20Sopenharmony_ci#ifndef __UAPI_ASM_MIPS_REG_H
148c2ecf20Sopenharmony_ci#define __UAPI_ASM_MIPS_REG_H
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#define MIPS32_EF_R0		6
178c2ecf20Sopenharmony_ci#define MIPS32_EF_R1		7
188c2ecf20Sopenharmony_ci#define MIPS32_EF_R2		8
198c2ecf20Sopenharmony_ci#define MIPS32_EF_R3		9
208c2ecf20Sopenharmony_ci#define MIPS32_EF_R4		10
218c2ecf20Sopenharmony_ci#define MIPS32_EF_R5		11
228c2ecf20Sopenharmony_ci#define MIPS32_EF_R6		12
238c2ecf20Sopenharmony_ci#define MIPS32_EF_R7		13
248c2ecf20Sopenharmony_ci#define MIPS32_EF_R8		14
258c2ecf20Sopenharmony_ci#define MIPS32_EF_R9		15
268c2ecf20Sopenharmony_ci#define MIPS32_EF_R10		16
278c2ecf20Sopenharmony_ci#define MIPS32_EF_R11		17
288c2ecf20Sopenharmony_ci#define MIPS32_EF_R12		18
298c2ecf20Sopenharmony_ci#define MIPS32_EF_R13		19
308c2ecf20Sopenharmony_ci#define MIPS32_EF_R14		20
318c2ecf20Sopenharmony_ci#define MIPS32_EF_R15		21
328c2ecf20Sopenharmony_ci#define MIPS32_EF_R16		22
338c2ecf20Sopenharmony_ci#define MIPS32_EF_R17		23
348c2ecf20Sopenharmony_ci#define MIPS32_EF_R18		24
358c2ecf20Sopenharmony_ci#define MIPS32_EF_R19		25
368c2ecf20Sopenharmony_ci#define MIPS32_EF_R20		26
378c2ecf20Sopenharmony_ci#define MIPS32_EF_R21		27
388c2ecf20Sopenharmony_ci#define MIPS32_EF_R22		28
398c2ecf20Sopenharmony_ci#define MIPS32_EF_R23		29
408c2ecf20Sopenharmony_ci#define MIPS32_EF_R24		30
418c2ecf20Sopenharmony_ci#define MIPS32_EF_R25		31
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci/*
448c2ecf20Sopenharmony_ci * k0/k1 unsaved
458c2ecf20Sopenharmony_ci */
468c2ecf20Sopenharmony_ci#define MIPS32_EF_R26		32
478c2ecf20Sopenharmony_ci#define MIPS32_EF_R27		33
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci#define MIPS32_EF_R28		34
508c2ecf20Sopenharmony_ci#define MIPS32_EF_R29		35
518c2ecf20Sopenharmony_ci#define MIPS32_EF_R30		36
528c2ecf20Sopenharmony_ci#define MIPS32_EF_R31		37
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci/*
558c2ecf20Sopenharmony_ci * Saved special registers
568c2ecf20Sopenharmony_ci */
578c2ecf20Sopenharmony_ci#define MIPS32_EF_LO		38
588c2ecf20Sopenharmony_ci#define MIPS32_EF_HI		39
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci#define MIPS32_EF_CP0_EPC	40
618c2ecf20Sopenharmony_ci#define MIPS32_EF_CP0_BADVADDR	41
628c2ecf20Sopenharmony_ci#define MIPS32_EF_CP0_STATUS	42
638c2ecf20Sopenharmony_ci#define MIPS32_EF_CP0_CAUSE	43
648c2ecf20Sopenharmony_ci#define MIPS32_EF_UNUSED0	44
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci#define MIPS32_EF_SIZE		180
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci#define MIPS64_EF_R0		0
698c2ecf20Sopenharmony_ci#define MIPS64_EF_R1		1
708c2ecf20Sopenharmony_ci#define MIPS64_EF_R2		2
718c2ecf20Sopenharmony_ci#define MIPS64_EF_R3		3
728c2ecf20Sopenharmony_ci#define MIPS64_EF_R4		4
738c2ecf20Sopenharmony_ci#define MIPS64_EF_R5		5
748c2ecf20Sopenharmony_ci#define MIPS64_EF_R6		6
758c2ecf20Sopenharmony_ci#define MIPS64_EF_R7		7
768c2ecf20Sopenharmony_ci#define MIPS64_EF_R8		8
778c2ecf20Sopenharmony_ci#define MIPS64_EF_R9		9
788c2ecf20Sopenharmony_ci#define MIPS64_EF_R10		10
798c2ecf20Sopenharmony_ci#define MIPS64_EF_R11		11
808c2ecf20Sopenharmony_ci#define MIPS64_EF_R12		12
818c2ecf20Sopenharmony_ci#define MIPS64_EF_R13		13
828c2ecf20Sopenharmony_ci#define MIPS64_EF_R14		14
838c2ecf20Sopenharmony_ci#define MIPS64_EF_R15		15
848c2ecf20Sopenharmony_ci#define MIPS64_EF_R16		16
858c2ecf20Sopenharmony_ci#define MIPS64_EF_R17		17
868c2ecf20Sopenharmony_ci#define MIPS64_EF_R18		18
878c2ecf20Sopenharmony_ci#define MIPS64_EF_R19		19
888c2ecf20Sopenharmony_ci#define MIPS64_EF_R20		20
898c2ecf20Sopenharmony_ci#define MIPS64_EF_R21		21
908c2ecf20Sopenharmony_ci#define MIPS64_EF_R22		22
918c2ecf20Sopenharmony_ci#define MIPS64_EF_R23		23
928c2ecf20Sopenharmony_ci#define MIPS64_EF_R24		24
938c2ecf20Sopenharmony_ci#define MIPS64_EF_R25		25
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci/*
968c2ecf20Sopenharmony_ci * k0/k1 unsaved
978c2ecf20Sopenharmony_ci */
988c2ecf20Sopenharmony_ci#define MIPS64_EF_R26		26
998c2ecf20Sopenharmony_ci#define MIPS64_EF_R27		27
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci#define MIPS64_EF_R28		28
1038c2ecf20Sopenharmony_ci#define MIPS64_EF_R29		29
1048c2ecf20Sopenharmony_ci#define MIPS64_EF_R30		30
1058c2ecf20Sopenharmony_ci#define MIPS64_EF_R31		31
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci/*
1088c2ecf20Sopenharmony_ci * Saved special registers
1098c2ecf20Sopenharmony_ci */
1108c2ecf20Sopenharmony_ci#define MIPS64_EF_LO		32
1118c2ecf20Sopenharmony_ci#define MIPS64_EF_HI		33
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci#define MIPS64_EF_CP0_EPC	34
1148c2ecf20Sopenharmony_ci#define MIPS64_EF_CP0_BADVADDR	35
1158c2ecf20Sopenharmony_ci#define MIPS64_EF_CP0_STATUS	36
1168c2ecf20Sopenharmony_ci#define MIPS64_EF_CP0_CAUSE	37
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci#define MIPS64_EF_SIZE		304	/* size in bytes */
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci#if _MIPS_SIM == _MIPS_SIM_ABI32
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci#define EF_R0			MIPS32_EF_R0
1238c2ecf20Sopenharmony_ci#define EF_R1			MIPS32_EF_R1
1248c2ecf20Sopenharmony_ci#define EF_R2			MIPS32_EF_R2
1258c2ecf20Sopenharmony_ci#define EF_R3			MIPS32_EF_R3
1268c2ecf20Sopenharmony_ci#define EF_R4			MIPS32_EF_R4
1278c2ecf20Sopenharmony_ci#define EF_R5			MIPS32_EF_R5
1288c2ecf20Sopenharmony_ci#define EF_R6			MIPS32_EF_R6
1298c2ecf20Sopenharmony_ci#define EF_R7			MIPS32_EF_R7
1308c2ecf20Sopenharmony_ci#define EF_R8			MIPS32_EF_R8
1318c2ecf20Sopenharmony_ci#define EF_R9			MIPS32_EF_R9
1328c2ecf20Sopenharmony_ci#define EF_R10			MIPS32_EF_R10
1338c2ecf20Sopenharmony_ci#define EF_R11			MIPS32_EF_R11
1348c2ecf20Sopenharmony_ci#define EF_R12			MIPS32_EF_R12
1358c2ecf20Sopenharmony_ci#define EF_R13			MIPS32_EF_R13
1368c2ecf20Sopenharmony_ci#define EF_R14			MIPS32_EF_R14
1378c2ecf20Sopenharmony_ci#define EF_R15			MIPS32_EF_R15
1388c2ecf20Sopenharmony_ci#define EF_R16			MIPS32_EF_R16
1398c2ecf20Sopenharmony_ci#define EF_R17			MIPS32_EF_R17
1408c2ecf20Sopenharmony_ci#define EF_R18			MIPS32_EF_R18
1418c2ecf20Sopenharmony_ci#define EF_R19			MIPS32_EF_R19
1428c2ecf20Sopenharmony_ci#define EF_R20			MIPS32_EF_R20
1438c2ecf20Sopenharmony_ci#define EF_R21			MIPS32_EF_R21
1448c2ecf20Sopenharmony_ci#define EF_R22			MIPS32_EF_R22
1458c2ecf20Sopenharmony_ci#define EF_R23			MIPS32_EF_R23
1468c2ecf20Sopenharmony_ci#define EF_R24			MIPS32_EF_R24
1478c2ecf20Sopenharmony_ci#define EF_R25			MIPS32_EF_R25
1488c2ecf20Sopenharmony_ci#define EF_R26			MIPS32_EF_R26
1498c2ecf20Sopenharmony_ci#define EF_R27			MIPS32_EF_R27
1508c2ecf20Sopenharmony_ci#define EF_R28			MIPS32_EF_R28
1518c2ecf20Sopenharmony_ci#define EF_R29			MIPS32_EF_R29
1528c2ecf20Sopenharmony_ci#define EF_R30			MIPS32_EF_R30
1538c2ecf20Sopenharmony_ci#define EF_R31			MIPS32_EF_R31
1548c2ecf20Sopenharmony_ci#define EF_LO			MIPS32_EF_LO
1558c2ecf20Sopenharmony_ci#define EF_HI			MIPS32_EF_HI
1568c2ecf20Sopenharmony_ci#define EF_CP0_EPC		MIPS32_EF_CP0_EPC
1578c2ecf20Sopenharmony_ci#define EF_CP0_BADVADDR		MIPS32_EF_CP0_BADVADDR
1588c2ecf20Sopenharmony_ci#define EF_CP0_STATUS		MIPS32_EF_CP0_STATUS
1598c2ecf20Sopenharmony_ci#define EF_CP0_CAUSE		MIPS32_EF_CP0_CAUSE
1608c2ecf20Sopenharmony_ci#define EF_UNUSED0		MIPS32_EF_UNUSED0
1618c2ecf20Sopenharmony_ci#define EF_SIZE			MIPS32_EF_SIZE
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci#elif _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci#define EF_R0			MIPS64_EF_R0
1668c2ecf20Sopenharmony_ci#define EF_R1			MIPS64_EF_R1
1678c2ecf20Sopenharmony_ci#define EF_R2			MIPS64_EF_R2
1688c2ecf20Sopenharmony_ci#define EF_R3			MIPS64_EF_R3
1698c2ecf20Sopenharmony_ci#define EF_R4			MIPS64_EF_R4
1708c2ecf20Sopenharmony_ci#define EF_R5			MIPS64_EF_R5
1718c2ecf20Sopenharmony_ci#define EF_R6			MIPS64_EF_R6
1728c2ecf20Sopenharmony_ci#define EF_R7			MIPS64_EF_R7
1738c2ecf20Sopenharmony_ci#define EF_R8			MIPS64_EF_R8
1748c2ecf20Sopenharmony_ci#define EF_R9			MIPS64_EF_R9
1758c2ecf20Sopenharmony_ci#define EF_R10			MIPS64_EF_R10
1768c2ecf20Sopenharmony_ci#define EF_R11			MIPS64_EF_R11
1778c2ecf20Sopenharmony_ci#define EF_R12			MIPS64_EF_R12
1788c2ecf20Sopenharmony_ci#define EF_R13			MIPS64_EF_R13
1798c2ecf20Sopenharmony_ci#define EF_R14			MIPS64_EF_R14
1808c2ecf20Sopenharmony_ci#define EF_R15			MIPS64_EF_R15
1818c2ecf20Sopenharmony_ci#define EF_R16			MIPS64_EF_R16
1828c2ecf20Sopenharmony_ci#define EF_R17			MIPS64_EF_R17
1838c2ecf20Sopenharmony_ci#define EF_R18			MIPS64_EF_R18
1848c2ecf20Sopenharmony_ci#define EF_R19			MIPS64_EF_R19
1858c2ecf20Sopenharmony_ci#define EF_R20			MIPS64_EF_R20
1868c2ecf20Sopenharmony_ci#define EF_R21			MIPS64_EF_R21
1878c2ecf20Sopenharmony_ci#define EF_R22			MIPS64_EF_R22
1888c2ecf20Sopenharmony_ci#define EF_R23			MIPS64_EF_R23
1898c2ecf20Sopenharmony_ci#define EF_R24			MIPS64_EF_R24
1908c2ecf20Sopenharmony_ci#define EF_R25			MIPS64_EF_R25
1918c2ecf20Sopenharmony_ci#define EF_R26			MIPS64_EF_R26
1928c2ecf20Sopenharmony_ci#define EF_R27			MIPS64_EF_R27
1938c2ecf20Sopenharmony_ci#define EF_R28			MIPS64_EF_R28
1948c2ecf20Sopenharmony_ci#define EF_R29			MIPS64_EF_R29
1958c2ecf20Sopenharmony_ci#define EF_R30			MIPS64_EF_R30
1968c2ecf20Sopenharmony_ci#define EF_R31			MIPS64_EF_R31
1978c2ecf20Sopenharmony_ci#define EF_LO			MIPS64_EF_LO
1988c2ecf20Sopenharmony_ci#define EF_HI			MIPS64_EF_HI
1998c2ecf20Sopenharmony_ci#define EF_CP0_EPC		MIPS64_EF_CP0_EPC
2008c2ecf20Sopenharmony_ci#define EF_CP0_BADVADDR		MIPS64_EF_CP0_BADVADDR
2018c2ecf20Sopenharmony_ci#define EF_CP0_STATUS		MIPS64_EF_CP0_STATUS
2028c2ecf20Sopenharmony_ci#define EF_CP0_CAUSE		MIPS64_EF_CP0_CAUSE
2038c2ecf20Sopenharmony_ci#define EF_SIZE			MIPS64_EF_SIZE
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ci#endif /* __UAPI_ASM_MIPS_REG_H */
208