1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  * Various register offset definitions for debuggers, core file
4  * examiners and whatnot.
5  *
6  * This file is subject to the terms and conditions of the GNU General Public
7  * License.  See the file "COPYING" in the main directory of this archive
8  * for more details.
9  *
10  * Copyright (C) 1995, 1999 Ralf Baechle
11  * Copyright (C) 1995, 1999 Silicon Graphics
12  */
13 #ifndef __UAPI_ASM_MIPS_REG_H
14 #define __UAPI_ASM_MIPS_REG_H
15 
16 #define MIPS32_EF_R0		6
17 #define MIPS32_EF_R1		7
18 #define MIPS32_EF_R2		8
19 #define MIPS32_EF_R3		9
20 #define MIPS32_EF_R4		10
21 #define MIPS32_EF_R5		11
22 #define MIPS32_EF_R6		12
23 #define MIPS32_EF_R7		13
24 #define MIPS32_EF_R8		14
25 #define MIPS32_EF_R9		15
26 #define MIPS32_EF_R10		16
27 #define MIPS32_EF_R11		17
28 #define MIPS32_EF_R12		18
29 #define MIPS32_EF_R13		19
30 #define MIPS32_EF_R14		20
31 #define MIPS32_EF_R15		21
32 #define MIPS32_EF_R16		22
33 #define MIPS32_EF_R17		23
34 #define MIPS32_EF_R18		24
35 #define MIPS32_EF_R19		25
36 #define MIPS32_EF_R20		26
37 #define MIPS32_EF_R21		27
38 #define MIPS32_EF_R22		28
39 #define MIPS32_EF_R23		29
40 #define MIPS32_EF_R24		30
41 #define MIPS32_EF_R25		31
42 
43 /*
44  * k0/k1 unsaved
45  */
46 #define MIPS32_EF_R26		32
47 #define MIPS32_EF_R27		33
48 
49 #define MIPS32_EF_R28		34
50 #define MIPS32_EF_R29		35
51 #define MIPS32_EF_R30		36
52 #define MIPS32_EF_R31		37
53 
54 /*
55  * Saved special registers
56  */
57 #define MIPS32_EF_LO		38
58 #define MIPS32_EF_HI		39
59 
60 #define MIPS32_EF_CP0_EPC	40
61 #define MIPS32_EF_CP0_BADVADDR	41
62 #define MIPS32_EF_CP0_STATUS	42
63 #define MIPS32_EF_CP0_CAUSE	43
64 #define MIPS32_EF_UNUSED0	44
65 
66 #define MIPS32_EF_SIZE		180
67 
68 #define MIPS64_EF_R0		0
69 #define MIPS64_EF_R1		1
70 #define MIPS64_EF_R2		2
71 #define MIPS64_EF_R3		3
72 #define MIPS64_EF_R4		4
73 #define MIPS64_EF_R5		5
74 #define MIPS64_EF_R6		6
75 #define MIPS64_EF_R7		7
76 #define MIPS64_EF_R8		8
77 #define MIPS64_EF_R9		9
78 #define MIPS64_EF_R10		10
79 #define MIPS64_EF_R11		11
80 #define MIPS64_EF_R12		12
81 #define MIPS64_EF_R13		13
82 #define MIPS64_EF_R14		14
83 #define MIPS64_EF_R15		15
84 #define MIPS64_EF_R16		16
85 #define MIPS64_EF_R17		17
86 #define MIPS64_EF_R18		18
87 #define MIPS64_EF_R19		19
88 #define MIPS64_EF_R20		20
89 #define MIPS64_EF_R21		21
90 #define MIPS64_EF_R22		22
91 #define MIPS64_EF_R23		23
92 #define MIPS64_EF_R24		24
93 #define MIPS64_EF_R25		25
94 
95 /*
96  * k0/k1 unsaved
97  */
98 #define MIPS64_EF_R26		26
99 #define MIPS64_EF_R27		27
100 
101 
102 #define MIPS64_EF_R28		28
103 #define MIPS64_EF_R29		29
104 #define MIPS64_EF_R30		30
105 #define MIPS64_EF_R31		31
106 
107 /*
108  * Saved special registers
109  */
110 #define MIPS64_EF_LO		32
111 #define MIPS64_EF_HI		33
112 
113 #define MIPS64_EF_CP0_EPC	34
114 #define MIPS64_EF_CP0_BADVADDR	35
115 #define MIPS64_EF_CP0_STATUS	36
116 #define MIPS64_EF_CP0_CAUSE	37
117 
118 #define MIPS64_EF_SIZE		304	/* size in bytes */
119 
120 #if _MIPS_SIM == _MIPS_SIM_ABI32
121 
122 #define EF_R0			MIPS32_EF_R0
123 #define EF_R1			MIPS32_EF_R1
124 #define EF_R2			MIPS32_EF_R2
125 #define EF_R3			MIPS32_EF_R3
126 #define EF_R4			MIPS32_EF_R4
127 #define EF_R5			MIPS32_EF_R5
128 #define EF_R6			MIPS32_EF_R6
129 #define EF_R7			MIPS32_EF_R7
130 #define EF_R8			MIPS32_EF_R8
131 #define EF_R9			MIPS32_EF_R9
132 #define EF_R10			MIPS32_EF_R10
133 #define EF_R11			MIPS32_EF_R11
134 #define EF_R12			MIPS32_EF_R12
135 #define EF_R13			MIPS32_EF_R13
136 #define EF_R14			MIPS32_EF_R14
137 #define EF_R15			MIPS32_EF_R15
138 #define EF_R16			MIPS32_EF_R16
139 #define EF_R17			MIPS32_EF_R17
140 #define EF_R18			MIPS32_EF_R18
141 #define EF_R19			MIPS32_EF_R19
142 #define EF_R20			MIPS32_EF_R20
143 #define EF_R21			MIPS32_EF_R21
144 #define EF_R22			MIPS32_EF_R22
145 #define EF_R23			MIPS32_EF_R23
146 #define EF_R24			MIPS32_EF_R24
147 #define EF_R25			MIPS32_EF_R25
148 #define EF_R26			MIPS32_EF_R26
149 #define EF_R27			MIPS32_EF_R27
150 #define EF_R28			MIPS32_EF_R28
151 #define EF_R29			MIPS32_EF_R29
152 #define EF_R30			MIPS32_EF_R30
153 #define EF_R31			MIPS32_EF_R31
154 #define EF_LO			MIPS32_EF_LO
155 #define EF_HI			MIPS32_EF_HI
156 #define EF_CP0_EPC		MIPS32_EF_CP0_EPC
157 #define EF_CP0_BADVADDR		MIPS32_EF_CP0_BADVADDR
158 #define EF_CP0_STATUS		MIPS32_EF_CP0_STATUS
159 #define EF_CP0_CAUSE		MIPS32_EF_CP0_CAUSE
160 #define EF_UNUSED0		MIPS32_EF_UNUSED0
161 #define EF_SIZE			MIPS32_EF_SIZE
162 
163 #elif _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
164 
165 #define EF_R0			MIPS64_EF_R0
166 #define EF_R1			MIPS64_EF_R1
167 #define EF_R2			MIPS64_EF_R2
168 #define EF_R3			MIPS64_EF_R3
169 #define EF_R4			MIPS64_EF_R4
170 #define EF_R5			MIPS64_EF_R5
171 #define EF_R6			MIPS64_EF_R6
172 #define EF_R7			MIPS64_EF_R7
173 #define EF_R8			MIPS64_EF_R8
174 #define EF_R9			MIPS64_EF_R9
175 #define EF_R10			MIPS64_EF_R10
176 #define EF_R11			MIPS64_EF_R11
177 #define EF_R12			MIPS64_EF_R12
178 #define EF_R13			MIPS64_EF_R13
179 #define EF_R14			MIPS64_EF_R14
180 #define EF_R15			MIPS64_EF_R15
181 #define EF_R16			MIPS64_EF_R16
182 #define EF_R17			MIPS64_EF_R17
183 #define EF_R18			MIPS64_EF_R18
184 #define EF_R19			MIPS64_EF_R19
185 #define EF_R20			MIPS64_EF_R20
186 #define EF_R21			MIPS64_EF_R21
187 #define EF_R22			MIPS64_EF_R22
188 #define EF_R23			MIPS64_EF_R23
189 #define EF_R24			MIPS64_EF_R24
190 #define EF_R25			MIPS64_EF_R25
191 #define EF_R26			MIPS64_EF_R26
192 #define EF_R27			MIPS64_EF_R27
193 #define EF_R28			MIPS64_EF_R28
194 #define EF_R29			MIPS64_EF_R29
195 #define EF_R30			MIPS64_EF_R30
196 #define EF_R31			MIPS64_EF_R31
197 #define EF_LO			MIPS64_EF_LO
198 #define EF_HI			MIPS64_EF_HI
199 #define EF_CP0_EPC		MIPS64_EF_CP0_EPC
200 #define EF_CP0_BADVADDR		MIPS64_EF_CP0_BADVADDR
201 #define EF_CP0_STATUS		MIPS64_EF_CP0_STATUS
202 #define EF_CP0_CAUSE		MIPS64_EF_CP0_CAUSE
203 #define EF_SIZE			MIPS64_EF_SIZE
204 
205 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
206 
207 #endif /* __UAPI_ASM_MIPS_REG_H */
208