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