blob: 56d15cb8109fe97665ec14f3731ce0d427088cd8 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/* 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 */