#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Reg {
NoRegister,
APSR,
APSR_NZCV,
CPSR,
FPCXTNS,
FPCXTS,
FPEXC,
FPINST,
FPSCR,
FPSCR_NZCV,
FPSCR_NZCVQC,
FPSCR_RM,
FPSID,
ITSTATE,
LR,
PC,
RA_AUTH_CODE,
SP,
SPSR,
VPR,
ZR,
D0,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
D8,
D9,
D10,
D11,
D12,
D13,
D14,
D15,
D16,
D17,
D18,
D19,
D20,
D21,
D22,
D23,
D24,
D25,
D26,
D27,
D28,
D29,
D30,
D31,
FPINST2,
MVFR0,
MVFR1,
MVFR2,
P0,
Q0,
Q1,
Q2,
Q3,
Q4,
Q5,
Q6,
Q7,
Q8,
Q9,
Q10,
Q11,
Q12,
Q13,
Q14,
Q15,
R0,
R1,
R2,
R3,
R4,
R5,
R6,
R7,
R8,
R9,
R10,
R11,
R12,
S0,
S1,
S2,
S3,
S4,
S5,
S6,
S7,
S8,
S9,
S10,
S11,
S12,
S13,
S14,
S15,
S16,
S17,
S18,
S19,
S20,
S21,
S22,
S23,
S24,
S25,
S26,
S27,
S28,
S29,
S30,
S31,
D0_D2,
D1_D3,
D2_D4,
D3_D5,
D4_D6,
D5_D7,
D6_D8,
D7_D9,
D8_D10,
D9_D11,
D10_D12,
D11_D13,
D12_D14,
D13_D15,
D14_D16,
D15_D17,
D16_D18,
D17_D19,
D18_D20,
D19_D21,
D20_D22,
D21_D23,
D22_D24,
D23_D25,
D24_D26,
D25_D27,
D26_D28,
D27_D29,
D28_D30,
D29_D31,
Q0_Q1,
Q1_Q2,
Q2_Q3,
Q3_Q4,
Q4_Q5,
Q5_Q6,
Q6_Q7,
Q7_Q8,
Q8_Q9,
Q9_Q10,
Q10_Q11,
Q11_Q12,
Q12_Q13,
Q13_Q14,
Q14_Q15,
Q0_Q1_Q2_Q3,
Q1_Q2_Q3_Q4,
Q2_Q3_Q4_Q5,
Q3_Q4_Q5_Q6,
Q4_Q5_Q6_Q7,
Q5_Q6_Q7_Q8,
Q6_Q7_Q8_Q9,
Q7_Q8_Q9_Q10,
Q8_Q9_Q10_Q11,
Q9_Q10_Q11_Q12,
Q10_Q11_Q12_Q13,
Q11_Q12_Q13_Q14,
Q12_Q13_Q14_Q15,
R0_R1,
R2_R3,
R4_R5,
R6_R7,
R8_R9,
R10_R11,
R12_SP,
D0_D1_D2,
D1_D2_D3,
D2_D3_D4,
D3_D4_D5,
D4_D5_D6,
D5_D6_D7,
D6_D7_D8,
D7_D8_D9,
D8_D9_D10,
D9_D10_D11,
D10_D11_D12,
D11_D12_D13,
D12_D13_D14,
D13_D14_D15,
D14_D15_D16,
D15_D16_D17,
D16_D17_D18,
D17_D18_D19,
D18_D19_D20,
D19_D20_D21,
D20_D21_D22,
D21_D22_D23,
D22_D23_D24,
D23_D24_D25,
D24_D25_D26,
D25_D26_D27,
D26_D27_D28,
D27_D28_D29,
D28_D29_D30,
D29_D30_D31,
D0_D2_D4,
D1_D3_D5,
D2_D4_D6,
D3_D5_D7,
D4_D6_D8,
D5_D7_D9,
D6_D8_D10,
D7_D9_D11,
D8_D10_D12,
D9_D11_D13,
D10_D12_D14,
D11_D13_D15,
D12_D14_D16,
D13_D15_D17,
D14_D16_D18,
D15_D17_D19,
D16_D18_D20,
D17_D19_D21,
D18_D20_D22,
D19_D21_D23,
D20_D22_D24,
D21_D23_D25,
D22_D24_D26,
D23_D25_D27,
D24_D26_D28,
D25_D27_D29,
D26_D28_D30,
D27_D29_D31,
D0_D2_D4_D6,
D1_D3_D5_D7,
D2_D4_D6_D8,
D3_D5_D7_D9,
D4_D6_D8_D10,
D5_D7_D9_D11,
D6_D8_D10_D12,
D7_D9_D11_D13,
D8_D10_D12_D14,
D9_D11_D13_D15,
D10_D12_D14_D16,
D11_D13_D15_D17,
D12_D14_D16_D18,
D13_D15_D17_D19,
D14_D16_D18_D20,
D15_D17_D19_D21,
D16_D18_D20_D22,
D17_D19_D21_D23,
D18_D20_D22_D24,
D19_D21_D23_D25,
D20_D22_D24_D26,
D21_D23_D25_D27,
D22_D24_D26_D28,
D23_D25_D27_D29,
D24_D26_D28_D30,
D25_D27_D29_D31,
D1_D2,
D3_D4,
D5_D6,
D7_D8,
D9_D10,
D11_D12,
D13_D14,
D15_D16,
D17_D18,
D19_D20,
D21_D22,
D23_D24,
D25_D26,
D27_D28,
D29_D30,
D1_D2_D3_D4,
D3_D4_D5_D6,
D5_D6_D7_D8,
D7_D8_D9_D10,
D9_D10_D11_D12,
D11_D12_D13_D14,
D13_D14_D15_D16,
D15_D16_D17_D18,
D17_D18_D19_D20,
D19_D20_D21_D22,
D21_D22_D23_D24,
D23_D24_D25_D26,
D25_D26_D27_D28,
D27_D28_D29_D30,
NUM_TARGET_REGS,
UNKNOWN(u64),
}
impl From<u64> for Reg {
fn from(value: u64) -> Self {
match value {
0 => Reg::NoRegister,
1 => Reg::APSR,
2 => Reg::APSR_NZCV,
3 => Reg::CPSR,
4 => Reg::FPCXTNS,
5 => Reg::FPCXTS,
6 => Reg::FPEXC,
7 => Reg::FPINST,
8 => Reg::FPSCR,
9 => Reg::FPSCR_NZCV,
10 => Reg::FPSCR_NZCVQC,
11 => Reg::FPSCR_RM,
12 => Reg::FPSID,
13 => Reg::ITSTATE,
14 => Reg::LR,
15 => Reg::PC,
16 => Reg::RA_AUTH_CODE,
17 => Reg::SP,
18 => Reg::SPSR,
19 => Reg::VPR,
20 => Reg::ZR,
21 => Reg::D0,
22 => Reg::D1,
23 => Reg::D2,
24 => Reg::D3,
25 => Reg::D4,
26 => Reg::D5,
27 => Reg::D6,
28 => Reg::D7,
29 => Reg::D8,
30 => Reg::D9,
31 => Reg::D10,
32 => Reg::D11,
33 => Reg::D12,
34 => Reg::D13,
35 => Reg::D14,
36 => Reg::D15,
37 => Reg::D16,
38 => Reg::D17,
39 => Reg::D18,
40 => Reg::D19,
41 => Reg::D20,
42 => Reg::D21,
43 => Reg::D22,
44 => Reg::D23,
45 => Reg::D24,
46 => Reg::D25,
47 => Reg::D26,
48 => Reg::D27,
49 => Reg::D28,
50 => Reg::D29,
51 => Reg::D30,
52 => Reg::D31,
53 => Reg::FPINST2,
54 => Reg::MVFR0,
55 => Reg::MVFR1,
56 => Reg::MVFR2,
57 => Reg::P0,
58 => Reg::Q0,
59 => Reg::Q1,
60 => Reg::Q2,
61 => Reg::Q3,
62 => Reg::Q4,
63 => Reg::Q5,
64 => Reg::Q6,
65 => Reg::Q7,
66 => Reg::Q8,
67 => Reg::Q9,
68 => Reg::Q10,
69 => Reg::Q11,
70 => Reg::Q12,
71 => Reg::Q13,
72 => Reg::Q14,
73 => Reg::Q15,
74 => Reg::R0,
75 => Reg::R1,
76 => Reg::R2,
77 => Reg::R3,
78 => Reg::R4,
79 => Reg::R5,
80 => Reg::R6,
81 => Reg::R7,
82 => Reg::R8,
83 => Reg::R9,
84 => Reg::R10,
85 => Reg::R11,
86 => Reg::R12,
87 => Reg::S0,
88 => Reg::S1,
89 => Reg::S2,
90 => Reg::S3,
91 => Reg::S4,
92 => Reg::S5,
93 => Reg::S6,
94 => Reg::S7,
95 => Reg::S8,
96 => Reg::S9,
97 => Reg::S10,
98 => Reg::S11,
99 => Reg::S12,
100 => Reg::S13,
101 => Reg::S14,
102 => Reg::S15,
103 => Reg::S16,
104 => Reg::S17,
105 => Reg::S18,
106 => Reg::S19,
107 => Reg::S20,
108 => Reg::S21,
109 => Reg::S22,
110 => Reg::S23,
111 => Reg::S24,
112 => Reg::S25,
113 => Reg::S26,
114 => Reg::S27,
115 => Reg::S28,
116 => Reg::S29,
117 => Reg::S30,
118 => Reg::S31,
119 => Reg::D0_D2,
120 => Reg::D1_D3,
121 => Reg::D2_D4,
122 => Reg::D3_D5,
123 => Reg::D4_D6,
124 => Reg::D5_D7,
125 => Reg::D6_D8,
126 => Reg::D7_D9,
127 => Reg::D8_D10,
128 => Reg::D9_D11,
129 => Reg::D10_D12,
130 => Reg::D11_D13,
131 => Reg::D12_D14,
132 => Reg::D13_D15,
133 => Reg::D14_D16,
134 => Reg::D15_D17,
135 => Reg::D16_D18,
136 => Reg::D17_D19,
137 => Reg::D18_D20,
138 => Reg::D19_D21,
139 => Reg::D20_D22,
140 => Reg::D21_D23,
141 => Reg::D22_D24,
142 => Reg::D23_D25,
143 => Reg::D24_D26,
144 => Reg::D25_D27,
145 => Reg::D26_D28,
146 => Reg::D27_D29,
147 => Reg::D28_D30,
148 => Reg::D29_D31,
149 => Reg::Q0_Q1,
150 => Reg::Q1_Q2,
151 => Reg::Q2_Q3,
152 => Reg::Q3_Q4,
153 => Reg::Q4_Q5,
154 => Reg::Q5_Q6,
155 => Reg::Q6_Q7,
156 => Reg::Q7_Q8,
157 => Reg::Q8_Q9,
158 => Reg::Q9_Q10,
159 => Reg::Q10_Q11,
160 => Reg::Q11_Q12,
161 => Reg::Q12_Q13,
162 => Reg::Q13_Q14,
163 => Reg::Q14_Q15,
164 => Reg::Q0_Q1_Q2_Q3,
165 => Reg::Q1_Q2_Q3_Q4,
166 => Reg::Q2_Q3_Q4_Q5,
167 => Reg::Q3_Q4_Q5_Q6,
168 => Reg::Q4_Q5_Q6_Q7,
169 => Reg::Q5_Q6_Q7_Q8,
170 => Reg::Q6_Q7_Q8_Q9,
171 => Reg::Q7_Q8_Q9_Q10,
172 => Reg::Q8_Q9_Q10_Q11,
173 => Reg::Q9_Q10_Q11_Q12,
174 => Reg::Q10_Q11_Q12_Q13,
175 => Reg::Q11_Q12_Q13_Q14,
176 => Reg::Q12_Q13_Q14_Q15,
177 => Reg::R0_R1,
178 => Reg::R2_R3,
179 => Reg::R4_R5,
180 => Reg::R6_R7,
181 => Reg::R8_R9,
182 => Reg::R10_R11,
183 => Reg::R12_SP,
184 => Reg::D0_D1_D2,
185 => Reg::D1_D2_D3,
186 => Reg::D2_D3_D4,
187 => Reg::D3_D4_D5,
188 => Reg::D4_D5_D6,
189 => Reg::D5_D6_D7,
190 => Reg::D6_D7_D8,
191 => Reg::D7_D8_D9,
192 => Reg::D8_D9_D10,
193 => Reg::D9_D10_D11,
194 => Reg::D10_D11_D12,
195 => Reg::D11_D12_D13,
196 => Reg::D12_D13_D14,
197 => Reg::D13_D14_D15,
198 => Reg::D14_D15_D16,
199 => Reg::D15_D16_D17,
200 => Reg::D16_D17_D18,
201 => Reg::D17_D18_D19,
202 => Reg::D18_D19_D20,
203 => Reg::D19_D20_D21,
204 => Reg::D20_D21_D22,
205 => Reg::D21_D22_D23,
206 => Reg::D22_D23_D24,
207 => Reg::D23_D24_D25,
208 => Reg::D24_D25_D26,
209 => Reg::D25_D26_D27,
210 => Reg::D26_D27_D28,
211 => Reg::D27_D28_D29,
212 => Reg::D28_D29_D30,
213 => Reg::D29_D30_D31,
214 => Reg::D0_D2_D4,
215 => Reg::D1_D3_D5,
216 => Reg::D2_D4_D6,
217 => Reg::D3_D5_D7,
218 => Reg::D4_D6_D8,
219 => Reg::D5_D7_D9,
220 => Reg::D6_D8_D10,
221 => Reg::D7_D9_D11,
222 => Reg::D8_D10_D12,
223 => Reg::D9_D11_D13,
224 => Reg::D10_D12_D14,
225 => Reg::D11_D13_D15,
226 => Reg::D12_D14_D16,
227 => Reg::D13_D15_D17,
228 => Reg::D14_D16_D18,
229 => Reg::D15_D17_D19,
230 => Reg::D16_D18_D20,
231 => Reg::D17_D19_D21,
232 => Reg::D18_D20_D22,
233 => Reg::D19_D21_D23,
234 => Reg::D20_D22_D24,
235 => Reg::D21_D23_D25,
236 => Reg::D22_D24_D26,
237 => Reg::D23_D25_D27,
238 => Reg::D24_D26_D28,
239 => Reg::D25_D27_D29,
240 => Reg::D26_D28_D30,
241 => Reg::D27_D29_D31,
242 => Reg::D0_D2_D4_D6,
243 => Reg::D1_D3_D5_D7,
244 => Reg::D2_D4_D6_D8,
245 => Reg::D3_D5_D7_D9,
246 => Reg::D4_D6_D8_D10,
247 => Reg::D5_D7_D9_D11,
248 => Reg::D6_D8_D10_D12,
249 => Reg::D7_D9_D11_D13,
250 => Reg::D8_D10_D12_D14,
251 => Reg::D9_D11_D13_D15,
252 => Reg::D10_D12_D14_D16,
253 => Reg::D11_D13_D15_D17,
254 => Reg::D12_D14_D16_D18,
255 => Reg::D13_D15_D17_D19,
256 => Reg::D14_D16_D18_D20,
257 => Reg::D15_D17_D19_D21,
258 => Reg::D16_D18_D20_D22,
259 => Reg::D17_D19_D21_D23,
260 => Reg::D18_D20_D22_D24,
261 => Reg::D19_D21_D23_D25,
262 => Reg::D20_D22_D24_D26,
263 => Reg::D21_D23_D25_D27,
264 => Reg::D22_D24_D26_D28,
265 => Reg::D23_D25_D27_D29,
266 => Reg::D24_D26_D28_D30,
267 => Reg::D25_D27_D29_D31,
268 => Reg::D1_D2,
269 => Reg::D3_D4,
270 => Reg::D5_D6,
271 => Reg::D7_D8,
272 => Reg::D9_D10,
273 => Reg::D11_D12,
274 => Reg::D13_D14,
275 => Reg::D15_D16,
276 => Reg::D17_D18,
277 => Reg::D19_D20,
278 => Reg::D21_D22,
279 => Reg::D23_D24,
280 => Reg::D25_D26,
281 => Reg::D27_D28,
282 => Reg::D29_D30,
283 => Reg::D1_D2_D3_D4,
284 => Reg::D3_D4_D5_D6,
285 => Reg::D5_D6_D7_D8,
286 => Reg::D7_D8_D9_D10,
287 => Reg::D9_D10_D11_D12,
288 => Reg::D11_D12_D13_D14,
289 => Reg::D13_D14_D15_D16,
290 => Reg::D15_D16_D17_D18,
291 => Reg::D17_D18_D19_D20,
292 => Reg::D19_D20_D21_D22,
293 => Reg::D21_D22_D23_D24,
294 => Reg::D23_D24_D25_D26,
295 => Reg::D25_D26_D27_D28,
296 => Reg::D27_D28_D29_D30,
297 => Reg::NUM_TARGET_REGS,
_ => Reg::UNKNOWN(value),
}
}
}