1 //===-- lldb-loongarch-register-enums.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_PLUGINS_PROCESS_UTILITY_LLDB_LOONGARCH_REGISTER_ENUMS_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LLDB_LOONGARCH_REGISTER_ENUMS_H
11 
12 // LLDB register codes (e.g. RegisterKind == eRegisterKindLLDB)
13 
14 // Internal codes for all loongarch registers.
15 enum {
16   // The same order as user_regs_struct in <asm/ptrace.h>
17   // note: these enum values are used as byte_offset
18   gpr_first_loongarch = 0,
19   gpr_r0_loongarch = gpr_first_loongarch,
20   gpr_r1_loongarch,
21   gpr_r2_loongarch,
22   gpr_r3_loongarch,
23   gpr_r4_loongarch,
24   gpr_r5_loongarch,
25   gpr_r6_loongarch,
26   gpr_r7_loongarch,
27   gpr_r8_loongarch,
28   gpr_r9_loongarch,
29   gpr_r10_loongarch,
30   gpr_r11_loongarch,
31   gpr_r12_loongarch,
32   gpr_r13_loongarch,
33   gpr_r14_loongarch,
34   gpr_r15_loongarch,
35   gpr_r16_loongarch,
36   gpr_r17_loongarch,
37   gpr_r18_loongarch,
38   gpr_r19_loongarch,
39   gpr_r20_loongarch,
40   gpr_r21_loongarch,
41   gpr_r22_loongarch,
42   gpr_r23_loongarch,
43   gpr_r24_loongarch,
44   gpr_r25_loongarch,
45   gpr_r26_loongarch,
46   gpr_r27_loongarch,
47   gpr_r28_loongarch,
48   gpr_r29_loongarch,
49   gpr_r30_loongarch,
50   gpr_r31_loongarch,
51   gpr_orig_a0_loongarch,
52   gpr_pc_loongarch,
53   gpr_badv_loongarch,
54   gpr_reserved0_loongarch,
55   gpr_reserved1_loongarch,
56   gpr_reserved2_loongarch,
57   gpr_reserved3_loongarch,
58   gpr_reserved4_loongarch,
59   gpr_reserved5_loongarch,
60   gpr_reserved6_loongarch,
61   gpr_reserved7_loongarch,
62   gpr_reserved8_loongarch,
63   gpr_reserved9_loongarch,
64   gpr_last_loongarch = 44,
65 
66   gpr_zero_loongarch = gpr_r0_loongarch,
67   gpr_ra_loongarch = gpr_r1_loongarch,
68   gpr_tp_loongarch = gpr_r2_loongarch,
69   gpr_sp_loongarch = gpr_r3_loongarch,
70   gpr_a0_loongarch = gpr_r4_loongarch,
71   gpr_a1_loongarch = gpr_r5_loongarch,
72   gpr_a2_loongarch = gpr_r6_loongarch,
73   gpr_a3_loongarch = gpr_r7_loongarch,
74   gpr_a4_loongarch = gpr_r8_loongarch,
75   gpr_a5_loongarch = gpr_r9_loongarch,
76   gpr_a6_loongarch = gpr_r10_loongarch,
77   gpr_a7_loongarch = gpr_r11_loongarch,
78   gpr_t0_loongarch = gpr_r12_loongarch,
79   gpr_t1_loongarch = gpr_r13_loongarch,
80   gpr_t2_loongarch = gpr_r14_loongarch,
81   gpr_t3_loongarch = gpr_r15_loongarch,
82   gpr_t4_loongarch = gpr_r16_loongarch,
83   gpr_t5_loongarch = gpr_r17_loongarch,
84   gpr_t6_loongarch = gpr_r18_loongarch,
85   gpr_t7_loongarch = gpr_r19_loongarch,
86   gpr_t8_loongarch = gpr_r20_loongarch,
87   gpr_fp_loongarch = gpr_r22_loongarch,
88   gpr_s0_loongarch = gpr_r23_loongarch,
89   gpr_s1_loongarch = gpr_r24_loongarch,
90   gpr_s2_loongarch = gpr_r25_loongarch,
91   gpr_s3_loongarch = gpr_r26_loongarch,
92   gpr_s4_loongarch = gpr_r27_loongarch,
93   gpr_s5_loongarch = gpr_r28_loongarch,
94   gpr_s6_loongarch = gpr_r29_loongarch,
95   gpr_s7_loongarch = gpr_r30_loongarch,
96   gpr_s8_loongarch = gpr_r31_loongarch,
97 
98   fpr_first_loongarch = 45,
99   fpr_f0_loongarch = fpr_first_loongarch,
100   fpr_f1_loongarch,
101   fpr_f2_loongarch,
102   fpr_f3_loongarch,
103   fpr_f4_loongarch,
104   fpr_f5_loongarch,
105   fpr_f6_loongarch,
106   fpr_f7_loongarch,
107   fpr_f8_loongarch,
108   fpr_f9_loongarch,
109   fpr_f10_loongarch,
110   fpr_f11_loongarch,
111   fpr_f12_loongarch,
112   fpr_f13_loongarch,
113   fpr_f14_loongarch,
114   fpr_f15_loongarch,
115   fpr_f16_loongarch,
116   fpr_f17_loongarch,
117   fpr_f18_loongarch,
118   fpr_f19_loongarch,
119   fpr_f20_loongarch,
120   fpr_f21_loongarch,
121   fpr_f22_loongarch,
122   fpr_f23_loongarch,
123   fpr_f24_loongarch,
124   fpr_f25_loongarch,
125   fpr_f26_loongarch,
126   fpr_f27_loongarch,
127   fpr_f28_loongarch,
128   fpr_f29_loongarch,
129   fpr_f30_loongarch,
130   fpr_f31_loongarch,
131   fpr_fcc0_loongarch,
132   fpr_fcc1_loongarch,
133   fpr_fcc2_loongarch,
134   fpr_fcc3_loongarch,
135   fpr_fcc4_loongarch,
136   fpr_fcc5_loongarch,
137   fpr_fcc6_loongarch,
138   fpr_fcc7_loongarch,
139   fpr_fcsr_loongarch,
140   fpr_last_loongarch = fpr_fcsr_loongarch,
141 
142   fpr_fa0_loongarch = fpr_f0_loongarch,
143   fpr_fa1_loongarch = fpr_f1_loongarch,
144   fpr_fa2_loongarch = fpr_f2_loongarch,
145   fpr_fa3_loongarch = fpr_f3_loongarch,
146   fpr_fa4_loongarch = fpr_f4_loongarch,
147   fpr_fa5_loongarch = fpr_f5_loongarch,
148   fpr_fa6_loongarch = fpr_f6_loongarch,
149   fpr_fa7_loongarch = fpr_f7_loongarch,
150   fpr_ft0_loongarch = fpr_f8_loongarch,
151   fpr_ft1_loongarch = fpr_f9_loongarch,
152   fpr_ft2_loongarch = fpr_f10_loongarch,
153   fpr_ft3_loongarch = fpr_f11_loongarch,
154   fpr_ft4_loongarch = fpr_f12_loongarch,
155   fpr_ft5_loongarch = fpr_f13_loongarch,
156   fpr_ft6_loongarch = fpr_f14_loongarch,
157   fpr_ft7_loongarch = fpr_f15_loongarch,
158   fpr_ft8_loongarch = fpr_f16_loongarch,
159   fpr_ft9_loongarch = fpr_f17_loongarch,
160   fpr_ft10_loongarch = fpr_f18_loongarch,
161   fpr_ft11_loongarch = fpr_f19_loongarch,
162   fpr_ft12_loongarch = fpr_f20_loongarch,
163   fpr_ft13_loongarch = fpr_f21_loongarch,
164   fpr_ft14_loongarch = fpr_f22_loongarch,
165   fpr_ft15_loongarch = fpr_f23_loongarch,
166   fpr_fs0_loongarch = fpr_f24_loongarch,
167   fpr_fs1_loongarch = fpr_f25_loongarch,
168   fpr_fs2_loongarch = fpr_f26_loongarch,
169   fpr_fs3_loongarch = fpr_f27_loongarch,
170   fpr_fs4_loongarch = fpr_f28_loongarch,
171   fpr_fs5_loongarch = fpr_f29_loongarch,
172   fpr_fs6_loongarch = fpr_f30_loongarch,
173   fpr_fs7_loongarch = fpr_f31_loongarch,
174 
175   k_num_registers_loongarch
176 };
177 
178 #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LLDB_LOONGARCH_REGISTER_ENUMS_H
179