1 //===-- LoongArch_DWARF_Registers.h -----------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_UTILITY_LOONGARCH_DWARF_REGISTERS_H
10 #define LLDB_SOURCE_UTILITY_LOONGARCH_DWARF_REGISTERS_H
11 
12 #include "lldb/lldb-private.h"
13 
14 namespace loongarch_dwarf {
15 
16 enum {
17   dwarf_gpr_r0 = 0,
18   dwarf_gpr_r1,
19   dwarf_gpr_r2,
20   dwarf_gpr_r3,
21   dwarf_gpr_r4,
22   dwarf_gpr_r5,
23   dwarf_gpr_r6,
24   dwarf_gpr_r7,
25   dwarf_gpr_r8,
26   dwarf_gpr_r9,
27   dwarf_gpr_r10,
28   dwarf_gpr_r11,
29   dwarf_gpr_r12,
30   dwarf_gpr_r13,
31   dwarf_gpr_r14,
32   dwarf_gpr_r15,
33   dwarf_gpr_r16,
34   dwarf_gpr_r17,
35   dwarf_gpr_r18,
36   dwarf_gpr_r19,
37   dwarf_gpr_r20,
38   dwarf_gpr_r21,
39   dwarf_gpr_r22,
40   dwarf_gpr_r23,
41   dwarf_gpr_r24,
42   dwarf_gpr_r25,
43   dwarf_gpr_r26,
44   dwarf_gpr_r27,
45   dwarf_gpr_r28,
46   dwarf_gpr_r29,
47   dwarf_gpr_r30,
48   dwarf_gpr_r31 = 31,
49 
50   dwarf_gpr_orig_a0,
51   dwarf_gpr_pc,
52   dwarf_gpr_badv,
53 
54   dwarf_gpr_reserved0 = 35,
55   dwarf_gpr_reserved1,
56   dwarf_gpr_reserved2,
57   dwarf_gpr_reserved3,
58   dwarf_gpr_reserved4,
59   dwarf_gpr_reserved5,
60   dwarf_gpr_reserved6,
61   dwarf_gpr_reserved7,
62   dwarf_gpr_reserved8,
63   dwarf_gpr_reserved9,
64 
65   dwarf_fpr_f0 = 45,
66   dwarf_fpr_f1,
67   dwarf_fpr_f2,
68   dwarf_fpr_f3,
69   dwarf_fpr_f4,
70   dwarf_fpr_f5,
71   dwarf_fpr_f6,
72   dwarf_fpr_f7,
73   dwarf_fpr_f8,
74   dwarf_fpr_f9,
75   dwarf_fpr_f10,
76   dwarf_fpr_f11,
77   dwarf_fpr_f12,
78   dwarf_fpr_f13,
79   dwarf_fpr_f14,
80   dwarf_fpr_f15,
81   dwarf_fpr_f16,
82   dwarf_fpr_f17,
83   dwarf_fpr_f18,
84   dwarf_fpr_f19,
85   dwarf_fpr_f20,
86   dwarf_fpr_f21,
87   dwarf_fpr_f22,
88   dwarf_fpr_f23,
89   dwarf_fpr_f24,
90   dwarf_fpr_f25,
91   dwarf_fpr_f26,
92   dwarf_fpr_f27,
93   dwarf_fpr_f28,
94   dwarf_fpr_f29,
95   dwarf_fpr_f30,
96   dwarf_fpr_f31 = 76,
97 
98   dwarf_fpr_fcc0,
99   dwarf_fpr_fcc1,
100   dwarf_fpr_fcc2,
101   dwarf_fpr_fcc3,
102   dwarf_fpr_fcc4,
103   dwarf_fpr_fcc5,
104   dwarf_fpr_fcc6,
105   dwarf_fpr_fcc7,
106   dwarf_fpr_fcsr,
107 
108   // register name alias
109   dwarf_gpr_zero = dwarf_gpr_r0,
110   dwarf_gpr_ra = dwarf_gpr_r1,
111   dwarf_gpr_tp = dwarf_gpr_r2,
112   dwarf_gpr_sp = dwarf_gpr_r3,
113   dwarf_gpr_a0 = dwarf_gpr_r4,
114   dwarf_gpr_a1 = dwarf_gpr_r5,
115   dwarf_gpr_a2 = dwarf_gpr_r6,
116   dwarf_gpr_a3 = dwarf_gpr_r7,
117   dwarf_gpr_a4 = dwarf_gpr_r8,
118   dwarf_gpr_a5 = dwarf_gpr_r9,
119   dwarf_gpr_a6 = dwarf_gpr_r10,
120   dwarf_gpr_a7 = dwarf_gpr_r11,
121   dwarf_gpr_t0 = dwarf_gpr_r12,
122   dwarf_gpr_t1 = dwarf_gpr_r13,
123   dwarf_gpr_t2 = dwarf_gpr_r14,
124   dwarf_gpr_t3 = dwarf_gpr_r15,
125   dwarf_gpr_t4 = dwarf_gpr_r16,
126   dwarf_gpr_t5 = dwarf_gpr_r17,
127   dwarf_gpr_t6 = dwarf_gpr_r18,
128   dwarf_gpr_t7 = dwarf_gpr_r19,
129   dwarf_gpr_t8 = dwarf_gpr_r20,
130   dwarf_gpr_fp = dwarf_gpr_r22,
131   dwarf_gpr_s0 = dwarf_gpr_r23,
132   dwarf_gpr_s1 = dwarf_gpr_r24,
133   dwarf_gpr_s2 = dwarf_gpr_r25,
134   dwarf_gpr_s3 = dwarf_gpr_r26,
135   dwarf_gpr_s4 = dwarf_gpr_r27,
136   dwarf_gpr_s5 = dwarf_gpr_r28,
137   dwarf_gpr_s6 = dwarf_gpr_r29,
138   dwarf_gpr_s7 = dwarf_gpr_r30,
139   dwarf_gpr_s8 = dwarf_gpr_r31,
140 
141   dwarf_fpr_fa0 = dwarf_fpr_f0,
142   dwarf_fpr_fa1 = dwarf_fpr_f1,
143   dwarf_fpr_fa2 = dwarf_fpr_f2,
144   dwarf_fpr_fa3 = dwarf_fpr_f3,
145   dwarf_fpr_fa4 = dwarf_fpr_f4,
146   dwarf_fpr_fa5 = dwarf_fpr_f5,
147   dwarf_fpr_fa6 = dwarf_fpr_f6,
148   dwarf_fpr_fa7 = dwarf_fpr_f7,
149   dwarf_fpr_ft0 = dwarf_fpr_f8,
150   dwarf_fpr_ft1 = dwarf_fpr_f9,
151   dwarf_fpr_ft2 = dwarf_fpr_f10,
152   dwarf_fpr_ft3 = dwarf_fpr_f11,
153   dwarf_fpr_ft4 = dwarf_fpr_f12,
154   dwarf_fpr_ft5 = dwarf_fpr_f13,
155   dwarf_fpr_ft6 = dwarf_fpr_f14,
156   dwarf_fpr_ft7 = dwarf_fpr_f15,
157   dwarf_fpr_ft8 = dwarf_fpr_f16,
158   dwarf_fpr_ft9 = dwarf_fpr_f17,
159   dwarf_fpr_ft10 = dwarf_fpr_f18,
160   dwarf_fpr_ft11 = dwarf_fpr_f19,
161   dwarf_fpr_ft12 = dwarf_fpr_f20,
162   dwarf_fpr_ft13 = dwarf_fpr_f21,
163   dwarf_fpr_ft14 = dwarf_fpr_f22,
164   dwarf_fpr_ft15 = dwarf_fpr_f23,
165   dwarf_fpr_fs0 = dwarf_fpr_f24,
166   dwarf_fpr_fs1 = dwarf_fpr_f25,
167   dwarf_fpr_fs2 = dwarf_fpr_f26,
168   dwarf_fpr_fs3 = dwarf_fpr_f27,
169   dwarf_fpr_fs4 = dwarf_fpr_f28,
170   dwarf_fpr_fs5 = dwarf_fpr_f29,
171   dwarf_fpr_fs6 = dwarf_fpr_f30,
172   dwarf_fpr_fs7 = dwarf_fpr_f31,
173 };
174 
175 } // namespace loongarch_dwarf
176 
177 #endif // LLDB_SOURCE_UTILITY_LOONGARCH_DWARF_REGISTERS_H
178