1
2
3
4
5
6
7 #ifndef __ASM_MIPS_GDB_STUB_H
8 #define __ASM_MIPS_GDB_STUB_H
9
10
11
12
13
14
15 #define REG_EPC 37
16 #define REG_FP 72
17 #define REG_SP 29
18
19
20
21
22
23
24
25 #define NUMREGS 90
26
27 #define GDB_FR_REG0 (PTRSIZE*5)
28 #define GDB_FR_REG1 ((GDB_FR_REG0) + 4)
29 #define GDB_FR_REG2 ((GDB_FR_REG1) + 4)
30 #define GDB_FR_REG3 ((GDB_FR_REG2) + 4)
31 #define GDB_FR_REG4 ((GDB_FR_REG3) + 4)
32 #define GDB_FR_REG5 ((GDB_FR_REG4) + 4)
33 #define GDB_FR_REG6 ((GDB_FR_REG5) + 4)
34 #define GDB_FR_REG7 ((GDB_FR_REG6) + 4)
35 #define GDB_FR_REG8 ((GDB_FR_REG7) + 4)
36 #define GDB_FR_REG9 ((GDB_FR_REG8) + 4)
37 #define GDB_FR_REG10 ((GDB_FR_REG9) + 4)
38 #define GDB_FR_REG11 ((GDB_FR_REG10) + 4)
39 #define GDB_FR_REG12 ((GDB_FR_REG11) + 4)
40 #define GDB_FR_REG13 ((GDB_FR_REG12) + 4)
41 #define GDB_FR_REG14 ((GDB_FR_REG13) + 4)
42 #define GDB_FR_REG15 ((GDB_FR_REG14) + 4)
43 #define GDB_FR_REG16 ((GDB_FR_REG15) + 4)
44 #define GDB_FR_REG17 ((GDB_FR_REG16) + 4)
45 #define GDB_FR_REG18 ((GDB_FR_REG17) + 4)
46 #define GDB_FR_REG19 ((GDB_FR_REG18) + 4)
47 #define GDB_FR_REG20 ((GDB_FR_REG19) + 4)
48 #define GDB_FR_REG21 ((GDB_FR_REG20) + 4)
49 #define GDB_FR_REG22 ((GDB_FR_REG21) + 4)
50 #define GDB_FR_REG23 ((GDB_FR_REG22) + 4)
51 #define GDB_FR_REG24 ((GDB_FR_REG23) + 4)
52 #define GDB_FR_REG25 ((GDB_FR_REG24) + 4)
53 #define GDB_FR_REG26 ((GDB_FR_REG25) + 4)
54 #define GDB_FR_REG27 ((GDB_FR_REG26) + 4)
55 #define GDB_FR_REG28 ((GDB_FR_REG27) + 4)
56 #define GDB_FR_REG29 ((GDB_FR_REG28) + 4)
57 #define GDB_FR_REG30 ((GDB_FR_REG29) + 4)
58 #define GDB_FR_REG31 ((GDB_FR_REG30) + 4)
59
60
61
62
63 #define GDB_FR_STATUS ((GDB_FR_REG31) + 4)
64 #define GDB_FR_LO ((GDB_FR_STATUS) + 4)
65 #define GDB_FR_HI ((GDB_FR_LO) + 4)
66 #define GDB_FR_BADVADDR ((GDB_FR_HI) + 4)
67 #define GDB_FR_CAUSE ((GDB_FR_BADVADDR) + 4)
68 #define GDB_FR_EPC ((GDB_FR_CAUSE) + 4)
69
70
71
72
73 #define GDB_FR_FPR0 ((GDB_FR_EPC) + 4)
74 #define GDB_FR_FPR1 ((GDB_FR_FPR0) + 4)
75 #define GDB_FR_FPR2 ((GDB_FR_FPR1) + 4)
76 #define GDB_FR_FPR3 ((GDB_FR_FPR2) + 4)
77 #define GDB_FR_FPR4 ((GDB_FR_FPR3) + 4)
78 #define GDB_FR_FPR5 ((GDB_FR_FPR4) + 4)
79 #define GDB_FR_FPR6 ((GDB_FR_FPR5) + 4)
80 #define GDB_FR_FPR7 ((GDB_FR_FPR6) + 4)
81 #define GDB_FR_FPR8 ((GDB_FR_FPR7) + 4)
82 #define GDB_FR_FPR9 ((GDB_FR_FPR8) + 4)
83 #define GDB_FR_FPR10 ((GDB_FR_FPR9) + 4)
84 #define GDB_FR_FPR11 ((GDB_FR_FPR10) + 4)
85 #define GDB_FR_FPR12 ((GDB_FR_FPR11) + 4)
86 #define GDB_FR_FPR13 ((GDB_FR_FPR12) + 4)
87 #define GDB_FR_FPR14 ((GDB_FR_FPR13) + 4)
88 #define GDB_FR_FPR15 ((GDB_FR_FPR14) + 4)
89 #define GDB_FR_FPR16 ((GDB_FR_FPR15) + 4)
90 #define GDB_FR_FPR17 ((GDB_FR_FPR16) + 4)
91 #define GDB_FR_FPR18 ((GDB_FR_FPR17) + 4)
92 #define GDB_FR_FPR19 ((GDB_FR_FPR18) + 4)
93 #define GDB_FR_FPR20 ((GDB_FR_FPR19) + 4)
94 #define GDB_FR_FPR21 ((GDB_FR_FPR20) + 4)
95 #define GDB_FR_FPR22 ((GDB_FR_FPR21) + 4)
96 #define GDB_FR_FPR23 ((GDB_FR_FPR22) + 4)
97 #define GDB_FR_FPR24 ((GDB_FR_FPR23) + 4)
98 #define GDB_FR_FPR25 ((GDB_FR_FPR24) + 4)
99 #define GDB_FR_FPR26 ((GDB_FR_FPR25) + 4)
100 #define GDB_FR_FPR27 ((GDB_FR_FPR26) + 4)
101 #define GDB_FR_FPR28 ((GDB_FR_FPR27) + 4)
102 #define GDB_FR_FPR29 ((GDB_FR_FPR28) + 4)
103 #define GDB_FR_FPR30 ((GDB_FR_FPR29) + 4)
104 #define GDB_FR_FPR31 ((GDB_FR_FPR30) + 4)
105
106 #define GDB_FR_FSR ((GDB_FR_FPR31) + 4)
107 #define GDB_FR_FIR ((GDB_FR_FSR) + 4)
108 #define GDB_FR_FRP ((GDB_FR_FIR) + 4)
109
110 #define GDB_FR_DUMMY ((GDB_FR_FRP) + 4)
111
112
113
114
115 #define GDB_FR_CP0_INDEX ((GDB_FR_DUMMY) + 4)
116 #define GDB_FR_CP0_RANDOM ((GDB_FR_CP0_INDEX) + 4)
117 #define GDB_FR_CP0_ENTRYLO0 ((GDB_FR_CP0_RANDOM) + 4)
118 #define GDB_FR_CP0_ENTRYLO1 ((GDB_FR_CP0_ENTRYLO0) + 4)
119 #define GDB_FR_CP0_REG4 ((GDB_FR_CP0_ENTRYLO1) + 4)
120 #define GDB_FR_CP0_PAGEMASK ((GDB_FR_CP0_REG4) + 4)
121 #define GDB_FR_CP0_WIRED ((GDB_FR_CP0_PAGEMASK) + 4)
122 #define GDB_FR_CP0_REG7 ((GDB_FR_CP0_WIRED) + 4)
123 #define GDB_FR_CP0_REG8 ((GDB_FR_CP0_REG7) + 4)
124 #define GDB_FR_CP0_REG9 ((GDB_FR_CP0_REG8) + 4)
125 #define GDB_FR_CP0_ENTRYHI ((GDB_FR_CP0_REG9) + 4)
126 #define GDB_FR_CP0_REG11 ((GDB_FR_CP0_ENTRYHI) + 4)
127 #define GDB_FR_CP0_REG12 ((GDB_FR_CP0_REG11) + 4)
128 #define GDB_FR_CP0_REG13 ((GDB_FR_CP0_REG12) + 4)
129 #define GDB_FR_CP0_REG14 ((GDB_FR_CP0_REG13) + 4)
130 #define GDB_FR_CP0_PRID ((GDB_FR_CP0_REG14) + 4)
131
132 #define GDB_FR_SIZE ((((GDB_FR_CP0_PRID) + 4) + (PTRSIZE-1)) & ~(PTRSIZE-1))
133
134 #ifndef __LANGUAGE_ASSEMBLY__
135
136
137
138
139
140
141 struct gdb_regs {
142
143
144
145
146 unsigned long pad0[5];
147
148
149
150
151 long reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7;
152 long reg8, reg9, reg10, reg11, reg12, reg13, reg14, reg15;
153 long reg16, reg17, reg18, reg19, reg20, reg21, reg22, reg23;
154 long reg24, reg25, reg26, reg27, reg28, reg29, reg30, reg31;
155
156
157
158
159 long cp0_status;
160 long lo;
161 long hi;
162 long cp0_badvaddr;
163 long cp0_cause;
164 long cp0_epc;
165
166
167
168
169 long fpr0, fpr1, fpr2, fpr3, fpr4, fpr5, fpr6, fpr7;
170 long fpr8, fpr9, fpr10, fpr11, fpr12, fpr13, fpr14, fpr15;
171 long fpr16, fpr17, fpr18, fpr19, fpr20, fpr21, fpr22, fpr23;
172 long fpr24, fpr25, fpr26, fpr27, fpr28, fpr29, fpr30, fpr31;
173
174 long cp1_fsr;
175 long cp1_fir;
176
177
178
179
180 long frame_ptr;
181 long dummy;
182
183
184
185
186 long cp0_index;
187 long cp0_random;
188 long cp0_entrylo0;
189 long cp0_entrylo1;
190 long cp0_reg4;
191 long cp0_pagemask;
192 long cp0_wired;
193 long cp0_reg7;
194 long cp0_reg8;
195 long cp0_reg9;
196 long cp0_entryhi;
197 long cp0_reg11;
198 long cp0_reg12;
199 long cp0_reg13;
200 long cp0_reg14;
201 long cp0_prid;
202 };
203
204
205
206
207
208 void set_debug_traps(void);
209
210 #endif
211 #endif