]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h
Update compiler-rt to 3.7.0 release. This also includes the sanitizer
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / Process / Utility / RegisterContext_mips.h
1 //===-- RegisterContext_mips.h --------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef liblldb_RegisterContext_mips64_H_
11 #define liblldb_RegisterContext_mips64_H_
12
13 // eh_frame and DWARF Register numbers (eRegisterKindEHFrame & eRegisterKindDWARF)
14
15 enum
16 {
17     // GP Registers
18     gcc_dwarf_zero_mips = 0,
19     gcc_dwarf_r1_mips,
20     gcc_dwarf_r2_mips,
21     gcc_dwarf_r3_mips,
22     gcc_dwarf_r4_mips,
23     gcc_dwarf_r5_mips,
24     gcc_dwarf_r6_mips,
25     gcc_dwarf_r7_mips,
26     gcc_dwarf_r8_mips,
27     gcc_dwarf_r9_mips,
28     gcc_dwarf_r10_mips,
29     gcc_dwarf_r11_mips,
30     gcc_dwarf_r12_mips,
31     gcc_dwarf_r13_mips,
32     gcc_dwarf_r14_mips,
33     gcc_dwarf_r15_mips,
34     gcc_dwarf_r16_mips,
35     gcc_dwarf_r17_mips,
36     gcc_dwarf_r18_mips,
37     gcc_dwarf_r19_mips,
38     gcc_dwarf_r20_mips,
39     gcc_dwarf_r21_mips,
40     gcc_dwarf_r22_mips,
41     gcc_dwarf_r23_mips,
42     gcc_dwarf_r24_mips,
43     gcc_dwarf_r25_mips,
44     gcc_dwarf_r26_mips,
45     gcc_dwarf_r27_mips,
46     gcc_dwarf_gp_mips,
47     gcc_dwarf_sp_mips,
48     gcc_dwarf_r30_mips,
49     gcc_dwarf_ra_mips,
50     gcc_dwarf_sr_mips,
51     gcc_dwarf_lo_mips,
52     gcc_dwarf_hi_mips,
53     gcc_dwarf_bad_mips,
54     gcc_dwarf_cause_mips,
55     gcc_dwarf_pc_mips,
56     gcc_dwarf_f0_mips,
57     gcc_dwarf_f1_mips,
58     gcc_dwarf_f2_mips,
59     gcc_dwarf_f3_mips,
60     gcc_dwarf_f4_mips,
61     gcc_dwarf_f5_mips,
62     gcc_dwarf_f6_mips,
63     gcc_dwarf_f7_mips,
64     gcc_dwarf_f8_mips,
65     gcc_dwarf_f9_mips,
66     gcc_dwarf_f10_mips,
67     gcc_dwarf_f11_mips,
68     gcc_dwarf_f12_mips,
69     gcc_dwarf_f13_mips,
70     gcc_dwarf_f14_mips,
71     gcc_dwarf_f15_mips,
72     gcc_dwarf_f16_mips,
73     gcc_dwarf_f17_mips,
74     gcc_dwarf_f18_mips,
75     gcc_dwarf_f19_mips,
76     gcc_dwarf_f20_mips,
77     gcc_dwarf_f21_mips,
78     gcc_dwarf_f22_mips,
79     gcc_dwarf_f23_mips,
80     gcc_dwarf_f24_mips,
81     gcc_dwarf_f25_mips,
82     gcc_dwarf_f26_mips,
83     gcc_dwarf_f27_mips,
84     gcc_dwarf_f28_mips,
85     gcc_dwarf_f29_mips,
86     gcc_dwarf_f30_mips,
87     gcc_dwarf_f31_mips,
88     gcc_dwarf_fcsr_mips,
89     gcc_dwarf_fir_mips,
90     gcc_dwarf_w0_mips,
91     gcc_dwarf_w1_mips,
92     gcc_dwarf_w2_mips,
93     gcc_dwarf_w3_mips,
94     gcc_dwarf_w4_mips,
95     gcc_dwarf_w5_mips,
96     gcc_dwarf_w6_mips,
97     gcc_dwarf_w7_mips,
98     gcc_dwarf_w8_mips,
99     gcc_dwarf_w9_mips,
100     gcc_dwarf_w10_mips,
101     gcc_dwarf_w11_mips,
102     gcc_dwarf_w12_mips,
103     gcc_dwarf_w13_mips,
104     gcc_dwarf_w14_mips,
105     gcc_dwarf_w15_mips,
106     gcc_dwarf_w16_mips,
107     gcc_dwarf_w17_mips,
108     gcc_dwarf_w18_mips,
109     gcc_dwarf_w19_mips,
110     gcc_dwarf_w20_mips,
111     gcc_dwarf_w21_mips,
112     gcc_dwarf_w22_mips,
113     gcc_dwarf_w23_mips,
114     gcc_dwarf_w24_mips,
115     gcc_dwarf_w25_mips,
116     gcc_dwarf_w26_mips,
117     gcc_dwarf_w27_mips,
118     gcc_dwarf_w28_mips,
119     gcc_dwarf_w29_mips,
120     gcc_dwarf_w30_mips,
121     gcc_dwarf_w31_mips,
122     gcc_dwarf_mcsr_mips,
123     gcc_dwarf_mir_mips,
124     gcc_dwarf_config5_mips,
125     gcc_dwarf_ic_mips,
126     gcc_dwarf_dummy_mips
127 };
128
129 enum
130 {
131     gcc_dwarf_zero_mips64 = 0,
132     gcc_dwarf_r1_mips64,
133     gcc_dwarf_r2_mips64,
134     gcc_dwarf_r3_mips64,
135     gcc_dwarf_r4_mips64,
136     gcc_dwarf_r5_mips64,
137     gcc_dwarf_r6_mips64,
138     gcc_dwarf_r7_mips64,
139     gcc_dwarf_r8_mips64,
140     gcc_dwarf_r9_mips64,
141     gcc_dwarf_r10_mips64,
142     gcc_dwarf_r11_mips64,
143     gcc_dwarf_r12_mips64,
144     gcc_dwarf_r13_mips64,
145     gcc_dwarf_r14_mips64,
146     gcc_dwarf_r15_mips64,
147     gcc_dwarf_r16_mips64,
148     gcc_dwarf_r17_mips64,
149     gcc_dwarf_r18_mips64,
150     gcc_dwarf_r19_mips64,
151     gcc_dwarf_r20_mips64,
152     gcc_dwarf_r21_mips64,
153     gcc_dwarf_r22_mips64,
154     gcc_dwarf_r23_mips64,
155     gcc_dwarf_r24_mips64,
156     gcc_dwarf_r25_mips64,
157     gcc_dwarf_r26_mips64,
158     gcc_dwarf_r27_mips64,
159     gcc_dwarf_gp_mips64,
160     gcc_dwarf_sp_mips64,
161     gcc_dwarf_r30_mips64,
162     gcc_dwarf_ra_mips64,
163     gcc_dwarf_sr_mips64,
164     gcc_dwarf_lo_mips64,
165     gcc_dwarf_hi_mips64,
166     gcc_dwarf_bad_mips64,
167     gcc_dwarf_cause_mips64,
168     gcc_dwarf_pc_mips64,
169     gcc_dwarf_f0_mips64,
170     gcc_dwarf_f1_mips64,
171     gcc_dwarf_f2_mips64,
172     gcc_dwarf_f3_mips64,
173     gcc_dwarf_f4_mips64,
174     gcc_dwarf_f5_mips64,
175     gcc_dwarf_f6_mips64,
176     gcc_dwarf_f7_mips64,
177     gcc_dwarf_f8_mips64,
178     gcc_dwarf_f9_mips64,
179     gcc_dwarf_f10_mips64,
180     gcc_dwarf_f11_mips64,
181     gcc_dwarf_f12_mips64,
182     gcc_dwarf_f13_mips64,
183     gcc_dwarf_f14_mips64,
184     gcc_dwarf_f15_mips64,
185     gcc_dwarf_f16_mips64,
186     gcc_dwarf_f17_mips64,
187     gcc_dwarf_f18_mips64,
188     gcc_dwarf_f19_mips64,
189     gcc_dwarf_f20_mips64,
190     gcc_dwarf_f21_mips64,
191     gcc_dwarf_f22_mips64,
192     gcc_dwarf_f23_mips64,
193     gcc_dwarf_f24_mips64,
194     gcc_dwarf_f25_mips64,
195     gcc_dwarf_f26_mips64,
196     gcc_dwarf_f27_mips64,
197     gcc_dwarf_f28_mips64,
198     gcc_dwarf_f29_mips64,
199     gcc_dwarf_f30_mips64,
200     gcc_dwarf_f31_mips64,
201     gcc_dwarf_fcsr_mips64,
202     gcc_dwarf_fir_mips64,
203     gcc_dwarf_ic_mips64,
204     gcc_dwarf_dummy_mips64,
205     gcc_dwarf_w0_mips64,
206     gcc_dwarf_w1_mips64,
207     gcc_dwarf_w2_mips64,
208     gcc_dwarf_w3_mips64,
209     gcc_dwarf_w4_mips64,
210     gcc_dwarf_w5_mips64,
211     gcc_dwarf_w6_mips64,
212     gcc_dwarf_w7_mips64,
213     gcc_dwarf_w8_mips64,
214     gcc_dwarf_w9_mips64,
215     gcc_dwarf_w10_mips64,
216     gcc_dwarf_w11_mips64,
217     gcc_dwarf_w12_mips64,
218     gcc_dwarf_w13_mips64,
219     gcc_dwarf_w14_mips64,
220     gcc_dwarf_w15_mips64,
221     gcc_dwarf_w16_mips64,
222     gcc_dwarf_w17_mips64,
223     gcc_dwarf_w18_mips64,
224     gcc_dwarf_w19_mips64,
225     gcc_dwarf_w20_mips64,
226     gcc_dwarf_w21_mips64,
227     gcc_dwarf_w22_mips64,
228     gcc_dwarf_w23_mips64,
229     gcc_dwarf_w24_mips64,
230     gcc_dwarf_w25_mips64,
231     gcc_dwarf_w26_mips64,
232     gcc_dwarf_w27_mips64,
233     gcc_dwarf_w28_mips64,
234     gcc_dwarf_w29_mips64,
235     gcc_dwarf_w30_mips64,
236     gcc_dwarf_w31_mips64,
237     gcc_dwarf_mcsr_mips64,
238     gcc_dwarf_mir_mips64,
239     gcc_dwarf_config5_mips64,
240 };
241
242 // GDB Register numbers (eRegisterKindGDB)
243 enum
244 {
245     gdb_zero_mips = 0,
246     gdb_r1_mips,
247     gdb_r2_mips,
248     gdb_r3_mips,
249     gdb_r4_mips,
250     gdb_r5_mips,
251     gdb_r6_mips,
252     gdb_r7_mips,
253     gdb_r8_mips,
254     gdb_r9_mips,
255     gdb_r10_mips,
256     gdb_r11_mips,
257     gdb_r12_mips,
258     gdb_r13_mips,
259     gdb_r14_mips,
260     gdb_r15_mips,
261     gdb_r16_mips,
262     gdb_r17_mips,
263     gdb_r18_mips,
264     gdb_r19_mips,
265     gdb_r20_mips,
266     gdb_r21_mips,
267     gdb_r22_mips,
268     gdb_r23_mips,
269     gdb_r24_mips,
270     gdb_r25_mips,
271     gdb_r26_mips,
272     gdb_r27_mips,
273     gdb_gp_mips,
274     gdb_sp_mips,
275     gdb_r30_mips,
276     gdb_ra_mips,
277     gdb_sr_mips,
278     gdb_lo_mips,
279     gdb_hi_mips,
280     gdb_bad_mips,
281     gdb_cause_mips,
282     gdb_pc_mips,
283     gdb_f0_mips,
284     gdb_f1_mips,
285     gdb_f2_mips,
286     gdb_f3_mips,
287     gdb_f4_mips,
288     gdb_f5_mips,
289     gdb_f6_mips,
290     gdb_f7_mips,
291     gdb_f8_mips,
292     gdb_f9_mips,
293     gdb_f10_mips,
294     gdb_f11_mips,
295     gdb_f12_mips,
296     gdb_f13_mips,
297     gdb_f14_mips,
298     gdb_f15_mips,
299     gdb_f16_mips,
300     gdb_f17_mips,
301     gdb_f18_mips,
302     gdb_f19_mips,
303     gdb_f20_mips,
304     gdb_f21_mips,
305     gdb_f22_mips,
306     gdb_f23_mips,
307     gdb_f24_mips,
308     gdb_f25_mips,
309     gdb_f26_mips,
310     gdb_f27_mips,
311     gdb_f28_mips,
312     gdb_f29_mips,
313     gdb_f30_mips,
314     gdb_f31_mips,
315     gdb_fcsr_mips,
316     gdb_fir_mips,
317     gdb_w0_mips,
318     gdb_w1_mips,
319     gdb_w2_mips,
320     gdb_w3_mips,
321     gdb_w4_mips,
322     gdb_w5_mips,
323     gdb_w6_mips,
324     gdb_w7_mips,
325     gdb_w8_mips,
326     gdb_w9_mips,
327     gdb_w10_mips,
328     gdb_w11_mips,
329     gdb_w12_mips,
330     gdb_w13_mips,
331     gdb_w14_mips,
332     gdb_w15_mips,
333     gdb_w16_mips,
334     gdb_w17_mips,
335     gdb_w18_mips,
336     gdb_w19_mips,
337     gdb_w20_mips,
338     gdb_w21_mips,
339     gdb_w22_mips,
340     gdb_w23_mips,
341     gdb_w24_mips,
342     gdb_w25_mips,
343     gdb_w26_mips,
344     gdb_w27_mips,
345     gdb_w28_mips,
346     gdb_w29_mips,
347     gdb_w30_mips,
348     gdb_w31_mips,
349     gdb_mcsr_mips,
350     gdb_mir_mips,
351     gdb_config5_mips,
352     gdb_ic_mips,
353     gdb_dummy_mips
354 };
355
356 enum
357 {
358     gdb_zero_mips64 = 0,
359     gdb_r1_mips64,
360     gdb_r2_mips64,
361     gdb_r3_mips64,
362     gdb_r4_mips64,
363     gdb_r5_mips64,
364     gdb_r6_mips64,
365     gdb_r7_mips64,
366     gdb_r8_mips64,
367     gdb_r9_mips64,
368     gdb_r10_mips64,
369     gdb_r11_mips64,
370     gdb_r12_mips64,
371     gdb_r13_mips64,
372     gdb_r14_mips64,
373     gdb_r15_mips64,
374     gdb_r16_mips64,
375     gdb_r17_mips64,
376     gdb_r18_mips64,
377     gdb_r19_mips64,
378     gdb_r20_mips64,
379     gdb_r21_mips64,
380     gdb_r22_mips64,
381     gdb_r23_mips64,
382     gdb_r24_mips64,
383     gdb_r25_mips64,
384     gdb_r26_mips64,
385     gdb_r27_mips64,
386     gdb_gp_mips64,
387     gdb_sp_mips64,
388     gdb_r30_mips64,
389     gdb_ra_mips64,
390     gdb_sr_mips64,
391     gdb_lo_mips64,
392     gdb_hi_mips64,
393     gdb_bad_mips64,
394     gdb_cause_mips64,
395     gdb_pc_mips64,
396     gdb_f0_mips64,
397     gdb_f1_mips64,
398     gdb_f2_mips64,
399     gdb_f3_mips64,
400     gdb_f4_mips64,
401     gdb_f5_mips64,
402     gdb_f6_mips64,
403     gdb_f7_mips64,
404     gdb_f8_mips64,
405     gdb_f9_mips64,
406     gdb_f10_mips64,
407     gdb_f11_mips64,
408     gdb_f12_mips64,
409     gdb_f13_mips64,
410     gdb_f14_mips64,
411     gdb_f15_mips64,
412     gdb_f16_mips64,
413     gdb_f17_mips64,
414     gdb_f18_mips64,
415     gdb_f19_mips64,
416     gdb_f20_mips64,
417     gdb_f21_mips64,
418     gdb_f22_mips64,
419     gdb_f23_mips64,
420     gdb_f24_mips64,
421     gdb_f25_mips64,
422     gdb_f26_mips64,
423     gdb_f27_mips64,
424     gdb_f28_mips64,
425     gdb_f29_mips64,
426     gdb_f30_mips64,
427     gdb_f31_mips64,
428     gdb_fcsr_mips64,
429     gdb_fir_mips64,
430     gdb_ic_mips64,
431     gdb_dummy_mips64,
432     gdb_w0_mips64,
433     gdb_w1_mips64,
434     gdb_w2_mips64,
435     gdb_w3_mips64,
436     gdb_w4_mips64,
437     gdb_w5_mips64,
438     gdb_w6_mips64,
439     gdb_w7_mips64,
440     gdb_w8_mips64,
441     gdb_w9_mips64,
442     gdb_w10_mips64,
443     gdb_w11_mips64,
444     gdb_w12_mips64,
445     gdb_w13_mips64,
446     gdb_w14_mips64,
447     gdb_w15_mips64,
448     gdb_w16_mips64,
449     gdb_w17_mips64,
450     gdb_w18_mips64,
451     gdb_w19_mips64,
452     gdb_w20_mips64,
453     gdb_w21_mips64,
454     gdb_w22_mips64,
455     gdb_w23_mips64,
456     gdb_w24_mips64,
457     gdb_w25_mips64,
458     gdb_w26_mips64,
459     gdb_w27_mips64,
460     gdb_w28_mips64,
461     gdb_w29_mips64,
462     gdb_w30_mips64,
463     gdb_w31_mips64,
464     gdb_mcsr_mips64,
465     gdb_mir_mips64,
466     gdb_config5_mips64,
467 };
468
469 struct IOVEC_mips
470 {
471     void    *iov_base;
472     size_t   iov_len;
473 };
474
475 // GP registers
476 struct GPR_linux_mips
477 {
478     uint64_t zero;
479     uint64_t r1;
480     uint64_t r2;
481     uint64_t r3;
482     uint64_t r4;
483     uint64_t r5;
484     uint64_t r6;
485     uint64_t r7;
486     uint64_t r8;
487     uint64_t r9;
488     uint64_t r10;
489     uint64_t r11;
490     uint64_t r12;
491     uint64_t r13;
492     uint64_t r14;
493     uint64_t r15;
494     uint64_t r16;
495     uint64_t r17;
496     uint64_t r18;
497     uint64_t r19;
498     uint64_t r20;
499     uint64_t r21;
500     uint64_t r22;
501     uint64_t r23;
502     uint64_t r24;
503     uint64_t r25;
504     uint64_t r26;
505     uint64_t r27;
506     uint64_t gp;
507     uint64_t sp;
508     uint64_t r30;
509     uint64_t ra;
510     uint64_t mullo;
511     uint64_t mulhi;
512     uint64_t pc;
513     uint64_t badvaddr;
514     uint64_t sr;
515     uint64_t cause;
516     uint64_t config5;
517 };
518
519 struct FPR_linux_mips
520 {
521      uint64_t f0;
522      uint64_t f1;
523      uint64_t f2;
524      uint64_t f3;
525      uint64_t f4;
526      uint64_t f5;
527      uint64_t f6;
528      uint64_t f7;
529      uint64_t f8;
530      uint64_t f9;
531      uint64_t f10;
532      uint64_t f11;
533      uint64_t f12;
534      uint64_t f13;
535      uint64_t f14;
536      uint64_t f15;
537      uint64_t f16;
538      uint64_t f17;
539      uint64_t f18;
540      uint64_t f19;
541      uint64_t f20;
542      uint64_t f21;
543      uint64_t f22;
544      uint64_t f23;
545      uint64_t f24;
546      uint64_t f25;
547      uint64_t f26;
548      uint64_t f27;
549      uint64_t f28;
550      uint64_t f29;
551      uint64_t f30;
552      uint64_t f31;
553      uint32_t fcsr;
554      uint32_t fir;
555      uint32_t config5;
556 };
557
558 struct MSAReg
559 {
560     uint8_t byte[16];
561 };
562
563 struct MSA_linux_mips
564 {
565     MSAReg  w0;
566     MSAReg  w1;
567     MSAReg  w2;
568     MSAReg  w3;
569     MSAReg  w4;
570     MSAReg  w5;
571     MSAReg  w6;
572     MSAReg  w7;
573     MSAReg  w8;
574     MSAReg  w9;
575     MSAReg  w10;
576     MSAReg  w11;
577     MSAReg  w12;
578     MSAReg  w13;
579     MSAReg  w14;
580     MSAReg  w15;
581     MSAReg  w16;
582     MSAReg  w17;
583     MSAReg  w18;
584     MSAReg  w19;
585     MSAReg  w20;
586     MSAReg  w21;
587     MSAReg  w22;
588     MSAReg  w23;
589     MSAReg  w24;
590     MSAReg  w25;
591     MSAReg  w26;
592     MSAReg  w27;
593     MSAReg  w28;
594     MSAReg  w29;
595     MSAReg  w30;
596     MSAReg  w31;
597     uint32_t fcsr;      /* FPU control status register */
598     uint32_t fir;       /* FPU implementaion revision */
599     uint32_t mcsr;      /* MSA control status register */
600     uint32_t mir;       /* MSA implementation revision */
601     uint32_t config5;   /* Config5 register */
602 };
603
604 struct UserArea
605 {
606     GPR_linux_mips gpr; // General purpose registers.
607     FPR_linux_mips fpr; // Floating point registers.
608     MSA_linux_mips msa; // MSA registers.
609 };
610
611 #endif // liblldb_RegisterContext_mips64_H_