#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Reg {
NoRegister,
FCSR,
FFLAGS,
FRM,
SF_VCIX_STATE,
SSP,
VL,
VLENB,
VTYPE,
VXRM,
VXSAT,
DUMMY_REG_PAIR_WITH_X0,
T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
V0,
V1,
V2,
V3,
V4,
V5,
V6,
V7,
V8,
V9,
V10,
V11,
V12,
V13,
V14,
V15,
V16,
V17,
V18,
V19,
V20,
V21,
V22,
V23,
V24,
V25,
V26,
V27,
V28,
V29,
V30,
V31,
X0,
X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31,
F0_D,
F1_D,
F2_D,
F3_D,
F4_D,
F5_D,
F6_D,
F7_D,
F8_D,
F9_D,
F10_D,
F11_D,
F12_D,
F13_D,
F14_D,
F15_D,
F16_D,
F17_D,
F18_D,
F19_D,
F20_D,
F21_D,
F22_D,
F23_D,
F24_D,
F25_D,
F26_D,
F27_D,
F28_D,
F29_D,
F30_D,
F31_D,
F0_F,
F1_F,
F2_F,
F3_F,
F4_F,
F5_F,
F6_F,
F7_F,
F8_F,
F9_F,
F10_F,
F11_F,
F12_F,
F13_F,
F14_F,
F15_F,
F16_F,
F17_F,
F18_F,
F19_F,
F20_F,
F21_F,
F22_F,
F23_F,
F24_F,
F25_F,
F26_F,
F27_F,
F28_F,
F29_F,
F30_F,
F31_F,
F0_H,
F1_H,
F2_H,
F3_H,
F4_H,
F5_H,
F6_H,
F7_H,
F8_H,
F9_H,
F10_H,
F11_H,
F12_H,
F13_H,
F14_H,
F15_H,
F16_H,
F17_H,
F18_H,
F19_H,
F20_H,
F21_H,
F22_H,
F23_H,
F24_H,
F25_H,
F26_H,
F27_H,
F28_H,
F29_H,
F30_H,
F31_H,
F0_Q,
F1_Q,
F2_Q,
F3_Q,
F4_Q,
F5_Q,
F6_Q,
F7_Q,
F8_Q,
F9_Q,
F10_Q,
F11_Q,
F12_Q,
F13_Q,
F14_Q,
F15_Q,
F16_Q,
F17_Q,
F18_Q,
F19_Q,
F20_Q,
F21_Q,
F22_Q,
F23_Q,
F24_Q,
F25_Q,
F26_Q,
F27_Q,
F28_Q,
F29_Q,
F30_Q,
F31_Q,
X0_H,
X1_H,
X2_H,
X3_H,
X4_H,
X5_H,
X6_H,
X7_H,
X8_H,
X9_H,
X10_H,
X11_H,
X12_H,
X13_H,
X14_H,
X15_H,
X16_H,
X17_H,
X18_H,
X19_H,
X20_H,
X21_H,
X22_H,
X23_H,
X24_H,
X25_H,
X26_H,
X27_H,
X28_H,
X29_H,
X30_H,
X31_H,
X0_Pair,
X0_W,
X1_W,
X2_W,
X3_W,
X4_W,
X5_W,
X6_W,
X7_W,
X8_W,
X9_W,
X10_W,
X11_W,
X12_W,
X13_W,
X14_W,
X15_W,
X16_W,
X17_W,
X18_W,
X19_W,
X20_W,
X21_W,
X22_W,
X23_W,
X24_W,
X25_W,
X26_W,
X27_W,
X28_W,
X29_W,
X30_W,
X31_W,
V0M2,
V0M4,
V0M8,
V2M2,
V4M2,
V4M4,
V6M2,
V8M2,
V8M4,
V8M8,
V10M2,
V12M2,
V12M4,
V14M2,
V16M2,
V16M4,
V16M8,
V18M2,
V20M2,
V20M4,
V22M2,
V24M2,
V24M4,
V24M8,
V26M2,
V28M2,
V28M4,
V30M2,
X2_X3,
X4_X5,
X6_X7,
X8_X9,
X10_X11,
X12_X13,
X14_X15,
X16_X17,
X18_X19,
X20_X21,
X22_X23,
X24_X25,
X26_X27,
X28_X29,
X30_X31,
V1_V2,
V2_V3,
V3_V4,
V4_V5,
V5_V6,
V6_V7,
V7_V8,
V8_V9,
V9_V10,
V10_V11,
V11_V12,
V12_V13,
V13_V14,
V14_V15,
V15_V16,
V16_V17,
V17_V18,
V18_V19,
V19_V20,
V20_V21,
V21_V22,
V22_V23,
V23_V24,
V24_V25,
V25_V26,
V26_V27,
V27_V28,
V28_V29,
V29_V30,
V30_V31,
V0_V1,
V2M2_V4M2,
V4M2_V6M2,
V6M2_V8M2,
V8M2_V10M2,
V10M2_V12M2,
V12M2_V14M2,
V14M2_V16M2,
V16M2_V18M2,
V18M2_V20M2,
V20M2_V22M2,
V22M2_V24M2,
V24M2_V26M2,
V26M2_V28M2,
V28M2_V30M2,
V0M2_V2M2,
V4M4_V8M4,
V8M4_V12M4,
V12M4_V16M4,
V16M4_V20M4,
V20M4_V24M4,
V24M4_V28M4,
V0M4_V4M4,
V1_V2_V3,
V2_V3_V4,
V3_V4_V5,
V4_V5_V6,
V5_V6_V7,
V6_V7_V8,
V7_V8_V9,
V8_V9_V10,
V9_V10_V11,
V10_V11_V12,
V11_V12_V13,
V12_V13_V14,
V13_V14_V15,
V14_V15_V16,
V15_V16_V17,
V16_V17_V18,
V17_V18_V19,
V18_V19_V20,
V19_V20_V21,
V20_V21_V22,
V21_V22_V23,
V22_V23_V24,
V23_V24_V25,
V24_V25_V26,
V25_V26_V27,
V26_V27_V28,
V27_V28_V29,
V28_V29_V30,
V29_V30_V31,
V0_V1_V2,
V2M2_V4M2_V6M2,
V4M2_V6M2_V8M2,
V6M2_V8M2_V10M2,
V8M2_V10M2_V12M2,
V10M2_V12M2_V14M2,
V12M2_V14M2_V16M2,
V14M2_V16M2_V18M2,
V16M2_V18M2_V20M2,
V18M2_V20M2_V22M2,
V20M2_V22M2_V24M2,
V22M2_V24M2_V26M2,
V24M2_V26M2_V28M2,
V26M2_V28M2_V30M2,
V0M2_V2M2_V4M2,
V1_V2_V3_V4,
V2_V3_V4_V5,
V3_V4_V5_V6,
V4_V5_V6_V7,
V5_V6_V7_V8,
V6_V7_V8_V9,
V7_V8_V9_V10,
V8_V9_V10_V11,
V9_V10_V11_V12,
V10_V11_V12_V13,
V11_V12_V13_V14,
V12_V13_V14_V15,
V13_V14_V15_V16,
V14_V15_V16_V17,
V15_V16_V17_V18,
V16_V17_V18_V19,
V17_V18_V19_V20,
V18_V19_V20_V21,
V19_V20_V21_V22,
V20_V21_V22_V23,
V21_V22_V23_V24,
V22_V23_V24_V25,
V23_V24_V25_V26,
V24_V25_V26_V27,
V25_V26_V27_V28,
V26_V27_V28_V29,
V27_V28_V29_V30,
V28_V29_V30_V31,
V0_V1_V2_V3,
V2M2_V4M2_V6M2_V8M2,
V4M2_V6M2_V8M2_V10M2,
V6M2_V8M2_V10M2_V12M2,
V8M2_V10M2_V12M2_V14M2,
V10M2_V12M2_V14M2_V16M2,
V12M2_V14M2_V16M2_V18M2,
V14M2_V16M2_V18M2_V20M2,
V16M2_V18M2_V20M2_V22M2,
V18M2_V20M2_V22M2_V24M2,
V20M2_V22M2_V24M2_V26M2,
V22M2_V24M2_V26M2_V28M2,
V24M2_V26M2_V28M2_V30M2,
V0M2_V2M2_V4M2_V6M2,
V1_V2_V3_V4_V5,
V2_V3_V4_V5_V6,
V3_V4_V5_V6_V7,
V4_V5_V6_V7_V8,
V5_V6_V7_V8_V9,
V6_V7_V8_V9_V10,
V7_V8_V9_V10_V11,
V8_V9_V10_V11_V12,
V9_V10_V11_V12_V13,
V10_V11_V12_V13_V14,
V11_V12_V13_V14_V15,
V12_V13_V14_V15_V16,
V13_V14_V15_V16_V17,
V14_V15_V16_V17_V18,
V15_V16_V17_V18_V19,
V16_V17_V18_V19_V20,
V17_V18_V19_V20_V21,
V18_V19_V20_V21_V22,
V19_V20_V21_V22_V23,
V20_V21_V22_V23_V24,
V21_V22_V23_V24_V25,
V22_V23_V24_V25_V26,
V23_V24_V25_V26_V27,
V24_V25_V26_V27_V28,
V25_V26_V27_V28_V29,
V26_V27_V28_V29_V30,
V27_V28_V29_V30_V31,
V0_V1_V2_V3_V4,
V1_V2_V3_V4_V5_V6,
V2_V3_V4_V5_V6_V7,
V3_V4_V5_V6_V7_V8,
V4_V5_V6_V7_V8_V9,
V5_V6_V7_V8_V9_V10,
V6_V7_V8_V9_V10_V11,
V7_V8_V9_V10_V11_V12,
V8_V9_V10_V11_V12_V13,
V9_V10_V11_V12_V13_V14,
V10_V11_V12_V13_V14_V15,
V11_V12_V13_V14_V15_V16,
V12_V13_V14_V15_V16_V17,
V13_V14_V15_V16_V17_V18,
V14_V15_V16_V17_V18_V19,
V15_V16_V17_V18_V19_V20,
V16_V17_V18_V19_V20_V21,
V17_V18_V19_V20_V21_V22,
V18_V19_V20_V21_V22_V23,
V19_V20_V21_V22_V23_V24,
V20_V21_V22_V23_V24_V25,
V21_V22_V23_V24_V25_V26,
V22_V23_V24_V25_V26_V27,
V23_V24_V25_V26_V27_V28,
V24_V25_V26_V27_V28_V29,
V25_V26_V27_V28_V29_V30,
V26_V27_V28_V29_V30_V31,
V0_V1_V2_V3_V4_V5,
V1_V2_V3_V4_V5_V6_V7,
V2_V3_V4_V5_V6_V7_V8,
V3_V4_V5_V6_V7_V8_V9,
V4_V5_V6_V7_V8_V9_V10,
V5_V6_V7_V8_V9_V10_V11,
V6_V7_V8_V9_V10_V11_V12,
V7_V8_V9_V10_V11_V12_V13,
V8_V9_V10_V11_V12_V13_V14,
V9_V10_V11_V12_V13_V14_V15,
V10_V11_V12_V13_V14_V15_V16,
V11_V12_V13_V14_V15_V16_V17,
V12_V13_V14_V15_V16_V17_V18,
V13_V14_V15_V16_V17_V18_V19,
V14_V15_V16_V17_V18_V19_V20,
V15_V16_V17_V18_V19_V20_V21,
V16_V17_V18_V19_V20_V21_V22,
V17_V18_V19_V20_V21_V22_V23,
V18_V19_V20_V21_V22_V23_V24,
V19_V20_V21_V22_V23_V24_V25,
V20_V21_V22_V23_V24_V25_V26,
V21_V22_V23_V24_V25_V26_V27,
V22_V23_V24_V25_V26_V27_V28,
V23_V24_V25_V26_V27_V28_V29,
V24_V25_V26_V27_V28_V29_V30,
V25_V26_V27_V28_V29_V30_V31,
V0_V1_V2_V3_V4_V5_V6,
V1_V2_V3_V4_V5_V6_V7_V8,
V2_V3_V4_V5_V6_V7_V8_V9,
V3_V4_V5_V6_V7_V8_V9_V10,
V4_V5_V6_V7_V8_V9_V10_V11,
V5_V6_V7_V8_V9_V10_V11_V12,
V6_V7_V8_V9_V10_V11_V12_V13,
V7_V8_V9_V10_V11_V12_V13_V14,
V8_V9_V10_V11_V12_V13_V14_V15,
V9_V10_V11_V12_V13_V14_V15_V16,
V10_V11_V12_V13_V14_V15_V16_V17,
V11_V12_V13_V14_V15_V16_V17_V18,
V12_V13_V14_V15_V16_V17_V18_V19,
V13_V14_V15_V16_V17_V18_V19_V20,
V14_V15_V16_V17_V18_V19_V20_V21,
V15_V16_V17_V18_V19_V20_V21_V22,
V16_V17_V18_V19_V20_V21_V22_V23,
V17_V18_V19_V20_V21_V22_V23_V24,
V18_V19_V20_V21_V22_V23_V24_V25,
V19_V20_V21_V22_V23_V24_V25_V26,
V20_V21_V22_V23_V24_V25_V26_V27,
V21_V22_V23_V24_V25_V26_V27_V28,
V22_V23_V24_V25_V26_V27_V28_V29,
V23_V24_V25_V26_V27_V28_V29_V30,
V24_V25_V26_V27_V28_V29_V30_V31,
V0_V1_V2_V3_V4_V5_V6_V7,
NUM_TARGET_REGS,
UNKNOWN(u64),
}
impl From<u64> for Reg {
fn from(value: u64) -> Self {
match value {
0 => Reg::NoRegister,
1 => Reg::FCSR,
2 => Reg::FFLAGS,
3 => Reg::FRM,
4 => Reg::SF_VCIX_STATE,
5 => Reg::SSP,
6 => Reg::VL,
7 => Reg::VLENB,
8 => Reg::VTYPE,
9 => Reg::VXRM,
10 => Reg::VXSAT,
11 => Reg::DUMMY_REG_PAIR_WITH_X0,
12 => Reg::T0,
13 => Reg::T1,
14 => Reg::T2,
15 => Reg::T3,
16 => Reg::T4,
17 => Reg::T5,
18 => Reg::T6,
19 => Reg::T7,
20 => Reg::T8,
21 => Reg::T9,
22 => Reg::T10,
23 => Reg::T11,
24 => Reg::T12,
25 => Reg::T13,
26 => Reg::T14,
27 => Reg::T15,
28 => Reg::V0,
29 => Reg::V1,
30 => Reg::V2,
31 => Reg::V3,
32 => Reg::V4,
33 => Reg::V5,
34 => Reg::V6,
35 => Reg::V7,
36 => Reg::V8,
37 => Reg::V9,
38 => Reg::V10,
39 => Reg::V11,
40 => Reg::V12,
41 => Reg::V13,
42 => Reg::V14,
43 => Reg::V15,
44 => Reg::V16,
45 => Reg::V17,
46 => Reg::V18,
47 => Reg::V19,
48 => Reg::V20,
49 => Reg::V21,
50 => Reg::V22,
51 => Reg::V23,
52 => Reg::V24,
53 => Reg::V25,
54 => Reg::V26,
55 => Reg::V27,
56 => Reg::V28,
57 => Reg::V29,
58 => Reg::V30,
59 => Reg::V31,
60 => Reg::X0,
61 => Reg::X1,
62 => Reg::X2,
63 => Reg::X3,
64 => Reg::X4,
65 => Reg::X5,
66 => Reg::X6,
67 => Reg::X7,
68 => Reg::X8,
69 => Reg::X9,
70 => Reg::X10,
71 => Reg::X11,
72 => Reg::X12,
73 => Reg::X13,
74 => Reg::X14,
75 => Reg::X15,
76 => Reg::X16,
77 => Reg::X17,
78 => Reg::X18,
79 => Reg::X19,
80 => Reg::X20,
81 => Reg::X21,
82 => Reg::X22,
83 => Reg::X23,
84 => Reg::X24,
85 => Reg::X25,
86 => Reg::X26,
87 => Reg::X27,
88 => Reg::X28,
89 => Reg::X29,
90 => Reg::X30,
91 => Reg::X31,
92 => Reg::F0_D,
93 => Reg::F1_D,
94 => Reg::F2_D,
95 => Reg::F3_D,
96 => Reg::F4_D,
97 => Reg::F5_D,
98 => Reg::F6_D,
99 => Reg::F7_D,
100 => Reg::F8_D,
101 => Reg::F9_D,
102 => Reg::F10_D,
103 => Reg::F11_D,
104 => Reg::F12_D,
105 => Reg::F13_D,
106 => Reg::F14_D,
107 => Reg::F15_D,
108 => Reg::F16_D,
109 => Reg::F17_D,
110 => Reg::F18_D,
111 => Reg::F19_D,
112 => Reg::F20_D,
113 => Reg::F21_D,
114 => Reg::F22_D,
115 => Reg::F23_D,
116 => Reg::F24_D,
117 => Reg::F25_D,
118 => Reg::F26_D,
119 => Reg::F27_D,
120 => Reg::F28_D,
121 => Reg::F29_D,
122 => Reg::F30_D,
123 => Reg::F31_D,
124 => Reg::F0_F,
125 => Reg::F1_F,
126 => Reg::F2_F,
127 => Reg::F3_F,
128 => Reg::F4_F,
129 => Reg::F5_F,
130 => Reg::F6_F,
131 => Reg::F7_F,
132 => Reg::F8_F,
133 => Reg::F9_F,
134 => Reg::F10_F,
135 => Reg::F11_F,
136 => Reg::F12_F,
137 => Reg::F13_F,
138 => Reg::F14_F,
139 => Reg::F15_F,
140 => Reg::F16_F,
141 => Reg::F17_F,
142 => Reg::F18_F,
143 => Reg::F19_F,
144 => Reg::F20_F,
145 => Reg::F21_F,
146 => Reg::F22_F,
147 => Reg::F23_F,
148 => Reg::F24_F,
149 => Reg::F25_F,
150 => Reg::F26_F,
151 => Reg::F27_F,
152 => Reg::F28_F,
153 => Reg::F29_F,
154 => Reg::F30_F,
155 => Reg::F31_F,
156 => Reg::F0_H,
157 => Reg::F1_H,
158 => Reg::F2_H,
159 => Reg::F3_H,
160 => Reg::F4_H,
161 => Reg::F5_H,
162 => Reg::F6_H,
163 => Reg::F7_H,
164 => Reg::F8_H,
165 => Reg::F9_H,
166 => Reg::F10_H,
167 => Reg::F11_H,
168 => Reg::F12_H,
169 => Reg::F13_H,
170 => Reg::F14_H,
171 => Reg::F15_H,
172 => Reg::F16_H,
173 => Reg::F17_H,
174 => Reg::F18_H,
175 => Reg::F19_H,
176 => Reg::F20_H,
177 => Reg::F21_H,
178 => Reg::F22_H,
179 => Reg::F23_H,
180 => Reg::F24_H,
181 => Reg::F25_H,
182 => Reg::F26_H,
183 => Reg::F27_H,
184 => Reg::F28_H,
185 => Reg::F29_H,
186 => Reg::F30_H,
187 => Reg::F31_H,
188 => Reg::F0_Q,
189 => Reg::F1_Q,
190 => Reg::F2_Q,
191 => Reg::F3_Q,
192 => Reg::F4_Q,
193 => Reg::F5_Q,
194 => Reg::F6_Q,
195 => Reg::F7_Q,
196 => Reg::F8_Q,
197 => Reg::F9_Q,
198 => Reg::F10_Q,
199 => Reg::F11_Q,
200 => Reg::F12_Q,
201 => Reg::F13_Q,
202 => Reg::F14_Q,
203 => Reg::F15_Q,
204 => Reg::F16_Q,
205 => Reg::F17_Q,
206 => Reg::F18_Q,
207 => Reg::F19_Q,
208 => Reg::F20_Q,
209 => Reg::F21_Q,
210 => Reg::F22_Q,
211 => Reg::F23_Q,
212 => Reg::F24_Q,
213 => Reg::F25_Q,
214 => Reg::F26_Q,
215 => Reg::F27_Q,
216 => Reg::F28_Q,
217 => Reg::F29_Q,
218 => Reg::F30_Q,
219 => Reg::F31_Q,
220 => Reg::X0_H,
221 => Reg::X1_H,
222 => Reg::X2_H,
223 => Reg::X3_H,
224 => Reg::X4_H,
225 => Reg::X5_H,
226 => Reg::X6_H,
227 => Reg::X7_H,
228 => Reg::X8_H,
229 => Reg::X9_H,
230 => Reg::X10_H,
231 => Reg::X11_H,
232 => Reg::X12_H,
233 => Reg::X13_H,
234 => Reg::X14_H,
235 => Reg::X15_H,
236 => Reg::X16_H,
237 => Reg::X17_H,
238 => Reg::X18_H,
239 => Reg::X19_H,
240 => Reg::X20_H,
241 => Reg::X21_H,
242 => Reg::X22_H,
243 => Reg::X23_H,
244 => Reg::X24_H,
245 => Reg::X25_H,
246 => Reg::X26_H,
247 => Reg::X27_H,
248 => Reg::X28_H,
249 => Reg::X29_H,
250 => Reg::X30_H,
251 => Reg::X31_H,
252 => Reg::X0_Pair,
253 => Reg::X0_W,
254 => Reg::X1_W,
255 => Reg::X2_W,
256 => Reg::X3_W,
257 => Reg::X4_W,
258 => Reg::X5_W,
259 => Reg::X6_W,
260 => Reg::X7_W,
261 => Reg::X8_W,
262 => Reg::X9_W,
263 => Reg::X10_W,
264 => Reg::X11_W,
265 => Reg::X12_W,
266 => Reg::X13_W,
267 => Reg::X14_W,
268 => Reg::X15_W,
269 => Reg::X16_W,
270 => Reg::X17_W,
271 => Reg::X18_W,
272 => Reg::X19_W,
273 => Reg::X20_W,
274 => Reg::X21_W,
275 => Reg::X22_W,
276 => Reg::X23_W,
277 => Reg::X24_W,
278 => Reg::X25_W,
279 => Reg::X26_W,
280 => Reg::X27_W,
281 => Reg::X28_W,
282 => Reg::X29_W,
283 => Reg::X30_W,
284 => Reg::X31_W,
285 => Reg::V0M2,
286 => Reg::V0M4,
287 => Reg::V0M8,
288 => Reg::V2M2,
289 => Reg::V4M2,
290 => Reg::V4M4,
291 => Reg::V6M2,
292 => Reg::V8M2,
293 => Reg::V8M4,
294 => Reg::V8M8,
295 => Reg::V10M2,
296 => Reg::V12M2,
297 => Reg::V12M4,
298 => Reg::V14M2,
299 => Reg::V16M2,
300 => Reg::V16M4,
301 => Reg::V16M8,
302 => Reg::V18M2,
303 => Reg::V20M2,
304 => Reg::V20M4,
305 => Reg::V22M2,
306 => Reg::V24M2,
307 => Reg::V24M4,
308 => Reg::V24M8,
309 => Reg::V26M2,
310 => Reg::V28M2,
311 => Reg::V28M4,
312 => Reg::V30M2,
313 => Reg::X2_X3,
314 => Reg::X4_X5,
315 => Reg::X6_X7,
316 => Reg::X8_X9,
317 => Reg::X10_X11,
318 => Reg::X12_X13,
319 => Reg::X14_X15,
320 => Reg::X16_X17,
321 => Reg::X18_X19,
322 => Reg::X20_X21,
323 => Reg::X22_X23,
324 => Reg::X24_X25,
325 => Reg::X26_X27,
326 => Reg::X28_X29,
327 => Reg::X30_X31,
328 => Reg::V1_V2,
329 => Reg::V2_V3,
330 => Reg::V3_V4,
331 => Reg::V4_V5,
332 => Reg::V5_V6,
333 => Reg::V6_V7,
334 => Reg::V7_V8,
335 => Reg::V8_V9,
336 => Reg::V9_V10,
337 => Reg::V10_V11,
338 => Reg::V11_V12,
339 => Reg::V12_V13,
340 => Reg::V13_V14,
341 => Reg::V14_V15,
342 => Reg::V15_V16,
343 => Reg::V16_V17,
344 => Reg::V17_V18,
345 => Reg::V18_V19,
346 => Reg::V19_V20,
347 => Reg::V20_V21,
348 => Reg::V21_V22,
349 => Reg::V22_V23,
350 => Reg::V23_V24,
351 => Reg::V24_V25,
352 => Reg::V25_V26,
353 => Reg::V26_V27,
354 => Reg::V27_V28,
355 => Reg::V28_V29,
356 => Reg::V29_V30,
357 => Reg::V30_V31,
358 => Reg::V0_V1,
359 => Reg::V2M2_V4M2,
360 => Reg::V4M2_V6M2,
361 => Reg::V6M2_V8M2,
362 => Reg::V8M2_V10M2,
363 => Reg::V10M2_V12M2,
364 => Reg::V12M2_V14M2,
365 => Reg::V14M2_V16M2,
366 => Reg::V16M2_V18M2,
367 => Reg::V18M2_V20M2,
368 => Reg::V20M2_V22M2,
369 => Reg::V22M2_V24M2,
370 => Reg::V24M2_V26M2,
371 => Reg::V26M2_V28M2,
372 => Reg::V28M2_V30M2,
373 => Reg::V0M2_V2M2,
374 => Reg::V4M4_V8M4,
375 => Reg::V8M4_V12M4,
376 => Reg::V12M4_V16M4,
377 => Reg::V16M4_V20M4,
378 => Reg::V20M4_V24M4,
379 => Reg::V24M4_V28M4,
380 => Reg::V0M4_V4M4,
381 => Reg::V1_V2_V3,
382 => Reg::V2_V3_V4,
383 => Reg::V3_V4_V5,
384 => Reg::V4_V5_V6,
385 => Reg::V5_V6_V7,
386 => Reg::V6_V7_V8,
387 => Reg::V7_V8_V9,
388 => Reg::V8_V9_V10,
389 => Reg::V9_V10_V11,
390 => Reg::V10_V11_V12,
391 => Reg::V11_V12_V13,
392 => Reg::V12_V13_V14,
393 => Reg::V13_V14_V15,
394 => Reg::V14_V15_V16,
395 => Reg::V15_V16_V17,
396 => Reg::V16_V17_V18,
397 => Reg::V17_V18_V19,
398 => Reg::V18_V19_V20,
399 => Reg::V19_V20_V21,
400 => Reg::V20_V21_V22,
401 => Reg::V21_V22_V23,
402 => Reg::V22_V23_V24,
403 => Reg::V23_V24_V25,
404 => Reg::V24_V25_V26,
405 => Reg::V25_V26_V27,
406 => Reg::V26_V27_V28,
407 => Reg::V27_V28_V29,
408 => Reg::V28_V29_V30,
409 => Reg::V29_V30_V31,
410 => Reg::V0_V1_V2,
411 => Reg::V2M2_V4M2_V6M2,
412 => Reg::V4M2_V6M2_V8M2,
413 => Reg::V6M2_V8M2_V10M2,
414 => Reg::V8M2_V10M2_V12M2,
415 => Reg::V10M2_V12M2_V14M2,
416 => Reg::V12M2_V14M2_V16M2,
417 => Reg::V14M2_V16M2_V18M2,
418 => Reg::V16M2_V18M2_V20M2,
419 => Reg::V18M2_V20M2_V22M2,
420 => Reg::V20M2_V22M2_V24M2,
421 => Reg::V22M2_V24M2_V26M2,
422 => Reg::V24M2_V26M2_V28M2,
423 => Reg::V26M2_V28M2_V30M2,
424 => Reg::V0M2_V2M2_V4M2,
425 => Reg::V1_V2_V3_V4,
426 => Reg::V2_V3_V4_V5,
427 => Reg::V3_V4_V5_V6,
428 => Reg::V4_V5_V6_V7,
429 => Reg::V5_V6_V7_V8,
430 => Reg::V6_V7_V8_V9,
431 => Reg::V7_V8_V9_V10,
432 => Reg::V8_V9_V10_V11,
433 => Reg::V9_V10_V11_V12,
434 => Reg::V10_V11_V12_V13,
435 => Reg::V11_V12_V13_V14,
436 => Reg::V12_V13_V14_V15,
437 => Reg::V13_V14_V15_V16,
438 => Reg::V14_V15_V16_V17,
439 => Reg::V15_V16_V17_V18,
440 => Reg::V16_V17_V18_V19,
441 => Reg::V17_V18_V19_V20,
442 => Reg::V18_V19_V20_V21,
443 => Reg::V19_V20_V21_V22,
444 => Reg::V20_V21_V22_V23,
445 => Reg::V21_V22_V23_V24,
446 => Reg::V22_V23_V24_V25,
447 => Reg::V23_V24_V25_V26,
448 => Reg::V24_V25_V26_V27,
449 => Reg::V25_V26_V27_V28,
450 => Reg::V26_V27_V28_V29,
451 => Reg::V27_V28_V29_V30,
452 => Reg::V28_V29_V30_V31,
453 => Reg::V0_V1_V2_V3,
454 => Reg::V2M2_V4M2_V6M2_V8M2,
455 => Reg::V4M2_V6M2_V8M2_V10M2,
456 => Reg::V6M2_V8M2_V10M2_V12M2,
457 => Reg::V8M2_V10M2_V12M2_V14M2,
458 => Reg::V10M2_V12M2_V14M2_V16M2,
459 => Reg::V12M2_V14M2_V16M2_V18M2,
460 => Reg::V14M2_V16M2_V18M2_V20M2,
461 => Reg::V16M2_V18M2_V20M2_V22M2,
462 => Reg::V18M2_V20M2_V22M2_V24M2,
463 => Reg::V20M2_V22M2_V24M2_V26M2,
464 => Reg::V22M2_V24M2_V26M2_V28M2,
465 => Reg::V24M2_V26M2_V28M2_V30M2,
466 => Reg::V0M2_V2M2_V4M2_V6M2,
467 => Reg::V1_V2_V3_V4_V5,
468 => Reg::V2_V3_V4_V5_V6,
469 => Reg::V3_V4_V5_V6_V7,
470 => Reg::V4_V5_V6_V7_V8,
471 => Reg::V5_V6_V7_V8_V9,
472 => Reg::V6_V7_V8_V9_V10,
473 => Reg::V7_V8_V9_V10_V11,
474 => Reg::V8_V9_V10_V11_V12,
475 => Reg::V9_V10_V11_V12_V13,
476 => Reg::V10_V11_V12_V13_V14,
477 => Reg::V11_V12_V13_V14_V15,
478 => Reg::V12_V13_V14_V15_V16,
479 => Reg::V13_V14_V15_V16_V17,
480 => Reg::V14_V15_V16_V17_V18,
481 => Reg::V15_V16_V17_V18_V19,
482 => Reg::V16_V17_V18_V19_V20,
483 => Reg::V17_V18_V19_V20_V21,
484 => Reg::V18_V19_V20_V21_V22,
485 => Reg::V19_V20_V21_V22_V23,
486 => Reg::V20_V21_V22_V23_V24,
487 => Reg::V21_V22_V23_V24_V25,
488 => Reg::V22_V23_V24_V25_V26,
489 => Reg::V23_V24_V25_V26_V27,
490 => Reg::V24_V25_V26_V27_V28,
491 => Reg::V25_V26_V27_V28_V29,
492 => Reg::V26_V27_V28_V29_V30,
493 => Reg::V27_V28_V29_V30_V31,
494 => Reg::V0_V1_V2_V3_V4,
495 => Reg::V1_V2_V3_V4_V5_V6,
496 => Reg::V2_V3_V4_V5_V6_V7,
497 => Reg::V3_V4_V5_V6_V7_V8,
498 => Reg::V4_V5_V6_V7_V8_V9,
499 => Reg::V5_V6_V7_V8_V9_V10,
500 => Reg::V6_V7_V8_V9_V10_V11,
501 => Reg::V7_V8_V9_V10_V11_V12,
502 => Reg::V8_V9_V10_V11_V12_V13,
503 => Reg::V9_V10_V11_V12_V13_V14,
504 => Reg::V10_V11_V12_V13_V14_V15,
505 => Reg::V11_V12_V13_V14_V15_V16,
506 => Reg::V12_V13_V14_V15_V16_V17,
507 => Reg::V13_V14_V15_V16_V17_V18,
508 => Reg::V14_V15_V16_V17_V18_V19,
509 => Reg::V15_V16_V17_V18_V19_V20,
510 => Reg::V16_V17_V18_V19_V20_V21,
511 => Reg::V17_V18_V19_V20_V21_V22,
512 => Reg::V18_V19_V20_V21_V22_V23,
513 => Reg::V19_V20_V21_V22_V23_V24,
514 => Reg::V20_V21_V22_V23_V24_V25,
515 => Reg::V21_V22_V23_V24_V25_V26,
516 => Reg::V22_V23_V24_V25_V26_V27,
517 => Reg::V23_V24_V25_V26_V27_V28,
518 => Reg::V24_V25_V26_V27_V28_V29,
519 => Reg::V25_V26_V27_V28_V29_V30,
520 => Reg::V26_V27_V28_V29_V30_V31,
521 => Reg::V0_V1_V2_V3_V4_V5,
522 => Reg::V1_V2_V3_V4_V5_V6_V7,
523 => Reg::V2_V3_V4_V5_V6_V7_V8,
524 => Reg::V3_V4_V5_V6_V7_V8_V9,
525 => Reg::V4_V5_V6_V7_V8_V9_V10,
526 => Reg::V5_V6_V7_V8_V9_V10_V11,
527 => Reg::V6_V7_V8_V9_V10_V11_V12,
528 => Reg::V7_V8_V9_V10_V11_V12_V13,
529 => Reg::V8_V9_V10_V11_V12_V13_V14,
530 => Reg::V9_V10_V11_V12_V13_V14_V15,
531 => Reg::V10_V11_V12_V13_V14_V15_V16,
532 => Reg::V11_V12_V13_V14_V15_V16_V17,
533 => Reg::V12_V13_V14_V15_V16_V17_V18,
534 => Reg::V13_V14_V15_V16_V17_V18_V19,
535 => Reg::V14_V15_V16_V17_V18_V19_V20,
536 => Reg::V15_V16_V17_V18_V19_V20_V21,
537 => Reg::V16_V17_V18_V19_V20_V21_V22,
538 => Reg::V17_V18_V19_V20_V21_V22_V23,
539 => Reg::V18_V19_V20_V21_V22_V23_V24,
540 => Reg::V19_V20_V21_V22_V23_V24_V25,
541 => Reg::V20_V21_V22_V23_V24_V25_V26,
542 => Reg::V21_V22_V23_V24_V25_V26_V27,
543 => Reg::V22_V23_V24_V25_V26_V27_V28,
544 => Reg::V23_V24_V25_V26_V27_V28_V29,
545 => Reg::V24_V25_V26_V27_V28_V29_V30,
546 => Reg::V25_V26_V27_V28_V29_V30_V31,
547 => Reg::V0_V1_V2_V3_V4_V5_V6,
548 => Reg::V1_V2_V3_V4_V5_V6_V7_V8,
549 => Reg::V2_V3_V4_V5_V6_V7_V8_V9,
550 => Reg::V3_V4_V5_V6_V7_V8_V9_V10,
551 => Reg::V4_V5_V6_V7_V8_V9_V10_V11,
552 => Reg::V5_V6_V7_V8_V9_V10_V11_V12,
553 => Reg::V6_V7_V8_V9_V10_V11_V12_V13,
554 => Reg::V7_V8_V9_V10_V11_V12_V13_V14,
555 => Reg::V8_V9_V10_V11_V12_V13_V14_V15,
556 => Reg::V9_V10_V11_V12_V13_V14_V15_V16,
557 => Reg::V10_V11_V12_V13_V14_V15_V16_V17,
558 => Reg::V11_V12_V13_V14_V15_V16_V17_V18,
559 => Reg::V12_V13_V14_V15_V16_V17_V18_V19,
560 => Reg::V13_V14_V15_V16_V17_V18_V19_V20,
561 => Reg::V14_V15_V16_V17_V18_V19_V20_V21,
562 => Reg::V15_V16_V17_V18_V19_V20_V21_V22,
563 => Reg::V16_V17_V18_V19_V20_V21_V22_V23,
564 => Reg::V17_V18_V19_V20_V21_V22_V23_V24,
565 => Reg::V18_V19_V20_V21_V22_V23_V24_V25,
566 => Reg::V19_V20_V21_V22_V23_V24_V25_V26,
567 => Reg::V20_V21_V22_V23_V24_V25_V26_V27,
568 => Reg::V21_V22_V23_V24_V25_V26_V27_V28,
569 => Reg::V22_V23_V24_V25_V26_V27_V28_V29,
570 => Reg::V23_V24_V25_V26_V27_V28_V29_V30,
571 => Reg::V24_V25_V26_V27_V28_V29_V30_V31,
572 => Reg::V0_V1_V2_V3_V4_V5_V6_V7,
573 => Reg::NUM_TARGET_REGS,
_ => Reg::UNKNOWN(value),
}
}
}
#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum SysReg {
fflags,
frm,
fcsr,
vstart,
vxsat,
vxrm,
vcsr,
ssp,
seed,
jvt,
sstatus,
sie,
stvec,
scounteren,
sf_stvt,
senvcfg,
sstateen0,
sstateen1,
sstateen2,
sstateen3,
sieh,
scountinhibit,
sscratch,
sepc,
scause,
sbadaddr,
sip,
sf_snxti,
sf_sintstatus,
sf_sscratchcsw,
sf_sscratchcswl,
stimecmp,
sctrctl,
sctrstatus,
siselect,
sireg,
sireg2,
sireg3,
siph,
sireg4,
sireg5,
sireg6,
stopei,
stimecmph,
sctrdepth,
satp,
srmcfg,
vsstatus,
vsie,
vstvec,
vsieh,
vsscratch,
vsepc,
vscause,
vstval,
vsip,
vstimecmp,
vsctrctl,
vsiselect,
vsireg,
vsireg2,
vsireg3,
vsiph,
vsireg4,
vsireg5,
vsireg6,
vstopei,
vstimecmph,
vsatp,
mstatus,
misa,
medeleg,
mideleg,
mie,
mtvec,
mcounteren,
sf_mtvt,
mvien,
mvip,
menvcfg,
mstateen0,
mstateen1,
mstateen2,
mstateen3,
mstatush,
medelegh,
midelegh,
mieh,
mvienh,
mviph,
menvcfgh,
mstateen0h,
mstateen1h,
mstateen2h,
mstateen3h,
mcountinhibit,
mcyclecfg,
minstretcfg,
mhpmevent3,
mhpmevent4,
mhpmevent5,
mhpmevent6,
mhpmevent7,
mhpmevent8,
mhpmevent9,
mhpmevent10,
mhpmevent11,
mhpmevent12,
mhpmevent13,
mhpmevent14,
mhpmevent15,
mhpmevent16,
mhpmevent17,
mhpmevent18,
mhpmevent19,
mhpmevent20,
mhpmevent21,
mhpmevent22,
mhpmevent23,
mhpmevent24,
mhpmevent25,
mhpmevent26,
mhpmevent27,
mhpmevent28,
mhpmevent29,
mhpmevent30,
mhpmevent31,
mscratch,
mepc,
mcause,
mbadaddr,
mip,
sf_mnxti,
sf_mintstatus,
sf_mscratchcsw,
sf_mscratchcswl,
mtinst,
mtval2,
mctrctl,
miselect,
mireg,
mireg2,
mireg3,
miph,
mireg4,
mireg5,
mireg6,
mtopei,
pmpcfg0,
pmpcfg1,
pmpcfg2,
pmpcfg3,
pmpcfg4,
pmpcfg5,
pmpcfg6,
pmpcfg7,
pmpcfg8,
pmpcfg9,
pmpcfg10,
pmpcfg11,
pmpcfg12,
pmpcfg13,
pmpcfg14,
pmpcfg15,
pmpaddr0,
pmpaddr1,
pmpaddr2,
pmpaddr3,
pmpaddr4,
pmpaddr5,
pmpaddr6,
pmpaddr7,
pmpaddr8,
pmpaddr9,
pmpaddr10,
pmpaddr11,
pmpaddr12,
pmpaddr13,
pmpaddr14,
pmpaddr15,
pmpaddr16,
pmpaddr17,
pmpaddr18,
pmpaddr19,
pmpaddr20,
pmpaddr21,
pmpaddr22,
pmpaddr23,
pmpaddr24,
pmpaddr25,
pmpaddr26,
pmpaddr27,
pmpaddr28,
pmpaddr29,
pmpaddr30,
pmpaddr31,
pmpaddr32,
pmpaddr33,
pmpaddr34,
pmpaddr35,
pmpaddr36,
pmpaddr37,
pmpaddr38,
pmpaddr39,
pmpaddr40,
pmpaddr41,
pmpaddr42,
pmpaddr43,
pmpaddr44,
pmpaddr45,
pmpaddr46,
pmpaddr47,
pmpaddr48,
pmpaddr49,
pmpaddr50,
pmpaddr51,
pmpaddr52,
pmpaddr53,
pmpaddr54,
pmpaddr55,
pmpaddr56,
pmpaddr57,
pmpaddr58,
pmpaddr59,
pmpaddr60,
pmpaddr61,
pmpaddr62,
pmpaddr63,
scontext,
hstatus,
hedeleg,
hideleg,
hie,
htimedelta,
hcounteren,
hgeie,
hvien,
hvictl,
henvcfg,
hstateen0,
hstateen1,
hstateen2,
hstateen3,
hedelegh,
hidelegh,
htimedeltah,
hvienh,
henvcfgh,
hstateen0h,
hstateen1h,
hstateen2h,
hstateen3h,
htval,
hip,
hvip,
hviprio1,
hviprio2,
htinst,
hviph,
hviprio1h,
hviprio2h,
hgatp,
hcontext,
mcyclecfgh,
minstretcfgh,
mhpmevent3h,
mhpmevent4h,
mhpmevent5h,
mhpmevent6h,
mhpmevent7h,
mhpmevent8h,
mhpmevent9h,
mhpmevent10h,
mhpmevent11h,
mhpmevent12h,
mhpmevent13h,
mhpmevent14h,
mhpmevent15h,
mhpmevent16h,
mhpmevent17h,
mhpmevent18h,
mhpmevent19h,
mhpmevent20h,
mhpmevent21h,
mhpmevent22h,
mhpmevent23h,
mhpmevent24h,
mhpmevent25h,
mhpmevent26h,
mhpmevent27h,
mhpmevent28h,
mhpmevent29h,
mhpmevent30h,
mhpmevent31h,
mnscratch,
mnepc,
mncause,
mnstatus,
mseccfg,
mseccfgh,
tselect,
etrigger,
tdata2,
tdata3,
tinfo,
tcontrol,
mcontext,
mscontext,
dcsr,
dpc,
dscratch,
dscratch1,
qc_mmcr,
qc_mntvec,
qc_mstktopaddr,
qc_mstkbottomaddr,
qc_mthreadptr,
qc_mcause,
qc_mwpstartaddr0,
qc_mwpstartaddr1,
qc_mwpstartaddr2,
qc_mwpstartaddr3,
qc_mwpendaddr0,
qc_mwpendaddr1,
qc_mwpendaddr2,
qc_mwpendaddr3,
qc_mclicip0,
qc_mclicip1,
qc_mclicip2,
qc_mclicip3,
qc_mclicip4,
qc_mclicip5,
qc_mclicip6,
qc_mclicip7,
qc_mclicie0,
qc_mclicie1,
qc_mclicie2,
qc_mclicie3,
qc_mclicie4,
qc_mclicie5,
qc_mclicie6,
qc_mclicie7,
mcycle,
minstret,
mhpmcounter3,
mhpmcounter4,
mhpmcounter5,
mhpmcounter6,
mhpmcounter7,
mhpmcounter8,
mhpmcounter9,
mhpmcounter10,
mhpmcounter11,
mhpmcounter12,
mhpmcounter13,
mhpmcounter14,
mhpmcounter15,
mhpmcounter16,
mhpmcounter17,
mhpmcounter18,
mhpmcounter19,
mhpmcounter20,
mhpmcounter21,
mhpmcounter22,
mhpmcounter23,
mhpmcounter24,
mhpmcounter25,
mhpmcounter26,
mhpmcounter27,
mhpmcounter28,
mhpmcounter29,
mhpmcounter30,
mhpmcounter31,
mcycleh,
minstreth,
mhpmcounter3h,
mhpmcounter4h,
mhpmcounter5h,
mhpmcounter6h,
mhpmcounter7h,
mhpmcounter8h,
mhpmcounter9h,
mhpmcounter10h,
mhpmcounter11h,
mhpmcounter12h,
mhpmcounter13h,
mhpmcounter14h,
mhpmcounter15h,
mhpmcounter16h,
mhpmcounter17h,
mhpmcounter18h,
mhpmcounter19h,
mhpmcounter20h,
mhpmcounter21h,
mhpmcounter22h,
mhpmcounter23h,
mhpmcounter24h,
mhpmcounter25h,
mhpmcounter26h,
mhpmcounter27h,
mhpmcounter28h,
mhpmcounter29h,
mhpmcounter30h,
mhpmcounter31h,
qc_mclicilvl00,
qc_mclicilvl01,
qc_mclicilvl02,
qc_mclicilvl03,
qc_mclicilvl04,
qc_mclicilvl05,
qc_mclicilvl06,
qc_mclicilvl07,
qc_mclicilvl08,
qc_mclicilvl09,
qc_mclicilvl10,
qc_mclicilvl11,
qc_mclicilvl12,
qc_mclicilvl13,
qc_mclicilvl14,
qc_mclicilvl15,
qc_mclicilvl16,
qc_mclicilvl17,
qc_mclicilvl18,
qc_mclicilvl19,
qc_mclicilvl20,
qc_mclicilvl21,
qc_mclicilvl22,
qc_mclicilvl23,
qc_mclicilvl24,
qc_mclicilvl25,
qc_mclicilvl26,
qc_mclicilvl27,
qc_mclicilvl28,
qc_mclicilvl29,
qc_mclicilvl30,
qc_mclicilvl31,
cycle,
time,
instret,
hpmcounter3,
hpmcounter4,
hpmcounter5,
hpmcounter6,
hpmcounter7,
hpmcounter8,
hpmcounter9,
hpmcounter10,
hpmcounter11,
hpmcounter12,
hpmcounter13,
hpmcounter14,
hpmcounter15,
hpmcounter16,
hpmcounter17,
hpmcounter18,
hpmcounter19,
hpmcounter20,
hpmcounter21,
hpmcounter22,
hpmcounter23,
hpmcounter24,
hpmcounter25,
hpmcounter26,
hpmcounter27,
hpmcounter28,
hpmcounter29,
hpmcounter30,
hpmcounter31,
vl,
vtype,
vlenb,
cycleh,
timeh,
instreth,
hpmcounter3h,
hpmcounter4h,
hpmcounter5h,
hpmcounter6h,
hpmcounter7h,
hpmcounter8h,
hpmcounter9h,
hpmcounter10h,
hpmcounter11h,
hpmcounter12h,
hpmcounter13h,
hpmcounter14h,
hpmcounter15h,
hpmcounter16h,
hpmcounter17h,
hpmcounter18h,
hpmcounter19h,
hpmcounter20h,
hpmcounter21h,
hpmcounter22h,
hpmcounter23h,
hpmcounter24h,
hpmcounter25h,
hpmcounter26h,
hpmcounter27h,
hpmcounter28h,
hpmcounter29h,
hpmcounter30h,
hpmcounter31h,
scountovf,
stopi,
hgeip,
vstopi,
mvendorid,
marchid,
mimpid,
mhartid,
mconfigptr,
mtopi,
NUM_TARGET_SYSREGS,
UNKNOWN(u64),
}
impl From<u64> for SysReg {
fn from(value: u64) -> Self {
match value {
1 => SysReg::fflags,
2 => SysReg::frm,
3 => SysReg::fcsr,
8 => SysReg::vstart,
9 => SysReg::vxsat,
10 => SysReg::vxrm,
15 => SysReg::vcsr,
17 => SysReg::ssp,
21 => SysReg::seed,
23 => SysReg::jvt,
256 => SysReg::sstatus,
260 => SysReg::sie,
261 => SysReg::stvec,
262 => SysReg::scounteren,
263 => SysReg::sf_stvt,
266 => SysReg::senvcfg,
268 => SysReg::sstateen0,
269 => SysReg::sstateen1,
270 => SysReg::sstateen2,
271 => SysReg::sstateen3,
276 => SysReg::sieh,
288 => SysReg::scountinhibit,
320 => SysReg::sscratch,
321 => SysReg::sepc,
322 => SysReg::scause,
323 => SysReg::sbadaddr,
324 => SysReg::sip,
325 => SysReg::sf_snxti,
326 => SysReg::sf_sintstatus,
328 => SysReg::sf_sscratchcsw,
329 => SysReg::sf_sscratchcswl,
333 => SysReg::stimecmp,
334 => SysReg::sctrctl,
335 => SysReg::sctrstatus,
336 => SysReg::siselect,
337 => SysReg::sireg,
338 => SysReg::sireg2,
339 => SysReg::sireg3,
340 => SysReg::siph,
341 => SysReg::sireg4,
342 => SysReg::sireg5,
343 => SysReg::sireg6,
348 => SysReg::stopei,
349 => SysReg::stimecmph,
351 => SysReg::sctrdepth,
384 => SysReg::satp,
385 => SysReg::srmcfg,
512 => SysReg::vsstatus,
516 => SysReg::vsie,
517 => SysReg::vstvec,
532 => SysReg::vsieh,
576 => SysReg::vsscratch,
577 => SysReg::vsepc,
578 => SysReg::vscause,
579 => SysReg::vstval,
580 => SysReg::vsip,
589 => SysReg::vstimecmp,
590 => SysReg::vsctrctl,
592 => SysReg::vsiselect,
593 => SysReg::vsireg,
594 => SysReg::vsireg2,
595 => SysReg::vsireg3,
596 => SysReg::vsiph,
597 => SysReg::vsireg4,
598 => SysReg::vsireg5,
599 => SysReg::vsireg6,
604 => SysReg::vstopei,
605 => SysReg::vstimecmph,
640 => SysReg::vsatp,
768 => SysReg::mstatus,
769 => SysReg::misa,
770 => SysReg::medeleg,
771 => SysReg::mideleg,
772 => SysReg::mie,
773 => SysReg::mtvec,
774 => SysReg::mcounteren,
775 => SysReg::sf_mtvt,
776 => SysReg::mvien,
777 => SysReg::mvip,
778 => SysReg::menvcfg,
780 => SysReg::mstateen0,
781 => SysReg::mstateen1,
782 => SysReg::mstateen2,
783 => SysReg::mstateen3,
784 => SysReg::mstatush,
786 => SysReg::medelegh,
787 => SysReg::midelegh,
788 => SysReg::mieh,
792 => SysReg::mvienh,
793 => SysReg::mviph,
794 => SysReg::menvcfgh,
796 => SysReg::mstateen0h,
797 => SysReg::mstateen1h,
798 => SysReg::mstateen2h,
799 => SysReg::mstateen3h,
800 => SysReg::mcountinhibit,
801 => SysReg::mcyclecfg,
802 => SysReg::minstretcfg,
803 => SysReg::mhpmevent3,
804 => SysReg::mhpmevent4,
805 => SysReg::mhpmevent5,
806 => SysReg::mhpmevent6,
807 => SysReg::mhpmevent7,
808 => SysReg::mhpmevent8,
809 => SysReg::mhpmevent9,
810 => SysReg::mhpmevent10,
811 => SysReg::mhpmevent11,
812 => SysReg::mhpmevent12,
813 => SysReg::mhpmevent13,
814 => SysReg::mhpmevent14,
815 => SysReg::mhpmevent15,
816 => SysReg::mhpmevent16,
817 => SysReg::mhpmevent17,
818 => SysReg::mhpmevent18,
819 => SysReg::mhpmevent19,
820 => SysReg::mhpmevent20,
821 => SysReg::mhpmevent21,
822 => SysReg::mhpmevent22,
823 => SysReg::mhpmevent23,
824 => SysReg::mhpmevent24,
825 => SysReg::mhpmevent25,
826 => SysReg::mhpmevent26,
827 => SysReg::mhpmevent27,
828 => SysReg::mhpmevent28,
829 => SysReg::mhpmevent29,
830 => SysReg::mhpmevent30,
831 => SysReg::mhpmevent31,
832 => SysReg::mscratch,
833 => SysReg::mepc,
834 => SysReg::mcause,
835 => SysReg::mbadaddr,
836 => SysReg::mip,
837 => SysReg::sf_mnxti,
838 => SysReg::sf_mintstatus,
840 => SysReg::sf_mscratchcsw,
841 => SysReg::sf_mscratchcswl,
842 => SysReg::mtinst,
843 => SysReg::mtval2,
846 => SysReg::mctrctl,
848 => SysReg::miselect,
849 => SysReg::mireg,
850 => SysReg::mireg2,
851 => SysReg::mireg3,
852 => SysReg::miph,
853 => SysReg::mireg4,
854 => SysReg::mireg5,
855 => SysReg::mireg6,
860 => SysReg::mtopei,
928 => SysReg::pmpcfg0,
929 => SysReg::pmpcfg1,
930 => SysReg::pmpcfg2,
931 => SysReg::pmpcfg3,
932 => SysReg::pmpcfg4,
933 => SysReg::pmpcfg5,
934 => SysReg::pmpcfg6,
935 => SysReg::pmpcfg7,
936 => SysReg::pmpcfg8,
937 => SysReg::pmpcfg9,
938 => SysReg::pmpcfg10,
939 => SysReg::pmpcfg11,
940 => SysReg::pmpcfg12,
941 => SysReg::pmpcfg13,
942 => SysReg::pmpcfg14,
943 => SysReg::pmpcfg15,
944 => SysReg::pmpaddr0,
945 => SysReg::pmpaddr1,
946 => SysReg::pmpaddr2,
947 => SysReg::pmpaddr3,
948 => SysReg::pmpaddr4,
949 => SysReg::pmpaddr5,
950 => SysReg::pmpaddr6,
951 => SysReg::pmpaddr7,
952 => SysReg::pmpaddr8,
953 => SysReg::pmpaddr9,
954 => SysReg::pmpaddr10,
955 => SysReg::pmpaddr11,
956 => SysReg::pmpaddr12,
957 => SysReg::pmpaddr13,
958 => SysReg::pmpaddr14,
959 => SysReg::pmpaddr15,
960 => SysReg::pmpaddr16,
961 => SysReg::pmpaddr17,
962 => SysReg::pmpaddr18,
963 => SysReg::pmpaddr19,
964 => SysReg::pmpaddr20,
965 => SysReg::pmpaddr21,
966 => SysReg::pmpaddr22,
967 => SysReg::pmpaddr23,
968 => SysReg::pmpaddr24,
969 => SysReg::pmpaddr25,
970 => SysReg::pmpaddr26,
971 => SysReg::pmpaddr27,
972 => SysReg::pmpaddr28,
973 => SysReg::pmpaddr29,
974 => SysReg::pmpaddr30,
975 => SysReg::pmpaddr31,
976 => SysReg::pmpaddr32,
977 => SysReg::pmpaddr33,
978 => SysReg::pmpaddr34,
979 => SysReg::pmpaddr35,
980 => SysReg::pmpaddr36,
981 => SysReg::pmpaddr37,
982 => SysReg::pmpaddr38,
983 => SysReg::pmpaddr39,
984 => SysReg::pmpaddr40,
985 => SysReg::pmpaddr41,
986 => SysReg::pmpaddr42,
987 => SysReg::pmpaddr43,
988 => SysReg::pmpaddr44,
989 => SysReg::pmpaddr45,
990 => SysReg::pmpaddr46,
991 => SysReg::pmpaddr47,
992 => SysReg::pmpaddr48,
993 => SysReg::pmpaddr49,
994 => SysReg::pmpaddr50,
995 => SysReg::pmpaddr51,
996 => SysReg::pmpaddr52,
997 => SysReg::pmpaddr53,
998 => SysReg::pmpaddr54,
999 => SysReg::pmpaddr55,
1000 => SysReg::pmpaddr56,
1001 => SysReg::pmpaddr57,
1002 => SysReg::pmpaddr58,
1003 => SysReg::pmpaddr59,
1004 => SysReg::pmpaddr60,
1005 => SysReg::pmpaddr61,
1006 => SysReg::pmpaddr62,
1007 => SysReg::pmpaddr63,
1448 => SysReg::scontext,
1536 => SysReg::hstatus,
1538 => SysReg::hedeleg,
1539 => SysReg::hideleg,
1540 => SysReg::hie,
1541 => SysReg::htimedelta,
1542 => SysReg::hcounteren,
1543 => SysReg::hgeie,
1544 => SysReg::hvien,
1545 => SysReg::hvictl,
1546 => SysReg::henvcfg,
1548 => SysReg::hstateen0,
1549 => SysReg::hstateen1,
1550 => SysReg::hstateen2,
1551 => SysReg::hstateen3,
1554 => SysReg::hedelegh,
1555 => SysReg::hidelegh,
1557 => SysReg::htimedeltah,
1560 => SysReg::hvienh,
1562 => SysReg::henvcfgh,
1564 => SysReg::hstateen0h,
1565 => SysReg::hstateen1h,
1566 => SysReg::hstateen2h,
1567 => SysReg::hstateen3h,
1603 => SysReg::htval,
1604 => SysReg::hip,
1605 => SysReg::hvip,
1606 => SysReg::hviprio1,
1607 => SysReg::hviprio2,
1610 => SysReg::htinst,
1621 => SysReg::hviph,
1622 => SysReg::hviprio1h,
1623 => SysReg::hviprio2h,
1664 => SysReg::hgatp,
1704 => SysReg::hcontext,
1825 => SysReg::mcyclecfgh,
1826 => SysReg::minstretcfgh,
1827 => SysReg::mhpmevent3h,
1828 => SysReg::mhpmevent4h,
1829 => SysReg::mhpmevent5h,
1830 => SysReg::mhpmevent6h,
1831 => SysReg::mhpmevent7h,
1832 => SysReg::mhpmevent8h,
1833 => SysReg::mhpmevent9h,
1834 => SysReg::mhpmevent10h,
1835 => SysReg::mhpmevent11h,
1836 => SysReg::mhpmevent12h,
1837 => SysReg::mhpmevent13h,
1838 => SysReg::mhpmevent14h,
1839 => SysReg::mhpmevent15h,
1840 => SysReg::mhpmevent16h,
1841 => SysReg::mhpmevent17h,
1842 => SysReg::mhpmevent18h,
1843 => SysReg::mhpmevent19h,
1844 => SysReg::mhpmevent20h,
1845 => SysReg::mhpmevent21h,
1846 => SysReg::mhpmevent22h,
1847 => SysReg::mhpmevent23h,
1848 => SysReg::mhpmevent24h,
1849 => SysReg::mhpmevent25h,
1850 => SysReg::mhpmevent26h,
1851 => SysReg::mhpmevent27h,
1852 => SysReg::mhpmevent28h,
1853 => SysReg::mhpmevent29h,
1854 => SysReg::mhpmevent30h,
1855 => SysReg::mhpmevent31h,
1856 => SysReg::mnscratch,
1857 => SysReg::mnepc,
1858 => SysReg::mncause,
1860 => SysReg::mnstatus,
1863 => SysReg::mseccfg,
1879 => SysReg::mseccfgh,
1952 => SysReg::tselect,
1953 => SysReg::etrigger,
1954 => SysReg::tdata2,
1955 => SysReg::tdata3,
1956 => SysReg::tinfo,
1957 => SysReg::tcontrol,
1960 => SysReg::mcontext,
1962 => SysReg::mscontext,
1968 => SysReg::dcsr,
1969 => SysReg::dpc,
1970 => SysReg::dscratch,
1971 => SysReg::dscratch1,
1984 => SysReg::qc_mmcr,
1987 => SysReg::qc_mntvec,
1988 => SysReg::qc_mstktopaddr,
1989 => SysReg::qc_mstkbottomaddr,
1992 => SysReg::qc_mthreadptr,
1993 => SysReg::qc_mcause,
2000 => SysReg::qc_mwpstartaddr0,
2001 => SysReg::qc_mwpstartaddr1,
2002 => SysReg::qc_mwpstartaddr2,
2003 => SysReg::qc_mwpstartaddr3,
2004 => SysReg::qc_mwpendaddr0,
2005 => SysReg::qc_mwpendaddr1,
2006 => SysReg::qc_mwpendaddr2,
2007 => SysReg::qc_mwpendaddr3,
2032 => SysReg::qc_mclicip0,
2033 => SysReg::qc_mclicip1,
2034 => SysReg::qc_mclicip2,
2035 => SysReg::qc_mclicip3,
2036 => SysReg::qc_mclicip4,
2037 => SysReg::qc_mclicip5,
2038 => SysReg::qc_mclicip6,
2039 => SysReg::qc_mclicip7,
2040 => SysReg::qc_mclicie0,
2041 => SysReg::qc_mclicie1,
2042 => SysReg::qc_mclicie2,
2043 => SysReg::qc_mclicie3,
2044 => SysReg::qc_mclicie4,
2045 => SysReg::qc_mclicie5,
2046 => SysReg::qc_mclicie6,
2047 => SysReg::qc_mclicie7,
2816 => SysReg::mcycle,
2818 => SysReg::minstret,
2819 => SysReg::mhpmcounter3,
2820 => SysReg::mhpmcounter4,
2821 => SysReg::mhpmcounter5,
2822 => SysReg::mhpmcounter6,
2823 => SysReg::mhpmcounter7,
2824 => SysReg::mhpmcounter8,
2825 => SysReg::mhpmcounter9,
2826 => SysReg::mhpmcounter10,
2827 => SysReg::mhpmcounter11,
2828 => SysReg::mhpmcounter12,
2829 => SysReg::mhpmcounter13,
2830 => SysReg::mhpmcounter14,
2831 => SysReg::mhpmcounter15,
2832 => SysReg::mhpmcounter16,
2833 => SysReg::mhpmcounter17,
2834 => SysReg::mhpmcounter18,
2835 => SysReg::mhpmcounter19,
2836 => SysReg::mhpmcounter20,
2837 => SysReg::mhpmcounter21,
2838 => SysReg::mhpmcounter22,
2839 => SysReg::mhpmcounter23,
2840 => SysReg::mhpmcounter24,
2841 => SysReg::mhpmcounter25,
2842 => SysReg::mhpmcounter26,
2843 => SysReg::mhpmcounter27,
2844 => SysReg::mhpmcounter28,
2845 => SysReg::mhpmcounter29,
2846 => SysReg::mhpmcounter30,
2847 => SysReg::mhpmcounter31,
2944 => SysReg::mcycleh,
2946 => SysReg::minstreth,
2947 => SysReg::mhpmcounter3h,
2948 => SysReg::mhpmcounter4h,
2949 => SysReg::mhpmcounter5h,
2950 => SysReg::mhpmcounter6h,
2951 => SysReg::mhpmcounter7h,
2952 => SysReg::mhpmcounter8h,
2953 => SysReg::mhpmcounter9h,
2954 => SysReg::mhpmcounter10h,
2955 => SysReg::mhpmcounter11h,
2956 => SysReg::mhpmcounter12h,
2957 => SysReg::mhpmcounter13h,
2958 => SysReg::mhpmcounter14h,
2959 => SysReg::mhpmcounter15h,
2960 => SysReg::mhpmcounter16h,
2961 => SysReg::mhpmcounter17h,
2962 => SysReg::mhpmcounter18h,
2963 => SysReg::mhpmcounter19h,
2964 => SysReg::mhpmcounter20h,
2965 => SysReg::mhpmcounter21h,
2966 => SysReg::mhpmcounter22h,
2967 => SysReg::mhpmcounter23h,
2968 => SysReg::mhpmcounter24h,
2969 => SysReg::mhpmcounter25h,
2970 => SysReg::mhpmcounter26h,
2971 => SysReg::mhpmcounter27h,
2972 => SysReg::mhpmcounter28h,
2973 => SysReg::mhpmcounter29h,
2974 => SysReg::mhpmcounter30h,
2975 => SysReg::mhpmcounter31h,
3008 => SysReg::qc_mclicilvl00,
3009 => SysReg::qc_mclicilvl01,
3010 => SysReg::qc_mclicilvl02,
3011 => SysReg::qc_mclicilvl03,
3012 => SysReg::qc_mclicilvl04,
3013 => SysReg::qc_mclicilvl05,
3014 => SysReg::qc_mclicilvl06,
3015 => SysReg::qc_mclicilvl07,
3016 => SysReg::qc_mclicilvl08,
3017 => SysReg::qc_mclicilvl09,
3018 => SysReg::qc_mclicilvl10,
3019 => SysReg::qc_mclicilvl11,
3020 => SysReg::qc_mclicilvl12,
3021 => SysReg::qc_mclicilvl13,
3022 => SysReg::qc_mclicilvl14,
3023 => SysReg::qc_mclicilvl15,
3024 => SysReg::qc_mclicilvl16,
3025 => SysReg::qc_mclicilvl17,
3026 => SysReg::qc_mclicilvl18,
3027 => SysReg::qc_mclicilvl19,
3028 => SysReg::qc_mclicilvl20,
3029 => SysReg::qc_mclicilvl21,
3030 => SysReg::qc_mclicilvl22,
3031 => SysReg::qc_mclicilvl23,
3032 => SysReg::qc_mclicilvl24,
3033 => SysReg::qc_mclicilvl25,
3034 => SysReg::qc_mclicilvl26,
3035 => SysReg::qc_mclicilvl27,
3036 => SysReg::qc_mclicilvl28,
3037 => SysReg::qc_mclicilvl29,
3038 => SysReg::qc_mclicilvl30,
3039 => SysReg::qc_mclicilvl31,
3072 => SysReg::cycle,
3073 => SysReg::time,
3074 => SysReg::instret,
3075 => SysReg::hpmcounter3,
3076 => SysReg::hpmcounter4,
3077 => SysReg::hpmcounter5,
3078 => SysReg::hpmcounter6,
3079 => SysReg::hpmcounter7,
3080 => SysReg::hpmcounter8,
3081 => SysReg::hpmcounter9,
3082 => SysReg::hpmcounter10,
3083 => SysReg::hpmcounter11,
3084 => SysReg::hpmcounter12,
3085 => SysReg::hpmcounter13,
3086 => SysReg::hpmcounter14,
3087 => SysReg::hpmcounter15,
3088 => SysReg::hpmcounter16,
3089 => SysReg::hpmcounter17,
3090 => SysReg::hpmcounter18,
3091 => SysReg::hpmcounter19,
3092 => SysReg::hpmcounter20,
3093 => SysReg::hpmcounter21,
3094 => SysReg::hpmcounter22,
3095 => SysReg::hpmcounter23,
3096 => SysReg::hpmcounter24,
3097 => SysReg::hpmcounter25,
3098 => SysReg::hpmcounter26,
3099 => SysReg::hpmcounter27,
3100 => SysReg::hpmcounter28,
3101 => SysReg::hpmcounter29,
3102 => SysReg::hpmcounter30,
3103 => SysReg::hpmcounter31,
3104 => SysReg::vl,
3105 => SysReg::vtype,
3106 => SysReg::vlenb,
3200 => SysReg::cycleh,
3201 => SysReg::timeh,
3202 => SysReg::instreth,
3203 => SysReg::hpmcounter3h,
3204 => SysReg::hpmcounter4h,
3205 => SysReg::hpmcounter5h,
3206 => SysReg::hpmcounter6h,
3207 => SysReg::hpmcounter7h,
3208 => SysReg::hpmcounter8h,
3209 => SysReg::hpmcounter9h,
3210 => SysReg::hpmcounter10h,
3211 => SysReg::hpmcounter11h,
3212 => SysReg::hpmcounter12h,
3213 => SysReg::hpmcounter13h,
3214 => SysReg::hpmcounter14h,
3215 => SysReg::hpmcounter15h,
3216 => SysReg::hpmcounter16h,
3217 => SysReg::hpmcounter17h,
3218 => SysReg::hpmcounter18h,
3219 => SysReg::hpmcounter19h,
3220 => SysReg::hpmcounter20h,
3221 => SysReg::hpmcounter21h,
3222 => SysReg::hpmcounter22h,
3223 => SysReg::hpmcounter23h,
3224 => SysReg::hpmcounter24h,
3225 => SysReg::hpmcounter25h,
3226 => SysReg::hpmcounter26h,
3227 => SysReg::hpmcounter27h,
3228 => SysReg::hpmcounter28h,
3229 => SysReg::hpmcounter29h,
3230 => SysReg::hpmcounter30h,
3231 => SysReg::hpmcounter31h,
3488 => SysReg::scountovf,
3504 => SysReg::stopi,
3602 => SysReg::hgeip,
3760 => SysReg::vstopi,
3857 => SysReg::mvendorid,
3858 => SysReg::marchid,
3859 => SysReg::mimpid,
3860 => SysReg::mhartid,
3861 => SysReg::mconfigptr,
4016 => SysReg::mtopi,
513 => SysReg::NUM_TARGET_SYSREGS,
_ => SysReg::UNKNOWN(value),
}
}
}