1#[derive(Clone, Copy)]
2pub struct Immediate {
3 position_in_opcode: (u32, u32),
4 position_in_immediate: (u32, u32),
5}
6
7pub const UIMM_LO: Immediate = Immediate {
8 position_in_opcode: (31, 12),
9 position_in_immediate: (31, 12),
10};
11
12pub const S_TYPE_HI: Immediate = Immediate {
13 position_in_immediate: (11, 5),
14 position_in_opcode: (31, 25),
15};
16
17pub const S_TYPE_LO: Immediate = Immediate {
18 position_in_immediate: (4, 0),
19 position_in_opcode: (11, 7),
20};
21
22pub const UJ_TYPE_IMM_20: Immediate = Immediate {
24 position_in_immediate: (20, 20),
25 position_in_opcode: (31, 31),
26};
27
28pub const UJ_TYPE_IMM_10_1: Immediate = Immediate {
30 position_in_immediate: (10, 1),
31 position_in_opcode: (30, 21),
32};
33
34pub const UJ_TYPE_IMM_11: Immediate = Immediate {
36 position_in_immediate: (11, 11),
37 position_in_opcode: (20, 20),
38};
39
40pub const UJ_TYPE_IMM_19_12: Immediate = Immediate {
42 position_in_immediate: (19, 12),
43 position_in_opcode: (19, 12),
44};
45
46pub const I_TYPE_11_0: Immediate = Immediate {
47 position_in_immediate: (11, 0),
48 position_in_opcode: (31, 20),
49};
50
51pub const B_TYPE_IMM_12: Immediate = Immediate {
53 position_in_immediate: (12, 12),
54 position_in_opcode: (31, 31),
55};
56
57pub const B_TYPE_IMM_10_5: Immediate = Immediate {
59 position_in_immediate: (10, 5),
60 position_in_opcode: (30, 25),
61};
62
63pub const B_TYPE_IMM_4_1: Immediate = Immediate {
65 position_in_immediate: (4, 1),
66 position_in_opcode: (11, 8),
67};
68
69pub const B_TYPE_IMM_11: Immediate = Immediate {
71 position_in_immediate: (11, 11),
72 position_in_opcode: (7, 7),
73};
74
75pub const CJ_TYPE_IMM_11: Immediate = Immediate {
77 position_in_immediate: (11, 11),
78 position_in_opcode: (12, 12), };
80
81pub const CJ_TYPE_IMM_4: Immediate = Immediate {
83 position_in_immediate: (4, 4),
84 position_in_opcode: (11, 11), };
86
87pub const CJ_TYPE_IMM_9_8: Immediate = Immediate {
89 position_in_immediate: (9, 8),
90 position_in_opcode: (10, 9), };
92
93pub const CJ_TYPE_IMM_10: Immediate = Immediate {
95 position_in_immediate: (10, 10),
96 position_in_opcode: (8, 8), };
98
99pub const CJ_TYPE_IMM_6: Immediate = Immediate {
101 position_in_immediate: (6, 6),
102 position_in_opcode: (7, 7), };
104
105pub const CJ_TYPE_IMM_7: Immediate = Immediate {
107 position_in_immediate: (7, 7),
108 position_in_opcode: (6, 6), };
110
111pub const CJ_TYPE_IMM_3_1: Immediate = Immediate {
113 position_in_immediate: (3, 1),
114 position_in_opcode: (5, 3), };
116
117pub const CJ_TYPE_IMM_5: Immediate = Immediate {
119 position_in_immediate: (5, 5),
120 position_in_opcode: (2, 2), };
122
123pub const BIMM12LOHI: &[Immediate] = &[
124 B_TYPE_IMM_12,
125 B_TYPE_IMM_11,
126 B_TYPE_IMM_10_5,
127 B_TYPE_IMM_4_1,
128];
129pub const S_TYPE: &[Immediate] = &[S_TYPE_HI, S_TYPE_LO];
130pub const IMM20: &[Immediate] = &[UIMM_LO];
131pub const JIMM20: &[Immediate] = &[
132 UJ_TYPE_IMM_20,
133 UJ_TYPE_IMM_19_12,
134 UJ_TYPE_IMM_11,
135 UJ_TYPE_IMM_10_1,
136];
137pub const I_TYPE: &[Immediate] = &[I_TYPE_11_0];
138pub const SIMM5: &[Immediate] = &[Immediate {
139 position_in_immediate: (4, 0),
140 position_in_opcode: (19, 15),
141}];
142
143pub const IMM6: &[Immediate] = &[];
144pub const IMM12LOHI: &[Immediate] = &[
145 Immediate {
146 position_in_immediate: (11, 5),
147 position_in_opcode: (31, 25),
148 },
149 Immediate {
150 position_in_immediate: (4, 0),
151 position_in_opcode: (11, 7),
152 },
153];
154
155pub const IMM12: &[Immediate] = &[Immediate {
156 position_in_immediate: (11, 0),
157 position_in_opcode: (31, 20),
158}];
159
160pub const ZIMM: &[Immediate] = &[Immediate {
161 position_in_immediate: (4, 0),
162 position_in_opcode: (19, 15),
163}];
164
165pub const ZIMM6LOHI: &[Immediate] = &[
166 Immediate {
167 position_in_immediate: (5, 5),
168 position_in_opcode: (26, 26),
169 },
170 Immediate {
171 position_in_immediate: (4, 0),
172 position_in_opcode: (19, 15),
173 },
174];
175pub const ZIMM11: &[Immediate] = &[Immediate {
176 position_in_immediate: (10, 0),
177 position_in_opcode: (30, 20),
178}];
179
180pub const ZIMM10: &[Immediate] = &[Immediate {
181 position_in_immediate: (9, 0),
182 position_in_opcode: (29, 20),
183}];
184
185pub const ZIMM5: &[Immediate] = &[Immediate {
186 position_in_immediate: (4, 0),
187 position_in_opcode: (19, 15),
188}];
189
190pub const C_SPIMM: &[Immediate] = &[Immediate {
191 position_in_immediate: (5, 4),
192 position_in_opcode: (3, 2),
193}];
194
195pub const C_UIMM8SP_S: &[Immediate] = &[
196 Immediate {
197 position_in_immediate: (5, 2),
198 position_in_opcode: (12, 9),
199 },
200 Immediate {
201 position_in_immediate: (7, 6),
202 position_in_opcode: (6, 5),
203 },
204];
205
206pub const C_UIMM1: &[Immediate] = &[Immediate {
207 position_in_immediate: (1, 1),
208 position_in_opcode: (5, 5),
209}];
210
211pub const C_UIMM7LOHI: &[Immediate] = &[
212 Immediate {
213 position_in_immediate: (5, 3),
214 position_in_opcode: (12, 10),
215 },
216 Immediate {
217 position_in_immediate: (2, 2),
218 position_in_opcode: (6, 6),
219 },
220 Immediate {
221 position_in_immediate: (6, 6),
222 position_in_opcode: (5, 5),
223 },
224];
225
226pub const C_UIMM9_SPLOHI: &[Immediate] = &[
227 Immediate {
228 position_in_immediate: (5, 5),
229 position_in_opcode: (12, 12),
230 },
231 Immediate {
232 position_in_immediate: (4, 2),
233 position_in_opcode: (6, 4),
234 },
235 Immediate {
236 position_in_immediate: (7, 6),
237 position_in_opcode: (3, 2),
238 },
239];
240
241pub const C_UIMM9SP_S: &[Immediate] = &[
242 Immediate {
243 position_in_immediate: (5, 3),
244 position_in_opcode: (12, 9),
245 },
246 Immediate {
247 position_in_immediate: (8, 6),
248 position_in_opcode: (8, 6),
249 },
250];
251
252pub const C_UIMM2: &[Immediate] = &[
253 Immediate {
254 position_in_immediate: (0, 0),
255 position_in_opcode: (6, 6),
256 },
257 Immediate {
258 position_in_immediate: (1, 1),
259 position_in_opcode: (5, 5),
260 },
261];
262
263pub const C_NZUIMM10: &[Immediate] = &[
264 Immediate {
265 position_in_immediate: (5, 4),
266 position_in_opcode: (12, 11),
267 },
268 Immediate {
269 position_in_immediate: (9, 6),
270 position_in_opcode: (10, 7),
271 },
272 Immediate {
273 position_in_immediate: (2, 2),
274 position_in_opcode: (6, 6),
275 },
276 Immediate {
277 position_in_immediate: (3, 3),
278 position_in_opcode: (5, 5),
279 },
280];
281
282pub const C_NZIMM10LOHI: &[Immediate] = &[
283 Immediate {
284 position_in_immediate: (5, 5),
285 position_in_opcode: (12, 12),
286 },
287 Immediate {
288 position_in_immediate: (4, 0),
289 position_in_opcode: (6, 2),
290 },
291];
292
293pub const C_UIMM10SP_S: &[Immediate] = &[];
295pub const C_UIMM10SPLOHI: &[Immediate] = &[];
297pub const C_UIMM9LOHI: &[Immediate] = &[];
299pub const IMM5: &[Immediate] = &[];
301pub const IMM4: &[Immediate] = &[];
303pub const IMM3: &[Immediate] = &[];
305pub const IMM2: &[Immediate] = &[];
307
308pub const C_NZUIMM5: &[Immediate] = C_NZUIMM6LOHI;
309
310pub const C_NZIMM18LOHI: &[Immediate] = &[
311 Immediate {
312 position_in_immediate: (5, 5),
313 position_in_opcode: (12, 12),
314 },
315 Immediate {
316 position_in_immediate: (4, 0),
317 position_in_opcode: (6, 2),
318 },
319];
320
321pub const C_NZUIMM18LOHI: &[Immediate] = &[
323 Immediate {
324 position_in_immediate: (5, 5),
325 position_in_opcode: (12, 12),
326 },
327 Immediate {
328 position_in_immediate: (4, 0),
329 position_in_opcode: (6, 2),
330 },
331];
332
333pub const C_NZUIMM6LOHI: &[Immediate] = &[
334 Immediate {
335 position_in_immediate: (5, 5),
336 position_in_opcode: (13, 13),
337 },
338 Immediate {
339 position_in_immediate: (4, 0),
340 position_in_opcode: (7, 2),
341 },
342];
343
344pub const C_UIMM6LOHI: &[Immediate] = &[
345 Immediate {
346 position_in_immediate: (5, 5),
347 position_in_opcode: (12, 12),
348 },
349 Immediate {
350 position_in_immediate: (4, 0),
351 position_in_opcode: (6, 2),
352 },
353];
354
355pub const C_UIMM8LOHI: &[Immediate] = &[
356 Immediate {
357 position_in_immediate: (5, 3),
358 position_in_opcode: (12, 10),
359 },
360 Immediate {
361 position_in_immediate: (7, 6),
362 position_in_opcode: (7, 6),
363 },
364];
365
366pub const C_UIMM9SPLOHI: &[Immediate] = &[
367 Immediate {
368 position_in_immediate: (5, 5),
369 position_in_opcode: (13, 13),
370 },
371 Immediate {
372 position_in_immediate: (4, 3),
373 position_in_opcode: (7, 5),
374 },
375 Immediate {
376 position_in_immediate: (8, 6),
377 position_in_opcode: (4, 3),
378 },
379];
380
381pub const C_NZIMM6LOHI: &[Immediate] = &[
382 Immediate {
383 position_in_immediate: (5, 5),
384 position_in_opcode: (12, 12),
385 },
386 Immediate {
387 position_in_immediate: (4, 0),
388 position_in_opcode: (6, 2),
389 },
390];
391
392pub const C_BIMM9LOHI: &[Immediate] = &[
393 Immediate {
394 position_in_immediate: (8, 8),
395 position_in_opcode: (12, 12),
396 },
397 Immediate {
398 position_in_immediate: (4, 3),
399 position_in_opcode: (11, 10),
400 },
401 Immediate {
402 position_in_immediate: (7, 6),
403 position_in_opcode: (6, 5),
404 },
405 Immediate {
406 position_in_immediate: (2, 1),
407 position_in_opcode: (4, 3),
408 },
409 Immediate {
410 position_in_immediate: (5, 5),
411 position_in_opcode: (2, 2),
412 },
413];
414
415pub const C_UIMM8SPLOHI: &[Immediate] = &[
416 Immediate {
417 position_in_immediate: (5, 5),
418 position_in_opcode: (12, 12),
419 },
420 Immediate {
421 position_in_immediate: (4, 2),
422 position_in_opcode: (6, 4),
423 },
424 Immediate {
425 position_in_immediate: (7, 6),
426 position_in_opcode: (3, 2),
427 },
428];
429
430pub const C_UIMM8SP_SLOHI: &[Immediate] = &[
431 Immediate {
432 position_in_immediate: (5, 2),
433 position_in_opcode: (12, 9),
434 },
435 Immediate {
436 position_in_immediate: (7, 6),
437 position_in_opcode: (8, 7),
438 },
439];
440
441pub const C_IMM6LOHI: &[Immediate] = &[
442 Immediate {
443 position_in_immediate: (5, 5),
444 position_in_opcode: (12, 12),
445 },
446 Immediate {
447 position_in_immediate: (4, 0),
448 position_in_opcode: (6, 2),
449 },
450];
451pub const C_IMM12: &[Immediate] = &[
452 Immediate {
453 position_in_immediate: (11, 11),
454 position_in_opcode: (12, 12),
455 },
456 Immediate {
457 position_in_immediate: (4, 4),
458 position_in_opcode: (11, 11),
459 },
460 Immediate {
461 position_in_immediate: (9, 8),
462 position_in_opcode: (10, 9),
463 },
464 Immediate {
465 position_in_immediate: (10, 10),
466 position_in_opcode: (8, 8),
467 },
468 Immediate {
469 position_in_immediate: (6, 6),
470 position_in_opcode: (7, 7),
471 },
472 Immediate {
473 position_in_immediate: (7, 7),
474 position_in_opcode: (6, 6),
475 },
476 Immediate {
477 position_in_immediate: (3, 1),
478 position_in_opcode: (5, 3),
479 },
480 Immediate {
481 position_in_immediate: (5, 5),
482 position_in_opcode: (2, 2),
483 },
484];
485
486pub const C_IMM12LOHI: &[Immediate] = &[
487 Immediate {
488 position_in_immediate: (11, 11),
489 position_in_opcode: (12, 12),
490 },
491 Immediate {
492 position_in_immediate: (4, 4),
493 position_in_opcode: (11, 11),
494 },
495 Immediate {
496 position_in_immediate: (9, 8),
497 position_in_opcode: (10, 9),
498 },
499 Immediate {
500 position_in_immediate: (10, 10),
501 position_in_opcode: (8, 8),
502 },
503 Immediate {
504 position_in_immediate: (6, 6),
505 position_in_opcode: (7, 7),
506 },
507 Immediate {
508 position_in_immediate: (7, 7),
509 position_in_opcode: (6, 6),
510 },
511 Immediate {
512 position_in_immediate: (3, 1),
513 position_in_opcode: (5, 3),
514 },
515 Immediate {
516 position_in_immediate: (5, 5),
517 position_in_opcode: (2, 2),
518 },
519];
520
521pub const fn encode_immediate(immediate: &[Immediate], imm: i32) -> u32 {
522 let mut res = 0;
523 let mut i = 0;
524 while i < immediate.len() {
525 res |= immediate[i].encode(imm);
526 i += 1;
527 }
528 res
529}
530
531pub const fn decode_immediate(immediate: &[Immediate], op: u32) -> i32 {
532 let mut res = 0i32;
533 let mut i = 0;
534 while i < immediate.len() {
535 res |= immediate[i].decode(op);
536 i += 1;
537 }
538 res as _
539}
540
541pub fn is_immediate_valid(immediate: &[Immediate], imm: i32) -> bool {
542 immediate.iter().all(|i| i.is_valid(imm))
543}
544
545impl Immediate {
546 pub const fn encode(&self, imm: i32) -> u32 {
547 let imm = imm as u32;
548 let bit_count = self.position_in_immediate.0 - self.position_in_immediate.1 + 1;
549 let mask = (1u32 << bit_count) - 1;
550
551 ((imm >> self.position_in_immediate.1) & mask) << self.position_in_opcode.1
552 }
553
554 pub const fn decode(&self, op: u32) -> i32 {
555 let bit_count = self.position_in_opcode.0 - self.position_in_opcode.1 + 1;
556 let mask = (1u32 << bit_count) - 1;
557 (((op >> self.position_in_opcode.1) & mask) << self.position_in_immediate.1) as _
558 }
559
560 pub const fn is_valid(&self, imm: i32) -> bool {
561 self.decode(self.encode(imm)) == imm
562 }
563}
564
565pub const MATCH_ADD: u32 = 0x33;
568pub const MASK_ADD: u32 = 0xfe00707f;
569pub const MATCH_ADD_UW: u32 = 0x800003b;
570pub const MASK_ADD_UW: u32 = 0xfe00707f;
571pub const MATCH_ADDI: u32 = 0x13;
572pub const MASK_ADDI: u32 = 0x707f;
573pub const MATCH_ADDIW: u32 = 0x1b;
574pub const MASK_ADDIW: u32 = 0x707f;
575pub const MATCH_ADDW: u32 = 0x3b;
576pub const MASK_ADDW: u32 = 0xfe00707f;
577pub const MATCH_AES32DSI: u32 = 0x2a000033;
578pub const MASK_AES32DSI: u32 = 0x3e00707f;
579pub const MATCH_AES32DSMI: u32 = 0x2e000033;
580pub const MASK_AES32DSMI: u32 = 0x3e00707f;
581pub const MATCH_AES32ESI: u32 = 0x22000033;
582pub const MASK_AES32ESI: u32 = 0x3e00707f;
583pub const MATCH_AES32ESMI: u32 = 0x26000033;
584pub const MASK_AES32ESMI: u32 = 0x3e00707f;
585pub const MATCH_AES64DS: u32 = 0x3a000033;
586pub const MASK_AES64DS: u32 = 0xfe00707f;
587pub const MATCH_AES64DSM: u32 = 0x3e000033;
588pub const MASK_AES64DSM: u32 = 0xfe00707f;
589pub const MATCH_AES64ES: u32 = 0x32000033;
590pub const MASK_AES64ES: u32 = 0xfe00707f;
591pub const MATCH_AES64ESM: u32 = 0x36000033;
592pub const MASK_AES64ESM: u32 = 0xfe00707f;
593pub const MATCH_AES64IM: u32 = 0x30001013;
594pub const MASK_AES64IM: u32 = 0xfff0707f;
595pub const MATCH_AES64KS1I: u32 = 0x31001013;
596pub const MASK_AES64KS1I: u32 = 0xff00707f;
597pub const MATCH_AES64KS2: u32 = 0x7e000033;
598pub const MASK_AES64KS2: u32 = 0xfe00707f;
599pub const MATCH_AMOADD_B: u32 = 0x2f;
600pub const MASK_AMOADD_B: u32 = 0xf800707f;
601pub const MATCH_AMOADD_D: u32 = 0x302f;
602pub const MASK_AMOADD_D: u32 = 0xf800707f;
603pub const MATCH_AMOADD_H: u32 = 0x102f;
604pub const MASK_AMOADD_H: u32 = 0xf800707f;
605pub const MATCH_AMOADD_W: u32 = 0x202f;
606pub const MASK_AMOADD_W: u32 = 0xf800707f;
607pub const MATCH_AMOAND_B: u32 = 0x6000002f;
608pub const MASK_AMOAND_B: u32 = 0xf800707f;
609pub const MATCH_AMOAND_D: u32 = 0x6000302f;
610pub const MASK_AMOAND_D: u32 = 0xf800707f;
611pub const MATCH_AMOAND_H: u32 = 0x6000102f;
612pub const MASK_AMOAND_H: u32 = 0xf800707f;
613pub const MATCH_AMOAND_W: u32 = 0x6000202f;
614pub const MASK_AMOAND_W: u32 = 0xf800707f;
615pub const MATCH_AMOCAS_B: u32 = 0x2800002f;
616pub const MASK_AMOCAS_B: u32 = 0xf800707f;
617pub const MATCH_AMOCAS_D: u32 = 0x2800302f;
618pub const MASK_AMOCAS_D: u32 = 0xf800707f;
619pub const MATCH_AMOCAS_H: u32 = 0x2800102f;
620pub const MASK_AMOCAS_H: u32 = 0xf800707f;
621pub const MATCH_AMOCAS_Q: u32 = 0x2800402f;
622pub const MASK_AMOCAS_Q: u32 = 0xf800707f;
623pub const MATCH_AMOCAS_W: u32 = 0x2800202f;
624pub const MASK_AMOCAS_W: u32 = 0xf800707f;
625pub const MATCH_AMOMAX_B: u32 = 0xa000002f;
626pub const MASK_AMOMAX_B: u32 = 0xf800707f;
627pub const MATCH_AMOMAX_D: u32 = 0xa000302f;
628pub const MASK_AMOMAX_D: u32 = 0xf800707f;
629pub const MATCH_AMOMAX_H: u32 = 0xa000102f;
630pub const MASK_AMOMAX_H: u32 = 0xf800707f;
631pub const MATCH_AMOMAX_W: u32 = 0xa000202f;
632pub const MASK_AMOMAX_W: u32 = 0xf800707f;
633pub const MATCH_AMOMAXU_B: u32 = 0xe000002f;
634pub const MASK_AMOMAXU_B: u32 = 0xf800707f;
635pub const MATCH_AMOMAXU_D: u32 = 0xe000302f;
636pub const MASK_AMOMAXU_D: u32 = 0xf800707f;
637pub const MATCH_AMOMAXU_H: u32 = 0xe000102f;
638pub const MASK_AMOMAXU_H: u32 = 0xf800707f;
639pub const MATCH_AMOMAXU_W: u32 = 0xe000202f;
640pub const MASK_AMOMAXU_W: u32 = 0xf800707f;
641pub const MATCH_AMOMIN_B: u32 = 0x8000002f;
642pub const MASK_AMOMIN_B: u32 = 0xf800707f;
643pub const MATCH_AMOMIN_D: u32 = 0x8000302f;
644pub const MASK_AMOMIN_D: u32 = 0xf800707f;
645pub const MATCH_AMOMIN_H: u32 = 0x8000102f;
646pub const MASK_AMOMIN_H: u32 = 0xf800707f;
647pub const MATCH_AMOMIN_W: u32 = 0x8000202f;
648pub const MASK_AMOMIN_W: u32 = 0xf800707f;
649pub const MATCH_AMOMINU_B: u32 = 0xc000002f;
650pub const MASK_AMOMINU_B: u32 = 0xf800707f;
651pub const MATCH_AMOMINU_D: u32 = 0xc000302f;
652pub const MASK_AMOMINU_D: u32 = 0xf800707f;
653pub const MATCH_AMOMINU_H: u32 = 0xc000102f;
654pub const MASK_AMOMINU_H: u32 = 0xf800707f;
655pub const MATCH_AMOMINU_W: u32 = 0xc000202f;
656pub const MASK_AMOMINU_W: u32 = 0xf800707f;
657pub const MATCH_AMOOR_B: u32 = 0x4000002f;
658pub const MASK_AMOOR_B: u32 = 0xf800707f;
659pub const MATCH_AMOOR_D: u32 = 0x4000302f;
660pub const MASK_AMOOR_D: u32 = 0xf800707f;
661pub const MATCH_AMOOR_H: u32 = 0x4000102f;
662pub const MASK_AMOOR_H: u32 = 0xf800707f;
663pub const MATCH_AMOOR_W: u32 = 0x4000202f;
664pub const MASK_AMOOR_W: u32 = 0xf800707f;
665pub const MATCH_AMOSWAP_B: u32 = 0x800002f;
666pub const MASK_AMOSWAP_B: u32 = 0xf800707f;
667pub const MATCH_AMOSWAP_D: u32 = 0x800302f;
668pub const MASK_AMOSWAP_D: u32 = 0xf800707f;
669pub const MATCH_AMOSWAP_H: u32 = 0x800102f;
670pub const MASK_AMOSWAP_H: u32 = 0xf800707f;
671pub const MATCH_AMOSWAP_W: u32 = 0x800202f;
672pub const MASK_AMOSWAP_W: u32 = 0xf800707f;
673pub const MATCH_AMOXOR_B: u32 = 0x2000002f;
674pub const MASK_AMOXOR_B: u32 = 0xf800707f;
675pub const MATCH_AMOXOR_D: u32 = 0x2000302f;
676pub const MASK_AMOXOR_D: u32 = 0xf800707f;
677pub const MATCH_AMOXOR_H: u32 = 0x2000102f;
678pub const MASK_AMOXOR_H: u32 = 0xf800707f;
679pub const MATCH_AMOXOR_W: u32 = 0x2000202f;
680pub const MASK_AMOXOR_W: u32 = 0xf800707f;
681pub const MATCH_AND: u32 = 0x7033;
682pub const MASK_AND: u32 = 0xfe00707f;
683pub const MATCH_ANDI: u32 = 0x7013;
684pub const MASK_ANDI: u32 = 0x707f;
685pub const MATCH_ANDN: u32 = 0x40007033;
686pub const MASK_ANDN: u32 = 0xfe00707f;
687pub const MATCH_AUIPC: u32 = 0x17;
688pub const MASK_AUIPC: u32 = 0x7f;
689pub const MATCH_BCLR: u32 = 0x48001033;
690pub const MASK_BCLR: u32 = 0xfe00707f;
691pub const MATCH_BCLRI: u32 = 0x48001013;
692pub const MASK_BCLRI: u32 = 0xfc00707f;
693pub const MATCH_BCLRI_RV32: u32 = 0x48001013;
694pub const MASK_BCLRI_RV32: u32 = 0xfe00707f;
695pub const MATCH_BEQ: u32 = 0x63;
696pub const MASK_BEQ: u32 = 0x707f;
697pub const MATCH_BEQZ: u32 = 0x63;
698pub const MASK_BEQZ: u32 = 0x1f0707f;
699pub const MATCH_BEXT: u32 = 0x48005033;
700pub const MASK_BEXT: u32 = 0xfe00707f;
701pub const MATCH_BEXTI: u32 = 0x48005013;
702pub const MASK_BEXTI: u32 = 0xfc00707f;
703pub const MATCH_BEXTI_RV32: u32 = 0x48005013;
704pub const MASK_BEXTI_RV32: u32 = 0xfe00707f;
705pub const MATCH_BGE: u32 = 0x5063;
706pub const MASK_BGE: u32 = 0x707f;
707pub const MATCH_BGEU: u32 = 0x7063;
708pub const MASK_BGEU: u32 = 0x707f;
709pub const MATCH_BGEZ: u32 = 0x5063;
710pub const MASK_BGEZ: u32 = 0x1f0707f;
711pub const MATCH_BGT: u32 = 0x4063;
712pub const MASK_BGT: u32 = 0x707f;
713pub const MATCH_BGTU: u32 = 0x6063;
714pub const MASK_BGTU: u32 = 0x707f;
715pub const MATCH_BGTZ: u32 = 0x4063;
716pub const MASK_BGTZ: u32 = 0xff07f;
717pub const MATCH_BINV: u32 = 0x68001033;
718pub const MASK_BINV: u32 = 0xfe00707f;
719pub const MATCH_BINVI: u32 = 0x68001013;
720pub const MASK_BINVI: u32 = 0xfc00707f;
721pub const MATCH_BINVI_RV32: u32 = 0x68001013;
722pub const MASK_BINVI_RV32: u32 = 0xfe00707f;
723pub const MATCH_BLE: u32 = 0x5063;
724pub const MASK_BLE: u32 = 0x707f;
725pub const MATCH_BLEU: u32 = 0x7063;
726pub const MASK_BLEU: u32 = 0x707f;
727pub const MATCH_BLEZ: u32 = 0x5063;
728pub const MASK_BLEZ: u32 = 0xff07f;
729pub const MATCH_BLT: u32 = 0x4063;
730pub const MASK_BLT: u32 = 0x707f;
731pub const MATCH_BLTU: u32 = 0x6063;
732pub const MASK_BLTU: u32 = 0x707f;
733pub const MATCH_BLTZ: u32 = 0x4063;
734pub const MASK_BLTZ: u32 = 0x1f0707f;
735pub const MATCH_BNE: u32 = 0x1063;
736pub const MASK_BNE: u32 = 0x707f;
737pub const MATCH_BNEZ: u32 = 0x1063;
738pub const MASK_BNEZ: u32 = 0x1f0707f;
739pub const MATCH_BREV8: u32 = 0x68705013;
740pub const MASK_BREV8: u32 = 0xfff0707f;
741pub const MATCH_BSET: u32 = 0x28001033;
742pub const MASK_BSET: u32 = 0xfe00707f;
743pub const MATCH_BSETI: u32 = 0x28001013;
744pub const MASK_BSETI: u32 = 0xfc00707f;
745pub const MATCH_BSETI_RV32: u32 = 0x28001013;
746pub const MASK_BSETI_RV32: u32 = 0xfe00707f;
747pub const MATCH_C_ADD: u32 = 0x9002;
748pub const MASK_C_ADD: u32 = 0xf003;
749pub const MATCH_C_ADDI: u32 = 0x1;
750pub const MASK_C_ADDI: u32 = 0xe003;
751pub const MATCH_C_ADDI16SP: u32 = 0x6101;
752pub const MASK_C_ADDI16SP: u32 = 0xef83;
753pub const MATCH_C_ADDI4SPN: u32 = 0x0;
754pub const MASK_C_ADDI4SPN: u32 = 0xe003;
755pub const MATCH_C_ADDIW: u32 = 0x2001;
756pub const MASK_C_ADDIW: u32 = 0xe003;
757pub const MATCH_C_ADDW: u32 = 0x9c21;
758pub const MASK_C_ADDW: u32 = 0xfc63;
759pub const MATCH_C_AND: u32 = 0x8c61;
760pub const MASK_C_AND: u32 = 0xfc63;
761pub const MATCH_C_ANDI: u32 = 0x8801;
762pub const MASK_C_ANDI: u32 = 0xec03;
763pub const MATCH_C_BEQZ: u32 = 0xc001;
764pub const MASK_C_BEQZ: u32 = 0xe003;
765pub const MATCH_C_BNEZ: u32 = 0xe001;
766pub const MASK_C_BNEZ: u32 = 0xe003;
767pub const MATCH_C_EBREAK: u32 = 0x9002;
768pub const MASK_C_EBREAK: u32 = 0xffff;
769pub const MATCH_C_FLD: u32 = 0x2000;
770pub const MASK_C_FLD: u32 = 0xe003;
771pub const MATCH_C_FLDSP: u32 = 0x2002;
772pub const MASK_C_FLDSP: u32 = 0xe003;
773pub const MATCH_C_FLW: u32 = 0x6000;
774pub const MASK_C_FLW: u32 = 0xe003;
775pub const MATCH_C_FLWSP: u32 = 0x6002;
776pub const MASK_C_FLWSP: u32 = 0xe003;
777pub const MATCH_C_FSD: u32 = 0xa000;
778pub const MASK_C_FSD: u32 = 0xe003;
779pub const MATCH_C_FSDSP: u32 = 0xa002;
780pub const MASK_C_FSDSP: u32 = 0xe003;
781pub const MATCH_C_FSW: u32 = 0xe000;
782pub const MASK_C_FSW: u32 = 0xe003;
783pub const MATCH_C_FSWSP: u32 = 0xe002;
784pub const MASK_C_FSWSP: u32 = 0xe003;
785pub const MATCH_C_J: u32 = 0xa001;
786pub const MASK_C_J: u32 = 0xe003;
787pub const MATCH_C_JAL: u32 = 0x2001;
788pub const MASK_C_JAL: u32 = 0xe003;
789pub const MATCH_C_JALR: u32 = 0x9002;
790pub const MASK_C_JALR: u32 = 0xf07f;
791pub const MATCH_C_JR: u32 = 0x8002;
792pub const MASK_C_JR: u32 = 0xf07f;
793pub const MATCH_C_LBU: u32 = 0x8000;
794pub const MASK_C_LBU: u32 = 0xfc03;
795pub const MATCH_C_LD: u32 = 0x6000;
796pub const MASK_C_LD: u32 = 0xe003;
797pub const MATCH_C_LDSP: u32 = 0x6002;
798pub const MASK_C_LDSP: u32 = 0xe003;
799pub const MATCH_C_LH: u32 = 0x8440;
800pub const MASK_C_LH: u32 = 0xfc43;
801pub const MATCH_C_LHU: u32 = 0x8400;
802pub const MASK_C_LHU: u32 = 0xfc43;
803pub const MATCH_C_LI: u32 = 0x4001;
804pub const MASK_C_LI: u32 = 0xe003;
805pub const MATCH_C_LUI: u32 = 0x6001;
806pub const MASK_C_LUI: u32 = 0xe003;
807pub const MATCH_C_LW: u32 = 0x4000;
808pub const MASK_C_LW: u32 = 0xe003;
809pub const MATCH_C_LWSP: u32 = 0x4002;
810pub const MASK_C_LWSP: u32 = 0xe003;
811pub const MATCH_C_MOP_1: u32 = 0x6081;
812pub const MASK_C_MOP_1: u32 = 0xffff;
813pub const MATCH_C_MOP_11: u32 = 0x6581;
814pub const MASK_C_MOP_11: u32 = 0xffff;
815pub const MATCH_C_MOP_13: u32 = 0x6681;
816pub const MASK_C_MOP_13: u32 = 0xffff;
817pub const MATCH_C_MOP_15: u32 = 0x6781;
818pub const MASK_C_MOP_15: u32 = 0xffff;
819pub const MATCH_C_MOP_3: u32 = 0x6181;
820pub const MASK_C_MOP_3: u32 = 0xffff;
821pub const MATCH_C_MOP_5: u32 = 0x6281;
822pub const MASK_C_MOP_5: u32 = 0xffff;
823pub const MATCH_C_MOP_7: u32 = 0x6381;
824pub const MASK_C_MOP_7: u32 = 0xffff;
825pub const MATCH_C_MOP_9: u32 = 0x6481;
826pub const MASK_C_MOP_9: u32 = 0xffff;
827pub const MATCH_C_MOP_N: u32 = 0x6081;
828pub const MASK_C_MOP_N: u32 = 0xf8ff;
829pub const MATCH_C_MUL: u32 = 0x9c41;
830pub const MASK_C_MUL: u32 = 0xfc63;
831pub const MATCH_C_MV: u32 = 0x8002;
832pub const MASK_C_MV: u32 = 0xf003;
833pub const MATCH_C_NOP: u32 = 0x1;
834pub const MASK_C_NOP: u32 = 0xef83;
835pub const MATCH_C_NOT: u32 = 0x9c75;
836pub const MASK_C_NOT: u32 = 0xfc7f;
837pub const MATCH_C_NTL_ALL: u32 = 0x9016;
838pub const MASK_C_NTL_ALL: u32 = 0xffff;
839pub const MATCH_C_NTL_P1: u32 = 0x900a;
840pub const MASK_C_NTL_P1: u32 = 0xffff;
841pub const MATCH_C_NTL_PALL: u32 = 0x900e;
842pub const MASK_C_NTL_PALL: u32 = 0xffff;
843pub const MATCH_C_NTL_S1: u32 = 0x9012;
844pub const MASK_C_NTL_S1: u32 = 0xffff;
845pub const MATCH_C_OR: u32 = 0x8c41;
846pub const MASK_C_OR: u32 = 0xfc63;
847pub const MATCH_C_SB: u32 = 0x8800;
848pub const MASK_C_SB: u32 = 0xfc03;
849pub const MATCH_C_SD: u32 = 0xe000;
850pub const MASK_C_SD: u32 = 0xe003;
851pub const MATCH_C_SDSP: u32 = 0xe002;
852pub const MASK_C_SDSP: u32 = 0xe003;
853pub const MATCH_C_SEXT_B: u32 = 0x9c65;
854pub const MASK_C_SEXT_B: u32 = 0xfc7f;
855pub const MATCH_C_SEXT_H: u32 = 0x9c6d;
856pub const MASK_C_SEXT_H: u32 = 0xfc7f;
857pub const MATCH_C_SEXT_W: u32 = 0x2001;
858pub const MASK_C_SEXT_W: u32 = 0xf07f;
859pub const MATCH_C_SH: u32 = 0x8c00;
860pub const MASK_C_SH: u32 = 0xfc43;
861pub const MATCH_C_SLLI: u32 = 0x2;
862pub const MASK_C_SLLI: u32 = 0xe003;
863pub const MATCH_C_SLLI_RV32: u32 = 0x2;
864pub const MASK_C_SLLI_RV32: u32 = 0xf003;
865pub const MATCH_C_SRAI: u32 = 0x8401;
866pub const MASK_C_SRAI: u32 = 0xec03;
867pub const MATCH_C_SRAI_RV32: u32 = 0x8401;
868pub const MASK_C_SRAI_RV32: u32 = 0xfc03;
869pub const MATCH_C_SRLI: u32 = 0x8001;
870pub const MASK_C_SRLI: u32 = 0xec03;
871pub const MATCH_C_SRLI_RV32: u32 = 0x8001;
872pub const MASK_C_SRLI_RV32: u32 = 0xfc03;
873pub const MATCH_C_SUB: u32 = 0x8c01;
874pub const MASK_C_SUB: u32 = 0xfc63;
875pub const MATCH_C_SUBW: u32 = 0x9c01;
876pub const MASK_C_SUBW: u32 = 0xfc63;
877pub const MATCH_C_SW: u32 = 0xc000;
878pub const MASK_C_SW: u32 = 0xe003;
879pub const MATCH_C_SWSP: u32 = 0xc002;
880pub const MASK_C_SWSP: u32 = 0xe003;
881pub const MATCH_C_XOR: u32 = 0x8c21;
882pub const MASK_C_XOR: u32 = 0xfc63;
883pub const MATCH_C_ZEXT_B: u32 = 0x9c61;
884pub const MASK_C_ZEXT_B: u32 = 0xfc7f;
885pub const MATCH_C_ZEXT_H: u32 = 0x9c69;
886pub const MASK_C_ZEXT_H: u32 = 0xfc7f;
887pub const MATCH_C_ZEXT_W: u32 = 0x9c71;
888pub const MASK_C_ZEXT_W: u32 = 0xfc7f;
889pub const MATCH_CBO_CLEAN: u32 = 0x10200f;
890pub const MASK_CBO_CLEAN: u32 = 0xfff07fff;
891pub const MATCH_CBO_FLUSH: u32 = 0x20200f;
892pub const MASK_CBO_FLUSH: u32 = 0xfff07fff;
893pub const MATCH_CBO_INVAL: u32 = 0x200f;
894pub const MASK_CBO_INVAL: u32 = 0xfff07fff;
895pub const MATCH_CBO_ZERO: u32 = 0x40200f;
896pub const MASK_CBO_ZERO: u32 = 0xfff07fff;
897pub const MATCH_CLMUL: u32 = 0xa001033;
898pub const MASK_CLMUL: u32 = 0xfe00707f;
899pub const MATCH_CLMULH: u32 = 0xa003033;
900pub const MASK_CLMULH: u32 = 0xfe00707f;
901pub const MATCH_CLMULR: u32 = 0xa002033;
902pub const MASK_CLMULR: u32 = 0xfe00707f;
903pub const MATCH_CLZ: u32 = 0x60001013;
904pub const MASK_CLZ: u32 = 0xfff0707f;
905pub const MATCH_CLZW: u32 = 0x6000101b;
906pub const MASK_CLZW: u32 = 0xfff0707f;
907pub const MATCH_CM_JALT: u32 = 0xa002;
908pub const MASK_CM_JALT: u32 = 0xfc03;
909pub const MATCH_CM_MVA01S: u32 = 0xac62;
910pub const MASK_CM_MVA01S: u32 = 0xfc63;
911pub const MATCH_CM_MVSA01: u32 = 0xac22;
912pub const MASK_CM_MVSA01: u32 = 0xfc63;
913pub const MATCH_CM_POP: u32 = 0xba02;
914pub const MASK_CM_POP: u32 = 0xff03;
915pub const MATCH_CM_POPRET: u32 = 0xbe02;
916pub const MASK_CM_POPRET: u32 = 0xff03;
917pub const MATCH_CM_POPRETZ: u32 = 0xbc02;
918pub const MASK_CM_POPRETZ: u32 = 0xff03;
919pub const MATCH_CM_PUSH: u32 = 0xb802;
920pub const MASK_CM_PUSH: u32 = 0xff03;
921pub const MATCH_CPOP: u32 = 0x60201013;
922pub const MASK_CPOP: u32 = 0xfff0707f;
923pub const MATCH_CPOPW: u32 = 0x6020101b;
924pub const MASK_CPOPW: u32 = 0xfff0707f;
925pub const MATCH_CSRC: u32 = 0x3073;
926pub const MASK_CSRC: u32 = 0x7fff;
927pub const MATCH_CSRCI: u32 = 0x7073;
928pub const MASK_CSRCI: u32 = 0x7fff;
929pub const MATCH_CSRR: u32 = 0x2073;
930pub const MASK_CSRR: u32 = 0xff07f;
931pub const MATCH_CSRRC: u32 = 0x3073;
932pub const MASK_CSRRC: u32 = 0x707f;
933pub const MATCH_CSRRCI: u32 = 0x7073;
934pub const MASK_CSRRCI: u32 = 0x707f;
935pub const MATCH_CSRRS: u32 = 0x2073;
936pub const MASK_CSRRS: u32 = 0x707f;
937pub const MATCH_CSRRSI: u32 = 0x6073;
938pub const MASK_CSRRSI: u32 = 0x707f;
939pub const MATCH_CSRRW: u32 = 0x1073;
940pub const MASK_CSRRW: u32 = 0x707f;
941pub const MATCH_CSRRWI: u32 = 0x5073;
942pub const MASK_CSRRWI: u32 = 0x707f;
943pub const MATCH_CSRS: u32 = 0x2073;
944pub const MASK_CSRS: u32 = 0x7fff;
945pub const MATCH_CSRSI: u32 = 0x6073;
946pub const MASK_CSRSI: u32 = 0x7fff;
947pub const MATCH_CSRW: u32 = 0x1073;
948pub const MASK_CSRW: u32 = 0x7fff;
949pub const MATCH_CSRWI: u32 = 0x5073;
950pub const MASK_CSRWI: u32 = 0x7fff;
951pub const MATCH_CTZ: u32 = 0x60101013;
952pub const MASK_CTZ: u32 = 0xfff0707f;
953pub const MATCH_CTZW: u32 = 0x6010101b;
954pub const MASK_CTZW: u32 = 0xfff0707f;
955pub const MATCH_CZERO_EQZ: u32 = 0xe005033;
956pub const MASK_CZERO_EQZ: u32 = 0xfe00707f;
957pub const MATCH_CZERO_NEZ: u32 = 0xe007033;
958pub const MASK_CZERO_NEZ: u32 = 0xfe00707f;
959pub const MATCH_DIV: u32 = 0x2004033;
960pub const MASK_DIV: u32 = 0xfe00707f;
961pub const MATCH_DIVU: u32 = 0x2005033;
962pub const MASK_DIVU: u32 = 0xfe00707f;
963pub const MATCH_DIVUW: u32 = 0x200503b;
964pub const MASK_DIVUW: u32 = 0xfe00707f;
965pub const MATCH_DIVW: u32 = 0x200403b;
966pub const MASK_DIVW: u32 = 0xfe00707f;
967pub const MATCH_DRET: u32 = 0x7b200073;
968pub const MASK_DRET: u32 = 0xffffffff;
969pub const MATCH_EBREAK: u32 = 0x100073;
970pub const MASK_EBREAK: u32 = 0xffffffff;
971pub const MATCH_ECALL: u32 = 0x73;
972pub const MASK_ECALL: u32 = 0xffffffff;
973pub const MATCH_FABS_D: u32 = 0x22002053;
974pub const MASK_FABS_D: u32 = 0xfe00707f;
975pub const MATCH_FABS_H: u32 = 0x24002053;
976pub const MASK_FABS_H: u32 = 0xfe00707f;
977pub const MATCH_FABS_Q: u32 = 0x26002053;
978pub const MASK_FABS_Q: u32 = 0xfe00707f;
979pub const MATCH_FABS_S: u32 = 0x20002053;
980pub const MASK_FABS_S: u32 = 0xfe00707f;
981pub const MATCH_FADD_D: u32 = 0x2000053;
982pub const MASK_FADD_D: u32 = 0xfe00007f;
983pub const MATCH_FADD_H: u32 = 0x4000053;
984pub const MASK_FADD_H: u32 = 0xfe00007f;
985pub const MATCH_FADD_Q: u32 = 0x6000053;
986pub const MASK_FADD_Q: u32 = 0xfe00007f;
987pub const MATCH_FADD_S: u32 = 0x53;
988pub const MASK_FADD_S: u32 = 0xfe00007f;
989pub const MATCH_FCLASS_D: u32 = 0xe2001053;
990pub const MASK_FCLASS_D: u32 = 0xfff0707f;
991pub const MATCH_FCLASS_H: u32 = 0xe4001053;
992pub const MASK_FCLASS_H: u32 = 0xfff0707f;
993pub const MATCH_FCLASS_Q: u32 = 0xe6001053;
994pub const MASK_FCLASS_Q: u32 = 0xfff0707f;
995pub const MATCH_FCLASS_S: u32 = 0xe0001053;
996pub const MASK_FCLASS_S: u32 = 0xfff0707f;
997pub const MATCH_FCVT_D_H: u32 = 0x42200053;
998pub const MASK_FCVT_D_H: u32 = 0xfff0007f;
999pub const MATCH_FCVT_D_L: u32 = 0xd2200053;
1000pub const MASK_FCVT_D_L: u32 = 0xfff0007f;
1001pub const MATCH_FCVT_D_LU: u32 = 0xd2300053;
1002pub const MASK_FCVT_D_LU: u32 = 0xfff0007f;
1003pub const MATCH_FCVT_D_Q: u32 = 0x42300053;
1004pub const MASK_FCVT_D_Q: u32 = 0xfff0007f;
1005pub const MATCH_FCVT_D_S: u32 = 0x42000053;
1006pub const MASK_FCVT_D_S: u32 = 0xfff0007f;
1007pub const MATCH_FCVT_D_W: u32 = 0xd2000053;
1008pub const MASK_FCVT_D_W: u32 = 0xfff0007f;
1009pub const MATCH_FCVT_D_WU: u32 = 0xd2100053;
1010pub const MASK_FCVT_D_WU: u32 = 0xfff0007f;
1011pub const MATCH_FCVT_H_D: u32 = 0x44100053;
1012pub const MASK_FCVT_H_D: u32 = 0xfff0007f;
1013pub const MATCH_FCVT_H_L: u32 = 0xd4200053;
1014pub const MASK_FCVT_H_L: u32 = 0xfff0007f;
1015pub const MATCH_FCVT_H_LU: u32 = 0xd4300053;
1016pub const MASK_FCVT_H_LU: u32 = 0xfff0007f;
1017pub const MATCH_FCVT_H_Q: u32 = 0x44300053;
1018pub const MASK_FCVT_H_Q: u32 = 0xfff0007f;
1019pub const MATCH_FCVT_H_S: u32 = 0x44000053;
1020pub const MASK_FCVT_H_S: u32 = 0xfff0007f;
1021pub const MATCH_FCVT_H_W: u32 = 0xd4000053;
1022pub const MASK_FCVT_H_W: u32 = 0xfff0007f;
1023pub const MATCH_FCVT_H_WU: u32 = 0xd4100053;
1024pub const MASK_FCVT_H_WU: u32 = 0xfff0007f;
1025pub const MATCH_FCVT_L_D: u32 = 0xc2200053;
1026pub const MASK_FCVT_L_D: u32 = 0xfff0007f;
1027pub const MATCH_FCVT_L_H: u32 = 0xc4200053;
1028pub const MASK_FCVT_L_H: u32 = 0xfff0007f;
1029pub const MATCH_FCVT_L_Q: u32 = 0xc6200053;
1030pub const MASK_FCVT_L_Q: u32 = 0xfff0007f;
1031pub const MATCH_FCVT_L_S: u32 = 0xc0200053;
1032pub const MASK_FCVT_L_S: u32 = 0xfff0007f;
1033pub const MATCH_FCVT_LU_D: u32 = 0xc2300053;
1034pub const MASK_FCVT_LU_D: u32 = 0xfff0007f;
1035pub const MATCH_FCVT_LU_H: u32 = 0xc4300053;
1036pub const MASK_FCVT_LU_H: u32 = 0xfff0007f;
1037pub const MATCH_FCVT_LU_Q: u32 = 0xc6300053;
1038pub const MASK_FCVT_LU_Q: u32 = 0xfff0007f;
1039pub const MATCH_FCVT_LU_S: u32 = 0xc0300053;
1040pub const MASK_FCVT_LU_S: u32 = 0xfff0007f;
1041pub const MATCH_FCVT_Q_D: u32 = 0x46100053;
1042pub const MASK_FCVT_Q_D: u32 = 0xfff0007f;
1043pub const MATCH_FCVT_Q_H: u32 = 0x46200053;
1044pub const MASK_FCVT_Q_H: u32 = 0xfff0007f;
1045pub const MATCH_FCVT_Q_L: u32 = 0xd6200053;
1046pub const MASK_FCVT_Q_L: u32 = 0xfff0007f;
1047pub const MATCH_FCVT_Q_LU: u32 = 0xd6300053;
1048pub const MASK_FCVT_Q_LU: u32 = 0xfff0007f;
1049pub const MATCH_FCVT_Q_S: u32 = 0x46000053;
1050pub const MASK_FCVT_Q_S: u32 = 0xfff0007f;
1051pub const MATCH_FCVT_Q_W: u32 = 0xd6000053;
1052pub const MASK_FCVT_Q_W: u32 = 0xfff0007f;
1053pub const MATCH_FCVT_Q_WU: u32 = 0xd6100053;
1054pub const MASK_FCVT_Q_WU: u32 = 0xfff0007f;
1055pub const MATCH_FCVT_S_D: u32 = 0x40100053;
1056pub const MASK_FCVT_S_D: u32 = 0xfff0007f;
1057pub const MATCH_FCVT_S_H: u32 = 0x40200053;
1058pub const MASK_FCVT_S_H: u32 = 0xfff0007f;
1059pub const MATCH_FCVT_S_L: u32 = 0xd0200053;
1060pub const MASK_FCVT_S_L: u32 = 0xfff0007f;
1061pub const MATCH_FCVT_S_LU: u32 = 0xd0300053;
1062pub const MASK_FCVT_S_LU: u32 = 0xfff0007f;
1063pub const MATCH_FCVT_S_Q: u32 = 0x40300053;
1064pub const MASK_FCVT_S_Q: u32 = 0xfff0007f;
1065pub const MATCH_FCVT_S_W: u32 = 0xd0000053;
1066pub const MASK_FCVT_S_W: u32 = 0xfff0007f;
1067pub const MATCH_FCVT_S_WU: u32 = 0xd0100053;
1068pub const MASK_FCVT_S_WU: u32 = 0xfff0007f;
1069pub const MATCH_FCVT_W_D: u32 = 0xc2000053;
1070pub const MASK_FCVT_W_D: u32 = 0xfff0007f;
1071pub const MATCH_FCVT_W_H: u32 = 0xc4000053;
1072pub const MASK_FCVT_W_H: u32 = 0xfff0007f;
1073pub const MATCH_FCVT_W_Q: u32 = 0xc6000053;
1074pub const MASK_FCVT_W_Q: u32 = 0xfff0007f;
1075pub const MATCH_FCVT_W_S: u32 = 0xc0000053;
1076pub const MASK_FCVT_W_S: u32 = 0xfff0007f;
1077pub const MATCH_FCVT_WU_D: u32 = 0xc2100053;
1078pub const MASK_FCVT_WU_D: u32 = 0xfff0007f;
1079pub const MATCH_FCVT_WU_H: u32 = 0xc4100053;
1080pub const MASK_FCVT_WU_H: u32 = 0xfff0007f;
1081pub const MATCH_FCVT_WU_Q: u32 = 0xc6100053;
1082pub const MASK_FCVT_WU_Q: u32 = 0xfff0007f;
1083pub const MATCH_FCVT_WU_S: u32 = 0xc0100053;
1084pub const MASK_FCVT_WU_S: u32 = 0xfff0007f;
1085pub const MATCH_FCVTMOD_W_D: u32 = 0xc2801053;
1086pub const MASK_FCVTMOD_W_D: u32 = 0xfff0707f;
1087pub const MATCH_FDIV_D: u32 = 0x1a000053;
1088pub const MASK_FDIV_D: u32 = 0xfe00007f;
1089pub const MATCH_FDIV_H: u32 = 0x1c000053;
1090pub const MASK_FDIV_H: u32 = 0xfe00007f;
1091pub const MATCH_FDIV_Q: u32 = 0x1e000053;
1092pub const MASK_FDIV_Q: u32 = 0xfe00007f;
1093pub const MATCH_FDIV_S: u32 = 0x18000053;
1094pub const MASK_FDIV_S: u32 = 0xfe00007f;
1095pub const MATCH_FENCE: u32 = 0xf;
1096pub const MASK_FENCE: u32 = 0x707f;
1097pub const MATCH_FENCE_I: u32 = 0x100f;
1098pub const MASK_FENCE_I: u32 = 0x707f;
1099pub const MATCH_FENCE_TSO: u32 = 0x8330000f;
1100pub const MASK_FENCE_TSO: u32 = 0xfff0707f;
1101pub const MATCH_FEQ_D: u32 = 0xa2002053;
1102pub const MASK_FEQ_D: u32 = 0xfe00707f;
1103pub const MATCH_FEQ_H: u32 = 0xa4002053;
1104pub const MASK_FEQ_H: u32 = 0xfe00707f;
1105pub const MATCH_FEQ_Q: u32 = 0xa6002053;
1106pub const MASK_FEQ_Q: u32 = 0xfe00707f;
1107pub const MATCH_FEQ_S: u32 = 0xa0002053;
1108pub const MASK_FEQ_S: u32 = 0xfe00707f;
1109pub const MATCH_FLD: u32 = 0x3007;
1110pub const MASK_FLD: u32 = 0x707f;
1111pub const MATCH_FLE_D: u32 = 0xa2000053;
1112pub const MASK_FLE_D: u32 = 0xfe00707f;
1113pub const MATCH_FLE_H: u32 = 0xa4000053;
1114pub const MASK_FLE_H: u32 = 0xfe00707f;
1115pub const MATCH_FLE_Q: u32 = 0xa6000053;
1116pub const MASK_FLE_Q: u32 = 0xfe00707f;
1117pub const MATCH_FLE_S: u32 = 0xa0000053;
1118pub const MASK_FLE_S: u32 = 0xfe00707f;
1119pub const MATCH_FLEQ_D: u32 = 0xa2004053;
1120pub const MASK_FLEQ_D: u32 = 0xfe00707f;
1121pub const MATCH_FLEQ_H: u32 = 0xa4004053;
1122pub const MASK_FLEQ_H: u32 = 0xfe00707f;
1123pub const MATCH_FLEQ_Q: u32 = 0xa6004053;
1124pub const MASK_FLEQ_Q: u32 = 0xfe00707f;
1125pub const MATCH_FLEQ_S: u32 = 0xa0004053;
1126pub const MASK_FLEQ_S: u32 = 0xfe00707f;
1127pub const MATCH_FLH: u32 = 0x1007;
1128pub const MASK_FLH: u32 = 0x707f;
1129pub const MATCH_FLI_D: u32 = 0xf2100053;
1130pub const MASK_FLI_D: u32 = 0xfff0707f;
1131pub const MATCH_FLI_H: u32 = 0xf4100053;
1132pub const MASK_FLI_H: u32 = 0xfff0707f;
1133pub const MATCH_FLI_Q: u32 = 0xf6100053;
1134pub const MASK_FLI_Q: u32 = 0xfff0707f;
1135pub const MATCH_FLI_S: u32 = 0xf0100053;
1136pub const MASK_FLI_S: u32 = 0xfff0707f;
1137pub const MATCH_FLQ: u32 = 0x4007;
1138pub const MASK_FLQ: u32 = 0x707f;
1139pub const MATCH_FLT_D: u32 = 0xa2001053;
1140pub const MASK_FLT_D: u32 = 0xfe00707f;
1141pub const MATCH_FLT_H: u32 = 0xa4001053;
1142pub const MASK_FLT_H: u32 = 0xfe00707f;
1143pub const MATCH_FLT_Q: u32 = 0xa6001053;
1144pub const MASK_FLT_Q: u32 = 0xfe00707f;
1145pub const MATCH_FLT_S: u32 = 0xa0001053;
1146pub const MASK_FLT_S: u32 = 0xfe00707f;
1147pub const MATCH_FLTQ_D: u32 = 0xa2005053;
1148pub const MASK_FLTQ_D: u32 = 0xfe00707f;
1149pub const MATCH_FLTQ_H: u32 = 0xa4005053;
1150pub const MASK_FLTQ_H: u32 = 0xfe00707f;
1151pub const MATCH_FLTQ_Q: u32 = 0xa6005053;
1152pub const MASK_FLTQ_Q: u32 = 0xfe00707f;
1153pub const MATCH_FLTQ_S: u32 = 0xa0005053;
1154pub const MASK_FLTQ_S: u32 = 0xfe00707f;
1155pub const MATCH_FLW: u32 = 0x2007;
1156pub const MASK_FLW: u32 = 0x707f;
1157pub const MATCH_FMADD_D: u32 = 0x2000043;
1158pub const MASK_FMADD_D: u32 = 0x600007f;
1159pub const MATCH_FMADD_H: u32 = 0x4000043;
1160pub const MASK_FMADD_H: u32 = 0x600007f;
1161pub const MATCH_FMADD_Q: u32 = 0x6000043;
1162pub const MASK_FMADD_Q: u32 = 0x600007f;
1163pub const MATCH_FMADD_S: u32 = 0x43;
1164pub const MASK_FMADD_S: u32 = 0x600007f;
1165pub const MATCH_FMAX_D: u32 = 0x2a001053;
1166pub const MASK_FMAX_D: u32 = 0xfe00707f;
1167pub const MATCH_FMAX_H: u32 = 0x2c001053;
1168pub const MASK_FMAX_H: u32 = 0xfe00707f;
1169pub const MATCH_FMAX_Q: u32 = 0x2e001053;
1170pub const MASK_FMAX_Q: u32 = 0xfe00707f;
1171pub const MATCH_FMAX_S: u32 = 0x28001053;
1172pub const MASK_FMAX_S: u32 = 0xfe00707f;
1173pub const MATCH_FMAXM_D: u32 = 0x2a003053;
1174pub const MASK_FMAXM_D: u32 = 0xfe00707f;
1175pub const MATCH_FMAXM_H: u32 = 0x2c003053;
1176pub const MASK_FMAXM_H: u32 = 0xfe00707f;
1177pub const MATCH_FMAXM_Q: u32 = 0x2e003053;
1178pub const MASK_FMAXM_Q: u32 = 0xfe00707f;
1179pub const MATCH_FMAXM_S: u32 = 0x28003053;
1180pub const MASK_FMAXM_S: u32 = 0xfe00707f;
1181pub const MATCH_FMIN_D: u32 = 0x2a000053;
1182pub const MASK_FMIN_D: u32 = 0xfe00707f;
1183pub const MATCH_FMIN_H: u32 = 0x2c000053;
1184pub const MASK_FMIN_H: u32 = 0xfe00707f;
1185pub const MATCH_FMIN_Q: u32 = 0x2e000053;
1186pub const MASK_FMIN_Q: u32 = 0xfe00707f;
1187pub const MATCH_FMIN_S: u32 = 0x28000053;
1188pub const MASK_FMIN_S: u32 = 0xfe00707f;
1189pub const MATCH_FMINM_D: u32 = 0x2a002053;
1190pub const MASK_FMINM_D: u32 = 0xfe00707f;
1191pub const MATCH_FMINM_H: u32 = 0x2c002053;
1192pub const MASK_FMINM_H: u32 = 0xfe00707f;
1193pub const MATCH_FMINM_Q: u32 = 0x2e002053;
1194pub const MASK_FMINM_Q: u32 = 0xfe00707f;
1195pub const MATCH_FMINM_S: u32 = 0x28002053;
1196pub const MASK_FMINM_S: u32 = 0xfe00707f;
1197pub const MATCH_FMSUB_D: u32 = 0x2000047;
1198pub const MASK_FMSUB_D: u32 = 0x600007f;
1199pub const MATCH_FMSUB_H: u32 = 0x4000047;
1200pub const MASK_FMSUB_H: u32 = 0x600007f;
1201pub const MATCH_FMSUB_Q: u32 = 0x6000047;
1202pub const MASK_FMSUB_Q: u32 = 0x600007f;
1203pub const MATCH_FMSUB_S: u32 = 0x47;
1204pub const MASK_FMSUB_S: u32 = 0x600007f;
1205pub const MATCH_FMUL_D: u32 = 0x12000053;
1206pub const MASK_FMUL_D: u32 = 0xfe00007f;
1207pub const MATCH_FMUL_H: u32 = 0x14000053;
1208pub const MASK_FMUL_H: u32 = 0xfe00007f;
1209pub const MATCH_FMUL_Q: u32 = 0x16000053;
1210pub const MASK_FMUL_Q: u32 = 0xfe00007f;
1211pub const MATCH_FMUL_S: u32 = 0x10000053;
1212pub const MASK_FMUL_S: u32 = 0xfe00007f;
1213pub const MATCH_FMV_D: u32 = 0x22000053;
1214pub const MASK_FMV_D: u32 = 0xfe00707f;
1215pub const MATCH_FMV_D_X: u32 = 0xf2000053;
1216pub const MASK_FMV_D_X: u32 = 0xfff0707f;
1217pub const MATCH_FMV_H: u32 = 0x24000053;
1218pub const MASK_FMV_H: u32 = 0xfe00707f;
1219pub const MATCH_FMV_H_X: u32 = 0xf4000053;
1220pub const MASK_FMV_H_X: u32 = 0xfff0707f;
1221pub const MATCH_FMV_Q: u32 = 0x26000053;
1222pub const MASK_FMV_Q: u32 = 0xfe00707f;
1223pub const MATCH_FMV_S: u32 = 0x20000053;
1224pub const MASK_FMV_S: u32 = 0xfe00707f;
1225pub const MATCH_FMV_S_X: u32 = 0xf0000053;
1226pub const MASK_FMV_S_X: u32 = 0xfff0707f;
1227pub const MATCH_FMV_W_X: u32 = 0xf0000053;
1228pub const MASK_FMV_W_X: u32 = 0xfff0707f;
1229pub const MATCH_FMV_X_D: u32 = 0xe2000053;
1230pub const MASK_FMV_X_D: u32 = 0xfff0707f;
1231pub const MATCH_FMV_X_H: u32 = 0xe4000053;
1232pub const MASK_FMV_X_H: u32 = 0xfff0707f;
1233pub const MATCH_FMV_X_S: u32 = 0xe0000053;
1234pub const MASK_FMV_X_S: u32 = 0xfff0707f;
1235pub const MATCH_FMV_X_W: u32 = 0xe0000053;
1236pub const MASK_FMV_X_W: u32 = 0xfff0707f;
1237pub const MATCH_FMVH_X_D: u32 = 0xe2100053;
1238pub const MASK_FMVH_X_D: u32 = 0xfff0707f;
1239pub const MATCH_FMVH_X_Q: u32 = 0xe6100053;
1240pub const MASK_FMVH_X_Q: u32 = 0xfff0707f;
1241pub const MATCH_FMVP_D_X: u32 = 0xb2000053;
1242pub const MASK_FMVP_D_X: u32 = 0xfe00707f;
1243pub const MATCH_FMVP_Q_X: u32 = 0xb6000053;
1244pub const MASK_FMVP_Q_X: u32 = 0xfe00707f;
1245pub const MATCH_FNEG_D: u32 = 0x22001053;
1246pub const MASK_FNEG_D: u32 = 0xfe00707f;
1247pub const MATCH_FNEG_H: u32 = 0x24001053;
1248pub const MASK_FNEG_H: u32 = 0xfe00707f;
1249pub const MATCH_FNEG_Q: u32 = 0x26001053;
1250pub const MASK_FNEG_Q: u32 = 0xfe00707f;
1251pub const MATCH_FNEG_S: u32 = 0x20001053;
1252pub const MASK_FNEG_S: u32 = 0xfe00707f;
1253pub const MATCH_FNMADD_D: u32 = 0x200004f;
1254pub const MASK_FNMADD_D: u32 = 0x600007f;
1255pub const MATCH_FNMADD_H: u32 = 0x400004f;
1256pub const MASK_FNMADD_H: u32 = 0x600007f;
1257pub const MATCH_FNMADD_Q: u32 = 0x600004f;
1258pub const MASK_FNMADD_Q: u32 = 0x600007f;
1259pub const MATCH_FNMADD_S: u32 = 0x4f;
1260pub const MASK_FNMADD_S: u32 = 0x600007f;
1261pub const MATCH_FNMSUB_D: u32 = 0x200004b;
1262pub const MASK_FNMSUB_D: u32 = 0x600007f;
1263pub const MATCH_FNMSUB_H: u32 = 0x400004b;
1264pub const MASK_FNMSUB_H: u32 = 0x600007f;
1265pub const MATCH_FNMSUB_Q: u32 = 0x600004b;
1266pub const MASK_FNMSUB_Q: u32 = 0x600007f;
1267pub const MATCH_FNMSUB_S: u32 = 0x4b;
1268pub const MASK_FNMSUB_S: u32 = 0x600007f;
1269pub const MATCH_FRCSR: u32 = 0x302073;
1270pub const MASK_FRCSR: u32 = 0xfffff07f;
1271pub const MATCH_FRFLAGS: u32 = 0x102073;
1272pub const MASK_FRFLAGS: u32 = 0xfffff07f;
1273pub const MATCH_FROUND_D: u32 = 0x42400053;
1274pub const MASK_FROUND_D: u32 = 0xfff0007f;
1275pub const MATCH_FROUND_H: u32 = 0x44400053;
1276pub const MASK_FROUND_H: u32 = 0xfff0007f;
1277pub const MATCH_FROUND_Q: u32 = 0x46400053;
1278pub const MASK_FROUND_Q: u32 = 0xfff0007f;
1279pub const MATCH_FROUND_S: u32 = 0x40400053;
1280pub const MASK_FROUND_S: u32 = 0xfff0007f;
1281pub const MATCH_FROUNDNX_D: u32 = 0x42500053;
1282pub const MASK_FROUNDNX_D: u32 = 0xfff0007f;
1283pub const MATCH_FROUNDNX_H: u32 = 0x44500053;
1284pub const MASK_FROUNDNX_H: u32 = 0xfff0007f;
1285pub const MATCH_FROUNDNX_Q: u32 = 0x46500053;
1286pub const MASK_FROUNDNX_Q: u32 = 0xfff0007f;
1287pub const MATCH_FROUNDNX_S: u32 = 0x40500053;
1288pub const MASK_FROUNDNX_S: u32 = 0xfff0007f;
1289pub const MATCH_FRRM: u32 = 0x202073;
1290pub const MASK_FRRM: u32 = 0xfffff07f;
1291pub const MATCH_FSCSR: u32 = 0x301073;
1292pub const MASK_FSCSR: u32 = 0xfff0707f;
1293pub const MATCH_FSD: u32 = 0x3027;
1294pub const MASK_FSD: u32 = 0x707f;
1295pub const MATCH_FSFLAGS: u32 = 0x101073;
1296pub const MASK_FSFLAGS: u32 = 0xfff0707f;
1297pub const MATCH_FSFLAGSI: u32 = 0x105073;
1298pub const MASK_FSFLAGSI: u32 = 0xfff0707f;
1299pub const MATCH_FSGNJ_D: u32 = 0x22000053;
1300pub const MASK_FSGNJ_D: u32 = 0xfe00707f;
1301pub const MATCH_FSGNJ_H: u32 = 0x24000053;
1302pub const MASK_FSGNJ_H: u32 = 0xfe00707f;
1303pub const MATCH_FSGNJ_Q: u32 = 0x26000053;
1304pub const MASK_FSGNJ_Q: u32 = 0xfe00707f;
1305pub const MATCH_FSGNJ_S: u32 = 0x20000053;
1306pub const MASK_FSGNJ_S: u32 = 0xfe00707f;
1307pub const MATCH_FSGNJN_D: u32 = 0x22001053;
1308pub const MASK_FSGNJN_D: u32 = 0xfe00707f;
1309pub const MATCH_FSGNJN_H: u32 = 0x24001053;
1310pub const MASK_FSGNJN_H: u32 = 0xfe00707f;
1311pub const MATCH_FSGNJN_Q: u32 = 0x26001053;
1312pub const MASK_FSGNJN_Q: u32 = 0xfe00707f;
1313pub const MATCH_FSGNJN_S: u32 = 0x20001053;
1314pub const MASK_FSGNJN_S: u32 = 0xfe00707f;
1315pub const MATCH_FSGNJX_D: u32 = 0x22002053;
1316pub const MASK_FSGNJX_D: u32 = 0xfe00707f;
1317pub const MATCH_FSGNJX_H: u32 = 0x24002053;
1318pub const MASK_FSGNJX_H: u32 = 0xfe00707f;
1319pub const MATCH_FSGNJX_Q: u32 = 0x26002053;
1320pub const MASK_FSGNJX_Q: u32 = 0xfe00707f;
1321pub const MATCH_FSGNJX_S: u32 = 0x20002053;
1322pub const MASK_FSGNJX_S: u32 = 0xfe00707f;
1323pub const MATCH_FSH: u32 = 0x1027;
1324pub const MASK_FSH: u32 = 0x707f;
1325pub const MATCH_FSQ: u32 = 0x4027;
1326pub const MASK_FSQ: u32 = 0x707f;
1327pub const MATCH_FSQRT_D: u32 = 0x5a000053;
1328pub const MASK_FSQRT_D: u32 = 0xfff0007f;
1329pub const MATCH_FSQRT_H: u32 = 0x5c000053;
1330pub const MASK_FSQRT_H: u32 = 0xfff0007f;
1331pub const MATCH_FSQRT_Q: u32 = 0x5e000053;
1332pub const MASK_FSQRT_Q: u32 = 0xfff0007f;
1333pub const MATCH_FSQRT_S: u32 = 0x58000053;
1334pub const MASK_FSQRT_S: u32 = 0xfff0007f;
1335pub const MATCH_FSRM: u32 = 0x201073;
1336pub const MASK_FSRM: u32 = 0xfff0707f;
1337pub const MATCH_FSRMI: u32 = 0x205073;
1338pub const MASK_FSRMI: u32 = 0xfff0707f;
1339pub const MATCH_FSUB_D: u32 = 0xa000053;
1340pub const MASK_FSUB_D: u32 = 0xfe00007f;
1341pub const MATCH_FSUB_H: u32 = 0xc000053;
1342pub const MASK_FSUB_H: u32 = 0xfe00007f;
1343pub const MATCH_FSUB_Q: u32 = 0xe000053;
1344pub const MASK_FSUB_Q: u32 = 0xfe00007f;
1345pub const MATCH_FSUB_S: u32 = 0x8000053;
1346pub const MASK_FSUB_S: u32 = 0xfe00007f;
1347pub const MATCH_FSW: u32 = 0x2027;
1348pub const MASK_FSW: u32 = 0x707f;
1349pub const MATCH_HFENCE_GVMA: u32 = 0x62000073;
1350pub const MASK_HFENCE_GVMA: u32 = 0xfe007fff;
1351pub const MATCH_HFENCE_VVMA: u32 = 0x22000073;
1352pub const MASK_HFENCE_VVMA: u32 = 0xfe007fff;
1353pub const MATCH_HINVAL_GVMA: u32 = 0x66000073;
1354pub const MASK_HINVAL_GVMA: u32 = 0xfe007fff;
1355pub const MATCH_HINVAL_VVMA: u32 = 0x26000073;
1356pub const MASK_HINVAL_VVMA: u32 = 0xfe007fff;
1357pub const MATCH_HLV_B: u32 = 0x60004073;
1358pub const MASK_HLV_B: u32 = 0xfff0707f;
1359pub const MATCH_HLV_BU: u32 = 0x60104073;
1360pub const MASK_HLV_BU: u32 = 0xfff0707f;
1361pub const MATCH_HLV_D: u32 = 0x6c004073;
1362pub const MASK_HLV_D: u32 = 0xfff0707f;
1363pub const MATCH_HLV_H: u32 = 0x64004073;
1364pub const MASK_HLV_H: u32 = 0xfff0707f;
1365pub const MATCH_HLV_HU: u32 = 0x64104073;
1366pub const MASK_HLV_HU: u32 = 0xfff0707f;
1367pub const MATCH_HLV_W: u32 = 0x68004073;
1368pub const MASK_HLV_W: u32 = 0xfff0707f;
1369pub const MATCH_HLV_WU: u32 = 0x68104073;
1370pub const MASK_HLV_WU: u32 = 0xfff0707f;
1371pub const MATCH_HLVX_HU: u32 = 0x64304073;
1372pub const MASK_HLVX_HU: u32 = 0xfff0707f;
1373pub const MATCH_HLVX_WU: u32 = 0x68304073;
1374pub const MASK_HLVX_WU: u32 = 0xfff0707f;
1375pub const MATCH_HSV_B: u32 = 0x62004073;
1376pub const MASK_HSV_B: u32 = 0xfe007fff;
1377pub const MATCH_HSV_D: u32 = 0x6e004073;
1378pub const MASK_HSV_D: u32 = 0xfe007fff;
1379pub const MATCH_HSV_H: u32 = 0x66004073;
1380pub const MASK_HSV_H: u32 = 0xfe007fff;
1381pub const MATCH_HSV_W: u32 = 0x6a004073;
1382pub const MASK_HSV_W: u32 = 0xfe007fff;
1383pub const MATCH_J: u32 = 0x6f;
1384pub const MASK_J: u32 = 0xfff;
1385pub const MATCH_JAL: u32 = 0x6f;
1386pub const MASK_JAL: u32 = 0x7f;
1387pub const MATCH_JAL_PSEUDO: u32 = 0xef;
1388pub const MASK_JAL_PSEUDO: u32 = 0xfff;
1389pub const MATCH_JALR: u32 = 0x67;
1390pub const MASK_JALR: u32 = 0x707f;
1391pub const MATCH_JALR_PSEUDO: u32 = 0xe7;
1392pub const MASK_JALR_PSEUDO: u32 = 0xfff07fff;
1393pub const MATCH_JR: u32 = 0x67;
1394pub const MASK_JR: u32 = 0xfff07fff;
1395pub const MATCH_LB: u32 = 0x3;
1396pub const MASK_LB: u32 = 0x707f;
1397pub const MATCH_LBU: u32 = 0x4003;
1398pub const MASK_LBU: u32 = 0x707f;
1399pub const MATCH_LD: u32 = 0x3003;
1400pub const MASK_LD: u32 = 0x707f;
1401pub const MATCH_LH: u32 = 0x1003;
1402pub const MASK_LH: u32 = 0x707f;
1403pub const MATCH_LHU: u32 = 0x5003;
1404pub const MASK_LHU: u32 = 0x707f;
1405pub const MATCH_LR_D: u32 = 0x1000302f;
1406pub const MASK_LR_D: u32 = 0xf9f0707f;
1407pub const MATCH_LR_W: u32 = 0x1000202f;
1408pub const MASK_LR_W: u32 = 0xf9f0707f;
1409pub const MATCH_LUI: u32 = 0x37;
1410pub const MASK_LUI: u32 = 0x7f;
1411pub const MATCH_LW: u32 = 0x2003;
1412pub const MASK_LW: u32 = 0x707f;
1413pub const MATCH_LWU: u32 = 0x6003;
1414pub const MASK_LWU: u32 = 0x707f;
1415pub const MATCH_MAX: u32 = 0xa006033;
1416pub const MASK_MAX: u32 = 0xfe00707f;
1417pub const MATCH_MAXU: u32 = 0xa007033;
1418pub const MASK_MAXU: u32 = 0xfe00707f;
1419pub const MATCH_MIN: u32 = 0xa004033;
1420pub const MASK_MIN: u32 = 0xfe00707f;
1421pub const MATCH_MINU: u32 = 0xa005033;
1422pub const MASK_MINU: u32 = 0xfe00707f;
1423pub const MATCH_MOP_R_0: u32 = 0x81c04073;
1424pub const MASK_MOP_R_0: u32 = 0xfff0707f;
1425pub const MATCH_MOP_R_1: u32 = 0x81d04073;
1426pub const MASK_MOP_R_1: u32 = 0xfff0707f;
1427pub const MATCH_MOP_R_10: u32 = 0x89e04073;
1428pub const MASK_MOP_R_10: u32 = 0xfff0707f;
1429pub const MATCH_MOP_R_11: u32 = 0x89f04073;
1430pub const MASK_MOP_R_11: u32 = 0xfff0707f;
1431pub const MATCH_MOP_R_12: u32 = 0x8dc04073;
1432pub const MASK_MOP_R_12: u32 = 0xfff0707f;
1433pub const MATCH_MOP_R_13: u32 = 0x8dd04073;
1434pub const MASK_MOP_R_13: u32 = 0xfff0707f;
1435pub const MATCH_MOP_R_14: u32 = 0x8de04073;
1436pub const MASK_MOP_R_14: u32 = 0xfff0707f;
1437pub const MATCH_MOP_R_15: u32 = 0x8df04073;
1438pub const MASK_MOP_R_15: u32 = 0xfff0707f;
1439pub const MATCH_MOP_R_16: u32 = 0xc1c04073;
1440pub const MASK_MOP_R_16: u32 = 0xfff0707f;
1441pub const MATCH_MOP_R_17: u32 = 0xc1d04073;
1442pub const MASK_MOP_R_17: u32 = 0xfff0707f;
1443pub const MATCH_MOP_R_18: u32 = 0xc1e04073;
1444pub const MASK_MOP_R_18: u32 = 0xfff0707f;
1445pub const MATCH_MOP_R_19: u32 = 0xc1f04073;
1446pub const MASK_MOP_R_19: u32 = 0xfff0707f;
1447pub const MATCH_MOP_R_2: u32 = 0x81e04073;
1448pub const MASK_MOP_R_2: u32 = 0xfff0707f;
1449pub const MATCH_MOP_R_20: u32 = 0xc5c04073;
1450pub const MASK_MOP_R_20: u32 = 0xfff0707f;
1451pub const MATCH_MOP_R_21: u32 = 0xc5d04073;
1452pub const MASK_MOP_R_21: u32 = 0xfff0707f;
1453pub const MATCH_MOP_R_22: u32 = 0xc5e04073;
1454pub const MASK_MOP_R_22: u32 = 0xfff0707f;
1455pub const MATCH_MOP_R_23: u32 = 0xc5f04073;
1456pub const MASK_MOP_R_23: u32 = 0xfff0707f;
1457pub const MATCH_MOP_R_24: u32 = 0xc9c04073;
1458pub const MASK_MOP_R_24: u32 = 0xfff0707f;
1459pub const MATCH_MOP_R_25: u32 = 0xc9d04073;
1460pub const MASK_MOP_R_25: u32 = 0xfff0707f;
1461pub const MATCH_MOP_R_26: u32 = 0xc9e04073;
1462pub const MASK_MOP_R_26: u32 = 0xfff0707f;
1463pub const MATCH_MOP_R_27: u32 = 0xc9f04073;
1464pub const MASK_MOP_R_27: u32 = 0xfff0707f;
1465pub const MATCH_MOP_R_28: u32 = 0xcdc04073;
1466pub const MASK_MOP_R_28: u32 = 0xfff0707f;
1467pub const MATCH_MOP_R_29: u32 = 0xcdd04073;
1468pub const MASK_MOP_R_29: u32 = 0xfff0707f;
1469pub const MATCH_MOP_R_3: u32 = 0x81f04073;
1470pub const MASK_MOP_R_3: u32 = 0xfff0707f;
1471pub const MATCH_MOP_R_30: u32 = 0xcde04073;
1472pub const MASK_MOP_R_30: u32 = 0xfff0707f;
1473pub const MATCH_MOP_R_31: u32 = 0xcdf04073;
1474pub const MASK_MOP_R_31: u32 = 0xfff0707f;
1475pub const MATCH_MOP_R_4: u32 = 0x85c04073;
1476pub const MASK_MOP_R_4: u32 = 0xfff0707f;
1477pub const MATCH_MOP_R_5: u32 = 0x85d04073;
1478pub const MASK_MOP_R_5: u32 = 0xfff0707f;
1479pub const MATCH_MOP_R_6: u32 = 0x85e04073;
1480pub const MASK_MOP_R_6: u32 = 0xfff0707f;
1481pub const MATCH_MOP_R_7: u32 = 0x85f04073;
1482pub const MASK_MOP_R_7: u32 = 0xfff0707f;
1483pub const MATCH_MOP_R_8: u32 = 0x89c04073;
1484pub const MASK_MOP_R_8: u32 = 0xfff0707f;
1485pub const MATCH_MOP_R_9: u32 = 0x89d04073;
1486pub const MASK_MOP_R_9: u32 = 0xfff0707f;
1487pub const MATCH_MOP_R_N: u32 = 0x81c04073;
1488pub const MASK_MOP_R_N: u32 = 0xb3c0707f;
1489pub const MATCH_MOP_RR_0: u32 = 0x82004073;
1490pub const MASK_MOP_RR_0: u32 = 0xfe00707f;
1491pub const MATCH_MOP_RR_1: u32 = 0x86004073;
1492pub const MASK_MOP_RR_1: u32 = 0xfe00707f;
1493pub const MATCH_MOP_RR_2: u32 = 0x8a004073;
1494pub const MASK_MOP_RR_2: u32 = 0xfe00707f;
1495pub const MATCH_MOP_RR_3: u32 = 0x8e004073;
1496pub const MASK_MOP_RR_3: u32 = 0xfe00707f;
1497pub const MATCH_MOP_RR_4: u32 = 0xc2004073;
1498pub const MASK_MOP_RR_4: u32 = 0xfe00707f;
1499pub const MATCH_MOP_RR_5: u32 = 0xc6004073;
1500pub const MASK_MOP_RR_5: u32 = 0xfe00707f;
1501pub const MATCH_MOP_RR_6: u32 = 0xca004073;
1502pub const MASK_MOP_RR_6: u32 = 0xfe00707f;
1503pub const MATCH_MOP_RR_7: u32 = 0xce004073;
1504pub const MASK_MOP_RR_7: u32 = 0xfe00707f;
1505pub const MATCH_MOP_RR_N: u32 = 0x82004073;
1506pub const MASK_MOP_RR_N: u32 = 0xb200707f;
1507pub const MATCH_MRET: u32 = 0x30200073;
1508pub const MASK_MRET: u32 = 0xffffffff;
1509pub const MATCH_MUL: u32 = 0x2000033;
1510pub const MASK_MUL: u32 = 0xfe00707f;
1511pub const MATCH_MULH: u32 = 0x2001033;
1512pub const MASK_MULH: u32 = 0xfe00707f;
1513pub const MATCH_MULHSU: u32 = 0x2002033;
1514pub const MASK_MULHSU: u32 = 0xfe00707f;
1515pub const MATCH_MULHU: u32 = 0x2003033;
1516pub const MASK_MULHU: u32 = 0xfe00707f;
1517pub const MATCH_MULW: u32 = 0x200003b;
1518pub const MASK_MULW: u32 = 0xfe00707f;
1519pub const MATCH_MV: u32 = 0x13;
1520pub const MASK_MV: u32 = 0xfff0707f;
1521pub const MATCH_NEG: u32 = 0x40000033;
1522pub const MASK_NEG: u32 = 0xfff0707f;
1523pub const MATCH_NOP: u32 = 0x13;
1524pub const MASK_NOP: u32 = 0xffffffff;
1525pub const MATCH_NTL_ALL: u32 = 0x500033;
1526pub const MASK_NTL_ALL: u32 = 0xffffffff;
1527pub const MATCH_NTL_P1: u32 = 0x200033;
1528pub const MASK_NTL_P1: u32 = 0xffffffff;
1529pub const MATCH_NTL_PALL: u32 = 0x300033;
1530pub const MASK_NTL_PALL: u32 = 0xffffffff;
1531pub const MATCH_NTL_S1: u32 = 0x400033;
1532pub const MASK_NTL_S1: u32 = 0xffffffff;
1533pub const MATCH_OR: u32 = 0x6033;
1534pub const MASK_OR: u32 = 0xfe00707f;
1535pub const MATCH_ORC_B: u32 = 0x28705013;
1536pub const MASK_ORC_B: u32 = 0xfff0707f;
1537pub const MATCH_ORI: u32 = 0x6013;
1538pub const MASK_ORI: u32 = 0x707f;
1539pub const MATCH_ORN: u32 = 0x40006033;
1540pub const MASK_ORN: u32 = 0xfe00707f;
1541pub const MATCH_PACK: u32 = 0x8004033;
1542pub const MASK_PACK: u32 = 0xfe00707f;
1543pub const MATCH_PACKH: u32 = 0x8007033;
1544pub const MASK_PACKH: u32 = 0xfe00707f;
1545pub const MATCH_PACKW: u32 = 0x800403b;
1546pub const MASK_PACKW: u32 = 0xfe00707f;
1547pub const MATCH_PAUSE: u32 = 0x100000f;
1548pub const MASK_PAUSE: u32 = 0xffffffff;
1549pub const MATCH_PREFETCH_I: u32 = 0x6013;
1550pub const MASK_PREFETCH_I: u32 = 0x1f07fff;
1551pub const MATCH_PREFETCH_R: u32 = 0x106013;
1552pub const MASK_PREFETCH_R: u32 = 0x1f07fff;
1553pub const MATCH_PREFETCH_W: u32 = 0x306013;
1554pub const MASK_PREFETCH_W: u32 = 0x1f07fff;
1555pub const MATCH_RDCYCLE: u32 = 0xc0002073;
1556pub const MASK_RDCYCLE: u32 = 0xfffff07f;
1557pub const MATCH_RDCYCLEH: u32 = 0xc8002073;
1558pub const MASK_RDCYCLEH: u32 = 0xfffff07f;
1559pub const MATCH_RDINSTRET: u32 = 0xc0202073;
1560pub const MASK_RDINSTRET: u32 = 0xfffff07f;
1561pub const MATCH_RDINSTRETH: u32 = 0xc8202073;
1562pub const MASK_RDINSTRETH: u32 = 0xfffff07f;
1563pub const MATCH_RDTIME: u32 = 0xc0102073;
1564pub const MASK_RDTIME: u32 = 0xfffff07f;
1565pub const MATCH_RDTIMEH: u32 = 0xc8102073;
1566pub const MASK_RDTIMEH: u32 = 0xfffff07f;
1567pub const MATCH_REM: u32 = 0x2006033;
1568pub const MASK_REM: u32 = 0xfe00707f;
1569pub const MATCH_REMU: u32 = 0x2007033;
1570pub const MASK_REMU: u32 = 0xfe00707f;
1571pub const MATCH_REMUW: u32 = 0x200703b;
1572pub const MASK_REMUW: u32 = 0xfe00707f;
1573pub const MATCH_REMW: u32 = 0x200603b;
1574pub const MASK_REMW: u32 = 0xfe00707f;
1575pub const MATCH_RET: u32 = 0x8067;
1576pub const MASK_RET: u32 = 0xffffffff;
1577pub const MATCH_REV8: u32 = 0x6b805013;
1578pub const MASK_REV8: u32 = 0xfff0707f;
1579pub const MATCH_REV8_RV32: u32 = 0x69805013;
1580pub const MASK_REV8_RV32: u32 = 0xfff0707f;
1581pub const MATCH_ROL: u32 = 0x60001033;
1582pub const MASK_ROL: u32 = 0xfe00707f;
1583pub const MATCH_ROLW: u32 = 0x6000103b;
1584pub const MASK_ROLW: u32 = 0xfe00707f;
1585pub const MATCH_ROR: u32 = 0x60005033;
1586pub const MASK_ROR: u32 = 0xfe00707f;
1587pub const MATCH_RORI: u32 = 0x60005013;
1588pub const MASK_RORI: u32 = 0xfc00707f;
1589pub const MATCH_RORI_RV32: u32 = 0x60005013;
1590pub const MASK_RORI_RV32: u32 = 0xfe00707f;
1591pub const MATCH_RORIW: u32 = 0x6000501b;
1592pub const MASK_RORIW: u32 = 0xfe00707f;
1593pub const MATCH_RORW: u32 = 0x6000503b;
1594pub const MASK_RORW: u32 = 0xfe00707f;
1595pub const MATCH_SB: u32 = 0x23;
1596pub const MASK_SB: u32 = 0x707f;
1597pub const MATCH_SBREAK: u32 = 0x100073;
1598pub const MASK_SBREAK: u32 = 0xffffffff;
1599pub const MATCH_SC_D: u32 = 0x1800302f;
1600pub const MASK_SC_D: u32 = 0xf800707f;
1601pub const MATCH_SC_W: u32 = 0x1800202f;
1602pub const MASK_SC_W: u32 = 0xf800707f;
1603pub const MATCH_SCALL: u32 = 0x73;
1604pub const MASK_SCALL: u32 = 0xffffffff;
1605pub const MATCH_SD: u32 = 0x3023;
1606pub const MASK_SD: u32 = 0x707f;
1607pub const MATCH_SEQZ: u32 = 0x103013;
1608pub const MASK_SEQZ: u32 = 0xfff0707f;
1609pub const MATCH_SEXT_B: u32 = 0x60401013;
1610pub const MASK_SEXT_B: u32 = 0xfff0707f;
1611pub const MATCH_SEXT_H: u32 = 0x60501013;
1612pub const MASK_SEXT_H: u32 = 0xfff0707f;
1613pub const MATCH_SEXT_W: u32 = 0x1b;
1614pub const MASK_SEXT_W: u32 = 0xfff0707f;
1615pub const MATCH_SFENCE_INVAL_IR: u32 = 0x18100073;
1616pub const MASK_SFENCE_INVAL_IR: u32 = 0xffffffff;
1617pub const MATCH_SFENCE_VMA: u32 = 0x12000073;
1618pub const MASK_SFENCE_VMA: u32 = 0xfe007fff;
1619pub const MATCH_SFENCE_W_INVAL: u32 = 0x18000073;
1620pub const MASK_SFENCE_W_INVAL: u32 = 0xffffffff;
1621pub const MATCH_SGTZ: u32 = 0x2033;
1622pub const MASK_SGTZ: u32 = 0xfe0ff07f;
1623pub const MATCH_SH: u32 = 0x1023;
1624pub const MASK_SH: u32 = 0x707f;
1625pub const MATCH_SH1ADD: u32 = 0x20002033;
1626pub const MASK_SH1ADD: u32 = 0xfe00707f;
1627pub const MATCH_SH1ADD_UW: u32 = 0x2000203b;
1628pub const MASK_SH1ADD_UW: u32 = 0xfe00707f;
1629pub const MATCH_SH2ADD: u32 = 0x20004033;
1630pub const MASK_SH2ADD: u32 = 0xfe00707f;
1631pub const MATCH_SH2ADD_UW: u32 = 0x2000403b;
1632pub const MASK_SH2ADD_UW: u32 = 0xfe00707f;
1633pub const MATCH_SH3ADD: u32 = 0x20006033;
1634pub const MASK_SH3ADD: u32 = 0xfe00707f;
1635pub const MATCH_SH3ADD_UW: u32 = 0x2000603b;
1636pub const MASK_SH3ADD_UW: u32 = 0xfe00707f;
1637pub const MATCH_SHA256SIG0: u32 = 0x10201013;
1638pub const MASK_SHA256SIG0: u32 = 0xfff0707f;
1639pub const MATCH_SHA256SIG1: u32 = 0x10301013;
1640pub const MASK_SHA256SIG1: u32 = 0xfff0707f;
1641pub const MATCH_SHA256SUM0: u32 = 0x10001013;
1642pub const MASK_SHA256SUM0: u32 = 0xfff0707f;
1643pub const MATCH_SHA256SUM1: u32 = 0x10101013;
1644pub const MASK_SHA256SUM1: u32 = 0xfff0707f;
1645pub const MATCH_SHA512SIG0: u32 = 0x10601013;
1646pub const MASK_SHA512SIG0: u32 = 0xfff0707f;
1647pub const MATCH_SHA512SIG0H: u32 = 0x5c000033;
1648pub const MASK_SHA512SIG0H: u32 = 0xfe00707f;
1649pub const MATCH_SHA512SIG0L: u32 = 0x54000033;
1650pub const MASK_SHA512SIG0L: u32 = 0xfe00707f;
1651pub const MATCH_SHA512SIG1: u32 = 0x10701013;
1652pub const MASK_SHA512SIG1: u32 = 0xfff0707f;
1653pub const MATCH_SHA512SIG1H: u32 = 0x5e000033;
1654pub const MASK_SHA512SIG1H: u32 = 0xfe00707f;
1655pub const MATCH_SHA512SIG1L: u32 = 0x56000033;
1656pub const MASK_SHA512SIG1L: u32 = 0xfe00707f;
1657pub const MATCH_SHA512SUM0: u32 = 0x10401013;
1658pub const MASK_SHA512SUM0: u32 = 0xfff0707f;
1659pub const MATCH_SHA512SUM0R: u32 = 0x50000033;
1660pub const MASK_SHA512SUM0R: u32 = 0xfe00707f;
1661pub const MATCH_SHA512SUM1: u32 = 0x10501013;
1662pub const MASK_SHA512SUM1: u32 = 0xfff0707f;
1663pub const MATCH_SHA512SUM1R: u32 = 0x52000033;
1664pub const MASK_SHA512SUM1R: u32 = 0xfe00707f;
1665pub const MATCH_SINVAL_VMA: u32 = 0x16000073;
1666pub const MASK_SINVAL_VMA: u32 = 0xfe007fff;
1667pub const MATCH_SLL: u32 = 0x1033;
1668pub const MASK_SLL: u32 = 0xfe00707f;
1669pub const MATCH_SLLI: u32 = 0x1013;
1670pub const MASK_SLLI: u32 = 0xfc00707f;
1671pub const MATCH_SLLI_RV32: u32 = 0x1013;
1672pub const MASK_SLLI_RV32: u32 = 0xfe00707f;
1673pub const MATCH_SLLI_UW: u32 = 0x800101b;
1674pub const MASK_SLLI_UW: u32 = 0xfc00707f;
1675pub const MATCH_SLLIW: u32 = 0x101b;
1676pub const MASK_SLLIW: u32 = 0xfe00707f;
1677pub const MATCH_SLLW: u32 = 0x103b;
1678pub const MASK_SLLW: u32 = 0xfe00707f;
1679pub const MATCH_SLT: u32 = 0x2033;
1680pub const MASK_SLT: u32 = 0xfe00707f;
1681pub const MATCH_SLTI: u32 = 0x2013;
1682pub const MASK_SLTI: u32 = 0x707f;
1683pub const MATCH_SLTIU: u32 = 0x3013;
1684pub const MASK_SLTIU: u32 = 0x707f;
1685pub const MATCH_SLTU: u32 = 0x3033;
1686pub const MASK_SLTU: u32 = 0xfe00707f;
1687pub const MATCH_SLTZ: u32 = 0x2033;
1688pub const MASK_SLTZ: u32 = 0xfff0707f;
1689pub const MATCH_SM3P0: u32 = 0x10801013;
1690pub const MASK_SM3P0: u32 = 0xfff0707f;
1691pub const MATCH_SM3P1: u32 = 0x10901013;
1692pub const MASK_SM3P1: u32 = 0xfff0707f;
1693pub const MATCH_SM4ED: u32 = 0x30000033;
1694pub const MASK_SM4ED: u32 = 0x3e00707f;
1695pub const MATCH_SM4KS: u32 = 0x34000033;
1696pub const MASK_SM4KS: u32 = 0x3e00707f;
1697pub const MATCH_SNEZ: u32 = 0x3033;
1698pub const MASK_SNEZ: u32 = 0xfe0ff07f;
1699pub const MATCH_SRA: u32 = 0x40005033;
1700pub const MASK_SRA: u32 = 0xfe00707f;
1701pub const MATCH_SRAI: u32 = 0x40005013;
1702pub const MASK_SRAI: u32 = 0xfc00707f;
1703pub const MATCH_SRAI_RV32: u32 = 0x40005013;
1704pub const MASK_SRAI_RV32: u32 = 0xfe00707f;
1705pub const MATCH_SRAIW: u32 = 0x4000501b;
1706pub const MASK_SRAIW: u32 = 0xfe00707f;
1707pub const MATCH_SRAW: u32 = 0x4000503b;
1708pub const MASK_SRAW: u32 = 0xfe00707f;
1709pub const MATCH_SRET: u32 = 0x10200073;
1710pub const MASK_SRET: u32 = 0xffffffff;
1711pub const MATCH_SRL: u32 = 0x5033;
1712pub const MASK_SRL: u32 = 0xfe00707f;
1713pub const MATCH_SRLI: u32 = 0x5013;
1714pub const MASK_SRLI: u32 = 0xfc00707f;
1715pub const MATCH_SRLI_RV32: u32 = 0x5013;
1716pub const MASK_SRLI_RV32: u32 = 0xfe00707f;
1717pub const MATCH_SRLIW: u32 = 0x501b;
1718pub const MASK_SRLIW: u32 = 0xfe00707f;
1719pub const MATCH_SRLW: u32 = 0x503b;
1720pub const MASK_SRLW: u32 = 0xfe00707f;
1721pub const MATCH_SUB: u32 = 0x40000033;
1722pub const MASK_SUB: u32 = 0xfe00707f;
1723pub const MATCH_SUBW: u32 = 0x4000003b;
1724pub const MASK_SUBW: u32 = 0xfe00707f;
1725pub const MATCH_SW: u32 = 0x2023;
1726pub const MASK_SW: u32 = 0x707f;
1727pub const MATCH_UNZIP: u32 = 0x8f05013;
1728pub const MASK_UNZIP: u32 = 0xfff0707f;
1729pub const MATCH_VAADD_VV: u32 = 0x24002057;
1730pub const MASK_VAADD_VV: u32 = 0xfc00707f;
1731pub const MATCH_VAADD_VX: u32 = 0x24006057;
1732pub const MASK_VAADD_VX: u32 = 0xfc00707f;
1733pub const MATCH_VAADDU_VV: u32 = 0x20002057;
1734pub const MASK_VAADDU_VV: u32 = 0xfc00707f;
1735pub const MATCH_VAADDU_VX: u32 = 0x20006057;
1736pub const MASK_VAADDU_VX: u32 = 0xfc00707f;
1737pub const MATCH_VADC_VIM: u32 = 0x40003057;
1738pub const MASK_VADC_VIM: u32 = 0xfe00707f;
1739pub const MATCH_VADC_VVM: u32 = 0x40000057;
1740pub const MASK_VADC_VVM: u32 = 0xfe00707f;
1741pub const MATCH_VADC_VXM: u32 = 0x40004057;
1742pub const MASK_VADC_VXM: u32 = 0xfe00707f;
1743pub const MATCH_VADD_VI: u32 = 0x3057;
1744pub const MASK_VADD_VI: u32 = 0xfc00707f;
1745pub const MATCH_VADD_VV: u32 = 0x57;
1746pub const MASK_VADD_VV: u32 = 0xfc00707f;
1747pub const MATCH_VADD_VX: u32 = 0x4057;
1748pub const MASK_VADD_VX: u32 = 0xfc00707f;
1749pub const MATCH_VAESDF_VS: u32 = 0xa600a077;
1750pub const MASK_VAESDF_VS: u32 = 0xfe0ff07f;
1751pub const MATCH_VAESDF_VV: u32 = 0xa200a077;
1752pub const MASK_VAESDF_VV: u32 = 0xfe0ff07f;
1753pub const MATCH_VAESDM_VS: u32 = 0xa6002077;
1754pub const MASK_VAESDM_VS: u32 = 0xfe0ff07f;
1755pub const MATCH_VAESDM_VV: u32 = 0xa2002077;
1756pub const MASK_VAESDM_VV: u32 = 0xfe0ff07f;
1757pub const MATCH_VAESEF_VS: u32 = 0xa601a077;
1758pub const MASK_VAESEF_VS: u32 = 0xfe0ff07f;
1759pub const MATCH_VAESEF_VV: u32 = 0xa201a077;
1760pub const MASK_VAESEF_VV: u32 = 0xfe0ff07f;
1761pub const MATCH_VAESEM_VS: u32 = 0xa6012077;
1762pub const MASK_VAESEM_VS: u32 = 0xfe0ff07f;
1763pub const MATCH_VAESEM_VV: u32 = 0xa2012077;
1764pub const MASK_VAESEM_VV: u32 = 0xfe0ff07f;
1765pub const MATCH_VAESKF1_VI: u32 = 0x8a002077;
1766pub const MASK_VAESKF1_VI: u32 = 0xfe00707f;
1767pub const MATCH_VAESKF2_VI: u32 = 0xaa002077;
1768pub const MASK_VAESKF2_VI: u32 = 0xfe00707f;
1769pub const MATCH_VAESZ_VS: u32 = 0xa603a077;
1770pub const MASK_VAESZ_VS: u32 = 0xfe0ff07f;
1771pub const MATCH_VAND_VI: u32 = 0x24003057;
1772pub const MASK_VAND_VI: u32 = 0xfc00707f;
1773pub const MATCH_VAND_VV: u32 = 0x24000057;
1774pub const MASK_VAND_VV: u32 = 0xfc00707f;
1775pub const MATCH_VAND_VX: u32 = 0x24004057;
1776pub const MASK_VAND_VX: u32 = 0xfc00707f;
1777pub const MATCH_VANDN_VV: u32 = 0x4000057;
1778pub const MASK_VANDN_VV: u32 = 0xfc00707f;
1779pub const MATCH_VANDN_VX: u32 = 0x4004057;
1780pub const MASK_VANDN_VX: u32 = 0xfc00707f;
1781pub const MATCH_VASUB_VV: u32 = 0x2c002057;
1782pub const MASK_VASUB_VV: u32 = 0xfc00707f;
1783pub const MATCH_VASUB_VX: u32 = 0x2c006057;
1784pub const MASK_VASUB_VX: u32 = 0xfc00707f;
1785pub const MATCH_VASUBU_VV: u32 = 0x28002057;
1786pub const MASK_VASUBU_VV: u32 = 0xfc00707f;
1787pub const MATCH_VASUBU_VX: u32 = 0x28006057;
1788pub const MASK_VASUBU_VX: u32 = 0xfc00707f;
1789pub const MATCH_VBREV8_V: u32 = 0x48042057;
1790pub const MASK_VBREV8_V: u32 = 0xfc0ff07f;
1791pub const MATCH_VBREV_V: u32 = 0x48052057;
1792pub const MASK_VBREV_V: u32 = 0xfc0ff07f;
1793pub const MATCH_VCLMUL_VV: u32 = 0x30002057;
1794pub const MASK_VCLMUL_VV: u32 = 0xfc00707f;
1795pub const MATCH_VCLMUL_VX: u32 = 0x30006057;
1796pub const MASK_VCLMUL_VX: u32 = 0xfc00707f;
1797pub const MATCH_VCLMULH_VV: u32 = 0x34002057;
1798pub const MASK_VCLMULH_VV: u32 = 0xfc00707f;
1799pub const MATCH_VCLMULH_VX: u32 = 0x34006057;
1800pub const MASK_VCLMULH_VX: u32 = 0xfc00707f;
1801pub const MATCH_VCLZ_V: u32 = 0x48062057;
1802pub const MASK_VCLZ_V: u32 = 0xfc0ff07f;
1803pub const MATCH_VCOMPRESS_VM: u32 = 0x5e002057;
1804pub const MASK_VCOMPRESS_VM: u32 = 0xfe00707f;
1805pub const MATCH_VCPOP_M: u32 = 0x40082057;
1806pub const MASK_VCPOP_M: u32 = 0xfc0ff07f;
1807pub const MATCH_VCPOP_V: u32 = 0x48072057;
1808pub const MASK_VCPOP_V: u32 = 0xfc0ff07f;
1809pub const MATCH_VCTZ_V: u32 = 0x4806a057;
1810pub const MASK_VCTZ_V: u32 = 0xfc0ff07f;
1811pub const MATCH_VDIV_VV: u32 = 0x84002057;
1812pub const MASK_VDIV_VV: u32 = 0xfc00707f;
1813pub const MATCH_VDIV_VX: u32 = 0x84006057;
1814pub const MASK_VDIV_VX: u32 = 0xfc00707f;
1815pub const MATCH_VDIVU_VV: u32 = 0x80002057;
1816pub const MASK_VDIVU_VV: u32 = 0xfc00707f;
1817pub const MATCH_VDIVU_VX: u32 = 0x80006057;
1818pub const MASK_VDIVU_VX: u32 = 0xfc00707f;
1819pub const MATCH_VFADD_VF: u32 = 0x5057;
1820pub const MASK_VFADD_VF: u32 = 0xfc00707f;
1821pub const MATCH_VFADD_VV: u32 = 0x1057;
1822pub const MASK_VFADD_VV: u32 = 0xfc00707f;
1823pub const MATCH_VFCLASS_V: u32 = 0x4c081057;
1824pub const MASK_VFCLASS_V: u32 = 0xfc0ff07f;
1825pub const MATCH_VFCVT_F_X_V: u32 = 0x48019057;
1826pub const MASK_VFCVT_F_X_V: u32 = 0xfc0ff07f;
1827pub const MATCH_VFCVT_F_XU_V: u32 = 0x48011057;
1828pub const MASK_VFCVT_F_XU_V: u32 = 0xfc0ff07f;
1829pub const MATCH_VFCVT_RTZ_X_F_V: u32 = 0x48039057;
1830pub const MASK_VFCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1831pub const MATCH_VFCVT_RTZ_XU_F_V: u32 = 0x48031057;
1832pub const MASK_VFCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1833pub const MATCH_VFCVT_X_F_V: u32 = 0x48009057;
1834pub const MASK_VFCVT_X_F_V: u32 = 0xfc0ff07f;
1835pub const MATCH_VFCVT_XU_F_V: u32 = 0x48001057;
1836pub const MASK_VFCVT_XU_F_V: u32 = 0xfc0ff07f;
1837pub const MATCH_VFDIV_VF: u32 = 0x80005057;
1838pub const MASK_VFDIV_VF: u32 = 0xfc00707f;
1839pub const MATCH_VFDIV_VV: u32 = 0x80001057;
1840pub const MASK_VFDIV_VV: u32 = 0xfc00707f;
1841pub const MATCH_VFIRST_M: u32 = 0x4008a057;
1842pub const MASK_VFIRST_M: u32 = 0xfc0ff07f;
1843pub const MATCH_VFMACC_VF: u32 = 0xb0005057;
1844pub const MASK_VFMACC_VF: u32 = 0xfc00707f;
1845pub const MATCH_VFMACC_VV: u32 = 0xb0001057;
1846pub const MASK_VFMACC_VV: u32 = 0xfc00707f;
1847pub const MATCH_VFMADD_VF: u32 = 0xa0005057;
1848pub const MASK_VFMADD_VF: u32 = 0xfc00707f;
1849pub const MATCH_VFMADD_VV: u32 = 0xa0001057;
1850pub const MASK_VFMADD_VV: u32 = 0xfc00707f;
1851pub const MATCH_VFMAX_VF: u32 = 0x18005057;
1852pub const MASK_VFMAX_VF: u32 = 0xfc00707f;
1853pub const MATCH_VFMAX_VV: u32 = 0x18001057;
1854pub const MASK_VFMAX_VV: u32 = 0xfc00707f;
1855pub const MATCH_VFMERGE_VFM: u32 = 0x5c005057;
1856pub const MASK_VFMERGE_VFM: u32 = 0xfe00707f;
1857pub const MATCH_VFMIN_VF: u32 = 0x10005057;
1858pub const MASK_VFMIN_VF: u32 = 0xfc00707f;
1859pub const MATCH_VFMIN_VV: u32 = 0x10001057;
1860pub const MASK_VFMIN_VV: u32 = 0xfc00707f;
1861pub const MATCH_VFMSAC_VF: u32 = 0xb8005057;
1862pub const MASK_VFMSAC_VF: u32 = 0xfc00707f;
1863pub const MATCH_VFMSAC_VV: u32 = 0xb8001057;
1864pub const MASK_VFMSAC_VV: u32 = 0xfc00707f;
1865pub const MATCH_VFMSUB_VF: u32 = 0xa8005057;
1866pub const MASK_VFMSUB_VF: u32 = 0xfc00707f;
1867pub const MATCH_VFMSUB_VV: u32 = 0xa8001057;
1868pub const MASK_VFMSUB_VV: u32 = 0xfc00707f;
1869pub const MATCH_VFMUL_VF: u32 = 0x90005057;
1870pub const MASK_VFMUL_VF: u32 = 0xfc00707f;
1871pub const MATCH_VFMUL_VV: u32 = 0x90001057;
1872pub const MASK_VFMUL_VV: u32 = 0xfc00707f;
1873pub const MATCH_VFMV_F_S: u32 = 0x42001057;
1874pub const MASK_VFMV_F_S: u32 = 0xfe0ff07f;
1875pub const MATCH_VFMV_S_F: u32 = 0x42005057;
1876pub const MASK_VFMV_S_F: u32 = 0xfff0707f;
1877pub const MATCH_VFMV_V_F: u32 = 0x5e005057;
1878pub const MASK_VFMV_V_F: u32 = 0xfff0707f;
1879pub const MATCH_VFNCVT_F_F_W: u32 = 0x480a1057;
1880pub const MASK_VFNCVT_F_F_W: u32 = 0xfc0ff07f;
1881pub const MATCH_VFNCVT_F_X_W: u32 = 0x48099057;
1882pub const MASK_VFNCVT_F_X_W: u32 = 0xfc0ff07f;
1883pub const MATCH_VFNCVT_F_XU_W: u32 = 0x48091057;
1884pub const MASK_VFNCVT_F_XU_W: u32 = 0xfc0ff07f;
1885pub const MATCH_VFNCVT_ROD_F_F_W: u32 = 0x480a9057;
1886pub const MASK_VFNCVT_ROD_F_F_W: u32 = 0xfc0ff07f;
1887pub const MATCH_VFNCVT_RTZ_X_F_W: u32 = 0x480b9057;
1888pub const MASK_VFNCVT_RTZ_X_F_W: u32 = 0xfc0ff07f;
1889pub const MATCH_VFNCVT_RTZ_XU_F_W: u32 = 0x480b1057;
1890pub const MASK_VFNCVT_RTZ_XU_F_W: u32 = 0xfc0ff07f;
1891pub const MATCH_VFNCVT_X_F_W: u32 = 0x48089057;
1892pub const MASK_VFNCVT_X_F_W: u32 = 0xfc0ff07f;
1893pub const MATCH_VFNCVT_XU_F_W: u32 = 0x48081057;
1894pub const MASK_VFNCVT_XU_F_W: u32 = 0xfc0ff07f;
1895pub const MATCH_VFNMACC_VF: u32 = 0xb4005057;
1896pub const MASK_VFNMACC_VF: u32 = 0xfc00707f;
1897pub const MATCH_VFNMACC_VV: u32 = 0xb4001057;
1898pub const MASK_VFNMACC_VV: u32 = 0xfc00707f;
1899pub const MATCH_VFNMADD_VF: u32 = 0xa4005057;
1900pub const MASK_VFNMADD_VF: u32 = 0xfc00707f;
1901pub const MATCH_VFNMADD_VV: u32 = 0xa4001057;
1902pub const MASK_VFNMADD_VV: u32 = 0xfc00707f;
1903pub const MATCH_VFNMSAC_VF: u32 = 0xbc005057;
1904pub const MASK_VFNMSAC_VF: u32 = 0xfc00707f;
1905pub const MATCH_VFNMSAC_VV: u32 = 0xbc001057;
1906pub const MASK_VFNMSAC_VV: u32 = 0xfc00707f;
1907pub const MATCH_VFNMSUB_VF: u32 = 0xac005057;
1908pub const MASK_VFNMSUB_VF: u32 = 0xfc00707f;
1909pub const MATCH_VFNMSUB_VV: u32 = 0xac001057;
1910pub const MASK_VFNMSUB_VV: u32 = 0xfc00707f;
1911pub const MATCH_VFRDIV_VF: u32 = 0x84005057;
1912pub const MASK_VFRDIV_VF: u32 = 0xfc00707f;
1913pub const MATCH_VFREC7_V: u32 = 0x4c029057;
1914pub const MASK_VFREC7_V: u32 = 0xfc0ff07f;
1915pub const MATCH_VFREDMAX_VS: u32 = 0x1c001057;
1916pub const MASK_VFREDMAX_VS: u32 = 0xfc00707f;
1917pub const MATCH_VFREDMIN_VS: u32 = 0x14001057;
1918pub const MASK_VFREDMIN_VS: u32 = 0xfc00707f;
1919pub const MATCH_VFREDOSUM_VS: u32 = 0xc001057;
1920pub const MASK_VFREDOSUM_VS: u32 = 0xfc00707f;
1921pub const MATCH_VFREDSUM_VS: u32 = 0x4001057;
1922pub const MASK_VFREDSUM_VS: u32 = 0xfc00707f;
1923pub const MATCH_VFREDUSUM_VS: u32 = 0x4001057;
1924pub const MASK_VFREDUSUM_VS: u32 = 0xfc00707f;
1925pub const MATCH_VFRSQRT7_V: u32 = 0x4c021057;
1926pub const MASK_VFRSQRT7_V: u32 = 0xfc0ff07f;
1927pub const MATCH_VFRSUB_VF: u32 = 0x9c005057;
1928pub const MASK_VFRSUB_VF: u32 = 0xfc00707f;
1929pub const MATCH_VFSGNJ_VF: u32 = 0x20005057;
1930pub const MASK_VFSGNJ_VF: u32 = 0xfc00707f;
1931pub const MATCH_VFSGNJ_VV: u32 = 0x20001057;
1932pub const MASK_VFSGNJ_VV: u32 = 0xfc00707f;
1933pub const MATCH_VFSGNJN_VF: u32 = 0x24005057;
1934pub const MASK_VFSGNJN_VF: u32 = 0xfc00707f;
1935pub const MATCH_VFSGNJN_VV: u32 = 0x24001057;
1936pub const MASK_VFSGNJN_VV: u32 = 0xfc00707f;
1937pub const MATCH_VFSGNJX_VF: u32 = 0x28005057;
1938pub const MASK_VFSGNJX_VF: u32 = 0xfc00707f;
1939pub const MATCH_VFSGNJX_VV: u32 = 0x28001057;
1940pub const MASK_VFSGNJX_VV: u32 = 0xfc00707f;
1941pub const MATCH_VFSLIDE1DOWN_VF: u32 = 0x3c005057;
1942pub const MASK_VFSLIDE1DOWN_VF: u32 = 0xfc00707f;
1943pub const MATCH_VFSLIDE1UP_VF: u32 = 0x38005057;
1944pub const MASK_VFSLIDE1UP_VF: u32 = 0xfc00707f;
1945pub const MATCH_VFSQRT_V: u32 = 0x4c001057;
1946pub const MASK_VFSQRT_V: u32 = 0xfc0ff07f;
1947pub const MATCH_VFSUB_VF: u32 = 0x8005057;
1948pub const MASK_VFSUB_VF: u32 = 0xfc00707f;
1949pub const MATCH_VFSUB_VV: u32 = 0x8001057;
1950pub const MASK_VFSUB_VV: u32 = 0xfc00707f;
1951pub const MATCH_VFWADD_VF: u32 = 0xc0005057;
1952pub const MASK_VFWADD_VF: u32 = 0xfc00707f;
1953pub const MATCH_VFWADD_VV: u32 = 0xc0001057;
1954pub const MASK_VFWADD_VV: u32 = 0xfc00707f;
1955pub const MATCH_VFWADD_WF: u32 = 0xd0005057;
1956pub const MASK_VFWADD_WF: u32 = 0xfc00707f;
1957pub const MATCH_VFWADD_WV: u32 = 0xd0001057;
1958pub const MASK_VFWADD_WV: u32 = 0xfc00707f;
1959pub const MATCH_VFWCVT_F_F_V: u32 = 0x48061057;
1960pub const MASK_VFWCVT_F_F_V: u32 = 0xfc0ff07f;
1961pub const MATCH_VFWCVT_F_X_V: u32 = 0x48059057;
1962pub const MASK_VFWCVT_F_X_V: u32 = 0xfc0ff07f;
1963pub const MATCH_VFWCVT_F_XU_V: u32 = 0x48051057;
1964pub const MASK_VFWCVT_F_XU_V: u32 = 0xfc0ff07f;
1965pub const MATCH_VFWCVT_RTZ_X_F_V: u32 = 0x48079057;
1966pub const MASK_VFWCVT_RTZ_X_F_V: u32 = 0xfc0ff07f;
1967pub const MATCH_VFWCVT_RTZ_XU_F_V: u32 = 0x48071057;
1968pub const MASK_VFWCVT_RTZ_XU_F_V: u32 = 0xfc0ff07f;
1969pub const MATCH_VFWCVT_X_F_V: u32 = 0x48049057;
1970pub const MASK_VFWCVT_X_F_V: u32 = 0xfc0ff07f;
1971pub const MATCH_VFWCVT_XU_F_V: u32 = 0x48041057;
1972pub const MASK_VFWCVT_XU_F_V: u32 = 0xfc0ff07f;
1973pub const MATCH_VFWMACC_VF: u32 = 0xf0005057;
1974pub const MASK_VFWMACC_VF: u32 = 0xfc00707f;
1975pub const MATCH_VFWMACC_VV: u32 = 0xf0001057;
1976pub const MASK_VFWMACC_VV: u32 = 0xfc00707f;
1977pub const MATCH_VFWMSAC_VF: u32 = 0xf8005057;
1978pub const MASK_VFWMSAC_VF: u32 = 0xfc00707f;
1979pub const MATCH_VFWMSAC_VV: u32 = 0xf8001057;
1980pub const MASK_VFWMSAC_VV: u32 = 0xfc00707f;
1981pub const MATCH_VFWMUL_VF: u32 = 0xe0005057;
1982pub const MASK_VFWMUL_VF: u32 = 0xfc00707f;
1983pub const MATCH_VFWMUL_VV: u32 = 0xe0001057;
1984pub const MASK_VFWMUL_VV: u32 = 0xfc00707f;
1985pub const MATCH_VFWNMACC_VF: u32 = 0xf4005057;
1986pub const MASK_VFWNMACC_VF: u32 = 0xfc00707f;
1987pub const MATCH_VFWNMACC_VV: u32 = 0xf4001057;
1988pub const MASK_VFWNMACC_VV: u32 = 0xfc00707f;
1989pub const MATCH_VFWNMSAC_VF: u32 = 0xfc005057;
1990pub const MASK_VFWNMSAC_VF: u32 = 0xfc00707f;
1991pub const MATCH_VFWNMSAC_VV: u32 = 0xfc001057;
1992pub const MASK_VFWNMSAC_VV: u32 = 0xfc00707f;
1993pub const MATCH_VFWREDOSUM_VS: u32 = 0xcc001057;
1994pub const MASK_VFWREDOSUM_VS: u32 = 0xfc00707f;
1995pub const MATCH_VFWREDSUM_VS: u32 = 0xc4001057;
1996pub const MASK_VFWREDSUM_VS: u32 = 0xfc00707f;
1997pub const MATCH_VFWREDUSUM_VS: u32 = 0xc4001057;
1998pub const MASK_VFWREDUSUM_VS: u32 = 0xfc00707f;
1999pub const MATCH_VFWSUB_VF: u32 = 0xc8005057;
2000pub const MASK_VFWSUB_VF: u32 = 0xfc00707f;
2001pub const MATCH_VFWSUB_VV: u32 = 0xc8001057;
2002pub const MASK_VFWSUB_VV: u32 = 0xfc00707f;
2003pub const MATCH_VFWSUB_WF: u32 = 0xd8005057;
2004pub const MASK_VFWSUB_WF: u32 = 0xfc00707f;
2005pub const MATCH_VFWSUB_WV: u32 = 0xd8001057;
2006pub const MASK_VFWSUB_WV: u32 = 0xfc00707f;
2007pub const MATCH_VGHSH_VV: u32 = 0xb2002077;
2008pub const MASK_VGHSH_VV: u32 = 0xfe00707f;
2009pub const MATCH_VGMUL_VV: u32 = 0xa208a077;
2010pub const MASK_VGMUL_VV: u32 = 0xfe0ff07f;
2011pub const MATCH_VID_V: u32 = 0x5008a057;
2012pub const MASK_VID_V: u32 = 0xfdfff07f;
2013pub const MATCH_VIOTA_M: u32 = 0x50082057;
2014pub const MASK_VIOTA_M: u32 = 0xfc0ff07f;
2015pub const MATCH_VL1R_V: u32 = 0x2800007;
2016pub const MASK_VL1R_V: u32 = 0xfff0707f;
2017pub const MATCH_VL1RE16_V: u32 = 0x2805007;
2018pub const MASK_VL1RE16_V: u32 = 0xfff0707f;
2019pub const MATCH_VL1RE32_V: u32 = 0x2806007;
2020pub const MASK_VL1RE32_V: u32 = 0xfff0707f;
2021pub const MATCH_VL1RE64_V: u32 = 0x2807007;
2022pub const MASK_VL1RE64_V: u32 = 0xfff0707f;
2023pub const MATCH_VL1RE8_V: u32 = 0x2800007;
2024pub const MASK_VL1RE8_V: u32 = 0xfff0707f;
2025pub const MATCH_VL2R_V: u32 = 0x22800007;
2026pub const MASK_VL2R_V: u32 = 0xfff0707f;
2027pub const MATCH_VL2RE16_V: u32 = 0x22805007;
2028pub const MASK_VL2RE16_V: u32 = 0xfff0707f;
2029pub const MATCH_VL2RE32_V: u32 = 0x22806007;
2030pub const MASK_VL2RE32_V: u32 = 0xfff0707f;
2031pub const MATCH_VL2RE64_V: u32 = 0x22807007;
2032pub const MASK_VL2RE64_V: u32 = 0xfff0707f;
2033pub const MATCH_VL2RE8_V: u32 = 0x22800007;
2034pub const MASK_VL2RE8_V: u32 = 0xfff0707f;
2035pub const MATCH_VL4R_V: u32 = 0x62800007;
2036pub const MASK_VL4R_V: u32 = 0xfff0707f;
2037pub const MATCH_VL4RE16_V: u32 = 0x62805007;
2038pub const MASK_VL4RE16_V: u32 = 0xfff0707f;
2039pub const MATCH_VL4RE32_V: u32 = 0x62806007;
2040pub const MASK_VL4RE32_V: u32 = 0xfff0707f;
2041pub const MATCH_VL4RE64_V: u32 = 0x62807007;
2042pub const MASK_VL4RE64_V: u32 = 0xfff0707f;
2043pub const MATCH_VL4RE8_V: u32 = 0x62800007;
2044pub const MASK_VL4RE8_V: u32 = 0xfff0707f;
2045pub const MATCH_VL8R_V: u32 = 0xe2800007;
2046pub const MASK_VL8R_V: u32 = 0xfff0707f;
2047pub const MATCH_VL8RE16_V: u32 = 0xe2805007;
2048pub const MASK_VL8RE16_V: u32 = 0xfff0707f;
2049pub const MATCH_VL8RE32_V: u32 = 0xe2806007;
2050pub const MASK_VL8RE32_V: u32 = 0xfff0707f;
2051pub const MATCH_VL8RE64_V: u32 = 0xe2807007;
2052pub const MASK_VL8RE64_V: u32 = 0xfff0707f;
2053pub const MATCH_VL8RE8_V: u32 = 0xe2800007;
2054pub const MASK_VL8RE8_V: u32 = 0xfff0707f;
2055pub const MATCH_VLE16_V: u32 = 0x5007;
2056pub const MASK_VLE16_V: u32 = 0x1df0707f;
2057pub const MATCH_VLE16FF_V: u32 = 0x1005007;
2058pub const MASK_VLE16FF_V: u32 = 0x1df0707f;
2059pub const MATCH_VLE1_V: u32 = 0x2b00007;
2060pub const MASK_VLE1_V: u32 = 0xfff0707f;
2061pub const MATCH_VLE32_V: u32 = 0x6007;
2062pub const MASK_VLE32_V: u32 = 0x1df0707f;
2063pub const MATCH_VLE32FF_V: u32 = 0x1006007;
2064pub const MASK_VLE32FF_V: u32 = 0x1df0707f;
2065pub const MATCH_VLE64_V: u32 = 0x7007;
2066pub const MASK_VLE64_V: u32 = 0x1df0707f;
2067pub const MATCH_VLE64FF_V: u32 = 0x1007007;
2068pub const MASK_VLE64FF_V: u32 = 0x1df0707f;
2069pub const MATCH_VLE8_V: u32 = 0x7;
2070pub const MASK_VLE8_V: u32 = 0x1df0707f;
2071pub const MATCH_VLE8FF_V: u32 = 0x1000007;
2072pub const MASK_VLE8FF_V: u32 = 0x1df0707f;
2073pub const MATCH_VLM_V: u32 = 0x2b00007;
2074pub const MASK_VLM_V: u32 = 0xfff0707f;
2075pub const MATCH_VLOXEI16_V: u32 = 0xc005007;
2076pub const MASK_VLOXEI16_V: u32 = 0x1c00707f;
2077pub const MATCH_VLOXEI32_V: u32 = 0xc006007;
2078pub const MASK_VLOXEI32_V: u32 = 0x1c00707f;
2079pub const MATCH_VLOXEI64_V: u32 = 0xc007007;
2080pub const MASK_VLOXEI64_V: u32 = 0x1c00707f;
2081pub const MATCH_VLOXEI8_V: u32 = 0xc000007;
2082pub const MASK_VLOXEI8_V: u32 = 0x1c00707f;
2083pub const MATCH_VLSE16_V: u32 = 0x8005007;
2084pub const MASK_VLSE16_V: u32 = 0x1c00707f;
2085pub const MATCH_VLSE32_V: u32 = 0x8006007;
2086pub const MASK_VLSE32_V: u32 = 0x1c00707f;
2087pub const MATCH_VLSE64_V: u32 = 0x8007007;
2088pub const MASK_VLSE64_V: u32 = 0x1c00707f;
2089pub const MATCH_VLSE8_V: u32 = 0x8000007;
2090pub const MASK_VLSE8_V: u32 = 0x1c00707f;
2091pub const MATCH_VLUXEI16_V: u32 = 0x4005007;
2092pub const MASK_VLUXEI16_V: u32 = 0x1c00707f;
2093pub const MATCH_VLUXEI32_V: u32 = 0x4006007;
2094pub const MASK_VLUXEI32_V: u32 = 0x1c00707f;
2095pub const MATCH_VLUXEI64_V: u32 = 0x4007007;
2096pub const MASK_VLUXEI64_V: u32 = 0x1c00707f;
2097pub const MATCH_VLUXEI8_V: u32 = 0x4000007;
2098pub const MASK_VLUXEI8_V: u32 = 0x1c00707f;
2099pub const MATCH_VMACC_VV: u32 = 0xb4002057;
2100pub const MASK_VMACC_VV: u32 = 0xfc00707f;
2101pub const MATCH_VMACC_VX: u32 = 0xb4006057;
2102pub const MASK_VMACC_VX: u32 = 0xfc00707f;
2103pub const MATCH_VMADC_VI: u32 = 0x46003057;
2104pub const MASK_VMADC_VI: u32 = 0xfe00707f;
2105pub const MATCH_VMADC_VIM: u32 = 0x44003057;
2106pub const MASK_VMADC_VIM: u32 = 0xfe00707f;
2107pub const MATCH_VMADC_VV: u32 = 0x46000057;
2108pub const MASK_VMADC_VV: u32 = 0xfe00707f;
2109pub const MATCH_VMADC_VVM: u32 = 0x44000057;
2110pub const MASK_VMADC_VVM: u32 = 0xfe00707f;
2111pub const MATCH_VMADC_VX: u32 = 0x46004057;
2112pub const MASK_VMADC_VX: u32 = 0xfe00707f;
2113pub const MATCH_VMADC_VXM: u32 = 0x44004057;
2114pub const MASK_VMADC_VXM: u32 = 0xfe00707f;
2115pub const MATCH_VMADD_VV: u32 = 0xa4002057;
2116pub const MASK_VMADD_VV: u32 = 0xfc00707f;
2117pub const MATCH_VMADD_VX: u32 = 0xa4006057;
2118pub const MASK_VMADD_VX: u32 = 0xfc00707f;
2119pub const MATCH_VMAND_MM: u32 = 0x66002057;
2120pub const MASK_VMAND_MM: u32 = 0xfe00707f;
2121pub const MATCH_VMANDN_MM: u32 = 0x62002057;
2122pub const MASK_VMANDN_MM: u32 = 0xfe00707f;
2123pub const MATCH_VMANDNOT_MM: u32 = 0x60002057;
2124pub const MASK_VMANDNOT_MM: u32 = 0xfc00707f;
2125pub const MATCH_VMAX_VV: u32 = 0x1c000057;
2126pub const MASK_VMAX_VV: u32 = 0xfc00707f;
2127pub const MATCH_VMAX_VX: u32 = 0x1c004057;
2128pub const MASK_VMAX_VX: u32 = 0xfc00707f;
2129pub const MATCH_VMAXU_VV: u32 = 0x18000057;
2130pub const MASK_VMAXU_VV: u32 = 0xfc00707f;
2131pub const MATCH_VMAXU_VX: u32 = 0x18004057;
2132pub const MASK_VMAXU_VX: u32 = 0xfc00707f;
2133pub const MATCH_VMERGE_VIM: u32 = 0x5c003057;
2134pub const MASK_VMERGE_VIM: u32 = 0xfe00707f;
2135pub const MATCH_VMERGE_VVM: u32 = 0x5c000057;
2136pub const MASK_VMERGE_VVM: u32 = 0xfe00707f;
2137pub const MATCH_VMERGE_VXM: u32 = 0x5c004057;
2138pub const MASK_VMERGE_VXM: u32 = 0xfe00707f;
2139pub const MATCH_VMFEQ_VF: u32 = 0x60005057;
2140pub const MASK_VMFEQ_VF: u32 = 0xfc00707f;
2141pub const MATCH_VMFEQ_VV: u32 = 0x60001057;
2142pub const MASK_VMFEQ_VV: u32 = 0xfc00707f;
2143pub const MATCH_VMFGE_VF: u32 = 0x7c005057;
2144pub const MASK_VMFGE_VF: u32 = 0xfc00707f;
2145pub const MATCH_VMFGT_VF: u32 = 0x74005057;
2146pub const MASK_VMFGT_VF: u32 = 0xfc00707f;
2147pub const MATCH_VMFLE_VF: u32 = 0x64005057;
2148pub const MASK_VMFLE_VF: u32 = 0xfc00707f;
2149pub const MATCH_VMFLE_VV: u32 = 0x64001057;
2150pub const MASK_VMFLE_VV: u32 = 0xfc00707f;
2151pub const MATCH_VMFLT_VF: u32 = 0x6c005057;
2152pub const MASK_VMFLT_VF: u32 = 0xfc00707f;
2153pub const MATCH_VMFLT_VV: u32 = 0x6c001057;
2154pub const MASK_VMFLT_VV: u32 = 0xfc00707f;
2155pub const MATCH_VMFNE_VF: u32 = 0x70005057;
2156pub const MASK_VMFNE_VF: u32 = 0xfc00707f;
2157pub const MATCH_VMFNE_VV: u32 = 0x70001057;
2158pub const MASK_VMFNE_VV: u32 = 0xfc00707f;
2159pub const MATCH_VMIN_VV: u32 = 0x14000057;
2160pub const MASK_VMIN_VV: u32 = 0xfc00707f;
2161pub const MATCH_VMIN_VX: u32 = 0x14004057;
2162pub const MASK_VMIN_VX: u32 = 0xfc00707f;
2163pub const MATCH_VMINU_VV: u32 = 0x10000057;
2164pub const MASK_VMINU_VV: u32 = 0xfc00707f;
2165pub const MATCH_VMINU_VX: u32 = 0x10004057;
2166pub const MASK_VMINU_VX: u32 = 0xfc00707f;
2167pub const MATCH_VMNAND_MM: u32 = 0x76002057;
2168pub const MASK_VMNAND_MM: u32 = 0xfe00707f;
2169pub const MATCH_VMNOR_MM: u32 = 0x7a002057;
2170pub const MASK_VMNOR_MM: u32 = 0xfe00707f;
2171pub const MATCH_VMOR_MM: u32 = 0x6a002057;
2172pub const MASK_VMOR_MM: u32 = 0xfe00707f;
2173pub const MATCH_VMORN_MM: u32 = 0x72002057;
2174pub const MASK_VMORN_MM: u32 = 0xfe00707f;
2175pub const MATCH_VMORNOT_MM: u32 = 0x70002057;
2176pub const MASK_VMORNOT_MM: u32 = 0xfc00707f;
2177pub const MATCH_VMSBC_VV: u32 = 0x4e000057;
2178pub const MASK_VMSBC_VV: u32 = 0xfe00707f;
2179pub const MATCH_VMSBC_VVM: u32 = 0x4c000057;
2180pub const MASK_VMSBC_VVM: u32 = 0xfe00707f;
2181pub const MATCH_VMSBC_VX: u32 = 0x4e004057;
2182pub const MASK_VMSBC_VX: u32 = 0xfe00707f;
2183pub const MATCH_VMSBC_VXM: u32 = 0x4c004057;
2184pub const MASK_VMSBC_VXM: u32 = 0xfe00707f;
2185pub const MATCH_VMSBF_M: u32 = 0x5000a057;
2186pub const MASK_VMSBF_M: u32 = 0xfc0ff07f;
2187pub const MATCH_VMSEQ_VI: u32 = 0x60003057;
2188pub const MASK_VMSEQ_VI: u32 = 0xfc00707f;
2189pub const MATCH_VMSEQ_VV: u32 = 0x60000057;
2190pub const MASK_VMSEQ_VV: u32 = 0xfc00707f;
2191pub const MATCH_VMSEQ_VX: u32 = 0x60004057;
2192pub const MASK_VMSEQ_VX: u32 = 0xfc00707f;
2193pub const MATCH_VMSGT_VI: u32 = 0x7c003057;
2194pub const MASK_VMSGT_VI: u32 = 0xfc00707f;
2195pub const MATCH_VMSGT_VX: u32 = 0x7c004057;
2196pub const MASK_VMSGT_VX: u32 = 0xfc00707f;
2197pub const MATCH_VMSGTU_VI: u32 = 0x78003057;
2198pub const MASK_VMSGTU_VI: u32 = 0xfc00707f;
2199pub const MATCH_VMSGTU_VX: u32 = 0x78004057;
2200pub const MASK_VMSGTU_VX: u32 = 0xfc00707f;
2201pub const MATCH_VMSIF_M: u32 = 0x5001a057;
2202pub const MASK_VMSIF_M: u32 = 0xfc0ff07f;
2203pub const MATCH_VMSLE_VI: u32 = 0x74003057;
2204pub const MASK_VMSLE_VI: u32 = 0xfc00707f;
2205pub const MATCH_VMSLE_VV: u32 = 0x74000057;
2206pub const MASK_VMSLE_VV: u32 = 0xfc00707f;
2207pub const MATCH_VMSLE_VX: u32 = 0x74004057;
2208pub const MASK_VMSLE_VX: u32 = 0xfc00707f;
2209pub const MATCH_VMSLEU_VI: u32 = 0x70003057;
2210pub const MASK_VMSLEU_VI: u32 = 0xfc00707f;
2211pub const MATCH_VMSLEU_VV: u32 = 0x70000057;
2212pub const MASK_VMSLEU_VV: u32 = 0xfc00707f;
2213pub const MATCH_VMSLEU_VX: u32 = 0x70004057;
2214pub const MASK_VMSLEU_VX: u32 = 0xfc00707f;
2215pub const MATCH_VMSLT_VV: u32 = 0x6c000057;
2216pub const MASK_VMSLT_VV: u32 = 0xfc00707f;
2217pub const MATCH_VMSLT_VX: u32 = 0x6c004057;
2218pub const MASK_VMSLT_VX: u32 = 0xfc00707f;
2219pub const MATCH_VMSLTU_VV: u32 = 0x68000057;
2220pub const MASK_VMSLTU_VV: u32 = 0xfc00707f;
2221pub const MATCH_VMSLTU_VX: u32 = 0x68004057;
2222pub const MASK_VMSLTU_VX: u32 = 0xfc00707f;
2223pub const MATCH_VMSNE_VI: u32 = 0x64003057;
2224pub const MASK_VMSNE_VI: u32 = 0xfc00707f;
2225pub const MATCH_VMSNE_VV: u32 = 0x64000057;
2226pub const MASK_VMSNE_VV: u32 = 0xfc00707f;
2227pub const MATCH_VMSNE_VX: u32 = 0x64004057;
2228pub const MASK_VMSNE_VX: u32 = 0xfc00707f;
2229pub const MATCH_VMSOF_M: u32 = 0x50012057;
2230pub const MASK_VMSOF_M: u32 = 0xfc0ff07f;
2231pub const MATCH_VMUL_VV: u32 = 0x94002057;
2232pub const MASK_VMUL_VV: u32 = 0xfc00707f;
2233pub const MATCH_VMUL_VX: u32 = 0x94006057;
2234pub const MASK_VMUL_VX: u32 = 0xfc00707f;
2235pub const MATCH_VMULH_VV: u32 = 0x9c002057;
2236pub const MASK_VMULH_VV: u32 = 0xfc00707f;
2237pub const MATCH_VMULH_VX: u32 = 0x9c006057;
2238pub const MASK_VMULH_VX: u32 = 0xfc00707f;
2239pub const MATCH_VMULHSU_VV: u32 = 0x98002057;
2240pub const MASK_VMULHSU_VV: u32 = 0xfc00707f;
2241pub const MATCH_VMULHSU_VX: u32 = 0x98006057;
2242pub const MASK_VMULHSU_VX: u32 = 0xfc00707f;
2243pub const MATCH_VMULHU_VV: u32 = 0x90002057;
2244pub const MASK_VMULHU_VV: u32 = 0xfc00707f;
2245pub const MATCH_VMULHU_VX: u32 = 0x90006057;
2246pub const MASK_VMULHU_VX: u32 = 0xfc00707f;
2247pub const MATCH_VMV1R_V: u32 = 0x9e003057;
2248pub const MASK_VMV1R_V: u32 = 0xfe0ff07f;
2249pub const MATCH_VMV2R_V: u32 = 0x9e00b057;
2250pub const MASK_VMV2R_V: u32 = 0xfe0ff07f;
2251pub const MATCH_VMV4R_V: u32 = 0x9e01b057;
2252pub const MASK_VMV4R_V: u32 = 0xfe0ff07f;
2253pub const MATCH_VMV8R_V: u32 = 0x9e03b057;
2254pub const MASK_VMV8R_V: u32 = 0xfe0ff07f;
2255pub const MATCH_VMV_S_X: u32 = 0x42006057;
2256pub const MASK_VMV_S_X: u32 = 0xfff0707f;
2257pub const MATCH_VMV_V_I: u32 = 0x5e003057;
2258pub const MASK_VMV_V_I: u32 = 0xfff0707f;
2259pub const MATCH_VMV_V_V: u32 = 0x5e000057;
2260pub const MASK_VMV_V_V: u32 = 0xfff0707f;
2261pub const MATCH_VMV_V_X: u32 = 0x5e004057;
2262pub const MASK_VMV_V_X: u32 = 0xfff0707f;
2263pub const MATCH_VMV_X_S: u32 = 0x42002057;
2264pub const MASK_VMV_X_S: u32 = 0xfe0ff07f;
2265pub const MATCH_VMXNOR_MM: u32 = 0x7e002057;
2266pub const MASK_VMXNOR_MM: u32 = 0xfe00707f;
2267pub const MATCH_VMXOR_MM: u32 = 0x6e002057;
2268pub const MASK_VMXOR_MM: u32 = 0xfe00707f;
2269pub const MATCH_VNCLIP_WI: u32 = 0xbc003057;
2270pub const MASK_VNCLIP_WI: u32 = 0xfc00707f;
2271pub const MATCH_VNCLIP_WV: u32 = 0xbc000057;
2272pub const MASK_VNCLIP_WV: u32 = 0xfc00707f;
2273pub const MATCH_VNCLIP_WX: u32 = 0xbc004057;
2274pub const MASK_VNCLIP_WX: u32 = 0xfc00707f;
2275pub const MATCH_VNCLIPU_WI: u32 = 0xb8003057;
2276pub const MASK_VNCLIPU_WI: u32 = 0xfc00707f;
2277pub const MATCH_VNCLIPU_WV: u32 = 0xb8000057;
2278pub const MASK_VNCLIPU_WV: u32 = 0xfc00707f;
2279pub const MATCH_VNCLIPU_WX: u32 = 0xb8004057;
2280pub const MASK_VNCLIPU_WX: u32 = 0xfc00707f;
2281pub const MATCH_VNMSAC_VV: u32 = 0xbc002057;
2282pub const MASK_VNMSAC_VV: u32 = 0xfc00707f;
2283pub const MATCH_VNMSAC_VX: u32 = 0xbc006057;
2284pub const MASK_VNMSAC_VX: u32 = 0xfc00707f;
2285pub const MATCH_VNMSUB_VV: u32 = 0xac002057;
2286pub const MASK_VNMSUB_VV: u32 = 0xfc00707f;
2287pub const MATCH_VNMSUB_VX: u32 = 0xac006057;
2288pub const MASK_VNMSUB_VX: u32 = 0xfc00707f;
2289pub const MATCH_VNSRA_WI: u32 = 0xb4003057;
2290pub const MASK_VNSRA_WI: u32 = 0xfc00707f;
2291pub const MATCH_VNSRA_WV: u32 = 0xb4000057;
2292pub const MASK_VNSRA_WV: u32 = 0xfc00707f;
2293pub const MATCH_VNSRA_WX: u32 = 0xb4004057;
2294pub const MASK_VNSRA_WX: u32 = 0xfc00707f;
2295pub const MATCH_VNSRL_WI: u32 = 0xb0003057;
2296pub const MASK_VNSRL_WI: u32 = 0xfc00707f;
2297pub const MATCH_VNSRL_WV: u32 = 0xb0000057;
2298pub const MASK_VNSRL_WV: u32 = 0xfc00707f;
2299pub const MATCH_VNSRL_WX: u32 = 0xb0004057;
2300pub const MASK_VNSRL_WX: u32 = 0xfc00707f;
2301pub const MATCH_VOR_VI: u32 = 0x28003057;
2302pub const MASK_VOR_VI: u32 = 0xfc00707f;
2303pub const MATCH_VOR_VV: u32 = 0x28000057;
2304pub const MASK_VOR_VV: u32 = 0xfc00707f;
2305pub const MATCH_VOR_VX: u32 = 0x28004057;
2306pub const MASK_VOR_VX: u32 = 0xfc00707f;
2307pub const MATCH_VPOPC_M: u32 = 0x40082057;
2308pub const MASK_VPOPC_M: u32 = 0xfc0ff07f;
2309pub const MATCH_VREDAND_VS: u32 = 0x4002057;
2310pub const MASK_VREDAND_VS: u32 = 0xfc00707f;
2311pub const MATCH_VREDMAX_VS: u32 = 0x1c002057;
2312pub const MASK_VREDMAX_VS: u32 = 0xfc00707f;
2313pub const MATCH_VREDMAXU_VS: u32 = 0x18002057;
2314pub const MASK_VREDMAXU_VS: u32 = 0xfc00707f;
2315pub const MATCH_VREDMIN_VS: u32 = 0x14002057;
2316pub const MASK_VREDMIN_VS: u32 = 0xfc00707f;
2317pub const MATCH_VREDMINU_VS: u32 = 0x10002057;
2318pub const MASK_VREDMINU_VS: u32 = 0xfc00707f;
2319pub const MATCH_VREDOR_VS: u32 = 0x8002057;
2320pub const MASK_VREDOR_VS: u32 = 0xfc00707f;
2321pub const MATCH_VREDSUM_VS: u32 = 0x2057;
2322pub const MASK_VREDSUM_VS: u32 = 0xfc00707f;
2323pub const MATCH_VREDXOR_VS: u32 = 0xc002057;
2324pub const MASK_VREDXOR_VS: u32 = 0xfc00707f;
2325pub const MATCH_VREM_VV: u32 = 0x8c002057;
2326pub const MASK_VREM_VV: u32 = 0xfc00707f;
2327pub const MATCH_VREM_VX: u32 = 0x8c006057;
2328pub const MASK_VREM_VX: u32 = 0xfc00707f;
2329pub const MATCH_VREMU_VV: u32 = 0x88002057;
2330pub const MASK_VREMU_VV: u32 = 0xfc00707f;
2331pub const MATCH_VREMU_VX: u32 = 0x88006057;
2332pub const MASK_VREMU_VX: u32 = 0xfc00707f;
2333pub const MATCH_VREV8_V: u32 = 0x4804a057;
2334pub const MASK_VREV8_V: u32 = 0xfc0ff07f;
2335pub const MATCH_VRGATHER_VI: u32 = 0x30003057;
2336pub const MASK_VRGATHER_VI: u32 = 0xfc00707f;
2337pub const MATCH_VRGATHER_VV: u32 = 0x30000057;
2338pub const MASK_VRGATHER_VV: u32 = 0xfc00707f;
2339pub const MATCH_VRGATHER_VX: u32 = 0x30004057;
2340pub const MASK_VRGATHER_VX: u32 = 0xfc00707f;
2341pub const MATCH_VRGATHEREI16_VV: u32 = 0x38000057;
2342pub const MASK_VRGATHEREI16_VV: u32 = 0xfc00707f;
2343pub const MATCH_VROL_VV: u32 = 0x54000057;
2344pub const MASK_VROL_VV: u32 = 0xfc00707f;
2345pub const MATCH_VROL_VX: u32 = 0x54004057;
2346pub const MASK_VROL_VX: u32 = 0xfc00707f;
2347pub const MATCH_VROR_VI: u32 = 0x50003057;
2348pub const MASK_VROR_VI: u32 = 0xf800707f;
2349pub const MATCH_VROR_VV: u32 = 0x50000057;
2350pub const MASK_VROR_VV: u32 = 0xfc00707f;
2351pub const MATCH_VROR_VX: u32 = 0x50004057;
2352pub const MASK_VROR_VX: u32 = 0xfc00707f;
2353pub const MATCH_VRSUB_VI: u32 = 0xc003057;
2354pub const MASK_VRSUB_VI: u32 = 0xfc00707f;
2355pub const MATCH_VRSUB_VX: u32 = 0xc004057;
2356pub const MASK_VRSUB_VX: u32 = 0xfc00707f;
2357pub const MATCH_VS1R_V: u32 = 0x2800027;
2358pub const MASK_VS1R_V: u32 = 0xfff0707f;
2359pub const MATCH_VS2R_V: u32 = 0x22800027;
2360pub const MASK_VS2R_V: u32 = 0xfff0707f;
2361pub const MATCH_VS4R_V: u32 = 0x62800027;
2362pub const MASK_VS4R_V: u32 = 0xfff0707f;
2363pub const MATCH_VS8R_V: u32 = 0xe2800027;
2364pub const MASK_VS8R_V: u32 = 0xfff0707f;
2365pub const MATCH_VSADD_VI: u32 = 0x84003057;
2366pub const MASK_VSADD_VI: u32 = 0xfc00707f;
2367pub const MATCH_VSADD_VV: u32 = 0x84000057;
2368pub const MASK_VSADD_VV: u32 = 0xfc00707f;
2369pub const MATCH_VSADD_VX: u32 = 0x84004057;
2370pub const MASK_VSADD_VX: u32 = 0xfc00707f;
2371pub const MATCH_VSADDU_VI: u32 = 0x80003057;
2372pub const MASK_VSADDU_VI: u32 = 0xfc00707f;
2373pub const MATCH_VSADDU_VV: u32 = 0x80000057;
2374pub const MASK_VSADDU_VV: u32 = 0xfc00707f;
2375pub const MATCH_VSADDU_VX: u32 = 0x80004057;
2376pub const MASK_VSADDU_VX: u32 = 0xfc00707f;
2377pub const MATCH_VSBC_VVM: u32 = 0x48000057;
2378pub const MASK_VSBC_VVM: u32 = 0xfe00707f;
2379pub const MATCH_VSBC_VXM: u32 = 0x48004057;
2380pub const MASK_VSBC_VXM: u32 = 0xfe00707f;
2381pub const MATCH_VSE16_V: u32 = 0x5027;
2382pub const MASK_VSE16_V: u32 = 0x1df0707f;
2383pub const MATCH_VSE1_V: u32 = 0x2b00027;
2384pub const MASK_VSE1_V: u32 = 0xfff0707f;
2385pub const MATCH_VSE32_V: u32 = 0x6027;
2386pub const MASK_VSE32_V: u32 = 0x1df0707f;
2387pub const MATCH_VSE64_V: u32 = 0x7027;
2388pub const MASK_VSE64_V: u32 = 0x1df0707f;
2389pub const MATCH_VSE8_V: u32 = 0x27;
2390pub const MASK_VSE8_V: u32 = 0x1df0707f;
2391pub const MATCH_VSETIVLI: u32 = 0xc0007057;
2392pub const MASK_VSETIVLI: u32 = 0xc000707f;
2393pub const MATCH_VSETVL: u32 = 0x80007057;
2394pub const MASK_VSETVL: u32 = 0xfe00707f;
2395pub const MATCH_VSETVLI: u32 = 0x7057;
2396pub const MASK_VSETVLI: u32 = 0x8000707f;
2397pub const MATCH_VSEXT_VF2: u32 = 0x4803a057;
2398pub const MASK_VSEXT_VF2: u32 = 0xfc0ff07f;
2399pub const MATCH_VSEXT_VF4: u32 = 0x4802a057;
2400pub const MASK_VSEXT_VF4: u32 = 0xfc0ff07f;
2401pub const MATCH_VSEXT_VF8: u32 = 0x4801a057;
2402pub const MASK_VSEXT_VF8: u32 = 0xfc0ff07f;
2403pub const MATCH_VSHA2CH_VV: u32 = 0xba002077;
2404pub const MASK_VSHA2CH_VV: u32 = 0xfe00707f;
2405pub const MATCH_VSHA2CL_VV: u32 = 0xbe002077;
2406pub const MASK_VSHA2CL_VV: u32 = 0xfe00707f;
2407pub const MATCH_VSHA2MS_VV: u32 = 0xb6002077;
2408pub const MASK_VSHA2MS_VV: u32 = 0xfe00707f;
2409pub const MATCH_VSLIDE1DOWN_VX: u32 = 0x3c006057;
2410pub const MASK_VSLIDE1DOWN_VX: u32 = 0xfc00707f;
2411pub const MATCH_VSLIDE1UP_VX: u32 = 0x38006057;
2412pub const MASK_VSLIDE1UP_VX: u32 = 0xfc00707f;
2413pub const MATCH_VSLIDEDOWN_VI: u32 = 0x3c003057;
2414pub const MASK_VSLIDEDOWN_VI: u32 = 0xfc00707f;
2415pub const MATCH_VSLIDEDOWN_VX: u32 = 0x3c004057;
2416pub const MASK_VSLIDEDOWN_VX: u32 = 0xfc00707f;
2417pub const MATCH_VSLIDEUP_VI: u32 = 0x38003057;
2418pub const MASK_VSLIDEUP_VI: u32 = 0xfc00707f;
2419pub const MATCH_VSLIDEUP_VX: u32 = 0x38004057;
2420pub const MASK_VSLIDEUP_VX: u32 = 0xfc00707f;
2421pub const MATCH_VSLL_VI: u32 = 0x94003057;
2422pub const MASK_VSLL_VI: u32 = 0xfc00707f;
2423pub const MATCH_VSLL_VV: u32 = 0x94000057;
2424pub const MASK_VSLL_VV: u32 = 0xfc00707f;
2425pub const MATCH_VSLL_VX: u32 = 0x94004057;
2426pub const MASK_VSLL_VX: u32 = 0xfc00707f;
2427pub const MATCH_VSM3C_VI: u32 = 0xae002077;
2428pub const MASK_VSM3C_VI: u32 = 0xfe00707f;
2429pub const MATCH_VSM3ME_VV: u32 = 0x82002077;
2430pub const MASK_VSM3ME_VV: u32 = 0xfe00707f;
2431pub const MATCH_VSM4K_VI: u32 = 0x86002077;
2432pub const MASK_VSM4K_VI: u32 = 0xfe00707f;
2433pub const MATCH_VSM4R_VS: u32 = 0xa6082077;
2434pub const MASK_VSM4R_VS: u32 = 0xfe0ff07f;
2435pub const MATCH_VSM4R_VV: u32 = 0xa2082077;
2436pub const MASK_VSM4R_VV: u32 = 0xfe0ff07f;
2437pub const MATCH_VSM_V: u32 = 0x2b00027;
2438pub const MASK_VSM_V: u32 = 0xfff0707f;
2439pub const MATCH_VSMUL_VV: u32 = 0x9c000057;
2440pub const MASK_VSMUL_VV: u32 = 0xfc00707f;
2441pub const MATCH_VSMUL_VX: u32 = 0x9c004057;
2442pub const MASK_VSMUL_VX: u32 = 0xfc00707f;
2443pub const MATCH_VSOXEI16_V: u32 = 0xc005027;
2444pub const MASK_VSOXEI16_V: u32 = 0x1c00707f;
2445pub const MATCH_VSOXEI32_V: u32 = 0xc006027;
2446pub const MASK_VSOXEI32_V: u32 = 0x1c00707f;
2447pub const MATCH_VSOXEI64_V: u32 = 0xc007027;
2448pub const MASK_VSOXEI64_V: u32 = 0x1c00707f;
2449pub const MATCH_VSOXEI8_V: u32 = 0xc000027;
2450pub const MASK_VSOXEI8_V: u32 = 0x1c00707f;
2451pub const MATCH_VSRA_VI: u32 = 0xa4003057;
2452pub const MASK_VSRA_VI: u32 = 0xfc00707f;
2453pub const MATCH_VSRA_VV: u32 = 0xa4000057;
2454pub const MASK_VSRA_VV: u32 = 0xfc00707f;
2455pub const MATCH_VSRA_VX: u32 = 0xa4004057;
2456pub const MASK_VSRA_VX: u32 = 0xfc00707f;
2457pub const MATCH_VSRL_VI: u32 = 0xa0003057;
2458pub const MASK_VSRL_VI: u32 = 0xfc00707f;
2459pub const MATCH_VSRL_VV: u32 = 0xa0000057;
2460pub const MASK_VSRL_VV: u32 = 0xfc00707f;
2461pub const MATCH_VSRL_VX: u32 = 0xa0004057;
2462pub const MASK_VSRL_VX: u32 = 0xfc00707f;
2463pub const MATCH_VSSE16_V: u32 = 0x8005027;
2464pub const MASK_VSSE16_V: u32 = 0x1c00707f;
2465pub const MATCH_VSSE32_V: u32 = 0x8006027;
2466pub const MASK_VSSE32_V: u32 = 0x1c00707f;
2467pub const MATCH_VSSE64_V: u32 = 0x8007027;
2468pub const MASK_VSSE64_V: u32 = 0x1c00707f;
2469pub const MATCH_VSSE8_V: u32 = 0x8000027;
2470pub const MASK_VSSE8_V: u32 = 0x1c00707f;
2471pub const MATCH_VSSRA_VI: u32 = 0xac003057;
2472pub const MASK_VSSRA_VI: u32 = 0xfc00707f;
2473pub const MATCH_VSSRA_VV: u32 = 0xac000057;
2474pub const MASK_VSSRA_VV: u32 = 0xfc00707f;
2475pub const MATCH_VSSRA_VX: u32 = 0xac004057;
2476pub const MASK_VSSRA_VX: u32 = 0xfc00707f;
2477pub const MATCH_VSSRL_VI: u32 = 0xa8003057;
2478pub const MASK_VSSRL_VI: u32 = 0xfc00707f;
2479pub const MATCH_VSSRL_VV: u32 = 0xa8000057;
2480pub const MASK_VSSRL_VV: u32 = 0xfc00707f;
2481pub const MATCH_VSSRL_VX: u32 = 0xa8004057;
2482pub const MASK_VSSRL_VX: u32 = 0xfc00707f;
2483pub const MATCH_VSSUB_VV: u32 = 0x8c000057;
2484pub const MASK_VSSUB_VV: u32 = 0xfc00707f;
2485pub const MATCH_VSSUB_VX: u32 = 0x8c004057;
2486pub const MASK_VSSUB_VX: u32 = 0xfc00707f;
2487pub const MATCH_VSSUBU_VV: u32 = 0x88000057;
2488pub const MASK_VSSUBU_VV: u32 = 0xfc00707f;
2489pub const MATCH_VSSUBU_VX: u32 = 0x88004057;
2490pub const MASK_VSSUBU_VX: u32 = 0xfc00707f;
2491pub const MATCH_VSUB_VV: u32 = 0x8000057;
2492pub const MASK_VSUB_VV: u32 = 0xfc00707f;
2493pub const MATCH_VSUB_VX: u32 = 0x8004057;
2494pub const MASK_VSUB_VX: u32 = 0xfc00707f;
2495pub const MATCH_VSUXEI16_V: u32 = 0x4005027;
2496pub const MASK_VSUXEI16_V: u32 = 0x1c00707f;
2497pub const MATCH_VSUXEI32_V: u32 = 0x4006027;
2498pub const MASK_VSUXEI32_V: u32 = 0x1c00707f;
2499pub const MATCH_VSUXEI64_V: u32 = 0x4007027;
2500pub const MASK_VSUXEI64_V: u32 = 0x1c00707f;
2501pub const MATCH_VSUXEI8_V: u32 = 0x4000027;
2502pub const MASK_VSUXEI8_V: u32 = 0x1c00707f;
2503pub const MATCH_VWADD_VV: u32 = 0xc4002057;
2504pub const MASK_VWADD_VV: u32 = 0xfc00707f;
2505pub const MATCH_VWADD_VX: u32 = 0xc4006057;
2506pub const MASK_VWADD_VX: u32 = 0xfc00707f;
2507pub const MATCH_VWADD_WV: u32 = 0xd4002057;
2508pub const MASK_VWADD_WV: u32 = 0xfc00707f;
2509pub const MATCH_VWADD_WX: u32 = 0xd4006057;
2510pub const MASK_VWADD_WX: u32 = 0xfc00707f;
2511pub const MATCH_VWADDU_VV: u32 = 0xc0002057;
2512pub const MASK_VWADDU_VV: u32 = 0xfc00707f;
2513pub const MATCH_VWADDU_VX: u32 = 0xc0006057;
2514pub const MASK_VWADDU_VX: u32 = 0xfc00707f;
2515pub const MATCH_VWADDU_WV: u32 = 0xd0002057;
2516pub const MASK_VWADDU_WV: u32 = 0xfc00707f;
2517pub const MATCH_VWADDU_WX: u32 = 0xd0006057;
2518pub const MASK_VWADDU_WX: u32 = 0xfc00707f;
2519pub const MATCH_VWMACC_VV: u32 = 0xf4002057;
2520pub const MASK_VWMACC_VV: u32 = 0xfc00707f;
2521pub const MATCH_VWMACC_VX: u32 = 0xf4006057;
2522pub const MASK_VWMACC_VX: u32 = 0xfc00707f;
2523pub const MATCH_VWMACCSU_VV: u32 = 0xfc002057;
2524pub const MASK_VWMACCSU_VV: u32 = 0xfc00707f;
2525pub const MATCH_VWMACCSU_VX: u32 = 0xfc006057;
2526pub const MASK_VWMACCSU_VX: u32 = 0xfc00707f;
2527pub const MATCH_VWMACCU_VV: u32 = 0xf0002057;
2528pub const MASK_VWMACCU_VV: u32 = 0xfc00707f;
2529pub const MATCH_VWMACCU_VX: u32 = 0xf0006057;
2530pub const MASK_VWMACCU_VX: u32 = 0xfc00707f;
2531pub const MATCH_VWMACCUS_VX: u32 = 0xf8006057;
2532pub const MASK_VWMACCUS_VX: u32 = 0xfc00707f;
2533pub const MATCH_VWMUL_VV: u32 = 0xec002057;
2534pub const MASK_VWMUL_VV: u32 = 0xfc00707f;
2535pub const MATCH_VWMUL_VX: u32 = 0xec006057;
2536pub const MASK_VWMUL_VX: u32 = 0xfc00707f;
2537pub const MATCH_VWMULSU_VV: u32 = 0xe8002057;
2538pub const MASK_VWMULSU_VV: u32 = 0xfc00707f;
2539pub const MATCH_VWMULSU_VX: u32 = 0xe8006057;
2540pub const MASK_VWMULSU_VX: u32 = 0xfc00707f;
2541pub const MATCH_VWMULU_VV: u32 = 0xe0002057;
2542pub const MASK_VWMULU_VV: u32 = 0xfc00707f;
2543pub const MATCH_VWMULU_VX: u32 = 0xe0006057;
2544pub const MASK_VWMULU_VX: u32 = 0xfc00707f;
2545pub const MATCH_VWREDSUM_VS: u32 = 0xc4000057;
2546pub const MASK_VWREDSUM_VS: u32 = 0xfc00707f;
2547pub const MATCH_VWREDSUMU_VS: u32 = 0xc0000057;
2548pub const MASK_VWREDSUMU_VS: u32 = 0xfc00707f;
2549pub const MATCH_VWSLL_VI: u32 = 0xd4003057;
2550pub const MASK_VWSLL_VI: u32 = 0xfc00707f;
2551pub const MATCH_VWSLL_VV: u32 = 0xd4000057;
2552pub const MASK_VWSLL_VV: u32 = 0xfc00707f;
2553pub const MATCH_VWSLL_VX: u32 = 0xd4004057;
2554pub const MASK_VWSLL_VX: u32 = 0xfc00707f;
2555pub const MATCH_VWSUB_VV: u32 = 0xcc002057;
2556pub const MASK_VWSUB_VV: u32 = 0xfc00707f;
2557pub const MATCH_VWSUB_VX: u32 = 0xcc006057;
2558pub const MASK_VWSUB_VX: u32 = 0xfc00707f;
2559pub const MATCH_VWSUB_WV: u32 = 0xdc002057;
2560pub const MASK_VWSUB_WV: u32 = 0xfc00707f;
2561pub const MATCH_VWSUB_WX: u32 = 0xdc006057;
2562pub const MASK_VWSUB_WX: u32 = 0xfc00707f;
2563pub const MATCH_VWSUBU_VV: u32 = 0xc8002057;
2564pub const MASK_VWSUBU_VV: u32 = 0xfc00707f;
2565pub const MATCH_VWSUBU_VX: u32 = 0xc8006057;
2566pub const MASK_VWSUBU_VX: u32 = 0xfc00707f;
2567pub const MATCH_VWSUBU_WV: u32 = 0xd8002057;
2568pub const MASK_VWSUBU_WV: u32 = 0xfc00707f;
2569pub const MATCH_VWSUBU_WX: u32 = 0xd8006057;
2570pub const MASK_VWSUBU_WX: u32 = 0xfc00707f;
2571pub const MATCH_VXOR_VI: u32 = 0x2c003057;
2572pub const MASK_VXOR_VI: u32 = 0xfc00707f;
2573pub const MATCH_VXOR_VV: u32 = 0x2c000057;
2574pub const MASK_VXOR_VV: u32 = 0xfc00707f;
2575pub const MATCH_VXOR_VX: u32 = 0x2c004057;
2576pub const MASK_VXOR_VX: u32 = 0xfc00707f;
2577pub const MATCH_VZEXT_VF2: u32 = 0x48032057;
2578pub const MASK_VZEXT_VF2: u32 = 0xfc0ff07f;
2579pub const MATCH_VZEXT_VF4: u32 = 0x48022057;
2580pub const MASK_VZEXT_VF4: u32 = 0xfc0ff07f;
2581pub const MATCH_VZEXT_VF8: u32 = 0x48012057;
2582pub const MASK_VZEXT_VF8: u32 = 0xfc0ff07f;
2583pub const MATCH_WFI: u32 = 0x10500073;
2584pub const MASK_WFI: u32 = 0xffffffff;
2585pub const MATCH_WRS_NTO: u32 = 0xd00073;
2586pub const MASK_WRS_NTO: u32 = 0xffffffff;
2587pub const MATCH_WRS_STO: u32 = 0x1d00073;
2588pub const MASK_WRS_STO: u32 = 0xffffffff;
2589pub const MATCH_XNOR: u32 = 0x40004033;
2590pub const MASK_XNOR: u32 = 0xfe00707f;
2591pub const MATCH_XOR: u32 = 0x4033;
2592pub const MASK_XOR: u32 = 0xfe00707f;
2593pub const MATCH_XORI: u32 = 0x4013;
2594pub const MASK_XORI: u32 = 0x707f;
2595pub const MATCH_XPERM4: u32 = 0x28002033;
2596pub const MASK_XPERM4: u32 = 0xfe00707f;
2597pub const MATCH_XPERM8: u32 = 0x28004033;
2598pub const MASK_XPERM8: u32 = 0xfe00707f;
2599pub const MATCH_ZEXT_B: u32 = 0x7013;
2600pub const MASK_ZEXT_B: u32 = 0xfff0707f;
2601pub const MATCH_ZEXT_H: u32 = 0x800403b;
2602pub const MASK_ZEXT_H: u32 = 0xfff0707f;
2603pub const MATCH_ZEXT_H_RV32: u32 = 0x8004033;
2604pub const MASK_ZEXT_H_RV32: u32 = 0xfff0707f;
2605pub const MATCH_ZEXT_W: u32 = 0x800003b;
2606pub const MASK_ZEXT_W: u32 = 0xfff0707f;
2607pub const MATCH_ZIP: u32 = 0x8f01013;
2608pub const MASK_ZIP: u32 = 0xfff0707f;
2609pub const CSR_FFLAGS: u16 = 0x1;
2610pub const CSR_FRM: u16 = 0x2;
2611pub const CSR_FCSR: u16 = 0x3;
2612pub const CSR_VSTART: u16 = 0x8;
2613pub const CSR_VXSAT: u16 = 0x9;
2614pub const CSR_VXRM: u16 = 0xa;
2615pub const CSR_VCSR: u16 = 0xf;
2616pub const CSR_SSP: u16 = 0x11;
2617pub const CSR_SEED: u16 = 0x15;
2618pub const CSR_JVT: u16 = 0x17;
2619pub const CSR_CYCLE: u16 = 0xc00;
2620pub const CSR_TIME: u16 = 0xc01;
2621pub const CSR_INSTRET: u16 = 0xc02;
2622pub const CSR_HPMCOUNTER3: u16 = 0xc03;
2623pub const CSR_HPMCOUNTER4: u16 = 0xc04;
2624pub const CSR_HPMCOUNTER5: u16 = 0xc05;
2625pub const CSR_HPMCOUNTER6: u16 = 0xc06;
2626pub const CSR_HPMCOUNTER7: u16 = 0xc07;
2627pub const CSR_HPMCOUNTER8: u16 = 0xc08;
2628pub const CSR_HPMCOUNTER9: u16 = 0xc09;
2629pub const CSR_HPMCOUNTER10: u16 = 0xc0a;
2630pub const CSR_HPMCOUNTER11: u16 = 0xc0b;
2631pub const CSR_HPMCOUNTER12: u16 = 0xc0c;
2632pub const CSR_HPMCOUNTER13: u16 = 0xc0d;
2633pub const CSR_HPMCOUNTER14: u16 = 0xc0e;
2634pub const CSR_HPMCOUNTER15: u16 = 0xc0f;
2635pub const CSR_HPMCOUNTER16: u16 = 0xc10;
2636pub const CSR_HPMCOUNTER17: u16 = 0xc11;
2637pub const CSR_HPMCOUNTER18: u16 = 0xc12;
2638pub const CSR_HPMCOUNTER19: u16 = 0xc13;
2639pub const CSR_HPMCOUNTER20: u16 = 0xc14;
2640pub const CSR_HPMCOUNTER21: u16 = 0xc15;
2641pub const CSR_HPMCOUNTER22: u16 = 0xc16;
2642pub const CSR_HPMCOUNTER23: u16 = 0xc17;
2643pub const CSR_HPMCOUNTER24: u16 = 0xc18;
2644pub const CSR_HPMCOUNTER25: u16 = 0xc19;
2645pub const CSR_HPMCOUNTER26: u16 = 0xc1a;
2646pub const CSR_HPMCOUNTER27: u16 = 0xc1b;
2647pub const CSR_HPMCOUNTER28: u16 = 0xc1c;
2648pub const CSR_HPMCOUNTER29: u16 = 0xc1d;
2649pub const CSR_HPMCOUNTER30: u16 = 0xc1e;
2650pub const CSR_HPMCOUNTER31: u16 = 0xc1f;
2651pub const CSR_VL: u16 = 0xc20;
2652pub const CSR_VTYPE: u16 = 0xc21;
2653pub const CSR_VLENB: u16 = 0xc22;
2654pub const CSR_SSTATUS: u16 = 0x100;
2655pub const CSR_SEDELEG: u16 = 0x102;
2656pub const CSR_SIDELEG: u16 = 0x103;
2657pub const CSR_SIE: u16 = 0x104;
2658pub const CSR_STVEC: u16 = 0x105;
2659pub const CSR_SCOUNTEREN: u16 = 0x106;
2660pub const CSR_SENVCFG: u16 = 0x10a;
2661pub const CSR_SSTATEEN0: u16 = 0x10c;
2662pub const CSR_SSTATEEN1: u16 = 0x10d;
2663pub const CSR_SSTATEEN2: u16 = 0x10e;
2664pub const CSR_SSTATEEN3: u16 = 0x10f;
2665pub const CSR_SCOUNTINHIBIT: u16 = 0x120;
2666pub const CSR_SSCRATCH: u16 = 0x140;
2667pub const CSR_SEPC: u16 = 0x141;
2668pub const CSR_SCAUSE: u16 = 0x142;
2669pub const CSR_STVAL: u16 = 0x143;
2670pub const CSR_SIP: u16 = 0x144;
2671pub const CSR_STIMECMP: u16 = 0x14d;
2672pub const CSR_SCTRCTL: u16 = 0x14e;
2673pub const CSR_SCTRSTATUS: u16 = 0x14f;
2674pub const CSR_SISELECT: u16 = 0x150;
2675pub const CSR_SIREG: u16 = 0x151;
2676pub const CSR_SIREG2: u16 = 0x152;
2677pub const CSR_SIREG3: u16 = 0x153;
2678pub const CSR_SIREG4: u16 = 0x155;
2679pub const CSR_SIREG5: u16 = 0x156;
2680pub const CSR_SIREG6: u16 = 0x157;
2681pub const CSR_STOPEI: u16 = 0x15c;
2682pub const CSR_SCTRDEPTH: u16 = 0x15f;
2683pub const CSR_SATP: u16 = 0x180;
2684pub const CSR_SRMCFG: u16 = 0x181;
2685pub const CSR_SCONTEXT: u16 = 0x5a8;
2686pub const CSR_VSSTATUS: u16 = 0x200;
2687pub const CSR_VSIE: u16 = 0x204;
2688pub const CSR_VSTVEC: u16 = 0x205;
2689pub const CSR_VSSCRATCH: u16 = 0x240;
2690pub const CSR_VSEPC: u16 = 0x241;
2691pub const CSR_VSCAUSE: u16 = 0x242;
2692pub const CSR_VSTVAL: u16 = 0x243;
2693pub const CSR_VSIP: u16 = 0x244;
2694pub const CSR_VSTIMECMP: u16 = 0x24d;
2695pub const CSR_VSCTRCTL: u16 = 0x24e;
2696pub const CSR_VSISELECT: u16 = 0x250;
2697pub const CSR_VSIREG: u16 = 0x251;
2698pub const CSR_VSIREG2: u16 = 0x252;
2699pub const CSR_VSIREG3: u16 = 0x253;
2700pub const CSR_VSIREG4: u16 = 0x255;
2701pub const CSR_VSIREG5: u16 = 0x256;
2702pub const CSR_VSIREG6: u16 = 0x257;
2703pub const CSR_VSTOPEI: u16 = 0x25c;
2704pub const CSR_VSATP: u16 = 0x280;
2705pub const CSR_HSTATUS: u16 = 0x600;
2706pub const CSR_HEDELEG: u16 = 0x602;
2707pub const CSR_HIDELEG: u16 = 0x603;
2708pub const CSR_HIE: u16 = 0x604;
2709pub const CSR_HTIMEDELTA: u16 = 0x605;
2710pub const CSR_HCOUNTEREN: u16 = 0x606;
2711pub const CSR_HGEIE: u16 = 0x607;
2712pub const CSR_HVIEN: u16 = 0x608;
2713pub const CSR_HVICTL: u16 = 0x609;
2714pub const CSR_HENVCFG: u16 = 0x60a;
2715pub const CSR_HSTATEEN0: u16 = 0x60c;
2716pub const CSR_HSTATEEN1: u16 = 0x60d;
2717pub const CSR_HSTATEEN2: u16 = 0x60e;
2718pub const CSR_HSTATEEN3: u16 = 0x60f;
2719pub const CSR_HTVAL: u16 = 0x643;
2720pub const CSR_HIP: u16 = 0x644;
2721pub const CSR_HVIP: u16 = 0x645;
2722pub const CSR_HVIPRIO1: u16 = 0x646;
2723pub const CSR_HVIPRIO2: u16 = 0x647;
2724pub const CSR_HTINST: u16 = 0x64a;
2725pub const CSR_HGATP: u16 = 0x680;
2726pub const CSR_HCONTEXT: u16 = 0x6a8;
2727pub const CSR_HGEIP: u16 = 0xe12;
2728pub const CSR_VSTOPI: u16 = 0xeb0;
2729pub const CSR_SCOUNTOVF: u16 = 0xda0;
2730pub const CSR_STOPI: u16 = 0xdb0;
2731pub const CSR_UTVT: u16 = 0x7;
2732pub const CSR_UNXTI: u16 = 0x45;
2733pub const CSR_UINTSTATUS: u16 = 0x46;
2734pub const CSR_USCRATCHCSW: u16 = 0x48;
2735pub const CSR_USCRATCHCSWL: u16 = 0x49;
2736pub const CSR_STVT: u16 = 0x107;
2737pub const CSR_SNXTI: u16 = 0x145;
2738pub const CSR_SINTSTATUS: u16 = 0x146;
2739pub const CSR_SSCRATCHCSW: u16 = 0x148;
2740pub const CSR_SSCRATCHCSWL: u16 = 0x149;
2741pub const CSR_MTVT: u16 = 0x307;
2742pub const CSR_MNXTI: u16 = 0x345;
2743pub const CSR_MINTSTATUS: u16 = 0x346;
2744pub const CSR_MSCRATCHCSW: u16 = 0x348;
2745pub const CSR_MSCRATCHCSWL: u16 = 0x349;
2746pub const CSR_MSTATUS: u16 = 0x300;
2747pub const CSR_MISA: u16 = 0x301;
2748pub const CSR_MEDELEG: u16 = 0x302;
2749pub const CSR_MIDELEG: u16 = 0x303;
2750pub const CSR_MIE: u16 = 0x304;
2751pub const CSR_MTVEC: u16 = 0x305;
2752pub const CSR_MCOUNTEREN: u16 = 0x306;
2753pub const CSR_MVIEN: u16 = 0x308;
2754pub const CSR_MVIP: u16 = 0x309;
2755pub const CSR_MENVCFG: u16 = 0x30a;
2756pub const CSR_MSTATEEN0: u16 = 0x30c;
2757pub const CSR_MSTATEEN1: u16 = 0x30d;
2758pub const CSR_MSTATEEN2: u16 = 0x30e;
2759pub const CSR_MSTATEEN3: u16 = 0x30f;
2760pub const CSR_MCOUNTINHIBIT: u16 = 0x320;
2761pub const CSR_MSCRATCH: u16 = 0x340;
2762pub const CSR_MEPC: u16 = 0x341;
2763pub const CSR_MCAUSE: u16 = 0x342;
2764pub const CSR_MTVAL: u16 = 0x343;
2765pub const CSR_MIP: u16 = 0x344;
2766pub const CSR_MTINST: u16 = 0x34a;
2767pub const CSR_MTVAL2: u16 = 0x34b;
2768pub const CSR_MCTRCTL: u16 = 0x34e;
2769pub const CSR_MISELECT: u16 = 0x350;
2770pub const CSR_MIREG: u16 = 0x351;
2771pub const CSR_MIREG2: u16 = 0x352;
2772pub const CSR_MIREG3: u16 = 0x353;
2773pub const CSR_MIREG4: u16 = 0x355;
2774pub const CSR_MIREG5: u16 = 0x356;
2775pub const CSR_MIREG6: u16 = 0x357;
2776pub const CSR_MTOPEI: u16 = 0x35c;
2777pub const CSR_PMPCFG0: u16 = 0x3a0;
2778pub const CSR_PMPCFG1: u16 = 0x3a1;
2779pub const CSR_PMPCFG2: u16 = 0x3a2;
2780pub const CSR_PMPCFG3: u16 = 0x3a3;
2781pub const CSR_PMPCFG4: u16 = 0x3a4;
2782pub const CSR_PMPCFG5: u16 = 0x3a5;
2783pub const CSR_PMPCFG6: u16 = 0x3a6;
2784pub const CSR_PMPCFG7: u16 = 0x3a7;
2785pub const CSR_PMPCFG8: u16 = 0x3a8;
2786pub const CSR_PMPCFG9: u16 = 0x3a9;
2787pub const CSR_PMPCFG10: u16 = 0x3aa;
2788pub const CSR_PMPCFG11: u16 = 0x3ab;
2789pub const CSR_PMPCFG12: u16 = 0x3ac;
2790pub const CSR_PMPCFG13: u16 = 0x3ad;
2791pub const CSR_PMPCFG14: u16 = 0x3ae;
2792pub const CSR_PMPCFG15: u16 = 0x3af;
2793pub const CSR_PMPADDR0: u16 = 0x3b0;
2794pub const CSR_PMPADDR1: u16 = 0x3b1;
2795pub const CSR_PMPADDR2: u16 = 0x3b2;
2796pub const CSR_PMPADDR3: u16 = 0x3b3;
2797pub const CSR_PMPADDR4: u16 = 0x3b4;
2798pub const CSR_PMPADDR5: u16 = 0x3b5;
2799pub const CSR_PMPADDR6: u16 = 0x3b6;
2800pub const CSR_PMPADDR7: u16 = 0x3b7;
2801pub const CSR_PMPADDR8: u16 = 0x3b8;
2802pub const CSR_PMPADDR9: u16 = 0x3b9;
2803pub const CSR_PMPADDR10: u16 = 0x3ba;
2804pub const CSR_PMPADDR11: u16 = 0x3bb;
2805pub const CSR_PMPADDR12: u16 = 0x3bc;
2806pub const CSR_PMPADDR13: u16 = 0x3bd;
2807pub const CSR_PMPADDR14: u16 = 0x3be;
2808pub const CSR_PMPADDR15: u16 = 0x3bf;
2809pub const CSR_PMPADDR16: u16 = 0x3c0;
2810pub const CSR_PMPADDR17: u16 = 0x3c1;
2811pub const CSR_PMPADDR18: u16 = 0x3c2;
2812pub const CSR_PMPADDR19: u16 = 0x3c3;
2813pub const CSR_PMPADDR20: u16 = 0x3c4;
2814pub const CSR_PMPADDR21: u16 = 0x3c5;
2815pub const CSR_PMPADDR22: u16 = 0x3c6;
2816pub const CSR_PMPADDR23: u16 = 0x3c7;
2817pub const CSR_PMPADDR24: u16 = 0x3c8;
2818pub const CSR_PMPADDR25: u16 = 0x3c9;
2819pub const CSR_PMPADDR26: u16 = 0x3ca;
2820pub const CSR_PMPADDR27: u16 = 0x3cb;
2821pub const CSR_PMPADDR28: u16 = 0x3cc;
2822pub const CSR_PMPADDR29: u16 = 0x3cd;
2823pub const CSR_PMPADDR30: u16 = 0x3ce;
2824pub const CSR_PMPADDR31: u16 = 0x3cf;
2825pub const CSR_PMPADDR32: u16 = 0x3d0;
2826pub const CSR_PMPADDR33: u16 = 0x3d1;
2827pub const CSR_PMPADDR34: u16 = 0x3d2;
2828pub const CSR_PMPADDR35: u16 = 0x3d3;
2829pub const CSR_PMPADDR36: u16 = 0x3d4;
2830pub const CSR_PMPADDR37: u16 = 0x3d5;
2831pub const CSR_PMPADDR38: u16 = 0x3d6;
2832pub const CSR_PMPADDR39: u16 = 0x3d7;
2833pub const CSR_PMPADDR40: u16 = 0x3d8;
2834pub const CSR_PMPADDR41: u16 = 0x3d9;
2835pub const CSR_PMPADDR42: u16 = 0x3da;
2836pub const CSR_PMPADDR43: u16 = 0x3db;
2837pub const CSR_PMPADDR44: u16 = 0x3dc;
2838pub const CSR_PMPADDR45: u16 = 0x3dd;
2839pub const CSR_PMPADDR46: u16 = 0x3de;
2840pub const CSR_PMPADDR47: u16 = 0x3df;
2841pub const CSR_PMPADDR48: u16 = 0x3e0;
2842pub const CSR_PMPADDR49: u16 = 0x3e1;
2843pub const CSR_PMPADDR50: u16 = 0x3e2;
2844pub const CSR_PMPADDR51: u16 = 0x3e3;
2845pub const CSR_PMPADDR52: u16 = 0x3e4;
2846pub const CSR_PMPADDR53: u16 = 0x3e5;
2847pub const CSR_PMPADDR54: u16 = 0x3e6;
2848pub const CSR_PMPADDR55: u16 = 0x3e7;
2849pub const CSR_PMPADDR56: u16 = 0x3e8;
2850pub const CSR_PMPADDR57: u16 = 0x3e9;
2851pub const CSR_PMPADDR58: u16 = 0x3ea;
2852pub const CSR_PMPADDR59: u16 = 0x3eb;
2853pub const CSR_PMPADDR60: u16 = 0x3ec;
2854pub const CSR_PMPADDR61: u16 = 0x3ed;
2855pub const CSR_PMPADDR62: u16 = 0x3ee;
2856pub const CSR_PMPADDR63: u16 = 0x3ef;
2857pub const CSR_MSECCFG: u16 = 0x747;
2858pub const CSR_TSELECT: u16 = 0x7a0;
2859pub const CSR_TDATA1: u16 = 0x7a1;
2860pub const CSR_TDATA2: u16 = 0x7a2;
2861pub const CSR_TDATA3: u16 = 0x7a3;
2862pub const CSR_TINFO: u16 = 0x7a4;
2863pub const CSR_TCONTROL: u16 = 0x7a5;
2864pub const CSR_MCONTEXT: u16 = 0x7a8;
2865pub const CSR_MSCONTEXT: u16 = 0x7aa;
2866pub const CSR_DCSR: u16 = 0x7b0;
2867pub const CSR_DPC: u16 = 0x7b1;
2868pub const CSR_DSCRATCH0: u16 = 0x7b2;
2869pub const CSR_DSCRATCH1: u16 = 0x7b3;
2870pub const CSR_MCYCLE: u16 = 0xb00;
2871pub const CSR_MINSTRET: u16 = 0xb02;
2872pub const CSR_MHPMCOUNTER3: u16 = 0xb03;
2873pub const CSR_MHPMCOUNTER4: u16 = 0xb04;
2874pub const CSR_MHPMCOUNTER5: u16 = 0xb05;
2875pub const CSR_MHPMCOUNTER6: u16 = 0xb06;
2876pub const CSR_MHPMCOUNTER7: u16 = 0xb07;
2877pub const CSR_MHPMCOUNTER8: u16 = 0xb08;
2878pub const CSR_MHPMCOUNTER9: u16 = 0xb09;
2879pub const CSR_MHPMCOUNTER10: u16 = 0xb0a;
2880pub const CSR_MHPMCOUNTER11: u16 = 0xb0b;
2881pub const CSR_MHPMCOUNTER12: u16 = 0xb0c;
2882pub const CSR_MHPMCOUNTER13: u16 = 0xb0d;
2883pub const CSR_MHPMCOUNTER14: u16 = 0xb0e;
2884pub const CSR_MHPMCOUNTER15: u16 = 0xb0f;
2885pub const CSR_MHPMCOUNTER16: u16 = 0xb10;
2886pub const CSR_MHPMCOUNTER17: u16 = 0xb11;
2887pub const CSR_MHPMCOUNTER18: u16 = 0xb12;
2888pub const CSR_MHPMCOUNTER19: u16 = 0xb13;
2889pub const CSR_MHPMCOUNTER20: u16 = 0xb14;
2890pub const CSR_MHPMCOUNTER21: u16 = 0xb15;
2891pub const CSR_MHPMCOUNTER22: u16 = 0xb16;
2892pub const CSR_MHPMCOUNTER23: u16 = 0xb17;
2893pub const CSR_MHPMCOUNTER24: u16 = 0xb18;
2894pub const CSR_MHPMCOUNTER25: u16 = 0xb19;
2895pub const CSR_MHPMCOUNTER26: u16 = 0xb1a;
2896pub const CSR_MHPMCOUNTER27: u16 = 0xb1b;
2897pub const CSR_MHPMCOUNTER28: u16 = 0xb1c;
2898pub const CSR_MHPMCOUNTER29: u16 = 0xb1d;
2899pub const CSR_MHPMCOUNTER30: u16 = 0xb1e;
2900pub const CSR_MHPMCOUNTER31: u16 = 0xb1f;
2901pub const CSR_MCYCLECFG: u16 = 0x321;
2902pub const CSR_MINSTRETCFG: u16 = 0x322;
2903pub const CSR_MHPMEVENT3: u16 = 0x323;
2904pub const CSR_MHPMEVENT4: u16 = 0x324;
2905pub const CSR_MHPMEVENT5: u16 = 0x325;
2906pub const CSR_MHPMEVENT6: u16 = 0x326;
2907pub const CSR_MHPMEVENT7: u16 = 0x327;
2908pub const CSR_MHPMEVENT8: u16 = 0x328;
2909pub const CSR_MHPMEVENT9: u16 = 0x329;
2910pub const CSR_MHPMEVENT10: u16 = 0x32a;
2911pub const CSR_MHPMEVENT11: u16 = 0x32b;
2912pub const CSR_MHPMEVENT12: u16 = 0x32c;
2913pub const CSR_MHPMEVENT13: u16 = 0x32d;
2914pub const CSR_MHPMEVENT14: u16 = 0x32e;
2915pub const CSR_MHPMEVENT15: u16 = 0x32f;
2916pub const CSR_MHPMEVENT16: u16 = 0x330;
2917pub const CSR_MHPMEVENT17: u16 = 0x331;
2918pub const CSR_MHPMEVENT18: u16 = 0x332;
2919pub const CSR_MHPMEVENT19: u16 = 0x333;
2920pub const CSR_MHPMEVENT20: u16 = 0x334;
2921pub const CSR_MHPMEVENT21: u16 = 0x335;
2922pub const CSR_MHPMEVENT22: u16 = 0x336;
2923pub const CSR_MHPMEVENT23: u16 = 0x337;
2924pub const CSR_MHPMEVENT24: u16 = 0x338;
2925pub const CSR_MHPMEVENT25: u16 = 0x339;
2926pub const CSR_MHPMEVENT26: u16 = 0x33a;
2927pub const CSR_MHPMEVENT27: u16 = 0x33b;
2928pub const CSR_MHPMEVENT28: u16 = 0x33c;
2929pub const CSR_MHPMEVENT29: u16 = 0x33d;
2930pub const CSR_MHPMEVENT30: u16 = 0x33e;
2931pub const CSR_MHPMEVENT31: u16 = 0x33f;
2932pub const CSR_MVENDORID: u16 = 0xf11;
2933pub const CSR_MARCHID: u16 = 0xf12;
2934pub const CSR_MIMPID: u16 = 0xf13;
2935pub const CSR_MHARTID: u16 = 0xf14;
2936pub const CSR_MCONFIGPTR: u16 = 0xf15;
2937pub const CSR_MTOPI: u16 = 0xfb0;
2938pub const CSR_SIEH: u16 = 0x114;
2939pub const CSR_SIPH: u16 = 0x154;
2940pub const CSR_STIMECMPH: u16 = 0x15d;
2941pub const CSR_VSIEH: u16 = 0x214;
2942pub const CSR_VSIPH: u16 = 0x254;
2943pub const CSR_VSTIMECMPH: u16 = 0x25d;
2944pub const CSR_HTIMEDELTAH: u16 = 0x615;
2945pub const CSR_HIDELEGH: u16 = 0x613;
2946pub const CSR_HVIENH: u16 = 0x618;
2947pub const CSR_HENVCFGH: u16 = 0x61a;
2948pub const CSR_HVIPH: u16 = 0x655;
2949pub const CSR_HVIPRIO1H: u16 = 0x656;
2950pub const CSR_HVIPRIO2H: u16 = 0x657;
2951pub const CSR_HSTATEEN0H: u16 = 0x61c;
2952pub const CSR_HSTATEEN1H: u16 = 0x61d;
2953pub const CSR_HSTATEEN2H: u16 = 0x61e;
2954pub const CSR_HSTATEEN3H: u16 = 0x61f;
2955pub const CSR_CYCLEH: u16 = 0xc80;
2956pub const CSR_TIMEH: u16 = 0xc81;
2957pub const CSR_INSTRETH: u16 = 0xc82;
2958pub const CSR_HPMCOUNTER3H: u16 = 0xc83;
2959pub const CSR_HPMCOUNTER4H: u16 = 0xc84;
2960pub const CSR_HPMCOUNTER5H: u16 = 0xc85;
2961pub const CSR_HPMCOUNTER6H: u16 = 0xc86;
2962pub const CSR_HPMCOUNTER7H: u16 = 0xc87;
2963pub const CSR_HPMCOUNTER8H: u16 = 0xc88;
2964pub const CSR_HPMCOUNTER9H: u16 = 0xc89;
2965pub const CSR_HPMCOUNTER10H: u16 = 0xc8a;
2966pub const CSR_HPMCOUNTER11H: u16 = 0xc8b;
2967pub const CSR_HPMCOUNTER12H: u16 = 0xc8c;
2968pub const CSR_HPMCOUNTER13H: u16 = 0xc8d;
2969pub const CSR_HPMCOUNTER14H: u16 = 0xc8e;
2970pub const CSR_HPMCOUNTER15H: u16 = 0xc8f;
2971pub const CSR_HPMCOUNTER16H: u16 = 0xc90;
2972pub const CSR_HPMCOUNTER17H: u16 = 0xc91;
2973pub const CSR_HPMCOUNTER18H: u16 = 0xc92;
2974pub const CSR_HPMCOUNTER19H: u16 = 0xc93;
2975pub const CSR_HPMCOUNTER20H: u16 = 0xc94;
2976pub const CSR_HPMCOUNTER21H: u16 = 0xc95;
2977pub const CSR_HPMCOUNTER22H: u16 = 0xc96;
2978pub const CSR_HPMCOUNTER23H: u16 = 0xc97;
2979pub const CSR_HPMCOUNTER24H: u16 = 0xc98;
2980pub const CSR_HPMCOUNTER25H: u16 = 0xc99;
2981pub const CSR_HPMCOUNTER26H: u16 = 0xc9a;
2982pub const CSR_HPMCOUNTER27H: u16 = 0xc9b;
2983pub const CSR_HPMCOUNTER28H: u16 = 0xc9c;
2984pub const CSR_HPMCOUNTER29H: u16 = 0xc9d;
2985pub const CSR_HPMCOUNTER30H: u16 = 0xc9e;
2986pub const CSR_HPMCOUNTER31H: u16 = 0xc9f;
2987pub const CSR_MSTATUSH: u16 = 0x310;
2988pub const CSR_MIDELEGH: u16 = 0x313;
2989pub const CSR_MIEH: u16 = 0x314;
2990pub const CSR_MVIENH: u16 = 0x318;
2991pub const CSR_MVIPH: u16 = 0x319;
2992pub const CSR_MENVCFGH: u16 = 0x31a;
2993pub const CSR_MSTATEEN0H: u16 = 0x31c;
2994pub const CSR_MSTATEEN1H: u16 = 0x31d;
2995pub const CSR_MSTATEEN2H: u16 = 0x31e;
2996pub const CSR_MSTATEEN3H: u16 = 0x31f;
2997pub const CSR_MIPH: u16 = 0x354;
2998pub const CSR_MCYCLECFGH: u16 = 0x721;
2999pub const CSR_MINSTRETCFGH: u16 = 0x722;
3000pub const CSR_MHPMEVENT3H: u16 = 0x723;
3001pub const CSR_MHPMEVENT4H: u16 = 0x724;
3002pub const CSR_MHPMEVENT5H: u16 = 0x725;
3003pub const CSR_MHPMEVENT6H: u16 = 0x726;
3004pub const CSR_MHPMEVENT7H: u16 = 0x727;
3005pub const CSR_MHPMEVENT8H: u16 = 0x728;
3006pub const CSR_MHPMEVENT9H: u16 = 0x729;
3007pub const CSR_MHPMEVENT10H: u16 = 0x72a;
3008pub const CSR_MHPMEVENT11H: u16 = 0x72b;
3009pub const CSR_MHPMEVENT12H: u16 = 0x72c;
3010pub const CSR_MHPMEVENT13H: u16 = 0x72d;
3011pub const CSR_MHPMEVENT14H: u16 = 0x72e;
3012pub const CSR_MHPMEVENT15H: u16 = 0x72f;
3013pub const CSR_MHPMEVENT16H: u16 = 0x730;
3014pub const CSR_MHPMEVENT17H: u16 = 0x731;
3015pub const CSR_MHPMEVENT18H: u16 = 0x732;
3016pub const CSR_MHPMEVENT19H: u16 = 0x733;
3017pub const CSR_MHPMEVENT20H: u16 = 0x734;
3018pub const CSR_MHPMEVENT21H: u16 = 0x735;
3019pub const CSR_MHPMEVENT22H: u16 = 0x736;
3020pub const CSR_MHPMEVENT23H: u16 = 0x737;
3021pub const CSR_MHPMEVENT24H: u16 = 0x738;
3022pub const CSR_MHPMEVENT25H: u16 = 0x739;
3023pub const CSR_MHPMEVENT26H: u16 = 0x73a;
3024pub const CSR_MHPMEVENT27H: u16 = 0x73b;
3025pub const CSR_MHPMEVENT28H: u16 = 0x73c;
3026pub const CSR_MHPMEVENT29H: u16 = 0x73d;
3027pub const CSR_MHPMEVENT30H: u16 = 0x73e;
3028pub const CSR_MHPMEVENT31H: u16 = 0x73f;
3029pub const CSR_MNSCRATCH: u16 = 0x740;
3030pub const CSR_MNEPC: u16 = 0x741;
3031pub const CSR_MNCAUSE: u16 = 0x742;
3032pub const CSR_MNSTATUS: u16 = 0x744;
3033pub const CSR_MSECCFGH: u16 = 0x757;
3034pub const CSR_MCYCLEH: u16 = 0xb80;
3035pub const CSR_MINSTRETH: u16 = 0xb82;
3036pub const CSR_MHPMCOUNTER3H: u16 = 0xb83;
3037pub const CSR_MHPMCOUNTER4H: u16 = 0xb84;
3038pub const CSR_MHPMCOUNTER5H: u16 = 0xb85;
3039pub const CSR_MHPMCOUNTER6H: u16 = 0xb86;
3040pub const CSR_MHPMCOUNTER7H: u16 = 0xb87;
3041pub const CSR_MHPMCOUNTER8H: u16 = 0xb88;
3042pub const CSR_MHPMCOUNTER9H: u16 = 0xb89;
3043pub const CSR_MHPMCOUNTER10H: u16 = 0xb8a;
3044pub const CSR_MHPMCOUNTER11H: u16 = 0xb8b;
3045pub const CSR_MHPMCOUNTER12H: u16 = 0xb8c;
3046pub const CSR_MHPMCOUNTER13H: u16 = 0xb8d;
3047pub const CSR_MHPMCOUNTER14H: u16 = 0xb8e;
3048pub const CSR_MHPMCOUNTER15H: u16 = 0xb8f;
3049pub const CSR_MHPMCOUNTER16H: u16 = 0xb90;
3050pub const CSR_MHPMCOUNTER17H: u16 = 0xb91;
3051pub const CSR_MHPMCOUNTER18H: u16 = 0xb92;
3052pub const CSR_MHPMCOUNTER19H: u16 = 0xb93;
3053pub const CSR_MHPMCOUNTER20H: u16 = 0xb94;
3054pub const CSR_MHPMCOUNTER21H: u16 = 0xb95;
3055pub const CSR_MHPMCOUNTER22H: u16 = 0xb96;
3056pub const CSR_MHPMCOUNTER23H: u16 = 0xb97;
3057pub const CSR_MHPMCOUNTER24H: u16 = 0xb98;
3058pub const CSR_MHPMCOUNTER25H: u16 = 0xb99;
3059pub const CSR_MHPMCOUNTER26H: u16 = 0xb9a;
3060pub const CSR_MHPMCOUNTER27H: u16 = 0xb9b;
3061pub const CSR_MHPMCOUNTER28H: u16 = 0xb9c;
3062pub const CSR_MHPMCOUNTER29H: u16 = 0xb9d;
3063pub const CSR_MHPMCOUNTER30H: u16 = 0xb9e;
3064pub const CSR_MHPMCOUNTER31H: u16 = 0xb9f;
3065pub const CAUSE_MISALIGNED_FETCH: u8 = 0x0;
3066pub const CAUSE_FETCH_ACCESS: u8 = 0x1;
3067pub const CAUSE_ILLEGAL_INSTRUCTION: u8 = 0x2;
3068pub const CAUSE_BREAKPOINT: u8 = 0x3;
3069pub const CAUSE_MISALIGNED_LOAD: u8 = 0x4;
3070pub const CAUSE_LOAD_ACCESS: u8 = 0x5;
3071pub const CAUSE_MISALIGNED_STORE: u8 = 0x6;
3072pub const CAUSE_STORE_ACCESS: u8 = 0x7;
3073pub const CAUSE_USER_ECALL: u8 = 0x8;
3074pub const CAUSE_SUPERVISOR_ECALL: u8 = 0x9;
3075pub const CAUSE_VIRTUAL_SUPERVISOR_ECALL: u8 = 0xa;
3076pub const CAUSE_MACHINE_ECALL: u8 = 0xb;
3077pub const CAUSE_FETCH_PAGE_FAULT: u8 = 0xc;
3078pub const CAUSE_LOAD_PAGE_FAULT: u8 = 0xd;
3079pub const CAUSE_STORE_PAGE_FAULT: u8 = 0xf;
3080pub const CAUSE_DOUBLE_TRAP: u8 = 0x10;
3081pub const CAUSE_SOFTWARE_CHECK_FAULT: u8 = 0x12;
3082pub const CAUSE_HARDWARE_ERROR_FAULT: u8 = 0x13;
3083pub const CAUSE_FETCH_GUEST_PAGE_FAULT: u8 = 0x14;
3084pub const CAUSE_LOAD_GUEST_PAGE_FAULT: u8 = 0x15;
3085pub const CAUSE_VIRTUAL_INSTRUCTION: u8 = 0x16;
3086pub const CAUSE_STORE_GUEST_PAGE_FAULT: u8 = 0x17;
3087pub static OPCODE32_MATCH: [u32; 1021] = [
3088 0x33, 0xffff_ffff, 0x13, 0xffff_ffff, 0xffff_ffff, 0x2a000033, 0x2e000033, 0x22000033, 0x26000033, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0x2f, 0xffff_ffff, 0x102f, 0x202f, 0x6000002f, 0xffff_ffff, 0x6000102f, 0x6000202f, 0x2800002f, 0x2800302f, 0x2800102f, 0xffff_ffff, 0x2800202f, 0xa000002f, 0xffff_ffff, 0xa000102f, 0xa000202f, 0xe000002f, 0xffff_ffff, 0xe000102f, 0xe000202f, 0x8000002f, 0xffff_ffff, 0x8000102f, 0x8000202f, 0xc000002f, 0xffff_ffff, 0xc000102f, 0xc000202f, 0x4000002f, 0xffff_ffff, 0x4000102f, 0x4000202f, 0x800002f, 0xffff_ffff, 0x800102f, 0x800202f, 0x2000002f, 0xffff_ffff, 0x2000102f, 0x2000202f, 0x7033, 0x7013, 0x40007033, 0x17, 0x48001033, 0xffff_ffff, 0x48001013, 0x63, 0x63, 0x48005033, 0xffff_ffff, 0x48005013, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x68001033, 0xffff_ffff, 0x68001013, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x1063, 0x1063, 0x68705013, 0x28001033, 0xffff_ffff, 0x28001013, 0x9002, 0x1, 0x6101, 0x0, 0xffff_ffff, 0xffff_ffff, 0x8c61, 0x8801, 0xc001, 0xe001, 0x9002, 0x2000, 0x2002, 0x6000, 0x6002, 0xa000, 0xa002, 0xe000, 0xe002, 0xa001, 0x2001, 0x9002, 0x8002, 0x8000, 0xffff_ffff, 0xffff_ffff, 0x8440, 0x8400, 0x4001, 0x6001, 0x4000, 0x4002, 0x6081, 0x6581, 0x6681, 0x6781, 0x6181, 0x6281, 0x6381, 0x6481, 0x6081, 0x9c41, 0x8002, 0x1, 0x9c75, 0x9016, 0x900a, 0x900e, 0x9012, 0x8c41, 0x8800, 0xffff_ffff, 0xffff_ffff, 0x9c65, 0x9c6d, 0xffff_ffff, 0x8c00, 0x2, 0x2, 0x8401, 0x8401, 0x8001, 0x8001, 0x8c01, 0xffff_ffff, 0xc000, 0xc002, 0x8c21, 0x9c61, 0x9c69, 0xffff_ffff, 0x10200f, 0x20200f, 0x200f, 0x40200f, 0xa001033, 0xa003033, 0xa002033, 0x60001013, 0xffff_ffff, 0xa002, 0xac62, 0xac22, 0xba02, 0xbe02, 0xbc02, 0xb802, 0x60201013, 0xffff_ffff, 0x3073, 0x7073, 0x2073, 0x3073, 0x7073, 0x2073, 0x6073, 0x1073, 0x5073, 0x2073, 0x6073, 0x1073, 0x5073, 0x60101013, 0xffff_ffff, 0xe005033, 0xe007033, 0x2004033, 0x2005033, 0xffff_ffff, 0xffff_ffff, 0x7b200073, 0x100073, 0x73, 0x22002053, 0x24002053, 0x26002053, 0x20002053, 0x2000053, 0x4000053, 0x6000053, 0x53, 0xe2001053, 0xe4001053, 0xe6001053, 0xe0001053, 0x42200053, 0xffff_ffff, 0xffff_ffff, 0x42300053, 0x42000053, 0xd2000053, 0xd2100053, 0x44100053, 0xffff_ffff, 0xffff_ffff, 0x44300053, 0x44000053, 0xd4000053, 0xd4100053, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0x46100053, 0x46200053, 0xffff_ffff, 0xffff_ffff, 0x46000053, 0xd6000053, 0xd6100053, 0x40100053, 0x40200053, 0xffff_ffff, 0xffff_ffff, 0x40300053, 0xd0000053, 0xd0100053, 0xc2000053, 0xc4000053, 0xc6000053, 0xc0000053, 0xc2100053, 0xc4100053, 0xc6100053, 0xc0100053, 0xc2801053, 0x1a000053, 0x1c000053, 0x1e000053, 0x18000053, 0xf, 0x100f, 0x8330000f, 0xa2002053, 0xa4002053, 0xa6002053, 0xa0002053, 0x3007, 0xa2000053, 0xa4000053, 0xa6000053, 0xa0000053, 0xa2004053, 0xa4004053, 0xa6004053, 0xa0004053, 0x1007, 0xf2100053, 0xf4100053, 0xf6100053, 0xf0100053, 0x4007, 0xa2001053, 0xa4001053, 0xa6001053, 0xa0001053, 0xa2005053, 0xa4005053, 0xa6005053, 0xa0005053, 0x2007, 0x2000043, 0x4000043, 0x6000043, 0x43, 0x2a001053, 0x2c001053, 0x2e001053, 0x28001053, 0x2a003053, 0x2c003053, 0x2e003053, 0x28003053, 0x2a000053, 0x2c000053, 0x2e000053, 0x28000053, 0x2a002053, 0x2c002053, 0x2e002053, 0x28002053, 0x2000047, 0x4000047, 0x6000047, 0x47, 0x12000053, 0x14000053, 0x16000053, 0x10000053, 0x22000053, 0xffff_ffff, 0x24000053, 0xf4000053, 0x26000053, 0x20000053, 0xf0000053, 0xf0000053, 0xffff_ffff, 0xe4000053, 0xe0000053, 0xe0000053, 0xe2100053, 0xffff_ffff, 0xb2000053, 0xffff_ffff, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x200004f, 0x400004f, 0x600004f, 0x4f, 0x200004b, 0x400004b, 0x600004b, 0x4b, 0x302073, 0x102073, 0x42400053, 0x44400053, 0x46400053, 0x40400053, 0x42500053, 0x44500053, 0x46500053, 0x40500053, 0x202073, 0x301073, 0x3027, 0x101073, 0x105073, 0x22000053, 0x24000053, 0x26000053, 0x20000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x22002053, 0x24002053, 0x26002053, 0x20002053, 0x1027, 0x4027, 0x5a000053, 0x5c000053, 0x5e000053, 0x58000053, 0x201073, 0x205073, 0xa000053, 0xc000053, 0xe000053, 0x8000053, 0x2027, 0x62000073, 0x22000073, 0x66000073, 0x26000073, 0x60004073, 0x60104073, 0xffff_ffff, 0x64004073, 0x64104073, 0x68004073, 0xffff_ffff, 0x64304073, 0x68304073, 0x62004073, 0xffff_ffff, 0x66004073, 0x6a004073, 0x6f, 0x6f, 0xef, 0x67, 0xe7, 0x67, 0x3, 0x4003, 0xffff_ffff, 0x1003, 0x5003, 0xffff_ffff, 0x1000202f, 0x37, 0x2003, 0xffff_ffff, 0xa006033, 0xa007033, 0xa004033, 0xa005033, 0x81c04073, 0x81d04073, 0x89e04073, 0x89f04073, 0x8dc04073, 0x8dd04073, 0x8de04073, 0x8df04073, 0xc1c04073, 0xc1d04073, 0xc1e04073, 0xc1f04073, 0x81e04073, 0xc5c04073, 0xc5d04073, 0xc5e04073, 0xc5f04073, 0xc9c04073, 0xc9d04073, 0xc9e04073, 0xc9f04073, 0xcdc04073, 0xcdd04073, 0x81f04073, 0xcde04073, 0xcdf04073, 0x85c04073, 0x85d04073, 0x85e04073, 0x85f04073, 0x89c04073, 0x89d04073, 0x81c04073, 0x82004073, 0x86004073, 0x8a004073, 0x8e004073, 0xc2004073, 0xc6004073, 0xca004073, 0xce004073, 0x82004073, 0x30200073, 0x2000033, 0x2001033, 0x2002033, 0x2003033, 0xffff_ffff, 0x13, 0x40000033, 0x13, 0x500033, 0x200033, 0x300033, 0x400033, 0x6033, 0x28705013, 0x6013, 0x40006033, 0x8004033, 0x8007033, 0xffff_ffff, 0x100000f, 0x6013, 0x106013, 0x306013, 0xc0002073, 0xc8002073, 0xc0202073, 0xc8202073, 0xc0102073, 0xc8102073, 0x2006033, 0x2007033, 0xffff_ffff, 0xffff_ffff, 0x8067, 0xffff_ffff, 0x69805013, 0x60001033, 0xffff_ffff, 0x60005033, 0xffff_ffff, 0x60005013, 0xffff_ffff, 0xffff_ffff, 0x23, 0x100073, 0xffff_ffff, 0x1800202f, 0x73, 0xffff_ffff, 0x103013, 0x60401013, 0x60501013, 0xffff_ffff, 0x18100073, 0x12000073, 0x18000073, 0x2033, 0x1023, 0x20002033, 0xffff_ffff, 0x20004033, 0xffff_ffff, 0x20006033, 0xffff_ffff, 0x10201013, 0x10301013, 0x10001013, 0x10101013, 0xffff_ffff, 0x5c000033, 0x54000033, 0xffff_ffff, 0x5e000033, 0x56000033, 0xffff_ffff, 0x50000033, 0xffff_ffff, 0x52000033, 0x16000073, 0x1033, 0x1013, 0x1013, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0x2033, 0x2013, 0x3013, 0x3033, 0x2033, 0x10801013, 0x10901013, 0x30000033, 0x34000033, 0x3033, 0x40005033, 0x40005013, 0x40005013, 0xffff_ffff, 0xffff_ffff, 0x10200073, 0x5033, 0x5013, 0x5013, 0xffff_ffff, 0xffff_ffff, 0x40000033, 0xffff_ffff, 0x2023, 0x8f05013, 0x24002057, 0x24006057, 0x20002057, 0x20006057, 0x40003057, 0x40000057, 0x40004057, 0x3057, 0x57, 0x4057, 0xa600a077, 0xa200a077, 0xa6002077, 0xa2002077, 0xa601a077, 0xa201a077, 0xa6012077, 0xa2012077, 0x8a002077, 0xaa002077, 0xa603a077, 0x24003057, 0x24000057, 0x24004057, 0x4000057, 0x4004057, 0x2c002057, 0x2c006057, 0x28002057, 0x28006057, 0x48042057, 0x48052057, 0x30002057, 0x30006057, 0x34002057, 0x34006057, 0x48062057, 0x5e002057, 0x40082057, 0x48072057, 0x4806a057, 0x84002057, 0x84006057, 0x80002057, 0x80006057, 0x5057, 0x1057, 0x4c081057, 0x48019057, 0x48011057, 0x48039057, 0x48031057, 0x48009057, 0x48001057, 0x80005057, 0x80001057, 0x4008a057, 0xb0005057, 0xb0001057, 0xa0005057, 0xa0001057, 0x18005057, 0x18001057, 0x5c005057, 0x10005057, 0x10001057, 0xb8005057, 0xb8001057, 0xa8005057, 0xa8001057, 0x90005057, 0x90001057, 0x42001057, 0x42005057, 0x5e005057, 0x480a1057, 0x48099057, 0x48091057, 0x480a9057, 0x480b9057, 0x480b1057, 0x48089057, 0x48081057, 0xb4005057, 0xb4001057, 0xa4005057, 0xa4001057, 0xbc005057, 0xbc001057, 0xac005057, 0xac001057, 0x84005057, 0x4c029057, 0x1c001057, 0x14001057, 0xc001057, 0x4001057, 0x4001057, 0x4c021057, 0x9c005057, 0x20005057, 0x20001057, 0x24005057, 0x24001057, 0x28005057, 0x28001057, 0x3c005057, 0x38005057, 0x4c001057, 0x8005057, 0x8001057, 0xc0005057, 0xc0001057, 0xd0005057, 0xd0001057, 0x48061057, 0x48059057, 0x48051057, 0x48079057, 0x48071057, 0x48049057, 0x48041057, 0xf0005057, 0xf0001057, 0xf8005057, 0xf8001057, 0xe0005057, 0xe0001057, 0xf4005057, 0xf4001057, 0xfc005057, 0xfc001057, 0xcc001057, 0xc4001057, 0xc4001057, 0xc8005057, 0xc8001057, 0xd8005057, 0xd8001057, 0xb2002077, 0xa208a077, 0x5008a057, 0x50082057, 0x2800007, 0x2805007, 0x2806007, 0x2807007, 0x2800007, 0x22800007, 0x22805007, 0x22806007, 0x22807007, 0x22800007, 0x62800007, 0x62805007, 0x62806007, 0x62807007, 0x62800007, 0xe2800007, 0xe2805007, 0xe2806007, 0xe2807007, 0xe2800007, 0x5007, 0x1005007, 0x2b00007, 0x6007, 0x1006007, 0x7007, 0x1007007, 0x7, 0x1000007, 0x2b00007, 0xc005007, 0xc006007, 0xc007007, 0xc000007, 0x8005007, 0x8006007, 0x8007007, 0x8000007, 0x4005007, 0x4006007, 0x4007007, 0x4000007, 0xb4002057, 0xb4006057, 0x46003057, 0x44003057, 0x46000057, 0x44000057, 0x46004057, 0x44004057, 0xa4002057, 0xa4006057, 0x66002057, 0x62002057, 0x60002057, 0x1c000057, 0x1c004057, 0x18000057, 0x18004057, 0x5c003057, 0x5c000057, 0x5c004057, 0x60005057, 0x60001057, 0x7c005057, 0x74005057, 0x64005057, 0x64001057, 0x6c005057, 0x6c001057, 0x70005057, 0x70001057, 0x14000057, 0x14004057, 0x10000057, 0x10004057, 0x76002057, 0x7a002057, 0x6a002057, 0x72002057, 0x70002057, 0x4e000057, 0x4c000057, 0x4e004057, 0x4c004057, 0x5000a057, 0x60003057, 0x60000057, 0x60004057, 0x7c003057, 0x7c004057, 0x78003057, 0x78004057, 0x5001a057, 0x74003057, 0x74000057, 0x74004057, 0x70003057, 0x70000057, 0x70004057, 0x6c000057, 0x6c004057, 0x68000057, 0x68004057, 0x64003057, 0x64000057, 0x64004057, 0x50012057, 0x94002057, 0x94006057, 0x9c002057, 0x9c006057, 0x98002057, 0x98006057, 0x90002057, 0x90006057, 0x9e003057, 0x9e00b057, 0x9e01b057, 0x9e03b057, 0x42006057, 0x5e003057, 0x5e000057, 0x5e004057, 0x42002057, 0x7e002057, 0x6e002057, 0xbc003057, 0xbc000057, 0xbc004057, 0xb8003057, 0xb8000057, 0xb8004057, 0xbc002057, 0xbc006057, 0xac002057, 0xac006057, 0xb4003057, 0xb4000057, 0xb4004057, 0xb0003057, 0xb0000057, 0xb0004057, 0x28003057, 0x28000057, 0x28004057, 0x40082057, 0x4002057, 0x1c002057, 0x18002057, 0x14002057, 0x10002057, 0x8002057, 0x2057, 0xc002057, 0x8c002057, 0x8c006057, 0x88002057, 0x88006057, 0x4804a057, 0x30003057, 0x30000057, 0x30004057, 0x38000057, 0x54000057, 0x54004057, 0x50003057, 0x50000057, 0x50004057, 0xc003057, 0xc004057, 0x2800027, 0x22800027, 0x62800027, 0xe2800027, 0x84003057, 0x84000057, 0x84004057, 0x80003057, 0x80000057, 0x80004057, 0x48000057, 0x48004057, 0x5027, 0x2b00027, 0x6027, 0x7027, 0x27, 0xc0007057, 0x80007057, 0x7057, 0x4803a057, 0x4802a057, 0x4801a057, 0xba002077, 0xbe002077, 0xb6002077, 0x3c006057, 0x38006057, 0x3c003057, 0x3c004057, 0x38003057, 0x38004057, 0x94003057, 0x94000057, 0x94004057, 0xae002077, 0x82002077, 0x86002077, 0xa6082077, 0xa2082077, 0x2b00027, 0x9c000057, 0x9c004057, 0xc005027, 0xc006027, 0xc007027, 0xc000027, 0xa4003057, 0xa4000057, 0xa4004057, 0xa0003057, 0xa0000057, 0xa0004057, 0x8005027, 0x8006027, 0x8007027, 0x8000027, 0xac003057, 0xac000057, 0xac004057, 0xa8003057, 0xa8000057, 0xa8004057, 0x8c000057, 0x8c004057, 0x88000057, 0x88004057, 0x8000057, 0x8004057, 0x4005027, 0x4006027, 0x4007027, 0x4000027, 0xc4002057, 0xc4006057, 0xd4002057, 0xd4006057, 0xc0002057, 0xc0006057, 0xd0002057, 0xd0006057, 0xf4002057, 0xf4006057, 0xfc002057, 0xfc006057, 0xf0002057, 0xf0006057, 0xf8006057, 0xec002057, 0xec006057, 0xe8002057, 0xe8006057, 0xe0002057, 0xe0006057, 0xc4000057, 0xc0000057, 0xd4003057, 0xd4000057, 0xd4004057, 0xcc002057, 0xcc006057, 0xdc002057, 0xdc006057, 0xc8002057, 0xc8006057, 0xd8002057, 0xd8006057, 0x2c003057, 0x2c000057, 0x2c004057, 0x48032057, 0x48022057, 0x48012057, 0x10500073, 0xd00073, 0x1d00073, 0x40004033, 0x4033, 0x4013, 0x28002033, 0x28004033, 0x7013, 0xffff_ffff, 0x8004033, 0xffff_ffff, 0x8f01013, ];
4110pub static OPCODE32_MASK: [u32; 1021] = [
4111 0xfe00707f, 0xffff_ffff, 0x707f, 0xffff_ffff, 0xffff_ffff, 0x3e00707f, 0x3e00707f, 0x3e00707f, 0x3e00707f, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xf800707f, 0xffff_ffff, 0xf800707f, 0xf800707f, 0xfe00707f, 0x707f, 0xfe00707f, 0x7f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0x707f, 0x1f0707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x707f, 0xff07f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0x707f, 0x707f, 0xff07f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x1f0707f, 0xfff0707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xf003, 0xe003, 0xef83, 0xe003, 0xffff_ffff, 0xffff_ffff, 0xfc63, 0xec03, 0xe003, 0xe003, 0xffff, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xf07f, 0xf07f, 0xfc03, 0xffff_ffff, 0xffff_ffff, 0xfc43, 0xfc43, 0xe003, 0xe003, 0xe003, 0xe003, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8ff, 0xfc63, 0xf003, 0xef83, 0xfc7f, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc63, 0xfc03, 0xffff_ffff, 0xffff_ffff, 0xfc7f, 0xfc7f, 0xffff_ffff, 0xfc43, 0xe003, 0xf003, 0xec03, 0xfc03, 0xec03, 0xfc03, 0xfc63, 0xffff_ffff, 0xe003, 0xe003, 0xfc63, 0xfc7f, 0xfc7f, 0xffff_ffff, 0xfff07fff, 0xfff07fff, 0xfff07fff, 0xfff07fff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xffff_ffff, 0xfc03, 0xfc63, 0xfc63, 0xff03, 0xff03, 0xff03, 0xff03, 0xfff0707f, 0xffff_ffff, 0x7fff, 0x7fff, 0xff07f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0xfff0707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0007f, 0xffff_ffff, 0xffff_ffff, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xffff_ffff, 0xffff_ffff, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xfff0007f, 0xfff0007f, 0xffff_ffff, 0xffff_ffff, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xffff_ffff, 0xffff_ffff, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0x707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfffff07f, 0xfffff07f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfffff07f, 0xfff0707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xfe007fff, 0xffff_ffff, 0xfe007fff, 0xfe007fff, 0xfff, 0x7f, 0xfff, 0x707f, 0xfff07fff, 0xfff07fff, 0x707f, 0x707f, 0xffff_ffff, 0x707f, 0x707f, 0xffff_ffff, 0xf9f0707f, 0x7f, 0x707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xb3c0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xb200707f, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xffffffff, 0x1f07fff, 0x1f07fff, 0x1f07fff, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xffffffff, 0xffff_ffff, 0xfff0707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0x707f, 0xffffffff, 0xffff_ffff, 0xf800707f, 0xffffffff, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xffffffff, 0xfe007fff, 0xffffffff, 0xfe0ff07f, 0x707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0xfe00707f, 0xfe007fff, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x3e00707f, 0x3e00707f, 0xfe0ff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xffffffff, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xfe00707f, 0xffff_ffff, 0x707f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfe00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe0ff07f, 0xfdfff07f, 0xfc0ff07f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xf800707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0x1df0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xc000707f, 0xfe00707f, 0x8000707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, 0xfff0707f, ];
5133pub static OPCODE64_MATCH: [u32; 1021] = [
5134 0x33, 0x800003b, 0x13, 0x1b, 0x3b, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0x3a000033, 0x3e000033, 0x32000033, 0x36000033, 0x30001013, 0x31001013, 0x7e000033, 0x2f, 0x302f, 0x102f, 0x202f, 0x6000002f, 0x6000302f, 0x6000102f, 0x6000202f, 0x2800002f, 0x2800302f, 0x2800102f, 0x2800402f, 0x2800202f, 0xa000002f, 0xa000302f, 0xa000102f, 0xa000202f, 0xe000002f, 0xe000302f, 0xe000102f, 0xe000202f, 0x8000002f, 0x8000302f, 0x8000102f, 0x8000202f, 0xc000002f, 0xc000302f, 0xc000102f, 0xc000202f, 0x4000002f, 0x4000302f, 0x4000102f, 0x4000202f, 0x800002f, 0x800302f, 0x800102f, 0x800202f, 0x2000002f, 0x2000302f, 0x2000102f, 0x2000202f, 0x7033, 0x7013, 0x40007033, 0x17, 0x48001033, 0x48001013, 0xffff_ffff, 0x63, 0x63, 0x48005033, 0x48005013, 0xffff_ffff, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x68001033, 0x68001013, 0xffff_ffff, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x1063, 0x1063, 0x68705013, 0x28001033, 0x28001013, 0xffff_ffff, 0x9002, 0x1, 0x6101, 0x0, 0x2001, 0x9c21, 0x8c61, 0x8801, 0xc001, 0xe001, 0x9002, 0x2000, 0x2002, 0xffff_ffff, 0xffff_ffff, 0xa000, 0xa002, 0xffff_ffff, 0xffff_ffff, 0xa001, 0xffff_ffff, 0x9002, 0x8002, 0x8000, 0x6000, 0x6002, 0x8440, 0x8400, 0x4001, 0x6001, 0x4000, 0x4002, 0x6081, 0x6581, 0x6681, 0x6781, 0x6181, 0x6281, 0x6381, 0x6481, 0x6081, 0x9c41, 0x8002, 0x1, 0x9c75, 0x9016, 0x900a, 0x900e, 0x9012, 0x8c41, 0x8800, 0xe000, 0xe002, 0x9c65, 0x9c6d, 0x2001, 0x8c00, 0x2, 0xffff_ffff, 0x8401, 0xffff_ffff, 0x8001, 0xffff_ffff, 0x8c01, 0x9c01, 0xc000, 0xc002, 0x8c21, 0x9c61, 0x9c69, 0x9c71, 0x10200f, 0x20200f, 0x200f, 0x40200f, 0xa001033, 0xa003033, 0xa002033, 0x60001013, 0x6000101b, 0xa002, 0xac62, 0xac22, 0xba02, 0xbe02, 0xbc02, 0xb802, 0x60201013, 0x6020101b, 0x3073, 0x7073, 0x2073, 0x3073, 0x7073, 0x2073, 0x6073, 0x1073, 0x5073, 0x2073, 0x6073, 0x1073, 0x5073, 0x60101013, 0x6010101b, 0xe005033, 0xe007033, 0x2004033, 0x2005033, 0x200503b, 0x200403b, 0x7b200073, 0x100073, 0x73, 0x22002053, 0x24002053, 0x26002053, 0x20002053, 0x2000053, 0x4000053, 0x6000053, 0x53, 0xe2001053, 0xe4001053, 0xe6001053, 0xe0001053, 0x42200053, 0xd2200053, 0xd2300053, 0x42300053, 0x42000053, 0xd2000053, 0xd2100053, 0x44100053, 0xd4200053, 0xd4300053, 0x44300053, 0x44000053, 0xd4000053, 0xd4100053, 0xc2200053, 0xc4200053, 0xc6200053, 0xc0200053, 0xc2300053, 0xc4300053, 0xc6300053, 0xc0300053, 0x46100053, 0x46200053, 0xd6200053, 0xd6300053, 0x46000053, 0xd6000053, 0xd6100053, 0x40100053, 0x40200053, 0xd0200053, 0xd0300053, 0x40300053, 0xd0000053, 0xd0100053, 0xc2000053, 0xc4000053, 0xc6000053, 0xc0000053, 0xc2100053, 0xc4100053, 0xc6100053, 0xc0100053, 0xc2801053, 0x1a000053, 0x1c000053, 0x1e000053, 0x18000053, 0xf, 0x100f, 0x8330000f, 0xa2002053, 0xa4002053, 0xa6002053, 0xa0002053, 0x3007, 0xa2000053, 0xa4000053, 0xa6000053, 0xa0000053, 0xa2004053, 0xa4004053, 0xa6004053, 0xa0004053, 0x1007, 0xf2100053, 0xf4100053, 0xf6100053, 0xf0100053, 0x4007, 0xa2001053, 0xa4001053, 0xa6001053, 0xa0001053, 0xa2005053, 0xa4005053, 0xa6005053, 0xa0005053, 0x2007, 0x2000043, 0x4000043, 0x6000043, 0x43, 0x2a001053, 0x2c001053, 0x2e001053, 0x28001053, 0x2a003053, 0x2c003053, 0x2e003053, 0x28003053, 0x2a000053, 0x2c000053, 0x2e000053, 0x28000053, 0x2a002053, 0x2c002053, 0x2e002053, 0x28002053, 0x2000047, 0x4000047, 0x6000047, 0x47, 0x12000053, 0x14000053, 0x16000053, 0x10000053, 0x22000053, 0xf2000053, 0x24000053, 0xf4000053, 0x26000053, 0x20000053, 0xf0000053, 0xf0000053, 0xe2000053, 0xe4000053, 0xe0000053, 0xe0000053, 0xffff_ffff, 0xe6100053, 0xffff_ffff, 0xb6000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x200004f, 0x400004f, 0x600004f, 0x4f, 0x200004b, 0x400004b, 0x600004b, 0x4b, 0x302073, 0x102073, 0x42400053, 0x44400053, 0x46400053, 0x40400053, 0x42500053, 0x44500053, 0x46500053, 0x40500053, 0x202073, 0x301073, 0x3027, 0x101073, 0x105073, 0x22000053, 0x24000053, 0x26000053, 0x20000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x22002053, 0x24002053, 0x26002053, 0x20002053, 0x1027, 0x4027, 0x5a000053, 0x5c000053, 0x5e000053, 0x58000053, 0x201073, 0x205073, 0xa000053, 0xc000053, 0xe000053, 0x8000053, 0x2027, 0x62000073, 0x22000073, 0x66000073, 0x26000073, 0x60004073, 0x60104073, 0x6c004073, 0x64004073, 0x64104073, 0x68004073, 0x68104073, 0x64304073, 0x68304073, 0x62004073, 0x6e004073, 0x66004073, 0x6a004073, 0x6f, 0x6f, 0xef, 0x67, 0xe7, 0x67, 0x3, 0x4003, 0x3003, 0x1003, 0x5003, 0x1000302f, 0x1000202f, 0x37, 0x2003, 0x6003, 0xa006033, 0xa007033, 0xa004033, 0xa005033, 0x81c04073, 0x81d04073, 0x89e04073, 0x89f04073, 0x8dc04073, 0x8dd04073, 0x8de04073, 0x8df04073, 0xc1c04073, 0xc1d04073, 0xc1e04073, 0xc1f04073, 0x81e04073, 0xc5c04073, 0xc5d04073, 0xc5e04073, 0xc5f04073, 0xc9c04073, 0xc9d04073, 0xc9e04073, 0xc9f04073, 0xcdc04073, 0xcdd04073, 0x81f04073, 0xcde04073, 0xcdf04073, 0x85c04073, 0x85d04073, 0x85e04073, 0x85f04073, 0x89c04073, 0x89d04073, 0x81c04073, 0x82004073, 0x86004073, 0x8a004073, 0x8e004073, 0xc2004073, 0xc6004073, 0xca004073, 0xce004073, 0x82004073, 0x30200073, 0x2000033, 0x2001033, 0x2002033, 0x2003033, 0x200003b, 0x13, 0x40000033, 0x13, 0x500033, 0x200033, 0x300033, 0x400033, 0x6033, 0x28705013, 0x6013, 0x40006033, 0x8004033, 0x8007033, 0x800403b, 0x100000f, 0x6013, 0x106013, 0x306013, 0xc0002073, 0xffff_ffff, 0xc0202073, 0xffff_ffff, 0xc0102073, 0xffff_ffff, 0x2006033, 0x2007033, 0x200703b, 0x200603b, 0x8067, 0x6b805013, 0xffff_ffff, 0x60001033, 0x6000103b, 0x60005033, 0x60005013, 0xffff_ffff, 0x6000501b, 0x6000503b, 0x23, 0x100073, 0x1800302f, 0x1800202f, 0x73, 0x3023, 0x103013, 0x60401013, 0x60501013, 0x1b, 0x18100073, 0x12000073, 0x18000073, 0x2033, 0x1023, 0x20002033, 0x2000203b, 0x20004033, 0x2000403b, 0x20006033, 0x2000603b, 0x10201013, 0x10301013, 0x10001013, 0x10101013, 0x10601013, 0xffff_ffff, 0xffff_ffff, 0x10701013, 0xffff_ffff, 0xffff_ffff, 0x10401013, 0xffff_ffff, 0x10501013, 0xffff_ffff, 0x16000073, 0x1033, 0x1013, 0xffff_ffff, 0x800101b, 0x101b, 0x103b, 0x2033, 0x2013, 0x3013, 0x3033, 0x2033, 0x10801013, 0x10901013, 0x30000033, 0x34000033, 0x3033, 0x40005033, 0x40005013, 0xffff_ffff, 0x4000501b, 0x4000503b, 0x10200073, 0x5033, 0x5013, 0xffff_ffff, 0x501b, 0x503b, 0x40000033, 0x4000003b, 0x2023, 0xffff_ffff, 0x24002057, 0x24006057, 0x20002057, 0x20006057, 0x40003057, 0x40000057, 0x40004057, 0x3057, 0x57, 0x4057, 0xa600a077, 0xa200a077, 0xa6002077, 0xa2002077, 0xa601a077, 0xa201a077, 0xa6012077, 0xa2012077, 0x8a002077, 0xaa002077, 0xa603a077, 0x24003057, 0x24000057, 0x24004057, 0x4000057, 0x4004057, 0x2c002057, 0x2c006057, 0x28002057, 0x28006057, 0x48042057, 0x48052057, 0x30002057, 0x30006057, 0x34002057, 0x34006057, 0x48062057, 0x5e002057, 0x40082057, 0x48072057, 0x4806a057, 0x84002057, 0x84006057, 0x80002057, 0x80006057, 0x5057, 0x1057, 0x4c081057, 0x48019057, 0x48011057, 0x48039057, 0x48031057, 0x48009057, 0x48001057, 0x80005057, 0x80001057, 0x4008a057, 0xb0005057, 0xb0001057, 0xa0005057, 0xa0001057, 0x18005057, 0x18001057, 0x5c005057, 0x10005057, 0x10001057, 0xb8005057, 0xb8001057, 0xa8005057, 0xa8001057, 0x90005057, 0x90001057, 0x42001057, 0x42005057, 0x5e005057, 0x480a1057, 0x48099057, 0x48091057, 0x480a9057, 0x480b9057, 0x480b1057, 0x48089057, 0x48081057, 0xb4005057, 0xb4001057, 0xa4005057, 0xa4001057, 0xbc005057, 0xbc001057, 0xac005057, 0xac001057, 0x84005057, 0x4c029057, 0x1c001057, 0x14001057, 0xc001057, 0x4001057, 0x4001057, 0x4c021057, 0x9c005057, 0x20005057, 0x20001057, 0x24005057, 0x24001057, 0x28005057, 0x28001057, 0x3c005057, 0x38005057, 0x4c001057, 0x8005057, 0x8001057, 0xc0005057, 0xc0001057, 0xd0005057, 0xd0001057, 0x48061057, 0x48059057, 0x48051057, 0x48079057, 0x48071057, 0x48049057, 0x48041057, 0xf0005057, 0xf0001057, 0xf8005057, 0xf8001057, 0xe0005057, 0xe0001057, 0xf4005057, 0xf4001057, 0xfc005057, 0xfc001057, 0xcc001057, 0xc4001057, 0xc4001057, 0xc8005057, 0xc8001057, 0xd8005057, 0xd8001057, 0xb2002077, 0xa208a077, 0x5008a057, 0x50082057, 0x2800007, 0x2805007, 0x2806007, 0x2807007, 0x2800007, 0x22800007, 0x22805007, 0x22806007, 0x22807007, 0x22800007, 0x62800007, 0x62805007, 0x62806007, 0x62807007, 0x62800007, 0xe2800007, 0xe2805007, 0xe2806007, 0xe2807007, 0xe2800007, 0x5007, 0x1005007, 0x2b00007, 0x6007, 0x1006007, 0x7007, 0x1007007, 0x7, 0x1000007, 0x2b00007, 0xc005007, 0xc006007, 0xc007007, 0xc000007, 0x8005007, 0x8006007, 0x8007007, 0x8000007, 0x4005007, 0x4006007, 0x4007007, 0x4000007, 0xb4002057, 0xb4006057, 0x46003057, 0x44003057, 0x46000057, 0x44000057, 0x46004057, 0x44004057, 0xa4002057, 0xa4006057, 0x66002057, 0x62002057, 0x60002057, 0x1c000057, 0x1c004057, 0x18000057, 0x18004057, 0x5c003057, 0x5c000057, 0x5c004057, 0x60005057, 0x60001057, 0x7c005057, 0x74005057, 0x64005057, 0x64001057, 0x6c005057, 0x6c001057, 0x70005057, 0x70001057, 0x14000057, 0x14004057, 0x10000057, 0x10004057, 0x76002057, 0x7a002057, 0x6a002057, 0x72002057, 0x70002057, 0x4e000057, 0x4c000057, 0x4e004057, 0x4c004057, 0x5000a057, 0x60003057, 0x60000057, 0x60004057, 0x7c003057, 0x7c004057, 0x78003057, 0x78004057, 0x5001a057, 0x74003057, 0x74000057, 0x74004057, 0x70003057, 0x70000057, 0x70004057, 0x6c000057, 0x6c004057, 0x68000057, 0x68004057, 0x64003057, 0x64000057, 0x64004057, 0x50012057, 0x94002057, 0x94006057, 0x9c002057, 0x9c006057, 0x98002057, 0x98006057, 0x90002057, 0x90006057, 0x9e003057, 0x9e00b057, 0x9e01b057, 0x9e03b057, 0x42006057, 0x5e003057, 0x5e000057, 0x5e004057, 0x42002057, 0x7e002057, 0x6e002057, 0xbc003057, 0xbc000057, 0xbc004057, 0xb8003057, 0xb8000057, 0xb8004057, 0xbc002057, 0xbc006057, 0xac002057, 0xac006057, 0xb4003057, 0xb4000057, 0xb4004057, 0xb0003057, 0xb0000057, 0xb0004057, 0x28003057, 0x28000057, 0x28004057, 0x40082057, 0x4002057, 0x1c002057, 0x18002057, 0x14002057, 0x10002057, 0x8002057, 0x2057, 0xc002057, 0x8c002057, 0x8c006057, 0x88002057, 0x88006057, 0x4804a057, 0x30003057, 0x30000057, 0x30004057, 0x38000057, 0x54000057, 0x54004057, 0x50003057, 0x50000057, 0x50004057, 0xc003057, 0xc004057, 0x2800027, 0x22800027, 0x62800027, 0xe2800027, 0x84003057, 0x84000057, 0x84004057, 0x80003057, 0x80000057, 0x80004057, 0x48000057, 0x48004057, 0x5027, 0x2b00027, 0x6027, 0x7027, 0x27, 0xc0007057, 0x80007057, 0x7057, 0x4803a057, 0x4802a057, 0x4801a057, 0xba002077, 0xbe002077, 0xb6002077, 0x3c006057, 0x38006057, 0x3c003057, 0x3c004057, 0x38003057, 0x38004057, 0x94003057, 0x94000057, 0x94004057, 0xae002077, 0x82002077, 0x86002077, 0xa6082077, 0xa2082077, 0x2b00027, 0x9c000057, 0x9c004057, 0xc005027, 0xc006027, 0xc007027, 0xc000027, 0xa4003057, 0xa4000057, 0xa4004057, 0xa0003057, 0xa0000057, 0xa0004057, 0x8005027, 0x8006027, 0x8007027, 0x8000027, 0xac003057, 0xac000057, 0xac004057, 0xa8003057, 0xa8000057, 0xa8004057, 0x8c000057, 0x8c004057, 0x88000057, 0x88004057, 0x8000057, 0x8004057, 0x4005027, 0x4006027, 0x4007027, 0x4000027, 0xc4002057, 0xc4006057, 0xd4002057, 0xd4006057, 0xc0002057, 0xc0006057, 0xd0002057, 0xd0006057, 0xf4002057, 0xf4006057, 0xfc002057, 0xfc006057, 0xf0002057, 0xf0006057, 0xf8006057, 0xec002057, 0xec006057, 0xe8002057, 0xe8006057, 0xe0002057, 0xe0006057, 0xc4000057, 0xc0000057, 0xd4003057, 0xd4000057, 0xd4004057, 0xcc002057, 0xcc006057, 0xdc002057, 0xdc006057, 0xc8002057, 0xc8006057, 0xd8002057, 0xd8006057, 0x2c003057, 0x2c000057, 0x2c004057, 0x48032057, 0x48022057, 0x48012057, 0x10500073, 0xd00073, 0x1d00073, 0x40004033, 0x4033, 0x4013, 0x28002033, 0x28004033, 0x7013, 0x800403b, 0xffff_ffff, 0x800003b, 0xffff_ffff, ];
6156pub static OPCODE64_MASK: [u32; 1021] = [
6157 0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xff00707f, 0xfe00707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xfe00707f, 0x707f, 0xfe00707f, 0x7f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0x707f, 0x1f0707f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x707f, 0xff07f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0x707f, 0x707f, 0xff07f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x1f0707f, 0xfff0707f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0xf003, 0xe003, 0xef83, 0xe003, 0xe003, 0xfc63, 0xfc63, 0xec03, 0xe003, 0xe003, 0xffff, 0xe003, 0xe003, 0xffff_ffff, 0xffff_ffff, 0xe003, 0xe003, 0xffff_ffff, 0xffff_ffff, 0xe003, 0xffff_ffff, 0xf07f, 0xf07f, 0xfc03, 0xe003, 0xe003, 0xfc43, 0xfc43, 0xe003, 0xe003, 0xe003, 0xe003, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf8ff, 0xfc63, 0xf003, 0xef83, 0xfc7f, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc63, 0xfc03, 0xe003, 0xe003, 0xfc7f, 0xfc7f, 0xf07f, 0xfc43, 0xe003, 0xffff_ffff, 0xec03, 0xffff_ffff, 0xec03, 0xffff_ffff, 0xfc63, 0xfc63, 0xe003, 0xe003, 0xfc63, 0xfc7f, 0xfc7f, 0xfc7f, 0xfff07fff, 0xfff07fff, 0xfff07fff, 0xfff07fff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfc03, 0xfc63, 0xfc63, 0xff03, 0xff03, 0xff03, 0xff03, 0xfff0707f, 0xfff0707f, 0x7fff, 0x7fff, 0xff07f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0x707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfffff07f, 0xfffff07f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfffff07f, 0xfff0707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff, 0x7f, 0xfff, 0x707f, 0xfff07fff, 0xfff07fff, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0xf9f0707f, 0xf9f0707f, 0x7f, 0x707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xb3c0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xb200707f, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0x1f07fff, 0x1f07fff, 0x1f07fff, 0xfffff07f, 0xffff_ffff, 0xfffff07f, 0xffff_ffff, 0xfffff07f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xfff0707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0x707f, 0xffffffff, 0xf800707f, 0xf800707f, 0xffffffff, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffffffff, 0xfe007fff, 0xffffffff, 0xfe0ff07f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, 0xfe007fff, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x3e00707f, 0x3e00707f, 0xfe0ff07f, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xfe00707f, 0xfc00707f, 0xffff_ffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xffff_ffff, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfe00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe0ff07f, 0xfdfff07f, 0xfc0ff07f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xf800707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0x1df0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xc000707f, 0xfe00707f, 0x8000707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xffff_ffff, 0xfff0707f, 0xffff_ffff, ];
7179pub static OPCODE_MATCH: [u32; 1021] = [
7180 0x33, 0x800003b, 0x13, 0x1b, 0x3b, 0x2a000033, 0x2e000033, 0x22000033, 0x26000033, 0x3a000033,
7181 0x3e000033, 0x32000033, 0x36000033, 0x30001013, 0x31001013, 0x7e000033, 0x2f, 0x302f, 0x102f,
7182 0x202f, 0x6000002f, 0x6000302f, 0x6000102f, 0x6000202f, 0x2800002f, 0x2800302f, 0x2800102f,
7183 0x2800402f, 0x2800202f, 0xa000002f, 0xa000302f, 0xa000102f, 0xa000202f, 0xe000002f, 0xe000302f,
7184 0xe000102f, 0xe000202f, 0x8000002f, 0x8000302f, 0x8000102f, 0x8000202f, 0xc000002f, 0xc000302f,
7185 0xc000102f, 0xc000202f, 0x4000002f, 0x4000302f, 0x4000102f, 0x4000202f, 0x800002f, 0x800302f,
7186 0x800102f, 0x800202f, 0x2000002f, 0x2000302f, 0x2000102f, 0x2000202f, 0x7033, 0x7013,
7187 0x40007033, 0x17, 0x48001033, 0x48001013, 0x48001013, 0x63, 0x63, 0x48005033, 0x48005013,
7188 0x48005013, 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x68001033, 0x68001013, 0x68001013,
7189 0x5063, 0x7063, 0x5063, 0x4063, 0x6063, 0x4063, 0x1063, 0x1063, 0x68705013, 0x28001033,
7190 0x28001013, 0x28001013, 0x9002, 0x1, 0x6101, 0x0, 0x2001, 0x9c21, 0x8c61, 0x8801, 0xc001,
7191 0xe001, 0x9002, 0x2000, 0x2002, 0x6000, 0x6002, 0xa000, 0xa002, 0xe000, 0xe002, 0xa001, 0x2001,
7192 0x9002, 0x8002, 0x8000, 0x6000, 0x6002, 0x8440, 0x8400, 0x4001, 0x6001, 0x4000, 0x4002, 0x6081,
7193 0x6581, 0x6681, 0x6781, 0x6181, 0x6281, 0x6381, 0x6481, 0x6081, 0x9c41, 0x8002, 0x1, 0x9c75,
7194 0x9016, 0x900a, 0x900e, 0x9012, 0x8c41, 0x8800, 0xe000, 0xe002, 0x9c65, 0x9c6d, 0x2001, 0x8c00,
7195 0x2, 0x2, 0x8401, 0x8401, 0x8001, 0x8001, 0x8c01, 0x9c01, 0xc000, 0xc002, 0x8c21, 0x9c61,
7196 0x9c69, 0x9c71, 0x10200f, 0x20200f, 0x200f, 0x40200f, 0xa001033, 0xa003033, 0xa002033,
7197 0x60001013, 0x6000101b, 0xa002, 0xac62, 0xac22, 0xba02, 0xbe02, 0xbc02, 0xb802, 0x60201013,
7198 0x6020101b, 0x3073, 0x7073, 0x2073, 0x3073, 0x7073, 0x2073, 0x6073, 0x1073, 0x5073, 0x2073,
7199 0x6073, 0x1073, 0x5073, 0x60101013, 0x6010101b, 0xe005033, 0xe007033, 0x2004033, 0x2005033,
7200 0x200503b, 0x200403b, 0x7b200073, 0x100073, 0x73, 0x22002053, 0x24002053, 0x26002053,
7201 0x20002053, 0x2000053, 0x4000053, 0x6000053, 0x53, 0xe2001053, 0xe4001053, 0xe6001053,
7202 0xe0001053, 0x42200053, 0xd2200053, 0xd2300053, 0x42300053, 0x42000053, 0xd2000053, 0xd2100053,
7203 0x44100053, 0xd4200053, 0xd4300053, 0x44300053, 0x44000053, 0xd4000053, 0xd4100053, 0xc2200053,
7204 0xc4200053, 0xc6200053, 0xc0200053, 0xc2300053, 0xc4300053, 0xc6300053, 0xc0300053, 0x46100053,
7205 0x46200053, 0xd6200053, 0xd6300053, 0x46000053, 0xd6000053, 0xd6100053, 0x40100053, 0x40200053,
7206 0xd0200053, 0xd0300053, 0x40300053, 0xd0000053, 0xd0100053, 0xc2000053, 0xc4000053, 0xc6000053,
7207 0xc0000053, 0xc2100053, 0xc4100053, 0xc6100053, 0xc0100053, 0xc2801053, 0x1a000053, 0x1c000053,
7208 0x1e000053, 0x18000053, 0xf, 0x100f, 0x8330000f, 0xa2002053, 0xa4002053, 0xa6002053,
7209 0xa0002053, 0x3007, 0xa2000053, 0xa4000053, 0xa6000053, 0xa0000053, 0xa2004053, 0xa4004053,
7210 0xa6004053, 0xa0004053, 0x1007, 0xf2100053, 0xf4100053, 0xf6100053, 0xf0100053, 0x4007,
7211 0xa2001053, 0xa4001053, 0xa6001053, 0xa0001053, 0xa2005053, 0xa4005053, 0xa6005053, 0xa0005053,
7212 0x2007, 0x2000043, 0x4000043, 0x6000043, 0x43, 0x2a001053, 0x2c001053, 0x2e001053, 0x28001053,
7213 0x2a003053, 0x2c003053, 0x2e003053, 0x28003053, 0x2a000053, 0x2c000053, 0x2e000053, 0x28000053,
7214 0x2a002053, 0x2c002053, 0x2e002053, 0x28002053, 0x2000047, 0x4000047, 0x6000047, 0x47,
7215 0x12000053, 0x14000053, 0x16000053, 0x10000053, 0x22000053, 0xf2000053, 0x24000053, 0xf4000053,
7216 0x26000053, 0x20000053, 0xf0000053, 0xf0000053, 0xe2000053, 0xe4000053, 0xe0000053, 0xe0000053,
7217 0xe2100053, 0xe6100053, 0xb2000053, 0xb6000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053,
7218 0x200004f, 0x400004f, 0x600004f, 0x4f, 0x200004b, 0x400004b, 0x600004b, 0x4b, 0x302073,
7219 0x102073, 0x42400053, 0x44400053, 0x46400053, 0x40400053, 0x42500053, 0x44500053, 0x46500053,
7220 0x40500053, 0x202073, 0x301073, 0x3027, 0x101073, 0x105073, 0x22000053, 0x24000053, 0x26000053,
7221 0x20000053, 0x22001053, 0x24001053, 0x26001053, 0x20001053, 0x22002053, 0x24002053, 0x26002053,
7222 0x20002053, 0x1027, 0x4027, 0x5a000053, 0x5c000053, 0x5e000053, 0x58000053, 0x201073, 0x205073,
7223 0xa000053, 0xc000053, 0xe000053, 0x8000053, 0x2027, 0x62000073, 0x22000073, 0x66000073,
7224 0x26000073, 0x60004073, 0x60104073, 0x6c004073, 0x64004073, 0x64104073, 0x68004073, 0x68104073,
7225 0x64304073, 0x68304073, 0x62004073, 0x6e004073, 0x66004073, 0x6a004073, 0x6f, 0x6f, 0xef, 0x67,
7226 0xe7, 0x67, 0x3, 0x4003, 0x3003, 0x1003, 0x5003, 0x1000302f, 0x1000202f, 0x37, 0x2003, 0x6003,
7227 0xa006033, 0xa007033, 0xa004033, 0xa005033, 0x81c04073, 0x81d04073, 0x89e04073, 0x89f04073,
7228 0x8dc04073, 0x8dd04073, 0x8de04073, 0x8df04073, 0xc1c04073, 0xc1d04073, 0xc1e04073, 0xc1f04073,
7229 0x81e04073, 0xc5c04073, 0xc5d04073, 0xc5e04073, 0xc5f04073, 0xc9c04073, 0xc9d04073, 0xc9e04073,
7230 0xc9f04073, 0xcdc04073, 0xcdd04073, 0x81f04073, 0xcde04073, 0xcdf04073, 0x85c04073, 0x85d04073,
7231 0x85e04073, 0x85f04073, 0x89c04073, 0x89d04073, 0x81c04073, 0x82004073, 0x86004073, 0x8a004073,
7232 0x8e004073, 0xc2004073, 0xc6004073, 0xca004073, 0xce004073, 0x82004073, 0x30200073, 0x2000033,
7233 0x2001033, 0x2002033, 0x2003033, 0x200003b, 0x13, 0x40000033, 0x13, 0x500033, 0x200033,
7234 0x300033, 0x400033, 0x6033, 0x28705013, 0x6013, 0x40006033, 0x8004033, 0x8007033, 0x800403b,
7235 0x100000f, 0x6013, 0x106013, 0x306013, 0xc0002073, 0xc8002073, 0xc0202073, 0xc8202073,
7236 0xc0102073, 0xc8102073, 0x2006033, 0x2007033, 0x200703b, 0x200603b, 0x8067, 0x6b805013,
7237 0x69805013, 0x60001033, 0x6000103b, 0x60005033, 0x60005013, 0x60005013, 0x6000501b, 0x6000503b,
7238 0x23, 0x100073, 0x1800302f, 0x1800202f, 0x73, 0x3023, 0x103013, 0x60401013, 0x60501013, 0x1b,
7239 0x18100073, 0x12000073, 0x18000073, 0x2033, 0x1023, 0x20002033, 0x2000203b, 0x20004033,
7240 0x2000403b, 0x20006033, 0x2000603b, 0x10201013, 0x10301013, 0x10001013, 0x10101013, 0x10601013,
7241 0x5c000033, 0x54000033, 0x10701013, 0x5e000033, 0x56000033, 0x10401013, 0x50000033, 0x10501013,
7242 0x52000033, 0x16000073, 0x1033, 0x1013, 0x1013, 0x800101b, 0x101b, 0x103b, 0x2033, 0x2013,
7243 0x3013, 0x3033, 0x2033, 0x10801013, 0x10901013, 0x30000033, 0x34000033, 0x3033, 0x40005033,
7244 0x40005013, 0x40005013, 0x4000501b, 0x4000503b, 0x10200073, 0x5033, 0x5013, 0x5013, 0x501b,
7245 0x503b, 0x40000033, 0x4000003b, 0x2023, 0x8f05013, 0x24002057, 0x24006057, 0x20002057,
7246 0x20006057, 0x40003057, 0x40000057, 0x40004057, 0x3057, 0x57, 0x4057, 0xa600a077, 0xa200a077,
7247 0xa6002077, 0xa2002077, 0xa601a077, 0xa201a077, 0xa6012077, 0xa2012077, 0x8a002077, 0xaa002077,
7248 0xa603a077, 0x24003057, 0x24000057, 0x24004057, 0x4000057, 0x4004057, 0x2c002057, 0x2c006057,
7249 0x28002057, 0x28006057, 0x48042057, 0x48052057, 0x30002057, 0x30006057, 0x34002057, 0x34006057,
7250 0x48062057, 0x5e002057, 0x40082057, 0x48072057, 0x4806a057, 0x84002057, 0x84006057, 0x80002057,
7251 0x80006057, 0x5057, 0x1057, 0x4c081057, 0x48019057, 0x48011057, 0x48039057, 0x48031057,
7252 0x48009057, 0x48001057, 0x80005057, 0x80001057, 0x4008a057, 0xb0005057, 0xb0001057, 0xa0005057,
7253 0xa0001057, 0x18005057, 0x18001057, 0x5c005057, 0x10005057, 0x10001057, 0xb8005057, 0xb8001057,
7254 0xa8005057, 0xa8001057, 0x90005057, 0x90001057, 0x42001057, 0x42005057, 0x5e005057, 0x480a1057,
7255 0x48099057, 0x48091057, 0x480a9057, 0x480b9057, 0x480b1057, 0x48089057, 0x48081057, 0xb4005057,
7256 0xb4001057, 0xa4005057, 0xa4001057, 0xbc005057, 0xbc001057, 0xac005057, 0xac001057, 0x84005057,
7257 0x4c029057, 0x1c001057, 0x14001057, 0xc001057, 0x4001057, 0x4001057, 0x4c021057, 0x9c005057,
7258 0x20005057, 0x20001057, 0x24005057, 0x24001057, 0x28005057, 0x28001057, 0x3c005057, 0x38005057,
7259 0x4c001057, 0x8005057, 0x8001057, 0xc0005057, 0xc0001057, 0xd0005057, 0xd0001057, 0x48061057,
7260 0x48059057, 0x48051057, 0x48079057, 0x48071057, 0x48049057, 0x48041057, 0xf0005057, 0xf0001057,
7261 0xf8005057, 0xf8001057, 0xe0005057, 0xe0001057, 0xf4005057, 0xf4001057, 0xfc005057, 0xfc001057,
7262 0xcc001057, 0xc4001057, 0xc4001057, 0xc8005057, 0xc8001057, 0xd8005057, 0xd8001057, 0xb2002077,
7263 0xa208a077, 0x5008a057, 0x50082057, 0x2800007, 0x2805007, 0x2806007, 0x2807007, 0x2800007,
7264 0x22800007, 0x22805007, 0x22806007, 0x22807007, 0x22800007, 0x62800007, 0x62805007, 0x62806007,
7265 0x62807007, 0x62800007, 0xe2800007, 0xe2805007, 0xe2806007, 0xe2807007, 0xe2800007, 0x5007,
7266 0x1005007, 0x2b00007, 0x6007, 0x1006007, 0x7007, 0x1007007, 0x7, 0x1000007, 0x2b00007,
7267 0xc005007, 0xc006007, 0xc007007, 0xc000007, 0x8005007, 0x8006007, 0x8007007, 0x8000007,
7268 0x4005007, 0x4006007, 0x4007007, 0x4000007, 0xb4002057, 0xb4006057, 0x46003057, 0x44003057,
7269 0x46000057, 0x44000057, 0x46004057, 0x44004057, 0xa4002057, 0xa4006057, 0x66002057, 0x62002057,
7270 0x60002057, 0x1c000057, 0x1c004057, 0x18000057, 0x18004057, 0x5c003057, 0x5c000057, 0x5c004057,
7271 0x60005057, 0x60001057, 0x7c005057, 0x74005057, 0x64005057, 0x64001057, 0x6c005057, 0x6c001057,
7272 0x70005057, 0x70001057, 0x14000057, 0x14004057, 0x10000057, 0x10004057, 0x76002057, 0x7a002057,
7273 0x6a002057, 0x72002057, 0x70002057, 0x4e000057, 0x4c000057, 0x4e004057, 0x4c004057, 0x5000a057,
7274 0x60003057, 0x60000057, 0x60004057, 0x7c003057, 0x7c004057, 0x78003057, 0x78004057, 0x5001a057,
7275 0x74003057, 0x74000057, 0x74004057, 0x70003057, 0x70000057, 0x70004057, 0x6c000057, 0x6c004057,
7276 0x68000057, 0x68004057, 0x64003057, 0x64000057, 0x64004057, 0x50012057, 0x94002057, 0x94006057,
7277 0x9c002057, 0x9c006057, 0x98002057, 0x98006057, 0x90002057, 0x90006057, 0x9e003057, 0x9e00b057,
7278 0x9e01b057, 0x9e03b057, 0x42006057, 0x5e003057, 0x5e000057, 0x5e004057, 0x42002057, 0x7e002057,
7279 0x6e002057, 0xbc003057, 0xbc000057, 0xbc004057, 0xb8003057, 0xb8000057, 0xb8004057, 0xbc002057,
7280 0xbc006057, 0xac002057, 0xac006057, 0xb4003057, 0xb4000057, 0xb4004057, 0xb0003057, 0xb0000057,
7281 0xb0004057, 0x28003057, 0x28000057, 0x28004057, 0x40082057, 0x4002057, 0x1c002057, 0x18002057,
7282 0x14002057, 0x10002057, 0x8002057, 0x2057, 0xc002057, 0x8c002057, 0x8c006057, 0x88002057,
7283 0x88006057, 0x4804a057, 0x30003057, 0x30000057, 0x30004057, 0x38000057, 0x54000057, 0x54004057,
7284 0x50003057, 0x50000057, 0x50004057, 0xc003057, 0xc004057, 0x2800027, 0x22800027, 0x62800027,
7285 0xe2800027, 0x84003057, 0x84000057, 0x84004057, 0x80003057, 0x80000057, 0x80004057, 0x48000057,
7286 0x48004057, 0x5027, 0x2b00027, 0x6027, 0x7027, 0x27, 0xc0007057, 0x80007057, 0x7057,
7287 0x4803a057, 0x4802a057, 0x4801a057, 0xba002077, 0xbe002077, 0xb6002077, 0x3c006057, 0x38006057,
7288 0x3c003057, 0x3c004057, 0x38003057, 0x38004057, 0x94003057, 0x94000057, 0x94004057, 0xae002077,
7289 0x82002077, 0x86002077, 0xa6082077, 0xa2082077, 0x2b00027, 0x9c000057, 0x9c004057, 0xc005027,
7290 0xc006027, 0xc007027, 0xc000027, 0xa4003057, 0xa4000057, 0xa4004057, 0xa0003057, 0xa0000057,
7291 0xa0004057, 0x8005027, 0x8006027, 0x8007027, 0x8000027, 0xac003057, 0xac000057, 0xac004057,
7292 0xa8003057, 0xa8000057, 0xa8004057, 0x8c000057, 0x8c004057, 0x88000057, 0x88004057, 0x8000057,
7293 0x8004057, 0x4005027, 0x4006027, 0x4007027, 0x4000027, 0xc4002057, 0xc4006057, 0xd4002057,
7294 0xd4006057, 0xc0002057, 0xc0006057, 0xd0002057, 0xd0006057, 0xf4002057, 0xf4006057, 0xfc002057,
7295 0xfc006057, 0xf0002057, 0xf0006057, 0xf8006057, 0xec002057, 0xec006057, 0xe8002057, 0xe8006057,
7296 0xe0002057, 0xe0006057, 0xc4000057, 0xc0000057, 0xd4003057, 0xd4000057, 0xd4004057, 0xcc002057,
7297 0xcc006057, 0xdc002057, 0xdc006057, 0xc8002057, 0xc8006057, 0xd8002057, 0xd8006057, 0x2c003057,
7298 0x2c000057, 0x2c004057, 0x48032057, 0x48022057, 0x48012057, 0x10500073, 0xd00073, 0x1d00073,
7299 0x40004033, 0x4033, 0x4013, 0x28002033, 0x28004033, 0x7013, 0x800403b, 0x8004033, 0x800003b,
7300 0x8f01013,
7301];
7302pub static OPCODE_MASK: [u32; 1021] = [
7303 0xfe00707f, 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0x3e00707f, 0x3e00707f, 0x3e00707f,
7304 0x3e00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xff00707f, 0xfe00707f,
7305 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7306 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7307 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7308 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7309 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f, 0xf800707f,
7310 0xf800707f, 0xfe00707f, 0x707f, 0xfe00707f, 0x7f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f,
7311 0x1f0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0x1f0707f, 0x707f, 0x707f,
7312 0xff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0x707f, 0x707f, 0xff07f, 0x707f, 0x707f,
7313 0x1f0707f, 0x707f, 0x1f0707f, 0xfff0707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xf003, 0xe003,
7314 0xef83, 0xe003, 0xe003, 0xfc63, 0xfc63, 0xec03, 0xe003, 0xe003, 0xffff, 0xe003, 0xe003, 0xe003,
7315 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xe003, 0xf07f, 0xf07f, 0xfc03, 0xe003, 0xe003,
7316 0xfc43, 0xfc43, 0xe003, 0xe003, 0xe003, 0xe003, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
7317 0xffff, 0xffff, 0xf8ff, 0xfc63, 0xf003, 0xef83, 0xfc7f, 0xffff, 0xffff, 0xffff, 0xffff, 0xfc63,
7318 0xfc03, 0xe003, 0xe003, 0xfc7f, 0xfc7f, 0xf07f, 0xfc43, 0xe003, 0xf003, 0xec03, 0xfc03, 0xec03,
7319 0xfc03, 0xfc63, 0xfc63, 0xe003, 0xe003, 0xfc63, 0xfc7f, 0xfc7f, 0xfc7f, 0xfff07fff, 0xfff07fff,
7320 0xfff07fff, 0xfff07fff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfc03,
7321 0xfc63, 0xfc63, 0xff03, 0xff03, 0xff03, 0xff03, 0xfff0707f, 0xfff0707f, 0x7fff, 0x7fff,
7322 0xff07f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f, 0x7fff, 0x7fff, 0x7fff, 0x7fff,
7323 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7324 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00007f,
7325 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0007f,
7326 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7327 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7328 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7329 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7330 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7331 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f,
7332 0x707f, 0x707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xfe00707f,
7333 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7334 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7335 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0x600007f, 0x600007f,
7336 0x600007f, 0x600007f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7337 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7338 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfe00007f, 0xfe00007f,
7339 0xfe00007f, 0xfe00007f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f,
7340 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7341 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x600007f, 0x600007f,
7342 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0x600007f, 0xfffff07f, 0xfffff07f,
7343 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f,
7344 0xfffff07f, 0xfff0707f, 0x707f, 0xfff0707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7345 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7346 0xfe00707f, 0x707f, 0x707f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0007f, 0xfff0707f,
7347 0xfff0707f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0xfe00007f, 0x707f, 0xfe007fff, 0xfe007fff,
7348 0xfe007fff, 0xfe007fff, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7349 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfe007fff, 0xfff,
7350 0x7f, 0xfff, 0x707f, 0xfff07fff, 0xfff07fff, 0x707f, 0x707f, 0x707f, 0x707f, 0x707f,
7351 0xf9f0707f, 0xf9f0707f, 0x7f, 0x707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7352 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7353 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7354 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7355 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7356 0xb3c0707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7357 0xfe00707f, 0xb200707f, 0xffffffff, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7358 0xfff0707f, 0xfff0707f, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7359 0xfff0707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0x1f07fff,
7360 0x1f07fff, 0x1f07fff, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f, 0xfffff07f,
7361 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff, 0xfff0707f, 0xfff0707f, 0xfe00707f,
7362 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f, 0xffffffff,
7363 0xf800707f, 0xf800707f, 0xffffffff, 0x707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7364 0xffffffff, 0xfe007fff, 0xffffffff, 0xfe0ff07f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7365 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7366 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfe00707f, 0xfff0707f,
7367 0xfe00707f, 0xfe007fff, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7368 0xfe00707f, 0x707f, 0x707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x3e00707f,
7369 0x3e00707f, 0xfe0ff07f, 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xffffffff,
7370 0xfe00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0x707f,
7371 0xfff0707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7372 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7373 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfe0ff07f, 0xfc00707f, 0xfc00707f,
7374 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7375 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfe00707f, 0xfc0ff07f,
7376 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7377 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f,
7378 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7379 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7380 0xfc00707f, 0xfe0ff07f, 0xfff0707f, 0xfff0707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7381 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7382 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7383 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7384 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7385 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f,
7386 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7387 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7388 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe0ff07f, 0xfdfff07f, 0xfc0ff07f,
7389 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7390 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7391 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1df0707f,
7392 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xfff0707f, 0x1c00707f, 0x1c00707f,
7393 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f,
7394 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7395 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7396 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f,
7397 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7398 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f,
7399 0xfc00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7400 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f,
7401 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7402 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7403 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f, 0xfe0ff07f,
7404 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfe0ff07f, 0xfe00707f, 0xfe00707f, 0xfc00707f,
7405 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7406 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7407 0xfc00707f, 0xfc00707f, 0xfc0ff07f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7408 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc0ff07f,
7409 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xf800707f, 0xfc00707f,
7410 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfc00707f,
7411 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f, 0x1df0707f,
7412 0xfff0707f, 0x1df0707f, 0x1df0707f, 0x1df0707f, 0xc000707f, 0xfe00707f, 0x8000707f, 0xfc0ff07f,
7413 0xfc0ff07f, 0xfc0ff07f, 0xfe00707f, 0xfe00707f, 0xfe00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7414 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfe00707f, 0xfe00707f,
7415 0xfe00707f, 0xfe0ff07f, 0xfe0ff07f, 0xfff0707f, 0xfc00707f, 0xfc00707f, 0x1c00707f, 0x1c00707f,
7416 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7417 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7418 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7419 0x1c00707f, 0x1c00707f, 0x1c00707f, 0x1c00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7420 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7421 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7422 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7423 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f, 0xfc00707f,
7424 0xfc00707f, 0xfc0ff07f, 0xfc0ff07f, 0xfc0ff07f, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe00707f,
7425 0xfe00707f, 0x707f, 0xfe00707f, 0xfe00707f, 0xfff0707f, 0xfff0707f, 0xfff0707f, 0xfff0707f,
7426 0xfff0707f,
7427];
7428pub static OPCODE_MASK_COMPRESSED: [u16; 1021] = [
7429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61443, 57347,
7432 61315, 57347, 57347, 64611, 64611, 60419, 57347, 57347, 65535, 57347, 57347, 57347, 57347,
7433 57347, 57347, 57347, 57347, 57347, 57347, 61567, 61567, 64515, 57347, 57347, 64579, 64579,
7434 57347, 57347, 57347, 57347, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 63743,
7435 64611, 61443, 61315, 64639, 65535, 65535, 65535, 65535, 64611, 64515, 57347, 57347, 64639,
7436 64639, 61567, 64579, 57347, 61443, 60419, 64515, 60419, 64515, 64611, 64611, 57347, 57347,
7437 64611, 64639, 64639, 64639, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 28799,
7438 64515, 64611, 64611, 65283, 65283, 65283, 65283, 28799, 28799, 32767, 32767, 61567, 28799,
7439 28799, 28799, 28799, 28799, 28799, 32767, 32767, 32767, 32767, 28799, 28799, 28799, 28799, 0,
7440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7466];
7467
7468pub static OPCODE_MATCH_COMPRESSED: [u16; 1021] = [
7469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36866, 1, 24833,
7472 0, 8193, 39969, 35937, 34817, 49153, 57345, 36866, 8192, 8194, 24576, 24578, 40960, 40962,
7473 57344, 57346, 40961, 8193, 36866, 32770, 32768, 24576, 24578, 33856, 33792, 16385, 24577,
7474 16384, 16386, 24705, 25985, 26241, 26497, 24961, 25217, 25473, 25729, 24705, 40001, 32770, 1,
7475 40053, 36886, 36874, 36878, 36882, 35905, 34816, 57344, 57346, 40037, 40045, 8193, 35840, 2, 2,
7476 33793, 33793, 32769, 32769, 35841, 39937, 49152, 49154, 35873, 40033, 40041, 40049, 8207, 8207,
7477 8207, 8207, 4147, 12339, 8243, 4115, 4123, 40962, 44130, 44066, 47618, 48642, 48130, 47106,
7478 4115, 4123, 12403, 28787, 8307, 12403, 28787, 8307, 24691, 4211, 20595, 8307, 24691, 4211,
7479 20595, 4115, 4123, 20531, 28723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7505 0, 0, 0, 0,
7506];
7507
7508pub static ALL_OPCODES: [Opcode; 1021] = [
7509 Opcode::ADD,
7510 Opcode::ADDUW,
7511 Opcode::ADDI,
7512 Opcode::ADDIW,
7513 Opcode::ADDW,
7514 Opcode::AES32DSI,
7515 Opcode::AES32DSMI,
7516 Opcode::AES32ESI,
7517 Opcode::AES32ESMI,
7518 Opcode::AES64DS,
7519 Opcode::AES64DSM,
7520 Opcode::AES64ES,
7521 Opcode::AES64ESM,
7522 Opcode::AES64IM,
7523 Opcode::AES64KS1I,
7524 Opcode::AES64KS2,
7525 Opcode::AMOADDB,
7526 Opcode::AMOADDD,
7527 Opcode::AMOADDH,
7528 Opcode::AMOADDW,
7529 Opcode::AMOANDB,
7530 Opcode::AMOANDD,
7531 Opcode::AMOANDH,
7532 Opcode::AMOANDW,
7533 Opcode::AMOCASB,
7534 Opcode::AMOCASD,
7535 Opcode::AMOCASH,
7536 Opcode::AMOCASQ,
7537 Opcode::AMOCASW,
7538 Opcode::AMOMAXB,
7539 Opcode::AMOMAXD,
7540 Opcode::AMOMAXH,
7541 Opcode::AMOMAXW,
7542 Opcode::AMOMAXUB,
7543 Opcode::AMOMAXUD,
7544 Opcode::AMOMAXUH,
7545 Opcode::AMOMAXUW,
7546 Opcode::AMOMINB,
7547 Opcode::AMOMIND,
7548 Opcode::AMOMINH,
7549 Opcode::AMOMINW,
7550 Opcode::AMOMINUB,
7551 Opcode::AMOMINUD,
7552 Opcode::AMOMINUH,
7553 Opcode::AMOMINUW,
7554 Opcode::AMOORB,
7555 Opcode::AMOORD,
7556 Opcode::AMOORH,
7557 Opcode::AMOORW,
7558 Opcode::AMOSWAPB,
7559 Opcode::AMOSWAPD,
7560 Opcode::AMOSWAPH,
7561 Opcode::AMOSWAPW,
7562 Opcode::AMOXORB,
7563 Opcode::AMOXORD,
7564 Opcode::AMOXORH,
7565 Opcode::AMOXORW,
7566 Opcode::AND,
7567 Opcode::ANDI,
7568 Opcode::ANDN,
7569 Opcode::AUIPC,
7570 Opcode::BCLR,
7571 Opcode::BCLRI,
7572 Opcode::BCLRIRV32,
7573 Opcode::BEQ,
7574 Opcode::BEQZ,
7575 Opcode::BEXT,
7576 Opcode::BEXTI,
7577 Opcode::BEXTIRV32,
7578 Opcode::BGE,
7579 Opcode::BGEU,
7580 Opcode::BGEZ,
7581 Opcode::BGT,
7582 Opcode::BGTU,
7583 Opcode::BGTZ,
7584 Opcode::BINV,
7585 Opcode::BINVI,
7586 Opcode::BINVIRV32,
7587 Opcode::BLE,
7588 Opcode::BLEU,
7589 Opcode::BLEZ,
7590 Opcode::BLT,
7591 Opcode::BLTU,
7592 Opcode::BLTZ,
7593 Opcode::BNE,
7594 Opcode::BNEZ,
7595 Opcode::BREV8,
7596 Opcode::BSET,
7597 Opcode::BSETI,
7598 Opcode::BSETIRV32,
7599 Opcode::CADD,
7600 Opcode::CADDI,
7601 Opcode::CADDI16SP,
7602 Opcode::CADDI4SPN,
7603 Opcode::CADDIW,
7604 Opcode::CADDW,
7605 Opcode::CAND,
7606 Opcode::CANDI,
7607 Opcode::CBEQZ,
7608 Opcode::CBNEZ,
7609 Opcode::CEBREAK,
7610 Opcode::CFLD,
7611 Opcode::CFLDSP,
7612 Opcode::CFLW,
7613 Opcode::CFLWSP,
7614 Opcode::CFSD,
7615 Opcode::CFSDSP,
7616 Opcode::CFSW,
7617 Opcode::CFSWSP,
7618 Opcode::CJ,
7619 Opcode::CJAL,
7620 Opcode::CJALR,
7621 Opcode::CJR,
7622 Opcode::CLBU,
7623 Opcode::CLD,
7624 Opcode::CLDSP,
7625 Opcode::CLH,
7626 Opcode::CLHU,
7627 Opcode::CLI,
7628 Opcode::CLUI,
7629 Opcode::CLW,
7630 Opcode::CLWSP,
7631 Opcode::CMOP1,
7632 Opcode::CMOP11,
7633 Opcode::CMOP13,
7634 Opcode::CMOP15,
7635 Opcode::CMOP3,
7636 Opcode::CMOP5,
7637 Opcode::CMOP7,
7638 Opcode::CMOP9,
7639 Opcode::CMOPN,
7640 Opcode::CMUL,
7641 Opcode::CMV,
7642 Opcode::CNOP,
7643 Opcode::CNOT,
7644 Opcode::CNTLALL,
7645 Opcode::CNTLP1,
7646 Opcode::CNTLPALL,
7647 Opcode::CNTLS1,
7648 Opcode::COR,
7649 Opcode::CSB,
7650 Opcode::CSD,
7651 Opcode::CSDSP,
7652 Opcode::CSEXTB,
7653 Opcode::CSEXTH,
7654 Opcode::CSEXTW,
7655 Opcode::CSH,
7656 Opcode::CSLLI,
7657 Opcode::CSLLIRV32,
7658 Opcode::CSRAI,
7659 Opcode::CSRAIRV32,
7660 Opcode::CSRLI,
7661 Opcode::CSRLIRV32,
7662 Opcode::CSUB,
7663 Opcode::CSUBW,
7664 Opcode::CSW,
7665 Opcode::CSWSP,
7666 Opcode::CXOR,
7667 Opcode::CZEXTB,
7668 Opcode::CZEXTH,
7669 Opcode::CZEXTW,
7670 Opcode::CBOCLEAN,
7671 Opcode::CBOFLUSH,
7672 Opcode::CBOINVAL,
7673 Opcode::CBOZERO,
7674 Opcode::CLMUL,
7675 Opcode::CLMULH,
7676 Opcode::CLMULR,
7677 Opcode::CLZ,
7678 Opcode::CLZW,
7679 Opcode::CMJALT,
7680 Opcode::CMMVA01S,
7681 Opcode::CMMVSA01,
7682 Opcode::CMPOP,
7683 Opcode::CMPOPRET,
7684 Opcode::CMPOPRETZ,
7685 Opcode::CMPUSH,
7686 Opcode::CPOP,
7687 Opcode::CPOPW,
7688 Opcode::CSRC,
7689 Opcode::CSRCI,
7690 Opcode::CSRR,
7691 Opcode::CSRRC,
7692 Opcode::CSRRCI,
7693 Opcode::CSRRS,
7694 Opcode::CSRRSI,
7695 Opcode::CSRRW,
7696 Opcode::CSRRWI,
7697 Opcode::CSRS,
7698 Opcode::CSRSI,
7699 Opcode::CSRW,
7700 Opcode::CSRWI,
7701 Opcode::CTZ,
7702 Opcode::CTZW,
7703 Opcode::CZEROEQZ,
7704 Opcode::CZERONEZ,
7705 Opcode::DIV,
7706 Opcode::DIVU,
7707 Opcode::DIVUW,
7708 Opcode::DIVW,
7709 Opcode::DRET,
7710 Opcode::EBREAK,
7711 Opcode::ECALL,
7712 Opcode::FABSD,
7713 Opcode::FABSH,
7714 Opcode::FABSQ,
7715 Opcode::FABSS,
7716 Opcode::FADDD,
7717 Opcode::FADDH,
7718 Opcode::FADDQ,
7719 Opcode::FADDS,
7720 Opcode::FCLASSD,
7721 Opcode::FCLASSH,
7722 Opcode::FCLASSQ,
7723 Opcode::FCLASSS,
7724 Opcode::FCVTDH,
7725 Opcode::FCVTDL,
7726 Opcode::FCVTDLU,
7727 Opcode::FCVTDQ,
7728 Opcode::FCVTDS,
7729 Opcode::FCVTDW,
7730 Opcode::FCVTDWU,
7731 Opcode::FCVTHD,
7732 Opcode::FCVTHL,
7733 Opcode::FCVTHLU,
7734 Opcode::FCVTHQ,
7735 Opcode::FCVTHS,
7736 Opcode::FCVTHW,
7737 Opcode::FCVTHWU,
7738 Opcode::FCVTLD,
7739 Opcode::FCVTLH,
7740 Opcode::FCVTLQ,
7741 Opcode::FCVTLS,
7742 Opcode::FCVTLUD,
7743 Opcode::FCVTLUH,
7744 Opcode::FCVTLUQ,
7745 Opcode::FCVTLUS,
7746 Opcode::FCVTQD,
7747 Opcode::FCVTQH,
7748 Opcode::FCVTQL,
7749 Opcode::FCVTQLU,
7750 Opcode::FCVTQS,
7751 Opcode::FCVTQW,
7752 Opcode::FCVTQWU,
7753 Opcode::FCVTSD,
7754 Opcode::FCVTSH,
7755 Opcode::FCVTSL,
7756 Opcode::FCVTSLU,
7757 Opcode::FCVTSQ,
7758 Opcode::FCVTSW,
7759 Opcode::FCVTSWU,
7760 Opcode::FCVTWD,
7761 Opcode::FCVTWH,
7762 Opcode::FCVTWQ,
7763 Opcode::FCVTWS,
7764 Opcode::FCVTWUD,
7765 Opcode::FCVTWUH,
7766 Opcode::FCVTWUQ,
7767 Opcode::FCVTWUS,
7768 Opcode::FCVTMODWD,
7769 Opcode::FDIVD,
7770 Opcode::FDIVH,
7771 Opcode::FDIVQ,
7772 Opcode::FDIVS,
7773 Opcode::FENCE,
7774 Opcode::FENCEI,
7775 Opcode::FENCETSO,
7776 Opcode::FEQD,
7777 Opcode::FEQH,
7778 Opcode::FEQQ,
7779 Opcode::FEQS,
7780 Opcode::FLD,
7781 Opcode::FLED,
7782 Opcode::FLEH,
7783 Opcode::FLEQ,
7784 Opcode::FLES,
7785 Opcode::FLEQD,
7786 Opcode::FLEQH,
7787 Opcode::FLEQQ,
7788 Opcode::FLEQS,
7789 Opcode::FLH,
7790 Opcode::FLID,
7791 Opcode::FLIH,
7792 Opcode::FLIQ,
7793 Opcode::FLIS,
7794 Opcode::FLQ,
7795 Opcode::FLTD,
7796 Opcode::FLTH,
7797 Opcode::FLTQ,
7798 Opcode::FLTS,
7799 Opcode::FLTQD,
7800 Opcode::FLTQH,
7801 Opcode::FLTQQ,
7802 Opcode::FLTQS,
7803 Opcode::FLW,
7804 Opcode::FMADDD,
7805 Opcode::FMADDH,
7806 Opcode::FMADDQ,
7807 Opcode::FMADDS,
7808 Opcode::FMAXD,
7809 Opcode::FMAXH,
7810 Opcode::FMAXQ,
7811 Opcode::FMAXS,
7812 Opcode::FMAXMD,
7813 Opcode::FMAXMH,
7814 Opcode::FMAXMQ,
7815 Opcode::FMAXMS,
7816 Opcode::FMIND,
7817 Opcode::FMINH,
7818 Opcode::FMINQ,
7819 Opcode::FMINS,
7820 Opcode::FMINMD,
7821 Opcode::FMINMH,
7822 Opcode::FMINMQ,
7823 Opcode::FMINMS,
7824 Opcode::FMSUBD,
7825 Opcode::FMSUBH,
7826 Opcode::FMSUBQ,
7827 Opcode::FMSUBS,
7828 Opcode::FMULD,
7829 Opcode::FMULH,
7830 Opcode::FMULQ,
7831 Opcode::FMULS,
7832 Opcode::FMVD,
7833 Opcode::FMVDX,
7834 Opcode::FMVH,
7835 Opcode::FMVHX,
7836 Opcode::FMVQ,
7837 Opcode::FMVS,
7838 Opcode::FMVSX,
7839 Opcode::FMVWX,
7840 Opcode::FMVXD,
7841 Opcode::FMVXH,
7842 Opcode::FMVXS,
7843 Opcode::FMVXW,
7844 Opcode::FMVHXD,
7845 Opcode::FMVHXQ,
7846 Opcode::FMVPDX,
7847 Opcode::FMVPQX,
7848 Opcode::FNEGD,
7849 Opcode::FNEGH,
7850 Opcode::FNEGQ,
7851 Opcode::FNEGS,
7852 Opcode::FNMADDD,
7853 Opcode::FNMADDH,
7854 Opcode::FNMADDQ,
7855 Opcode::FNMADDS,
7856 Opcode::FNMSUBD,
7857 Opcode::FNMSUBH,
7858 Opcode::FNMSUBQ,
7859 Opcode::FNMSUBS,
7860 Opcode::FRCSR,
7861 Opcode::FRFLAGS,
7862 Opcode::FROUNDD,
7863 Opcode::FROUNDH,
7864 Opcode::FROUNDQ,
7865 Opcode::FROUNDS,
7866 Opcode::FROUNDNXD,
7867 Opcode::FROUNDNXH,
7868 Opcode::FROUNDNXQ,
7869 Opcode::FROUNDNXS,
7870 Opcode::FRRM,
7871 Opcode::FSCSR,
7872 Opcode::FSD,
7873 Opcode::FSFLAGS,
7874 Opcode::FSFLAGSI,
7875 Opcode::FSGNJD,
7876 Opcode::FSGNJH,
7877 Opcode::FSGNJQ,
7878 Opcode::FSGNJS,
7879 Opcode::FSGNJND,
7880 Opcode::FSGNJNH,
7881 Opcode::FSGNJNQ,
7882 Opcode::FSGNJNS,
7883 Opcode::FSGNJXD,
7884 Opcode::FSGNJXH,
7885 Opcode::FSGNJXQ,
7886 Opcode::FSGNJXS,
7887 Opcode::FSH,
7888 Opcode::FSQ,
7889 Opcode::FSQRTD,
7890 Opcode::FSQRTH,
7891 Opcode::FSQRTQ,
7892 Opcode::FSQRTS,
7893 Opcode::FSRM,
7894 Opcode::FSRMI,
7895 Opcode::FSUBD,
7896 Opcode::FSUBH,
7897 Opcode::FSUBQ,
7898 Opcode::FSUBS,
7899 Opcode::FSW,
7900 Opcode::HFENCEGVMA,
7901 Opcode::HFENCEVVMA,
7902 Opcode::HINVALGVMA,
7903 Opcode::HINVALVVMA,
7904 Opcode::HLVB,
7905 Opcode::HLVBU,
7906 Opcode::HLVD,
7907 Opcode::HLVH,
7908 Opcode::HLVHU,
7909 Opcode::HLVW,
7910 Opcode::HLVWU,
7911 Opcode::HLVXHU,
7912 Opcode::HLVXWU,
7913 Opcode::HSVB,
7914 Opcode::HSVD,
7915 Opcode::HSVH,
7916 Opcode::HSVW,
7917 Opcode::J,
7918 Opcode::JAL,
7919 Opcode::JALPSEUDO,
7920 Opcode::JALR,
7921 Opcode::JALRPSEUDO,
7922 Opcode::JR,
7923 Opcode::LB,
7924 Opcode::LBU,
7925 Opcode::LD,
7926 Opcode::LH,
7927 Opcode::LHU,
7928 Opcode::LRD,
7929 Opcode::LRW,
7930 Opcode::LUI,
7931 Opcode::LW,
7932 Opcode::LWU,
7933 Opcode::MAX,
7934 Opcode::MAXU,
7935 Opcode::MIN,
7936 Opcode::MINU,
7937 Opcode::MOPR0,
7938 Opcode::MOPR1,
7939 Opcode::MOPR10,
7940 Opcode::MOPR11,
7941 Opcode::MOPR12,
7942 Opcode::MOPR13,
7943 Opcode::MOPR14,
7944 Opcode::MOPR15,
7945 Opcode::MOPR16,
7946 Opcode::MOPR17,
7947 Opcode::MOPR18,
7948 Opcode::MOPR19,
7949 Opcode::MOPR2,
7950 Opcode::MOPR20,
7951 Opcode::MOPR21,
7952 Opcode::MOPR22,
7953 Opcode::MOPR23,
7954 Opcode::MOPR24,
7955 Opcode::MOPR25,
7956 Opcode::MOPR26,
7957 Opcode::MOPR27,
7958 Opcode::MOPR28,
7959 Opcode::MOPR29,
7960 Opcode::MOPR3,
7961 Opcode::MOPR30,
7962 Opcode::MOPR31,
7963 Opcode::MOPR4,
7964 Opcode::MOPR5,
7965 Opcode::MOPR6,
7966 Opcode::MOPR7,
7967 Opcode::MOPR8,
7968 Opcode::MOPR9,
7969 Opcode::MOPRN,
7970 Opcode::MOPRR0,
7971 Opcode::MOPRR1,
7972 Opcode::MOPRR2,
7973 Opcode::MOPRR3,
7974 Opcode::MOPRR4,
7975 Opcode::MOPRR5,
7976 Opcode::MOPRR6,
7977 Opcode::MOPRR7,
7978 Opcode::MOPRRN,
7979 Opcode::MRET,
7980 Opcode::MUL,
7981 Opcode::MULH,
7982 Opcode::MULHSU,
7983 Opcode::MULHU,
7984 Opcode::MULW,
7985 Opcode::MV,
7986 Opcode::NEG,
7987 Opcode::NOP,
7988 Opcode::NTLALL,
7989 Opcode::NTLP1,
7990 Opcode::NTLPALL,
7991 Opcode::NTLS1,
7992 Opcode::OR,
7993 Opcode::ORCB,
7994 Opcode::ORI,
7995 Opcode::ORN,
7996 Opcode::PACK,
7997 Opcode::PACKH,
7998 Opcode::PACKW,
7999 Opcode::PAUSE,
8000 Opcode::PREFETCHI,
8001 Opcode::PREFETCHR,
8002 Opcode::PREFETCHW,
8003 Opcode::RDCYCLE,
8004 Opcode::RDCYCLEH,
8005 Opcode::RDINSTRET,
8006 Opcode::RDINSTRETH,
8007 Opcode::RDTIME,
8008 Opcode::RDTIMEH,
8009 Opcode::REM,
8010 Opcode::REMU,
8011 Opcode::REMUW,
8012 Opcode::REMW,
8013 Opcode::RET,
8014 Opcode::REV8,
8015 Opcode::REV8RV32,
8016 Opcode::ROL,
8017 Opcode::ROLW,
8018 Opcode::ROR,
8019 Opcode::RORI,
8020 Opcode::RORIRV32,
8021 Opcode::RORIW,
8022 Opcode::RORW,
8023 Opcode::SB,
8024 Opcode::SBREAK,
8025 Opcode::SCD,
8026 Opcode::SCW,
8027 Opcode::SCALL,
8028 Opcode::SD,
8029 Opcode::SEQZ,
8030 Opcode::SEXTB,
8031 Opcode::SEXTH,
8032 Opcode::SEXTW,
8033 Opcode::SFENCEINVALIR,
8034 Opcode::SFENCEVMA,
8035 Opcode::SFENCEWINVAL,
8036 Opcode::SGTZ,
8037 Opcode::SH,
8038 Opcode::SH1ADD,
8039 Opcode::SH1ADDUW,
8040 Opcode::SH2ADD,
8041 Opcode::SH2ADDUW,
8042 Opcode::SH3ADD,
8043 Opcode::SH3ADDUW,
8044 Opcode::SHA256SIG0,
8045 Opcode::SHA256SIG1,
8046 Opcode::SHA256SUM0,
8047 Opcode::SHA256SUM1,
8048 Opcode::SHA512SIG0,
8049 Opcode::SHA512SIG0H,
8050 Opcode::SHA512SIG0L,
8051 Opcode::SHA512SIG1,
8052 Opcode::SHA512SIG1H,
8053 Opcode::SHA512SIG1L,
8054 Opcode::SHA512SUM0,
8055 Opcode::SHA512SUM0R,
8056 Opcode::SHA512SUM1,
8057 Opcode::SHA512SUM1R,
8058 Opcode::SINVALVMA,
8059 Opcode::SLL,
8060 Opcode::SLLI,
8061 Opcode::SLLIRV32,
8062 Opcode::SLLIUW,
8063 Opcode::SLLIW,
8064 Opcode::SLLW,
8065 Opcode::SLT,
8066 Opcode::SLTI,
8067 Opcode::SLTIU,
8068 Opcode::SLTU,
8069 Opcode::SLTZ,
8070 Opcode::SM3P0,
8071 Opcode::SM3P1,
8072 Opcode::SM4ED,
8073 Opcode::SM4KS,
8074 Opcode::SNEZ,
8075 Opcode::SRA,
8076 Opcode::SRAI,
8077 Opcode::SRAIRV32,
8078 Opcode::SRAIW,
8079 Opcode::SRAW,
8080 Opcode::SRET,
8081 Opcode::SRL,
8082 Opcode::SRLI,
8083 Opcode::SRLIRV32,
8084 Opcode::SRLIW,
8085 Opcode::SRLW,
8086 Opcode::SUB,
8087 Opcode::SUBW,
8088 Opcode::SW,
8089 Opcode::UNZIP,
8090 Opcode::VAADDVV,
8091 Opcode::VAADDVX,
8092 Opcode::VAADDUVV,
8093 Opcode::VAADDUVX,
8094 Opcode::VADCVIM,
8095 Opcode::VADCVVM,
8096 Opcode::VADCVXM,
8097 Opcode::VADDVI,
8098 Opcode::VADDVV,
8099 Opcode::VADDVX,
8100 Opcode::VAESDFVS,
8101 Opcode::VAESDFVV,
8102 Opcode::VAESDMVS,
8103 Opcode::VAESDMVV,
8104 Opcode::VAESEFVS,
8105 Opcode::VAESEFVV,
8106 Opcode::VAESEMVS,
8107 Opcode::VAESEMVV,
8108 Opcode::VAESKF1VI,
8109 Opcode::VAESKF2VI,
8110 Opcode::VAESZVS,
8111 Opcode::VANDVI,
8112 Opcode::VANDVV,
8113 Opcode::VANDVX,
8114 Opcode::VANDNVV,
8115 Opcode::VANDNVX,
8116 Opcode::VASUBVV,
8117 Opcode::VASUBVX,
8118 Opcode::VASUBUVV,
8119 Opcode::VASUBUVX,
8120 Opcode::VBREV8V,
8121 Opcode::VBREVV,
8122 Opcode::VCLMULVV,
8123 Opcode::VCLMULVX,
8124 Opcode::VCLMULHVV,
8125 Opcode::VCLMULHVX,
8126 Opcode::VCLZV,
8127 Opcode::VCOMPRESSVM,
8128 Opcode::VCPOPM,
8129 Opcode::VCPOPV,
8130 Opcode::VCTZV,
8131 Opcode::VDIVVV,
8132 Opcode::VDIVVX,
8133 Opcode::VDIVUVV,
8134 Opcode::VDIVUVX,
8135 Opcode::VFADDVF,
8136 Opcode::VFADDVV,
8137 Opcode::VFCLASSV,
8138 Opcode::VFCVTFXV,
8139 Opcode::VFCVTFXUV,
8140 Opcode::VFCVTRTZXFV,
8141 Opcode::VFCVTRTZXUFV,
8142 Opcode::VFCVTXFV,
8143 Opcode::VFCVTXUFV,
8144 Opcode::VFDIVVF,
8145 Opcode::VFDIVVV,
8146 Opcode::VFIRSTM,
8147 Opcode::VFMACCVF,
8148 Opcode::VFMACCVV,
8149 Opcode::VFMADDVF,
8150 Opcode::VFMADDVV,
8151 Opcode::VFMAXVF,
8152 Opcode::VFMAXVV,
8153 Opcode::VFMERGEVFM,
8154 Opcode::VFMINVF,
8155 Opcode::VFMINVV,
8156 Opcode::VFMSACVF,
8157 Opcode::VFMSACVV,
8158 Opcode::VFMSUBVF,
8159 Opcode::VFMSUBVV,
8160 Opcode::VFMULVF,
8161 Opcode::VFMULVV,
8162 Opcode::VFMVFS,
8163 Opcode::VFMVSF,
8164 Opcode::VFMVVF,
8165 Opcode::VFNCVTFFW,
8166 Opcode::VFNCVTFXW,
8167 Opcode::VFNCVTFXUW,
8168 Opcode::VFNCVTRODFFW,
8169 Opcode::VFNCVTRTZXFW,
8170 Opcode::VFNCVTRTZXUFW,
8171 Opcode::VFNCVTXFW,
8172 Opcode::VFNCVTXUFW,
8173 Opcode::VFNMACCVF,
8174 Opcode::VFNMACCVV,
8175 Opcode::VFNMADDVF,
8176 Opcode::VFNMADDVV,
8177 Opcode::VFNMSACVF,
8178 Opcode::VFNMSACVV,
8179 Opcode::VFNMSUBVF,
8180 Opcode::VFNMSUBVV,
8181 Opcode::VFRDIVVF,
8182 Opcode::VFREC7V,
8183 Opcode::VFREDMAXVS,
8184 Opcode::VFREDMINVS,
8185 Opcode::VFREDOSUMVS,
8186 Opcode::VFREDSUMVS,
8187 Opcode::VFREDUSUMVS,
8188 Opcode::VFRSQRT7V,
8189 Opcode::VFRSUBVF,
8190 Opcode::VFSGNJVF,
8191 Opcode::VFSGNJVV,
8192 Opcode::VFSGNJNVF,
8193 Opcode::VFSGNJNVV,
8194 Opcode::VFSGNJXVF,
8195 Opcode::VFSGNJXVV,
8196 Opcode::VFSLIDE1DOWNVF,
8197 Opcode::VFSLIDE1UPVF,
8198 Opcode::VFSQRTV,
8199 Opcode::VFSUBVF,
8200 Opcode::VFSUBVV,
8201 Opcode::VFWADDVF,
8202 Opcode::VFWADDVV,
8203 Opcode::VFWADDWF,
8204 Opcode::VFWADDWV,
8205 Opcode::VFWCVTFFV,
8206 Opcode::VFWCVTFXV,
8207 Opcode::VFWCVTFXUV,
8208 Opcode::VFWCVTRTZXFV,
8209 Opcode::VFWCVTRTZXUFV,
8210 Opcode::VFWCVTXFV,
8211 Opcode::VFWCVTXUFV,
8212 Opcode::VFWMACCVF,
8213 Opcode::VFWMACCVV,
8214 Opcode::VFWMSACVF,
8215 Opcode::VFWMSACVV,
8216 Opcode::VFWMULVF,
8217 Opcode::VFWMULVV,
8218 Opcode::VFWNMACCVF,
8219 Opcode::VFWNMACCVV,
8220 Opcode::VFWNMSACVF,
8221 Opcode::VFWNMSACVV,
8222 Opcode::VFWREDOSUMVS,
8223 Opcode::VFWREDSUMVS,
8224 Opcode::VFWREDUSUMVS,
8225 Opcode::VFWSUBVF,
8226 Opcode::VFWSUBVV,
8227 Opcode::VFWSUBWF,
8228 Opcode::VFWSUBWV,
8229 Opcode::VGHSHVV,
8230 Opcode::VGMULVV,
8231 Opcode::VIDV,
8232 Opcode::VIOTAM,
8233 Opcode::VL1RV,
8234 Opcode::VL1RE16V,
8235 Opcode::VL1RE32V,
8236 Opcode::VL1RE64V,
8237 Opcode::VL1RE8V,
8238 Opcode::VL2RV,
8239 Opcode::VL2RE16V,
8240 Opcode::VL2RE32V,
8241 Opcode::VL2RE64V,
8242 Opcode::VL2RE8V,
8243 Opcode::VL4RV,
8244 Opcode::VL4RE16V,
8245 Opcode::VL4RE32V,
8246 Opcode::VL4RE64V,
8247 Opcode::VL4RE8V,
8248 Opcode::VL8RV,
8249 Opcode::VL8RE16V,
8250 Opcode::VL8RE32V,
8251 Opcode::VL8RE64V,
8252 Opcode::VL8RE8V,
8253 Opcode::VLE16V,
8254 Opcode::VLE16FFV,
8255 Opcode::VLE1V,
8256 Opcode::VLE32V,
8257 Opcode::VLE32FFV,
8258 Opcode::VLE64V,
8259 Opcode::VLE64FFV,
8260 Opcode::VLE8V,
8261 Opcode::VLE8FFV,
8262 Opcode::VLMV,
8263 Opcode::VLOXEI16V,
8264 Opcode::VLOXEI32V,
8265 Opcode::VLOXEI64V,
8266 Opcode::VLOXEI8V,
8267 Opcode::VLSE16V,
8268 Opcode::VLSE32V,
8269 Opcode::VLSE64V,
8270 Opcode::VLSE8V,
8271 Opcode::VLUXEI16V,
8272 Opcode::VLUXEI32V,
8273 Opcode::VLUXEI64V,
8274 Opcode::VLUXEI8V,
8275 Opcode::VMACCVV,
8276 Opcode::VMACCVX,
8277 Opcode::VMADCVI,
8278 Opcode::VMADCVIM,
8279 Opcode::VMADCVV,
8280 Opcode::VMADCVVM,
8281 Opcode::VMADCVX,
8282 Opcode::VMADCVXM,
8283 Opcode::VMADDVV,
8284 Opcode::VMADDVX,
8285 Opcode::VMANDMM,
8286 Opcode::VMANDNMM,
8287 Opcode::VMANDNOTMM,
8288 Opcode::VMAXVV,
8289 Opcode::VMAXVX,
8290 Opcode::VMAXUVV,
8291 Opcode::VMAXUVX,
8292 Opcode::VMERGEVIM,
8293 Opcode::VMERGEVVM,
8294 Opcode::VMERGEVXM,
8295 Opcode::VMFEQVF,
8296 Opcode::VMFEQVV,
8297 Opcode::VMFGEVF,
8298 Opcode::VMFGTVF,
8299 Opcode::VMFLEVF,
8300 Opcode::VMFLEVV,
8301 Opcode::VMFLTVF,
8302 Opcode::VMFLTVV,
8303 Opcode::VMFNEVF,
8304 Opcode::VMFNEVV,
8305 Opcode::VMINVV,
8306 Opcode::VMINVX,
8307 Opcode::VMINUVV,
8308 Opcode::VMINUVX,
8309 Opcode::VMNANDMM,
8310 Opcode::VMNORMM,
8311 Opcode::VMORMM,
8312 Opcode::VMORNMM,
8313 Opcode::VMORNOTMM,
8314 Opcode::VMSBCVV,
8315 Opcode::VMSBCVVM,
8316 Opcode::VMSBCVX,
8317 Opcode::VMSBCVXM,
8318 Opcode::VMSBFM,
8319 Opcode::VMSEQVI,
8320 Opcode::VMSEQVV,
8321 Opcode::VMSEQVX,
8322 Opcode::VMSGTVI,
8323 Opcode::VMSGTVX,
8324 Opcode::VMSGTUVI,
8325 Opcode::VMSGTUVX,
8326 Opcode::VMSIFM,
8327 Opcode::VMSLEVI,
8328 Opcode::VMSLEVV,
8329 Opcode::VMSLEVX,
8330 Opcode::VMSLEUVI,
8331 Opcode::VMSLEUVV,
8332 Opcode::VMSLEUVX,
8333 Opcode::VMSLTVV,
8334 Opcode::VMSLTVX,
8335 Opcode::VMSLTUVV,
8336 Opcode::VMSLTUVX,
8337 Opcode::VMSNEVI,
8338 Opcode::VMSNEVV,
8339 Opcode::VMSNEVX,
8340 Opcode::VMSOFM,
8341 Opcode::VMULVV,
8342 Opcode::VMULVX,
8343 Opcode::VMULHVV,
8344 Opcode::VMULHVX,
8345 Opcode::VMULHSUVV,
8346 Opcode::VMULHSUVX,
8347 Opcode::VMULHUVV,
8348 Opcode::VMULHUVX,
8349 Opcode::VMV1RV,
8350 Opcode::VMV2RV,
8351 Opcode::VMV4RV,
8352 Opcode::VMV8RV,
8353 Opcode::VMVSX,
8354 Opcode::VMVVI,
8355 Opcode::VMVVV,
8356 Opcode::VMVVX,
8357 Opcode::VMVXS,
8358 Opcode::VMXNORMM,
8359 Opcode::VMXORMM,
8360 Opcode::VNCLIPWI,
8361 Opcode::VNCLIPWV,
8362 Opcode::VNCLIPWX,
8363 Opcode::VNCLIPUWI,
8364 Opcode::VNCLIPUWV,
8365 Opcode::VNCLIPUWX,
8366 Opcode::VNMSACVV,
8367 Opcode::VNMSACVX,
8368 Opcode::VNMSUBVV,
8369 Opcode::VNMSUBVX,
8370 Opcode::VNSRAWI,
8371 Opcode::VNSRAWV,
8372 Opcode::VNSRAWX,
8373 Opcode::VNSRLWI,
8374 Opcode::VNSRLWV,
8375 Opcode::VNSRLWX,
8376 Opcode::VORVI,
8377 Opcode::VORVV,
8378 Opcode::VORVX,
8379 Opcode::VPOPCM,
8380 Opcode::VREDANDVS,
8381 Opcode::VREDMAXVS,
8382 Opcode::VREDMAXUVS,
8383 Opcode::VREDMINVS,
8384 Opcode::VREDMINUVS,
8385 Opcode::VREDORVS,
8386 Opcode::VREDSUMVS,
8387 Opcode::VREDXORVS,
8388 Opcode::VREMVV,
8389 Opcode::VREMVX,
8390 Opcode::VREMUVV,
8391 Opcode::VREMUVX,
8392 Opcode::VREV8V,
8393 Opcode::VRGATHERVI,
8394 Opcode::VRGATHERVV,
8395 Opcode::VRGATHERVX,
8396 Opcode::VRGATHEREI16VV,
8397 Opcode::VROLVV,
8398 Opcode::VROLVX,
8399 Opcode::VRORVI,
8400 Opcode::VRORVV,
8401 Opcode::VRORVX,
8402 Opcode::VRSUBVI,
8403 Opcode::VRSUBVX,
8404 Opcode::VS1RV,
8405 Opcode::VS2RV,
8406 Opcode::VS4RV,
8407 Opcode::VS8RV,
8408 Opcode::VSADDVI,
8409 Opcode::VSADDVV,
8410 Opcode::VSADDVX,
8411 Opcode::VSADDUVI,
8412 Opcode::VSADDUVV,
8413 Opcode::VSADDUVX,
8414 Opcode::VSBCVVM,
8415 Opcode::VSBCVXM,
8416 Opcode::VSE16V,
8417 Opcode::VSE1V,
8418 Opcode::VSE32V,
8419 Opcode::VSE64V,
8420 Opcode::VSE8V,
8421 Opcode::VSETIVLI,
8422 Opcode::VSETVL,
8423 Opcode::VSETVLI,
8424 Opcode::VSEXTVF2,
8425 Opcode::VSEXTVF4,
8426 Opcode::VSEXTVF8,
8427 Opcode::VSHA2CHVV,
8428 Opcode::VSHA2CLVV,
8429 Opcode::VSHA2MSVV,
8430 Opcode::VSLIDE1DOWNVX,
8431 Opcode::VSLIDE1UPVX,
8432 Opcode::VSLIDEDOWNVI,
8433 Opcode::VSLIDEDOWNVX,
8434 Opcode::VSLIDEUPVI,
8435 Opcode::VSLIDEUPVX,
8436 Opcode::VSLLVI,
8437 Opcode::VSLLVV,
8438 Opcode::VSLLVX,
8439 Opcode::VSM3CVI,
8440 Opcode::VSM3MEVV,
8441 Opcode::VSM4KVI,
8442 Opcode::VSM4RVS,
8443 Opcode::VSM4RVV,
8444 Opcode::VSMV,
8445 Opcode::VSMULVV,
8446 Opcode::VSMULVX,
8447 Opcode::VSOXEI16V,
8448 Opcode::VSOXEI32V,
8449 Opcode::VSOXEI64V,
8450 Opcode::VSOXEI8V,
8451 Opcode::VSRAVI,
8452 Opcode::VSRAVV,
8453 Opcode::VSRAVX,
8454 Opcode::VSRLVI,
8455 Opcode::VSRLVV,
8456 Opcode::VSRLVX,
8457 Opcode::VSSE16V,
8458 Opcode::VSSE32V,
8459 Opcode::VSSE64V,
8460 Opcode::VSSE8V,
8461 Opcode::VSSRAVI,
8462 Opcode::VSSRAVV,
8463 Opcode::VSSRAVX,
8464 Opcode::VSSRLVI,
8465 Opcode::VSSRLVV,
8466 Opcode::VSSRLVX,
8467 Opcode::VSSUBVV,
8468 Opcode::VSSUBVX,
8469 Opcode::VSSUBUVV,
8470 Opcode::VSSUBUVX,
8471 Opcode::VSUBVV,
8472 Opcode::VSUBVX,
8473 Opcode::VSUXEI16V,
8474 Opcode::VSUXEI32V,
8475 Opcode::VSUXEI64V,
8476 Opcode::VSUXEI8V,
8477 Opcode::VWADDVV,
8478 Opcode::VWADDVX,
8479 Opcode::VWADDWV,
8480 Opcode::VWADDWX,
8481 Opcode::VWADDUVV,
8482 Opcode::VWADDUVX,
8483 Opcode::VWADDUWV,
8484 Opcode::VWADDUWX,
8485 Opcode::VWMACCVV,
8486 Opcode::VWMACCVX,
8487 Opcode::VWMACCSUVV,
8488 Opcode::VWMACCSUVX,
8489 Opcode::VWMACCUVV,
8490 Opcode::VWMACCUVX,
8491 Opcode::VWMACCUSVX,
8492 Opcode::VWMULVV,
8493 Opcode::VWMULVX,
8494 Opcode::VWMULSUVV,
8495 Opcode::VWMULSUVX,
8496 Opcode::VWMULUVV,
8497 Opcode::VWMULUVX,
8498 Opcode::VWREDSUMVS,
8499 Opcode::VWREDSUMUVS,
8500 Opcode::VWSLLVI,
8501 Opcode::VWSLLVV,
8502 Opcode::VWSLLVX,
8503 Opcode::VWSUBVV,
8504 Opcode::VWSUBVX,
8505 Opcode::VWSUBWV,
8506 Opcode::VWSUBWX,
8507 Opcode::VWSUBUVV,
8508 Opcode::VWSUBUVX,
8509 Opcode::VWSUBUWV,
8510 Opcode::VWSUBUWX,
8511 Opcode::VXORVI,
8512 Opcode::VXORVV,
8513 Opcode::VXORVX,
8514 Opcode::VZEXTVF2,
8515 Opcode::VZEXTVF4,
8516 Opcode::VZEXTVF8,
8517 Opcode::WFI,
8518 Opcode::WRSNTO,
8519 Opcode::WRSSTO,
8520 Opcode::XNOR,
8521 Opcode::XOR,
8522 Opcode::XORI,
8523 Opcode::XPERM4,
8524 Opcode::XPERM8,
8525 Opcode::ZEXTB,
8526 Opcode::ZEXTH,
8527 Opcode::ZEXTHRV32,
8528 Opcode::ZEXTW,
8529 Opcode::ZIP,
8530];
8531pub static SHORT_OPCODE: [bool; 1021] = [
8532 false, false, false, false, false, false, false, false, false, false, false, false, false,
8533 false, false, false, false, false, false, false, false, false, false, false, false, false,
8534 false, false, false, false, false, false, false, false, false, false, false, false, false,
8535 false, false, false, false, false, false, false, false, false, false, false, false, false,
8536 false, false, false, false, false, false, false, false, false, false, false, false, false,
8537 false, false, false, false, false, false, false, false, false, false, false, false, false,
8538 false, false, false, false, false, false, false, false, false, false, false, false, true, true,
8539 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8540 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8541 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8542 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8543 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8544 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
8545 true, true, true, true, true, true, true, true, false, false, false, false, false, false,
8546 false, false, false, false, false, false, false, false, false, false, false, false, false,
8547 false, false, false, false, false, false, false, false, false, false, false, false, false,
8548 false, false, false, false, false, false, false, false, false, false, false, false, false,
8549 false, false, false, false, false, false, false, false, false, false, false, false, false,
8550 false, false, false, false, false, false, false, false, false, false, false, false, false,
8551 false, false, false, false, false, false, false, false, false, false, false, false, false,
8552 false, false, false, false, false, false, false, false, false, false, false, false, false,
8553 false, false, false, false, false, false, false, false, false, false, false, false, false,
8554 false, false, false, false, false, false, false, false, false, false, false, false, false,
8555 false, false, false, false, false, false, false, false, false, false, false, false, false,
8556 false, false, false, false, false, false, false, false, false, false, false, false, false,
8557 false, false, false, false, false, false, false, false, false, false, false, false, false,
8558 false, false, false, false, false, false, false, false, false, false, false, false, false,
8559 false, false, false, false, false, false, false, false, false, false, false, false, false,
8560 false, false, false, false, false, false, false, false, false, false, false, false, false,
8561 false, false, false, false, false, false, false, false, false, false, false, false, false,
8562 false, false, false, false, false, false, false, false, false, false, false, false, false,
8563 false, false, false, false, false, false, false, false, false, false, false, false, false,
8564 false, false, false, false, false, false, false, false, false, false, false, false, false,
8565 false, false, false, false, false, false, false, false, false, false, false, false, false,
8566 false, false, false, false, false, false, false, false, false, false, false, false, false,
8567 false, false, false, false, false, false, false, false, false, false, false, false, false,
8568 false, false, false, false, false, false, false, false, false, false, false, false, false,
8569 false, false, false, false, false, false, false, false, false, false, false, false, false,
8570 false, false, false, false, false, false, false, false, false, false, false, false, false,
8571 false, false, false, false, false, false, false, false, false, false, false, false, false,
8572 false, false, false, false, false, false, false, false, false, false, false, false, false,
8573 false, false, false, false, false, false, false, false, false, false, false, false, false,
8574 false, false, false, false, false, false, false, false, false, false, false, false, false,
8575 false, false, false, false, false, false, false, false, false, false, false, false, false,
8576 false, false, false, false, false, false, false, false, false, false, false, false, false,
8577 false, false, false, false, false, false, false, false, false, false, false, false, false,
8578 false, false, false, false, false, false, false, false, false, false, false, false, false,
8579 false, false, false, false, false, false, false, false, false, false, false, false, false,
8580 false, false, false, false, false, false, false, false, false, false, false, false, false,
8581 false, false, false, false, false, false, false, false, false, false, false, false, false,
8582 false, false, false, false, false, false, false, false, false, false, false, false, false,
8583 false, false, false, false, false, false, false, false, false, false, false, false, false,
8584 false, false, false, false, false, false, false, false, false, false, false, false, false,
8585 false, false, false, false, false, false, false, false, false, false, false, false, false,
8586 false, false, false, false, false, false, false, false, false, false, false, false, false,
8587 false, false, false, false, false, false, false, false, false, false, false, false, false,
8588 false, false, false, false, false, false, false, false, false, false, false, false, false,
8589 false, false, false, false, false, false, false, false, false, false, false, false, false,
8590 false, false, false, false, false, false, false, false, false, false, false, false, false,
8591 false, false, false, false, false, false, false, false, false, false, false, false, false,
8592 false, false, false, false, false, false, false, false, false, false, false, false, false,
8593 false, false, false, false, false, false, false, false, false, false, false, false, false,
8594 false, false, false, false, false, false, false, false, false, false, false, false, false,
8595 false, false, false, false, false, false, false, false, false, false, false, false, false,
8596 false, false, false, false, false, false, false, false, false, false, false, false, false,
8597 false, false, false, false, false, false, false, false, false, false, false, false, false,
8598 false, false, false, false, false, false, false, false, false, false, false, false, false,
8599 false, false, false, false, false, false, false, false, false, false, false, false, false,
8600 false, false, false, false, false, false, false, false, false, false, false, false, false,
8601 false, false, false, false, false, false, false, false, false, false, false, false, false,
8602 false, false, false, false, false, false, false, false, false, false, false, false, false,
8603 false, false, false, false, false, false, false, false, false, false, false, false, false,
8604 false, false, false, false, false, false, false, false, false, false, false, false, false,
8605 false, false, false, false, false, false, false, false, false, false, false, false, false,
8606 false, false, false, false, false, false, false, false, false, false, false, false, false,
8607 false, false, false, false, false, false, false, false, false, false, false, false, false,
8608 false, false, false, false, false, false, false, false, false, false, false, false, false,
8609];
8610pub const SHORT_OPCODES: [Opcode; 106] = [
8611 Opcode::CADD,
8612 Opcode::CADDI,
8613 Opcode::CADDI16SP,
8614 Opcode::CADDI4SPN,
8615 Opcode::CADDIW,
8616 Opcode::CADDW,
8617 Opcode::CAND,
8618 Opcode::CANDI,
8619 Opcode::CBEQZ,
8620 Opcode::CBNEZ,
8621 Opcode::CEBREAK,
8622 Opcode::CFLD,
8623 Opcode::CFLDSP,
8624 Opcode::CFLW,
8625 Opcode::CFLWSP,
8626 Opcode::CFSD,
8627 Opcode::CFSDSP,
8628 Opcode::CFSW,
8629 Opcode::CFSWSP,
8630 Opcode::CJ,
8631 Opcode::CJAL,
8632 Opcode::CJALR,
8633 Opcode::CJR,
8634 Opcode::CLBU,
8635 Opcode::CLD,
8636 Opcode::CLDSP,
8637 Opcode::CLH,
8638 Opcode::CLHU,
8639 Opcode::CLI,
8640 Opcode::CLUI,
8641 Opcode::CLW,
8642 Opcode::CLWSP,
8643 Opcode::CMOP1,
8644 Opcode::CMOP11,
8645 Opcode::CMOP13,
8646 Opcode::CMOP15,
8647 Opcode::CMOP3,
8648 Opcode::CMOP5,
8649 Opcode::CMOP7,
8650 Opcode::CMOP9,
8651 Opcode::CMOPN,
8652 Opcode::CMUL,
8653 Opcode::CMV,
8654 Opcode::CNOP,
8655 Opcode::CNOT,
8656 Opcode::CNTLALL,
8657 Opcode::CNTLP1,
8658 Opcode::CNTLPALL,
8659 Opcode::CNTLS1,
8660 Opcode::COR,
8661 Opcode::CSB,
8662 Opcode::CSD,
8663 Opcode::CSDSP,
8664 Opcode::CSEXTB,
8665 Opcode::CSEXTH,
8666 Opcode::CSEXTW,
8667 Opcode::CSH,
8668 Opcode::CSLLI,
8669 Opcode::CSLLIRV32,
8670 Opcode::CSRAI,
8671 Opcode::CSRAIRV32,
8672 Opcode::CSRLI,
8673 Opcode::CSRLIRV32,
8674 Opcode::CSUB,
8675 Opcode::CSUBW,
8676 Opcode::CSW,
8677 Opcode::CSWSP,
8678 Opcode::CXOR,
8679 Opcode::CZEXTB,
8680 Opcode::CZEXTH,
8681 Opcode::CZEXTW,
8682 Opcode::CBOCLEAN,
8683 Opcode::CBOFLUSH,
8684 Opcode::CBOINVAL,
8685 Opcode::CBOZERO,
8686 Opcode::CLMUL,
8687 Opcode::CLMULH,
8688 Opcode::CLMULR,
8689 Opcode::CLZ,
8690 Opcode::CLZW,
8691 Opcode::CMJALT,
8692 Opcode::CMMVA01S,
8693 Opcode::CMMVSA01,
8694 Opcode::CMPOP,
8695 Opcode::CMPOPRET,
8696 Opcode::CMPOPRETZ,
8697 Opcode::CMPUSH,
8698 Opcode::CPOP,
8699 Opcode::CPOPW,
8700 Opcode::CSRC,
8701 Opcode::CSRCI,
8702 Opcode::CSRR,
8703 Opcode::CSRRC,
8704 Opcode::CSRRCI,
8705 Opcode::CSRRS,
8706 Opcode::CSRRSI,
8707 Opcode::CSRRW,
8708 Opcode::CSRRWI,
8709 Opcode::CSRS,
8710 Opcode::CSRSI,
8711 Opcode::CSRW,
8712 Opcode::CSRWI,
8713 Opcode::CTZ,
8714 Opcode::CTZW,
8715 Opcode::CZEROEQZ,
8716 Opcode::CZERONEZ,
8717];
8718
8719#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
8720#[repr(u32)]
8721pub enum Opcode {
8722 ADD,
8723 ADDUW,
8724 ADDI,
8725 ADDIW,
8726 ADDW,
8727 AES32DSI,
8728 AES32DSMI,
8729 AES32ESI,
8730 AES32ESMI,
8731 AES64DS,
8732 AES64DSM,
8733 AES64ES,
8734 AES64ESM,
8735 AES64IM,
8736 AES64KS1I,
8737 AES64KS2,
8738 AMOADDB,
8739 AMOADDD,
8740 AMOADDH,
8741 AMOADDW,
8742 AMOANDB,
8743 AMOANDD,
8744 AMOANDH,
8745 AMOANDW,
8746 AMOCASB,
8747 AMOCASD,
8748 AMOCASH,
8749 AMOCASQ,
8750 AMOCASW,
8751 AMOMAXB,
8752 AMOMAXD,
8753 AMOMAXH,
8754 AMOMAXW,
8755 AMOMAXUB,
8756 AMOMAXUD,
8757 AMOMAXUH,
8758 AMOMAXUW,
8759 AMOMINB,
8760 AMOMIND,
8761 AMOMINH,
8762 AMOMINW,
8763 AMOMINUB,
8764 AMOMINUD,
8765 AMOMINUH,
8766 AMOMINUW,
8767 AMOORB,
8768 AMOORD,
8769 AMOORH,
8770 AMOORW,
8771 AMOSWAPB,
8772 AMOSWAPD,
8773 AMOSWAPH,
8774 AMOSWAPW,
8775 AMOXORB,
8776 AMOXORD,
8777 AMOXORH,
8778 AMOXORW,
8779 AND,
8780 ANDI,
8781 ANDN,
8782 AUIPC,
8783 BCLR,
8784 BCLRI,
8785 BCLRIRV32,
8786 BEQ,
8787 BEQZ,
8788 BEXT,
8789 BEXTI,
8790 BEXTIRV32,
8791 BGE,
8792 BGEU,
8793 BGEZ,
8794 BGT,
8795 BGTU,
8796 BGTZ,
8797 BINV,
8798 BINVI,
8799 BINVIRV32,
8800 BLE,
8801 BLEU,
8802 BLEZ,
8803 BLT,
8804 BLTU,
8805 BLTZ,
8806 BNE,
8807 BNEZ,
8808 BREV8,
8809 BSET,
8810 BSETI,
8811 BSETIRV32,
8812 CADD,
8813 CADDI,
8814 CADDI16SP,
8815 CADDI4SPN,
8816 CADDIW,
8817 CADDW,
8818 CAND,
8819 CANDI,
8820 CBEQZ,
8821 CBNEZ,
8822 CEBREAK,
8823 CFLD,
8824 CFLDSP,
8825 CFLW,
8826 CFLWSP,
8827 CFSD,
8828 CFSDSP,
8829 CFSW,
8830 CFSWSP,
8831 CJ,
8832 CJAL,
8833 CJALR,
8834 CJR,
8835 CLBU,
8836 CLD,
8837 CLDSP,
8838 CLH,
8839 CLHU,
8840 CLI,
8841 CLUI,
8842 CLW,
8843 CLWSP,
8844 CMOP1,
8845 CMOP11,
8846 CMOP13,
8847 CMOP15,
8848 CMOP3,
8849 CMOP5,
8850 CMOP7,
8851 CMOP9,
8852 CMOPN,
8853 CMUL,
8854 CMV,
8855 CNOP,
8856 CNOT,
8857 CNTLALL,
8858 CNTLP1,
8859 CNTLPALL,
8860 CNTLS1,
8861 COR,
8862 CSB,
8863 CSD,
8864 CSDSP,
8865 CSEXTB,
8866 CSEXTH,
8867 CSEXTW,
8868 CSH,
8869 CSLLI,
8870 CSLLIRV32,
8871 CSRAI,
8872 CSRAIRV32,
8873 CSRLI,
8874 CSRLIRV32,
8875 CSUB,
8876 CSUBW,
8877 CSW,
8878 CSWSP,
8879 CXOR,
8880 CZEXTB,
8881 CZEXTH,
8882 CZEXTW,
8883 CBOCLEAN,
8884 CBOFLUSH,
8885 CBOINVAL,
8886 CBOZERO,
8887 CLMUL,
8888 CLMULH,
8889 CLMULR,
8890 CLZ,
8891 CLZW,
8892 CMJALT,
8893 CMMVA01S,
8894 CMMVSA01,
8895 CMPOP,
8896 CMPOPRET,
8897 CMPOPRETZ,
8898 CMPUSH,
8899 CPOP,
8900 CPOPW,
8901 CSRC,
8902 CSRCI,
8903 CSRR,
8904 CSRRC,
8905 CSRRCI,
8906 CSRRS,
8907 CSRRSI,
8908 CSRRW,
8909 CSRRWI,
8910 CSRS,
8911 CSRSI,
8912 CSRW,
8913 CSRWI,
8914 CTZ,
8915 CTZW,
8916 CZEROEQZ,
8917 CZERONEZ,
8918 DIV,
8919 DIVU,
8920 DIVUW,
8921 DIVW,
8922 DRET,
8923 EBREAK,
8924 ECALL,
8925 FABSD,
8926 FABSH,
8927 FABSQ,
8928 FABSS,
8929 FADDD,
8930 FADDH,
8931 FADDQ,
8932 FADDS,
8933 FCLASSD,
8934 FCLASSH,
8935 FCLASSQ,
8936 FCLASSS,
8937 FCVTDH,
8938 FCVTDL,
8939 FCVTDLU,
8940 FCVTDQ,
8941 FCVTDS,
8942 FCVTDW,
8943 FCVTDWU,
8944 FCVTHD,
8945 FCVTHL,
8946 FCVTHLU,
8947 FCVTHQ,
8948 FCVTHS,
8949 FCVTHW,
8950 FCVTHWU,
8951 FCVTLD,
8952 FCVTLH,
8953 FCVTLQ,
8954 FCVTLS,
8955 FCVTLUD,
8956 FCVTLUH,
8957 FCVTLUQ,
8958 FCVTLUS,
8959 FCVTQD,
8960 FCVTQH,
8961 FCVTQL,
8962 FCVTQLU,
8963 FCVTQS,
8964 FCVTQW,
8965 FCVTQWU,
8966 FCVTSD,
8967 FCVTSH,
8968 FCVTSL,
8969 FCVTSLU,
8970 FCVTSQ,
8971 FCVTSW,
8972 FCVTSWU,
8973 FCVTWD,
8974 FCVTWH,
8975 FCVTWQ,
8976 FCVTWS,
8977 FCVTWUD,
8978 FCVTWUH,
8979 FCVTWUQ,
8980 FCVTWUS,
8981 FCVTMODWD,
8982 FDIVD,
8983 FDIVH,
8984 FDIVQ,
8985 FDIVS,
8986 FENCE,
8987 FENCEI,
8988 FENCETSO,
8989 FEQD,
8990 FEQH,
8991 FEQQ,
8992 FEQS,
8993 FLD,
8994 FLED,
8995 FLEH,
8996 FLEQ,
8997 FLES,
8998 FLEQD,
8999 FLEQH,
9000 FLEQQ,
9001 FLEQS,
9002 FLH,
9003 FLID,
9004 FLIH,
9005 FLIQ,
9006 FLIS,
9007 FLQ,
9008 FLTD,
9009 FLTH,
9010 FLTQ,
9011 FLTS,
9012 FLTQD,
9013 FLTQH,
9014 FLTQQ,
9015 FLTQS,
9016 FLW,
9017 FMADDD,
9018 FMADDH,
9019 FMADDQ,
9020 FMADDS,
9021 FMAXD,
9022 FMAXH,
9023 FMAXQ,
9024 FMAXS,
9025 FMAXMD,
9026 FMAXMH,
9027 FMAXMQ,
9028 FMAXMS,
9029 FMIND,
9030 FMINH,
9031 FMINQ,
9032 FMINS,
9033 FMINMD,
9034 FMINMH,
9035 FMINMQ,
9036 FMINMS,
9037 FMSUBD,
9038 FMSUBH,
9039 FMSUBQ,
9040 FMSUBS,
9041 FMULD,
9042 FMULH,
9043 FMULQ,
9044 FMULS,
9045 FMVD,
9046 FMVDX,
9047 FMVH,
9048 FMVHX,
9049 FMVQ,
9050 FMVS,
9051 FMVSX,
9052 FMVWX,
9053 FMVXD,
9054 FMVXH,
9055 FMVXS,
9056 FMVXW,
9057 FMVHXD,
9058 FMVHXQ,
9059 FMVPDX,
9060 FMVPQX,
9061 FNEGD,
9062 FNEGH,
9063 FNEGQ,
9064 FNEGS,
9065 FNMADDD,
9066 FNMADDH,
9067 FNMADDQ,
9068 FNMADDS,
9069 FNMSUBD,
9070 FNMSUBH,
9071 FNMSUBQ,
9072 FNMSUBS,
9073 FRCSR,
9074 FRFLAGS,
9075 FROUNDD,
9076 FROUNDH,
9077 FROUNDQ,
9078 FROUNDS,
9079 FROUNDNXD,
9080 FROUNDNXH,
9081 FROUNDNXQ,
9082 FROUNDNXS,
9083 FRRM,
9084 FSCSR,
9085 FSD,
9086 FSFLAGS,
9087 FSFLAGSI,
9088 FSGNJD,
9089 FSGNJH,
9090 FSGNJQ,
9091 FSGNJS,
9092 FSGNJND,
9093 FSGNJNH,
9094 FSGNJNQ,
9095 FSGNJNS,
9096 FSGNJXD,
9097 FSGNJXH,
9098 FSGNJXQ,
9099 FSGNJXS,
9100 FSH,
9101 FSQ,
9102 FSQRTD,
9103 FSQRTH,
9104 FSQRTQ,
9105 FSQRTS,
9106 FSRM,
9107 FSRMI,
9108 FSUBD,
9109 FSUBH,
9110 FSUBQ,
9111 FSUBS,
9112 FSW,
9113 HFENCEGVMA,
9114 HFENCEVVMA,
9115 HINVALGVMA,
9116 HINVALVVMA,
9117 HLVB,
9118 HLVBU,
9119 HLVD,
9120 HLVH,
9121 HLVHU,
9122 HLVW,
9123 HLVWU,
9124 HLVXHU,
9125 HLVXWU,
9126 HSVB,
9127 HSVD,
9128 HSVH,
9129 HSVW,
9130 J,
9131 JAL,
9132 JALPSEUDO,
9133 JALR,
9134 JALRPSEUDO,
9135 JR,
9136 LB,
9137 LBU,
9138 LD,
9139 LH,
9140 LHU,
9141 LRD,
9142 LRW,
9143 LUI,
9144 LW,
9145 LWU,
9146 MAX,
9147 MAXU,
9148 MIN,
9149 MINU,
9150 MOPR0,
9151 MOPR1,
9152 MOPR10,
9153 MOPR11,
9154 MOPR12,
9155 MOPR13,
9156 MOPR14,
9157 MOPR15,
9158 MOPR16,
9159 MOPR17,
9160 MOPR18,
9161 MOPR19,
9162 MOPR2,
9163 MOPR20,
9164 MOPR21,
9165 MOPR22,
9166 MOPR23,
9167 MOPR24,
9168 MOPR25,
9169 MOPR26,
9170 MOPR27,
9171 MOPR28,
9172 MOPR29,
9173 MOPR3,
9174 MOPR30,
9175 MOPR31,
9176 MOPR4,
9177 MOPR5,
9178 MOPR6,
9179 MOPR7,
9180 MOPR8,
9181 MOPR9,
9182 MOPRN,
9183 MOPRR0,
9184 MOPRR1,
9185 MOPRR2,
9186 MOPRR3,
9187 MOPRR4,
9188 MOPRR5,
9189 MOPRR6,
9190 MOPRR7,
9191 MOPRRN,
9192 MRET,
9193 MUL,
9194 MULH,
9195 MULHSU,
9196 MULHU,
9197 MULW,
9198 MV,
9199 NEG,
9200 NOP,
9201 NTLALL,
9202 NTLP1,
9203 NTLPALL,
9204 NTLS1,
9205 OR,
9206 ORCB,
9207 ORI,
9208 ORN,
9209 PACK,
9210 PACKH,
9211 PACKW,
9212 PAUSE,
9213 PREFETCHI,
9214 PREFETCHR,
9215 PREFETCHW,
9216 RDCYCLE,
9217 RDCYCLEH,
9218 RDINSTRET,
9219 RDINSTRETH,
9220 RDTIME,
9221 RDTIMEH,
9222 REM,
9223 REMU,
9224 REMUW,
9225 REMW,
9226 RET,
9227 REV8,
9228 REV8RV32,
9229 ROL,
9230 ROLW,
9231 ROR,
9232 RORI,
9233 RORIRV32,
9234 RORIW,
9235 RORW,
9236 SB,
9237 SBREAK,
9238 SCD,
9239 SCW,
9240 SCALL,
9241 SD,
9242 SEQZ,
9243 SEXTB,
9244 SEXTH,
9245 SEXTW,
9246 SFENCEINVALIR,
9247 SFENCEVMA,
9248 SFENCEWINVAL,
9249 SGTZ,
9250 SH,
9251 SH1ADD,
9252 SH1ADDUW,
9253 SH2ADD,
9254 SH2ADDUW,
9255 SH3ADD,
9256 SH3ADDUW,
9257 SHA256SIG0,
9258 SHA256SIG1,
9259 SHA256SUM0,
9260 SHA256SUM1,
9261 SHA512SIG0,
9262 SHA512SIG0H,
9263 SHA512SIG0L,
9264 SHA512SIG1,
9265 SHA512SIG1H,
9266 SHA512SIG1L,
9267 SHA512SUM0,
9268 SHA512SUM0R,
9269 SHA512SUM1,
9270 SHA512SUM1R,
9271 SINVALVMA,
9272 SLL,
9273 SLLI,
9274 SLLIRV32,
9275 SLLIUW,
9276 SLLIW,
9277 SLLW,
9278 SLT,
9279 SLTI,
9280 SLTIU,
9281 SLTU,
9282 SLTZ,
9283 SM3P0,
9284 SM3P1,
9285 SM4ED,
9286 SM4KS,
9287 SNEZ,
9288 SRA,
9289 SRAI,
9290 SRAIRV32,
9291 SRAIW,
9292 SRAW,
9293 SRET,
9294 SRL,
9295 SRLI,
9296 SRLIRV32,
9297 SRLIW,
9298 SRLW,
9299 SUB,
9300 SUBW,
9301 SW,
9302 UNZIP,
9303 VAADDVV,
9304 VAADDVX,
9305 VAADDUVV,
9306 VAADDUVX,
9307 VADCVIM,
9308 VADCVVM,
9309 VADCVXM,
9310 VADDVI,
9311 VADDVV,
9312 VADDVX,
9313 VAESDFVS,
9314 VAESDFVV,
9315 VAESDMVS,
9316 VAESDMVV,
9317 VAESEFVS,
9318 VAESEFVV,
9319 VAESEMVS,
9320 VAESEMVV,
9321 VAESKF1VI,
9322 VAESKF2VI,
9323 VAESZVS,
9324 VANDVI,
9325 VANDVV,
9326 VANDVX,
9327 VANDNVV,
9328 VANDNVX,
9329 VASUBVV,
9330 VASUBVX,
9331 VASUBUVV,
9332 VASUBUVX,
9333 VBREV8V,
9334 VBREVV,
9335 VCLMULVV,
9336 VCLMULVX,
9337 VCLMULHVV,
9338 VCLMULHVX,
9339 VCLZV,
9340 VCOMPRESSVM,
9341 VCPOPM,
9342 VCPOPV,
9343 VCTZV,
9344 VDIVVV,
9345 VDIVVX,
9346 VDIVUVV,
9347 VDIVUVX,
9348 VFADDVF,
9349 VFADDVV,
9350 VFCLASSV,
9351 VFCVTFXV,
9352 VFCVTFXUV,
9353 VFCVTRTZXFV,
9354 VFCVTRTZXUFV,
9355 VFCVTXFV,
9356 VFCVTXUFV,
9357 VFDIVVF,
9358 VFDIVVV,
9359 VFIRSTM,
9360 VFMACCVF,
9361 VFMACCVV,
9362 VFMADDVF,
9363 VFMADDVV,
9364 VFMAXVF,
9365 VFMAXVV,
9366 VFMERGEVFM,
9367 VFMINVF,
9368 VFMINVV,
9369 VFMSACVF,
9370 VFMSACVV,
9371 VFMSUBVF,
9372 VFMSUBVV,
9373 VFMULVF,
9374 VFMULVV,
9375 VFMVFS,
9376 VFMVSF,
9377 VFMVVF,
9378 VFNCVTFFW,
9379 VFNCVTFXW,
9380 VFNCVTFXUW,
9381 VFNCVTRODFFW,
9382 VFNCVTRTZXFW,
9383 VFNCVTRTZXUFW,
9384 VFNCVTXFW,
9385 VFNCVTXUFW,
9386 VFNMACCVF,
9387 VFNMACCVV,
9388 VFNMADDVF,
9389 VFNMADDVV,
9390 VFNMSACVF,
9391 VFNMSACVV,
9392 VFNMSUBVF,
9393 VFNMSUBVV,
9394 VFRDIVVF,
9395 VFREC7V,
9396 VFREDMAXVS,
9397 VFREDMINVS,
9398 VFREDOSUMVS,
9399 VFREDSUMVS,
9400 VFREDUSUMVS,
9401 VFRSQRT7V,
9402 VFRSUBVF,
9403 VFSGNJVF,
9404 VFSGNJVV,
9405 VFSGNJNVF,
9406 VFSGNJNVV,
9407 VFSGNJXVF,
9408 VFSGNJXVV,
9409 VFSLIDE1DOWNVF,
9410 VFSLIDE1UPVF,
9411 VFSQRTV,
9412 VFSUBVF,
9413 VFSUBVV,
9414 VFWADDVF,
9415 VFWADDVV,
9416 VFWADDWF,
9417 VFWADDWV,
9418 VFWCVTFFV,
9419 VFWCVTFXV,
9420 VFWCVTFXUV,
9421 VFWCVTRTZXFV,
9422 VFWCVTRTZXUFV,
9423 VFWCVTXFV,
9424 VFWCVTXUFV,
9425 VFWMACCVF,
9426 VFWMACCVV,
9427 VFWMSACVF,
9428 VFWMSACVV,
9429 VFWMULVF,
9430 VFWMULVV,
9431 VFWNMACCVF,
9432 VFWNMACCVV,
9433 VFWNMSACVF,
9434 VFWNMSACVV,
9435 VFWREDOSUMVS,
9436 VFWREDSUMVS,
9437 VFWREDUSUMVS,
9438 VFWSUBVF,
9439 VFWSUBVV,
9440 VFWSUBWF,
9441 VFWSUBWV,
9442 VGHSHVV,
9443 VGMULVV,
9444 VIDV,
9445 VIOTAM,
9446 VL1RV,
9447 VL1RE16V,
9448 VL1RE32V,
9449 VL1RE64V,
9450 VL1RE8V,
9451 VL2RV,
9452 VL2RE16V,
9453 VL2RE32V,
9454 VL2RE64V,
9455 VL2RE8V,
9456 VL4RV,
9457 VL4RE16V,
9458 VL4RE32V,
9459 VL4RE64V,
9460 VL4RE8V,
9461 VL8RV,
9462 VL8RE16V,
9463 VL8RE32V,
9464 VL8RE64V,
9465 VL8RE8V,
9466 VLE16V,
9467 VLE16FFV,
9468 VLE1V,
9469 VLE32V,
9470 VLE32FFV,
9471 VLE64V,
9472 VLE64FFV,
9473 VLE8V,
9474 VLE8FFV,
9475 VLMV,
9476 VLOXEI16V,
9477 VLOXEI32V,
9478 VLOXEI64V,
9479 VLOXEI8V,
9480 VLSE16V,
9481 VLSE32V,
9482 VLSE64V,
9483 VLSE8V,
9484 VLUXEI16V,
9485 VLUXEI32V,
9486 VLUXEI64V,
9487 VLUXEI8V,
9488 VMACCVV,
9489 VMACCVX,
9490 VMADCVI,
9491 VMADCVIM,
9492 VMADCVV,
9493 VMADCVVM,
9494 VMADCVX,
9495 VMADCVXM,
9496 VMADDVV,
9497 VMADDVX,
9498 VMANDMM,
9499 VMANDNMM,
9500 VMANDNOTMM,
9501 VMAXVV,
9502 VMAXVX,
9503 VMAXUVV,
9504 VMAXUVX,
9505 VMERGEVIM,
9506 VMERGEVVM,
9507 VMERGEVXM,
9508 VMFEQVF,
9509 VMFEQVV,
9510 VMFGEVF,
9511 VMFGTVF,
9512 VMFLEVF,
9513 VMFLEVV,
9514 VMFLTVF,
9515 VMFLTVV,
9516 VMFNEVF,
9517 VMFNEVV,
9518 VMINVV,
9519 VMINVX,
9520 VMINUVV,
9521 VMINUVX,
9522 VMNANDMM,
9523 VMNORMM,
9524 VMORMM,
9525 VMORNMM,
9526 VMORNOTMM,
9527 VMSBCVV,
9528 VMSBCVVM,
9529 VMSBCVX,
9530 VMSBCVXM,
9531 VMSBFM,
9532 VMSEQVI,
9533 VMSEQVV,
9534 VMSEQVX,
9535 VMSGTVI,
9536 VMSGTVX,
9537 VMSGTUVI,
9538 VMSGTUVX,
9539 VMSIFM,
9540 VMSLEVI,
9541 VMSLEVV,
9542 VMSLEVX,
9543 VMSLEUVI,
9544 VMSLEUVV,
9545 VMSLEUVX,
9546 VMSLTVV,
9547 VMSLTVX,
9548 VMSLTUVV,
9549 VMSLTUVX,
9550 VMSNEVI,
9551 VMSNEVV,
9552 VMSNEVX,
9553 VMSOFM,
9554 VMULVV,
9555 VMULVX,
9556 VMULHVV,
9557 VMULHVX,
9558 VMULHSUVV,
9559 VMULHSUVX,
9560 VMULHUVV,
9561 VMULHUVX,
9562 VMV1RV,
9563 VMV2RV,
9564 VMV4RV,
9565 VMV8RV,
9566 VMVSX,
9567 VMVVI,
9568 VMVVV,
9569 VMVVX,
9570 VMVXS,
9571 VMXNORMM,
9572 VMXORMM,
9573 VNCLIPWI,
9574 VNCLIPWV,
9575 VNCLIPWX,
9576 VNCLIPUWI,
9577 VNCLIPUWV,
9578 VNCLIPUWX,
9579 VNMSACVV,
9580 VNMSACVX,
9581 VNMSUBVV,
9582 VNMSUBVX,
9583 VNSRAWI,
9584 VNSRAWV,
9585 VNSRAWX,
9586 VNSRLWI,
9587 VNSRLWV,
9588 VNSRLWX,
9589 VORVI,
9590 VORVV,
9591 VORVX,
9592 VPOPCM,
9593 VREDANDVS,
9594 VREDMAXVS,
9595 VREDMAXUVS,
9596 VREDMINVS,
9597 VREDMINUVS,
9598 VREDORVS,
9599 VREDSUMVS,
9600 VREDXORVS,
9601 VREMVV,
9602 VREMVX,
9603 VREMUVV,
9604 VREMUVX,
9605 VREV8V,
9606 VRGATHERVI,
9607 VRGATHERVV,
9608 VRGATHERVX,
9609 VRGATHEREI16VV,
9610 VROLVV,
9611 VROLVX,
9612 VRORVI,
9613 VRORVV,
9614 VRORVX,
9615 VRSUBVI,
9616 VRSUBVX,
9617 VS1RV,
9618 VS2RV,
9619 VS4RV,
9620 VS8RV,
9621 VSADDVI,
9622 VSADDVV,
9623 VSADDVX,
9624 VSADDUVI,
9625 VSADDUVV,
9626 VSADDUVX,
9627 VSBCVVM,
9628 VSBCVXM,
9629 VSE16V,
9630 VSE1V,
9631 VSE32V,
9632 VSE64V,
9633 VSE8V,
9634 VSETIVLI,
9635 VSETVL,
9636 VSETVLI,
9637 VSEXTVF2,
9638 VSEXTVF4,
9639 VSEXTVF8,
9640 VSHA2CHVV,
9641 VSHA2CLVV,
9642 VSHA2MSVV,
9643 VSLIDE1DOWNVX,
9644 VSLIDE1UPVX,
9645 VSLIDEDOWNVI,
9646 VSLIDEDOWNVX,
9647 VSLIDEUPVI,
9648 VSLIDEUPVX,
9649 VSLLVI,
9650 VSLLVV,
9651 VSLLVX,
9652 VSM3CVI,
9653 VSM3MEVV,
9654 VSM4KVI,
9655 VSM4RVS,
9656 VSM4RVV,
9657 VSMV,
9658 VSMULVV,
9659 VSMULVX,
9660 VSOXEI16V,
9661 VSOXEI32V,
9662 VSOXEI64V,
9663 VSOXEI8V,
9664 VSRAVI,
9665 VSRAVV,
9666 VSRAVX,
9667 VSRLVI,
9668 VSRLVV,
9669 VSRLVX,
9670 VSSE16V,
9671 VSSE32V,
9672 VSSE64V,
9673 VSSE8V,
9674 VSSRAVI,
9675 VSSRAVV,
9676 VSSRAVX,
9677 VSSRLVI,
9678 VSSRLVV,
9679 VSSRLVX,
9680 VSSUBVV,
9681 VSSUBVX,
9682 VSSUBUVV,
9683 VSSUBUVX,
9684 VSUBVV,
9685 VSUBVX,
9686 VSUXEI16V,
9687 VSUXEI32V,
9688 VSUXEI64V,
9689 VSUXEI8V,
9690 VWADDVV,
9691 VWADDVX,
9692 VWADDWV,
9693 VWADDWX,
9694 VWADDUVV,
9695 VWADDUVX,
9696 VWADDUWV,
9697 VWADDUWX,
9698 VWMACCVV,
9699 VWMACCVX,
9700 VWMACCSUVV,
9701 VWMACCSUVX,
9702 VWMACCUVV,
9703 VWMACCUVX,
9704 VWMACCUSVX,
9705 VWMULVV,
9706 VWMULVX,
9707 VWMULSUVV,
9708 VWMULSUVX,
9709 VWMULUVV,
9710 VWMULUVX,
9711 VWREDSUMVS,
9712 VWREDSUMUVS,
9713 VWSLLVI,
9714 VWSLLVV,
9715 VWSLLVX,
9716 VWSUBVV,
9717 VWSUBVX,
9718 VWSUBWV,
9719 VWSUBWX,
9720 VWSUBUVV,
9721 VWSUBUVX,
9722 VWSUBUWV,
9723 VWSUBUWX,
9724 VXORVI,
9725 VXORVV,
9726 VXORVX,
9727 VZEXTVF2,
9728 VZEXTVF4,
9729 VZEXTVF8,
9730 WFI,
9731 WRSNTO,
9732 WRSSTO,
9733 XNOR,
9734 XOR,
9735 XORI,
9736 XPERM4,
9737 XPERM8,
9738 ZEXTB,
9739 ZEXTH,
9740 ZEXTHRV32,
9741 ZEXTW,
9742 ZIP,
9743 Invalid,
9744}
9745
9746pub const OPCODE_STR: &[&str] = &[
9747 "add",
9748 "add.uw",
9749 "addi",
9750 "addiw",
9751 "addw",
9752 "aes32dsi",
9753 "aes32dsmi",
9754 "aes32esi",
9755 "aes32esmi",
9756 "aes64ds",
9757 "aes64dsm",
9758 "aes64es",
9759 "aes64esm",
9760 "aes64im",
9761 "aes64ks1i",
9762 "aes64ks2",
9763 "amoadd.b",
9764 "amoadd.d",
9765 "amoadd.h",
9766 "amoadd.w",
9767 "amoand.b",
9768 "amoand.d",
9769 "amoand.h",
9770 "amoand.w",
9771 "amocas.b",
9772 "amocas.d",
9773 "amocas.h",
9774 "amocas.q",
9775 "amocas.w",
9776 "amomax.b",
9777 "amomax.d",
9778 "amomax.h",
9779 "amomax.w",
9780 "amomaxu.b",
9781 "amomaxu.d",
9782 "amomaxu.h",
9783 "amomaxu.w",
9784 "amomin.b",
9785 "amomin.d",
9786 "amomin.h",
9787 "amomin.w",
9788 "amominu.b",
9789 "amominu.d",
9790 "amominu.h",
9791 "amominu.w",
9792 "amoor.b",
9793 "amoor.d",
9794 "amoor.h",
9795 "amoor.w",
9796 "amoswap.b",
9797 "amoswap.d",
9798 "amoswap.h",
9799 "amoswap.w",
9800 "amoxor.b",
9801 "amoxor.d",
9802 "amoxor.h",
9803 "amoxor.w",
9804 "and",
9805 "andi",
9806 "andn",
9807 "auipc",
9808 "bclr",
9809 "bclri",
9810 "bclri.rv32",
9811 "beq",
9812 "beqz",
9813 "bext",
9814 "bexti",
9815 "bexti.rv32",
9816 "bge",
9817 "bgeu",
9818 "bgez",
9819 "bgt",
9820 "bgtu",
9821 "bgtz",
9822 "binv",
9823 "binvi",
9824 "binvi.rv32",
9825 "ble",
9826 "bleu",
9827 "blez",
9828 "blt",
9829 "bltu",
9830 "bltz",
9831 "bne",
9832 "bnez",
9833 "brev8",
9834 "bset",
9835 "bseti",
9836 "bseti.rv32",
9837 "c.add",
9838 "c.addi",
9839 "c.addi16sp",
9840 "c.addi4spn",
9841 "c.addiw",
9842 "c.addw",
9843 "c.and",
9844 "c.andi",
9845 "c.beqz",
9846 "c.bnez",
9847 "c.ebreak",
9848 "c.fld",
9849 "c.fldsp",
9850 "c.flw",
9851 "c.flwsp",
9852 "c.fsd",
9853 "c.fsdsp",
9854 "c.fsw",
9855 "c.fswsp",
9856 "c.j",
9857 "c.jal",
9858 "c.jalr",
9859 "c.jr",
9860 "c.lbu",
9861 "c.ld",
9862 "c.ldsp",
9863 "c.lh",
9864 "c.lhu",
9865 "c.li",
9866 "c.lui",
9867 "c.lw",
9868 "c.lwsp",
9869 "c.mop.1",
9870 "c.mop.11",
9871 "c.mop.13",
9872 "c.mop.15",
9873 "c.mop.3",
9874 "c.mop.5",
9875 "c.mop.7",
9876 "c.mop.9",
9877 "c.mop.n",
9878 "c.mul",
9879 "c.mv",
9880 "c.nop",
9881 "c.not",
9882 "c.ntl.all",
9883 "c.ntl.p1",
9884 "c.ntl.pall",
9885 "c.ntl.s1",
9886 "c.or",
9887 "c.sb",
9888 "c.sd",
9889 "c.sdsp",
9890 "c.sext.b",
9891 "c.sext.h",
9892 "c.sext.w",
9893 "c.sh",
9894 "c.slli",
9895 "c.slli.rv32",
9896 "c.srai",
9897 "c.srai.rv32",
9898 "c.srli",
9899 "c.srli.rv32",
9900 "c.sub",
9901 "c.subw",
9902 "c.sw",
9903 "c.swsp",
9904 "c.xor",
9905 "c.zext.b",
9906 "c.zext.h",
9907 "c.zext.w",
9908 "cbo.clean",
9909 "cbo.flush",
9910 "cbo.inval",
9911 "cbo.zero",
9912 "clmul",
9913 "clmulh",
9914 "clmulr",
9915 "clz",
9916 "clzw",
9917 "cm.jalt",
9918 "cm.mva01s",
9919 "cm.mvsa01",
9920 "cm.pop",
9921 "cm.popret",
9922 "cm.popretz",
9923 "cm.push",
9924 "cpop",
9925 "cpopw",
9926 "csrc",
9927 "csrci",
9928 "csrr",
9929 "csrrc",
9930 "csrrci",
9931 "csrrs",
9932 "csrrsi",
9933 "csrrw",
9934 "csrrwi",
9935 "csrs",
9936 "csrsi",
9937 "csrw",
9938 "csrwi",
9939 "ctz",
9940 "ctzw",
9941 "czero.eqz",
9942 "czero.nez",
9943 "div",
9944 "divu",
9945 "divuw",
9946 "divw",
9947 "dret",
9948 "ebreak",
9949 "ecall",
9950 "fabs.d",
9951 "fabs.h",
9952 "fabs.q",
9953 "fabs.s",
9954 "fadd.d",
9955 "fadd.h",
9956 "fadd.q",
9957 "fadd.s",
9958 "fclass.d",
9959 "fclass.h",
9960 "fclass.q",
9961 "fclass.s",
9962 "fcvt.d.h",
9963 "fcvt.d.l",
9964 "fcvt.d.lu",
9965 "fcvt.d.q",
9966 "fcvt.d.s",
9967 "fcvt.d.w",
9968 "fcvt.d.wu",
9969 "fcvt.h.d",
9970 "fcvt.h.l",
9971 "fcvt.h.lu",
9972 "fcvt.h.q",
9973 "fcvt.h.s",
9974 "fcvt.h.w",
9975 "fcvt.h.wu",
9976 "fcvt.l.d",
9977 "fcvt.l.h",
9978 "fcvt.l.q",
9979 "fcvt.l.s",
9980 "fcvt.lu.d",
9981 "fcvt.lu.h",
9982 "fcvt.lu.q",
9983 "fcvt.lu.s",
9984 "fcvt.q.d",
9985 "fcvt.q.h",
9986 "fcvt.q.l",
9987 "fcvt.q.lu",
9988 "fcvt.q.s",
9989 "fcvt.q.w",
9990 "fcvt.q.wu",
9991 "fcvt.s.d",
9992 "fcvt.s.h",
9993 "fcvt.s.l",
9994 "fcvt.s.lu",
9995 "fcvt.s.q",
9996 "fcvt.s.w",
9997 "fcvt.s.wu",
9998 "fcvt.w.d",
9999 "fcvt.w.h",
10000 "fcvt.w.q",
10001 "fcvt.w.s",
10002 "fcvt.wu.d",
10003 "fcvt.wu.h",
10004 "fcvt.wu.q",
10005 "fcvt.wu.s",
10006 "fcvtmod.w.d",
10007 "fdiv.d",
10008 "fdiv.h",
10009 "fdiv.q",
10010 "fdiv.s",
10011 "fence",
10012 "fence.i",
10013 "fence.tso",
10014 "feq.d",
10015 "feq.h",
10016 "feq.q",
10017 "feq.s",
10018 "fld",
10019 "fle.d",
10020 "fle.h",
10021 "fle.q",
10022 "fle.s",
10023 "fleq.d",
10024 "fleq.h",
10025 "fleq.q",
10026 "fleq.s",
10027 "flh",
10028 "fli.d",
10029 "fli.h",
10030 "fli.q",
10031 "fli.s",
10032 "flq",
10033 "flt.d",
10034 "flt.h",
10035 "flt.q",
10036 "flt.s",
10037 "fltq.d",
10038 "fltq.h",
10039 "fltq.q",
10040 "fltq.s",
10041 "flw",
10042 "fmadd.d",
10043 "fmadd.h",
10044 "fmadd.q",
10045 "fmadd.s",
10046 "fmax.d",
10047 "fmax.h",
10048 "fmax.q",
10049 "fmax.s",
10050 "fmaxm.d",
10051 "fmaxm.h",
10052 "fmaxm.q",
10053 "fmaxm.s",
10054 "fmin.d",
10055 "fmin.h",
10056 "fmin.q",
10057 "fmin.s",
10058 "fminm.d",
10059 "fminm.h",
10060 "fminm.q",
10061 "fminm.s",
10062 "fmsub.d",
10063 "fmsub.h",
10064 "fmsub.q",
10065 "fmsub.s",
10066 "fmul.d",
10067 "fmul.h",
10068 "fmul.q",
10069 "fmul.s",
10070 "fmv.d",
10071 "fmv.d.x",
10072 "fmv.h",
10073 "fmv.h.x",
10074 "fmv.q",
10075 "fmv.s",
10076 "fmv.s.x",
10077 "fmv.w.x",
10078 "fmv.x.d",
10079 "fmv.x.h",
10080 "fmv.x.s",
10081 "fmv.x.w",
10082 "fmvh.x.d",
10083 "fmvh.x.q",
10084 "fmvp.d.x",
10085 "fmvp.q.x",
10086 "fneg.d",
10087 "fneg.h",
10088 "fneg.q",
10089 "fneg.s",
10090 "fnmadd.d",
10091 "fnmadd.h",
10092 "fnmadd.q",
10093 "fnmadd.s",
10094 "fnmsub.d",
10095 "fnmsub.h",
10096 "fnmsub.q",
10097 "fnmsub.s",
10098 "frcsr",
10099 "frflags",
10100 "fround.d",
10101 "fround.h",
10102 "fround.q",
10103 "fround.s",
10104 "froundnx.d",
10105 "froundnx.h",
10106 "froundnx.q",
10107 "froundnx.s",
10108 "frrm",
10109 "fscsr",
10110 "fsd",
10111 "fsflags",
10112 "fsflagsi",
10113 "fsgnj.d",
10114 "fsgnj.h",
10115 "fsgnj.q",
10116 "fsgnj.s",
10117 "fsgnjn.d",
10118 "fsgnjn.h",
10119 "fsgnjn.q",
10120 "fsgnjn.s",
10121 "fsgnjx.d",
10122 "fsgnjx.h",
10123 "fsgnjx.q",
10124 "fsgnjx.s",
10125 "fsh",
10126 "fsq",
10127 "fsqrt.d",
10128 "fsqrt.h",
10129 "fsqrt.q",
10130 "fsqrt.s",
10131 "fsrm",
10132 "fsrmi",
10133 "fsub.d",
10134 "fsub.h",
10135 "fsub.q",
10136 "fsub.s",
10137 "fsw",
10138 "hfence.gvma",
10139 "hfence.vvma",
10140 "hinval.gvma",
10141 "hinval.vvma",
10142 "hlv.b",
10143 "hlv.bu",
10144 "hlv.d",
10145 "hlv.h",
10146 "hlv.hu",
10147 "hlv.w",
10148 "hlv.wu",
10149 "hlvx.hu",
10150 "hlvx.wu",
10151 "hsv.b",
10152 "hsv.d",
10153 "hsv.h",
10154 "hsv.w",
10155 "j",
10156 "jal",
10157 "jal.pseudo",
10158 "jalr",
10159 "jalr.pseudo",
10160 "jr",
10161 "lb",
10162 "lbu",
10163 "ld",
10164 "lh",
10165 "lhu",
10166 "lr.d",
10167 "lr.w",
10168 "lui",
10169 "lw",
10170 "lwu",
10171 "max",
10172 "maxu",
10173 "min",
10174 "minu",
10175 "mop.r.0",
10176 "mop.r.1",
10177 "mop.r.10",
10178 "mop.r.11",
10179 "mop.r.12",
10180 "mop.r.13",
10181 "mop.r.14",
10182 "mop.r.15",
10183 "mop.r.16",
10184 "mop.r.17",
10185 "mop.r.18",
10186 "mop.r.19",
10187 "mop.r.2",
10188 "mop.r.20",
10189 "mop.r.21",
10190 "mop.r.22",
10191 "mop.r.23",
10192 "mop.r.24",
10193 "mop.r.25",
10194 "mop.r.26",
10195 "mop.r.27",
10196 "mop.r.28",
10197 "mop.r.29",
10198 "mop.r.3",
10199 "mop.r.30",
10200 "mop.r.31",
10201 "mop.r.4",
10202 "mop.r.5",
10203 "mop.r.6",
10204 "mop.r.7",
10205 "mop.r.8",
10206 "mop.r.9",
10207 "mop.r.n",
10208 "mop.rr.0",
10209 "mop.rr.1",
10210 "mop.rr.2",
10211 "mop.rr.3",
10212 "mop.rr.4",
10213 "mop.rr.5",
10214 "mop.rr.6",
10215 "mop.rr.7",
10216 "mop.rr.n",
10217 "mret",
10218 "mul",
10219 "mulh",
10220 "mulhsu",
10221 "mulhu",
10222 "mulw",
10223 "mv",
10224 "neg",
10225 "nop",
10226 "ntl.all",
10227 "ntl.p1",
10228 "ntl.pall",
10229 "ntl.s1",
10230 "or",
10231 "orc.b",
10232 "ori",
10233 "orn",
10234 "pack",
10235 "packh",
10236 "packw",
10237 "pause",
10238 "prefetch.i",
10239 "prefetch.r",
10240 "prefetch.w",
10241 "rdcycle",
10242 "rdcycleh",
10243 "rdinstret",
10244 "rdinstreth",
10245 "rdtime",
10246 "rdtimeh",
10247 "rem",
10248 "remu",
10249 "remuw",
10250 "remw",
10251 "ret",
10252 "rev8",
10253 "rev8.rv32",
10254 "rol",
10255 "rolw",
10256 "ror",
10257 "rori",
10258 "rori.rv32",
10259 "roriw",
10260 "rorw",
10261 "sb",
10262 "sbreak",
10263 "sc.d",
10264 "sc.w",
10265 "scall",
10266 "sd",
10267 "seqz",
10268 "sext.b",
10269 "sext.h",
10270 "sext.w",
10271 "sfence.inval.ir",
10272 "sfence.vma",
10273 "sfence.w.inval",
10274 "sgtz",
10275 "sh",
10276 "sh1add",
10277 "sh1add.uw",
10278 "sh2add",
10279 "sh2add.uw",
10280 "sh3add",
10281 "sh3add.uw",
10282 "sha256sig0",
10283 "sha256sig1",
10284 "sha256sum0",
10285 "sha256sum1",
10286 "sha512sig0",
10287 "sha512sig0h",
10288 "sha512sig0l",
10289 "sha512sig1",
10290 "sha512sig1h",
10291 "sha512sig1l",
10292 "sha512sum0",
10293 "sha512sum0r",
10294 "sha512sum1",
10295 "sha512sum1r",
10296 "sinval.vma",
10297 "sll",
10298 "slli",
10299 "slli.rv32",
10300 "slli.uw",
10301 "slliw",
10302 "sllw",
10303 "slt",
10304 "slti",
10305 "sltiu",
10306 "sltu",
10307 "sltz",
10308 "sm3p0",
10309 "sm3p1",
10310 "sm4ed",
10311 "sm4ks",
10312 "snez",
10313 "sra",
10314 "srai",
10315 "srai.rv32",
10316 "sraiw",
10317 "sraw",
10318 "sret",
10319 "srl",
10320 "srli",
10321 "srli.rv32",
10322 "srliw",
10323 "srlw",
10324 "sub",
10325 "subw",
10326 "sw",
10327 "unzip",
10328 "vaadd.vv",
10329 "vaadd.vx",
10330 "vaaddu.vv",
10331 "vaaddu.vx",
10332 "vadc.vim",
10333 "vadc.vvm",
10334 "vadc.vxm",
10335 "vadd.vi",
10336 "vadd.vv",
10337 "vadd.vx",
10338 "vaesdf.vs",
10339 "vaesdf.vv",
10340 "vaesdm.vs",
10341 "vaesdm.vv",
10342 "vaesef.vs",
10343 "vaesef.vv",
10344 "vaesem.vs",
10345 "vaesem.vv",
10346 "vaeskf1.vi",
10347 "vaeskf2.vi",
10348 "vaesz.vs",
10349 "vand.vi",
10350 "vand.vv",
10351 "vand.vx",
10352 "vandn.vv",
10353 "vandn.vx",
10354 "vasub.vv",
10355 "vasub.vx",
10356 "vasubu.vv",
10357 "vasubu.vx",
10358 "vbrev8.v",
10359 "vbrev.v",
10360 "vclmul.vv",
10361 "vclmul.vx",
10362 "vclmulh.vv",
10363 "vclmulh.vx",
10364 "vclz.v",
10365 "vcompress.vm",
10366 "vcpop.m",
10367 "vcpop.v",
10368 "vctz.v",
10369 "vdiv.vv",
10370 "vdiv.vx",
10371 "vdivu.vv",
10372 "vdivu.vx",
10373 "vfadd.vf",
10374 "vfadd.vv",
10375 "vfclass.v",
10376 "vfcvt.f.x.v",
10377 "vfcvt.f.xu.v",
10378 "vfcvt.rtz.x.f.v",
10379 "vfcvt.rtz.xu.f.v",
10380 "vfcvt.x.f.v",
10381 "vfcvt.xu.f.v",
10382 "vfdiv.vf",
10383 "vfdiv.vv",
10384 "vfirst.m",
10385 "vfmacc.vf",
10386 "vfmacc.vv",
10387 "vfmadd.vf",
10388 "vfmadd.vv",
10389 "vfmax.vf",
10390 "vfmax.vv",
10391 "vfmerge.vfm",
10392 "vfmin.vf",
10393 "vfmin.vv",
10394 "vfmsac.vf",
10395 "vfmsac.vv",
10396 "vfmsub.vf",
10397 "vfmsub.vv",
10398 "vfmul.vf",
10399 "vfmul.vv",
10400 "vfmv.f.s",
10401 "vfmv.s.f",
10402 "vfmv.v.f",
10403 "vfncvt.f.f.w",
10404 "vfncvt.f.x.w",
10405 "vfncvt.f.xu.w",
10406 "vfncvt.rod.f.f.w",
10407 "vfncvt.rtz.x.f.w",
10408 "vfncvt.rtz.xu.f.w",
10409 "vfncvt.x.f.w",
10410 "vfncvt.xu.f.w",
10411 "vfnmacc.vf",
10412 "vfnmacc.vv",
10413 "vfnmadd.vf",
10414 "vfnmadd.vv",
10415 "vfnmsac.vf",
10416 "vfnmsac.vv",
10417 "vfnmsub.vf",
10418 "vfnmsub.vv",
10419 "vfrdiv.vf",
10420 "vfrec7.v",
10421 "vfredmax.vs",
10422 "vfredmin.vs",
10423 "vfredosum.vs",
10424 "vfredsum.vs",
10425 "vfredusum.vs",
10426 "vfrsqrt7.v",
10427 "vfrsub.vf",
10428 "vfsgnj.vf",
10429 "vfsgnj.vv",
10430 "vfsgnjn.vf",
10431 "vfsgnjn.vv",
10432 "vfsgnjx.vf",
10433 "vfsgnjx.vv",
10434 "vfslide1down.vf",
10435 "vfslide1up.vf",
10436 "vfsqrt.v",
10437 "vfsub.vf",
10438 "vfsub.vv",
10439 "vfwadd.vf",
10440 "vfwadd.vv",
10441 "vfwadd.wf",
10442 "vfwadd.wv",
10443 "vfwcvt.f.f.v",
10444 "vfwcvt.f.x.v",
10445 "vfwcvt.f.xu.v",
10446 "vfwcvt.rtz.x.f.v",
10447 "vfwcvt.rtz.xu.f.v",
10448 "vfwcvt.x.f.v",
10449 "vfwcvt.xu.f.v",
10450 "vfwmacc.vf",
10451 "vfwmacc.vv",
10452 "vfwmsac.vf",
10453 "vfwmsac.vv",
10454 "vfwmul.vf",
10455 "vfwmul.vv",
10456 "vfwnmacc.vf",
10457 "vfwnmacc.vv",
10458 "vfwnmsac.vf",
10459 "vfwnmsac.vv",
10460 "vfwredosum.vs",
10461 "vfwredsum.vs",
10462 "vfwredusum.vs",
10463 "vfwsub.vf",
10464 "vfwsub.vv",
10465 "vfwsub.wf",
10466 "vfwsub.wv",
10467 "vghsh.vv",
10468 "vgmul.vv",
10469 "vid.v",
10470 "viota.m",
10471 "vl1r.v",
10472 "vl1re16.v",
10473 "vl1re32.v",
10474 "vl1re64.v",
10475 "vl1re8.v",
10476 "vl2r.v",
10477 "vl2re16.v",
10478 "vl2re32.v",
10479 "vl2re64.v",
10480 "vl2re8.v",
10481 "vl4r.v",
10482 "vl4re16.v",
10483 "vl4re32.v",
10484 "vl4re64.v",
10485 "vl4re8.v",
10486 "vl8r.v",
10487 "vl8re16.v",
10488 "vl8re32.v",
10489 "vl8re64.v",
10490 "vl8re8.v",
10491 "vle16.v",
10492 "vle16ff.v",
10493 "vle1.v",
10494 "vle32.v",
10495 "vle32ff.v",
10496 "vle64.v",
10497 "vle64ff.v",
10498 "vle8.v",
10499 "vle8ff.v",
10500 "vlm.v",
10501 "vloxei16.v",
10502 "vloxei32.v",
10503 "vloxei64.v",
10504 "vloxei8.v",
10505 "vlse16.v",
10506 "vlse32.v",
10507 "vlse64.v",
10508 "vlse8.v",
10509 "vluxei16.v",
10510 "vluxei32.v",
10511 "vluxei64.v",
10512 "vluxei8.v",
10513 "vmacc.vv",
10514 "vmacc.vx",
10515 "vmadc.vi",
10516 "vmadc.vim",
10517 "vmadc.vv",
10518 "vmadc.vvm",
10519 "vmadc.vx",
10520 "vmadc.vxm",
10521 "vmadd.vv",
10522 "vmadd.vx",
10523 "vmand.mm",
10524 "vmandn.mm",
10525 "vmandnot.mm",
10526 "vmax.vv",
10527 "vmax.vx",
10528 "vmaxu.vv",
10529 "vmaxu.vx",
10530 "vmerge.vim",
10531 "vmerge.vvm",
10532 "vmerge.vxm",
10533 "vmfeq.vf",
10534 "vmfeq.vv",
10535 "vmfge.vf",
10536 "vmfgt.vf",
10537 "vmfle.vf",
10538 "vmfle.vv",
10539 "vmflt.vf",
10540 "vmflt.vv",
10541 "vmfne.vf",
10542 "vmfne.vv",
10543 "vmin.vv",
10544 "vmin.vx",
10545 "vminu.vv",
10546 "vminu.vx",
10547 "vmnand.mm",
10548 "vmnor.mm",
10549 "vmor.mm",
10550 "vmorn.mm",
10551 "vmornot.mm",
10552 "vmsbc.vv",
10553 "vmsbc.vvm",
10554 "vmsbc.vx",
10555 "vmsbc.vxm",
10556 "vmsbf.m",
10557 "vmseq.vi",
10558 "vmseq.vv",
10559 "vmseq.vx",
10560 "vmsgt.vi",
10561 "vmsgt.vx",
10562 "vmsgtu.vi",
10563 "vmsgtu.vx",
10564 "vmsif.m",
10565 "vmsle.vi",
10566 "vmsle.vv",
10567 "vmsle.vx",
10568 "vmsleu.vi",
10569 "vmsleu.vv",
10570 "vmsleu.vx",
10571 "vmslt.vv",
10572 "vmslt.vx",
10573 "vmsltu.vv",
10574 "vmsltu.vx",
10575 "vmsne.vi",
10576 "vmsne.vv",
10577 "vmsne.vx",
10578 "vmsof.m",
10579 "vmul.vv",
10580 "vmul.vx",
10581 "vmulh.vv",
10582 "vmulh.vx",
10583 "vmulhsu.vv",
10584 "vmulhsu.vx",
10585 "vmulhu.vv",
10586 "vmulhu.vx",
10587 "vmv1r.v",
10588 "vmv2r.v",
10589 "vmv4r.v",
10590 "vmv8r.v",
10591 "vmv.s.x",
10592 "vmv.v.i",
10593 "vmv.v.v",
10594 "vmv.v.x",
10595 "vmv.x.s",
10596 "vmxnor.mm",
10597 "vmxor.mm",
10598 "vnclip.wi",
10599 "vnclip.wv",
10600 "vnclip.wx",
10601 "vnclipu.wi",
10602 "vnclipu.wv",
10603 "vnclipu.wx",
10604 "vnmsac.vv",
10605 "vnmsac.vx",
10606 "vnmsub.vv",
10607 "vnmsub.vx",
10608 "vnsra.wi",
10609 "vnsra.wv",
10610 "vnsra.wx",
10611 "vnsrl.wi",
10612 "vnsrl.wv",
10613 "vnsrl.wx",
10614 "vor.vi",
10615 "vor.vv",
10616 "vor.vx",
10617 "vpopc.m",
10618 "vredand.vs",
10619 "vredmax.vs",
10620 "vredmaxu.vs",
10621 "vredmin.vs",
10622 "vredminu.vs",
10623 "vredor.vs",
10624 "vredsum.vs",
10625 "vredxor.vs",
10626 "vrem.vv",
10627 "vrem.vx",
10628 "vremu.vv",
10629 "vremu.vx",
10630 "vrev8.v",
10631 "vrgather.vi",
10632 "vrgather.vv",
10633 "vrgather.vx",
10634 "vrgatherei16.vv",
10635 "vrol.vv",
10636 "vrol.vx",
10637 "vror.vi",
10638 "vror.vv",
10639 "vror.vx",
10640 "vrsub.vi",
10641 "vrsub.vx",
10642 "vs1r.v",
10643 "vs2r.v",
10644 "vs4r.v",
10645 "vs8r.v",
10646 "vsadd.vi",
10647 "vsadd.vv",
10648 "vsadd.vx",
10649 "vsaddu.vi",
10650 "vsaddu.vv",
10651 "vsaddu.vx",
10652 "vsbc.vvm",
10653 "vsbc.vxm",
10654 "vse16.v",
10655 "vse1.v",
10656 "vse32.v",
10657 "vse64.v",
10658 "vse8.v",
10659 "vsetivli",
10660 "vsetvl",
10661 "vsetvli",
10662 "vsext.vf2",
10663 "vsext.vf4",
10664 "vsext.vf8",
10665 "vsha2ch.vv",
10666 "vsha2cl.vv",
10667 "vsha2ms.vv",
10668 "vslide1down.vx",
10669 "vslide1up.vx",
10670 "vslidedown.vi",
10671 "vslidedown.vx",
10672 "vslideup.vi",
10673 "vslideup.vx",
10674 "vsll.vi",
10675 "vsll.vv",
10676 "vsll.vx",
10677 "vsm3c.vi",
10678 "vsm3me.vv",
10679 "vsm4k.vi",
10680 "vsm4r.vs",
10681 "vsm4r.vv",
10682 "vsm.v",
10683 "vsmul.vv",
10684 "vsmul.vx",
10685 "vsoxei16.v",
10686 "vsoxei32.v",
10687 "vsoxei64.v",
10688 "vsoxei8.v",
10689 "vsra.vi",
10690 "vsra.vv",
10691 "vsra.vx",
10692 "vsrl.vi",
10693 "vsrl.vv",
10694 "vsrl.vx",
10695 "vsse16.v",
10696 "vsse32.v",
10697 "vsse64.v",
10698 "vsse8.v",
10699 "vssra.vi",
10700 "vssra.vv",
10701 "vssra.vx",
10702 "vssrl.vi",
10703 "vssrl.vv",
10704 "vssrl.vx",
10705 "vssub.vv",
10706 "vssub.vx",
10707 "vssubu.vv",
10708 "vssubu.vx",
10709 "vsub.vv",
10710 "vsub.vx",
10711 "vsuxei16.v",
10712 "vsuxei32.v",
10713 "vsuxei64.v",
10714 "vsuxei8.v",
10715 "vwadd.vv",
10716 "vwadd.vx",
10717 "vwadd.wv",
10718 "vwadd.wx",
10719 "vwaddu.vv",
10720 "vwaddu.vx",
10721 "vwaddu.wv",
10722 "vwaddu.wx",
10723 "vwmacc.vv",
10724 "vwmacc.vx",
10725 "vwmaccsu.vv",
10726 "vwmaccsu.vx",
10727 "vwmaccu.vv",
10728 "vwmaccu.vx",
10729 "vwmaccus.vx",
10730 "vwmul.vv",
10731 "vwmul.vx",
10732 "vwmulsu.vv",
10733 "vwmulsu.vx",
10734 "vwmulu.vv",
10735 "vwmulu.vx",
10736 "vwredsum.vs",
10737 "vwredsumu.vs",
10738 "vwsll.vi",
10739 "vwsll.vv",
10740 "vwsll.vx",
10741 "vwsub.vv",
10742 "vwsub.vx",
10743 "vwsub.wv",
10744 "vwsub.wx",
10745 "vwsubu.vv",
10746 "vwsubu.vx",
10747 "vwsubu.wv",
10748 "vwsubu.wx",
10749 "vxor.vi",
10750 "vxor.vv",
10751 "vxor.vx",
10752 "vzext.vf2",
10753 "vzext.vf4",
10754 "vzext.vf8",
10755 "wfi",
10756 "wrs.nto",
10757 "wrs.sto",
10758 "xnor",
10759 "xor",
10760 "xori",
10761 "xperm4",
10762 "xperm8",
10763 "zext.b",
10764 "zext.h",
10765 "zext.h.rv32",
10766 "zext.w",
10767 "zip",
10768 "<invalid>",
10769];
10770
10771#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
10772pub struct Inst {
10773 pub opcode: u32,
10774 pub funct3: u32,
10775 pub rs1: u32,
10776 pub rs2: u32,
10777 pub csr: i64,
10778 pub funct7: u32,
10779}
10780
10781impl Inst {
10782 pub const fn encode(&self) -> InstructionValue {
10783 InstructionValue::new(
10784 (self.funct7 << 25)
10785 | (self.rs2 << 20)
10786 | (self.rs1 << 15)
10787 | (self.funct3 << 12)
10788 | self.opcode,
10789 )
10790 }
10791
10792 pub const fn new(op: Opcode) -> Self {
10793 match op {
10794 Opcode::Invalid => unreachable!(),
10795 Opcode::ADD => Inst {
10796 opcode: 0x33,
10797 funct3: 0x0,
10798 rs1: 0x0,
10799 rs2: 0x0,
10800 csr: 0x0,
10801 funct7: 0x0,
10802 },
10803 Opcode::ADDUW => Inst {
10804 opcode: 0x3b,
10805 funct3: 0x0,
10806 rs1: 0x0,
10807 rs2: 0x0,
10808 csr: 0x80,
10809 funct7: 0x4,
10810 },
10811 Opcode::ADDI => Inst {
10812 opcode: 0x13,
10813 funct3: 0x0,
10814 rs1: 0x0,
10815 rs2: 0x0,
10816 csr: 0x0,
10817 funct7: 0x0,
10818 },
10819 Opcode::ADDIW => Inst {
10820 opcode: 0x1b,
10821 funct3: 0x0,
10822 rs1: 0x0,
10823 rs2: 0x0,
10824 csr: 0x0,
10825 funct7: 0x0,
10826 },
10827 Opcode::ADDW => Inst {
10828 opcode: 0x3b,
10829 funct3: 0x0,
10830 rs1: 0x0,
10831 rs2: 0x0,
10832 csr: 0x0,
10833 funct7: 0x0,
10834 },
10835 Opcode::AES32DSI => Inst {
10836 opcode: 0x33,
10837 funct3: 0x0,
10838 rs1: 0x0,
10839 rs2: 0x0,
10840 csr: 0x2a0,
10841 funct7: 0x15,
10842 },
10843 Opcode::AES32DSMI => Inst {
10844 opcode: 0x33,
10845 funct3: 0x0,
10846 rs1: 0x0,
10847 rs2: 0x0,
10848 csr: 0x2e0,
10849 funct7: 0x17,
10850 },
10851 Opcode::AES32ESI => Inst {
10852 opcode: 0x33,
10853 funct3: 0x0,
10854 rs1: 0x0,
10855 rs2: 0x0,
10856 csr: 0x220,
10857 funct7: 0x11,
10858 },
10859 Opcode::AES32ESMI => Inst {
10860 opcode: 0x33,
10861 funct3: 0x0,
10862 rs1: 0x0,
10863 rs2: 0x0,
10864 csr: 0x260,
10865 funct7: 0x13,
10866 },
10867 Opcode::AES64DS => Inst {
10868 opcode: 0x33,
10869 funct3: 0x0,
10870 rs1: 0x0,
10871 rs2: 0x0,
10872 csr: 0x3a0,
10873 funct7: 0x1d,
10874 },
10875 Opcode::AES64DSM => Inst {
10876 opcode: 0x33,
10877 funct3: 0x0,
10878 rs1: 0x0,
10879 rs2: 0x0,
10880 csr: 0x3e0,
10881 funct7: 0x1f,
10882 },
10883 Opcode::AES64ES => Inst {
10884 opcode: 0x33,
10885 funct3: 0x0,
10886 rs1: 0x0,
10887 rs2: 0x0,
10888 csr: 0x320,
10889 funct7: 0x19,
10890 },
10891 Opcode::AES64ESM => Inst {
10892 opcode: 0x33,
10893 funct3: 0x0,
10894 rs1: 0x0,
10895 rs2: 0x0,
10896 csr: 0x360,
10897 funct7: 0x1b,
10898 },
10899 Opcode::AES64IM => Inst {
10900 opcode: 0x13,
10901 funct3: 0x1,
10902 rs1: 0x0,
10903 rs2: 0x0,
10904 csr: 0x300,
10905 funct7: 0x18,
10906 },
10907 Opcode::AES64KS1I => Inst {
10908 opcode: 0x13,
10909 funct3: 0x1,
10910 rs1: 0x0,
10911 rs2: 0x10,
10912 csr: 0x310,
10913 funct7: 0x18,
10914 },
10915 Opcode::AES64KS2 => Inst {
10916 opcode: 0x33,
10917 funct3: 0x0,
10918 rs1: 0x0,
10919 rs2: 0x0,
10920 csr: 0x7e0,
10921 funct7: 0x3f,
10922 },
10923 Opcode::AMOADDB => Inst {
10924 opcode: 0x2f,
10925 funct3: 0x0,
10926 rs1: 0x0,
10927 rs2: 0x0,
10928 csr: 0x0,
10929 funct7: 0x0,
10930 },
10931 Opcode::AMOADDD => Inst {
10932 opcode: 0x2f,
10933 funct3: 0x3,
10934 rs1: 0x0,
10935 rs2: 0x0,
10936 csr: 0x0,
10937 funct7: 0x0,
10938 },
10939 Opcode::AMOADDH => Inst {
10940 opcode: 0x2f,
10941 funct3: 0x1,
10942 rs1: 0x0,
10943 rs2: 0x0,
10944 csr: 0x0,
10945 funct7: 0x0,
10946 },
10947 Opcode::AMOADDW => Inst {
10948 opcode: 0x2f,
10949 funct3: 0x2,
10950 rs1: 0x0,
10951 rs2: 0x0,
10952 csr: 0x0,
10953 funct7: 0x0,
10954 },
10955 Opcode::AMOANDB => Inst {
10956 opcode: 0x2f,
10957 funct3: 0x0,
10958 rs1: 0x0,
10959 rs2: 0x0,
10960 csr: 0x600,
10961 funct7: 0x30,
10962 },
10963 Opcode::AMOANDD => Inst {
10964 opcode: 0x2f,
10965 funct3: 0x3,
10966 rs1: 0x0,
10967 rs2: 0x0,
10968 csr: 0x600,
10969 funct7: 0x30,
10970 },
10971 Opcode::AMOANDH => Inst {
10972 opcode: 0x2f,
10973 funct3: 0x1,
10974 rs1: 0x0,
10975 rs2: 0x0,
10976 csr: 0x600,
10977 funct7: 0x30,
10978 },
10979 Opcode::AMOANDW => Inst {
10980 opcode: 0x2f,
10981 funct3: 0x2,
10982 rs1: 0x0,
10983 rs2: 0x0,
10984 csr: 0x600,
10985 funct7: 0x30,
10986 },
10987 Opcode::AMOCASB => Inst {
10988 opcode: 0x2f,
10989 funct3: 0x0,
10990 rs1: 0x0,
10991 rs2: 0x0,
10992 csr: 0x280,
10993 funct7: 0x14,
10994 },
10995 Opcode::AMOCASD => Inst {
10996 opcode: 0x2f,
10997 funct3: 0x3,
10998 rs1: 0x0,
10999 rs2: 0x0,
11000 csr: 0x280,
11001 funct7: 0x14,
11002 },
11003 Opcode::AMOCASH => Inst {
11004 opcode: 0x2f,
11005 funct3: 0x1,
11006 rs1: 0x0,
11007 rs2: 0x0,
11008 csr: 0x280,
11009 funct7: 0x14,
11010 },
11011 Opcode::AMOCASQ => Inst {
11012 opcode: 0x2f,
11013 funct3: 0x4,
11014 rs1: 0x0,
11015 rs2: 0x0,
11016 csr: 0x280,
11017 funct7: 0x14,
11018 },
11019 Opcode::AMOCASW => Inst {
11020 opcode: 0x2f,
11021 funct3: 0x2,
11022 rs1: 0x0,
11023 rs2: 0x0,
11024 csr: 0x280,
11025 funct7: 0x14,
11026 },
11027 Opcode::AMOMAXB => Inst {
11028 opcode: 0x2f,
11029 funct3: 0x0,
11030 rs1: 0x0,
11031 rs2: 0x0,
11032 csr: 0xa00,
11033 funct7: 0x50,
11034 },
11035 Opcode::AMOMAXD => Inst {
11036 opcode: 0x2f,
11037 funct3: 0x3,
11038 rs1: 0x0,
11039 rs2: 0x0,
11040 csr: 0xa00,
11041 funct7: 0x50,
11042 },
11043 Opcode::AMOMAXH => Inst {
11044 opcode: 0x2f,
11045 funct3: 0x1,
11046 rs1: 0x0,
11047 rs2: 0x0,
11048 csr: 0xa00,
11049 funct7: 0x50,
11050 },
11051 Opcode::AMOMAXW => Inst {
11052 opcode: 0x2f,
11053 funct3: 0x2,
11054 rs1: 0x0,
11055 rs2: 0x0,
11056 csr: 0xa00,
11057 funct7: 0x50,
11058 },
11059 Opcode::AMOMAXUB => Inst {
11060 opcode: 0x2f,
11061 funct3: 0x0,
11062 rs1: 0x0,
11063 rs2: 0x0,
11064 csr: 0xe00,
11065 funct7: 0x70,
11066 },
11067 Opcode::AMOMAXUD => Inst {
11068 opcode: 0x2f,
11069 funct3: 0x3,
11070 rs1: 0x0,
11071 rs2: 0x0,
11072 csr: 0xe00,
11073 funct7: 0x70,
11074 },
11075 Opcode::AMOMAXUH => Inst {
11076 opcode: 0x2f,
11077 funct3: 0x1,
11078 rs1: 0x0,
11079 rs2: 0x0,
11080 csr: 0xe00,
11081 funct7: 0x70,
11082 },
11083 Opcode::AMOMAXUW => Inst {
11084 opcode: 0x2f,
11085 funct3: 0x2,
11086 rs1: 0x0,
11087 rs2: 0x0,
11088 csr: 0xe00,
11089 funct7: 0x70,
11090 },
11091 Opcode::AMOMINB => Inst {
11092 opcode: 0x2f,
11093 funct3: 0x0,
11094 rs1: 0x0,
11095 rs2: 0x0,
11096 csr: 0x800,
11097 funct7: 0x40,
11098 },
11099 Opcode::AMOMIND => Inst {
11100 opcode: 0x2f,
11101 funct3: 0x3,
11102 rs1: 0x0,
11103 rs2: 0x0,
11104 csr: 0x800,
11105 funct7: 0x40,
11106 },
11107 Opcode::AMOMINH => Inst {
11108 opcode: 0x2f,
11109 funct3: 0x1,
11110 rs1: 0x0,
11111 rs2: 0x0,
11112 csr: 0x800,
11113 funct7: 0x40,
11114 },
11115 Opcode::AMOMINW => Inst {
11116 opcode: 0x2f,
11117 funct3: 0x2,
11118 rs1: 0x0,
11119 rs2: 0x0,
11120 csr: 0x800,
11121 funct7: 0x40,
11122 },
11123 Opcode::AMOMINUB => Inst {
11124 opcode: 0x2f,
11125 funct3: 0x0,
11126 rs1: 0x0,
11127 rs2: 0x0,
11128 csr: 0xc00,
11129 funct7: 0x60,
11130 },
11131 Opcode::AMOMINUD => Inst {
11132 opcode: 0x2f,
11133 funct3: 0x3,
11134 rs1: 0x0,
11135 rs2: 0x0,
11136 csr: 0xc00,
11137 funct7: 0x60,
11138 },
11139 Opcode::AMOMINUH => Inst {
11140 opcode: 0x2f,
11141 funct3: 0x1,
11142 rs1: 0x0,
11143 rs2: 0x0,
11144 csr: 0xc00,
11145 funct7: 0x60,
11146 },
11147 Opcode::AMOMINUW => Inst {
11148 opcode: 0x2f,
11149 funct3: 0x2,
11150 rs1: 0x0,
11151 rs2: 0x0,
11152 csr: 0xc00,
11153 funct7: 0x60,
11154 },
11155 Opcode::AMOORB => Inst {
11156 opcode: 0x2f,
11157 funct3: 0x0,
11158 rs1: 0x0,
11159 rs2: 0x0,
11160 csr: 0x400,
11161 funct7: 0x20,
11162 },
11163 Opcode::AMOORD => Inst {
11164 opcode: 0x2f,
11165 funct3: 0x3,
11166 rs1: 0x0,
11167 rs2: 0x0,
11168 csr: 0x400,
11169 funct7: 0x20,
11170 },
11171 Opcode::AMOORH => Inst {
11172 opcode: 0x2f,
11173 funct3: 0x1,
11174 rs1: 0x0,
11175 rs2: 0x0,
11176 csr: 0x400,
11177 funct7: 0x20,
11178 },
11179 Opcode::AMOORW => Inst {
11180 opcode: 0x2f,
11181 funct3: 0x2,
11182 rs1: 0x0,
11183 rs2: 0x0,
11184 csr: 0x400,
11185 funct7: 0x20,
11186 },
11187 Opcode::AMOSWAPB => Inst {
11188 opcode: 0x2f,
11189 funct3: 0x0,
11190 rs1: 0x0,
11191 rs2: 0x0,
11192 csr: 0x80,
11193 funct7: 0x4,
11194 },
11195 Opcode::AMOSWAPD => Inst {
11196 opcode: 0x2f,
11197 funct3: 0x3,
11198 rs1: 0x0,
11199 rs2: 0x0,
11200 csr: 0x80,
11201 funct7: 0x4,
11202 },
11203 Opcode::AMOSWAPH => Inst {
11204 opcode: 0x2f,
11205 funct3: 0x1,
11206 rs1: 0x0,
11207 rs2: 0x0,
11208 csr: 0x80,
11209 funct7: 0x4,
11210 },
11211 Opcode::AMOSWAPW => Inst {
11212 opcode: 0x2f,
11213 funct3: 0x2,
11214 rs1: 0x0,
11215 rs2: 0x0,
11216 csr: 0x80,
11217 funct7: 0x4,
11218 },
11219 Opcode::AMOXORB => Inst {
11220 opcode: 0x2f,
11221 funct3: 0x0,
11222 rs1: 0x0,
11223 rs2: 0x0,
11224 csr: 0x200,
11225 funct7: 0x10,
11226 },
11227 Opcode::AMOXORD => Inst {
11228 opcode: 0x2f,
11229 funct3: 0x3,
11230 rs1: 0x0,
11231 rs2: 0x0,
11232 csr: 0x200,
11233 funct7: 0x10,
11234 },
11235 Opcode::AMOXORH => Inst {
11236 opcode: 0x2f,
11237 funct3: 0x1,
11238 rs1: 0x0,
11239 rs2: 0x0,
11240 csr: 0x200,
11241 funct7: 0x10,
11242 },
11243 Opcode::AMOXORW => Inst {
11244 opcode: 0x2f,
11245 funct3: 0x2,
11246 rs1: 0x0,
11247 rs2: 0x0,
11248 csr: 0x200,
11249 funct7: 0x10,
11250 },
11251 Opcode::AND => Inst {
11252 opcode: 0x33,
11253 funct3: 0x7,
11254 rs1: 0x0,
11255 rs2: 0x0,
11256 csr: 0x0,
11257 funct7: 0x0,
11258 },
11259 Opcode::ANDI => Inst {
11260 opcode: 0x13,
11261 funct3: 0x7,
11262 rs1: 0x0,
11263 rs2: 0x0,
11264 csr: 0x0,
11265 funct7: 0x0,
11266 },
11267 Opcode::ANDN => Inst {
11268 opcode: 0x33,
11269 funct3: 0x7,
11270 rs1: 0x0,
11271 rs2: 0x0,
11272 csr: 0x400,
11273 funct7: 0x20,
11274 },
11275 Opcode::AUIPC => Inst {
11276 opcode: 0x17,
11277 funct3: 0x0,
11278 rs1: 0x0,
11279 rs2: 0x0,
11280 csr: 0x0,
11281 funct7: 0x0,
11282 },
11283 Opcode::BCLR => Inst {
11284 opcode: 0x33,
11285 funct3: 0x1,
11286 rs1: 0x0,
11287 rs2: 0x0,
11288 csr: 0x480,
11289 funct7: 0x24,
11290 },
11291 Opcode::BCLRI => Inst {
11292 opcode: 0x13,
11293 funct3: 0x1,
11294 rs1: 0x0,
11295 rs2: 0x0,
11296 csr: 0x480,
11297 funct7: 0x24,
11298 },
11299 Opcode::BCLRIRV32 => Inst {
11300 opcode: 0x13,
11301 funct3: 0x1,
11302 rs1: 0x0,
11303 rs2: 0x0,
11304 csr: 0x480,
11305 funct7: 0x24,
11306 },
11307 Opcode::BEQ => Inst {
11308 opcode: 0x63,
11309 funct3: 0x0,
11310 rs1: 0x0,
11311 rs2: 0x0,
11312 csr: 0x0,
11313 funct7: 0x0,
11314 },
11315 Opcode::BEQZ => Inst {
11316 opcode: 0x63,
11317 funct3: 0x0,
11318 rs1: 0x0,
11319 rs2: 0x0,
11320 csr: 0x0,
11321 funct7: 0x0,
11322 },
11323 Opcode::BEXT => Inst {
11324 opcode: 0x33,
11325 funct3: 0x5,
11326 rs1: 0x0,
11327 rs2: 0x0,
11328 csr: 0x480,
11329 funct7: 0x24,
11330 },
11331 Opcode::BEXTI => Inst {
11332 opcode: 0x13,
11333 funct3: 0x5,
11334 rs1: 0x0,
11335 rs2: 0x0,
11336 csr: 0x480,
11337 funct7: 0x24,
11338 },
11339 Opcode::BEXTIRV32 => Inst {
11340 opcode: 0x13,
11341 funct3: 0x5,
11342 rs1: 0x0,
11343 rs2: 0x0,
11344 csr: 0x480,
11345 funct7: 0x24,
11346 },
11347 Opcode::BGE => Inst {
11348 opcode: 0x63,
11349 funct3: 0x5,
11350 rs1: 0x0,
11351 rs2: 0x0,
11352 csr: 0x0,
11353 funct7: 0x0,
11354 },
11355 Opcode::BGEU => Inst {
11356 opcode: 0x63,
11357 funct3: 0x7,
11358 rs1: 0x0,
11359 rs2: 0x0,
11360 csr: 0x0,
11361 funct7: 0x0,
11362 },
11363 Opcode::BGEZ => Inst {
11364 opcode: 0x63,
11365 funct3: 0x5,
11366 rs1: 0x0,
11367 rs2: 0x0,
11368 csr: 0x0,
11369 funct7: 0x0,
11370 },
11371 Opcode::BGT => Inst {
11372 opcode: 0x63,
11373 funct3: 0x4,
11374 rs1: 0x0,
11375 rs2: 0x0,
11376 csr: 0x0,
11377 funct7: 0x0,
11378 },
11379 Opcode::BGTU => Inst {
11380 opcode: 0x63,
11381 funct3: 0x6,
11382 rs1: 0x0,
11383 rs2: 0x0,
11384 csr: 0x0,
11385 funct7: 0x0,
11386 },
11387 Opcode::BGTZ => Inst {
11388 opcode: 0x63,
11389 funct3: 0x4,
11390 rs1: 0x0,
11391 rs2: 0x0,
11392 csr: 0x0,
11393 funct7: 0x0,
11394 },
11395 Opcode::BINV => Inst {
11396 opcode: 0x33,
11397 funct3: 0x1,
11398 rs1: 0x0,
11399 rs2: 0x0,
11400 csr: 0x680,
11401 funct7: 0x34,
11402 },
11403 Opcode::BINVI => Inst {
11404 opcode: 0x13,
11405 funct3: 0x1,
11406 rs1: 0x0,
11407 rs2: 0x0,
11408 csr: 0x680,
11409 funct7: 0x34,
11410 },
11411 Opcode::BINVIRV32 => Inst {
11412 opcode: 0x13,
11413 funct3: 0x1,
11414 rs1: 0x0,
11415 rs2: 0x0,
11416 csr: 0x680,
11417 funct7: 0x34,
11418 },
11419 Opcode::BLE => Inst {
11420 opcode: 0x63,
11421 funct3: 0x5,
11422 rs1: 0x0,
11423 rs2: 0x0,
11424 csr: 0x0,
11425 funct7: 0x0,
11426 },
11427 Opcode::BLEU => Inst {
11428 opcode: 0x63,
11429 funct3: 0x7,
11430 rs1: 0x0,
11431 rs2: 0x0,
11432 csr: 0x0,
11433 funct7: 0x0,
11434 },
11435 Opcode::BLEZ => Inst {
11436 opcode: 0x63,
11437 funct3: 0x5,
11438 rs1: 0x0,
11439 rs2: 0x0,
11440 csr: 0x0,
11441 funct7: 0x0,
11442 },
11443 Opcode::BLT => Inst {
11444 opcode: 0x63,
11445 funct3: 0x4,
11446 rs1: 0x0,
11447 rs2: 0x0,
11448 csr: 0x0,
11449 funct7: 0x0,
11450 },
11451 Opcode::BLTU => Inst {
11452 opcode: 0x63,
11453 funct3: 0x6,
11454 rs1: 0x0,
11455 rs2: 0x0,
11456 csr: 0x0,
11457 funct7: 0x0,
11458 },
11459 Opcode::BLTZ => Inst {
11460 opcode: 0x63,
11461 funct3: 0x4,
11462 rs1: 0x0,
11463 rs2: 0x0,
11464 csr: 0x0,
11465 funct7: 0x0,
11466 },
11467 Opcode::BNE => Inst {
11468 opcode: 0x63,
11469 funct3: 0x1,
11470 rs1: 0x0,
11471 rs2: 0x0,
11472 csr: 0x0,
11473 funct7: 0x0,
11474 },
11475 Opcode::BNEZ => Inst {
11476 opcode: 0x63,
11477 funct3: 0x1,
11478 rs1: 0x0,
11479 rs2: 0x0,
11480 csr: 0x0,
11481 funct7: 0x0,
11482 },
11483 Opcode::BREV8 => Inst {
11484 opcode: 0x13,
11485 funct3: 0x5,
11486 rs1: 0x0,
11487 rs2: 0x7,
11488 csr: 0x687,
11489 funct7: 0x34,
11490 },
11491 Opcode::BSET => Inst {
11492 opcode: 0x33,
11493 funct3: 0x1,
11494 rs1: 0x0,
11495 rs2: 0x0,
11496 csr: 0x280,
11497 funct7: 0x14,
11498 },
11499 Opcode::BSETI => Inst {
11500 opcode: 0x13,
11501 funct3: 0x1,
11502 rs1: 0x0,
11503 rs2: 0x0,
11504 csr: 0x280,
11505 funct7: 0x14,
11506 },
11507 Opcode::BSETIRV32 => Inst {
11508 opcode: 0x13,
11509 funct3: 0x1,
11510 rs1: 0x0,
11511 rs2: 0x0,
11512 csr: 0x280,
11513 funct7: 0x14,
11514 },
11515 Opcode::CADD => Inst {
11516 opcode: 0x2,
11517 funct3: 0x1,
11518 rs1: 0x1,
11519 rs2: 0x0,
11520 csr: 0x0,
11521 funct7: 0x0,
11522 },
11523 Opcode::CADDI => Inst {
11524 opcode: 0x1,
11525 funct3: 0x0,
11526 rs1: 0x0,
11527 rs2: 0x0,
11528 csr: 0x0,
11529 funct7: 0x0,
11530 },
11531 Opcode::CADDI16SP => Inst {
11532 opcode: 0x1,
11533 funct3: 0x6,
11534 rs1: 0x0,
11535 rs2: 0x0,
11536 csr: 0x0,
11537 funct7: 0x0,
11538 },
11539 Opcode::CADDI4SPN => Inst {
11540 opcode: 0x0,
11541 funct3: 0x0,
11542 rs1: 0x0,
11543 rs2: 0x0,
11544 csr: 0x0,
11545 funct7: 0x0,
11546 },
11547 Opcode::CADDIW => Inst {
11548 opcode: 0x1,
11549 funct3: 0x2,
11550 rs1: 0x0,
11551 rs2: 0x0,
11552 csr: 0x0,
11553 funct7: 0x0,
11554 },
11555 Opcode::CADDW => Inst {
11556 opcode: 0x21,
11557 funct3: 0x1,
11558 rs1: 0x1,
11559 rs2: 0x0,
11560 csr: 0x0,
11561 funct7: 0x0,
11562 },
11563 Opcode::CAND => Inst {
11564 opcode: 0x61,
11565 funct3: 0x0,
11566 rs1: 0x1,
11567 rs2: 0x0,
11568 csr: 0x0,
11569 funct7: 0x0,
11570 },
11571 Opcode::CANDI => Inst {
11572 opcode: 0x1,
11573 funct3: 0x0,
11574 rs1: 0x1,
11575 rs2: 0x0,
11576 csr: 0x0,
11577 funct7: 0x0,
11578 },
11579 Opcode::CBEQZ => Inst {
11580 opcode: 0x1,
11581 funct3: 0x4,
11582 rs1: 0x1,
11583 rs2: 0x0,
11584 csr: 0x0,
11585 funct7: 0x0,
11586 },
11587 Opcode::CBNEZ => Inst {
11588 opcode: 0x1,
11589 funct3: 0x6,
11590 rs1: 0x1,
11591 rs2: 0x0,
11592 csr: 0x0,
11593 funct7: 0x0,
11594 },
11595 Opcode::CEBREAK => Inst {
11596 opcode: 0x2,
11597 funct3: 0x1,
11598 rs1: 0x1,
11599 rs2: 0x0,
11600 csr: 0x0,
11601 funct7: 0x0,
11602 },
11603 Opcode::CFLD => Inst {
11604 opcode: 0x0,
11605 funct3: 0x2,
11606 rs1: 0x0,
11607 rs2: 0x0,
11608 csr: 0x0,
11609 funct7: 0x0,
11610 },
11611 Opcode::CFLDSP => Inst {
11612 opcode: 0x2,
11613 funct3: 0x2,
11614 rs1: 0x0,
11615 rs2: 0x0,
11616 csr: 0x0,
11617 funct7: 0x0,
11618 },
11619 Opcode::CFLW => Inst {
11620 opcode: 0x0,
11621 funct3: 0x6,
11622 rs1: 0x0,
11623 rs2: 0x0,
11624 csr: 0x0,
11625 funct7: 0x0,
11626 },
11627 Opcode::CFLWSP => Inst {
11628 opcode: 0x2,
11629 funct3: 0x6,
11630 rs1: 0x0,
11631 rs2: 0x0,
11632 csr: 0x0,
11633 funct7: 0x0,
11634 },
11635 Opcode::CFSD => Inst {
11636 opcode: 0x0,
11637 funct3: 0x2,
11638 rs1: 0x1,
11639 rs2: 0x0,
11640 csr: 0x0,
11641 funct7: 0x0,
11642 },
11643 Opcode::CFSDSP => Inst {
11644 opcode: 0x2,
11645 funct3: 0x2,
11646 rs1: 0x1,
11647 rs2: 0x0,
11648 csr: 0x0,
11649 funct7: 0x0,
11650 },
11651 Opcode::CFSW => Inst {
11652 opcode: 0x0,
11653 funct3: 0x6,
11654 rs1: 0x1,
11655 rs2: 0x0,
11656 csr: 0x0,
11657 funct7: 0x0,
11658 },
11659 Opcode::CFSWSP => Inst {
11660 opcode: 0x2,
11661 funct3: 0x6,
11662 rs1: 0x1,
11663 rs2: 0x0,
11664 csr: 0x0,
11665 funct7: 0x0,
11666 },
11667 Opcode::CJ => Inst {
11668 opcode: 0x1,
11669 funct3: 0x2,
11670 rs1: 0x1,
11671 rs2: 0x0,
11672 csr: 0x0,
11673 funct7: 0x0,
11674 },
11675 Opcode::CJAL => Inst {
11676 opcode: 0x1,
11677 funct3: 0x2,
11678 rs1: 0x0,
11679 rs2: 0x0,
11680 csr: 0x0,
11681 funct7: 0x0,
11682 },
11683 Opcode::CJALR => Inst {
11684 opcode: 0x2,
11685 funct3: 0x1,
11686 rs1: 0x1,
11687 rs2: 0x0,
11688 csr: 0x0,
11689 funct7: 0x0,
11690 },
11691 Opcode::CJR => Inst {
11692 opcode: 0x2,
11693 funct3: 0x0,
11694 rs1: 0x1,
11695 rs2: 0x0,
11696 csr: 0x0,
11697 funct7: 0x0,
11698 },
11699 Opcode::CLBU => Inst {
11700 opcode: 0x0,
11701 funct3: 0x0,
11702 rs1: 0x1,
11703 rs2: 0x0,
11704 csr: 0x0,
11705 funct7: 0x0,
11706 },
11707 Opcode::CLD => Inst {
11708 opcode: 0x0,
11709 funct3: 0x6,
11710 rs1: 0x0,
11711 rs2: 0x0,
11712 csr: 0x0,
11713 funct7: 0x0,
11714 },
11715 Opcode::CLDSP => Inst {
11716 opcode: 0x2,
11717 funct3: 0x6,
11718 rs1: 0x0,
11719 rs2: 0x0,
11720 csr: 0x0,
11721 funct7: 0x0,
11722 },
11723 Opcode::CLH => Inst {
11724 opcode: 0x40,
11725 funct3: 0x0,
11726 rs1: 0x1,
11727 rs2: 0x0,
11728 csr: 0x0,
11729 funct7: 0x0,
11730 },
11731 Opcode::CLHU => Inst {
11732 opcode: 0x0,
11733 funct3: 0x0,
11734 rs1: 0x1,
11735 rs2: 0x0,
11736 csr: 0x0,
11737 funct7: 0x0,
11738 },
11739 Opcode::CLI => Inst {
11740 opcode: 0x1,
11741 funct3: 0x4,
11742 rs1: 0x0,
11743 rs2: 0x0,
11744 csr: 0x0,
11745 funct7: 0x0,
11746 },
11747 Opcode::CLUI => Inst {
11748 opcode: 0x1,
11749 funct3: 0x6,
11750 rs1: 0x0,
11751 rs2: 0x0,
11752 csr: 0x0,
11753 funct7: 0x0,
11754 },
11755 Opcode::CLW => Inst {
11756 opcode: 0x0,
11757 funct3: 0x4,
11758 rs1: 0x0,
11759 rs2: 0x0,
11760 csr: 0x0,
11761 funct7: 0x0,
11762 },
11763 Opcode::CLWSP => Inst {
11764 opcode: 0x2,
11765 funct3: 0x4,
11766 rs1: 0x0,
11767 rs2: 0x0,
11768 csr: 0x0,
11769 funct7: 0x0,
11770 },
11771 Opcode::CMOP1 => Inst {
11772 opcode: 0x1,
11773 funct3: 0x6,
11774 rs1: 0x0,
11775 rs2: 0x0,
11776 csr: 0x0,
11777 funct7: 0x0,
11778 },
11779 Opcode::CMOP11 => Inst {
11780 opcode: 0x1,
11781 funct3: 0x6,
11782 rs1: 0x0,
11783 rs2: 0x0,
11784 csr: 0x0,
11785 funct7: 0x0,
11786 },
11787 Opcode::CMOP13 => Inst {
11788 opcode: 0x1,
11789 funct3: 0x6,
11790 rs1: 0x0,
11791 rs2: 0x0,
11792 csr: 0x0,
11793 funct7: 0x0,
11794 },
11795 Opcode::CMOP15 => Inst {
11796 opcode: 0x1,
11797 funct3: 0x6,
11798 rs1: 0x0,
11799 rs2: 0x0,
11800 csr: 0x0,
11801 funct7: 0x0,
11802 },
11803 Opcode::CMOP3 => Inst {
11804 opcode: 0x1,
11805 funct3: 0x6,
11806 rs1: 0x0,
11807 rs2: 0x0,
11808 csr: 0x0,
11809 funct7: 0x0,
11810 },
11811 Opcode::CMOP5 => Inst {
11812 opcode: 0x1,
11813 funct3: 0x6,
11814 rs1: 0x0,
11815 rs2: 0x0,
11816 csr: 0x0,
11817 funct7: 0x0,
11818 },
11819 Opcode::CMOP7 => Inst {
11820 opcode: 0x1,
11821 funct3: 0x6,
11822 rs1: 0x0,
11823 rs2: 0x0,
11824 csr: 0x0,
11825 funct7: 0x0,
11826 },
11827 Opcode::CMOP9 => Inst {
11828 opcode: 0x1,
11829 funct3: 0x6,
11830 rs1: 0x0,
11831 rs2: 0x0,
11832 csr: 0x0,
11833 funct7: 0x0,
11834 },
11835 Opcode::CMOPN => Inst {
11836 opcode: 0x1,
11837 funct3: 0x6,
11838 rs1: 0x0,
11839 rs2: 0x0,
11840 csr: 0x0,
11841 funct7: 0x0,
11842 },
11843 Opcode::CMUL => Inst {
11844 opcode: 0x41,
11845 funct3: 0x1,
11846 rs1: 0x1,
11847 rs2: 0x0,
11848 csr: 0x0,
11849 funct7: 0x0,
11850 },
11851 Opcode::CMV => Inst {
11852 opcode: 0x2,
11853 funct3: 0x0,
11854 rs1: 0x1,
11855 rs2: 0x0,
11856 csr: 0x0,
11857 funct7: 0x0,
11858 },
11859 Opcode::CNOP => Inst {
11860 opcode: 0x1,
11861 funct3: 0x0,
11862 rs1: 0x0,
11863 rs2: 0x0,
11864 csr: 0x0,
11865 funct7: 0x0,
11866 },
11867 Opcode::CNOT => Inst {
11868 opcode: 0x75,
11869 funct3: 0x1,
11870 rs1: 0x1,
11871 rs2: 0x0,
11872 csr: 0x0,
11873 funct7: 0x0,
11874 },
11875 Opcode::CNTLALL => Inst {
11876 opcode: 0x16,
11877 funct3: 0x1,
11878 rs1: 0x1,
11879 rs2: 0x0,
11880 csr: 0x0,
11881 funct7: 0x0,
11882 },
11883 Opcode::CNTLP1 => Inst {
11884 opcode: 0xa,
11885 funct3: 0x1,
11886 rs1: 0x1,
11887 rs2: 0x0,
11888 csr: 0x0,
11889 funct7: 0x0,
11890 },
11891 Opcode::CNTLPALL => Inst {
11892 opcode: 0xe,
11893 funct3: 0x1,
11894 rs1: 0x1,
11895 rs2: 0x0,
11896 csr: 0x0,
11897 funct7: 0x0,
11898 },
11899 Opcode::CNTLS1 => Inst {
11900 opcode: 0x12,
11901 funct3: 0x1,
11902 rs1: 0x1,
11903 rs2: 0x0,
11904 csr: 0x0,
11905 funct7: 0x0,
11906 },
11907 Opcode::COR => Inst {
11908 opcode: 0x41,
11909 funct3: 0x0,
11910 rs1: 0x1,
11911 rs2: 0x0,
11912 csr: 0x0,
11913 funct7: 0x0,
11914 },
11915 Opcode::CSB => Inst {
11916 opcode: 0x0,
11917 funct3: 0x0,
11918 rs1: 0x1,
11919 rs2: 0x0,
11920 csr: 0x0,
11921 funct7: 0x0,
11922 },
11923 Opcode::CSD => Inst {
11924 opcode: 0x0,
11925 funct3: 0x6,
11926 rs1: 0x1,
11927 rs2: 0x0,
11928 csr: 0x0,
11929 funct7: 0x0,
11930 },
11931 Opcode::CSDSP => Inst {
11932 opcode: 0x2,
11933 funct3: 0x6,
11934 rs1: 0x1,
11935 rs2: 0x0,
11936 csr: 0x0,
11937 funct7: 0x0,
11938 },
11939 Opcode::CSEXTB => Inst {
11940 opcode: 0x65,
11941 funct3: 0x1,
11942 rs1: 0x1,
11943 rs2: 0x0,
11944 csr: 0x0,
11945 funct7: 0x0,
11946 },
11947 Opcode::CSEXTH => Inst {
11948 opcode: 0x6d,
11949 funct3: 0x1,
11950 rs1: 0x1,
11951 rs2: 0x0,
11952 csr: 0x0,
11953 funct7: 0x0,
11954 },
11955 Opcode::CSEXTW => Inst {
11956 opcode: 0x1,
11957 funct3: 0x2,
11958 rs1: 0x0,
11959 rs2: 0x0,
11960 csr: 0x0,
11961 funct7: 0x0,
11962 },
11963 Opcode::CSH => Inst {
11964 opcode: 0x0,
11965 funct3: 0x0,
11966 rs1: 0x1,
11967 rs2: 0x0,
11968 csr: 0x0,
11969 funct7: 0x0,
11970 },
11971 Opcode::CSLLI => Inst {
11972 opcode: 0x2,
11973 funct3: 0x0,
11974 rs1: 0x0,
11975 rs2: 0x0,
11976 csr: 0x0,
11977 funct7: 0x0,
11978 },
11979 Opcode::CSLLIRV32 => Inst {
11980 opcode: 0x2,
11981 funct3: 0x0,
11982 rs1: 0x0,
11983 rs2: 0x0,
11984 csr: 0x0,
11985 funct7: 0x0,
11986 },
11987 Opcode::CSRAI => Inst {
11988 opcode: 0x1,
11989 funct3: 0x0,
11990 rs1: 0x1,
11991 rs2: 0x0,
11992 csr: 0x0,
11993 funct7: 0x0,
11994 },
11995 Opcode::CSRAIRV32 => Inst {
11996 opcode: 0x1,
11997 funct3: 0x0,
11998 rs1: 0x1,
11999 rs2: 0x0,
12000 csr: 0x0,
12001 funct7: 0x0,
12002 },
12003 Opcode::CSRLI => Inst {
12004 opcode: 0x1,
12005 funct3: 0x0,
12006 rs1: 0x1,
12007 rs2: 0x0,
12008 csr: 0x0,
12009 funct7: 0x0,
12010 },
12011 Opcode::CSRLIRV32 => Inst {
12012 opcode: 0x1,
12013 funct3: 0x0,
12014 rs1: 0x1,
12015 rs2: 0x0,
12016 csr: 0x0,
12017 funct7: 0x0,
12018 },
12019 Opcode::CSUB => Inst {
12020 opcode: 0x1,
12021 funct3: 0x0,
12022 rs1: 0x1,
12023 rs2: 0x0,
12024 csr: 0x0,
12025 funct7: 0x0,
12026 },
12027 Opcode::CSUBW => Inst {
12028 opcode: 0x1,
12029 funct3: 0x1,
12030 rs1: 0x1,
12031 rs2: 0x0,
12032 csr: 0x0,
12033 funct7: 0x0,
12034 },
12035 Opcode::CSW => Inst {
12036 opcode: 0x0,
12037 funct3: 0x4,
12038 rs1: 0x1,
12039 rs2: 0x0,
12040 csr: 0x0,
12041 funct7: 0x0,
12042 },
12043 Opcode::CSWSP => Inst {
12044 opcode: 0x2,
12045 funct3: 0x4,
12046 rs1: 0x1,
12047 rs2: 0x0,
12048 csr: 0x0,
12049 funct7: 0x0,
12050 },
12051 Opcode::CXOR => Inst {
12052 opcode: 0x21,
12053 funct3: 0x0,
12054 rs1: 0x1,
12055 rs2: 0x0,
12056 csr: 0x0,
12057 funct7: 0x0,
12058 },
12059 Opcode::CZEXTB => Inst {
12060 opcode: 0x61,
12061 funct3: 0x1,
12062 rs1: 0x1,
12063 rs2: 0x0,
12064 csr: 0x0,
12065 funct7: 0x0,
12066 },
12067 Opcode::CZEXTH => Inst {
12068 opcode: 0x69,
12069 funct3: 0x1,
12070 rs1: 0x1,
12071 rs2: 0x0,
12072 csr: 0x0,
12073 funct7: 0x0,
12074 },
12075 Opcode::CZEXTW => Inst {
12076 opcode: 0x71,
12077 funct3: 0x1,
12078 rs1: 0x1,
12079 rs2: 0x0,
12080 csr: 0x0,
12081 funct7: 0x0,
12082 },
12083 Opcode::CBOCLEAN => Inst {
12084 opcode: 0xf,
12085 funct3: 0x2,
12086 rs1: 0x0,
12087 rs2: 0x1,
12088 csr: 0x1,
12089 funct7: 0x0,
12090 },
12091 Opcode::CBOFLUSH => Inst {
12092 opcode: 0xf,
12093 funct3: 0x2,
12094 rs1: 0x0,
12095 rs2: 0x2,
12096 csr: 0x2,
12097 funct7: 0x0,
12098 },
12099 Opcode::CBOINVAL => Inst {
12100 opcode: 0xf,
12101 funct3: 0x2,
12102 rs1: 0x0,
12103 rs2: 0x0,
12104 csr: 0x0,
12105 funct7: 0x0,
12106 },
12107 Opcode::CBOZERO => Inst {
12108 opcode: 0xf,
12109 funct3: 0x2,
12110 rs1: 0x0,
12111 rs2: 0x4,
12112 csr: 0x4,
12113 funct7: 0x0,
12114 },
12115 Opcode::CLMUL => Inst {
12116 opcode: 0x33,
12117 funct3: 0x1,
12118 rs1: 0x0,
12119 rs2: 0x0,
12120 csr: 0xa0,
12121 funct7: 0x5,
12122 },
12123 Opcode::CLMULH => Inst {
12124 opcode: 0x33,
12125 funct3: 0x3,
12126 rs1: 0x0,
12127 rs2: 0x0,
12128 csr: 0xa0,
12129 funct7: 0x5,
12130 },
12131 Opcode::CLMULR => Inst {
12132 opcode: 0x33,
12133 funct3: 0x2,
12134 rs1: 0x0,
12135 rs2: 0x0,
12136 csr: 0xa0,
12137 funct7: 0x5,
12138 },
12139 Opcode::CLZ => Inst {
12140 opcode: 0x13,
12141 funct3: 0x1,
12142 rs1: 0x0,
12143 rs2: 0x0,
12144 csr: 0x600,
12145 funct7: 0x30,
12146 },
12147 Opcode::CLZW => Inst {
12148 opcode: 0x1b,
12149 funct3: 0x1,
12150 rs1: 0x0,
12151 rs2: 0x0,
12152 csr: 0x600,
12153 funct7: 0x30,
12154 },
12155 Opcode::CMJALT => Inst {
12156 opcode: 0x2,
12157 funct3: 0x2,
12158 rs1: 0x1,
12159 rs2: 0x0,
12160 csr: 0x0,
12161 funct7: 0x0,
12162 },
12163 Opcode::CMMVA01S => Inst {
12164 opcode: 0x62,
12165 funct3: 0x2,
12166 rs1: 0x1,
12167 rs2: 0x0,
12168 csr: 0x0,
12169 funct7: 0x0,
12170 },
12171 Opcode::CMMVSA01 => Inst {
12172 opcode: 0x22,
12173 funct3: 0x2,
12174 rs1: 0x1,
12175 rs2: 0x0,
12176 csr: 0x0,
12177 funct7: 0x0,
12178 },
12179 Opcode::CMPOP => Inst {
12180 opcode: 0x2,
12181 funct3: 0x3,
12182 rs1: 0x1,
12183 rs2: 0x0,
12184 csr: 0x0,
12185 funct7: 0x0,
12186 },
12187 Opcode::CMPOPRET => Inst {
12188 opcode: 0x2,
12189 funct3: 0x3,
12190 rs1: 0x1,
12191 rs2: 0x0,
12192 csr: 0x0,
12193 funct7: 0x0,
12194 },
12195 Opcode::CMPOPRETZ => Inst {
12196 opcode: 0x2,
12197 funct3: 0x3,
12198 rs1: 0x1,
12199 rs2: 0x0,
12200 csr: 0x0,
12201 funct7: 0x0,
12202 },
12203 Opcode::CMPUSH => Inst {
12204 opcode: 0x2,
12205 funct3: 0x3,
12206 rs1: 0x1,
12207 rs2: 0x0,
12208 csr: 0x0,
12209 funct7: 0x0,
12210 },
12211 Opcode::CPOP => Inst {
12212 opcode: 0x13,
12213 funct3: 0x1,
12214 rs1: 0x0,
12215 rs2: 0x2,
12216 csr: 0x602,
12217 funct7: 0x30,
12218 },
12219 Opcode::CPOPW => Inst {
12220 opcode: 0x1b,
12221 funct3: 0x1,
12222 rs1: 0x0,
12223 rs2: 0x2,
12224 csr: 0x602,
12225 funct7: 0x30,
12226 },
12227 Opcode::CSRC => Inst {
12228 opcode: 0x73,
12229 funct3: 0x3,
12230 rs1: 0x0,
12231 rs2: 0x0,
12232 csr: 0x0,
12233 funct7: 0x0,
12234 },
12235 Opcode::CSRCI => Inst {
12236 opcode: 0x73,
12237 funct3: 0x7,
12238 rs1: 0x0,
12239 rs2: 0x0,
12240 csr: 0x0,
12241 funct7: 0x0,
12242 },
12243 Opcode::CSRR => Inst {
12244 opcode: 0x73,
12245 funct3: 0x2,
12246 rs1: 0x0,
12247 rs2: 0x0,
12248 csr: 0x0,
12249 funct7: 0x0,
12250 },
12251 Opcode::CSRRC => Inst {
12252 opcode: 0x73,
12253 funct3: 0x3,
12254 rs1: 0x0,
12255 rs2: 0x0,
12256 csr: 0x0,
12257 funct7: 0x0,
12258 },
12259 Opcode::CSRRCI => Inst {
12260 opcode: 0x73,
12261 funct3: 0x7,
12262 rs1: 0x0,
12263 rs2: 0x0,
12264 csr: 0x0,
12265 funct7: 0x0,
12266 },
12267 Opcode::CSRRS => Inst {
12268 opcode: 0x73,
12269 funct3: 0x2,
12270 rs1: 0x0,
12271 rs2: 0x0,
12272 csr: 0x0,
12273 funct7: 0x0,
12274 },
12275 Opcode::CSRRSI => Inst {
12276 opcode: 0x73,
12277 funct3: 0x6,
12278 rs1: 0x0,
12279 rs2: 0x0,
12280 csr: 0x0,
12281 funct7: 0x0,
12282 },
12283 Opcode::CSRRW => Inst {
12284 opcode: 0x73,
12285 funct3: 0x1,
12286 rs1: 0x0,
12287 rs2: 0x0,
12288 csr: 0x0,
12289 funct7: 0x0,
12290 },
12291 Opcode::CSRRWI => Inst {
12292 opcode: 0x73,
12293 funct3: 0x5,
12294 rs1: 0x0,
12295 rs2: 0x0,
12296 csr: 0x0,
12297 funct7: 0x0,
12298 },
12299 Opcode::CSRS => Inst {
12300 opcode: 0x73,
12301 funct3: 0x2,
12302 rs1: 0x0,
12303 rs2: 0x0,
12304 csr: 0x0,
12305 funct7: 0x0,
12306 },
12307 Opcode::CSRSI => Inst {
12308 opcode: 0x73,
12309 funct3: 0x6,
12310 rs1: 0x0,
12311 rs2: 0x0,
12312 csr: 0x0,
12313 funct7: 0x0,
12314 },
12315 Opcode::CSRW => Inst {
12316 opcode: 0x73,
12317 funct3: 0x1,
12318 rs1: 0x0,
12319 rs2: 0x0,
12320 csr: 0x0,
12321 funct7: 0x0,
12322 },
12323 Opcode::CSRWI => Inst {
12324 opcode: 0x73,
12325 funct3: 0x5,
12326 rs1: 0x0,
12327 rs2: 0x0,
12328 csr: 0x0,
12329 funct7: 0x0,
12330 },
12331 Opcode::CTZ => Inst {
12332 opcode: 0x13,
12333 funct3: 0x1,
12334 rs1: 0x0,
12335 rs2: 0x1,
12336 csr: 0x601,
12337 funct7: 0x30,
12338 },
12339 Opcode::CTZW => Inst {
12340 opcode: 0x1b,
12341 funct3: 0x1,
12342 rs1: 0x0,
12343 rs2: 0x1,
12344 csr: 0x601,
12345 funct7: 0x30,
12346 },
12347 Opcode::CZEROEQZ => Inst {
12348 opcode: 0x33,
12349 funct3: 0x5,
12350 rs1: 0x0,
12351 rs2: 0x0,
12352 csr: 0xe0,
12353 funct7: 0x7,
12354 },
12355 Opcode::CZERONEZ => Inst {
12356 opcode: 0x33,
12357 funct3: 0x7,
12358 rs1: 0x0,
12359 rs2: 0x0,
12360 csr: 0xe0,
12361 funct7: 0x7,
12362 },
12363 Opcode::DIV => Inst {
12364 opcode: 0x33,
12365 funct3: 0x4,
12366 rs1: 0x0,
12367 rs2: 0x0,
12368 csr: 0x20,
12369 funct7: 0x1,
12370 },
12371 Opcode::DIVU => Inst {
12372 opcode: 0x33,
12373 funct3: 0x5,
12374 rs1: 0x0,
12375 rs2: 0x0,
12376 csr: 0x20,
12377 funct7: 0x1,
12378 },
12379 Opcode::DIVUW => Inst {
12380 opcode: 0x3b,
12381 funct3: 0x5,
12382 rs1: 0x0,
12383 rs2: 0x0,
12384 csr: 0x20,
12385 funct7: 0x1,
12386 },
12387 Opcode::DIVW => Inst {
12388 opcode: 0x3b,
12389 funct3: 0x4,
12390 rs1: 0x0,
12391 rs2: 0x0,
12392 csr: 0x20,
12393 funct7: 0x1,
12394 },
12395 Opcode::DRET => Inst {
12396 opcode: 0x73,
12397 funct3: 0x0,
12398 rs1: 0x0,
12399 rs2: 0x12,
12400 csr: 0x7b2,
12401 funct7: 0x3d,
12402 },
12403 Opcode::EBREAK => Inst {
12404 opcode: 0x73,
12405 funct3: 0x0,
12406 rs1: 0x0,
12407 rs2: 0x1,
12408 csr: 0x1,
12409 funct7: 0x0,
12410 },
12411 Opcode::ECALL => Inst {
12412 opcode: 0x73,
12413 funct3: 0x0,
12414 rs1: 0x0,
12415 rs2: 0x0,
12416 csr: 0x0,
12417 funct7: 0x0,
12418 },
12419 Opcode::FABSD => Inst {
12420 opcode: 0x53,
12421 funct3: 0x2,
12422 rs1: 0x0,
12423 rs2: 0x0,
12424 csr: 0x220,
12425 funct7: 0x11,
12426 },
12427 Opcode::FABSH => Inst {
12428 opcode: 0x53,
12429 funct3: 0x2,
12430 rs1: 0x0,
12431 rs2: 0x0,
12432 csr: 0x240,
12433 funct7: 0x12,
12434 },
12435 Opcode::FABSQ => Inst {
12436 opcode: 0x53,
12437 funct3: 0x2,
12438 rs1: 0x0,
12439 rs2: 0x0,
12440 csr: 0x260,
12441 funct7: 0x13,
12442 },
12443 Opcode::FABSS => Inst {
12444 opcode: 0x53,
12445 funct3: 0x2,
12446 rs1: 0x0,
12447 rs2: 0x0,
12448 csr: 0x200,
12449 funct7: 0x10,
12450 },
12451 Opcode::FADDD => Inst {
12452 opcode: 0x53,
12453 funct3: 0x0,
12454 rs1: 0x0,
12455 rs2: 0x0,
12456 csr: 0x20,
12457 funct7: 0x1,
12458 },
12459 Opcode::FADDH => Inst {
12460 opcode: 0x53,
12461 funct3: 0x0,
12462 rs1: 0x0,
12463 rs2: 0x0,
12464 csr: 0x40,
12465 funct7: 0x2,
12466 },
12467 Opcode::FADDQ => Inst {
12468 opcode: 0x53,
12469 funct3: 0x0,
12470 rs1: 0x0,
12471 rs2: 0x0,
12472 csr: 0x60,
12473 funct7: 0x3,
12474 },
12475 Opcode::FADDS => Inst {
12476 opcode: 0x53,
12477 funct3: 0x0,
12478 rs1: 0x0,
12479 rs2: 0x0,
12480 csr: 0x0,
12481 funct7: 0x0,
12482 },
12483 Opcode::FCLASSD => Inst {
12484 opcode: 0x53,
12485 funct3: 0x1,
12486 rs1: 0x0,
12487 rs2: 0x0,
12488 csr: 0xe20,
12489 funct7: 0x71,
12490 },
12491 Opcode::FCLASSH => Inst {
12492 opcode: 0x53,
12493 funct3: 0x1,
12494 rs1: 0x0,
12495 rs2: 0x0,
12496 csr: 0xe40,
12497 funct7: 0x72,
12498 },
12499 Opcode::FCLASSQ => Inst {
12500 opcode: 0x53,
12501 funct3: 0x1,
12502 rs1: 0x0,
12503 rs2: 0x0,
12504 csr: 0xe60,
12505 funct7: 0x73,
12506 },
12507 Opcode::FCLASSS => Inst {
12508 opcode: 0x53,
12509 funct3: 0x1,
12510 rs1: 0x0,
12511 rs2: 0x0,
12512 csr: 0xe00,
12513 funct7: 0x70,
12514 },
12515 Opcode::FCVTDH => Inst {
12516 opcode: 0x53,
12517 funct3: 0x0,
12518 rs1: 0x0,
12519 rs2: 0x2,
12520 csr: 0x422,
12521 funct7: 0x21,
12522 },
12523 Opcode::FCVTDL => Inst {
12524 opcode: 0x53,
12525 funct3: 0x0,
12526 rs1: 0x0,
12527 rs2: 0x2,
12528 csr: 0xd22,
12529 funct7: 0x69,
12530 },
12531 Opcode::FCVTDLU => Inst {
12532 opcode: 0x53,
12533 funct3: 0x0,
12534 rs1: 0x0,
12535 rs2: 0x3,
12536 csr: 0xd23,
12537 funct7: 0x69,
12538 },
12539 Opcode::FCVTDQ => Inst {
12540 opcode: 0x53,
12541 funct3: 0x0,
12542 rs1: 0x0,
12543 rs2: 0x3,
12544 csr: 0x423,
12545 funct7: 0x21,
12546 },
12547 Opcode::FCVTDS => Inst {
12548 opcode: 0x53,
12549 funct3: 0x0,
12550 rs1: 0x0,
12551 rs2: 0x0,
12552 csr: 0x420,
12553 funct7: 0x21,
12554 },
12555 Opcode::FCVTDW => Inst {
12556 opcode: 0x53,
12557 funct3: 0x0,
12558 rs1: 0x0,
12559 rs2: 0x0,
12560 csr: 0xd20,
12561 funct7: 0x69,
12562 },
12563 Opcode::FCVTDWU => Inst {
12564 opcode: 0x53,
12565 funct3: 0x0,
12566 rs1: 0x0,
12567 rs2: 0x1,
12568 csr: 0xd21,
12569 funct7: 0x69,
12570 },
12571 Opcode::FCVTHD => Inst {
12572 opcode: 0x53,
12573 funct3: 0x0,
12574 rs1: 0x0,
12575 rs2: 0x1,
12576 csr: 0x441,
12577 funct7: 0x22,
12578 },
12579 Opcode::FCVTHL => Inst {
12580 opcode: 0x53,
12581 funct3: 0x0,
12582 rs1: 0x0,
12583 rs2: 0x2,
12584 csr: 0xd42,
12585 funct7: 0x6a,
12586 },
12587 Opcode::FCVTHLU => Inst {
12588 opcode: 0x53,
12589 funct3: 0x0,
12590 rs1: 0x0,
12591 rs2: 0x3,
12592 csr: 0xd43,
12593 funct7: 0x6a,
12594 },
12595 Opcode::FCVTHQ => Inst {
12596 opcode: 0x53,
12597 funct3: 0x0,
12598 rs1: 0x0,
12599 rs2: 0x3,
12600 csr: 0x443,
12601 funct7: 0x22,
12602 },
12603 Opcode::FCVTHS => Inst {
12604 opcode: 0x53,
12605 funct3: 0x0,
12606 rs1: 0x0,
12607 rs2: 0x0,
12608 csr: 0x440,
12609 funct7: 0x22,
12610 },
12611 Opcode::FCVTHW => Inst {
12612 opcode: 0x53,
12613 funct3: 0x0,
12614 rs1: 0x0,
12615 rs2: 0x0,
12616 csr: 0xd40,
12617 funct7: 0x6a,
12618 },
12619 Opcode::FCVTHWU => Inst {
12620 opcode: 0x53,
12621 funct3: 0x0,
12622 rs1: 0x0,
12623 rs2: 0x1,
12624 csr: 0xd41,
12625 funct7: 0x6a,
12626 },
12627 Opcode::FCVTLD => Inst {
12628 opcode: 0x53,
12629 funct3: 0x0,
12630 rs1: 0x0,
12631 rs2: 0x2,
12632 csr: 0xc22,
12633 funct7: 0x61,
12634 },
12635 Opcode::FCVTLH => Inst {
12636 opcode: 0x53,
12637 funct3: 0x0,
12638 rs1: 0x0,
12639 rs2: 0x2,
12640 csr: 0xc42,
12641 funct7: 0x62,
12642 },
12643 Opcode::FCVTLQ => Inst {
12644 opcode: 0x53,
12645 funct3: 0x0,
12646 rs1: 0x0,
12647 rs2: 0x2,
12648 csr: 0xc62,
12649 funct7: 0x63,
12650 },
12651 Opcode::FCVTLS => Inst {
12652 opcode: 0x53,
12653 funct3: 0x0,
12654 rs1: 0x0,
12655 rs2: 0x2,
12656 csr: 0xc02,
12657 funct7: 0x60,
12658 },
12659 Opcode::FCVTLUD => Inst {
12660 opcode: 0x53,
12661 funct3: 0x0,
12662 rs1: 0x0,
12663 rs2: 0x3,
12664 csr: 0xc23,
12665 funct7: 0x61,
12666 },
12667 Opcode::FCVTLUH => Inst {
12668 opcode: 0x53,
12669 funct3: 0x0,
12670 rs1: 0x0,
12671 rs2: 0x3,
12672 csr: 0xc43,
12673 funct7: 0x62,
12674 },
12675 Opcode::FCVTLUQ => Inst {
12676 opcode: 0x53,
12677 funct3: 0x0,
12678 rs1: 0x0,
12679 rs2: 0x3,
12680 csr: 0xc63,
12681 funct7: 0x63,
12682 },
12683 Opcode::FCVTLUS => Inst {
12684 opcode: 0x53,
12685 funct3: 0x0,
12686 rs1: 0x0,
12687 rs2: 0x3,
12688 csr: 0xc03,
12689 funct7: 0x60,
12690 },
12691 Opcode::FCVTQD => Inst {
12692 opcode: 0x53,
12693 funct3: 0x0,
12694 rs1: 0x0,
12695 rs2: 0x1,
12696 csr: 0x461,
12697 funct7: 0x23,
12698 },
12699 Opcode::FCVTQH => Inst {
12700 opcode: 0x53,
12701 funct3: 0x0,
12702 rs1: 0x0,
12703 rs2: 0x2,
12704 csr: 0x462,
12705 funct7: 0x23,
12706 },
12707 Opcode::FCVTQL => Inst {
12708 opcode: 0x53,
12709 funct3: 0x0,
12710 rs1: 0x0,
12711 rs2: 0x2,
12712 csr: 0xd62,
12713 funct7: 0x6b,
12714 },
12715 Opcode::FCVTQLU => Inst {
12716 opcode: 0x53,
12717 funct3: 0x0,
12718 rs1: 0x0,
12719 rs2: 0x3,
12720 csr: 0xd63,
12721 funct7: 0x6b,
12722 },
12723 Opcode::FCVTQS => Inst {
12724 opcode: 0x53,
12725 funct3: 0x0,
12726 rs1: 0x0,
12727 rs2: 0x0,
12728 csr: 0x460,
12729 funct7: 0x23,
12730 },
12731 Opcode::FCVTQW => Inst {
12732 opcode: 0x53,
12733 funct3: 0x0,
12734 rs1: 0x0,
12735 rs2: 0x0,
12736 csr: 0xd60,
12737 funct7: 0x6b,
12738 },
12739 Opcode::FCVTQWU => Inst {
12740 opcode: 0x53,
12741 funct3: 0x0,
12742 rs1: 0x0,
12743 rs2: 0x1,
12744 csr: 0xd61,
12745 funct7: 0x6b,
12746 },
12747 Opcode::FCVTSD => Inst {
12748 opcode: 0x53,
12749 funct3: 0x0,
12750 rs1: 0x0,
12751 rs2: 0x1,
12752 csr: 0x401,
12753 funct7: 0x20,
12754 },
12755 Opcode::FCVTSH => Inst {
12756 opcode: 0x53,
12757 funct3: 0x0,
12758 rs1: 0x0,
12759 rs2: 0x2,
12760 csr: 0x402,
12761 funct7: 0x20,
12762 },
12763 Opcode::FCVTSL => Inst {
12764 opcode: 0x53,
12765 funct3: 0x0,
12766 rs1: 0x0,
12767 rs2: 0x2,
12768 csr: 0xd02,
12769 funct7: 0x68,
12770 },
12771 Opcode::FCVTSLU => Inst {
12772 opcode: 0x53,
12773 funct3: 0x0,
12774 rs1: 0x0,
12775 rs2: 0x3,
12776 csr: 0xd03,
12777 funct7: 0x68,
12778 },
12779 Opcode::FCVTSQ => Inst {
12780 opcode: 0x53,
12781 funct3: 0x0,
12782 rs1: 0x0,
12783 rs2: 0x3,
12784 csr: 0x403,
12785 funct7: 0x20,
12786 },
12787 Opcode::FCVTSW => Inst {
12788 opcode: 0x53,
12789 funct3: 0x0,
12790 rs1: 0x0,
12791 rs2: 0x0,
12792 csr: 0xd00,
12793 funct7: 0x68,
12794 },
12795 Opcode::FCVTSWU => Inst {
12796 opcode: 0x53,
12797 funct3: 0x0,
12798 rs1: 0x0,
12799 rs2: 0x1,
12800 csr: 0xd01,
12801 funct7: 0x68,
12802 },
12803 Opcode::FCVTWD => Inst {
12804 opcode: 0x53,
12805 funct3: 0x0,
12806 rs1: 0x0,
12807 rs2: 0x0,
12808 csr: 0xc20,
12809 funct7: 0x61,
12810 },
12811 Opcode::FCVTWH => Inst {
12812 opcode: 0x53,
12813 funct3: 0x0,
12814 rs1: 0x0,
12815 rs2: 0x0,
12816 csr: 0xc40,
12817 funct7: 0x62,
12818 },
12819 Opcode::FCVTWQ => Inst {
12820 opcode: 0x53,
12821 funct3: 0x0,
12822 rs1: 0x0,
12823 rs2: 0x0,
12824 csr: 0xc60,
12825 funct7: 0x63,
12826 },
12827 Opcode::FCVTWS => Inst {
12828 opcode: 0x53,
12829 funct3: 0x0,
12830 rs1: 0x0,
12831 rs2: 0x0,
12832 csr: 0xc00,
12833 funct7: 0x60,
12834 },
12835 Opcode::FCVTWUD => Inst {
12836 opcode: 0x53,
12837 funct3: 0x0,
12838 rs1: 0x0,
12839 rs2: 0x1,
12840 csr: 0xc21,
12841 funct7: 0x61,
12842 },
12843 Opcode::FCVTWUH => Inst {
12844 opcode: 0x53,
12845 funct3: 0x0,
12846 rs1: 0x0,
12847 rs2: 0x1,
12848 csr: 0xc41,
12849 funct7: 0x62,
12850 },
12851 Opcode::FCVTWUQ => Inst {
12852 opcode: 0x53,
12853 funct3: 0x0,
12854 rs1: 0x0,
12855 rs2: 0x1,
12856 csr: 0xc61,
12857 funct7: 0x63,
12858 },
12859 Opcode::FCVTWUS => Inst {
12860 opcode: 0x53,
12861 funct3: 0x0,
12862 rs1: 0x0,
12863 rs2: 0x1,
12864 csr: 0xc01,
12865 funct7: 0x60,
12866 },
12867 Opcode::FCVTMODWD => Inst {
12868 opcode: 0x53,
12869 funct3: 0x1,
12870 rs1: 0x0,
12871 rs2: 0x8,
12872 csr: 0xc28,
12873 funct7: 0x61,
12874 },
12875 Opcode::FDIVD => Inst {
12876 opcode: 0x53,
12877 funct3: 0x0,
12878 rs1: 0x0,
12879 rs2: 0x0,
12880 csr: 0x1a0,
12881 funct7: 0xd,
12882 },
12883 Opcode::FDIVH => Inst {
12884 opcode: 0x53,
12885 funct3: 0x0,
12886 rs1: 0x0,
12887 rs2: 0x0,
12888 csr: 0x1c0,
12889 funct7: 0xe,
12890 },
12891 Opcode::FDIVQ => Inst {
12892 opcode: 0x53,
12893 funct3: 0x0,
12894 rs1: 0x0,
12895 rs2: 0x0,
12896 csr: 0x1e0,
12897 funct7: 0xf,
12898 },
12899 Opcode::FDIVS => Inst {
12900 opcode: 0x53,
12901 funct3: 0x0,
12902 rs1: 0x0,
12903 rs2: 0x0,
12904 csr: 0x180,
12905 funct7: 0xc,
12906 },
12907 Opcode::FENCE => Inst {
12908 opcode: 0xf,
12909 funct3: 0x0,
12910 rs1: 0x0,
12911 rs2: 0x0,
12912 csr: 0x0,
12913 funct7: 0x0,
12914 },
12915 Opcode::FENCEI => Inst {
12916 opcode: 0xf,
12917 funct3: 0x1,
12918 rs1: 0x0,
12919 rs2: 0x0,
12920 csr: 0x0,
12921 funct7: 0x0,
12922 },
12923 Opcode::FENCETSO => Inst {
12924 opcode: 0xf,
12925 funct3: 0x0,
12926 rs1: 0x0,
12927 rs2: 0x13,
12928 csr: 0x833,
12929 funct7: 0x41,
12930 },
12931 Opcode::FEQD => Inst {
12932 opcode: 0x53,
12933 funct3: 0x2,
12934 rs1: 0x0,
12935 rs2: 0x0,
12936 csr: 0xa20,
12937 funct7: 0x51,
12938 },
12939 Opcode::FEQH => Inst {
12940 opcode: 0x53,
12941 funct3: 0x2,
12942 rs1: 0x0,
12943 rs2: 0x0,
12944 csr: 0xa40,
12945 funct7: 0x52,
12946 },
12947 Opcode::FEQQ => Inst {
12948 opcode: 0x53,
12949 funct3: 0x2,
12950 rs1: 0x0,
12951 rs2: 0x0,
12952 csr: 0xa60,
12953 funct7: 0x53,
12954 },
12955 Opcode::FEQS => Inst {
12956 opcode: 0x53,
12957 funct3: 0x2,
12958 rs1: 0x0,
12959 rs2: 0x0,
12960 csr: 0xa00,
12961 funct7: 0x50,
12962 },
12963 Opcode::FLD => Inst {
12964 opcode: 0x7,
12965 funct3: 0x3,
12966 rs1: 0x0,
12967 rs2: 0x0,
12968 csr: 0x0,
12969 funct7: 0x0,
12970 },
12971 Opcode::FLED => Inst {
12972 opcode: 0x53,
12973 funct3: 0x0,
12974 rs1: 0x0,
12975 rs2: 0x0,
12976 csr: 0xa20,
12977 funct7: 0x51,
12978 },
12979 Opcode::FLEH => Inst {
12980 opcode: 0x53,
12981 funct3: 0x0,
12982 rs1: 0x0,
12983 rs2: 0x0,
12984 csr: 0xa40,
12985 funct7: 0x52,
12986 },
12987 Opcode::FLEQ => Inst {
12988 opcode: 0x53,
12989 funct3: 0x0,
12990 rs1: 0x0,
12991 rs2: 0x0,
12992 csr: 0xa60,
12993 funct7: 0x53,
12994 },
12995 Opcode::FLES => Inst {
12996 opcode: 0x53,
12997 funct3: 0x0,
12998 rs1: 0x0,
12999 rs2: 0x0,
13000 csr: 0xa00,
13001 funct7: 0x50,
13002 },
13003 Opcode::FLEQD => Inst {
13004 opcode: 0x53,
13005 funct3: 0x4,
13006 rs1: 0x0,
13007 rs2: 0x0,
13008 csr: 0xa20,
13009 funct7: 0x51,
13010 },
13011 Opcode::FLEQH => Inst {
13012 opcode: 0x53,
13013 funct3: 0x4,
13014 rs1: 0x0,
13015 rs2: 0x0,
13016 csr: 0xa40,
13017 funct7: 0x52,
13018 },
13019 Opcode::FLEQQ => Inst {
13020 opcode: 0x53,
13021 funct3: 0x4,
13022 rs1: 0x0,
13023 rs2: 0x0,
13024 csr: 0xa60,
13025 funct7: 0x53,
13026 },
13027 Opcode::FLEQS => Inst {
13028 opcode: 0x53,
13029 funct3: 0x4,
13030 rs1: 0x0,
13031 rs2: 0x0,
13032 csr: 0xa00,
13033 funct7: 0x50,
13034 },
13035 Opcode::FLH => Inst {
13036 opcode: 0x7,
13037 funct3: 0x1,
13038 rs1: 0x0,
13039 rs2: 0x0,
13040 csr: 0x0,
13041 funct7: 0x0,
13042 },
13043 Opcode::FLID => Inst {
13044 opcode: 0x53,
13045 funct3: 0x0,
13046 rs1: 0x0,
13047 rs2: 0x1,
13048 csr: 0xf21,
13049 funct7: 0x79,
13050 },
13051 Opcode::FLIH => Inst {
13052 opcode: 0x53,
13053 funct3: 0x0,
13054 rs1: 0x0,
13055 rs2: 0x1,
13056 csr: 0xf41,
13057 funct7: 0x7a,
13058 },
13059 Opcode::FLIQ => Inst {
13060 opcode: 0x53,
13061 funct3: 0x0,
13062 rs1: 0x0,
13063 rs2: 0x1,
13064 csr: 0xf61,
13065 funct7: 0x7b,
13066 },
13067 Opcode::FLIS => Inst {
13068 opcode: 0x53,
13069 funct3: 0x0,
13070 rs1: 0x0,
13071 rs2: 0x1,
13072 csr: 0xf01,
13073 funct7: 0x78,
13074 },
13075 Opcode::FLQ => Inst {
13076 opcode: 0x7,
13077 funct3: 0x4,
13078 rs1: 0x0,
13079 rs2: 0x0,
13080 csr: 0x0,
13081 funct7: 0x0,
13082 },
13083 Opcode::FLTD => Inst {
13084 opcode: 0x53,
13085 funct3: 0x1,
13086 rs1: 0x0,
13087 rs2: 0x0,
13088 csr: 0xa20,
13089 funct7: 0x51,
13090 },
13091 Opcode::FLTH => Inst {
13092 opcode: 0x53,
13093 funct3: 0x1,
13094 rs1: 0x0,
13095 rs2: 0x0,
13096 csr: 0xa40,
13097 funct7: 0x52,
13098 },
13099 Opcode::FLTQ => Inst {
13100 opcode: 0x53,
13101 funct3: 0x1,
13102 rs1: 0x0,
13103 rs2: 0x0,
13104 csr: 0xa60,
13105 funct7: 0x53,
13106 },
13107 Opcode::FLTS => Inst {
13108 opcode: 0x53,
13109 funct3: 0x1,
13110 rs1: 0x0,
13111 rs2: 0x0,
13112 csr: 0xa00,
13113 funct7: 0x50,
13114 },
13115 Opcode::FLTQD => Inst {
13116 opcode: 0x53,
13117 funct3: 0x5,
13118 rs1: 0x0,
13119 rs2: 0x0,
13120 csr: 0xa20,
13121 funct7: 0x51,
13122 },
13123 Opcode::FLTQH => Inst {
13124 opcode: 0x53,
13125 funct3: 0x5,
13126 rs1: 0x0,
13127 rs2: 0x0,
13128 csr: 0xa40,
13129 funct7: 0x52,
13130 },
13131 Opcode::FLTQQ => Inst {
13132 opcode: 0x53,
13133 funct3: 0x5,
13134 rs1: 0x0,
13135 rs2: 0x0,
13136 csr: 0xa60,
13137 funct7: 0x53,
13138 },
13139 Opcode::FLTQS => Inst {
13140 opcode: 0x53,
13141 funct3: 0x5,
13142 rs1: 0x0,
13143 rs2: 0x0,
13144 csr: 0xa00,
13145 funct7: 0x50,
13146 },
13147 Opcode::FLW => Inst {
13148 opcode: 0x7,
13149 funct3: 0x2,
13150 rs1: 0x0,
13151 rs2: 0x0,
13152 csr: 0x0,
13153 funct7: 0x0,
13154 },
13155 Opcode::FMADDD => Inst {
13156 opcode: 0x43,
13157 funct3: 0x0,
13158 rs1: 0x0,
13159 rs2: 0x0,
13160 csr: 0x20,
13161 funct7: 0x1,
13162 },
13163 Opcode::FMADDH => Inst {
13164 opcode: 0x43,
13165 funct3: 0x0,
13166 rs1: 0x0,
13167 rs2: 0x0,
13168 csr: 0x40,
13169 funct7: 0x2,
13170 },
13171 Opcode::FMADDQ => Inst {
13172 opcode: 0x43,
13173 funct3: 0x0,
13174 rs1: 0x0,
13175 rs2: 0x0,
13176 csr: 0x60,
13177 funct7: 0x3,
13178 },
13179 Opcode::FMADDS => Inst {
13180 opcode: 0x43,
13181 funct3: 0x0,
13182 rs1: 0x0,
13183 rs2: 0x0,
13184 csr: 0x0,
13185 funct7: 0x0,
13186 },
13187 Opcode::FMAXD => Inst {
13188 opcode: 0x53,
13189 funct3: 0x1,
13190 rs1: 0x0,
13191 rs2: 0x0,
13192 csr: 0x2a0,
13193 funct7: 0x15,
13194 },
13195 Opcode::FMAXH => Inst {
13196 opcode: 0x53,
13197 funct3: 0x1,
13198 rs1: 0x0,
13199 rs2: 0x0,
13200 csr: 0x2c0,
13201 funct7: 0x16,
13202 },
13203 Opcode::FMAXQ => Inst {
13204 opcode: 0x53,
13205 funct3: 0x1,
13206 rs1: 0x0,
13207 rs2: 0x0,
13208 csr: 0x2e0,
13209 funct7: 0x17,
13210 },
13211 Opcode::FMAXS => Inst {
13212 opcode: 0x53,
13213 funct3: 0x1,
13214 rs1: 0x0,
13215 rs2: 0x0,
13216 csr: 0x280,
13217 funct7: 0x14,
13218 },
13219 Opcode::FMAXMD => Inst {
13220 opcode: 0x53,
13221 funct3: 0x3,
13222 rs1: 0x0,
13223 rs2: 0x0,
13224 csr: 0x2a0,
13225 funct7: 0x15,
13226 },
13227 Opcode::FMAXMH => Inst {
13228 opcode: 0x53,
13229 funct3: 0x3,
13230 rs1: 0x0,
13231 rs2: 0x0,
13232 csr: 0x2c0,
13233 funct7: 0x16,
13234 },
13235 Opcode::FMAXMQ => Inst {
13236 opcode: 0x53,
13237 funct3: 0x3,
13238 rs1: 0x0,
13239 rs2: 0x0,
13240 csr: 0x2e0,
13241 funct7: 0x17,
13242 },
13243 Opcode::FMAXMS => Inst {
13244 opcode: 0x53,
13245 funct3: 0x3,
13246 rs1: 0x0,
13247 rs2: 0x0,
13248 csr: 0x280,
13249 funct7: 0x14,
13250 },
13251 Opcode::FMIND => Inst {
13252 opcode: 0x53,
13253 funct3: 0x0,
13254 rs1: 0x0,
13255 rs2: 0x0,
13256 csr: 0x2a0,
13257 funct7: 0x15,
13258 },
13259 Opcode::FMINH => Inst {
13260 opcode: 0x53,
13261 funct3: 0x0,
13262 rs1: 0x0,
13263 rs2: 0x0,
13264 csr: 0x2c0,
13265 funct7: 0x16,
13266 },
13267 Opcode::FMINQ => Inst {
13268 opcode: 0x53,
13269 funct3: 0x0,
13270 rs1: 0x0,
13271 rs2: 0x0,
13272 csr: 0x2e0,
13273 funct7: 0x17,
13274 },
13275 Opcode::FMINS => Inst {
13276 opcode: 0x53,
13277 funct3: 0x0,
13278 rs1: 0x0,
13279 rs2: 0x0,
13280 csr: 0x280,
13281 funct7: 0x14,
13282 },
13283 Opcode::FMINMD => Inst {
13284 opcode: 0x53,
13285 funct3: 0x2,
13286 rs1: 0x0,
13287 rs2: 0x0,
13288 csr: 0x2a0,
13289 funct7: 0x15,
13290 },
13291 Opcode::FMINMH => Inst {
13292 opcode: 0x53,
13293 funct3: 0x2,
13294 rs1: 0x0,
13295 rs2: 0x0,
13296 csr: 0x2c0,
13297 funct7: 0x16,
13298 },
13299 Opcode::FMINMQ => Inst {
13300 opcode: 0x53,
13301 funct3: 0x2,
13302 rs1: 0x0,
13303 rs2: 0x0,
13304 csr: 0x2e0,
13305 funct7: 0x17,
13306 },
13307 Opcode::FMINMS => Inst {
13308 opcode: 0x53,
13309 funct3: 0x2,
13310 rs1: 0x0,
13311 rs2: 0x0,
13312 csr: 0x280,
13313 funct7: 0x14,
13314 },
13315 Opcode::FMSUBD => Inst {
13316 opcode: 0x47,
13317 funct3: 0x0,
13318 rs1: 0x0,
13319 rs2: 0x0,
13320 csr: 0x20,
13321 funct7: 0x1,
13322 },
13323 Opcode::FMSUBH => Inst {
13324 opcode: 0x47,
13325 funct3: 0x0,
13326 rs1: 0x0,
13327 rs2: 0x0,
13328 csr: 0x40,
13329 funct7: 0x2,
13330 },
13331 Opcode::FMSUBQ => Inst {
13332 opcode: 0x47,
13333 funct3: 0x0,
13334 rs1: 0x0,
13335 rs2: 0x0,
13336 csr: 0x60,
13337 funct7: 0x3,
13338 },
13339 Opcode::FMSUBS => Inst {
13340 opcode: 0x47,
13341 funct3: 0x0,
13342 rs1: 0x0,
13343 rs2: 0x0,
13344 csr: 0x0,
13345 funct7: 0x0,
13346 },
13347 Opcode::FMULD => Inst {
13348 opcode: 0x53,
13349 funct3: 0x0,
13350 rs1: 0x0,
13351 rs2: 0x0,
13352 csr: 0x120,
13353 funct7: 0x9,
13354 },
13355 Opcode::FMULH => Inst {
13356 opcode: 0x53,
13357 funct3: 0x0,
13358 rs1: 0x0,
13359 rs2: 0x0,
13360 csr: 0x140,
13361 funct7: 0xa,
13362 },
13363 Opcode::FMULQ => Inst {
13364 opcode: 0x53,
13365 funct3: 0x0,
13366 rs1: 0x0,
13367 rs2: 0x0,
13368 csr: 0x160,
13369 funct7: 0xb,
13370 },
13371 Opcode::FMULS => Inst {
13372 opcode: 0x53,
13373 funct3: 0x0,
13374 rs1: 0x0,
13375 rs2: 0x0,
13376 csr: 0x100,
13377 funct7: 0x8,
13378 },
13379 Opcode::FMVD => Inst {
13380 opcode: 0x53,
13381 funct3: 0x0,
13382 rs1: 0x0,
13383 rs2: 0x0,
13384 csr: 0x220,
13385 funct7: 0x11,
13386 },
13387 Opcode::FMVDX => Inst {
13388 opcode: 0x53,
13389 funct3: 0x0,
13390 rs1: 0x0,
13391 rs2: 0x0,
13392 csr: 0xf20,
13393 funct7: 0x79,
13394 },
13395 Opcode::FMVH => Inst {
13396 opcode: 0x53,
13397 funct3: 0x0,
13398 rs1: 0x0,
13399 rs2: 0x0,
13400 csr: 0x240,
13401 funct7: 0x12,
13402 },
13403 Opcode::FMVHX => Inst {
13404 opcode: 0x53,
13405 funct3: 0x0,
13406 rs1: 0x0,
13407 rs2: 0x0,
13408 csr: 0xf40,
13409 funct7: 0x7a,
13410 },
13411 Opcode::FMVQ => Inst {
13412 opcode: 0x53,
13413 funct3: 0x0,
13414 rs1: 0x0,
13415 rs2: 0x0,
13416 csr: 0x260,
13417 funct7: 0x13,
13418 },
13419 Opcode::FMVS => Inst {
13420 opcode: 0x53,
13421 funct3: 0x0,
13422 rs1: 0x0,
13423 rs2: 0x0,
13424 csr: 0x200,
13425 funct7: 0x10,
13426 },
13427 Opcode::FMVSX => Inst {
13428 opcode: 0x53,
13429 funct3: 0x0,
13430 rs1: 0x0,
13431 rs2: 0x0,
13432 csr: 0xf00,
13433 funct7: 0x78,
13434 },
13435 Opcode::FMVWX => Inst {
13436 opcode: 0x53,
13437 funct3: 0x0,
13438 rs1: 0x0,
13439 rs2: 0x0,
13440 csr: 0xf00,
13441 funct7: 0x78,
13442 },
13443 Opcode::FMVXD => Inst {
13444 opcode: 0x53,
13445 funct3: 0x0,
13446 rs1: 0x0,
13447 rs2: 0x0,
13448 csr: 0xe20,
13449 funct7: 0x71,
13450 },
13451 Opcode::FMVXH => Inst {
13452 opcode: 0x53,
13453 funct3: 0x0,
13454 rs1: 0x0,
13455 rs2: 0x0,
13456 csr: 0xe40,
13457 funct7: 0x72,
13458 },
13459 Opcode::FMVXS => Inst {
13460 opcode: 0x53,
13461 funct3: 0x0,
13462 rs1: 0x0,
13463 rs2: 0x0,
13464 csr: 0xe00,
13465 funct7: 0x70,
13466 },
13467 Opcode::FMVXW => Inst {
13468 opcode: 0x53,
13469 funct3: 0x0,
13470 rs1: 0x0,
13471 rs2: 0x0,
13472 csr: 0xe00,
13473 funct7: 0x70,
13474 },
13475 Opcode::FMVHXD => Inst {
13476 opcode: 0x53,
13477 funct3: 0x0,
13478 rs1: 0x0,
13479 rs2: 0x1,
13480 csr: 0xe21,
13481 funct7: 0x71,
13482 },
13483 Opcode::FMVHXQ => Inst {
13484 opcode: 0x53,
13485 funct3: 0x0,
13486 rs1: 0x0,
13487 rs2: 0x1,
13488 csr: 0xe61,
13489 funct7: 0x73,
13490 },
13491 Opcode::FMVPDX => Inst {
13492 opcode: 0x53,
13493 funct3: 0x0,
13494 rs1: 0x0,
13495 rs2: 0x0,
13496 csr: 0xb20,
13497 funct7: 0x59,
13498 },
13499 Opcode::FMVPQX => Inst {
13500 opcode: 0x53,
13501 funct3: 0x0,
13502 rs1: 0x0,
13503 rs2: 0x0,
13504 csr: 0xb60,
13505 funct7: 0x5b,
13506 },
13507 Opcode::FNEGD => Inst {
13508 opcode: 0x53,
13509 funct3: 0x1,
13510 rs1: 0x0,
13511 rs2: 0x0,
13512 csr: 0x220,
13513 funct7: 0x11,
13514 },
13515 Opcode::FNEGH => Inst {
13516 opcode: 0x53,
13517 funct3: 0x1,
13518 rs1: 0x0,
13519 rs2: 0x0,
13520 csr: 0x240,
13521 funct7: 0x12,
13522 },
13523 Opcode::FNEGQ => Inst {
13524 opcode: 0x53,
13525 funct3: 0x1,
13526 rs1: 0x0,
13527 rs2: 0x0,
13528 csr: 0x260,
13529 funct7: 0x13,
13530 },
13531 Opcode::FNEGS => Inst {
13532 opcode: 0x53,
13533 funct3: 0x1,
13534 rs1: 0x0,
13535 rs2: 0x0,
13536 csr: 0x200,
13537 funct7: 0x10,
13538 },
13539 Opcode::FNMADDD => Inst {
13540 opcode: 0x4f,
13541 funct3: 0x0,
13542 rs1: 0x0,
13543 rs2: 0x0,
13544 csr: 0x20,
13545 funct7: 0x1,
13546 },
13547 Opcode::FNMADDH => Inst {
13548 opcode: 0x4f,
13549 funct3: 0x0,
13550 rs1: 0x0,
13551 rs2: 0x0,
13552 csr: 0x40,
13553 funct7: 0x2,
13554 },
13555 Opcode::FNMADDQ => Inst {
13556 opcode: 0x4f,
13557 funct3: 0x0,
13558 rs1: 0x0,
13559 rs2: 0x0,
13560 csr: 0x60,
13561 funct7: 0x3,
13562 },
13563 Opcode::FNMADDS => Inst {
13564 opcode: 0x4f,
13565 funct3: 0x0,
13566 rs1: 0x0,
13567 rs2: 0x0,
13568 csr: 0x0,
13569 funct7: 0x0,
13570 },
13571 Opcode::FNMSUBD => Inst {
13572 opcode: 0x4b,
13573 funct3: 0x0,
13574 rs1: 0x0,
13575 rs2: 0x0,
13576 csr: 0x20,
13577 funct7: 0x1,
13578 },
13579 Opcode::FNMSUBH => Inst {
13580 opcode: 0x4b,
13581 funct3: 0x0,
13582 rs1: 0x0,
13583 rs2: 0x0,
13584 csr: 0x40,
13585 funct7: 0x2,
13586 },
13587 Opcode::FNMSUBQ => Inst {
13588 opcode: 0x4b,
13589 funct3: 0x0,
13590 rs1: 0x0,
13591 rs2: 0x0,
13592 csr: 0x60,
13593 funct7: 0x3,
13594 },
13595 Opcode::FNMSUBS => Inst {
13596 opcode: 0x4b,
13597 funct3: 0x0,
13598 rs1: 0x0,
13599 rs2: 0x0,
13600 csr: 0x0,
13601 funct7: 0x0,
13602 },
13603 Opcode::FRCSR => Inst {
13604 opcode: 0x73,
13605 funct3: 0x2,
13606 rs1: 0x0,
13607 rs2: 0x3,
13608 csr: 0x3,
13609 funct7: 0x0,
13610 },
13611 Opcode::FRFLAGS => Inst {
13612 opcode: 0x73,
13613 funct3: 0x2,
13614 rs1: 0x0,
13615 rs2: 0x1,
13616 csr: 0x1,
13617 funct7: 0x0,
13618 },
13619 Opcode::FROUNDD => Inst {
13620 opcode: 0x53,
13621 funct3: 0x0,
13622 rs1: 0x0,
13623 rs2: 0x4,
13624 csr: 0x424,
13625 funct7: 0x21,
13626 },
13627 Opcode::FROUNDH => Inst {
13628 opcode: 0x53,
13629 funct3: 0x0,
13630 rs1: 0x0,
13631 rs2: 0x4,
13632 csr: 0x444,
13633 funct7: 0x22,
13634 },
13635 Opcode::FROUNDQ => Inst {
13636 opcode: 0x53,
13637 funct3: 0x0,
13638 rs1: 0x0,
13639 rs2: 0x4,
13640 csr: 0x464,
13641 funct7: 0x23,
13642 },
13643 Opcode::FROUNDS => Inst {
13644 opcode: 0x53,
13645 funct3: 0x0,
13646 rs1: 0x0,
13647 rs2: 0x4,
13648 csr: 0x404,
13649 funct7: 0x20,
13650 },
13651 Opcode::FROUNDNXD => Inst {
13652 opcode: 0x53,
13653 funct3: 0x0,
13654 rs1: 0x0,
13655 rs2: 0x5,
13656 csr: 0x425,
13657 funct7: 0x21,
13658 },
13659 Opcode::FROUNDNXH => Inst {
13660 opcode: 0x53,
13661 funct3: 0x0,
13662 rs1: 0x0,
13663 rs2: 0x5,
13664 csr: 0x445,
13665 funct7: 0x22,
13666 },
13667 Opcode::FROUNDNXQ => Inst {
13668 opcode: 0x53,
13669 funct3: 0x0,
13670 rs1: 0x0,
13671 rs2: 0x5,
13672 csr: 0x465,
13673 funct7: 0x23,
13674 },
13675 Opcode::FROUNDNXS => Inst {
13676 opcode: 0x53,
13677 funct3: 0x0,
13678 rs1: 0x0,
13679 rs2: 0x5,
13680 csr: 0x405,
13681 funct7: 0x20,
13682 },
13683 Opcode::FRRM => Inst {
13684 opcode: 0x73,
13685 funct3: 0x2,
13686 rs1: 0x0,
13687 rs2: 0x2,
13688 csr: 0x2,
13689 funct7: 0x0,
13690 },
13691 Opcode::FSCSR => Inst {
13692 opcode: 0x73,
13693 funct3: 0x1,
13694 rs1: 0x0,
13695 rs2: 0x3,
13696 csr: 0x3,
13697 funct7: 0x0,
13698 },
13699 Opcode::FSD => Inst {
13700 opcode: 0x27,
13701 funct3: 0x3,
13702 rs1: 0x0,
13703 rs2: 0x0,
13704 csr: 0x0,
13705 funct7: 0x0,
13706 },
13707 Opcode::FSFLAGS => Inst {
13708 opcode: 0x73,
13709 funct3: 0x1,
13710 rs1: 0x0,
13711 rs2: 0x1,
13712 csr: 0x1,
13713 funct7: 0x0,
13714 },
13715 Opcode::FSFLAGSI => Inst {
13716 opcode: 0x73,
13717 funct3: 0x5,
13718 rs1: 0x0,
13719 rs2: 0x1,
13720 csr: 0x1,
13721 funct7: 0x0,
13722 },
13723 Opcode::FSGNJD => Inst {
13724 opcode: 0x53,
13725 funct3: 0x0,
13726 rs1: 0x0,
13727 rs2: 0x0,
13728 csr: 0x220,
13729 funct7: 0x11,
13730 },
13731 Opcode::FSGNJH => Inst {
13732 opcode: 0x53,
13733 funct3: 0x0,
13734 rs1: 0x0,
13735 rs2: 0x0,
13736 csr: 0x240,
13737 funct7: 0x12,
13738 },
13739 Opcode::FSGNJQ => Inst {
13740 opcode: 0x53,
13741 funct3: 0x0,
13742 rs1: 0x0,
13743 rs2: 0x0,
13744 csr: 0x260,
13745 funct7: 0x13,
13746 },
13747 Opcode::FSGNJS => Inst {
13748 opcode: 0x53,
13749 funct3: 0x0,
13750 rs1: 0x0,
13751 rs2: 0x0,
13752 csr: 0x200,
13753 funct7: 0x10,
13754 },
13755 Opcode::FSGNJND => Inst {
13756 opcode: 0x53,
13757 funct3: 0x1,
13758 rs1: 0x0,
13759 rs2: 0x0,
13760 csr: 0x220,
13761 funct7: 0x11,
13762 },
13763 Opcode::FSGNJNH => Inst {
13764 opcode: 0x53,
13765 funct3: 0x1,
13766 rs1: 0x0,
13767 rs2: 0x0,
13768 csr: 0x240,
13769 funct7: 0x12,
13770 },
13771 Opcode::FSGNJNQ => Inst {
13772 opcode: 0x53,
13773 funct3: 0x1,
13774 rs1: 0x0,
13775 rs2: 0x0,
13776 csr: 0x260,
13777 funct7: 0x13,
13778 },
13779 Opcode::FSGNJNS => Inst {
13780 opcode: 0x53,
13781 funct3: 0x1,
13782 rs1: 0x0,
13783 rs2: 0x0,
13784 csr: 0x200,
13785 funct7: 0x10,
13786 },
13787 Opcode::FSGNJXD => Inst {
13788 opcode: 0x53,
13789 funct3: 0x2,
13790 rs1: 0x0,
13791 rs2: 0x0,
13792 csr: 0x220,
13793 funct7: 0x11,
13794 },
13795 Opcode::FSGNJXH => Inst {
13796 opcode: 0x53,
13797 funct3: 0x2,
13798 rs1: 0x0,
13799 rs2: 0x0,
13800 csr: 0x240,
13801 funct7: 0x12,
13802 },
13803 Opcode::FSGNJXQ => Inst {
13804 opcode: 0x53,
13805 funct3: 0x2,
13806 rs1: 0x0,
13807 rs2: 0x0,
13808 csr: 0x260,
13809 funct7: 0x13,
13810 },
13811 Opcode::FSGNJXS => Inst {
13812 opcode: 0x53,
13813 funct3: 0x2,
13814 rs1: 0x0,
13815 rs2: 0x0,
13816 csr: 0x200,
13817 funct7: 0x10,
13818 },
13819 Opcode::FSH => Inst {
13820 opcode: 0x27,
13821 funct3: 0x1,
13822 rs1: 0x0,
13823 rs2: 0x0,
13824 csr: 0x0,
13825 funct7: 0x0,
13826 },
13827 Opcode::FSQ => Inst {
13828 opcode: 0x27,
13829 funct3: 0x4,
13830 rs1: 0x0,
13831 rs2: 0x0,
13832 csr: 0x0,
13833 funct7: 0x0,
13834 },
13835 Opcode::FSQRTD => Inst {
13836 opcode: 0x53,
13837 funct3: 0x0,
13838 rs1: 0x0,
13839 rs2: 0x0,
13840 csr: 0x5a0,
13841 funct7: 0x2d,
13842 },
13843 Opcode::FSQRTH => Inst {
13844 opcode: 0x53,
13845 funct3: 0x0,
13846 rs1: 0x0,
13847 rs2: 0x0,
13848 csr: 0x5c0,
13849 funct7: 0x2e,
13850 },
13851 Opcode::FSQRTQ => Inst {
13852 opcode: 0x53,
13853 funct3: 0x0,
13854 rs1: 0x0,
13855 rs2: 0x0,
13856 csr: 0x5e0,
13857 funct7: 0x2f,
13858 },
13859 Opcode::FSQRTS => Inst {
13860 opcode: 0x53,
13861 funct3: 0x0,
13862 rs1: 0x0,
13863 rs2: 0x0,
13864 csr: 0x580,
13865 funct7: 0x2c,
13866 },
13867 Opcode::FSRM => Inst {
13868 opcode: 0x73,
13869 funct3: 0x1,
13870 rs1: 0x0,
13871 rs2: 0x2,
13872 csr: 0x2,
13873 funct7: 0x0,
13874 },
13875 Opcode::FSRMI => Inst {
13876 opcode: 0x73,
13877 funct3: 0x5,
13878 rs1: 0x0,
13879 rs2: 0x2,
13880 csr: 0x2,
13881 funct7: 0x0,
13882 },
13883 Opcode::FSUBD => Inst {
13884 opcode: 0x53,
13885 funct3: 0x0,
13886 rs1: 0x0,
13887 rs2: 0x0,
13888 csr: 0xa0,
13889 funct7: 0x5,
13890 },
13891 Opcode::FSUBH => Inst {
13892 opcode: 0x53,
13893 funct3: 0x0,
13894 rs1: 0x0,
13895 rs2: 0x0,
13896 csr: 0xc0,
13897 funct7: 0x6,
13898 },
13899 Opcode::FSUBQ => Inst {
13900 opcode: 0x53,
13901 funct3: 0x0,
13902 rs1: 0x0,
13903 rs2: 0x0,
13904 csr: 0xe0,
13905 funct7: 0x7,
13906 },
13907 Opcode::FSUBS => Inst {
13908 opcode: 0x53,
13909 funct3: 0x0,
13910 rs1: 0x0,
13911 rs2: 0x0,
13912 csr: 0x80,
13913 funct7: 0x4,
13914 },
13915 Opcode::FSW => Inst {
13916 opcode: 0x27,
13917 funct3: 0x2,
13918 rs1: 0x0,
13919 rs2: 0x0,
13920 csr: 0x0,
13921 funct7: 0x0,
13922 },
13923 Opcode::HFENCEGVMA => Inst {
13924 opcode: 0x73,
13925 funct3: 0x0,
13926 rs1: 0x0,
13927 rs2: 0x0,
13928 csr: 0x620,
13929 funct7: 0x31,
13930 },
13931 Opcode::HFENCEVVMA => Inst {
13932 opcode: 0x73,
13933 funct3: 0x0,
13934 rs1: 0x0,
13935 rs2: 0x0,
13936 csr: 0x220,
13937 funct7: 0x11,
13938 },
13939 Opcode::HINVALGVMA => Inst {
13940 opcode: 0x73,
13941 funct3: 0x0,
13942 rs1: 0x0,
13943 rs2: 0x0,
13944 csr: 0x660,
13945 funct7: 0x33,
13946 },
13947 Opcode::HINVALVVMA => Inst {
13948 opcode: 0x73,
13949 funct3: 0x0,
13950 rs1: 0x0,
13951 rs2: 0x0,
13952 csr: 0x260,
13953 funct7: 0x13,
13954 },
13955 Opcode::HLVB => Inst {
13956 opcode: 0x73,
13957 funct3: 0x4,
13958 rs1: 0x0,
13959 rs2: 0x0,
13960 csr: 0x600,
13961 funct7: 0x30,
13962 },
13963 Opcode::HLVBU => Inst {
13964 opcode: 0x73,
13965 funct3: 0x4,
13966 rs1: 0x0,
13967 rs2: 0x1,
13968 csr: 0x601,
13969 funct7: 0x30,
13970 },
13971 Opcode::HLVD => Inst {
13972 opcode: 0x73,
13973 funct3: 0x4,
13974 rs1: 0x0,
13975 rs2: 0x0,
13976 csr: 0x6c0,
13977 funct7: 0x36,
13978 },
13979 Opcode::HLVH => Inst {
13980 opcode: 0x73,
13981 funct3: 0x4,
13982 rs1: 0x0,
13983 rs2: 0x0,
13984 csr: 0x640,
13985 funct7: 0x32,
13986 },
13987 Opcode::HLVHU => Inst {
13988 opcode: 0x73,
13989 funct3: 0x4,
13990 rs1: 0x0,
13991 rs2: 0x1,
13992 csr: 0x641,
13993 funct7: 0x32,
13994 },
13995 Opcode::HLVW => Inst {
13996 opcode: 0x73,
13997 funct3: 0x4,
13998 rs1: 0x0,
13999 rs2: 0x0,
14000 csr: 0x680,
14001 funct7: 0x34,
14002 },
14003 Opcode::HLVWU => Inst {
14004 opcode: 0x73,
14005 funct3: 0x4,
14006 rs1: 0x0,
14007 rs2: 0x1,
14008 csr: 0x681,
14009 funct7: 0x34,
14010 },
14011 Opcode::HLVXHU => Inst {
14012 opcode: 0x73,
14013 funct3: 0x4,
14014 rs1: 0x0,
14015 rs2: 0x3,
14016 csr: 0x643,
14017 funct7: 0x32,
14018 },
14019 Opcode::HLVXWU => Inst {
14020 opcode: 0x73,
14021 funct3: 0x4,
14022 rs1: 0x0,
14023 rs2: 0x3,
14024 csr: 0x683,
14025 funct7: 0x34,
14026 },
14027 Opcode::HSVB => Inst {
14028 opcode: 0x73,
14029 funct3: 0x4,
14030 rs1: 0x0,
14031 rs2: 0x0,
14032 csr: 0x620,
14033 funct7: 0x31,
14034 },
14035 Opcode::HSVD => Inst {
14036 opcode: 0x73,
14037 funct3: 0x4,
14038 rs1: 0x0,
14039 rs2: 0x0,
14040 csr: 0x6e0,
14041 funct7: 0x37,
14042 },
14043 Opcode::HSVH => Inst {
14044 opcode: 0x73,
14045 funct3: 0x4,
14046 rs1: 0x0,
14047 rs2: 0x0,
14048 csr: 0x660,
14049 funct7: 0x33,
14050 },
14051 Opcode::HSVW => Inst {
14052 opcode: 0x73,
14053 funct3: 0x4,
14054 rs1: 0x0,
14055 rs2: 0x0,
14056 csr: 0x6a0,
14057 funct7: 0x35,
14058 },
14059 Opcode::J => Inst {
14060 opcode: 0x6f,
14061 funct3: 0x0,
14062 rs1: 0x0,
14063 rs2: 0x0,
14064 csr: 0x0,
14065 funct7: 0x0,
14066 },
14067 Opcode::JAL => Inst {
14068 opcode: 0x6f,
14069 funct3: 0x0,
14070 rs1: 0x0,
14071 rs2: 0x0,
14072 csr: 0x0,
14073 funct7: 0x0,
14074 },
14075 Opcode::JALPSEUDO => Inst {
14076 opcode: 0x6f,
14077 funct3: 0x0,
14078 rs1: 0x0,
14079 rs2: 0x0,
14080 csr: 0x0,
14081 funct7: 0x0,
14082 },
14083 Opcode::JALR => Inst {
14084 opcode: 0x67,
14085 funct3: 0x0,
14086 rs1: 0x0,
14087 rs2: 0x0,
14088 csr: 0x0,
14089 funct7: 0x0,
14090 },
14091 Opcode::JALRPSEUDO => Inst {
14092 opcode: 0x67,
14093 funct3: 0x0,
14094 rs1: 0x0,
14095 rs2: 0x0,
14096 csr: 0x0,
14097 funct7: 0x0,
14098 },
14099 Opcode::JR => Inst {
14100 opcode: 0x67,
14101 funct3: 0x0,
14102 rs1: 0x0,
14103 rs2: 0x0,
14104 csr: 0x0,
14105 funct7: 0x0,
14106 },
14107 Opcode::LB => Inst {
14108 opcode: 0x3,
14109 funct3: 0x0,
14110 rs1: 0x0,
14111 rs2: 0x0,
14112 csr: 0x0,
14113 funct7: 0x0,
14114 },
14115 Opcode::LBU => Inst {
14116 opcode: 0x3,
14117 funct3: 0x4,
14118 rs1: 0x0,
14119 rs2: 0x0,
14120 csr: 0x0,
14121 funct7: 0x0,
14122 },
14123 Opcode::LD => Inst {
14124 opcode: 0x3,
14125 funct3: 0x3,
14126 rs1: 0x0,
14127 rs2: 0x0,
14128 csr: 0x0,
14129 funct7: 0x0,
14130 },
14131 Opcode::LH => Inst {
14132 opcode: 0x3,
14133 funct3: 0x1,
14134 rs1: 0x0,
14135 rs2: 0x0,
14136 csr: 0x0,
14137 funct7: 0x0,
14138 },
14139 Opcode::LHU => Inst {
14140 opcode: 0x3,
14141 funct3: 0x5,
14142 rs1: 0x0,
14143 rs2: 0x0,
14144 csr: 0x0,
14145 funct7: 0x0,
14146 },
14147 Opcode::LRD => Inst {
14148 opcode: 0x2f,
14149 funct3: 0x3,
14150 rs1: 0x0,
14151 rs2: 0x0,
14152 csr: 0x100,
14153 funct7: 0x8,
14154 },
14155 Opcode::LRW => Inst {
14156 opcode: 0x2f,
14157 funct3: 0x2,
14158 rs1: 0x0,
14159 rs2: 0x0,
14160 csr: 0x100,
14161 funct7: 0x8,
14162 },
14163 Opcode::LUI => Inst {
14164 opcode: 0x37,
14165 funct3: 0x0,
14166 rs1: 0x0,
14167 rs2: 0x0,
14168 csr: 0x0,
14169 funct7: 0x0,
14170 },
14171 Opcode::LW => Inst {
14172 opcode: 0x3,
14173 funct3: 0x2,
14174 rs1: 0x0,
14175 rs2: 0x0,
14176 csr: 0x0,
14177 funct7: 0x0,
14178 },
14179 Opcode::LWU => Inst {
14180 opcode: 0x3,
14181 funct3: 0x6,
14182 rs1: 0x0,
14183 rs2: 0x0,
14184 csr: 0x0,
14185 funct7: 0x0,
14186 },
14187 Opcode::MAX => Inst {
14188 opcode: 0x33,
14189 funct3: 0x6,
14190 rs1: 0x0,
14191 rs2: 0x0,
14192 csr: 0xa0,
14193 funct7: 0x5,
14194 },
14195 Opcode::MAXU => Inst {
14196 opcode: 0x33,
14197 funct3: 0x7,
14198 rs1: 0x0,
14199 rs2: 0x0,
14200 csr: 0xa0,
14201 funct7: 0x5,
14202 },
14203 Opcode::MIN => Inst {
14204 opcode: 0x33,
14205 funct3: 0x4,
14206 rs1: 0x0,
14207 rs2: 0x0,
14208 csr: 0xa0,
14209 funct7: 0x5,
14210 },
14211 Opcode::MINU => Inst {
14212 opcode: 0x33,
14213 funct3: 0x5,
14214 rs1: 0x0,
14215 rs2: 0x0,
14216 csr: 0xa0,
14217 funct7: 0x5,
14218 },
14219 Opcode::MOPR0 => Inst {
14220 opcode: 0x73,
14221 funct3: 0x4,
14222 rs1: 0x0,
14223 rs2: 0x1c,
14224 csr: 0x81c,
14225 funct7: 0x40,
14226 },
14227 Opcode::MOPR1 => Inst {
14228 opcode: 0x73,
14229 funct3: 0x4,
14230 rs1: 0x0,
14231 rs2: 0x1d,
14232 csr: 0x81d,
14233 funct7: 0x40,
14234 },
14235 Opcode::MOPR10 => Inst {
14236 opcode: 0x73,
14237 funct3: 0x4,
14238 rs1: 0x0,
14239 rs2: 0x1e,
14240 csr: 0x89e,
14241 funct7: 0x44,
14242 },
14243 Opcode::MOPR11 => Inst {
14244 opcode: 0x73,
14245 funct3: 0x4,
14246 rs1: 0x0,
14247 rs2: 0x1f,
14248 csr: 0x89f,
14249 funct7: 0x44,
14250 },
14251 Opcode::MOPR12 => Inst {
14252 opcode: 0x73,
14253 funct3: 0x4,
14254 rs1: 0x0,
14255 rs2: 0x1c,
14256 csr: 0x8dc,
14257 funct7: 0x46,
14258 },
14259 Opcode::MOPR13 => Inst {
14260 opcode: 0x73,
14261 funct3: 0x4,
14262 rs1: 0x0,
14263 rs2: 0x1d,
14264 csr: 0x8dd,
14265 funct7: 0x46,
14266 },
14267 Opcode::MOPR14 => Inst {
14268 opcode: 0x73,
14269 funct3: 0x4,
14270 rs1: 0x0,
14271 rs2: 0x1e,
14272 csr: 0x8de,
14273 funct7: 0x46,
14274 },
14275 Opcode::MOPR15 => Inst {
14276 opcode: 0x73,
14277 funct3: 0x4,
14278 rs1: 0x0,
14279 rs2: 0x1f,
14280 csr: 0x8df,
14281 funct7: 0x46,
14282 },
14283 Opcode::MOPR16 => Inst {
14284 opcode: 0x73,
14285 funct3: 0x4,
14286 rs1: 0x0,
14287 rs2: 0x1c,
14288 csr: 0xc1c,
14289 funct7: 0x60,
14290 },
14291 Opcode::MOPR17 => Inst {
14292 opcode: 0x73,
14293 funct3: 0x4,
14294 rs1: 0x0,
14295 rs2: 0x1d,
14296 csr: 0xc1d,
14297 funct7: 0x60,
14298 },
14299 Opcode::MOPR18 => Inst {
14300 opcode: 0x73,
14301 funct3: 0x4,
14302 rs1: 0x0,
14303 rs2: 0x1e,
14304 csr: 0xc1e,
14305 funct7: 0x60,
14306 },
14307 Opcode::MOPR19 => Inst {
14308 opcode: 0x73,
14309 funct3: 0x4,
14310 rs1: 0x0,
14311 rs2: 0x1f,
14312 csr: 0xc1f,
14313 funct7: 0x60,
14314 },
14315 Opcode::MOPR2 => Inst {
14316 opcode: 0x73,
14317 funct3: 0x4,
14318 rs1: 0x0,
14319 rs2: 0x1e,
14320 csr: 0x81e,
14321 funct7: 0x40,
14322 },
14323 Opcode::MOPR20 => Inst {
14324 opcode: 0x73,
14325 funct3: 0x4,
14326 rs1: 0x0,
14327 rs2: 0x1c,
14328 csr: 0xc5c,
14329 funct7: 0x62,
14330 },
14331 Opcode::MOPR21 => Inst {
14332 opcode: 0x73,
14333 funct3: 0x4,
14334 rs1: 0x0,
14335 rs2: 0x1d,
14336 csr: 0xc5d,
14337 funct7: 0x62,
14338 },
14339 Opcode::MOPR22 => Inst {
14340 opcode: 0x73,
14341 funct3: 0x4,
14342 rs1: 0x0,
14343 rs2: 0x1e,
14344 csr: 0xc5e,
14345 funct7: 0x62,
14346 },
14347 Opcode::MOPR23 => Inst {
14348 opcode: 0x73,
14349 funct3: 0x4,
14350 rs1: 0x0,
14351 rs2: 0x1f,
14352 csr: 0xc5f,
14353 funct7: 0x62,
14354 },
14355 Opcode::MOPR24 => Inst {
14356 opcode: 0x73,
14357 funct3: 0x4,
14358 rs1: 0x0,
14359 rs2: 0x1c,
14360 csr: 0xc9c,
14361 funct7: 0x64,
14362 },
14363 Opcode::MOPR25 => Inst {
14364 opcode: 0x73,
14365 funct3: 0x4,
14366 rs1: 0x0,
14367 rs2: 0x1d,
14368 csr: 0xc9d,
14369 funct7: 0x64,
14370 },
14371 Opcode::MOPR26 => Inst {
14372 opcode: 0x73,
14373 funct3: 0x4,
14374 rs1: 0x0,
14375 rs2: 0x1e,
14376 csr: 0xc9e,
14377 funct7: 0x64,
14378 },
14379 Opcode::MOPR27 => Inst {
14380 opcode: 0x73,
14381 funct3: 0x4,
14382 rs1: 0x0,
14383 rs2: 0x1f,
14384 csr: 0xc9f,
14385 funct7: 0x64,
14386 },
14387 Opcode::MOPR28 => Inst {
14388 opcode: 0x73,
14389 funct3: 0x4,
14390 rs1: 0x0,
14391 rs2: 0x1c,
14392 csr: 0xcdc,
14393 funct7: 0x66,
14394 },
14395 Opcode::MOPR29 => Inst {
14396 opcode: 0x73,
14397 funct3: 0x4,
14398 rs1: 0x0,
14399 rs2: 0x1d,
14400 csr: 0xcdd,
14401 funct7: 0x66,
14402 },
14403 Opcode::MOPR3 => Inst {
14404 opcode: 0x73,
14405 funct3: 0x4,
14406 rs1: 0x0,
14407 rs2: 0x1f,
14408 csr: 0x81f,
14409 funct7: 0x40,
14410 },
14411 Opcode::MOPR30 => Inst {
14412 opcode: 0x73,
14413 funct3: 0x4,
14414 rs1: 0x0,
14415 rs2: 0x1e,
14416 csr: 0xcde,
14417 funct7: 0x66,
14418 },
14419 Opcode::MOPR31 => Inst {
14420 opcode: 0x73,
14421 funct3: 0x4,
14422 rs1: 0x0,
14423 rs2: 0x1f,
14424 csr: 0xcdf,
14425 funct7: 0x66,
14426 },
14427 Opcode::MOPR4 => Inst {
14428 opcode: 0x73,
14429 funct3: 0x4,
14430 rs1: 0x0,
14431 rs2: 0x1c,
14432 csr: 0x85c,
14433 funct7: 0x42,
14434 },
14435 Opcode::MOPR5 => Inst {
14436 opcode: 0x73,
14437 funct3: 0x4,
14438 rs1: 0x0,
14439 rs2: 0x1d,
14440 csr: 0x85d,
14441 funct7: 0x42,
14442 },
14443 Opcode::MOPR6 => Inst {
14444 opcode: 0x73,
14445 funct3: 0x4,
14446 rs1: 0x0,
14447 rs2: 0x1e,
14448 csr: 0x85e,
14449 funct7: 0x42,
14450 },
14451 Opcode::MOPR7 => Inst {
14452 opcode: 0x73,
14453 funct3: 0x4,
14454 rs1: 0x0,
14455 rs2: 0x1f,
14456 csr: 0x85f,
14457 funct7: 0x42,
14458 },
14459 Opcode::MOPR8 => Inst {
14460 opcode: 0x73,
14461 funct3: 0x4,
14462 rs1: 0x0,
14463 rs2: 0x1c,
14464 csr: 0x89c,
14465 funct7: 0x44,
14466 },
14467 Opcode::MOPR9 => Inst {
14468 opcode: 0x73,
14469 funct3: 0x4,
14470 rs1: 0x0,
14471 rs2: 0x1d,
14472 csr: 0x89d,
14473 funct7: 0x44,
14474 },
14475 Opcode::MOPRN => Inst {
14476 opcode: 0x73,
14477 funct3: 0x4,
14478 rs1: 0x0,
14479 rs2: 0x1c,
14480 csr: 0x81c,
14481 funct7: 0x40,
14482 },
14483 Opcode::MOPRR0 => Inst {
14484 opcode: 0x73,
14485 funct3: 0x4,
14486 rs1: 0x0,
14487 rs2: 0x0,
14488 csr: 0x820,
14489 funct7: 0x41,
14490 },
14491 Opcode::MOPRR1 => Inst {
14492 opcode: 0x73,
14493 funct3: 0x4,
14494 rs1: 0x0,
14495 rs2: 0x0,
14496 csr: 0x860,
14497 funct7: 0x43,
14498 },
14499 Opcode::MOPRR2 => Inst {
14500 opcode: 0x73,
14501 funct3: 0x4,
14502 rs1: 0x0,
14503 rs2: 0x0,
14504 csr: 0x8a0,
14505 funct7: 0x45,
14506 },
14507 Opcode::MOPRR3 => Inst {
14508 opcode: 0x73,
14509 funct3: 0x4,
14510 rs1: 0x0,
14511 rs2: 0x0,
14512 csr: 0x8e0,
14513 funct7: 0x47,
14514 },
14515 Opcode::MOPRR4 => Inst {
14516 opcode: 0x73,
14517 funct3: 0x4,
14518 rs1: 0x0,
14519 rs2: 0x0,
14520 csr: 0xc20,
14521 funct7: 0x61,
14522 },
14523 Opcode::MOPRR5 => Inst {
14524 opcode: 0x73,
14525 funct3: 0x4,
14526 rs1: 0x0,
14527 rs2: 0x0,
14528 csr: 0xc60,
14529 funct7: 0x63,
14530 },
14531 Opcode::MOPRR6 => Inst {
14532 opcode: 0x73,
14533 funct3: 0x4,
14534 rs1: 0x0,
14535 rs2: 0x0,
14536 csr: 0xca0,
14537 funct7: 0x65,
14538 },
14539 Opcode::MOPRR7 => Inst {
14540 opcode: 0x73,
14541 funct3: 0x4,
14542 rs1: 0x0,
14543 rs2: 0x0,
14544 csr: 0xce0,
14545 funct7: 0x67,
14546 },
14547 Opcode::MOPRRN => Inst {
14548 opcode: 0x73,
14549 funct3: 0x4,
14550 rs1: 0x0,
14551 rs2: 0x0,
14552 csr: 0x820,
14553 funct7: 0x41,
14554 },
14555 Opcode::MRET => Inst {
14556 opcode: 0x73,
14557 funct3: 0x0,
14558 rs1: 0x0,
14559 rs2: 0x2,
14560 csr: 0x302,
14561 funct7: 0x18,
14562 },
14563 Opcode::MUL => Inst {
14564 opcode: 0x33,
14565 funct3: 0x0,
14566 rs1: 0x0,
14567 rs2: 0x0,
14568 csr: 0x20,
14569 funct7: 0x1,
14570 },
14571 Opcode::MULH => Inst {
14572 opcode: 0x33,
14573 funct3: 0x1,
14574 rs1: 0x0,
14575 rs2: 0x0,
14576 csr: 0x20,
14577 funct7: 0x1,
14578 },
14579 Opcode::MULHSU => Inst {
14580 opcode: 0x33,
14581 funct3: 0x2,
14582 rs1: 0x0,
14583 rs2: 0x0,
14584 csr: 0x20,
14585 funct7: 0x1,
14586 },
14587 Opcode::MULHU => Inst {
14588 opcode: 0x33,
14589 funct3: 0x3,
14590 rs1: 0x0,
14591 rs2: 0x0,
14592 csr: 0x20,
14593 funct7: 0x1,
14594 },
14595 Opcode::MULW => Inst {
14596 opcode: 0x3b,
14597 funct3: 0x0,
14598 rs1: 0x0,
14599 rs2: 0x0,
14600 csr: 0x20,
14601 funct7: 0x1,
14602 },
14603 Opcode::MV => Inst {
14604 opcode: 0x13,
14605 funct3: 0x0,
14606 rs1: 0x0,
14607 rs2: 0x0,
14608 csr: 0x0,
14609 funct7: 0x0,
14610 },
14611 Opcode::NEG => Inst {
14612 opcode: 0x33,
14613 funct3: 0x0,
14614 rs1: 0x0,
14615 rs2: 0x0,
14616 csr: 0x400,
14617 funct7: 0x20,
14618 },
14619 Opcode::NOP => Inst {
14620 opcode: 0x13,
14621 funct3: 0x0,
14622 rs1: 0x0,
14623 rs2: 0x0,
14624 csr: 0x0,
14625 funct7: 0x0,
14626 },
14627 Opcode::NTLALL => Inst {
14628 opcode: 0x33,
14629 funct3: 0x0,
14630 rs1: 0x0,
14631 rs2: 0x5,
14632 csr: 0x5,
14633 funct7: 0x0,
14634 },
14635 Opcode::NTLP1 => Inst {
14636 opcode: 0x33,
14637 funct3: 0x0,
14638 rs1: 0x0,
14639 rs2: 0x2,
14640 csr: 0x2,
14641 funct7: 0x0,
14642 },
14643 Opcode::NTLPALL => Inst {
14644 opcode: 0x33,
14645 funct3: 0x0,
14646 rs1: 0x0,
14647 rs2: 0x3,
14648 csr: 0x3,
14649 funct7: 0x0,
14650 },
14651 Opcode::NTLS1 => Inst {
14652 opcode: 0x33,
14653 funct3: 0x0,
14654 rs1: 0x0,
14655 rs2: 0x4,
14656 csr: 0x4,
14657 funct7: 0x0,
14658 },
14659 Opcode::OR => Inst {
14660 opcode: 0x33,
14661 funct3: 0x6,
14662 rs1: 0x0,
14663 rs2: 0x0,
14664 csr: 0x0,
14665 funct7: 0x0,
14666 },
14667 Opcode::ORCB => Inst {
14668 opcode: 0x13,
14669 funct3: 0x5,
14670 rs1: 0x0,
14671 rs2: 0x7,
14672 csr: 0x287,
14673 funct7: 0x14,
14674 },
14675 Opcode::ORI => Inst {
14676 opcode: 0x13,
14677 funct3: 0x6,
14678 rs1: 0x0,
14679 rs2: 0x0,
14680 csr: 0x0,
14681 funct7: 0x0,
14682 },
14683 Opcode::ORN => Inst {
14684 opcode: 0x33,
14685 funct3: 0x6,
14686 rs1: 0x0,
14687 rs2: 0x0,
14688 csr: 0x400,
14689 funct7: 0x20,
14690 },
14691 Opcode::PACK => Inst {
14692 opcode: 0x33,
14693 funct3: 0x4,
14694 rs1: 0x0,
14695 rs2: 0x0,
14696 csr: 0x80,
14697 funct7: 0x4,
14698 },
14699 Opcode::PACKH => Inst {
14700 opcode: 0x33,
14701 funct3: 0x7,
14702 rs1: 0x0,
14703 rs2: 0x0,
14704 csr: 0x80,
14705 funct7: 0x4,
14706 },
14707 Opcode::PACKW => Inst {
14708 opcode: 0x3b,
14709 funct3: 0x4,
14710 rs1: 0x0,
14711 rs2: 0x0,
14712 csr: 0x80,
14713 funct7: 0x4,
14714 },
14715 Opcode::PAUSE => Inst {
14716 opcode: 0xf,
14717 funct3: 0x0,
14718 rs1: 0x0,
14719 rs2: 0x10,
14720 csr: 0x10,
14721 funct7: 0x0,
14722 },
14723 Opcode::PREFETCHI => Inst {
14724 opcode: 0x13,
14725 funct3: 0x6,
14726 rs1: 0x0,
14727 rs2: 0x0,
14728 csr: 0x0,
14729 funct7: 0x0,
14730 },
14731 Opcode::PREFETCHR => Inst {
14732 opcode: 0x13,
14733 funct3: 0x6,
14734 rs1: 0x0,
14735 rs2: 0x1,
14736 csr: 0x1,
14737 funct7: 0x0,
14738 },
14739 Opcode::PREFETCHW => Inst {
14740 opcode: 0x13,
14741 funct3: 0x6,
14742 rs1: 0x0,
14743 rs2: 0x3,
14744 csr: 0x3,
14745 funct7: 0x0,
14746 },
14747 Opcode::RDCYCLE => Inst {
14748 opcode: 0x73,
14749 funct3: 0x2,
14750 rs1: 0x0,
14751 rs2: 0x0,
14752 csr: 0xc00,
14753 funct7: 0x60,
14754 },
14755 Opcode::RDCYCLEH => Inst {
14756 opcode: 0x73,
14757 funct3: 0x2,
14758 rs1: 0x0,
14759 rs2: 0x0,
14760 csr: 0xc80,
14761 funct7: 0x64,
14762 },
14763 Opcode::RDINSTRET => Inst {
14764 opcode: 0x73,
14765 funct3: 0x2,
14766 rs1: 0x0,
14767 rs2: 0x2,
14768 csr: 0xc02,
14769 funct7: 0x60,
14770 },
14771 Opcode::RDINSTRETH => Inst {
14772 opcode: 0x73,
14773 funct3: 0x2,
14774 rs1: 0x0,
14775 rs2: 0x2,
14776 csr: 0xc82,
14777 funct7: 0x64,
14778 },
14779 Opcode::RDTIME => Inst {
14780 opcode: 0x73,
14781 funct3: 0x2,
14782 rs1: 0x0,
14783 rs2: 0x1,
14784 csr: 0xc01,
14785 funct7: 0x60,
14786 },
14787 Opcode::RDTIMEH => Inst {
14788 opcode: 0x73,
14789 funct3: 0x2,
14790 rs1: 0x0,
14791 rs2: 0x1,
14792 csr: 0xc81,
14793 funct7: 0x64,
14794 },
14795 Opcode::REM => Inst {
14796 opcode: 0x33,
14797 funct3: 0x6,
14798 rs1: 0x0,
14799 rs2: 0x0,
14800 csr: 0x20,
14801 funct7: 0x1,
14802 },
14803 Opcode::REMU => Inst {
14804 opcode: 0x33,
14805 funct3: 0x7,
14806 rs1: 0x0,
14807 rs2: 0x0,
14808 csr: 0x20,
14809 funct7: 0x1,
14810 },
14811 Opcode::REMUW => Inst {
14812 opcode: 0x3b,
14813 funct3: 0x7,
14814 rs1: 0x0,
14815 rs2: 0x0,
14816 csr: 0x20,
14817 funct7: 0x1,
14818 },
14819 Opcode::REMW => Inst {
14820 opcode: 0x3b,
14821 funct3: 0x6,
14822 rs1: 0x0,
14823 rs2: 0x0,
14824 csr: 0x20,
14825 funct7: 0x1,
14826 },
14827 Opcode::RET => Inst {
14828 opcode: 0x67,
14829 funct3: 0x0,
14830 rs1: 0x1,
14831 rs2: 0x0,
14832 csr: 0x0,
14833 funct7: 0x0,
14834 },
14835 Opcode::REV8 => Inst {
14836 opcode: 0x13,
14837 funct3: 0x5,
14838 rs1: 0x0,
14839 rs2: 0x18,
14840 csr: 0x6b8,
14841 funct7: 0x35,
14842 },
14843 Opcode::REV8RV32 => Inst {
14844 opcode: 0x13,
14845 funct3: 0x5,
14846 rs1: 0x0,
14847 rs2: 0x18,
14848 csr: 0x698,
14849 funct7: 0x34,
14850 },
14851 Opcode::ROL => Inst {
14852 opcode: 0x33,
14853 funct3: 0x1,
14854 rs1: 0x0,
14855 rs2: 0x0,
14856 csr: 0x600,
14857 funct7: 0x30,
14858 },
14859 Opcode::ROLW => Inst {
14860 opcode: 0x3b,
14861 funct3: 0x1,
14862 rs1: 0x0,
14863 rs2: 0x0,
14864 csr: 0x600,
14865 funct7: 0x30,
14866 },
14867 Opcode::ROR => Inst {
14868 opcode: 0x33,
14869 funct3: 0x5,
14870 rs1: 0x0,
14871 rs2: 0x0,
14872 csr: 0x600,
14873 funct7: 0x30,
14874 },
14875 Opcode::RORI => Inst {
14876 opcode: 0x13,
14877 funct3: 0x5,
14878 rs1: 0x0,
14879 rs2: 0x0,
14880 csr: 0x600,
14881 funct7: 0x30,
14882 },
14883 Opcode::RORIRV32 => Inst {
14884 opcode: 0x13,
14885 funct3: 0x5,
14886 rs1: 0x0,
14887 rs2: 0x0,
14888 csr: 0x600,
14889 funct7: 0x30,
14890 },
14891 Opcode::RORIW => Inst {
14892 opcode: 0x1b,
14893 funct3: 0x5,
14894 rs1: 0x0,
14895 rs2: 0x0,
14896 csr: 0x600,
14897 funct7: 0x30,
14898 },
14899 Opcode::RORW => Inst {
14900 opcode: 0x3b,
14901 funct3: 0x5,
14902 rs1: 0x0,
14903 rs2: 0x0,
14904 csr: 0x600,
14905 funct7: 0x30,
14906 },
14907 Opcode::SB => Inst {
14908 opcode: 0x23,
14909 funct3: 0x0,
14910 rs1: 0x0,
14911 rs2: 0x0,
14912 csr: 0x0,
14913 funct7: 0x0,
14914 },
14915 Opcode::SBREAK => Inst {
14916 opcode: 0x73,
14917 funct3: 0x0,
14918 rs1: 0x0,
14919 rs2: 0x1,
14920 csr: 0x1,
14921 funct7: 0x0,
14922 },
14923 Opcode::SCD => Inst {
14924 opcode: 0x2f,
14925 funct3: 0x3,
14926 rs1: 0x0,
14927 rs2: 0x0,
14928 csr: 0x180,
14929 funct7: 0xc,
14930 },
14931 Opcode::SCW => Inst {
14932 opcode: 0x2f,
14933 funct3: 0x2,
14934 rs1: 0x0,
14935 rs2: 0x0,
14936 csr: 0x180,
14937 funct7: 0xc,
14938 },
14939 Opcode::SCALL => Inst {
14940 opcode: 0x73,
14941 funct3: 0x0,
14942 rs1: 0x0,
14943 rs2: 0x0,
14944 csr: 0x0,
14945 funct7: 0x0,
14946 },
14947 Opcode::SD => Inst {
14948 opcode: 0x23,
14949 funct3: 0x3,
14950 rs1: 0x0,
14951 rs2: 0x0,
14952 csr: 0x0,
14953 funct7: 0x0,
14954 },
14955 Opcode::SEQZ => Inst {
14956 opcode: 0x13,
14957 funct3: 0x3,
14958 rs1: 0x0,
14959 rs2: 0x1,
14960 csr: 0x1,
14961 funct7: 0x0,
14962 },
14963 Opcode::SEXTB => Inst {
14964 opcode: 0x13,
14965 funct3: 0x1,
14966 rs1: 0x0,
14967 rs2: 0x4,
14968 csr: 0x604,
14969 funct7: 0x30,
14970 },
14971 Opcode::SEXTH => Inst {
14972 opcode: 0x13,
14973 funct3: 0x1,
14974 rs1: 0x0,
14975 rs2: 0x5,
14976 csr: 0x605,
14977 funct7: 0x30,
14978 },
14979 Opcode::SEXTW => Inst {
14980 opcode: 0x1b,
14981 funct3: 0x0,
14982 rs1: 0x0,
14983 rs2: 0x0,
14984 csr: 0x0,
14985 funct7: 0x0,
14986 },
14987 Opcode::SFENCEINVALIR => Inst {
14988 opcode: 0x73,
14989 funct3: 0x0,
14990 rs1: 0x0,
14991 rs2: 0x1,
14992 csr: 0x181,
14993 funct7: 0xc,
14994 },
14995 Opcode::SFENCEVMA => Inst {
14996 opcode: 0x73,
14997 funct3: 0x0,
14998 rs1: 0x0,
14999 rs2: 0x0,
15000 csr: 0x120,
15001 funct7: 0x9,
15002 },
15003 Opcode::SFENCEWINVAL => Inst {
15004 opcode: 0x73,
15005 funct3: 0x0,
15006 rs1: 0x0,
15007 rs2: 0x0,
15008 csr: 0x180,
15009 funct7: 0xc,
15010 },
15011 Opcode::SGTZ => Inst {
15012 opcode: 0x33,
15013 funct3: 0x2,
15014 rs1: 0x0,
15015 rs2: 0x0,
15016 csr: 0x0,
15017 funct7: 0x0,
15018 },
15019 Opcode::SH => Inst {
15020 opcode: 0x23,
15021 funct3: 0x1,
15022 rs1: 0x0,
15023 rs2: 0x0,
15024 csr: 0x0,
15025 funct7: 0x0,
15026 },
15027 Opcode::SH1ADD => Inst {
15028 opcode: 0x33,
15029 funct3: 0x2,
15030 rs1: 0x0,
15031 rs2: 0x0,
15032 csr: 0x200,
15033 funct7: 0x10,
15034 },
15035 Opcode::SH1ADDUW => Inst {
15036 opcode: 0x3b,
15037 funct3: 0x2,
15038 rs1: 0x0,
15039 rs2: 0x0,
15040 csr: 0x200,
15041 funct7: 0x10,
15042 },
15043 Opcode::SH2ADD => Inst {
15044 opcode: 0x33,
15045 funct3: 0x4,
15046 rs1: 0x0,
15047 rs2: 0x0,
15048 csr: 0x200,
15049 funct7: 0x10,
15050 },
15051 Opcode::SH2ADDUW => Inst {
15052 opcode: 0x3b,
15053 funct3: 0x4,
15054 rs1: 0x0,
15055 rs2: 0x0,
15056 csr: 0x200,
15057 funct7: 0x10,
15058 },
15059 Opcode::SH3ADD => Inst {
15060 opcode: 0x33,
15061 funct3: 0x6,
15062 rs1: 0x0,
15063 rs2: 0x0,
15064 csr: 0x200,
15065 funct7: 0x10,
15066 },
15067 Opcode::SH3ADDUW => Inst {
15068 opcode: 0x3b,
15069 funct3: 0x6,
15070 rs1: 0x0,
15071 rs2: 0x0,
15072 csr: 0x200,
15073 funct7: 0x10,
15074 },
15075 Opcode::SHA256SIG0 => Inst {
15076 opcode: 0x13,
15077 funct3: 0x1,
15078 rs1: 0x0,
15079 rs2: 0x2,
15080 csr: 0x102,
15081 funct7: 0x8,
15082 },
15083 Opcode::SHA256SIG1 => Inst {
15084 opcode: 0x13,
15085 funct3: 0x1,
15086 rs1: 0x0,
15087 rs2: 0x3,
15088 csr: 0x103,
15089 funct7: 0x8,
15090 },
15091 Opcode::SHA256SUM0 => Inst {
15092 opcode: 0x13,
15093 funct3: 0x1,
15094 rs1: 0x0,
15095 rs2: 0x0,
15096 csr: 0x100,
15097 funct7: 0x8,
15098 },
15099 Opcode::SHA256SUM1 => Inst {
15100 opcode: 0x13,
15101 funct3: 0x1,
15102 rs1: 0x0,
15103 rs2: 0x1,
15104 csr: 0x101,
15105 funct7: 0x8,
15106 },
15107 Opcode::SHA512SIG0 => Inst {
15108 opcode: 0x13,
15109 funct3: 0x1,
15110 rs1: 0x0,
15111 rs2: 0x6,
15112 csr: 0x106,
15113 funct7: 0x8,
15114 },
15115 Opcode::SHA512SIG0H => Inst {
15116 opcode: 0x33,
15117 funct3: 0x0,
15118 rs1: 0x0,
15119 rs2: 0x0,
15120 csr: 0x5c0,
15121 funct7: 0x2e,
15122 },
15123 Opcode::SHA512SIG0L => Inst {
15124 opcode: 0x33,
15125 funct3: 0x0,
15126 rs1: 0x0,
15127 rs2: 0x0,
15128 csr: 0x540,
15129 funct7: 0x2a,
15130 },
15131 Opcode::SHA512SIG1 => Inst {
15132 opcode: 0x13,
15133 funct3: 0x1,
15134 rs1: 0x0,
15135 rs2: 0x7,
15136 csr: 0x107,
15137 funct7: 0x8,
15138 },
15139 Opcode::SHA512SIG1H => Inst {
15140 opcode: 0x33,
15141 funct3: 0x0,
15142 rs1: 0x0,
15143 rs2: 0x0,
15144 csr: 0x5e0,
15145 funct7: 0x2f,
15146 },
15147 Opcode::SHA512SIG1L => Inst {
15148 opcode: 0x33,
15149 funct3: 0x0,
15150 rs1: 0x0,
15151 rs2: 0x0,
15152 csr: 0x560,
15153 funct7: 0x2b,
15154 },
15155 Opcode::SHA512SUM0 => Inst {
15156 opcode: 0x13,
15157 funct3: 0x1,
15158 rs1: 0x0,
15159 rs2: 0x4,
15160 csr: 0x104,
15161 funct7: 0x8,
15162 },
15163 Opcode::SHA512SUM0R => Inst {
15164 opcode: 0x33,
15165 funct3: 0x0,
15166 rs1: 0x0,
15167 rs2: 0x0,
15168 csr: 0x500,
15169 funct7: 0x28,
15170 },
15171 Opcode::SHA512SUM1 => Inst {
15172 opcode: 0x13,
15173 funct3: 0x1,
15174 rs1: 0x0,
15175 rs2: 0x5,
15176 csr: 0x105,
15177 funct7: 0x8,
15178 },
15179 Opcode::SHA512SUM1R => Inst {
15180 opcode: 0x33,
15181 funct3: 0x0,
15182 rs1: 0x0,
15183 rs2: 0x0,
15184 csr: 0x520,
15185 funct7: 0x29,
15186 },
15187 Opcode::SINVALVMA => Inst {
15188 opcode: 0x73,
15189 funct3: 0x0,
15190 rs1: 0x0,
15191 rs2: 0x0,
15192 csr: 0x160,
15193 funct7: 0xb,
15194 },
15195 Opcode::SLL => Inst {
15196 opcode: 0x33,
15197 funct3: 0x1,
15198 rs1: 0x0,
15199 rs2: 0x0,
15200 csr: 0x0,
15201 funct7: 0x0,
15202 },
15203 Opcode::SLLI => Inst {
15204 opcode: 0x13,
15205 funct3: 0x1,
15206 rs1: 0x0,
15207 rs2: 0x0,
15208 csr: 0x0,
15209 funct7: 0x0,
15210 },
15211 Opcode::SLLIRV32 => Inst {
15212 opcode: 0x13,
15213 funct3: 0x1,
15214 rs1: 0x0,
15215 rs2: 0x0,
15216 csr: 0x0,
15217 funct7: 0x0,
15218 },
15219 Opcode::SLLIUW => Inst {
15220 opcode: 0x1b,
15221 funct3: 0x1,
15222 rs1: 0x0,
15223 rs2: 0x0,
15224 csr: 0x80,
15225 funct7: 0x4,
15226 },
15227 Opcode::SLLIW => Inst {
15228 opcode: 0x1b,
15229 funct3: 0x1,
15230 rs1: 0x0,
15231 rs2: 0x0,
15232 csr: 0x0,
15233 funct7: 0x0,
15234 },
15235 Opcode::SLLW => Inst {
15236 opcode: 0x3b,
15237 funct3: 0x1,
15238 rs1: 0x0,
15239 rs2: 0x0,
15240 csr: 0x0,
15241 funct7: 0x0,
15242 },
15243 Opcode::SLT => Inst {
15244 opcode: 0x33,
15245 funct3: 0x2,
15246 rs1: 0x0,
15247 rs2: 0x0,
15248 csr: 0x0,
15249 funct7: 0x0,
15250 },
15251 Opcode::SLTI => Inst {
15252 opcode: 0x13,
15253 funct3: 0x2,
15254 rs1: 0x0,
15255 rs2: 0x0,
15256 csr: 0x0,
15257 funct7: 0x0,
15258 },
15259 Opcode::SLTIU => Inst {
15260 opcode: 0x13,
15261 funct3: 0x3,
15262 rs1: 0x0,
15263 rs2: 0x0,
15264 csr: 0x0,
15265 funct7: 0x0,
15266 },
15267 Opcode::SLTU => Inst {
15268 opcode: 0x33,
15269 funct3: 0x3,
15270 rs1: 0x0,
15271 rs2: 0x0,
15272 csr: 0x0,
15273 funct7: 0x0,
15274 },
15275 Opcode::SLTZ => Inst {
15276 opcode: 0x33,
15277 funct3: 0x2,
15278 rs1: 0x0,
15279 rs2: 0x0,
15280 csr: 0x0,
15281 funct7: 0x0,
15282 },
15283 Opcode::SM3P0 => Inst {
15284 opcode: 0x13,
15285 funct3: 0x1,
15286 rs1: 0x0,
15287 rs2: 0x8,
15288 csr: 0x108,
15289 funct7: 0x8,
15290 },
15291 Opcode::SM3P1 => Inst {
15292 opcode: 0x13,
15293 funct3: 0x1,
15294 rs1: 0x0,
15295 rs2: 0x9,
15296 csr: 0x109,
15297 funct7: 0x8,
15298 },
15299 Opcode::SM4ED => Inst {
15300 opcode: 0x33,
15301 funct3: 0x0,
15302 rs1: 0x0,
15303 rs2: 0x0,
15304 csr: 0x300,
15305 funct7: 0x18,
15306 },
15307 Opcode::SM4KS => Inst {
15308 opcode: 0x33,
15309 funct3: 0x0,
15310 rs1: 0x0,
15311 rs2: 0x0,
15312 csr: 0x340,
15313 funct7: 0x1a,
15314 },
15315 Opcode::SNEZ => Inst {
15316 opcode: 0x33,
15317 funct3: 0x3,
15318 rs1: 0x0,
15319 rs2: 0x0,
15320 csr: 0x0,
15321 funct7: 0x0,
15322 },
15323 Opcode::SRA => Inst {
15324 opcode: 0x33,
15325 funct3: 0x5,
15326 rs1: 0x0,
15327 rs2: 0x0,
15328 csr: 0x400,
15329 funct7: 0x20,
15330 },
15331 Opcode::SRAI => Inst {
15332 opcode: 0x13,
15333 funct3: 0x5,
15334 rs1: 0x0,
15335 rs2: 0x0,
15336 csr: 0x400,
15337 funct7: 0x20,
15338 },
15339 Opcode::SRAIRV32 => Inst {
15340 opcode: 0x13,
15341 funct3: 0x5,
15342 rs1: 0x0,
15343 rs2: 0x0,
15344 csr: 0x400,
15345 funct7: 0x20,
15346 },
15347 Opcode::SRAIW => Inst {
15348 opcode: 0x1b,
15349 funct3: 0x5,
15350 rs1: 0x0,
15351 rs2: 0x0,
15352 csr: 0x400,
15353 funct7: 0x20,
15354 },
15355 Opcode::SRAW => Inst {
15356 opcode: 0x3b,
15357 funct3: 0x5,
15358 rs1: 0x0,
15359 rs2: 0x0,
15360 csr: 0x400,
15361 funct7: 0x20,
15362 },
15363 Opcode::SRET => Inst {
15364 opcode: 0x73,
15365 funct3: 0x0,
15366 rs1: 0x0,
15367 rs2: 0x2,
15368 csr: 0x102,
15369 funct7: 0x8,
15370 },
15371 Opcode::SRL => Inst {
15372 opcode: 0x33,
15373 funct3: 0x5,
15374 rs1: 0x0,
15375 rs2: 0x0,
15376 csr: 0x0,
15377 funct7: 0x0,
15378 },
15379 Opcode::SRLI => Inst {
15380 opcode: 0x13,
15381 funct3: 0x5,
15382 rs1: 0x0,
15383 rs2: 0x0,
15384 csr: 0x0,
15385 funct7: 0x0,
15386 },
15387 Opcode::SRLIRV32 => Inst {
15388 opcode: 0x13,
15389 funct3: 0x5,
15390 rs1: 0x0,
15391 rs2: 0x0,
15392 csr: 0x0,
15393 funct7: 0x0,
15394 },
15395 Opcode::SRLIW => Inst {
15396 opcode: 0x1b,
15397 funct3: 0x5,
15398 rs1: 0x0,
15399 rs2: 0x0,
15400 csr: 0x0,
15401 funct7: 0x0,
15402 },
15403 Opcode::SRLW => Inst {
15404 opcode: 0x3b,
15405 funct3: 0x5,
15406 rs1: 0x0,
15407 rs2: 0x0,
15408 csr: 0x0,
15409 funct7: 0x0,
15410 },
15411 Opcode::SUB => Inst {
15412 opcode: 0x33,
15413 funct3: 0x0,
15414 rs1: 0x0,
15415 rs2: 0x0,
15416 csr: 0x400,
15417 funct7: 0x20,
15418 },
15419 Opcode::SUBW => Inst {
15420 opcode: 0x3b,
15421 funct3: 0x0,
15422 rs1: 0x0,
15423 rs2: 0x0,
15424 csr: 0x400,
15425 funct7: 0x20,
15426 },
15427 Opcode::SW => Inst {
15428 opcode: 0x23,
15429 funct3: 0x2,
15430 rs1: 0x0,
15431 rs2: 0x0,
15432 csr: 0x0,
15433 funct7: 0x0,
15434 },
15435 Opcode::UNZIP => Inst {
15436 opcode: 0x13,
15437 funct3: 0x5,
15438 rs1: 0x0,
15439 rs2: 0xf,
15440 csr: 0x8f,
15441 funct7: 0x4,
15442 },
15443 Opcode::VAADDVV => Inst {
15444 opcode: 0x57,
15445 funct3: 0x2,
15446 rs1: 0x0,
15447 rs2: 0x0,
15448 csr: 0x240,
15449 funct7: 0x12,
15450 },
15451 Opcode::VAADDVX => Inst {
15452 opcode: 0x57,
15453 funct3: 0x6,
15454 rs1: 0x0,
15455 rs2: 0x0,
15456 csr: 0x240,
15457 funct7: 0x12,
15458 },
15459 Opcode::VAADDUVV => Inst {
15460 opcode: 0x57,
15461 funct3: 0x2,
15462 rs1: 0x0,
15463 rs2: 0x0,
15464 csr: 0x200,
15465 funct7: 0x10,
15466 },
15467 Opcode::VAADDUVX => Inst {
15468 opcode: 0x57,
15469 funct3: 0x6,
15470 rs1: 0x0,
15471 rs2: 0x0,
15472 csr: 0x200,
15473 funct7: 0x10,
15474 },
15475 Opcode::VADCVIM => Inst {
15476 opcode: 0x57,
15477 funct3: 0x3,
15478 rs1: 0x0,
15479 rs2: 0x0,
15480 csr: 0x400,
15481 funct7: 0x20,
15482 },
15483 Opcode::VADCVVM => Inst {
15484 opcode: 0x57,
15485 funct3: 0x0,
15486 rs1: 0x0,
15487 rs2: 0x0,
15488 csr: 0x400,
15489 funct7: 0x20,
15490 },
15491 Opcode::VADCVXM => Inst {
15492 opcode: 0x57,
15493 funct3: 0x4,
15494 rs1: 0x0,
15495 rs2: 0x0,
15496 csr: 0x400,
15497 funct7: 0x20,
15498 },
15499 Opcode::VADDVI => Inst {
15500 opcode: 0x57,
15501 funct3: 0x3,
15502 rs1: 0x0,
15503 rs2: 0x0,
15504 csr: 0x0,
15505 funct7: 0x0,
15506 },
15507 Opcode::VADDVV => Inst {
15508 opcode: 0x57,
15509 funct3: 0x0,
15510 rs1: 0x0,
15511 rs2: 0x0,
15512 csr: 0x0,
15513 funct7: 0x0,
15514 },
15515 Opcode::VADDVX => Inst {
15516 opcode: 0x57,
15517 funct3: 0x4,
15518 rs1: 0x0,
15519 rs2: 0x0,
15520 csr: 0x0,
15521 funct7: 0x0,
15522 },
15523 Opcode::VAESDFVS => Inst {
15524 opcode: 0x77,
15525 funct3: 0x2,
15526 rs1: 0x1,
15527 rs2: 0x0,
15528 csr: 0xa60,
15529 funct7: 0x53,
15530 },
15531 Opcode::VAESDFVV => Inst {
15532 opcode: 0x77,
15533 funct3: 0x2,
15534 rs1: 0x1,
15535 rs2: 0x0,
15536 csr: 0xa20,
15537 funct7: 0x51,
15538 },
15539 Opcode::VAESDMVS => Inst {
15540 opcode: 0x77,
15541 funct3: 0x2,
15542 rs1: 0x0,
15543 rs2: 0x0,
15544 csr: 0xa60,
15545 funct7: 0x53,
15546 },
15547 Opcode::VAESDMVV => Inst {
15548 opcode: 0x77,
15549 funct3: 0x2,
15550 rs1: 0x0,
15551 rs2: 0x0,
15552 csr: 0xa20,
15553 funct7: 0x51,
15554 },
15555 Opcode::VAESEFVS => Inst {
15556 opcode: 0x77,
15557 funct3: 0x2,
15558 rs1: 0x3,
15559 rs2: 0x0,
15560 csr: 0xa60,
15561 funct7: 0x53,
15562 },
15563 Opcode::VAESEFVV => Inst {
15564 opcode: 0x77,
15565 funct3: 0x2,
15566 rs1: 0x3,
15567 rs2: 0x0,
15568 csr: 0xa20,
15569 funct7: 0x51,
15570 },
15571 Opcode::VAESEMVS => Inst {
15572 opcode: 0x77,
15573 funct3: 0x2,
15574 rs1: 0x2,
15575 rs2: 0x0,
15576 csr: 0xa60,
15577 funct7: 0x53,
15578 },
15579 Opcode::VAESEMVV => Inst {
15580 opcode: 0x77,
15581 funct3: 0x2,
15582 rs1: 0x2,
15583 rs2: 0x0,
15584 csr: 0xa20,
15585 funct7: 0x51,
15586 },
15587 Opcode::VAESKF1VI => Inst {
15588 opcode: 0x77,
15589 funct3: 0x2,
15590 rs1: 0x0,
15591 rs2: 0x0,
15592 csr: 0x8a0,
15593 funct7: 0x45,
15594 },
15595 Opcode::VAESKF2VI => Inst {
15596 opcode: 0x77,
15597 funct3: 0x2,
15598 rs1: 0x0,
15599 rs2: 0x0,
15600 csr: 0xaa0,
15601 funct7: 0x55,
15602 },
15603 Opcode::VAESZVS => Inst {
15604 opcode: 0x77,
15605 funct3: 0x2,
15606 rs1: 0x7,
15607 rs2: 0x0,
15608 csr: 0xa60,
15609 funct7: 0x53,
15610 },
15611 Opcode::VANDVI => Inst {
15612 opcode: 0x57,
15613 funct3: 0x3,
15614 rs1: 0x0,
15615 rs2: 0x0,
15616 csr: 0x240,
15617 funct7: 0x12,
15618 },
15619 Opcode::VANDVV => Inst {
15620 opcode: 0x57,
15621 funct3: 0x0,
15622 rs1: 0x0,
15623 rs2: 0x0,
15624 csr: 0x240,
15625 funct7: 0x12,
15626 },
15627 Opcode::VANDVX => Inst {
15628 opcode: 0x57,
15629 funct3: 0x4,
15630 rs1: 0x0,
15631 rs2: 0x0,
15632 csr: 0x240,
15633 funct7: 0x12,
15634 },
15635 Opcode::VANDNVV => Inst {
15636 opcode: 0x57,
15637 funct3: 0x0,
15638 rs1: 0x0,
15639 rs2: 0x0,
15640 csr: 0x40,
15641 funct7: 0x2,
15642 },
15643 Opcode::VANDNVX => Inst {
15644 opcode: 0x57,
15645 funct3: 0x4,
15646 rs1: 0x0,
15647 rs2: 0x0,
15648 csr: 0x40,
15649 funct7: 0x2,
15650 },
15651 Opcode::VASUBVV => Inst {
15652 opcode: 0x57,
15653 funct3: 0x2,
15654 rs1: 0x0,
15655 rs2: 0x0,
15656 csr: 0x2c0,
15657 funct7: 0x16,
15658 },
15659 Opcode::VASUBVX => Inst {
15660 opcode: 0x57,
15661 funct3: 0x6,
15662 rs1: 0x0,
15663 rs2: 0x0,
15664 csr: 0x2c0,
15665 funct7: 0x16,
15666 },
15667 Opcode::VASUBUVV => Inst {
15668 opcode: 0x57,
15669 funct3: 0x2,
15670 rs1: 0x0,
15671 rs2: 0x0,
15672 csr: 0x280,
15673 funct7: 0x14,
15674 },
15675 Opcode::VASUBUVX => Inst {
15676 opcode: 0x57,
15677 funct3: 0x6,
15678 rs1: 0x0,
15679 rs2: 0x0,
15680 csr: 0x280,
15681 funct7: 0x14,
15682 },
15683 Opcode::VBREV8V => Inst {
15684 opcode: 0x57,
15685 funct3: 0x2,
15686 rs1: 0x8,
15687 rs2: 0x0,
15688 csr: 0x480,
15689 funct7: 0x24,
15690 },
15691 Opcode::VBREVV => Inst {
15692 opcode: 0x57,
15693 funct3: 0x2,
15694 rs1: 0xa,
15695 rs2: 0x0,
15696 csr: 0x480,
15697 funct7: 0x24,
15698 },
15699 Opcode::VCLMULVV => Inst {
15700 opcode: 0x57,
15701 funct3: 0x2,
15702 rs1: 0x0,
15703 rs2: 0x0,
15704 csr: 0x300,
15705 funct7: 0x18,
15706 },
15707 Opcode::VCLMULVX => Inst {
15708 opcode: 0x57,
15709 funct3: 0x6,
15710 rs1: 0x0,
15711 rs2: 0x0,
15712 csr: 0x300,
15713 funct7: 0x18,
15714 },
15715 Opcode::VCLMULHVV => Inst {
15716 opcode: 0x57,
15717 funct3: 0x2,
15718 rs1: 0x0,
15719 rs2: 0x0,
15720 csr: 0x340,
15721 funct7: 0x1a,
15722 },
15723 Opcode::VCLMULHVX => Inst {
15724 opcode: 0x57,
15725 funct3: 0x6,
15726 rs1: 0x0,
15727 rs2: 0x0,
15728 csr: 0x340,
15729 funct7: 0x1a,
15730 },
15731 Opcode::VCLZV => Inst {
15732 opcode: 0x57,
15733 funct3: 0x2,
15734 rs1: 0xc,
15735 rs2: 0x0,
15736 csr: 0x480,
15737 funct7: 0x24,
15738 },
15739 Opcode::VCOMPRESSVM => Inst {
15740 opcode: 0x57,
15741 funct3: 0x2,
15742 rs1: 0x0,
15743 rs2: 0x0,
15744 csr: 0x5e0,
15745 funct7: 0x2f,
15746 },
15747 Opcode::VCPOPM => Inst {
15748 opcode: 0x57,
15749 funct3: 0x2,
15750 rs1: 0x10,
15751 rs2: 0x0,
15752 csr: 0x400,
15753 funct7: 0x20,
15754 },
15755 Opcode::VCPOPV => Inst {
15756 opcode: 0x57,
15757 funct3: 0x2,
15758 rs1: 0xe,
15759 rs2: 0x0,
15760 csr: 0x480,
15761 funct7: 0x24,
15762 },
15763 Opcode::VCTZV => Inst {
15764 opcode: 0x57,
15765 funct3: 0x2,
15766 rs1: 0xd,
15767 rs2: 0x0,
15768 csr: 0x480,
15769 funct7: 0x24,
15770 },
15771 Opcode::VDIVVV => Inst {
15772 opcode: 0x57,
15773 funct3: 0x2,
15774 rs1: 0x0,
15775 rs2: 0x0,
15776 csr: 0x840,
15777 funct7: 0x42,
15778 },
15779 Opcode::VDIVVX => Inst {
15780 opcode: 0x57,
15781 funct3: 0x6,
15782 rs1: 0x0,
15783 rs2: 0x0,
15784 csr: 0x840,
15785 funct7: 0x42,
15786 },
15787 Opcode::VDIVUVV => Inst {
15788 opcode: 0x57,
15789 funct3: 0x2,
15790 rs1: 0x0,
15791 rs2: 0x0,
15792 csr: 0x800,
15793 funct7: 0x40,
15794 },
15795 Opcode::VDIVUVX => Inst {
15796 opcode: 0x57,
15797 funct3: 0x6,
15798 rs1: 0x0,
15799 rs2: 0x0,
15800 csr: 0x800,
15801 funct7: 0x40,
15802 },
15803 Opcode::VFADDVF => Inst {
15804 opcode: 0x57,
15805 funct3: 0x5,
15806 rs1: 0x0,
15807 rs2: 0x0,
15808 csr: 0x0,
15809 funct7: 0x0,
15810 },
15811 Opcode::VFADDVV => Inst {
15812 opcode: 0x57,
15813 funct3: 0x1,
15814 rs1: 0x0,
15815 rs2: 0x0,
15816 csr: 0x0,
15817 funct7: 0x0,
15818 },
15819 Opcode::VFCLASSV => Inst {
15820 opcode: 0x57,
15821 funct3: 0x1,
15822 rs1: 0x10,
15823 rs2: 0x0,
15824 csr: 0x4c0,
15825 funct7: 0x26,
15826 },
15827 Opcode::VFCVTFXV => Inst {
15828 opcode: 0x57,
15829 funct3: 0x1,
15830 rs1: 0x3,
15831 rs2: 0x0,
15832 csr: 0x480,
15833 funct7: 0x24,
15834 },
15835 Opcode::VFCVTFXUV => Inst {
15836 opcode: 0x57,
15837 funct3: 0x1,
15838 rs1: 0x2,
15839 rs2: 0x0,
15840 csr: 0x480,
15841 funct7: 0x24,
15842 },
15843 Opcode::VFCVTRTZXFV => Inst {
15844 opcode: 0x57,
15845 funct3: 0x1,
15846 rs1: 0x7,
15847 rs2: 0x0,
15848 csr: 0x480,
15849 funct7: 0x24,
15850 },
15851 Opcode::VFCVTRTZXUFV => Inst {
15852 opcode: 0x57,
15853 funct3: 0x1,
15854 rs1: 0x6,
15855 rs2: 0x0,
15856 csr: 0x480,
15857 funct7: 0x24,
15858 },
15859 Opcode::VFCVTXFV => Inst {
15860 opcode: 0x57,
15861 funct3: 0x1,
15862 rs1: 0x1,
15863 rs2: 0x0,
15864 csr: 0x480,
15865 funct7: 0x24,
15866 },
15867 Opcode::VFCVTXUFV => Inst {
15868 opcode: 0x57,
15869 funct3: 0x1,
15870 rs1: 0x0,
15871 rs2: 0x0,
15872 csr: 0x480,
15873 funct7: 0x24,
15874 },
15875 Opcode::VFDIVVF => Inst {
15876 opcode: 0x57,
15877 funct3: 0x5,
15878 rs1: 0x0,
15879 rs2: 0x0,
15880 csr: 0x800,
15881 funct7: 0x40,
15882 },
15883 Opcode::VFDIVVV => Inst {
15884 opcode: 0x57,
15885 funct3: 0x1,
15886 rs1: 0x0,
15887 rs2: 0x0,
15888 csr: 0x800,
15889 funct7: 0x40,
15890 },
15891 Opcode::VFIRSTM => Inst {
15892 opcode: 0x57,
15893 funct3: 0x2,
15894 rs1: 0x11,
15895 rs2: 0x0,
15896 csr: 0x400,
15897 funct7: 0x20,
15898 },
15899 Opcode::VFMACCVF => Inst {
15900 opcode: 0x57,
15901 funct3: 0x5,
15902 rs1: 0x0,
15903 rs2: 0x0,
15904 csr: 0xb00,
15905 funct7: 0x58,
15906 },
15907 Opcode::VFMACCVV => Inst {
15908 opcode: 0x57,
15909 funct3: 0x1,
15910 rs1: 0x0,
15911 rs2: 0x0,
15912 csr: 0xb00,
15913 funct7: 0x58,
15914 },
15915 Opcode::VFMADDVF => Inst {
15916 opcode: 0x57,
15917 funct3: 0x5,
15918 rs1: 0x0,
15919 rs2: 0x0,
15920 csr: 0xa00,
15921 funct7: 0x50,
15922 },
15923 Opcode::VFMADDVV => Inst {
15924 opcode: 0x57,
15925 funct3: 0x1,
15926 rs1: 0x0,
15927 rs2: 0x0,
15928 csr: 0xa00,
15929 funct7: 0x50,
15930 },
15931 Opcode::VFMAXVF => Inst {
15932 opcode: 0x57,
15933 funct3: 0x5,
15934 rs1: 0x0,
15935 rs2: 0x0,
15936 csr: 0x180,
15937 funct7: 0xc,
15938 },
15939 Opcode::VFMAXVV => Inst {
15940 opcode: 0x57,
15941 funct3: 0x1,
15942 rs1: 0x0,
15943 rs2: 0x0,
15944 csr: 0x180,
15945 funct7: 0xc,
15946 },
15947 Opcode::VFMERGEVFM => Inst {
15948 opcode: 0x57,
15949 funct3: 0x5,
15950 rs1: 0x0,
15951 rs2: 0x0,
15952 csr: 0x5c0,
15953 funct7: 0x2e,
15954 },
15955 Opcode::VFMINVF => Inst {
15956 opcode: 0x57,
15957 funct3: 0x5,
15958 rs1: 0x0,
15959 rs2: 0x0,
15960 csr: 0x100,
15961 funct7: 0x8,
15962 },
15963 Opcode::VFMINVV => Inst {
15964 opcode: 0x57,
15965 funct3: 0x1,
15966 rs1: 0x0,
15967 rs2: 0x0,
15968 csr: 0x100,
15969 funct7: 0x8,
15970 },
15971 Opcode::VFMSACVF => Inst {
15972 opcode: 0x57,
15973 funct3: 0x5,
15974 rs1: 0x0,
15975 rs2: 0x0,
15976 csr: 0xb80,
15977 funct7: 0x5c,
15978 },
15979 Opcode::VFMSACVV => Inst {
15980 opcode: 0x57,
15981 funct3: 0x1,
15982 rs1: 0x0,
15983 rs2: 0x0,
15984 csr: 0xb80,
15985 funct7: 0x5c,
15986 },
15987 Opcode::VFMSUBVF => Inst {
15988 opcode: 0x57,
15989 funct3: 0x5,
15990 rs1: 0x0,
15991 rs2: 0x0,
15992 csr: 0xa80,
15993 funct7: 0x54,
15994 },
15995 Opcode::VFMSUBVV => Inst {
15996 opcode: 0x57,
15997 funct3: 0x1,
15998 rs1: 0x0,
15999 rs2: 0x0,
16000 csr: 0xa80,
16001 funct7: 0x54,
16002 },
16003 Opcode::VFMULVF => Inst {
16004 opcode: 0x57,
16005 funct3: 0x5,
16006 rs1: 0x0,
16007 rs2: 0x0,
16008 csr: 0x900,
16009 funct7: 0x48,
16010 },
16011 Opcode::VFMULVV => Inst {
16012 opcode: 0x57,
16013 funct3: 0x1,
16014 rs1: 0x0,
16015 rs2: 0x0,
16016 csr: 0x900,
16017 funct7: 0x48,
16018 },
16019 Opcode::VFMVFS => Inst {
16020 opcode: 0x57,
16021 funct3: 0x1,
16022 rs1: 0x0,
16023 rs2: 0x0,
16024 csr: 0x420,
16025 funct7: 0x21,
16026 },
16027 Opcode::VFMVSF => Inst {
16028 opcode: 0x57,
16029 funct3: 0x5,
16030 rs1: 0x0,
16031 rs2: 0x0,
16032 csr: 0x420,
16033 funct7: 0x21,
16034 },
16035 Opcode::VFMVVF => Inst {
16036 opcode: 0x57,
16037 funct3: 0x5,
16038 rs1: 0x0,
16039 rs2: 0x0,
16040 csr: 0x5e0,
16041 funct7: 0x2f,
16042 },
16043 Opcode::VFNCVTFFW => Inst {
16044 opcode: 0x57,
16045 funct3: 0x1,
16046 rs1: 0x14,
16047 rs2: 0x0,
16048 csr: 0x480,
16049 funct7: 0x24,
16050 },
16051 Opcode::VFNCVTFXW => Inst {
16052 opcode: 0x57,
16053 funct3: 0x1,
16054 rs1: 0x13,
16055 rs2: 0x0,
16056 csr: 0x480,
16057 funct7: 0x24,
16058 },
16059 Opcode::VFNCVTFXUW => Inst {
16060 opcode: 0x57,
16061 funct3: 0x1,
16062 rs1: 0x12,
16063 rs2: 0x0,
16064 csr: 0x480,
16065 funct7: 0x24,
16066 },
16067 Opcode::VFNCVTRODFFW => Inst {
16068 opcode: 0x57,
16069 funct3: 0x1,
16070 rs1: 0x15,
16071 rs2: 0x0,
16072 csr: 0x480,
16073 funct7: 0x24,
16074 },
16075 Opcode::VFNCVTRTZXFW => Inst {
16076 opcode: 0x57,
16077 funct3: 0x1,
16078 rs1: 0x17,
16079 rs2: 0x0,
16080 csr: 0x480,
16081 funct7: 0x24,
16082 },
16083 Opcode::VFNCVTRTZXUFW => Inst {
16084 opcode: 0x57,
16085 funct3: 0x1,
16086 rs1: 0x16,
16087 rs2: 0x0,
16088 csr: 0x480,
16089 funct7: 0x24,
16090 },
16091 Opcode::VFNCVTXFW => Inst {
16092 opcode: 0x57,
16093 funct3: 0x1,
16094 rs1: 0x11,
16095 rs2: 0x0,
16096 csr: 0x480,
16097 funct7: 0x24,
16098 },
16099 Opcode::VFNCVTXUFW => Inst {
16100 opcode: 0x57,
16101 funct3: 0x1,
16102 rs1: 0x10,
16103 rs2: 0x0,
16104 csr: 0x480,
16105 funct7: 0x24,
16106 },
16107 Opcode::VFNMACCVF => Inst {
16108 opcode: 0x57,
16109 funct3: 0x5,
16110 rs1: 0x0,
16111 rs2: 0x0,
16112 csr: 0xb40,
16113 funct7: 0x5a,
16114 },
16115 Opcode::VFNMACCVV => Inst {
16116 opcode: 0x57,
16117 funct3: 0x1,
16118 rs1: 0x0,
16119 rs2: 0x0,
16120 csr: 0xb40,
16121 funct7: 0x5a,
16122 },
16123 Opcode::VFNMADDVF => Inst {
16124 opcode: 0x57,
16125 funct3: 0x5,
16126 rs1: 0x0,
16127 rs2: 0x0,
16128 csr: 0xa40,
16129 funct7: 0x52,
16130 },
16131 Opcode::VFNMADDVV => Inst {
16132 opcode: 0x57,
16133 funct3: 0x1,
16134 rs1: 0x0,
16135 rs2: 0x0,
16136 csr: 0xa40,
16137 funct7: 0x52,
16138 },
16139 Opcode::VFNMSACVF => Inst {
16140 opcode: 0x57,
16141 funct3: 0x5,
16142 rs1: 0x0,
16143 rs2: 0x0,
16144 csr: 0xbc0,
16145 funct7: 0x5e,
16146 },
16147 Opcode::VFNMSACVV => Inst {
16148 opcode: 0x57,
16149 funct3: 0x1,
16150 rs1: 0x0,
16151 rs2: 0x0,
16152 csr: 0xbc0,
16153 funct7: 0x5e,
16154 },
16155 Opcode::VFNMSUBVF => Inst {
16156 opcode: 0x57,
16157 funct3: 0x5,
16158 rs1: 0x0,
16159 rs2: 0x0,
16160 csr: 0xac0,
16161 funct7: 0x56,
16162 },
16163 Opcode::VFNMSUBVV => Inst {
16164 opcode: 0x57,
16165 funct3: 0x1,
16166 rs1: 0x0,
16167 rs2: 0x0,
16168 csr: 0xac0,
16169 funct7: 0x56,
16170 },
16171 Opcode::VFRDIVVF => Inst {
16172 opcode: 0x57,
16173 funct3: 0x5,
16174 rs1: 0x0,
16175 rs2: 0x0,
16176 csr: 0x840,
16177 funct7: 0x42,
16178 },
16179 Opcode::VFREC7V => Inst {
16180 opcode: 0x57,
16181 funct3: 0x1,
16182 rs1: 0x5,
16183 rs2: 0x0,
16184 csr: 0x4c0,
16185 funct7: 0x26,
16186 },
16187 Opcode::VFREDMAXVS => Inst {
16188 opcode: 0x57,
16189 funct3: 0x1,
16190 rs1: 0x0,
16191 rs2: 0x0,
16192 csr: 0x1c0,
16193 funct7: 0xe,
16194 },
16195 Opcode::VFREDMINVS => Inst {
16196 opcode: 0x57,
16197 funct3: 0x1,
16198 rs1: 0x0,
16199 rs2: 0x0,
16200 csr: 0x140,
16201 funct7: 0xa,
16202 },
16203 Opcode::VFREDOSUMVS => Inst {
16204 opcode: 0x57,
16205 funct3: 0x1,
16206 rs1: 0x0,
16207 rs2: 0x0,
16208 csr: 0xc0,
16209 funct7: 0x6,
16210 },
16211 Opcode::VFREDSUMVS => Inst {
16212 opcode: 0x57,
16213 funct3: 0x1,
16214 rs1: 0x0,
16215 rs2: 0x0,
16216 csr: 0x40,
16217 funct7: 0x2,
16218 },
16219 Opcode::VFREDUSUMVS => Inst {
16220 opcode: 0x57,
16221 funct3: 0x1,
16222 rs1: 0x0,
16223 rs2: 0x0,
16224 csr: 0x40,
16225 funct7: 0x2,
16226 },
16227 Opcode::VFRSQRT7V => Inst {
16228 opcode: 0x57,
16229 funct3: 0x1,
16230 rs1: 0x4,
16231 rs2: 0x0,
16232 csr: 0x4c0,
16233 funct7: 0x26,
16234 },
16235 Opcode::VFRSUBVF => Inst {
16236 opcode: 0x57,
16237 funct3: 0x5,
16238 rs1: 0x0,
16239 rs2: 0x0,
16240 csr: 0x9c0,
16241 funct7: 0x4e,
16242 },
16243 Opcode::VFSGNJVF => Inst {
16244 opcode: 0x57,
16245 funct3: 0x5,
16246 rs1: 0x0,
16247 rs2: 0x0,
16248 csr: 0x200,
16249 funct7: 0x10,
16250 },
16251 Opcode::VFSGNJVV => Inst {
16252 opcode: 0x57,
16253 funct3: 0x1,
16254 rs1: 0x0,
16255 rs2: 0x0,
16256 csr: 0x200,
16257 funct7: 0x10,
16258 },
16259 Opcode::VFSGNJNVF => Inst {
16260 opcode: 0x57,
16261 funct3: 0x5,
16262 rs1: 0x0,
16263 rs2: 0x0,
16264 csr: 0x240,
16265 funct7: 0x12,
16266 },
16267 Opcode::VFSGNJNVV => Inst {
16268 opcode: 0x57,
16269 funct3: 0x1,
16270 rs1: 0x0,
16271 rs2: 0x0,
16272 csr: 0x240,
16273 funct7: 0x12,
16274 },
16275 Opcode::VFSGNJXVF => Inst {
16276 opcode: 0x57,
16277 funct3: 0x5,
16278 rs1: 0x0,
16279 rs2: 0x0,
16280 csr: 0x280,
16281 funct7: 0x14,
16282 },
16283 Opcode::VFSGNJXVV => Inst {
16284 opcode: 0x57,
16285 funct3: 0x1,
16286 rs1: 0x0,
16287 rs2: 0x0,
16288 csr: 0x280,
16289 funct7: 0x14,
16290 },
16291 Opcode::VFSLIDE1DOWNVF => Inst {
16292 opcode: 0x57,
16293 funct3: 0x5,
16294 rs1: 0x0,
16295 rs2: 0x0,
16296 csr: 0x3c0,
16297 funct7: 0x1e,
16298 },
16299 Opcode::VFSLIDE1UPVF => Inst {
16300 opcode: 0x57,
16301 funct3: 0x5,
16302 rs1: 0x0,
16303 rs2: 0x0,
16304 csr: 0x380,
16305 funct7: 0x1c,
16306 },
16307 Opcode::VFSQRTV => Inst {
16308 opcode: 0x57,
16309 funct3: 0x1,
16310 rs1: 0x0,
16311 rs2: 0x0,
16312 csr: 0x4c0,
16313 funct7: 0x26,
16314 },
16315 Opcode::VFSUBVF => Inst {
16316 opcode: 0x57,
16317 funct3: 0x5,
16318 rs1: 0x0,
16319 rs2: 0x0,
16320 csr: 0x80,
16321 funct7: 0x4,
16322 },
16323 Opcode::VFSUBVV => Inst {
16324 opcode: 0x57,
16325 funct3: 0x1,
16326 rs1: 0x0,
16327 rs2: 0x0,
16328 csr: 0x80,
16329 funct7: 0x4,
16330 },
16331 Opcode::VFWADDVF => Inst {
16332 opcode: 0x57,
16333 funct3: 0x5,
16334 rs1: 0x0,
16335 rs2: 0x0,
16336 csr: 0xc00,
16337 funct7: 0x60,
16338 },
16339 Opcode::VFWADDVV => Inst {
16340 opcode: 0x57,
16341 funct3: 0x1,
16342 rs1: 0x0,
16343 rs2: 0x0,
16344 csr: 0xc00,
16345 funct7: 0x60,
16346 },
16347 Opcode::VFWADDWF => Inst {
16348 opcode: 0x57,
16349 funct3: 0x5,
16350 rs1: 0x0,
16351 rs2: 0x0,
16352 csr: 0xd00,
16353 funct7: 0x68,
16354 },
16355 Opcode::VFWADDWV => Inst {
16356 opcode: 0x57,
16357 funct3: 0x1,
16358 rs1: 0x0,
16359 rs2: 0x0,
16360 csr: 0xd00,
16361 funct7: 0x68,
16362 },
16363 Opcode::VFWCVTFFV => Inst {
16364 opcode: 0x57,
16365 funct3: 0x1,
16366 rs1: 0xc,
16367 rs2: 0x0,
16368 csr: 0x480,
16369 funct7: 0x24,
16370 },
16371 Opcode::VFWCVTFXV => Inst {
16372 opcode: 0x57,
16373 funct3: 0x1,
16374 rs1: 0xb,
16375 rs2: 0x0,
16376 csr: 0x480,
16377 funct7: 0x24,
16378 },
16379 Opcode::VFWCVTFXUV => Inst {
16380 opcode: 0x57,
16381 funct3: 0x1,
16382 rs1: 0xa,
16383 rs2: 0x0,
16384 csr: 0x480,
16385 funct7: 0x24,
16386 },
16387 Opcode::VFWCVTRTZXFV => Inst {
16388 opcode: 0x57,
16389 funct3: 0x1,
16390 rs1: 0xf,
16391 rs2: 0x0,
16392 csr: 0x480,
16393 funct7: 0x24,
16394 },
16395 Opcode::VFWCVTRTZXUFV => Inst {
16396 opcode: 0x57,
16397 funct3: 0x1,
16398 rs1: 0xe,
16399 rs2: 0x0,
16400 csr: 0x480,
16401 funct7: 0x24,
16402 },
16403 Opcode::VFWCVTXFV => Inst {
16404 opcode: 0x57,
16405 funct3: 0x1,
16406 rs1: 0x9,
16407 rs2: 0x0,
16408 csr: 0x480,
16409 funct7: 0x24,
16410 },
16411 Opcode::VFWCVTXUFV => Inst {
16412 opcode: 0x57,
16413 funct3: 0x1,
16414 rs1: 0x8,
16415 rs2: 0x0,
16416 csr: 0x480,
16417 funct7: 0x24,
16418 },
16419 Opcode::VFWMACCVF => Inst {
16420 opcode: 0x57,
16421 funct3: 0x5,
16422 rs1: 0x0,
16423 rs2: 0x0,
16424 csr: 0xf00,
16425 funct7: 0x78,
16426 },
16427 Opcode::VFWMACCVV => Inst {
16428 opcode: 0x57,
16429 funct3: 0x1,
16430 rs1: 0x0,
16431 rs2: 0x0,
16432 csr: 0xf00,
16433 funct7: 0x78,
16434 },
16435 Opcode::VFWMSACVF => Inst {
16436 opcode: 0x57,
16437 funct3: 0x5,
16438 rs1: 0x0,
16439 rs2: 0x0,
16440 csr: 0xf80,
16441 funct7: 0x7c,
16442 },
16443 Opcode::VFWMSACVV => Inst {
16444 opcode: 0x57,
16445 funct3: 0x1,
16446 rs1: 0x0,
16447 rs2: 0x0,
16448 csr: 0xf80,
16449 funct7: 0x7c,
16450 },
16451 Opcode::VFWMULVF => Inst {
16452 opcode: 0x57,
16453 funct3: 0x5,
16454 rs1: 0x0,
16455 rs2: 0x0,
16456 csr: 0xe00,
16457 funct7: 0x70,
16458 },
16459 Opcode::VFWMULVV => Inst {
16460 opcode: 0x57,
16461 funct3: 0x1,
16462 rs1: 0x0,
16463 rs2: 0x0,
16464 csr: 0xe00,
16465 funct7: 0x70,
16466 },
16467 Opcode::VFWNMACCVF => Inst {
16468 opcode: 0x57,
16469 funct3: 0x5,
16470 rs1: 0x0,
16471 rs2: 0x0,
16472 csr: 0xf40,
16473 funct7: 0x7a,
16474 },
16475 Opcode::VFWNMACCVV => Inst {
16476 opcode: 0x57,
16477 funct3: 0x1,
16478 rs1: 0x0,
16479 rs2: 0x0,
16480 csr: 0xf40,
16481 funct7: 0x7a,
16482 },
16483 Opcode::VFWNMSACVF => Inst {
16484 opcode: 0x57,
16485 funct3: 0x5,
16486 rs1: 0x0,
16487 rs2: 0x0,
16488 csr: 0xfc0,
16489 funct7: 0x7e,
16490 },
16491 Opcode::VFWNMSACVV => Inst {
16492 opcode: 0x57,
16493 funct3: 0x1,
16494 rs1: 0x0,
16495 rs2: 0x0,
16496 csr: 0xfc0,
16497 funct7: 0x7e,
16498 },
16499 Opcode::VFWREDOSUMVS => Inst {
16500 opcode: 0x57,
16501 funct3: 0x1,
16502 rs1: 0x0,
16503 rs2: 0x0,
16504 csr: 0xcc0,
16505 funct7: 0x66,
16506 },
16507 Opcode::VFWREDSUMVS => Inst {
16508 opcode: 0x57,
16509 funct3: 0x1,
16510 rs1: 0x0,
16511 rs2: 0x0,
16512 csr: 0xc40,
16513 funct7: 0x62,
16514 },
16515 Opcode::VFWREDUSUMVS => Inst {
16516 opcode: 0x57,
16517 funct3: 0x1,
16518 rs1: 0x0,
16519 rs2: 0x0,
16520 csr: 0xc40,
16521 funct7: 0x62,
16522 },
16523 Opcode::VFWSUBVF => Inst {
16524 opcode: 0x57,
16525 funct3: 0x5,
16526 rs1: 0x0,
16527 rs2: 0x0,
16528 csr: 0xc80,
16529 funct7: 0x64,
16530 },
16531 Opcode::VFWSUBVV => Inst {
16532 opcode: 0x57,
16533 funct3: 0x1,
16534 rs1: 0x0,
16535 rs2: 0x0,
16536 csr: 0xc80,
16537 funct7: 0x64,
16538 },
16539 Opcode::VFWSUBWF => Inst {
16540 opcode: 0x57,
16541 funct3: 0x5,
16542 rs1: 0x0,
16543 rs2: 0x0,
16544 csr: 0xd80,
16545 funct7: 0x6c,
16546 },
16547 Opcode::VFWSUBWV => Inst {
16548 opcode: 0x57,
16549 funct3: 0x1,
16550 rs1: 0x0,
16551 rs2: 0x0,
16552 csr: 0xd80,
16553 funct7: 0x6c,
16554 },
16555 Opcode::VGHSHVV => Inst {
16556 opcode: 0x77,
16557 funct3: 0x2,
16558 rs1: 0x0,
16559 rs2: 0x0,
16560 csr: 0xb20,
16561 funct7: 0x59,
16562 },
16563 Opcode::VGMULVV => Inst {
16564 opcode: 0x77,
16565 funct3: 0x2,
16566 rs1: 0x11,
16567 rs2: 0x0,
16568 csr: 0xa20,
16569 funct7: 0x51,
16570 },
16571 Opcode::VIDV => Inst {
16572 opcode: 0x57,
16573 funct3: 0x2,
16574 rs1: 0x11,
16575 rs2: 0x0,
16576 csr: 0x500,
16577 funct7: 0x28,
16578 },
16579 Opcode::VIOTAM => Inst {
16580 opcode: 0x57,
16581 funct3: 0x2,
16582 rs1: 0x10,
16583 rs2: 0x0,
16584 csr: 0x500,
16585 funct7: 0x28,
16586 },
16587 Opcode::VL1RV => Inst {
16588 opcode: 0x7,
16589 funct3: 0x0,
16590 rs1: 0x0,
16591 rs2: 0x8,
16592 csr: 0x28,
16593 funct7: 0x1,
16594 },
16595 Opcode::VL1RE16V => Inst {
16596 opcode: 0x7,
16597 funct3: 0x5,
16598 rs1: 0x0,
16599 rs2: 0x8,
16600 csr: 0x28,
16601 funct7: 0x1,
16602 },
16603 Opcode::VL1RE32V => Inst {
16604 opcode: 0x7,
16605 funct3: 0x6,
16606 rs1: 0x0,
16607 rs2: 0x8,
16608 csr: 0x28,
16609 funct7: 0x1,
16610 },
16611 Opcode::VL1RE64V => Inst {
16612 opcode: 0x7,
16613 funct3: 0x7,
16614 rs1: 0x0,
16615 rs2: 0x8,
16616 csr: 0x28,
16617 funct7: 0x1,
16618 },
16619 Opcode::VL1RE8V => Inst {
16620 opcode: 0x7,
16621 funct3: 0x0,
16622 rs1: 0x0,
16623 rs2: 0x8,
16624 csr: 0x28,
16625 funct7: 0x1,
16626 },
16627 Opcode::VL2RV => Inst {
16628 opcode: 0x7,
16629 funct3: 0x0,
16630 rs1: 0x0,
16631 rs2: 0x8,
16632 csr: 0x228,
16633 funct7: 0x11,
16634 },
16635 Opcode::VL2RE16V => Inst {
16636 opcode: 0x7,
16637 funct3: 0x5,
16638 rs1: 0x0,
16639 rs2: 0x8,
16640 csr: 0x228,
16641 funct7: 0x11,
16642 },
16643 Opcode::VL2RE32V => Inst {
16644 opcode: 0x7,
16645 funct3: 0x6,
16646 rs1: 0x0,
16647 rs2: 0x8,
16648 csr: 0x228,
16649 funct7: 0x11,
16650 },
16651 Opcode::VL2RE64V => Inst {
16652 opcode: 0x7,
16653 funct3: 0x7,
16654 rs1: 0x0,
16655 rs2: 0x8,
16656 csr: 0x228,
16657 funct7: 0x11,
16658 },
16659 Opcode::VL2RE8V => Inst {
16660 opcode: 0x7,
16661 funct3: 0x0,
16662 rs1: 0x0,
16663 rs2: 0x8,
16664 csr: 0x228,
16665 funct7: 0x11,
16666 },
16667 Opcode::VL4RV => Inst {
16668 opcode: 0x7,
16669 funct3: 0x0,
16670 rs1: 0x0,
16671 rs2: 0x8,
16672 csr: 0x628,
16673 funct7: 0x31,
16674 },
16675 Opcode::VL4RE16V => Inst {
16676 opcode: 0x7,
16677 funct3: 0x5,
16678 rs1: 0x0,
16679 rs2: 0x8,
16680 csr: 0x628,
16681 funct7: 0x31,
16682 },
16683 Opcode::VL4RE32V => Inst {
16684 opcode: 0x7,
16685 funct3: 0x6,
16686 rs1: 0x0,
16687 rs2: 0x8,
16688 csr: 0x628,
16689 funct7: 0x31,
16690 },
16691 Opcode::VL4RE64V => Inst {
16692 opcode: 0x7,
16693 funct3: 0x7,
16694 rs1: 0x0,
16695 rs2: 0x8,
16696 csr: 0x628,
16697 funct7: 0x31,
16698 },
16699 Opcode::VL4RE8V => Inst {
16700 opcode: 0x7,
16701 funct3: 0x0,
16702 rs1: 0x0,
16703 rs2: 0x8,
16704 csr: 0x628,
16705 funct7: 0x31,
16706 },
16707 Opcode::VL8RV => Inst {
16708 opcode: 0x7,
16709 funct3: 0x0,
16710 rs1: 0x0,
16711 rs2: 0x8,
16712 csr: 0xe28,
16713 funct7: 0x71,
16714 },
16715 Opcode::VL8RE16V => Inst {
16716 opcode: 0x7,
16717 funct3: 0x5,
16718 rs1: 0x0,
16719 rs2: 0x8,
16720 csr: 0xe28,
16721 funct7: 0x71,
16722 },
16723 Opcode::VL8RE32V => Inst {
16724 opcode: 0x7,
16725 funct3: 0x6,
16726 rs1: 0x0,
16727 rs2: 0x8,
16728 csr: 0xe28,
16729 funct7: 0x71,
16730 },
16731 Opcode::VL8RE64V => Inst {
16732 opcode: 0x7,
16733 funct3: 0x7,
16734 rs1: 0x0,
16735 rs2: 0x8,
16736 csr: 0xe28,
16737 funct7: 0x71,
16738 },
16739 Opcode::VL8RE8V => Inst {
16740 opcode: 0x7,
16741 funct3: 0x0,
16742 rs1: 0x0,
16743 rs2: 0x8,
16744 csr: 0xe28,
16745 funct7: 0x71,
16746 },
16747 Opcode::VLE16V => Inst {
16748 opcode: 0x7,
16749 funct3: 0x5,
16750 rs1: 0x0,
16751 rs2: 0x0,
16752 csr: 0x0,
16753 funct7: 0x0,
16754 },
16755 Opcode::VLE16FFV => Inst {
16756 opcode: 0x7,
16757 funct3: 0x5,
16758 rs1: 0x0,
16759 rs2: 0x10,
16760 csr: 0x10,
16761 funct7: 0x0,
16762 },
16763 Opcode::VLE1V => Inst {
16764 opcode: 0x7,
16765 funct3: 0x0,
16766 rs1: 0x0,
16767 rs2: 0xb,
16768 csr: 0x2b,
16769 funct7: 0x1,
16770 },
16771 Opcode::VLE32V => Inst {
16772 opcode: 0x7,
16773 funct3: 0x6,
16774 rs1: 0x0,
16775 rs2: 0x0,
16776 csr: 0x0,
16777 funct7: 0x0,
16778 },
16779 Opcode::VLE32FFV => Inst {
16780 opcode: 0x7,
16781 funct3: 0x6,
16782 rs1: 0x0,
16783 rs2: 0x10,
16784 csr: 0x10,
16785 funct7: 0x0,
16786 },
16787 Opcode::VLE64V => Inst {
16788 opcode: 0x7,
16789 funct3: 0x7,
16790 rs1: 0x0,
16791 rs2: 0x0,
16792 csr: 0x0,
16793 funct7: 0x0,
16794 },
16795 Opcode::VLE64FFV => Inst {
16796 opcode: 0x7,
16797 funct3: 0x7,
16798 rs1: 0x0,
16799 rs2: 0x10,
16800 csr: 0x10,
16801 funct7: 0x0,
16802 },
16803 Opcode::VLE8V => Inst {
16804 opcode: 0x7,
16805 funct3: 0x0,
16806 rs1: 0x0,
16807 rs2: 0x0,
16808 csr: 0x0,
16809 funct7: 0x0,
16810 },
16811 Opcode::VLE8FFV => Inst {
16812 opcode: 0x7,
16813 funct3: 0x0,
16814 rs1: 0x0,
16815 rs2: 0x10,
16816 csr: 0x10,
16817 funct7: 0x0,
16818 },
16819 Opcode::VLMV => Inst {
16820 opcode: 0x7,
16821 funct3: 0x0,
16822 rs1: 0x0,
16823 rs2: 0xb,
16824 csr: 0x2b,
16825 funct7: 0x1,
16826 },
16827 Opcode::VLOXEI16V => Inst {
16828 opcode: 0x7,
16829 funct3: 0x5,
16830 rs1: 0x0,
16831 rs2: 0x0,
16832 csr: 0xc0,
16833 funct7: 0x6,
16834 },
16835 Opcode::VLOXEI32V => Inst {
16836 opcode: 0x7,
16837 funct3: 0x6,
16838 rs1: 0x0,
16839 rs2: 0x0,
16840 csr: 0xc0,
16841 funct7: 0x6,
16842 },
16843 Opcode::VLOXEI64V => Inst {
16844 opcode: 0x7,
16845 funct3: 0x7,
16846 rs1: 0x0,
16847 rs2: 0x0,
16848 csr: 0xc0,
16849 funct7: 0x6,
16850 },
16851 Opcode::VLOXEI8V => Inst {
16852 opcode: 0x7,
16853 funct3: 0x0,
16854 rs1: 0x0,
16855 rs2: 0x0,
16856 csr: 0xc0,
16857 funct7: 0x6,
16858 },
16859 Opcode::VLSE16V => Inst {
16860 opcode: 0x7,
16861 funct3: 0x5,
16862 rs1: 0x0,
16863 rs2: 0x0,
16864 csr: 0x80,
16865 funct7: 0x4,
16866 },
16867 Opcode::VLSE32V => Inst {
16868 opcode: 0x7,
16869 funct3: 0x6,
16870 rs1: 0x0,
16871 rs2: 0x0,
16872 csr: 0x80,
16873 funct7: 0x4,
16874 },
16875 Opcode::VLSE64V => Inst {
16876 opcode: 0x7,
16877 funct3: 0x7,
16878 rs1: 0x0,
16879 rs2: 0x0,
16880 csr: 0x80,
16881 funct7: 0x4,
16882 },
16883 Opcode::VLSE8V => Inst {
16884 opcode: 0x7,
16885 funct3: 0x0,
16886 rs1: 0x0,
16887 rs2: 0x0,
16888 csr: 0x80,
16889 funct7: 0x4,
16890 },
16891 Opcode::VLUXEI16V => Inst {
16892 opcode: 0x7,
16893 funct3: 0x5,
16894 rs1: 0x0,
16895 rs2: 0x0,
16896 csr: 0x40,
16897 funct7: 0x2,
16898 },
16899 Opcode::VLUXEI32V => Inst {
16900 opcode: 0x7,
16901 funct3: 0x6,
16902 rs1: 0x0,
16903 rs2: 0x0,
16904 csr: 0x40,
16905 funct7: 0x2,
16906 },
16907 Opcode::VLUXEI64V => Inst {
16908 opcode: 0x7,
16909 funct3: 0x7,
16910 rs1: 0x0,
16911 rs2: 0x0,
16912 csr: 0x40,
16913 funct7: 0x2,
16914 },
16915 Opcode::VLUXEI8V => Inst {
16916 opcode: 0x7,
16917 funct3: 0x0,
16918 rs1: 0x0,
16919 rs2: 0x0,
16920 csr: 0x40,
16921 funct7: 0x2,
16922 },
16923 Opcode::VMACCVV => Inst {
16924 opcode: 0x57,
16925 funct3: 0x2,
16926 rs1: 0x0,
16927 rs2: 0x0,
16928 csr: 0xb40,
16929 funct7: 0x5a,
16930 },
16931 Opcode::VMACCVX => Inst {
16932 opcode: 0x57,
16933 funct3: 0x6,
16934 rs1: 0x0,
16935 rs2: 0x0,
16936 csr: 0xb40,
16937 funct7: 0x5a,
16938 },
16939 Opcode::VMADCVI => Inst {
16940 opcode: 0x57,
16941 funct3: 0x3,
16942 rs1: 0x0,
16943 rs2: 0x0,
16944 csr: 0x460,
16945 funct7: 0x23,
16946 },
16947 Opcode::VMADCVIM => Inst {
16948 opcode: 0x57,
16949 funct3: 0x3,
16950 rs1: 0x0,
16951 rs2: 0x0,
16952 csr: 0x440,
16953 funct7: 0x22,
16954 },
16955 Opcode::VMADCVV => Inst {
16956 opcode: 0x57,
16957 funct3: 0x0,
16958 rs1: 0x0,
16959 rs2: 0x0,
16960 csr: 0x460,
16961 funct7: 0x23,
16962 },
16963 Opcode::VMADCVVM => Inst {
16964 opcode: 0x57,
16965 funct3: 0x0,
16966 rs1: 0x0,
16967 rs2: 0x0,
16968 csr: 0x440,
16969 funct7: 0x22,
16970 },
16971 Opcode::VMADCVX => Inst {
16972 opcode: 0x57,
16973 funct3: 0x4,
16974 rs1: 0x0,
16975 rs2: 0x0,
16976 csr: 0x460,
16977 funct7: 0x23,
16978 },
16979 Opcode::VMADCVXM => Inst {
16980 opcode: 0x57,
16981 funct3: 0x4,
16982 rs1: 0x0,
16983 rs2: 0x0,
16984 csr: 0x440,
16985 funct7: 0x22,
16986 },
16987 Opcode::VMADDVV => Inst {
16988 opcode: 0x57,
16989 funct3: 0x2,
16990 rs1: 0x0,
16991 rs2: 0x0,
16992 csr: 0xa40,
16993 funct7: 0x52,
16994 },
16995 Opcode::VMADDVX => Inst {
16996 opcode: 0x57,
16997 funct3: 0x6,
16998 rs1: 0x0,
16999 rs2: 0x0,
17000 csr: 0xa40,
17001 funct7: 0x52,
17002 },
17003 Opcode::VMANDMM => Inst {
17004 opcode: 0x57,
17005 funct3: 0x2,
17006 rs1: 0x0,
17007 rs2: 0x0,
17008 csr: 0x660,
17009 funct7: 0x33,
17010 },
17011 Opcode::VMANDNMM => Inst {
17012 opcode: 0x57,
17013 funct3: 0x2,
17014 rs1: 0x0,
17015 rs2: 0x0,
17016 csr: 0x620,
17017 funct7: 0x31,
17018 },
17019 Opcode::VMANDNOTMM => Inst {
17020 opcode: 0x57,
17021 funct3: 0x2,
17022 rs1: 0x0,
17023 rs2: 0x0,
17024 csr: 0x600,
17025 funct7: 0x30,
17026 },
17027 Opcode::VMAXVV => Inst {
17028 opcode: 0x57,
17029 funct3: 0x0,
17030 rs1: 0x0,
17031 rs2: 0x0,
17032 csr: 0x1c0,
17033 funct7: 0xe,
17034 },
17035 Opcode::VMAXVX => Inst {
17036 opcode: 0x57,
17037 funct3: 0x4,
17038 rs1: 0x0,
17039 rs2: 0x0,
17040 csr: 0x1c0,
17041 funct7: 0xe,
17042 },
17043 Opcode::VMAXUVV => Inst {
17044 opcode: 0x57,
17045 funct3: 0x0,
17046 rs1: 0x0,
17047 rs2: 0x0,
17048 csr: 0x180,
17049 funct7: 0xc,
17050 },
17051 Opcode::VMAXUVX => Inst {
17052 opcode: 0x57,
17053 funct3: 0x4,
17054 rs1: 0x0,
17055 rs2: 0x0,
17056 csr: 0x180,
17057 funct7: 0xc,
17058 },
17059 Opcode::VMERGEVIM => Inst {
17060 opcode: 0x57,
17061 funct3: 0x3,
17062 rs1: 0x0,
17063 rs2: 0x0,
17064 csr: 0x5c0,
17065 funct7: 0x2e,
17066 },
17067 Opcode::VMERGEVVM => Inst {
17068 opcode: 0x57,
17069 funct3: 0x0,
17070 rs1: 0x0,
17071 rs2: 0x0,
17072 csr: 0x5c0,
17073 funct7: 0x2e,
17074 },
17075 Opcode::VMERGEVXM => Inst {
17076 opcode: 0x57,
17077 funct3: 0x4,
17078 rs1: 0x0,
17079 rs2: 0x0,
17080 csr: 0x5c0,
17081 funct7: 0x2e,
17082 },
17083 Opcode::VMFEQVF => Inst {
17084 opcode: 0x57,
17085 funct3: 0x5,
17086 rs1: 0x0,
17087 rs2: 0x0,
17088 csr: 0x600,
17089 funct7: 0x30,
17090 },
17091 Opcode::VMFEQVV => Inst {
17092 opcode: 0x57,
17093 funct3: 0x1,
17094 rs1: 0x0,
17095 rs2: 0x0,
17096 csr: 0x600,
17097 funct7: 0x30,
17098 },
17099 Opcode::VMFGEVF => Inst {
17100 opcode: 0x57,
17101 funct3: 0x5,
17102 rs1: 0x0,
17103 rs2: 0x0,
17104 csr: 0x7c0,
17105 funct7: 0x3e,
17106 },
17107 Opcode::VMFGTVF => Inst {
17108 opcode: 0x57,
17109 funct3: 0x5,
17110 rs1: 0x0,
17111 rs2: 0x0,
17112 csr: 0x740,
17113 funct7: 0x3a,
17114 },
17115 Opcode::VMFLEVF => Inst {
17116 opcode: 0x57,
17117 funct3: 0x5,
17118 rs1: 0x0,
17119 rs2: 0x0,
17120 csr: 0x640,
17121 funct7: 0x32,
17122 },
17123 Opcode::VMFLEVV => Inst {
17124 opcode: 0x57,
17125 funct3: 0x1,
17126 rs1: 0x0,
17127 rs2: 0x0,
17128 csr: 0x640,
17129 funct7: 0x32,
17130 },
17131 Opcode::VMFLTVF => Inst {
17132 opcode: 0x57,
17133 funct3: 0x5,
17134 rs1: 0x0,
17135 rs2: 0x0,
17136 csr: 0x6c0,
17137 funct7: 0x36,
17138 },
17139 Opcode::VMFLTVV => Inst {
17140 opcode: 0x57,
17141 funct3: 0x1,
17142 rs1: 0x0,
17143 rs2: 0x0,
17144 csr: 0x6c0,
17145 funct7: 0x36,
17146 },
17147 Opcode::VMFNEVF => Inst {
17148 opcode: 0x57,
17149 funct3: 0x5,
17150 rs1: 0x0,
17151 rs2: 0x0,
17152 csr: 0x700,
17153 funct7: 0x38,
17154 },
17155 Opcode::VMFNEVV => Inst {
17156 opcode: 0x57,
17157 funct3: 0x1,
17158 rs1: 0x0,
17159 rs2: 0x0,
17160 csr: 0x700,
17161 funct7: 0x38,
17162 },
17163 Opcode::VMINVV => Inst {
17164 opcode: 0x57,
17165 funct3: 0x0,
17166 rs1: 0x0,
17167 rs2: 0x0,
17168 csr: 0x140,
17169 funct7: 0xa,
17170 },
17171 Opcode::VMINVX => Inst {
17172 opcode: 0x57,
17173 funct3: 0x4,
17174 rs1: 0x0,
17175 rs2: 0x0,
17176 csr: 0x140,
17177 funct7: 0xa,
17178 },
17179 Opcode::VMINUVV => Inst {
17180 opcode: 0x57,
17181 funct3: 0x0,
17182 rs1: 0x0,
17183 rs2: 0x0,
17184 csr: 0x100,
17185 funct7: 0x8,
17186 },
17187 Opcode::VMINUVX => Inst {
17188 opcode: 0x57,
17189 funct3: 0x4,
17190 rs1: 0x0,
17191 rs2: 0x0,
17192 csr: 0x100,
17193 funct7: 0x8,
17194 },
17195 Opcode::VMNANDMM => Inst {
17196 opcode: 0x57,
17197 funct3: 0x2,
17198 rs1: 0x0,
17199 rs2: 0x0,
17200 csr: 0x760,
17201 funct7: 0x3b,
17202 },
17203 Opcode::VMNORMM => Inst {
17204 opcode: 0x57,
17205 funct3: 0x2,
17206 rs1: 0x0,
17207 rs2: 0x0,
17208 csr: 0x7a0,
17209 funct7: 0x3d,
17210 },
17211 Opcode::VMORMM => Inst {
17212 opcode: 0x57,
17213 funct3: 0x2,
17214 rs1: 0x0,
17215 rs2: 0x0,
17216 csr: 0x6a0,
17217 funct7: 0x35,
17218 },
17219 Opcode::VMORNMM => Inst {
17220 opcode: 0x57,
17221 funct3: 0x2,
17222 rs1: 0x0,
17223 rs2: 0x0,
17224 csr: 0x720,
17225 funct7: 0x39,
17226 },
17227 Opcode::VMORNOTMM => Inst {
17228 opcode: 0x57,
17229 funct3: 0x2,
17230 rs1: 0x0,
17231 rs2: 0x0,
17232 csr: 0x700,
17233 funct7: 0x38,
17234 },
17235 Opcode::VMSBCVV => Inst {
17236 opcode: 0x57,
17237 funct3: 0x0,
17238 rs1: 0x0,
17239 rs2: 0x0,
17240 csr: 0x4e0,
17241 funct7: 0x27,
17242 },
17243 Opcode::VMSBCVVM => Inst {
17244 opcode: 0x57,
17245 funct3: 0x0,
17246 rs1: 0x0,
17247 rs2: 0x0,
17248 csr: 0x4c0,
17249 funct7: 0x26,
17250 },
17251 Opcode::VMSBCVX => Inst {
17252 opcode: 0x57,
17253 funct3: 0x4,
17254 rs1: 0x0,
17255 rs2: 0x0,
17256 csr: 0x4e0,
17257 funct7: 0x27,
17258 },
17259 Opcode::VMSBCVXM => Inst {
17260 opcode: 0x57,
17261 funct3: 0x4,
17262 rs1: 0x0,
17263 rs2: 0x0,
17264 csr: 0x4c0,
17265 funct7: 0x26,
17266 },
17267 Opcode::VMSBFM => Inst {
17268 opcode: 0x57,
17269 funct3: 0x2,
17270 rs1: 0x1,
17271 rs2: 0x0,
17272 csr: 0x500,
17273 funct7: 0x28,
17274 },
17275 Opcode::VMSEQVI => Inst {
17276 opcode: 0x57,
17277 funct3: 0x3,
17278 rs1: 0x0,
17279 rs2: 0x0,
17280 csr: 0x600,
17281 funct7: 0x30,
17282 },
17283 Opcode::VMSEQVV => Inst {
17284 opcode: 0x57,
17285 funct3: 0x0,
17286 rs1: 0x0,
17287 rs2: 0x0,
17288 csr: 0x600,
17289 funct7: 0x30,
17290 },
17291 Opcode::VMSEQVX => Inst {
17292 opcode: 0x57,
17293 funct3: 0x4,
17294 rs1: 0x0,
17295 rs2: 0x0,
17296 csr: 0x600,
17297 funct7: 0x30,
17298 },
17299 Opcode::VMSGTVI => Inst {
17300 opcode: 0x57,
17301 funct3: 0x3,
17302 rs1: 0x0,
17303 rs2: 0x0,
17304 csr: 0x7c0,
17305 funct7: 0x3e,
17306 },
17307 Opcode::VMSGTVX => Inst {
17308 opcode: 0x57,
17309 funct3: 0x4,
17310 rs1: 0x0,
17311 rs2: 0x0,
17312 csr: 0x7c0,
17313 funct7: 0x3e,
17314 },
17315 Opcode::VMSGTUVI => Inst {
17316 opcode: 0x57,
17317 funct3: 0x3,
17318 rs1: 0x0,
17319 rs2: 0x0,
17320 csr: 0x780,
17321 funct7: 0x3c,
17322 },
17323 Opcode::VMSGTUVX => Inst {
17324 opcode: 0x57,
17325 funct3: 0x4,
17326 rs1: 0x0,
17327 rs2: 0x0,
17328 csr: 0x780,
17329 funct7: 0x3c,
17330 },
17331 Opcode::VMSIFM => Inst {
17332 opcode: 0x57,
17333 funct3: 0x2,
17334 rs1: 0x3,
17335 rs2: 0x0,
17336 csr: 0x500,
17337 funct7: 0x28,
17338 },
17339 Opcode::VMSLEVI => Inst {
17340 opcode: 0x57,
17341 funct3: 0x3,
17342 rs1: 0x0,
17343 rs2: 0x0,
17344 csr: 0x740,
17345 funct7: 0x3a,
17346 },
17347 Opcode::VMSLEVV => Inst {
17348 opcode: 0x57,
17349 funct3: 0x0,
17350 rs1: 0x0,
17351 rs2: 0x0,
17352 csr: 0x740,
17353 funct7: 0x3a,
17354 },
17355 Opcode::VMSLEVX => Inst {
17356 opcode: 0x57,
17357 funct3: 0x4,
17358 rs1: 0x0,
17359 rs2: 0x0,
17360 csr: 0x740,
17361 funct7: 0x3a,
17362 },
17363 Opcode::VMSLEUVI => Inst {
17364 opcode: 0x57,
17365 funct3: 0x3,
17366 rs1: 0x0,
17367 rs2: 0x0,
17368 csr: 0x700,
17369 funct7: 0x38,
17370 },
17371 Opcode::VMSLEUVV => Inst {
17372 opcode: 0x57,
17373 funct3: 0x0,
17374 rs1: 0x0,
17375 rs2: 0x0,
17376 csr: 0x700,
17377 funct7: 0x38,
17378 },
17379 Opcode::VMSLEUVX => Inst {
17380 opcode: 0x57,
17381 funct3: 0x4,
17382 rs1: 0x0,
17383 rs2: 0x0,
17384 csr: 0x700,
17385 funct7: 0x38,
17386 },
17387 Opcode::VMSLTVV => Inst {
17388 opcode: 0x57,
17389 funct3: 0x0,
17390 rs1: 0x0,
17391 rs2: 0x0,
17392 csr: 0x6c0,
17393 funct7: 0x36,
17394 },
17395 Opcode::VMSLTVX => Inst {
17396 opcode: 0x57,
17397 funct3: 0x4,
17398 rs1: 0x0,
17399 rs2: 0x0,
17400 csr: 0x6c0,
17401 funct7: 0x36,
17402 },
17403 Opcode::VMSLTUVV => Inst {
17404 opcode: 0x57,
17405 funct3: 0x0,
17406 rs1: 0x0,
17407 rs2: 0x0,
17408 csr: 0x680,
17409 funct7: 0x34,
17410 },
17411 Opcode::VMSLTUVX => Inst {
17412 opcode: 0x57,
17413 funct3: 0x4,
17414 rs1: 0x0,
17415 rs2: 0x0,
17416 csr: 0x680,
17417 funct7: 0x34,
17418 },
17419 Opcode::VMSNEVI => Inst {
17420 opcode: 0x57,
17421 funct3: 0x3,
17422 rs1: 0x0,
17423 rs2: 0x0,
17424 csr: 0x640,
17425 funct7: 0x32,
17426 },
17427 Opcode::VMSNEVV => Inst {
17428 opcode: 0x57,
17429 funct3: 0x0,
17430 rs1: 0x0,
17431 rs2: 0x0,
17432 csr: 0x640,
17433 funct7: 0x32,
17434 },
17435 Opcode::VMSNEVX => Inst {
17436 opcode: 0x57,
17437 funct3: 0x4,
17438 rs1: 0x0,
17439 rs2: 0x0,
17440 csr: 0x640,
17441 funct7: 0x32,
17442 },
17443 Opcode::VMSOFM => Inst {
17444 opcode: 0x57,
17445 funct3: 0x2,
17446 rs1: 0x2,
17447 rs2: 0x0,
17448 csr: 0x500,
17449 funct7: 0x28,
17450 },
17451 Opcode::VMULVV => Inst {
17452 opcode: 0x57,
17453 funct3: 0x2,
17454 rs1: 0x0,
17455 rs2: 0x0,
17456 csr: 0x940,
17457 funct7: 0x4a,
17458 },
17459 Opcode::VMULVX => Inst {
17460 opcode: 0x57,
17461 funct3: 0x6,
17462 rs1: 0x0,
17463 rs2: 0x0,
17464 csr: 0x940,
17465 funct7: 0x4a,
17466 },
17467 Opcode::VMULHVV => Inst {
17468 opcode: 0x57,
17469 funct3: 0x2,
17470 rs1: 0x0,
17471 rs2: 0x0,
17472 csr: 0x9c0,
17473 funct7: 0x4e,
17474 },
17475 Opcode::VMULHVX => Inst {
17476 opcode: 0x57,
17477 funct3: 0x6,
17478 rs1: 0x0,
17479 rs2: 0x0,
17480 csr: 0x9c0,
17481 funct7: 0x4e,
17482 },
17483 Opcode::VMULHSUVV => Inst {
17484 opcode: 0x57,
17485 funct3: 0x2,
17486 rs1: 0x0,
17487 rs2: 0x0,
17488 csr: 0x980,
17489 funct7: 0x4c,
17490 },
17491 Opcode::VMULHSUVX => Inst {
17492 opcode: 0x57,
17493 funct3: 0x6,
17494 rs1: 0x0,
17495 rs2: 0x0,
17496 csr: 0x980,
17497 funct7: 0x4c,
17498 },
17499 Opcode::VMULHUVV => Inst {
17500 opcode: 0x57,
17501 funct3: 0x2,
17502 rs1: 0x0,
17503 rs2: 0x0,
17504 csr: 0x900,
17505 funct7: 0x48,
17506 },
17507 Opcode::VMULHUVX => Inst {
17508 opcode: 0x57,
17509 funct3: 0x6,
17510 rs1: 0x0,
17511 rs2: 0x0,
17512 csr: 0x900,
17513 funct7: 0x48,
17514 },
17515 Opcode::VMV1RV => Inst {
17516 opcode: 0x57,
17517 funct3: 0x3,
17518 rs1: 0x0,
17519 rs2: 0x0,
17520 csr: 0x9e0,
17521 funct7: 0x4f,
17522 },
17523 Opcode::VMV2RV => Inst {
17524 opcode: 0x57,
17525 funct3: 0x3,
17526 rs1: 0x1,
17527 rs2: 0x0,
17528 csr: 0x9e0,
17529 funct7: 0x4f,
17530 },
17531 Opcode::VMV4RV => Inst {
17532 opcode: 0x57,
17533 funct3: 0x3,
17534 rs1: 0x3,
17535 rs2: 0x0,
17536 csr: 0x9e0,
17537 funct7: 0x4f,
17538 },
17539 Opcode::VMV8RV => Inst {
17540 opcode: 0x57,
17541 funct3: 0x3,
17542 rs1: 0x7,
17543 rs2: 0x0,
17544 csr: 0x9e0,
17545 funct7: 0x4f,
17546 },
17547 Opcode::VMVSX => Inst {
17548 opcode: 0x57,
17549 funct3: 0x6,
17550 rs1: 0x0,
17551 rs2: 0x0,
17552 csr: 0x420,
17553 funct7: 0x21,
17554 },
17555 Opcode::VMVVI => Inst {
17556 opcode: 0x57,
17557 funct3: 0x3,
17558 rs1: 0x0,
17559 rs2: 0x0,
17560 csr: 0x5e0,
17561 funct7: 0x2f,
17562 },
17563 Opcode::VMVVV => Inst {
17564 opcode: 0x57,
17565 funct3: 0x0,
17566 rs1: 0x0,
17567 rs2: 0x0,
17568 csr: 0x5e0,
17569 funct7: 0x2f,
17570 },
17571 Opcode::VMVVX => Inst {
17572 opcode: 0x57,
17573 funct3: 0x4,
17574 rs1: 0x0,
17575 rs2: 0x0,
17576 csr: 0x5e0,
17577 funct7: 0x2f,
17578 },
17579 Opcode::VMVXS => Inst {
17580 opcode: 0x57,
17581 funct3: 0x2,
17582 rs1: 0x0,
17583 rs2: 0x0,
17584 csr: 0x420,
17585 funct7: 0x21,
17586 },
17587 Opcode::VMXNORMM => Inst {
17588 opcode: 0x57,
17589 funct3: 0x2,
17590 rs1: 0x0,
17591 rs2: 0x0,
17592 csr: 0x7e0,
17593 funct7: 0x3f,
17594 },
17595 Opcode::VMXORMM => Inst {
17596 opcode: 0x57,
17597 funct3: 0x2,
17598 rs1: 0x0,
17599 rs2: 0x0,
17600 csr: 0x6e0,
17601 funct7: 0x37,
17602 },
17603 Opcode::VNCLIPWI => Inst {
17604 opcode: 0x57,
17605 funct3: 0x3,
17606 rs1: 0x0,
17607 rs2: 0x0,
17608 csr: 0xbc0,
17609 funct7: 0x5e,
17610 },
17611 Opcode::VNCLIPWV => Inst {
17612 opcode: 0x57,
17613 funct3: 0x0,
17614 rs1: 0x0,
17615 rs2: 0x0,
17616 csr: 0xbc0,
17617 funct7: 0x5e,
17618 },
17619 Opcode::VNCLIPWX => Inst {
17620 opcode: 0x57,
17621 funct3: 0x4,
17622 rs1: 0x0,
17623 rs2: 0x0,
17624 csr: 0xbc0,
17625 funct7: 0x5e,
17626 },
17627 Opcode::VNCLIPUWI => Inst {
17628 opcode: 0x57,
17629 funct3: 0x3,
17630 rs1: 0x0,
17631 rs2: 0x0,
17632 csr: 0xb80,
17633 funct7: 0x5c,
17634 },
17635 Opcode::VNCLIPUWV => Inst {
17636 opcode: 0x57,
17637 funct3: 0x0,
17638 rs1: 0x0,
17639 rs2: 0x0,
17640 csr: 0xb80,
17641 funct7: 0x5c,
17642 },
17643 Opcode::VNCLIPUWX => Inst {
17644 opcode: 0x57,
17645 funct3: 0x4,
17646 rs1: 0x0,
17647 rs2: 0x0,
17648 csr: 0xb80,
17649 funct7: 0x5c,
17650 },
17651 Opcode::VNMSACVV => Inst {
17652 opcode: 0x57,
17653 funct3: 0x2,
17654 rs1: 0x0,
17655 rs2: 0x0,
17656 csr: 0xbc0,
17657 funct7: 0x5e,
17658 },
17659 Opcode::VNMSACVX => Inst {
17660 opcode: 0x57,
17661 funct3: 0x6,
17662 rs1: 0x0,
17663 rs2: 0x0,
17664 csr: 0xbc0,
17665 funct7: 0x5e,
17666 },
17667 Opcode::VNMSUBVV => Inst {
17668 opcode: 0x57,
17669 funct3: 0x2,
17670 rs1: 0x0,
17671 rs2: 0x0,
17672 csr: 0xac0,
17673 funct7: 0x56,
17674 },
17675 Opcode::VNMSUBVX => Inst {
17676 opcode: 0x57,
17677 funct3: 0x6,
17678 rs1: 0x0,
17679 rs2: 0x0,
17680 csr: 0xac0,
17681 funct7: 0x56,
17682 },
17683 Opcode::VNSRAWI => Inst {
17684 opcode: 0x57,
17685 funct3: 0x3,
17686 rs1: 0x0,
17687 rs2: 0x0,
17688 csr: 0xb40,
17689 funct7: 0x5a,
17690 },
17691 Opcode::VNSRAWV => Inst {
17692 opcode: 0x57,
17693 funct3: 0x0,
17694 rs1: 0x0,
17695 rs2: 0x0,
17696 csr: 0xb40,
17697 funct7: 0x5a,
17698 },
17699 Opcode::VNSRAWX => Inst {
17700 opcode: 0x57,
17701 funct3: 0x4,
17702 rs1: 0x0,
17703 rs2: 0x0,
17704 csr: 0xb40,
17705 funct7: 0x5a,
17706 },
17707 Opcode::VNSRLWI => Inst {
17708 opcode: 0x57,
17709 funct3: 0x3,
17710 rs1: 0x0,
17711 rs2: 0x0,
17712 csr: 0xb00,
17713 funct7: 0x58,
17714 },
17715 Opcode::VNSRLWV => Inst {
17716 opcode: 0x57,
17717 funct3: 0x0,
17718 rs1: 0x0,
17719 rs2: 0x0,
17720 csr: 0xb00,
17721 funct7: 0x58,
17722 },
17723 Opcode::VNSRLWX => Inst {
17724 opcode: 0x57,
17725 funct3: 0x4,
17726 rs1: 0x0,
17727 rs2: 0x0,
17728 csr: 0xb00,
17729 funct7: 0x58,
17730 },
17731 Opcode::VORVI => Inst {
17732 opcode: 0x57,
17733 funct3: 0x3,
17734 rs1: 0x0,
17735 rs2: 0x0,
17736 csr: 0x280,
17737 funct7: 0x14,
17738 },
17739 Opcode::VORVV => Inst {
17740 opcode: 0x57,
17741 funct3: 0x0,
17742 rs1: 0x0,
17743 rs2: 0x0,
17744 csr: 0x280,
17745 funct7: 0x14,
17746 },
17747 Opcode::VORVX => Inst {
17748 opcode: 0x57,
17749 funct3: 0x4,
17750 rs1: 0x0,
17751 rs2: 0x0,
17752 csr: 0x280,
17753 funct7: 0x14,
17754 },
17755 Opcode::VPOPCM => Inst {
17756 opcode: 0x57,
17757 funct3: 0x2,
17758 rs1: 0x10,
17759 rs2: 0x0,
17760 csr: 0x400,
17761 funct7: 0x20,
17762 },
17763 Opcode::VREDANDVS => Inst {
17764 opcode: 0x57,
17765 funct3: 0x2,
17766 rs1: 0x0,
17767 rs2: 0x0,
17768 csr: 0x40,
17769 funct7: 0x2,
17770 },
17771 Opcode::VREDMAXVS => Inst {
17772 opcode: 0x57,
17773 funct3: 0x2,
17774 rs1: 0x0,
17775 rs2: 0x0,
17776 csr: 0x1c0,
17777 funct7: 0xe,
17778 },
17779 Opcode::VREDMAXUVS => Inst {
17780 opcode: 0x57,
17781 funct3: 0x2,
17782 rs1: 0x0,
17783 rs2: 0x0,
17784 csr: 0x180,
17785 funct7: 0xc,
17786 },
17787 Opcode::VREDMINVS => Inst {
17788 opcode: 0x57,
17789 funct3: 0x2,
17790 rs1: 0x0,
17791 rs2: 0x0,
17792 csr: 0x140,
17793 funct7: 0xa,
17794 },
17795 Opcode::VREDMINUVS => Inst {
17796 opcode: 0x57,
17797 funct3: 0x2,
17798 rs1: 0x0,
17799 rs2: 0x0,
17800 csr: 0x100,
17801 funct7: 0x8,
17802 },
17803 Opcode::VREDORVS => Inst {
17804 opcode: 0x57,
17805 funct3: 0x2,
17806 rs1: 0x0,
17807 rs2: 0x0,
17808 csr: 0x80,
17809 funct7: 0x4,
17810 },
17811 Opcode::VREDSUMVS => Inst {
17812 opcode: 0x57,
17813 funct3: 0x2,
17814 rs1: 0x0,
17815 rs2: 0x0,
17816 csr: 0x0,
17817 funct7: 0x0,
17818 },
17819 Opcode::VREDXORVS => Inst {
17820 opcode: 0x57,
17821 funct3: 0x2,
17822 rs1: 0x0,
17823 rs2: 0x0,
17824 csr: 0xc0,
17825 funct7: 0x6,
17826 },
17827 Opcode::VREMVV => Inst {
17828 opcode: 0x57,
17829 funct3: 0x2,
17830 rs1: 0x0,
17831 rs2: 0x0,
17832 csr: 0x8c0,
17833 funct7: 0x46,
17834 },
17835 Opcode::VREMVX => Inst {
17836 opcode: 0x57,
17837 funct3: 0x6,
17838 rs1: 0x0,
17839 rs2: 0x0,
17840 csr: 0x8c0,
17841 funct7: 0x46,
17842 },
17843 Opcode::VREMUVV => Inst {
17844 opcode: 0x57,
17845 funct3: 0x2,
17846 rs1: 0x0,
17847 rs2: 0x0,
17848 csr: 0x880,
17849 funct7: 0x44,
17850 },
17851 Opcode::VREMUVX => Inst {
17852 opcode: 0x57,
17853 funct3: 0x6,
17854 rs1: 0x0,
17855 rs2: 0x0,
17856 csr: 0x880,
17857 funct7: 0x44,
17858 },
17859 Opcode::VREV8V => Inst {
17860 opcode: 0x57,
17861 funct3: 0x2,
17862 rs1: 0x9,
17863 rs2: 0x0,
17864 csr: 0x480,
17865 funct7: 0x24,
17866 },
17867 Opcode::VRGATHERVI => Inst {
17868 opcode: 0x57,
17869 funct3: 0x3,
17870 rs1: 0x0,
17871 rs2: 0x0,
17872 csr: 0x300,
17873 funct7: 0x18,
17874 },
17875 Opcode::VRGATHERVV => Inst {
17876 opcode: 0x57,
17877 funct3: 0x0,
17878 rs1: 0x0,
17879 rs2: 0x0,
17880 csr: 0x300,
17881 funct7: 0x18,
17882 },
17883 Opcode::VRGATHERVX => Inst {
17884 opcode: 0x57,
17885 funct3: 0x4,
17886 rs1: 0x0,
17887 rs2: 0x0,
17888 csr: 0x300,
17889 funct7: 0x18,
17890 },
17891 Opcode::VRGATHEREI16VV => Inst {
17892 opcode: 0x57,
17893 funct3: 0x0,
17894 rs1: 0x0,
17895 rs2: 0x0,
17896 csr: 0x380,
17897 funct7: 0x1c,
17898 },
17899 Opcode::VROLVV => Inst {
17900 opcode: 0x57,
17901 funct3: 0x0,
17902 rs1: 0x0,
17903 rs2: 0x0,
17904 csr: 0x540,
17905 funct7: 0x2a,
17906 },
17907 Opcode::VROLVX => Inst {
17908 opcode: 0x57,
17909 funct3: 0x4,
17910 rs1: 0x0,
17911 rs2: 0x0,
17912 csr: 0x540,
17913 funct7: 0x2a,
17914 },
17915 Opcode::VRORVI => Inst {
17916 opcode: 0x57,
17917 funct3: 0x3,
17918 rs1: 0x0,
17919 rs2: 0x0,
17920 csr: 0x500,
17921 funct7: 0x28,
17922 },
17923 Opcode::VRORVV => Inst {
17924 opcode: 0x57,
17925 funct3: 0x0,
17926 rs1: 0x0,
17927 rs2: 0x0,
17928 csr: 0x500,
17929 funct7: 0x28,
17930 },
17931 Opcode::VRORVX => Inst {
17932 opcode: 0x57,
17933 funct3: 0x4,
17934 rs1: 0x0,
17935 rs2: 0x0,
17936 csr: 0x500,
17937 funct7: 0x28,
17938 },
17939 Opcode::VRSUBVI => Inst {
17940 opcode: 0x57,
17941 funct3: 0x3,
17942 rs1: 0x0,
17943 rs2: 0x0,
17944 csr: 0xc0,
17945 funct7: 0x6,
17946 },
17947 Opcode::VRSUBVX => Inst {
17948 opcode: 0x57,
17949 funct3: 0x4,
17950 rs1: 0x0,
17951 rs2: 0x0,
17952 csr: 0xc0,
17953 funct7: 0x6,
17954 },
17955 Opcode::VS1RV => Inst {
17956 opcode: 0x27,
17957 funct3: 0x0,
17958 rs1: 0x0,
17959 rs2: 0x8,
17960 csr: 0x28,
17961 funct7: 0x1,
17962 },
17963 Opcode::VS2RV => Inst {
17964 opcode: 0x27,
17965 funct3: 0x0,
17966 rs1: 0x0,
17967 rs2: 0x8,
17968 csr: 0x228,
17969 funct7: 0x11,
17970 },
17971 Opcode::VS4RV => Inst {
17972 opcode: 0x27,
17973 funct3: 0x0,
17974 rs1: 0x0,
17975 rs2: 0x8,
17976 csr: 0x628,
17977 funct7: 0x31,
17978 },
17979 Opcode::VS8RV => Inst {
17980 opcode: 0x27,
17981 funct3: 0x0,
17982 rs1: 0x0,
17983 rs2: 0x8,
17984 csr: 0xe28,
17985 funct7: 0x71,
17986 },
17987 Opcode::VSADDVI => Inst {
17988 opcode: 0x57,
17989 funct3: 0x3,
17990 rs1: 0x0,
17991 rs2: 0x0,
17992 csr: 0x840,
17993 funct7: 0x42,
17994 },
17995 Opcode::VSADDVV => Inst {
17996 opcode: 0x57,
17997 funct3: 0x0,
17998 rs1: 0x0,
17999 rs2: 0x0,
18000 csr: 0x840,
18001 funct7: 0x42,
18002 },
18003 Opcode::VSADDVX => Inst {
18004 opcode: 0x57,
18005 funct3: 0x4,
18006 rs1: 0x0,
18007 rs2: 0x0,
18008 csr: 0x840,
18009 funct7: 0x42,
18010 },
18011 Opcode::VSADDUVI => Inst {
18012 opcode: 0x57,
18013 funct3: 0x3,
18014 rs1: 0x0,
18015 rs2: 0x0,
18016 csr: 0x800,
18017 funct7: 0x40,
18018 },
18019 Opcode::VSADDUVV => Inst {
18020 opcode: 0x57,
18021 funct3: 0x0,
18022 rs1: 0x0,
18023 rs2: 0x0,
18024 csr: 0x800,
18025 funct7: 0x40,
18026 },
18027 Opcode::VSADDUVX => Inst {
18028 opcode: 0x57,
18029 funct3: 0x4,
18030 rs1: 0x0,
18031 rs2: 0x0,
18032 csr: 0x800,
18033 funct7: 0x40,
18034 },
18035 Opcode::VSBCVVM => Inst {
18036 opcode: 0x57,
18037 funct3: 0x0,
18038 rs1: 0x0,
18039 rs2: 0x0,
18040 csr: 0x480,
18041 funct7: 0x24,
18042 },
18043 Opcode::VSBCVXM => Inst {
18044 opcode: 0x57,
18045 funct3: 0x4,
18046 rs1: 0x0,
18047 rs2: 0x0,
18048 csr: 0x480,
18049 funct7: 0x24,
18050 },
18051 Opcode::VSE16V => Inst {
18052 opcode: 0x27,
18053 funct3: 0x5,
18054 rs1: 0x0,
18055 rs2: 0x0,
18056 csr: 0x0,
18057 funct7: 0x0,
18058 },
18059 Opcode::VSE1V => Inst {
18060 opcode: 0x27,
18061 funct3: 0x0,
18062 rs1: 0x0,
18063 rs2: 0xb,
18064 csr: 0x2b,
18065 funct7: 0x1,
18066 },
18067 Opcode::VSE32V => Inst {
18068 opcode: 0x27,
18069 funct3: 0x6,
18070 rs1: 0x0,
18071 rs2: 0x0,
18072 csr: 0x0,
18073 funct7: 0x0,
18074 },
18075 Opcode::VSE64V => Inst {
18076 opcode: 0x27,
18077 funct3: 0x7,
18078 rs1: 0x0,
18079 rs2: 0x0,
18080 csr: 0x0,
18081 funct7: 0x0,
18082 },
18083 Opcode::VSE8V => Inst {
18084 opcode: 0x27,
18085 funct3: 0x0,
18086 rs1: 0x0,
18087 rs2: 0x0,
18088 csr: 0x0,
18089 funct7: 0x0,
18090 },
18091 Opcode::VSETIVLI => Inst {
18092 opcode: 0x57,
18093 funct3: 0x7,
18094 rs1: 0x0,
18095 rs2: 0x0,
18096 csr: 0xc00,
18097 funct7: 0x60,
18098 },
18099 Opcode::VSETVL => Inst {
18100 opcode: 0x57,
18101 funct3: 0x7,
18102 rs1: 0x0,
18103 rs2: 0x0,
18104 csr: 0x800,
18105 funct7: 0x40,
18106 },
18107 Opcode::VSETVLI => Inst {
18108 opcode: 0x57,
18109 funct3: 0x7,
18110 rs1: 0x0,
18111 rs2: 0x0,
18112 csr: 0x0,
18113 funct7: 0x0,
18114 },
18115 Opcode::VSEXTVF2 => Inst {
18116 opcode: 0x57,
18117 funct3: 0x2,
18118 rs1: 0x7,
18119 rs2: 0x0,
18120 csr: 0x480,
18121 funct7: 0x24,
18122 },
18123 Opcode::VSEXTVF4 => Inst {
18124 opcode: 0x57,
18125 funct3: 0x2,
18126 rs1: 0x5,
18127 rs2: 0x0,
18128 csr: 0x480,
18129 funct7: 0x24,
18130 },
18131 Opcode::VSEXTVF8 => Inst {
18132 opcode: 0x57,
18133 funct3: 0x2,
18134 rs1: 0x3,
18135 rs2: 0x0,
18136 csr: 0x480,
18137 funct7: 0x24,
18138 },
18139 Opcode::VSHA2CHVV => Inst {
18140 opcode: 0x77,
18141 funct3: 0x2,
18142 rs1: 0x0,
18143 rs2: 0x0,
18144 csr: 0xba0,
18145 funct7: 0x5d,
18146 },
18147 Opcode::VSHA2CLVV => Inst {
18148 opcode: 0x77,
18149 funct3: 0x2,
18150 rs1: 0x0,
18151 rs2: 0x0,
18152 csr: 0xbe0,
18153 funct7: 0x5f,
18154 },
18155 Opcode::VSHA2MSVV => Inst {
18156 opcode: 0x77,
18157 funct3: 0x2,
18158 rs1: 0x0,
18159 rs2: 0x0,
18160 csr: 0xb60,
18161 funct7: 0x5b,
18162 },
18163 Opcode::VSLIDE1DOWNVX => Inst {
18164 opcode: 0x57,
18165 funct3: 0x6,
18166 rs1: 0x0,
18167 rs2: 0x0,
18168 csr: 0x3c0,
18169 funct7: 0x1e,
18170 },
18171 Opcode::VSLIDE1UPVX => Inst {
18172 opcode: 0x57,
18173 funct3: 0x6,
18174 rs1: 0x0,
18175 rs2: 0x0,
18176 csr: 0x380,
18177 funct7: 0x1c,
18178 },
18179 Opcode::VSLIDEDOWNVI => Inst {
18180 opcode: 0x57,
18181 funct3: 0x3,
18182 rs1: 0x0,
18183 rs2: 0x0,
18184 csr: 0x3c0,
18185 funct7: 0x1e,
18186 },
18187 Opcode::VSLIDEDOWNVX => Inst {
18188 opcode: 0x57,
18189 funct3: 0x4,
18190 rs1: 0x0,
18191 rs2: 0x0,
18192 csr: 0x3c0,
18193 funct7: 0x1e,
18194 },
18195 Opcode::VSLIDEUPVI => Inst {
18196 opcode: 0x57,
18197 funct3: 0x3,
18198 rs1: 0x0,
18199 rs2: 0x0,
18200 csr: 0x380,
18201 funct7: 0x1c,
18202 },
18203 Opcode::VSLIDEUPVX => Inst {
18204 opcode: 0x57,
18205 funct3: 0x4,
18206 rs1: 0x0,
18207 rs2: 0x0,
18208 csr: 0x380,
18209 funct7: 0x1c,
18210 },
18211 Opcode::VSLLVI => Inst {
18212 opcode: 0x57,
18213 funct3: 0x3,
18214 rs1: 0x0,
18215 rs2: 0x0,
18216 csr: 0x940,
18217 funct7: 0x4a,
18218 },
18219 Opcode::VSLLVV => Inst {
18220 opcode: 0x57,
18221 funct3: 0x0,
18222 rs1: 0x0,
18223 rs2: 0x0,
18224 csr: 0x940,
18225 funct7: 0x4a,
18226 },
18227 Opcode::VSLLVX => Inst {
18228 opcode: 0x57,
18229 funct3: 0x4,
18230 rs1: 0x0,
18231 rs2: 0x0,
18232 csr: 0x940,
18233 funct7: 0x4a,
18234 },
18235 Opcode::VSM3CVI => Inst {
18236 opcode: 0x77,
18237 funct3: 0x2,
18238 rs1: 0x0,
18239 rs2: 0x0,
18240 csr: 0xae0,
18241 funct7: 0x57,
18242 },
18243 Opcode::VSM3MEVV => Inst {
18244 opcode: 0x77,
18245 funct3: 0x2,
18246 rs1: 0x0,
18247 rs2: 0x0,
18248 csr: 0x820,
18249 funct7: 0x41,
18250 },
18251 Opcode::VSM4KVI => Inst {
18252 opcode: 0x77,
18253 funct3: 0x2,
18254 rs1: 0x0,
18255 rs2: 0x0,
18256 csr: 0x860,
18257 funct7: 0x43,
18258 },
18259 Opcode::VSM4RVS => Inst {
18260 opcode: 0x77,
18261 funct3: 0x2,
18262 rs1: 0x10,
18263 rs2: 0x0,
18264 csr: 0xa60,
18265 funct7: 0x53,
18266 },
18267 Opcode::VSM4RVV => Inst {
18268 opcode: 0x77,
18269 funct3: 0x2,
18270 rs1: 0x10,
18271 rs2: 0x0,
18272 csr: 0xa20,
18273 funct7: 0x51,
18274 },
18275 Opcode::VSMV => Inst {
18276 opcode: 0x27,
18277 funct3: 0x0,
18278 rs1: 0x0,
18279 rs2: 0xb,
18280 csr: 0x2b,
18281 funct7: 0x1,
18282 },
18283 Opcode::VSMULVV => Inst {
18284 opcode: 0x57,
18285 funct3: 0x0,
18286 rs1: 0x0,
18287 rs2: 0x0,
18288 csr: 0x9c0,
18289 funct7: 0x4e,
18290 },
18291 Opcode::VSMULVX => Inst {
18292 opcode: 0x57,
18293 funct3: 0x4,
18294 rs1: 0x0,
18295 rs2: 0x0,
18296 csr: 0x9c0,
18297 funct7: 0x4e,
18298 },
18299 Opcode::VSOXEI16V => Inst {
18300 opcode: 0x27,
18301 funct3: 0x5,
18302 rs1: 0x0,
18303 rs2: 0x0,
18304 csr: 0xc0,
18305 funct7: 0x6,
18306 },
18307 Opcode::VSOXEI32V => Inst {
18308 opcode: 0x27,
18309 funct3: 0x6,
18310 rs1: 0x0,
18311 rs2: 0x0,
18312 csr: 0xc0,
18313 funct7: 0x6,
18314 },
18315 Opcode::VSOXEI64V => Inst {
18316 opcode: 0x27,
18317 funct3: 0x7,
18318 rs1: 0x0,
18319 rs2: 0x0,
18320 csr: 0xc0,
18321 funct7: 0x6,
18322 },
18323 Opcode::VSOXEI8V => Inst {
18324 opcode: 0x27,
18325 funct3: 0x0,
18326 rs1: 0x0,
18327 rs2: 0x0,
18328 csr: 0xc0,
18329 funct7: 0x6,
18330 },
18331 Opcode::VSRAVI => Inst {
18332 opcode: 0x57,
18333 funct3: 0x3,
18334 rs1: 0x0,
18335 rs2: 0x0,
18336 csr: 0xa40,
18337 funct7: 0x52,
18338 },
18339 Opcode::VSRAVV => Inst {
18340 opcode: 0x57,
18341 funct3: 0x0,
18342 rs1: 0x0,
18343 rs2: 0x0,
18344 csr: 0xa40,
18345 funct7: 0x52,
18346 },
18347 Opcode::VSRAVX => Inst {
18348 opcode: 0x57,
18349 funct3: 0x4,
18350 rs1: 0x0,
18351 rs2: 0x0,
18352 csr: 0xa40,
18353 funct7: 0x52,
18354 },
18355 Opcode::VSRLVI => Inst {
18356 opcode: 0x57,
18357 funct3: 0x3,
18358 rs1: 0x0,
18359 rs2: 0x0,
18360 csr: 0xa00,
18361 funct7: 0x50,
18362 },
18363 Opcode::VSRLVV => Inst {
18364 opcode: 0x57,
18365 funct3: 0x0,
18366 rs1: 0x0,
18367 rs2: 0x0,
18368 csr: 0xa00,
18369 funct7: 0x50,
18370 },
18371 Opcode::VSRLVX => Inst {
18372 opcode: 0x57,
18373 funct3: 0x4,
18374 rs1: 0x0,
18375 rs2: 0x0,
18376 csr: 0xa00,
18377 funct7: 0x50,
18378 },
18379 Opcode::VSSE16V => Inst {
18380 opcode: 0x27,
18381 funct3: 0x5,
18382 rs1: 0x0,
18383 rs2: 0x0,
18384 csr: 0x80,
18385 funct7: 0x4,
18386 },
18387 Opcode::VSSE32V => Inst {
18388 opcode: 0x27,
18389 funct3: 0x6,
18390 rs1: 0x0,
18391 rs2: 0x0,
18392 csr: 0x80,
18393 funct7: 0x4,
18394 },
18395 Opcode::VSSE64V => Inst {
18396 opcode: 0x27,
18397 funct3: 0x7,
18398 rs1: 0x0,
18399 rs2: 0x0,
18400 csr: 0x80,
18401 funct7: 0x4,
18402 },
18403 Opcode::VSSE8V => Inst {
18404 opcode: 0x27,
18405 funct3: 0x0,
18406 rs1: 0x0,
18407 rs2: 0x0,
18408 csr: 0x80,
18409 funct7: 0x4,
18410 },
18411 Opcode::VSSRAVI => Inst {
18412 opcode: 0x57,
18413 funct3: 0x3,
18414 rs1: 0x0,
18415 rs2: 0x0,
18416 csr: 0xac0,
18417 funct7: 0x56,
18418 },
18419 Opcode::VSSRAVV => Inst {
18420 opcode: 0x57,
18421 funct3: 0x0,
18422 rs1: 0x0,
18423 rs2: 0x0,
18424 csr: 0xac0,
18425 funct7: 0x56,
18426 },
18427 Opcode::VSSRAVX => Inst {
18428 opcode: 0x57,
18429 funct3: 0x4,
18430 rs1: 0x0,
18431 rs2: 0x0,
18432 csr: 0xac0,
18433 funct7: 0x56,
18434 },
18435 Opcode::VSSRLVI => Inst {
18436 opcode: 0x57,
18437 funct3: 0x3,
18438 rs1: 0x0,
18439 rs2: 0x0,
18440 csr: 0xa80,
18441 funct7: 0x54,
18442 },
18443 Opcode::VSSRLVV => Inst {
18444 opcode: 0x57,
18445 funct3: 0x0,
18446 rs1: 0x0,
18447 rs2: 0x0,
18448 csr: 0xa80,
18449 funct7: 0x54,
18450 },
18451 Opcode::VSSRLVX => Inst {
18452 opcode: 0x57,
18453 funct3: 0x4,
18454 rs1: 0x0,
18455 rs2: 0x0,
18456 csr: 0xa80,
18457 funct7: 0x54,
18458 },
18459 Opcode::VSSUBVV => Inst {
18460 opcode: 0x57,
18461 funct3: 0x0,
18462 rs1: 0x0,
18463 rs2: 0x0,
18464 csr: 0x8c0,
18465 funct7: 0x46,
18466 },
18467 Opcode::VSSUBVX => Inst {
18468 opcode: 0x57,
18469 funct3: 0x4,
18470 rs1: 0x0,
18471 rs2: 0x0,
18472 csr: 0x8c0,
18473 funct7: 0x46,
18474 },
18475 Opcode::VSSUBUVV => Inst {
18476 opcode: 0x57,
18477 funct3: 0x0,
18478 rs1: 0x0,
18479 rs2: 0x0,
18480 csr: 0x880,
18481 funct7: 0x44,
18482 },
18483 Opcode::VSSUBUVX => Inst {
18484 opcode: 0x57,
18485 funct3: 0x4,
18486 rs1: 0x0,
18487 rs2: 0x0,
18488 csr: 0x880,
18489 funct7: 0x44,
18490 },
18491 Opcode::VSUBVV => Inst {
18492 opcode: 0x57,
18493 funct3: 0x0,
18494 rs1: 0x0,
18495 rs2: 0x0,
18496 csr: 0x80,
18497 funct7: 0x4,
18498 },
18499 Opcode::VSUBVX => Inst {
18500 opcode: 0x57,
18501 funct3: 0x4,
18502 rs1: 0x0,
18503 rs2: 0x0,
18504 csr: 0x80,
18505 funct7: 0x4,
18506 },
18507 Opcode::VSUXEI16V => Inst {
18508 opcode: 0x27,
18509 funct3: 0x5,
18510 rs1: 0x0,
18511 rs2: 0x0,
18512 csr: 0x40,
18513 funct7: 0x2,
18514 },
18515 Opcode::VSUXEI32V => Inst {
18516 opcode: 0x27,
18517 funct3: 0x6,
18518 rs1: 0x0,
18519 rs2: 0x0,
18520 csr: 0x40,
18521 funct7: 0x2,
18522 },
18523 Opcode::VSUXEI64V => Inst {
18524 opcode: 0x27,
18525 funct3: 0x7,
18526 rs1: 0x0,
18527 rs2: 0x0,
18528 csr: 0x40,
18529 funct7: 0x2,
18530 },
18531 Opcode::VSUXEI8V => Inst {
18532 opcode: 0x27,
18533 funct3: 0x0,
18534 rs1: 0x0,
18535 rs2: 0x0,
18536 csr: 0x40,
18537 funct7: 0x2,
18538 },
18539 Opcode::VWADDVV => Inst {
18540 opcode: 0x57,
18541 funct3: 0x2,
18542 rs1: 0x0,
18543 rs2: 0x0,
18544 csr: 0xc40,
18545 funct7: 0x62,
18546 },
18547 Opcode::VWADDVX => Inst {
18548 opcode: 0x57,
18549 funct3: 0x6,
18550 rs1: 0x0,
18551 rs2: 0x0,
18552 csr: 0xc40,
18553 funct7: 0x62,
18554 },
18555 Opcode::VWADDWV => Inst {
18556 opcode: 0x57,
18557 funct3: 0x2,
18558 rs1: 0x0,
18559 rs2: 0x0,
18560 csr: 0xd40,
18561 funct7: 0x6a,
18562 },
18563 Opcode::VWADDWX => Inst {
18564 opcode: 0x57,
18565 funct3: 0x6,
18566 rs1: 0x0,
18567 rs2: 0x0,
18568 csr: 0xd40,
18569 funct7: 0x6a,
18570 },
18571 Opcode::VWADDUVV => Inst {
18572 opcode: 0x57,
18573 funct3: 0x2,
18574 rs1: 0x0,
18575 rs2: 0x0,
18576 csr: 0xc00,
18577 funct7: 0x60,
18578 },
18579 Opcode::VWADDUVX => Inst {
18580 opcode: 0x57,
18581 funct3: 0x6,
18582 rs1: 0x0,
18583 rs2: 0x0,
18584 csr: 0xc00,
18585 funct7: 0x60,
18586 },
18587 Opcode::VWADDUWV => Inst {
18588 opcode: 0x57,
18589 funct3: 0x2,
18590 rs1: 0x0,
18591 rs2: 0x0,
18592 csr: 0xd00,
18593 funct7: 0x68,
18594 },
18595 Opcode::VWADDUWX => Inst {
18596 opcode: 0x57,
18597 funct3: 0x6,
18598 rs1: 0x0,
18599 rs2: 0x0,
18600 csr: 0xd00,
18601 funct7: 0x68,
18602 },
18603 Opcode::VWMACCVV => Inst {
18604 opcode: 0x57,
18605 funct3: 0x2,
18606 rs1: 0x0,
18607 rs2: 0x0,
18608 csr: 0xf40,
18609 funct7: 0x7a,
18610 },
18611 Opcode::VWMACCVX => Inst {
18612 opcode: 0x57,
18613 funct3: 0x6,
18614 rs1: 0x0,
18615 rs2: 0x0,
18616 csr: 0xf40,
18617 funct7: 0x7a,
18618 },
18619 Opcode::VWMACCSUVV => Inst {
18620 opcode: 0x57,
18621 funct3: 0x2,
18622 rs1: 0x0,
18623 rs2: 0x0,
18624 csr: 0xfc0,
18625 funct7: 0x7e,
18626 },
18627 Opcode::VWMACCSUVX => Inst {
18628 opcode: 0x57,
18629 funct3: 0x6,
18630 rs1: 0x0,
18631 rs2: 0x0,
18632 csr: 0xfc0,
18633 funct7: 0x7e,
18634 },
18635 Opcode::VWMACCUVV => Inst {
18636 opcode: 0x57,
18637 funct3: 0x2,
18638 rs1: 0x0,
18639 rs2: 0x0,
18640 csr: 0xf00,
18641 funct7: 0x78,
18642 },
18643 Opcode::VWMACCUVX => Inst {
18644 opcode: 0x57,
18645 funct3: 0x6,
18646 rs1: 0x0,
18647 rs2: 0x0,
18648 csr: 0xf00,
18649 funct7: 0x78,
18650 },
18651 Opcode::VWMACCUSVX => Inst {
18652 opcode: 0x57,
18653 funct3: 0x6,
18654 rs1: 0x0,
18655 rs2: 0x0,
18656 csr: 0xf80,
18657 funct7: 0x7c,
18658 },
18659 Opcode::VWMULVV => Inst {
18660 opcode: 0x57,
18661 funct3: 0x2,
18662 rs1: 0x0,
18663 rs2: 0x0,
18664 csr: 0xec0,
18665 funct7: 0x76,
18666 },
18667 Opcode::VWMULVX => Inst {
18668 opcode: 0x57,
18669 funct3: 0x6,
18670 rs1: 0x0,
18671 rs2: 0x0,
18672 csr: 0xec0,
18673 funct7: 0x76,
18674 },
18675 Opcode::VWMULSUVV => Inst {
18676 opcode: 0x57,
18677 funct3: 0x2,
18678 rs1: 0x0,
18679 rs2: 0x0,
18680 csr: 0xe80,
18681 funct7: 0x74,
18682 },
18683 Opcode::VWMULSUVX => Inst {
18684 opcode: 0x57,
18685 funct3: 0x6,
18686 rs1: 0x0,
18687 rs2: 0x0,
18688 csr: 0xe80,
18689 funct7: 0x74,
18690 },
18691 Opcode::VWMULUVV => Inst {
18692 opcode: 0x57,
18693 funct3: 0x2,
18694 rs1: 0x0,
18695 rs2: 0x0,
18696 csr: 0xe00,
18697 funct7: 0x70,
18698 },
18699 Opcode::VWMULUVX => Inst {
18700 opcode: 0x57,
18701 funct3: 0x6,
18702 rs1: 0x0,
18703 rs2: 0x0,
18704 csr: 0xe00,
18705 funct7: 0x70,
18706 },
18707 Opcode::VWREDSUMVS => Inst {
18708 opcode: 0x57,
18709 funct3: 0x0,
18710 rs1: 0x0,
18711 rs2: 0x0,
18712 csr: 0xc40,
18713 funct7: 0x62,
18714 },
18715 Opcode::VWREDSUMUVS => Inst {
18716 opcode: 0x57,
18717 funct3: 0x0,
18718 rs1: 0x0,
18719 rs2: 0x0,
18720 csr: 0xc00,
18721 funct7: 0x60,
18722 },
18723 Opcode::VWSLLVI => Inst {
18724 opcode: 0x57,
18725 funct3: 0x3,
18726 rs1: 0x0,
18727 rs2: 0x0,
18728 csr: 0xd40,
18729 funct7: 0x6a,
18730 },
18731 Opcode::VWSLLVV => Inst {
18732 opcode: 0x57,
18733 funct3: 0x0,
18734 rs1: 0x0,
18735 rs2: 0x0,
18736 csr: 0xd40,
18737 funct7: 0x6a,
18738 },
18739 Opcode::VWSLLVX => Inst {
18740 opcode: 0x57,
18741 funct3: 0x4,
18742 rs1: 0x0,
18743 rs2: 0x0,
18744 csr: 0xd40,
18745 funct7: 0x6a,
18746 },
18747 Opcode::VWSUBVV => Inst {
18748 opcode: 0x57,
18749 funct3: 0x2,
18750 rs1: 0x0,
18751 rs2: 0x0,
18752 csr: 0xcc0,
18753 funct7: 0x66,
18754 },
18755 Opcode::VWSUBVX => Inst {
18756 opcode: 0x57,
18757 funct3: 0x6,
18758 rs1: 0x0,
18759 rs2: 0x0,
18760 csr: 0xcc0,
18761 funct7: 0x66,
18762 },
18763 Opcode::VWSUBWV => Inst {
18764 opcode: 0x57,
18765 funct3: 0x2,
18766 rs1: 0x0,
18767 rs2: 0x0,
18768 csr: 0xdc0,
18769 funct7: 0x6e,
18770 },
18771 Opcode::VWSUBWX => Inst {
18772 opcode: 0x57,
18773 funct3: 0x6,
18774 rs1: 0x0,
18775 rs2: 0x0,
18776 csr: 0xdc0,
18777 funct7: 0x6e,
18778 },
18779 Opcode::VWSUBUVV => Inst {
18780 opcode: 0x57,
18781 funct3: 0x2,
18782 rs1: 0x0,
18783 rs2: 0x0,
18784 csr: 0xc80,
18785 funct7: 0x64,
18786 },
18787 Opcode::VWSUBUVX => Inst {
18788 opcode: 0x57,
18789 funct3: 0x6,
18790 rs1: 0x0,
18791 rs2: 0x0,
18792 csr: 0xc80,
18793 funct7: 0x64,
18794 },
18795 Opcode::VWSUBUWV => Inst {
18796 opcode: 0x57,
18797 funct3: 0x2,
18798 rs1: 0x0,
18799 rs2: 0x0,
18800 csr: 0xd80,
18801 funct7: 0x6c,
18802 },
18803 Opcode::VWSUBUWX => Inst {
18804 opcode: 0x57,
18805 funct3: 0x6,
18806 rs1: 0x0,
18807 rs2: 0x0,
18808 csr: 0xd80,
18809 funct7: 0x6c,
18810 },
18811 Opcode::VXORVI => Inst {
18812 opcode: 0x57,
18813 funct3: 0x3,
18814 rs1: 0x0,
18815 rs2: 0x0,
18816 csr: 0x2c0,
18817 funct7: 0x16,
18818 },
18819 Opcode::VXORVV => Inst {
18820 opcode: 0x57,
18821 funct3: 0x0,
18822 rs1: 0x0,
18823 rs2: 0x0,
18824 csr: 0x2c0,
18825 funct7: 0x16,
18826 },
18827 Opcode::VXORVX => Inst {
18828 opcode: 0x57,
18829 funct3: 0x4,
18830 rs1: 0x0,
18831 rs2: 0x0,
18832 csr: 0x2c0,
18833 funct7: 0x16,
18834 },
18835 Opcode::VZEXTVF2 => Inst {
18836 opcode: 0x57,
18837 funct3: 0x2,
18838 rs1: 0x6,
18839 rs2: 0x0,
18840 csr: 0x480,
18841 funct7: 0x24,
18842 },
18843 Opcode::VZEXTVF4 => Inst {
18844 opcode: 0x57,
18845 funct3: 0x2,
18846 rs1: 0x4,
18847 rs2: 0x0,
18848 csr: 0x480,
18849 funct7: 0x24,
18850 },
18851 Opcode::VZEXTVF8 => Inst {
18852 opcode: 0x57,
18853 funct3: 0x2,
18854 rs1: 0x2,
18855 rs2: 0x0,
18856 csr: 0x480,
18857 funct7: 0x24,
18858 },
18859 Opcode::WFI => Inst {
18860 opcode: 0x73,
18861 funct3: 0x0,
18862 rs1: 0x0,
18863 rs2: 0x5,
18864 csr: 0x105,
18865 funct7: 0x8,
18866 },
18867 Opcode::WRSNTO => Inst {
18868 opcode: 0x73,
18869 funct3: 0x0,
18870 rs1: 0x0,
18871 rs2: 0xd,
18872 csr: 0xd,
18873 funct7: 0x0,
18874 },
18875 Opcode::WRSSTO => Inst {
18876 opcode: 0x73,
18877 funct3: 0x0,
18878 rs1: 0x0,
18879 rs2: 0x1d,
18880 csr: 0x1d,
18881 funct7: 0x0,
18882 },
18883 Opcode::XNOR => Inst {
18884 opcode: 0x33,
18885 funct3: 0x4,
18886 rs1: 0x0,
18887 rs2: 0x0,
18888 csr: 0x400,
18889 funct7: 0x20,
18890 },
18891 Opcode::XOR => Inst {
18892 opcode: 0x33,
18893 funct3: 0x4,
18894 rs1: 0x0,
18895 rs2: 0x0,
18896 csr: 0x0,
18897 funct7: 0x0,
18898 },
18899 Opcode::XORI => Inst {
18900 opcode: 0x13,
18901 funct3: 0x4,
18902 rs1: 0x0,
18903 rs2: 0x0,
18904 csr: 0x0,
18905 funct7: 0x0,
18906 },
18907 Opcode::XPERM4 => Inst {
18908 opcode: 0x33,
18909 funct3: 0x2,
18910 rs1: 0x0,
18911 rs2: 0x0,
18912 csr: 0x280,
18913 funct7: 0x14,
18914 },
18915 Opcode::XPERM8 => Inst {
18916 opcode: 0x33,
18917 funct3: 0x4,
18918 rs1: 0x0,
18919 rs2: 0x0,
18920 csr: 0x280,
18921 funct7: 0x14,
18922 },
18923 Opcode::ZEXTB => Inst {
18924 opcode: 0x13,
18925 funct3: 0x7,
18926 rs1: 0x0,
18927 rs2: 0x0,
18928 csr: 0x0,
18929 funct7: 0x0,
18930 },
18931 Opcode::ZEXTH => Inst {
18932 opcode: 0x3b,
18933 funct3: 0x4,
18934 rs1: 0x0,
18935 rs2: 0x0,
18936 csr: 0x80,
18937 funct7: 0x4,
18938 },
18939 Opcode::ZEXTHRV32 => Inst {
18940 opcode: 0x33,
18941 funct3: 0x4,
18942 rs1: 0x0,
18943 rs2: 0x0,
18944 csr: 0x80,
18945 funct7: 0x4,
18946 },
18947 Opcode::ZEXTW => Inst {
18948 opcode: 0x3b,
18949 funct3: 0x0,
18950 rs1: 0x0,
18951 rs2: 0x0,
18952 csr: 0x80,
18953 funct7: 0x4,
18954 },
18955 Opcode::ZIP => Inst {
18956 opcode: 0x13,
18957 funct3: 0x1,
18958 rs1: 0x0,
18959 rs2: 0xf,
18960 csr: 0x8f,
18961 funct7: 0x4,
18962 },
18963 }
18964 }
18965}
18966
18967#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
18968pub enum Encoding {
18969 Bimm12HiRs1Bimm12lo,
18970 Bimm12HiRs1Rs2Bimm12lo,
18971 Bimm12HiRs2Bimm12lo,
18972 Bimm12HiRs2Rs1Bimm12lo,
18973 CImm12,
18974 CIndex,
18975 CMopT,
18976 CNzimm10hiCNzimm10lo,
18977 CNzimm6hiCNzimm6lo,
18978 CRlistCSpimm,
18979 CRs1N0,
18980 CRs2CUimm8spS,
18981 CRs2CUimm9spS,
18982 CSreg1CSreg2,
18983 CsrZimm,
18984 Empty,
18985 FmPredSuccRs1Rd,
18986 Imm12HiRs1Rs2Imm12lo,
18987 Imm12Rs1Rd,
18988 Jimm20,
18989 MopRT30MopRT2726MopRT2120RdRs1,
18990 MopRrT30MopRrT2726RdRs1Rs2,
18991 NfVmRs1Vd,
18992 NfVmRs1Vs3,
18993 NfVmRs2Rs1Vd,
18994 NfVmRs2Rs1Vs3,
18995 NfVmVs2Rs1Vd,
18996 NfVmVs2Rs1Vs3,
18997 Rd,
18998 RdCUimm8sphiCUimm8splo,
18999 RdCUimm9sphiCUimm9splo,
19000 RdCsr,
19001 RdCsrZimm,
19002 RdImm20,
19003 RdJimm20,
19004 RdN0CImm6loCImm6hi,
19005 RdN0CRs2N0,
19006 RdN0CUimm8sphiCUimm8splo,
19007 RdN0CUimm9sphiCUimm9splo,
19008 RdN2CNzimm18hiCNzimm18lo,
19009 RdPCNzuimm10,
19010 RdPRs1PCUimm1,
19011 RdPRs1PCUimm2,
19012 RdPRs1PCUimm7loCUimm7hi,
19013 RdPRs1PCUimm8loCUimm8hi,
19014 RdRs1,
19015 RdRs1AqRl,
19016 RdRs1Csr,
19017 RdRs1Imm12,
19018 RdRs1N0,
19019 RdRs1N0CImm6loCImm6hi,
19020 RdRs1N0CNzimm6loCNzimm6hi,
19021 RdRs1N0CNzuimm6hiCNzuimm6lo,
19022 RdRs1N0CNzuimm6lo,
19023 RdRs1N0CRs2N0,
19024 RdRs1P,
19025 RdRs1PCImm6hiCImm6lo,
19026 RdRs1PCNzuimm5,
19027 RdRs1PCNzuimm6loCNzuimm6hi,
19028 RdRs1PRs2P,
19029 RdRs1Rm,
19030 RdRs1Rnum,
19031 RdRs1Rs2,
19032 RdRs1Rs2AqRl,
19033 RdRs1Rs2Bs,
19034 RdRs1Rs2EqRs1,
19035 RdRs1Rs2Rm,
19036 RdRs1Rs2Rs3Rm,
19037 RdRs1Shamtd,
19038 RdRs1Shamtw,
19039 RdRs2,
19040 RdZimm,
19041 Rs1,
19042 Rs1Csr,
19043 Rs1Imm12hi,
19044 Rs1N0,
19045 Rs1PCBimm9loCBimm9hi,
19046 Rs1PRs2PCUimm7loCUimm7hi,
19047 Rs1PRs2PCUimm8hiCUimm8lo,
19048 Rs1PRs2PCUimm8loCUimm8hi,
19049 Rs1Rd,
19050 Rs1Rs2,
19051 Rs1Vd,
19052 Rs1Vs3,
19053 Rs2PRs1PCUimm1,
19054 Rs2PRs1PCUimm2,
19055 Rs2Rs1Rd,
19056 Simm5Vd,
19057 VmVd,
19058 VmVs2Rd,
19059 VmVs2Rs1Vd,
19060 VmVs2Simm5Vd,
19061 VmVs2Vd,
19062 VmVs2Vs1Vd,
19063 VmVs2Zimm5Vd,
19064 Vs1Vd,
19065 Vs2Rd,
19066 Vs2Rs1Vd,
19067 Vs2Simm5Vd,
19068 Vs2Vd,
19069 Vs2Vs1Vd,
19070 Vs2Zimm5Vd,
19071 Zimm10ZimmRd,
19072 Zimm11Rs1Rd,
19073 Zimm6HiVmVs2Zimm6loVd,
19074}
19075
19076impl Opcode {
19077 pub fn encoding(self) -> Encoding {
19078 use Opcode::*;
19079 match self {
19080 Opcode::Invalid => unreachable!(),
19081 BEQZ | BGEZ | BLTZ | BNEZ => Encoding::Bimm12HiRs1Bimm12lo,
19082 BEQ | BGE | BGEU | BLT | BLTU | BNE => Encoding::Bimm12HiRs1Rs2Bimm12lo,
19083 BGTZ | BLEZ => Encoding::Bimm12HiRs2Bimm12lo,
19084 BGT | BGTU | BLE | BLEU => Encoding::Bimm12HiRs2Rs1Bimm12lo,
19085 CJ | CJAL => Encoding::CImm12,
19086 CMJALT => Encoding::CIndex,
19087 CMOPN => Encoding::CMopT,
19088 CADDI16SP => Encoding::CNzimm10hiCNzimm10lo,
19089 CNOP => Encoding::CNzimm6hiCNzimm6lo,
19090 CMPOP | CMPOPRET | CMPOPRETZ | CMPUSH => Encoding::CRlistCSpimm,
19091 CJALR => Encoding::CRs1N0,
19092 CFSWSP | CSWSP => Encoding::CRs2CUimm8spS,
19093 CFSDSP | CSDSP => Encoding::CRs2CUimm9spS,
19094 CMMVA01S | CMMVSA01 => Encoding::CSreg1CSreg2,
19095 CSRCI | CSRSI | CSRWI => Encoding::CsrZimm,
19096 CEBREAK | CMOP1 | CMOP11 | CMOP13 | CMOP15 | CMOP3 | CMOP5 | CMOP7 | CMOP9
19097 | CNTLALL | CNTLP1 | CNTLPALL | CNTLS1 | DRET | EBREAK | ECALL | MRET | NOP
19098 | NTLALL | NTLP1 | NTLPALL | NTLS1 | PAUSE | RET | SBREAK | SCALL | SFENCEINVALIR
19099 | SFENCEWINVAL | SRET | WFI | WRSNTO | WRSSTO => Encoding::Empty,
19100 FENCE => Encoding::FmPredSuccRs1Rd,
19101 FSD | FSH | FSQ | FSW | SB | SD | SH | SW => Encoding::Imm12HiRs1Rs2Imm12lo,
19102 FENCEI => Encoding::Imm12Rs1Rd,
19103 J | JALPSEUDO => Encoding::Jimm20,
19104 MOPRN => Encoding::MopRT30MopRT2726MopRT2120RdRs1,
19105 MOPRRN => Encoding::MopRrT30MopRrT2726RdRs1Rs2,
19106 VLE16V | VLE16FFV | VLE32V | VLE32FFV | VLE64V | VLE64FFV | VLE8V | VLE8FFV => {
19107 Encoding::NfVmRs1Vd
19108 }
19109 VSE16V | VSE32V | VSE64V | VSE8V => Encoding::NfVmRs1Vs3,
19110 VLSE16V | VLSE32V | VLSE64V | VLSE8V => Encoding::NfVmRs2Rs1Vd,
19111 VSSE16V | VSSE32V | VSSE64V | VSSE8V => Encoding::NfVmRs2Rs1Vs3,
19112 VLOXEI16V | VLOXEI32V | VLOXEI64V | VLOXEI8V | VLUXEI16V | VLUXEI32V | VLUXEI64V
19113 | VLUXEI8V => Encoding::NfVmVs2Rs1Vd,
19114 VSOXEI16V | VSOXEI32V | VSOXEI64V | VSOXEI8V | VSUXEI16V | VSUXEI32V | VSUXEI64V
19115 | VSUXEI8V => Encoding::NfVmVs2Rs1Vs3,
19116 FRCSR | FRFLAGS | FRRM | RDCYCLE | RDCYCLEH | RDINSTRET | RDINSTRETH | RDTIME
19117 | RDTIMEH => Encoding::Rd,
19118 CFLWSP => Encoding::RdCUimm8sphiCUimm8splo,
19119 CFLDSP => Encoding::RdCUimm9sphiCUimm9splo,
19120 CSRR => Encoding::RdCsr,
19121 CSRRCI | CSRRSI | CSRRWI => Encoding::RdCsrZimm,
19122 AUIPC | LUI => Encoding::RdImm20,
19123 JAL => Encoding::RdJimm20,
19124 CLI => Encoding::RdN0CImm6loCImm6hi,
19125 CMV => Encoding::RdN0CRs2N0,
19126 CLWSP => Encoding::RdN0CUimm8sphiCUimm8splo,
19127 CLDSP => Encoding::RdN0CUimm9sphiCUimm9splo,
19128 CLUI => Encoding::RdN2CNzimm18hiCNzimm18lo,
19129 CADDI4SPN => Encoding::RdPCNzuimm10,
19130 CLH | CLHU => Encoding::RdPRs1PCUimm1,
19131 CLBU => Encoding::RdPRs1PCUimm2,
19132 CFLW | CLW => Encoding::RdPRs1PCUimm7loCUimm7hi,
19133 CFLD | CLD => Encoding::RdPRs1PCUimm8loCUimm8hi,
19134 AES64IM | BREV8 | CLZ | CLZW | CPOP | CPOPW | CTZ | CTZW | FCLASSD | FCLASSH
19135 | FCLASSQ | FCLASSS | FCVTMODWD | FLID | FLIH | FLIQ | FLIS | FMVDX | FMVHX | FMVSX
19136 | FMVWX | FMVXD | FMVXH | FMVXS | FMVXW | FMVHXD | FMVHXQ | FSCSR | FSFLAGS | FSRM
19137 | HLVB | HLVBU | HLVD | HLVH | HLVHU | HLVW | HLVWU | HLVXHU | HLVXWU | MOPR0
19138 | MOPR1 | MOPR10 | MOPR11 | MOPR12 | MOPR13 | MOPR14 | MOPR15 | MOPR16 | MOPR17
19139 | MOPR18 | MOPR19 | MOPR2 | MOPR20 | MOPR21 | MOPR22 | MOPR23 | MOPR24 | MOPR25
19140 | MOPR26 | MOPR27 | MOPR28 | MOPR29 | MOPR3 | MOPR30 | MOPR31 | MOPR4 | MOPR5
19141 | MOPR6 | MOPR7 | MOPR8 | MOPR9 | MV | NEG | ORCB | REV8 | REV8RV32 | SEQZ | SEXTB
19142 | SEXTH | SEXTW | SHA256SIG0 | SHA256SIG1 | SHA256SUM0 | SHA256SUM1 | SHA512SIG0
19143 | SHA512SIG1 | SHA512SUM0 | SHA512SUM1 | SLTZ | SM3P0 | SM3P1 | UNZIP | ZEXTB
19144 | ZEXTH | ZEXTHRV32 | ZEXTW | ZIP => Encoding::RdRs1,
19145 LRD | LRW => Encoding::RdRs1AqRl,
19146 CSRRC | CSRRS | CSRRW => Encoding::RdRs1Csr,
19147 ADDI | ADDIW | ANDI | FLD | FLH | FLQ | FLW | JALR | LB | LBU | LD | LH | LHU | LW
19148 | LWU | ORI | SLTI | SLTIU | XORI => Encoding::RdRs1Imm12,
19149 CSEXTW => Encoding::RdRs1N0,
19150 CADDIW => Encoding::RdRs1N0CImm6loCImm6hi,
19151 CADDI => Encoding::RdRs1N0CNzimm6loCNzimm6hi,
19152 CSLLI => Encoding::RdRs1N0CNzuimm6hiCNzuimm6lo,
19153 CSLLIRV32 => Encoding::RdRs1N0CNzuimm6lo,
19154 CADD => Encoding::RdRs1N0CRs2N0,
19155 CNOT | CSEXTB | CSEXTH | CZEXTB | CZEXTH | CZEXTW => Encoding::RdRs1P,
19156 CANDI => Encoding::RdRs1PCImm6hiCImm6lo,
19157 CSRAIRV32 | CSRLIRV32 => Encoding::RdRs1PCNzuimm5,
19158 CSRAI | CSRLI => Encoding::RdRs1PCNzuimm6loCNzuimm6hi,
19159 CADDW | CAND | CMUL | COR | CSUB | CSUBW | CXOR => Encoding::RdRs1PRs2P,
19160 FCVTDH | FCVTDL | FCVTDLU | FCVTDQ | FCVTDS | FCVTDW | FCVTDWU | FCVTHD | FCVTHL
19161 | FCVTHLU | FCVTHQ | FCVTHS | FCVTHW | FCVTHWU | FCVTLD | FCVTLH | FCVTLQ | FCVTLS
19162 | FCVTLUD | FCVTLUH | FCVTLUQ | FCVTLUS | FCVTQD | FCVTQH | FCVTQL | FCVTQLU
19163 | FCVTQS | FCVTQW | FCVTQWU | FCVTSD | FCVTSH | FCVTSL | FCVTSLU | FCVTSQ | FCVTSW
19164 | FCVTSWU | FCVTWD | FCVTWH | FCVTWQ | FCVTWS | FCVTWUD | FCVTWUH | FCVTWUQ
19165 | FCVTWUS | FROUNDD | FROUNDH | FROUNDQ | FROUNDS | FROUNDNXD | FROUNDNXH
19166 | FROUNDNXQ | FROUNDNXS | FSQRTD | FSQRTH | FSQRTQ | FSQRTS => Encoding::RdRs1Rm,
19167 AES64KS1I => Encoding::RdRs1Rnum,
19168 ADD | ADDUW | ADDW | AES64DS | AES64DSM | AES64ES | AES64ESM | AES64KS2 | AND
19169 | ANDN | BCLR | BEXT | BINV | BSET | CLMUL | CLMULH | CLMULR | CZEROEQZ | CZERONEZ
19170 | DIV | DIVU | DIVUW | DIVW | FEQD | FEQH | FEQQ | FEQS | FLED | FLEH | FLEQ | FLES
19171 | FLEQD | FLEQH | FLEQQ | FLEQS | FLTD | FLTH | FLTQ | FLTS | FLTQD | FLTQH | FLTQQ
19172 | FLTQS | FMAXD | FMAXH | FMAXQ | FMAXS | FMAXMD | FMAXMH | FMAXMQ | FMAXMS | FMIND
19173 | FMINH | FMINQ | FMINS | FMINMD | FMINMH | FMINMQ | FMINMS | FMVPDX | FMVPQX
19174 | FSGNJD | FSGNJH | FSGNJQ | FSGNJS | FSGNJND | FSGNJNH | FSGNJNQ | FSGNJNS
19175 | FSGNJXD | FSGNJXH | FSGNJXQ | FSGNJXS | MAX | MAXU | MIN | MINU | MOPRR0 | MOPRR1
19176 | MOPRR2 | MOPRR3 | MOPRR4 | MOPRR5 | MOPRR6 | MOPRR7 | MUL | MULH | MULHSU | MULHU
19177 | MULW | OR | ORN | PACK | PACKH | PACKW | REM | REMU | REMUW | REMW | ROL | ROLW
19178 | ROR | RORW | SH1ADD | SH1ADDUW | SH2ADD | SH2ADDUW | SH3ADD | SH3ADDUW
19179 | SHA512SIG0H | SHA512SIG0L | SHA512SIG1H | SHA512SIG1L | SHA512SUM0R | SHA512SUM1R
19180 | SLL | SLLW | SLT | SLTU | SRA | SRAW | SRL | SRLW | SUB | SUBW | XNOR | XOR
19181 | XPERM4 | XPERM8 => Encoding::RdRs1Rs2,
19182 AMOADDB | AMOADDD | AMOADDH | AMOADDW | AMOANDB | AMOANDD | AMOANDH | AMOANDW
19183 | AMOCASB | AMOCASD | AMOCASH | AMOCASQ | AMOCASW | AMOMAXB | AMOMAXD | AMOMAXH
19184 | AMOMAXW | AMOMAXUB | AMOMAXUD | AMOMAXUH | AMOMAXUW | AMOMINB | AMOMIND | AMOMINH
19185 | AMOMINW | AMOMINUB | AMOMINUD | AMOMINUH | AMOMINUW | AMOORB | AMOORD | AMOORH
19186 | AMOORW | AMOSWAPB | AMOSWAPD | AMOSWAPH | AMOSWAPW | AMOXORB | AMOXORD | AMOXORH
19187 | AMOXORW | SCD | SCW => Encoding::RdRs1Rs2AqRl,
19188 AES32DSI | AES32DSMI | AES32ESI | AES32ESMI | SM4ED | SM4KS => Encoding::RdRs1Rs2Bs,
19189 FABSD | FABSH | FABSQ | FABSS | FMVD | FMVH | FMVQ | FMVS | FNEGD | FNEGH | FNEGQ
19190 | FNEGS => Encoding::RdRs1Rs2EqRs1,
19191 FADDD | FADDH | FADDQ | FADDS | FDIVD | FDIVH | FDIVQ | FDIVS | FMULD | FMULH
19192 | FMULQ | FMULS | FSUBD | FSUBH | FSUBQ | FSUBS => Encoding::RdRs1Rs2Rm,
19193 FMADDD | FMADDH | FMADDQ | FMADDS | FMSUBD | FMSUBH | FMSUBQ | FMSUBS | FNMADDD
19194 | FNMADDH | FNMADDQ | FNMADDS | FNMSUBD | FNMSUBH | FNMSUBQ | FNMSUBS => {
19195 Encoding::RdRs1Rs2Rs3Rm
19196 }
19197 BCLRI | BEXTI | BINVI | BSETI | RORI | SLLI | SLLIUW | SRAI | SRLI => {
19198 Encoding::RdRs1Shamtd
19199 }
19200 BCLRIRV32 | BEXTIRV32 | BINVIRV32 | BSETIRV32 | RORIRV32 | RORIW | SLLIRV32 | SLLIW
19201 | SRAIRV32 | SRAIW | SRLIRV32 | SRLIW => Encoding::RdRs1Shamtw,
19202 SGTZ | SNEZ => Encoding::RdRs2,
19203 FSFLAGSI | FSRMI => Encoding::RdZimm,
19204 CBOCLEAN | CBOFLUSH | CBOINVAL | CBOZERO | JALRPSEUDO | JR => Encoding::Rs1,
19205 CSRC | CSRS | CSRW => Encoding::Rs1Csr,
19206 PREFETCHI | PREFETCHR | PREFETCHW => Encoding::Rs1Imm12hi,
19207 CJR => Encoding::Rs1N0,
19208 CBEQZ | CBNEZ => Encoding::Rs1PCBimm9loCBimm9hi,
19209 CFSW | CSW => Encoding::Rs1PRs2PCUimm7loCUimm7hi,
19210 CSD => Encoding::Rs1PRs2PCUimm8hiCUimm8lo,
19211 CFSD => Encoding::Rs1PRs2PCUimm8loCUimm8hi,
19212 FENCETSO => Encoding::Rs1Rd,
19213 HFENCEGVMA | HFENCEVVMA | HINVALGVMA | HINVALVVMA | HSVB | HSVD | HSVH | HSVW
19214 | SFENCEVMA | SINVALVMA => Encoding::Rs1Rs2,
19215 VFMVSF | VFMVVF | VL1RV | VL1RE16V | VL1RE32V | VL1RE64V | VL1RE8V | VL2RV
19216 | VL2RE16V | VL2RE32V | VL2RE64V | VL2RE8V | VL4RV | VL4RE16V | VL4RE32V | VL4RE64V
19217 | VL4RE8V | VL8RV | VL8RE16V | VL8RE32V | VL8RE64V | VL8RE8V | VLE1V | VLMV | VMVSX
19218 | VMVVX => Encoding::Rs1Vd,
19219 VS1RV | VS2RV | VS4RV | VS8RV | VSE1V | VSMV => Encoding::Rs1Vs3,
19220 CSH => Encoding::Rs2PRs1PCUimm1,
19221 CSB => Encoding::Rs2PRs1PCUimm2,
19222 VSETVL => Encoding::Rs2Rs1Rd,
19223 VMVVI => Encoding::Simm5Vd,
19224 VIDV => Encoding::VmVd,
19225 VCPOPM | VFIRSTM | VPOPCM => Encoding::VmVs2Rd,
19226 VAADDVX | VAADDUVX | VADDVX | VANDVX | VANDNVX | VASUBVX | VASUBUVX | VCLMULVX
19227 | VCLMULHVX | VDIVVX | VDIVUVX | VFADDVF | VFDIVVF | VFMACCVF | VFMADDVF | VFMAXVF
19228 | VFMINVF | VFMSACVF | VFMSUBVF | VFMULVF | VFNMACCVF | VFNMADDVF | VFNMSACVF
19229 | VFNMSUBVF | VFRDIVVF | VFRSUBVF | VFSGNJVF | VFSGNJNVF | VFSGNJXVF
19230 | VFSLIDE1DOWNVF | VFSLIDE1UPVF | VFSUBVF | VFWADDVF | VFWADDWF | VFWMACCVF
19231 | VFWMSACVF | VFWMULVF | VFWNMACCVF | VFWNMSACVF | VFWSUBVF | VFWSUBWF | VMACCVX
19232 | VMADDVX | VMAXVX | VMAXUVX | VMFEQVF | VMFGEVF | VMFGTVF | VMFLEVF | VMFLTVF
19233 | VMFNEVF | VMINVX | VMINUVX | VMSEQVX | VMSGTVX | VMSGTUVX | VMSLEVX | VMSLEUVX
19234 | VMSLTVX | VMSLTUVX | VMSNEVX | VMULVX | VMULHVX | VMULHSUVX | VMULHUVX | VNCLIPWX
19235 | VNCLIPUWX | VNMSACVX | VNMSUBVX | VNSRAWX | VNSRLWX | VORVX | VREMVX | VREMUVX
19236 | VRGATHERVX | VROLVX | VRORVX | VRSUBVX | VSADDVX | VSADDUVX | VSLIDE1DOWNVX
19237 | VSLIDE1UPVX | VSLIDEDOWNVX | VSLIDEUPVX | VSLLVX | VSMULVX | VSRAVX | VSRLVX
19238 | VSSRAVX | VSSRLVX | VSSUBVX | VSSUBUVX | VSUBVX | VWADDVX | VWADDWX | VWADDUVX
19239 | VWADDUWX | VWMACCVX | VWMACCSUVX | VWMACCUVX | VWMACCUSVX | VWMULVX | VWMULSUVX
19240 | VWMULUVX | VWSLLVX | VWSUBVX | VWSUBWX | VWSUBUVX | VWSUBUWX | VXORVX => {
19241 Encoding::VmVs2Rs1Vd
19242 }
19243 VADDVI | VANDVI | VMSEQVI | VMSGTVI | VMSGTUVI | VMSLEVI | VMSLEUVI | VMSNEVI
19244 | VNCLIPWI | VNCLIPUWI | VNSRAWI | VNSRLWI | VORVI | VRGATHERVI | VRSUBVI | VSADDVI
19245 | VSADDUVI | VSLIDEDOWNVI | VSLIDEUPVI | VSLLVI | VSRAVI | VSRLVI | VSSRAVI
19246 | VSSRLVI | VXORVI => Encoding::VmVs2Simm5Vd,
19247 VBREV8V | VBREVV | VCLZV | VCPOPV | VCTZV | VFCLASSV | VFCVTFXV | VFCVTFXUV
19248 | VFCVTRTZXFV | VFCVTRTZXUFV | VFCVTXFV | VFCVTXUFV | VFNCVTFFW | VFNCVTFXW
19249 | VFNCVTFXUW | VFNCVTRODFFW | VFNCVTRTZXFW | VFNCVTRTZXUFW | VFNCVTXFW | VFNCVTXUFW
19250 | VFREC7V | VFRSQRT7V | VFSQRTV | VFWCVTFFV | VFWCVTFXV | VFWCVTFXUV | VFWCVTRTZXFV
19251 | VFWCVTRTZXUFV | VFWCVTXFV | VFWCVTXUFV | VIOTAM | VMSBFM | VMSIFM | VMSOFM
19252 | VREV8V | VSEXTVF2 | VSEXTVF4 | VSEXTVF8 | VZEXTVF2 | VZEXTVF4 | VZEXTVF8 => {
19253 Encoding::VmVs2Vd
19254 }
19255 VAADDVV | VAADDUVV | VADDVV | VANDVV | VANDNVV | VASUBVV | VASUBUVV | VCLMULVV
19256 | VCLMULHVV | VDIVVV | VDIVUVV | VFADDVV | VFDIVVV | VFMACCVV | VFMADDVV | VFMAXVV
19257 | VFMINVV | VFMSACVV | VFMSUBVV | VFMULVV | VFNMACCVV | VFNMADDVV | VFNMSACVV
19258 | VFNMSUBVV | VFREDMAXVS | VFREDMINVS | VFREDOSUMVS | VFREDSUMVS | VFREDUSUMVS
19259 | VFSGNJVV | VFSGNJNVV | VFSGNJXVV | VFSUBVV | VFWADDVV | VFWADDWV | VFWMACCVV
19260 | VFWMSACVV | VFWMULVV | VFWNMACCVV | VFWNMSACVV | VFWREDOSUMVS | VFWREDSUMVS
19261 | VFWREDUSUMVS | VFWSUBVV | VFWSUBWV | VMACCVV | VMADDVV | VMANDNOTMM | VMAXVV
19262 | VMAXUVV | VMFEQVV | VMFLEVV | VMFLTVV | VMFNEVV | VMINVV | VMINUVV | VMORNOTMM
19263 | VMSEQVV | VMSLEVV | VMSLEUVV | VMSLTVV | VMSLTUVV | VMSNEVV | VMULVV | VMULHVV
19264 | VMULHSUVV | VMULHUVV | VNCLIPWV | VNCLIPUWV | VNMSACVV | VNMSUBVV | VNSRAWV
19265 | VNSRLWV | VORVV | VREDANDVS | VREDMAXVS | VREDMAXUVS | VREDMINVS | VREDMINUVS
19266 | VREDORVS | VREDSUMVS | VREDXORVS | VREMVV | VREMUVV | VRGATHERVV | VRGATHEREI16VV
19267 | VROLVV | VRORVV | VSADDVV | VSADDUVV | VSLLVV | VSMULVV | VSRAVV | VSRLVV
19268 | VSSRAVV | VSSRLVV | VSSUBVV | VSSUBUVV | VSUBVV | VWADDVV | VWADDWV | VWADDUVV
19269 | VWADDUWV | VWMACCVV | VWMACCSUVV | VWMACCUVV | VWMULVV | VWMULSUVV | VWMULUVV
19270 | VWREDSUMVS | VWREDSUMUVS | VWSLLVV | VWSUBVV | VWSUBWV | VWSUBUVV | VWSUBUWV
19271 | VXORVV => Encoding::VmVs2Vs1Vd,
19272 VWSLLVI => Encoding::VmVs2Zimm5Vd,
19273 VMVVV => Encoding::Vs1Vd,
19274 VFMVFS | VMVXS => Encoding::Vs2Rd,
19275 VADCVXM | VFMERGEVFM | VMADCVX | VMADCVXM | VMERGEVXM | VMSBCVX | VMSBCVXM
19276 | VSBCVXM => Encoding::Vs2Rs1Vd,
19277 VADCVIM | VMADCVI | VMADCVIM | VMERGEVIM => Encoding::Vs2Simm5Vd,
19278 VAESDFVS | VAESDFVV | VAESDMVS | VAESDMVV | VAESEFVS | VAESEFVV | VAESEMVS
19279 | VAESEMVV | VAESZVS | VGMULVV | VMV1RV | VMV2RV | VMV4RV | VMV8RV | VSM4RVS
19280 | VSM4RVV => Encoding::Vs2Vd,
19281 VADCVVM | VCOMPRESSVM | VGHSHVV | VMADCVV | VMADCVVM | VMANDMM | VMANDNMM
19282 | VMERGEVVM | VMNANDMM | VMNORMM | VMORMM | VMORNMM | VMSBCVV | VMSBCVVM | VMXNORMM
19283 | VMXORMM | VSBCVVM | VSHA2CHVV | VSHA2CLVV | VSHA2MSVV | VSM3MEVV => {
19284 Encoding::Vs2Vs1Vd
19285 }
19286 VAESKF1VI | VAESKF2VI | VSM3CVI | VSM4KVI => Encoding::Vs2Zimm5Vd,
19287 VSETIVLI => Encoding::Zimm10ZimmRd,
19288 VSETVLI => Encoding::Zimm11Rs1Rd,
19289 VRORVI => Encoding::Zimm6HiVmVs2Zimm6loVd,
19290 }
19291 }
19292}
19293pub const INSN_FIELD_RD: u32 = 0xf80;
19294pub const INSN_FIELD_RD_START: u32 = 7;
19295pub const INSN_FIELD_RD_SIZE: u32 = 5;
19296pub const INSN_FIELD_RT: u32 = 0xf8000;
19297pub const INSN_FIELD_RT_START: u32 = 15;
19298pub const INSN_FIELD_RT_SIZE: u32 = 5;
19299pub const INSN_FIELD_RS1: u32 = 0xf8000;
19300pub const INSN_FIELD_RS1_START: u32 = 15;
19301pub const INSN_FIELD_RS1_SIZE: u32 = 5;
19302pub const INSN_FIELD_RS2: u32 = 0x1f00000;
19303pub const INSN_FIELD_RS2_START: u32 = 20;
19304pub const INSN_FIELD_RS2_SIZE: u32 = 5;
19305pub const INSN_FIELD_RS3: u32 = 0xf8000000;
19306pub const INSN_FIELD_RS3_START: u32 = 27;
19307pub const INSN_FIELD_RS3_SIZE: u32 = 5;
19308pub const INSN_FIELD_AQRL: u32 = 0x6000000;
19309pub const INSN_FIELD_AQRL_START: u32 = 25;
19310pub const INSN_FIELD_AQRL_SIZE: u32 = 2;
19311pub const INSN_FIELD_AQ: u32 = 0x4000000;
19312pub const INSN_FIELD_AQ_START: u32 = 26;
19313pub const INSN_FIELD_AQ_SIZE: u32 = 1;
19314pub const INSN_FIELD_RL: u32 = 0x2000000;
19315pub const INSN_FIELD_RL_START: u32 = 25;
19316pub const INSN_FIELD_RL_SIZE: u32 = 1;
19317pub const INSN_FIELD_FM: u32 = 0xf0000000;
19318pub const INSN_FIELD_FM_START: u32 = 28;
19319pub const INSN_FIELD_FM_SIZE: u32 = 4;
19320pub const INSN_FIELD_PRED: u32 = 0xf000000;
19321pub const INSN_FIELD_PRED_START: u32 = 24;
19322pub const INSN_FIELD_PRED_SIZE: u32 = 4;
19323pub const INSN_FIELD_SUCC: u32 = 0xf00000;
19324pub const INSN_FIELD_SUCC_START: u32 = 20;
19325pub const INSN_FIELD_SUCC_SIZE: u32 = 4;
19326pub const INSN_FIELD_RM: u32 = 0x7000;
19327pub const INSN_FIELD_RM_START: u32 = 12;
19328pub const INSN_FIELD_RM_SIZE: u32 = 3;
19329pub const INSN_FIELD_FUNCT3: u32 = 0x7000;
19330pub const INSN_FIELD_FUNCT3_START: u32 = 12;
19331pub const INSN_FIELD_FUNCT3_SIZE: u32 = 3;
19332pub const INSN_FIELD_FUNCT2: u32 = 0x6000000;
19333pub const INSN_FIELD_FUNCT2_START: u32 = 25;
19334pub const INSN_FIELD_FUNCT2_SIZE: u32 = 2;
19335pub const INSN_FIELD_IMM20: u32 = 0xfffff000;
19336pub const INSN_FIELD_IMM20_START: u32 = 12;
19337pub const INSN_FIELD_IMM20_SIZE: u32 = 20;
19338pub const INSN_FIELD_JIMM20: u32 = 0xfffff000;
19339pub const INSN_FIELD_JIMM20_START: u32 = 12;
19340pub const INSN_FIELD_JIMM20_SIZE: u32 = 20;
19341pub const INSN_FIELD_IMM12: u32 = 0xfff00000;
19342pub const INSN_FIELD_IMM12_START: u32 = 20;
19343pub const INSN_FIELD_IMM12_SIZE: u32 = 12;
19344pub const INSN_FIELD_CSR: u32 = 0xfff00000;
19345pub const INSN_FIELD_CSR_START: u32 = 20;
19346pub const INSN_FIELD_CSR_SIZE: u32 = 12;
19347pub const INSN_FIELD_IMM12HI: u32 = 0xfe000000;
19348pub const INSN_FIELD_IMM12HI_START: u32 = 25;
19349pub const INSN_FIELD_IMM12HI_SIZE: u32 = 7;
19350pub const INSN_FIELD_BIMM12HI: u32 = 0xfe000000;
19351pub const INSN_FIELD_BIMM12HI_START: u32 = 25;
19352pub const INSN_FIELD_BIMM12HI_SIZE: u32 = 7;
19353pub const INSN_FIELD_IMM12LO: u32 = 0xf80;
19354pub const INSN_FIELD_IMM12LO_START: u32 = 7;
19355pub const INSN_FIELD_IMM12LO_SIZE: u32 = 5;
19356pub const INSN_FIELD_BIMM12LO: u32 = 0xf80;
19357pub const INSN_FIELD_BIMM12LO_START: u32 = 7;
19358pub const INSN_FIELD_BIMM12LO_SIZE: u32 = 5;
19359pub const INSN_FIELD_SHAMTQ: u32 = 0x7f00000;
19360pub const INSN_FIELD_SHAMTQ_START: u32 = 20;
19361pub const INSN_FIELD_SHAMTQ_SIZE: u32 = 7;
19362pub const INSN_FIELD_SHAMTW: u32 = 0x1f00000;
19363pub const INSN_FIELD_SHAMTW_START: u32 = 20;
19364pub const INSN_FIELD_SHAMTW_SIZE: u32 = 5;
19365pub const INSN_FIELD_SHAMTW4: u32 = 0xf00000;
19366pub const INSN_FIELD_SHAMTW4_START: u32 = 20;
19367pub const INSN_FIELD_SHAMTW4_SIZE: u32 = 4;
19368pub const INSN_FIELD_SHAMTD: u32 = 0x3f00000;
19369pub const INSN_FIELD_SHAMTD_START: u32 = 20;
19370pub const INSN_FIELD_SHAMTD_SIZE: u32 = 6;
19371pub const INSN_FIELD_BS: u32 = 0xc0000000;
19372pub const INSN_FIELD_BS_START: u32 = 30;
19373pub const INSN_FIELD_BS_SIZE: u32 = 2;
19374pub const INSN_FIELD_RNUM: u32 = 0xf00000;
19375pub const INSN_FIELD_RNUM_START: u32 = 20;
19376pub const INSN_FIELD_RNUM_SIZE: u32 = 4;
19377pub const INSN_FIELD_RC: u32 = 0x3e000000;
19378pub const INSN_FIELD_RC_START: u32 = 25;
19379pub const INSN_FIELD_RC_SIZE: u32 = 5;
19380pub const INSN_FIELD_IMM2: u32 = 0x300000;
19381pub const INSN_FIELD_IMM2_START: u32 = 20;
19382pub const INSN_FIELD_IMM2_SIZE: u32 = 2;
19383pub const INSN_FIELD_IMM3: u32 = 0x700000;
19384pub const INSN_FIELD_IMM3_START: u32 = 20;
19385pub const INSN_FIELD_IMM3_SIZE: u32 = 3;
19386pub const INSN_FIELD_IMM4: u32 = 0xf00000;
19387pub const INSN_FIELD_IMM4_START: u32 = 20;
19388pub const INSN_FIELD_IMM4_SIZE: u32 = 4;
19389pub const INSN_FIELD_IMM5: u32 = 0x1f00000;
19390pub const INSN_FIELD_IMM5_START: u32 = 20;
19391pub const INSN_FIELD_IMM5_SIZE: u32 = 5;
19392pub const INSN_FIELD_IMM6: u32 = 0x3f00000;
19393pub const INSN_FIELD_IMM6_START: u32 = 20;
19394pub const INSN_FIELD_IMM6_SIZE: u32 = 6;
19395pub const INSN_FIELD_ZIMM: u32 = 0xf8000;
19396pub const INSN_FIELD_ZIMM_START: u32 = 15;
19397pub const INSN_FIELD_ZIMM_SIZE: u32 = 5;
19398pub const INSN_FIELD_OPCODE: u32 = 0x7f;
19399pub const INSN_FIELD_OPCODE_START: u32 = 0;
19400pub const INSN_FIELD_OPCODE_SIZE: u32 = 7;
19401pub const INSN_FIELD_FUNCT7: u32 = 0xfe000000;
19402pub const INSN_FIELD_FUNCT7_START: u32 = 25;
19403pub const INSN_FIELD_FUNCT7_SIZE: u32 = 7;
19404pub const INSN_FIELD_VD: u32 = 0xf80;
19405pub const INSN_FIELD_VD_START: u32 = 7;
19406pub const INSN_FIELD_VD_SIZE: u32 = 5;
19407pub const INSN_FIELD_VS3: u32 = 0xf80;
19408pub const INSN_FIELD_VS3_START: u32 = 7;
19409pub const INSN_FIELD_VS3_SIZE: u32 = 5;
19410pub const INSN_FIELD_VS1: u32 = 0xf8000;
19411pub const INSN_FIELD_VS1_START: u32 = 15;
19412pub const INSN_FIELD_VS1_SIZE: u32 = 5;
19413pub const INSN_FIELD_VS2: u32 = 0x1f00000;
19414pub const INSN_FIELD_VS2_START: u32 = 20;
19415pub const INSN_FIELD_VS2_SIZE: u32 = 5;
19416pub const INSN_FIELD_VM: u32 = 0x2000000;
19417pub const INSN_FIELD_VM_START: u32 = 25;
19418pub const INSN_FIELD_VM_SIZE: u32 = 1;
19419pub const INSN_FIELD_WD: u32 = 0x4000000;
19420pub const INSN_FIELD_WD_START: u32 = 26;
19421pub const INSN_FIELD_WD_SIZE: u32 = 1;
19422pub const INSN_FIELD_AMOOP: u32 = 0xf8000000;
19423pub const INSN_FIELD_AMOOP_START: u32 = 27;
19424pub const INSN_FIELD_AMOOP_SIZE: u32 = 5;
19425pub const INSN_FIELD_NF: u32 = 0xe0000000;
19426pub const INSN_FIELD_NF_START: u32 = 29;
19427pub const INSN_FIELD_NF_SIZE: u32 = 3;
19428pub const INSN_FIELD_SIMM5: u32 = 0xf8000;
19429pub const INSN_FIELD_SIMM5_START: u32 = 15;
19430pub const INSN_FIELD_SIMM5_SIZE: u32 = 5;
19431pub const INSN_FIELD_ZIMM5: u32 = 0xf8000;
19432pub const INSN_FIELD_ZIMM5_START: u32 = 15;
19433pub const INSN_FIELD_ZIMM5_SIZE: u32 = 5;
19434pub const INSN_FIELD_ZIMM10: u32 = 0x3ff00000;
19435pub const INSN_FIELD_ZIMM10_START: u32 = 20;
19436pub const INSN_FIELD_ZIMM10_SIZE: u32 = 10;
19437pub const INSN_FIELD_ZIMM11: u32 = 0x7ff00000;
19438pub const INSN_FIELD_ZIMM11_START: u32 = 20;
19439pub const INSN_FIELD_ZIMM11_SIZE: u32 = 11;
19440pub const INSN_FIELD_ZIMM6HI: u32 = 0x4000000;
19441pub const INSN_FIELD_ZIMM6HI_START: u32 = 26;
19442pub const INSN_FIELD_ZIMM6HI_SIZE: u32 = 1;
19443pub const INSN_FIELD_ZIMM6LO: u32 = 0xf8000;
19444pub const INSN_FIELD_ZIMM6LO_START: u32 = 15;
19445pub const INSN_FIELD_ZIMM6LO_SIZE: u32 = 5;
19446pub const INSN_FIELD_C_NZUIMM10: u32 = 0x1fe0;
19447pub const INSN_FIELD_C_NZUIMM10_START: u32 = 5;
19448pub const INSN_FIELD_C_NZUIMM10_SIZE: u32 = 8;
19449pub const INSN_FIELD_C_UIMM7LO: u32 = 0x60;
19450pub const INSN_FIELD_C_UIMM7LO_START: u32 = 5;
19451pub const INSN_FIELD_C_UIMM7LO_SIZE: u32 = 2;
19452pub const INSN_FIELD_C_UIMM7HI: u32 = 0x1c00;
19453pub const INSN_FIELD_C_UIMM7HI_START: u32 = 10;
19454pub const INSN_FIELD_C_UIMM7HI_SIZE: u32 = 3;
19455pub const INSN_FIELD_C_UIMM8LO: u32 = 0x60;
19456pub const INSN_FIELD_C_UIMM8LO_START: u32 = 5;
19457pub const INSN_FIELD_C_UIMM8LO_SIZE: u32 = 2;
19458pub const INSN_FIELD_C_UIMM8HI: u32 = 0x1c00;
19459pub const INSN_FIELD_C_UIMM8HI_START: u32 = 10;
19460pub const INSN_FIELD_C_UIMM8HI_SIZE: u32 = 3;
19461pub const INSN_FIELD_C_UIMM9LO: u32 = 0x60;
19462pub const INSN_FIELD_C_UIMM9LO_START: u32 = 5;
19463pub const INSN_FIELD_C_UIMM9LO_SIZE: u32 = 2;
19464pub const INSN_FIELD_C_UIMM9HI: u32 = 0x1c00;
19465pub const INSN_FIELD_C_UIMM9HI_START: u32 = 10;
19466pub const INSN_FIELD_C_UIMM9HI_SIZE: u32 = 3;
19467pub const INSN_FIELD_C_NZIMM6LO: u32 = 0x7c;
19468pub const INSN_FIELD_C_NZIMM6LO_START: u32 = 2;
19469pub const INSN_FIELD_C_NZIMM6LO_SIZE: u32 = 5;
19470pub const INSN_FIELD_C_NZIMM6HI: u32 = 0x1000;
19471pub const INSN_FIELD_C_NZIMM6HI_START: u32 = 12;
19472pub const INSN_FIELD_C_NZIMM6HI_SIZE: u32 = 1;
19473pub const INSN_FIELD_C_IMM6LO: u32 = 0x7c;
19474pub const INSN_FIELD_C_IMM6LO_START: u32 = 2;
19475pub const INSN_FIELD_C_IMM6LO_SIZE: u32 = 5;
19476pub const INSN_FIELD_C_IMM6HI: u32 = 0x1000;
19477pub const INSN_FIELD_C_IMM6HI_START: u32 = 12;
19478pub const INSN_FIELD_C_IMM6HI_SIZE: u32 = 1;
19479pub const INSN_FIELD_C_NZIMM10HI: u32 = 0x1000;
19480pub const INSN_FIELD_C_NZIMM10HI_START: u32 = 12;
19481pub const INSN_FIELD_C_NZIMM10HI_SIZE: u32 = 1;
19482pub const INSN_FIELD_C_NZIMM10LO: u32 = 0x7c;
19483pub const INSN_FIELD_C_NZIMM10LO_START: u32 = 2;
19484pub const INSN_FIELD_C_NZIMM10LO_SIZE: u32 = 5;
19485pub const INSN_FIELD_C_NZIMM18HI: u32 = 0x1000;
19486pub const INSN_FIELD_C_NZIMM18HI_START: u32 = 12;
19487pub const INSN_FIELD_C_NZIMM18HI_SIZE: u32 = 1;
19488pub const INSN_FIELD_C_NZIMM18LO: u32 = 0x7c;
19489pub const INSN_FIELD_C_NZIMM18LO_START: u32 = 2;
19490pub const INSN_FIELD_C_NZIMM18LO_SIZE: u32 = 5;
19491pub const INSN_FIELD_C_IMM12: u32 = 0x1ffc;
19492pub const INSN_FIELD_C_IMM12_START: u32 = 2;
19493pub const INSN_FIELD_C_IMM12_SIZE: u32 = 11;
19494pub const INSN_FIELD_C_BIMM9LO: u32 = 0x7c;
19495pub const INSN_FIELD_C_BIMM9LO_START: u32 = 2;
19496pub const INSN_FIELD_C_BIMM9LO_SIZE: u32 = 5;
19497pub const INSN_FIELD_C_BIMM9HI: u32 = 0x1c00;
19498pub const INSN_FIELD_C_BIMM9HI_START: u32 = 10;
19499pub const INSN_FIELD_C_BIMM9HI_SIZE: u32 = 3;
19500pub const INSN_FIELD_C_NZUIMM5: u32 = 0x7c;
19501pub const INSN_FIELD_C_NZUIMM5_START: u32 = 2;
19502pub const INSN_FIELD_C_NZUIMM5_SIZE: u32 = 5;
19503pub const INSN_FIELD_C_NZUIMM6LO: u32 = 0x7c;
19504pub const INSN_FIELD_C_NZUIMM6LO_START: u32 = 2;
19505pub const INSN_FIELD_C_NZUIMM6LO_SIZE: u32 = 5;
19506pub const INSN_FIELD_C_NZUIMM6HI: u32 = 0x1000;
19507pub const INSN_FIELD_C_NZUIMM6HI_START: u32 = 12;
19508pub const INSN_FIELD_C_NZUIMM6HI_SIZE: u32 = 1;
19509pub const INSN_FIELD_C_UIMM8SPLO: u32 = 0x7c;
19510pub const INSN_FIELD_C_UIMM8SPLO_START: u32 = 2;
19511pub const INSN_FIELD_C_UIMM8SPLO_SIZE: u32 = 5;
19512pub const INSN_FIELD_C_UIMM8SPHI: u32 = 0x1000;
19513pub const INSN_FIELD_C_UIMM8SPHI_START: u32 = 12;
19514pub const INSN_FIELD_C_UIMM8SPHI_SIZE: u32 = 1;
19515pub const INSN_FIELD_C_UIMM8SP_S: u32 = 0x1f80;
19516pub const INSN_FIELD_C_UIMM8SP_S_START: u32 = 7;
19517pub const INSN_FIELD_C_UIMM8SP_S_SIZE: u32 = 6;
19518pub const INSN_FIELD_C_UIMM10SPLO: u32 = 0x7c;
19519pub const INSN_FIELD_C_UIMM10SPLO_START: u32 = 2;
19520pub const INSN_FIELD_C_UIMM10SPLO_SIZE: u32 = 5;
19521pub const INSN_FIELD_C_UIMM10SPHI: u32 = 0x1000;
19522pub const INSN_FIELD_C_UIMM10SPHI_START: u32 = 12;
19523pub const INSN_FIELD_C_UIMM10SPHI_SIZE: u32 = 1;
19524pub const INSN_FIELD_C_UIMM9SPLO: u32 = 0x7c;
19525pub const INSN_FIELD_C_UIMM9SPLO_START: u32 = 2;
19526pub const INSN_FIELD_C_UIMM9SPLO_SIZE: u32 = 5;
19527pub const INSN_FIELD_C_UIMM9SPHI: u32 = 0x1000;
19528pub const INSN_FIELD_C_UIMM9SPHI_START: u32 = 12;
19529pub const INSN_FIELD_C_UIMM9SPHI_SIZE: u32 = 1;
19530pub const INSN_FIELD_C_UIMM10SP_S: u32 = 0x1f80;
19531pub const INSN_FIELD_C_UIMM10SP_S_START: u32 = 7;
19532pub const INSN_FIELD_C_UIMM10SP_S_SIZE: u32 = 6;
19533pub const INSN_FIELD_C_UIMM9SP_S: u32 = 0x1f80;
19534pub const INSN_FIELD_C_UIMM9SP_S_START: u32 = 7;
19535pub const INSN_FIELD_C_UIMM9SP_S_SIZE: u32 = 6;
19536pub const INSN_FIELD_C_UIMM2: u32 = 0x60;
19537pub const INSN_FIELD_C_UIMM2_START: u32 = 5;
19538pub const INSN_FIELD_C_UIMM2_SIZE: u32 = 2;
19539pub const INSN_FIELD_C_UIMM1: u32 = 0x20;
19540pub const INSN_FIELD_C_UIMM1_START: u32 = 5;
19541pub const INSN_FIELD_C_UIMM1_SIZE: u32 = 1;
19542pub const INSN_FIELD_C_RLIST: u32 = 0xf0;
19543pub const INSN_FIELD_C_RLIST_START: u32 = 4;
19544pub const INSN_FIELD_C_RLIST_SIZE: u32 = 4;
19545pub const INSN_FIELD_C_SPIMM: u32 = 0xc;
19546pub const INSN_FIELD_C_SPIMM_START: u32 = 2;
19547pub const INSN_FIELD_C_SPIMM_SIZE: u32 = 2;
19548pub const INSN_FIELD_C_INDEX: u32 = 0x3fc;
19549pub const INSN_FIELD_C_INDEX_START: u32 = 2;
19550pub const INSN_FIELD_C_INDEX_SIZE: u32 = 8;
19551pub const INSN_FIELD_RS1_P: u32 = 0x380;
19552pub const INSN_FIELD_RS1_P_START: u32 = 7;
19553pub const INSN_FIELD_RS1_P_SIZE: u32 = 3;
19554pub const INSN_FIELD_RS2_P: u32 = 0x1c;
19555pub const INSN_FIELD_RS2_P_START: u32 = 2;
19556pub const INSN_FIELD_RS2_P_SIZE: u32 = 3;
19557pub const INSN_FIELD_RD_P: u32 = 0x1c;
19558pub const INSN_FIELD_RD_P_START: u32 = 2;
19559pub const INSN_FIELD_RD_P_SIZE: u32 = 3;
19560pub const INSN_FIELD_RD_RS1_N0: u32 = 0xf80;
19561pub const INSN_FIELD_RD_RS1_N0_START: u32 = 7;
19562pub const INSN_FIELD_RD_RS1_N0_SIZE: u32 = 5;
19563pub const INSN_FIELD_RD_RS1_P: u32 = 0x380;
19564pub const INSN_FIELD_RD_RS1_P_START: u32 = 7;
19565pub const INSN_FIELD_RD_RS1_P_SIZE: u32 = 3;
19566pub const INSN_FIELD_RD_RS1: u32 = 0xf80;
19567pub const INSN_FIELD_RD_RS1_START: u32 = 7;
19568pub const INSN_FIELD_RD_RS1_SIZE: u32 = 5;
19569pub const INSN_FIELD_RD_N2: u32 = 0xf80;
19570pub const INSN_FIELD_RD_N2_START: u32 = 7;
19571pub const INSN_FIELD_RD_N2_SIZE: u32 = 5;
19572pub const INSN_FIELD_RD_N0: u32 = 0xf80;
19573pub const INSN_FIELD_RD_N0_START: u32 = 7;
19574pub const INSN_FIELD_RD_N0_SIZE: u32 = 5;
19575pub const INSN_FIELD_RS1_N0: u32 = 0xf80;
19576pub const INSN_FIELD_RS1_N0_START: u32 = 7;
19577pub const INSN_FIELD_RS1_N0_SIZE: u32 = 5;
19578pub const INSN_FIELD_C_RS2_N0: u32 = 0x7c;
19579pub const INSN_FIELD_C_RS2_N0_START: u32 = 2;
19580pub const INSN_FIELD_C_RS2_N0_SIZE: u32 = 5;
19581pub const INSN_FIELD_C_RS1_N0: u32 = 0xf80;
19582pub const INSN_FIELD_C_RS1_N0_START: u32 = 7;
19583pub const INSN_FIELD_C_RS1_N0_SIZE: u32 = 5;
19584pub const INSN_FIELD_C_RS2: u32 = 0x7c;
19585pub const INSN_FIELD_C_RS2_START: u32 = 2;
19586pub const INSN_FIELD_C_RS2_SIZE: u32 = 5;
19587pub const INSN_FIELD_C_SREG1: u32 = 0x380;
19588pub const INSN_FIELD_C_SREG1_START: u32 = 7;
19589pub const INSN_FIELD_C_SREG1_SIZE: u32 = 3;
19590pub const INSN_FIELD_C_SREG2: u32 = 0x1c;
19591pub const INSN_FIELD_C_SREG2_START: u32 = 2;
19592pub const INSN_FIELD_C_SREG2_SIZE: u32 = 3;
19593pub const INSN_FIELD_MOP_R_T_30: u32 = 0x40000000;
19594pub const INSN_FIELD_MOP_R_T_30_START: u32 = 30;
19595pub const INSN_FIELD_MOP_R_T_30_SIZE: u32 = 1;
19596pub const INSN_FIELD_MOP_R_T_27_26: u32 = 0xc000000;
19597pub const INSN_FIELD_MOP_R_T_27_26_START: u32 = 26;
19598pub const INSN_FIELD_MOP_R_T_27_26_SIZE: u32 = 2;
19599pub const INSN_FIELD_MOP_R_T_21_20: u32 = 0x300000;
19600pub const INSN_FIELD_MOP_R_T_21_20_START: u32 = 20;
19601pub const INSN_FIELD_MOP_R_T_21_20_SIZE: u32 = 2;
19602pub const INSN_FIELD_MOP_RR_T_30: u32 = 0x40000000;
19603pub const INSN_FIELD_MOP_RR_T_30_START: u32 = 30;
19604pub const INSN_FIELD_MOP_RR_T_30_SIZE: u32 = 1;
19605pub const INSN_FIELD_MOP_RR_T_27_26: u32 = 0xc000000;
19606pub const INSN_FIELD_MOP_RR_T_27_26_START: u32 = 26;
19607pub const INSN_FIELD_MOP_RR_T_27_26_SIZE: u32 = 2;
19608pub const INSN_FIELD_C_MOP_T: u32 = 0x700;
19609pub const INSN_FIELD_C_MOP_T_START: u32 = 8;
19610pub const INSN_FIELD_C_MOP_T_SIZE: u32 = 3;
19611pub const INSN_FIELD_RS2_EQ_RS1: u32 = 0x1f00000;
19612pub const INSN_FIELD_RS2_EQ_RS1_START: u32 = 20;
19613pub const INSN_FIELD_RS2_EQ_RS1_SIZE: u32 = 5;
19614
19615#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
19617#[repr(transparent)]
19618pub struct InstructionValue {
19619 pub value: u32,
19620}
19621
19622impl InstructionValue {
19623 pub const fn new(value: u32) -> Self {
19624 Self { value }
19625 }
19626
19627 pub const fn field<const FIELD_START: usize, const FIELD_SIZE: usize>(self) -> u32 {
19628 (self.value >> FIELD_START) & ((1 << FIELD_SIZE) - 1)
19629 }
19630
19631 pub const fn rd(self) -> u32 {
19632 (self.value >> INSN_FIELD_RD_START) & ((1 << INSN_FIELD_RD_SIZE) - 1)
19633 }
19634
19635 pub const fn set_rd(mut self, value: u32) -> Self {
19636 let mask = INSN_FIELD_RD;
19637
19638 self.value &= !mask;
19639 self.value |= (value & ((1 << INSN_FIELD_RD_SIZE) - 1)) << INSN_FIELD_RD_START;
19640 self
19641 }
19642 pub const fn rt(self) -> u32 {
19643 (self.value >> INSN_FIELD_RT_START) & ((1 << INSN_FIELD_RT_SIZE) - 1)
19644 }
19645
19646 pub const fn set_rt(mut self, value: u32) -> Self {
19647 let mask = INSN_FIELD_RT;
19648
19649 self.value &= !mask;
19650 self.value |= (value & ((1 << INSN_FIELD_RT_SIZE) - 1)) << INSN_FIELD_RT_START;
19651 self
19652 }
19653 pub const fn rs1(self) -> u32 {
19654 (self.value >> INSN_FIELD_RS1_START) & ((1 << INSN_FIELD_RS1_SIZE) - 1)
19655 }
19656
19657 pub const fn set_rs1(mut self, value: u32) -> Self {
19658 let mask = INSN_FIELD_RS1;
19659
19660 self.value &= !mask;
19661 self.value |= (value & ((1 << INSN_FIELD_RS1_SIZE) - 1)) << INSN_FIELD_RS1_START;
19662 self
19663 }
19664 pub const fn rs2(self) -> u32 {
19665 (self.value >> INSN_FIELD_RS2_START) & ((1 << INSN_FIELD_RS2_SIZE) - 1)
19666 }
19667
19668 pub const fn set_rs2(mut self, value: u32) -> Self {
19669 let mask = INSN_FIELD_RS2;
19670
19671 self.value &= !mask;
19672 self.value |= (value & ((1 << INSN_FIELD_RS2_SIZE) - 1)) << INSN_FIELD_RS2_START;
19673 self
19674 }
19675 pub const fn rs3(self) -> u32 {
19676 (self.value >> INSN_FIELD_RS3_START) & ((1 << INSN_FIELD_RS3_SIZE) - 1)
19677 }
19678
19679 pub const fn set_rs3(mut self, value: u32) -> Self {
19680 let mask = INSN_FIELD_RS3;
19681
19682 self.value &= !mask;
19683 self.value |= (value & ((1 << INSN_FIELD_RS3_SIZE) - 1)) << INSN_FIELD_RS3_START;
19684 self
19685 }
19686 pub const fn aqrl(self) -> u32 {
19687 (self.value >> INSN_FIELD_AQRL_START) & ((1 << INSN_FIELD_AQRL_SIZE) - 1)
19688 }
19689
19690 pub const fn set_aqrl(mut self, value: u32) -> Self {
19691 let mask = INSN_FIELD_AQRL;
19692
19693 self.value &= !mask;
19694 self.value |= (value & ((1 << INSN_FIELD_AQRL_SIZE) - 1)) << INSN_FIELD_AQRL_START;
19695 self
19696 }
19697 pub const fn aq(self) -> u32 {
19698 (self.value >> INSN_FIELD_AQ_START) & ((1 << INSN_FIELD_AQ_SIZE) - 1)
19699 }
19700
19701 pub const fn set_aq(mut self, value: u32) -> Self {
19702 let mask = INSN_FIELD_AQ;
19703
19704 self.value &= !mask;
19705 self.value |= (value & ((1 << INSN_FIELD_AQ_SIZE) - 1)) << INSN_FIELD_AQ_START;
19706 self
19707 }
19708 pub const fn rl(self) -> u32 {
19709 (self.value >> INSN_FIELD_RL_START) & ((1 << INSN_FIELD_RL_SIZE) - 1)
19710 }
19711
19712 pub const fn set_rl(mut self, value: u32) -> Self {
19713 let mask = INSN_FIELD_RL;
19714
19715 self.value &= !mask;
19716 self.value |= (value & ((1 << INSN_FIELD_RL_SIZE) - 1)) << INSN_FIELD_RL_START;
19717 self
19718 }
19719 pub const fn fm(self) -> u32 {
19720 (self.value >> INSN_FIELD_FM_START) & ((1 << INSN_FIELD_FM_SIZE) - 1)
19721 }
19722
19723 pub const fn set_fm(mut self, value: u32) -> Self {
19724 let mask = INSN_FIELD_FM;
19725
19726 self.value &= !mask;
19727 self.value |= (value & ((1 << INSN_FIELD_FM_SIZE) - 1)) << INSN_FIELD_FM_START;
19728 self
19729 }
19730 pub const fn pred(self) -> u32 {
19731 (self.value >> INSN_FIELD_PRED_START) & ((1 << INSN_FIELD_PRED_SIZE) - 1)
19732 }
19733
19734 pub const fn set_pred(mut self, value: u32) -> Self {
19735 let mask = INSN_FIELD_PRED;
19736
19737 self.value &= !mask;
19738 self.value |= (value & ((1 << INSN_FIELD_PRED_SIZE) - 1)) << INSN_FIELD_PRED_START;
19739 self
19740 }
19741 pub const fn succ(self) -> u32 {
19742 (self.value >> INSN_FIELD_SUCC_START) & ((1 << INSN_FIELD_SUCC_SIZE) - 1)
19743 }
19744
19745 pub const fn set_succ(mut self, value: u32) -> Self {
19746 let mask = INSN_FIELD_SUCC;
19747
19748 self.value &= !mask;
19749 self.value |= (value & ((1 << INSN_FIELD_SUCC_SIZE) - 1)) << INSN_FIELD_SUCC_START;
19750 self
19751 }
19752 pub const fn rm(self) -> u32 {
19753 (self.value >> INSN_FIELD_RM_START) & ((1 << INSN_FIELD_RM_SIZE) - 1)
19754 }
19755
19756 pub const fn set_rm(mut self, value: u32) -> Self {
19757 let mask = INSN_FIELD_RM;
19758
19759 self.value &= !mask;
19760 self.value |= (value & ((1 << INSN_FIELD_RM_SIZE) - 1)) << INSN_FIELD_RM_START;
19761 self
19762 }
19763 pub const fn funct3(self) -> u32 {
19764 (self.value >> INSN_FIELD_FUNCT3_START) & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)
19765 }
19766
19767 pub const fn set_funct3(mut self, value: u32) -> Self {
19768 let mask = INSN_FIELD_FUNCT3;
19769
19770 self.value &= !mask;
19771 self.value |= (value & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)) << INSN_FIELD_FUNCT3_START;
19772 self
19773 }
19774 pub const fn funct2(self) -> u32 {
19775 (self.value >> INSN_FIELD_FUNCT2_START) & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)
19776 }
19777
19778 pub const fn set_funct2(mut self, value: u32) -> Self {
19779 let mask = INSN_FIELD_FUNCT2;
19780
19781 self.value &= !mask;
19782 self.value |= (value & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)) << INSN_FIELD_FUNCT2_START;
19783 self
19784 }
19785 pub const fn imm20_raw(self) -> u32 {
19786 (self.value >> INSN_FIELD_IMM20_START) & ((1 << INSN_FIELD_IMM20_SIZE) - 1)
19787 }
19788
19789 pub const fn set_imm20_raw(mut self, value: u32) -> Self {
19790 let mask = INSN_FIELD_IMM20;
19791
19792 self.value &= !mask;
19793 self.value |= (value & ((1 << INSN_FIELD_IMM20_SIZE) - 1)) << INSN_FIELD_IMM20_START;
19794 self
19795 }
19796 pub const fn jimm20_raw(self) -> u32 {
19797 (self.value >> INSN_FIELD_JIMM20_START) & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)
19798 }
19799
19800 pub const fn set_jimm20_raw(mut self, value: u32) -> Self {
19801 let mask = INSN_FIELD_JIMM20;
19802
19803 self.value &= !mask;
19804 self.value |= (value & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)) << INSN_FIELD_JIMM20_START;
19805 self
19806 }
19807 pub const fn imm12_raw(self) -> u32 {
19808 (self.value >> INSN_FIELD_IMM12_START) & ((1 << INSN_FIELD_IMM12_SIZE) - 1)
19809 }
19810
19811 pub const fn set_imm12_raw(mut self, value: u32) -> Self {
19812 let mask = INSN_FIELD_IMM12;
19813
19814 self.value &= !mask;
19815 self.value |= (value & ((1 << INSN_FIELD_IMM12_SIZE) - 1)) << INSN_FIELD_IMM12_START;
19816 self
19817 }
19818 pub const fn csr(self) -> u32 {
19819 (self.value >> INSN_FIELD_CSR_START) & ((1 << INSN_FIELD_CSR_SIZE) - 1)
19820 }
19821
19822 pub const fn set_csr(mut self, value: u32) -> Self {
19823 let mask = INSN_FIELD_CSR;
19824
19825 self.value &= !mask;
19826 self.value |= (value & ((1 << INSN_FIELD_CSR_SIZE) - 1)) << INSN_FIELD_CSR_START;
19827 self
19828 }
19829 pub const fn imm12hi_raw(self) -> u32 {
19830 (self.value >> INSN_FIELD_IMM12HI_START) & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)
19831 }
19832
19833 pub const fn set_imm12hi_raw(mut self, value: u32) -> Self {
19834 let mask = INSN_FIELD_IMM12HI;
19835
19836 self.value &= !mask;
19837 self.value |= (value & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)) << INSN_FIELD_IMM12HI_START;
19838 self
19839 }
19840 pub const fn bimm12hi_raw(self) -> u32 {
19841 (self.value >> INSN_FIELD_BIMM12HI_START) & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)
19842 }
19843
19844 pub const fn set_bimm12hi_raw(mut self, value: u32) -> Self {
19845 let mask = INSN_FIELD_BIMM12HI;
19846
19847 self.value &= !mask;
19848 self.value |= (value & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)) << INSN_FIELD_BIMM12HI_START;
19849 self
19850 }
19851 pub const fn imm12lo_raw(self) -> u32 {
19852 (self.value >> INSN_FIELD_IMM12LO_START) & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)
19853 }
19854
19855 pub const fn set_imm12lo_raw(mut self, value: u32) -> Self {
19856 let mask = INSN_FIELD_IMM12LO;
19857
19858 self.value &= !mask;
19859 self.value |= (value & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)) << INSN_FIELD_IMM12LO_START;
19860 self
19861 }
19862 pub const fn bimm12lo_raw(self) -> u32 {
19863 (self.value >> INSN_FIELD_BIMM12LO_START) & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)
19864 }
19865
19866 pub const fn set_bimm12lo_raw(mut self, value: u32) -> Self {
19867 let mask = INSN_FIELD_BIMM12LO;
19868
19869 self.value &= !mask;
19870 self.value |= (value & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)) << INSN_FIELD_BIMM12LO_START;
19871 self
19872 }
19873 pub const fn shamtq(self) -> u32 {
19874 (self.value >> INSN_FIELD_SHAMTQ_START) & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)
19875 }
19876
19877 pub const fn set_shamtq(mut self, value: u32) -> Self {
19878 let mask = INSN_FIELD_SHAMTQ;
19879
19880 self.value &= !mask;
19881 self.value |= (value & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)) << INSN_FIELD_SHAMTQ_START;
19882 self
19883 }
19884 pub const fn shamtw(self) -> u32 {
19885 (self.value >> INSN_FIELD_SHAMTW_START) & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)
19886 }
19887
19888 pub const fn set_shamtw(mut self, value: u32) -> Self {
19889 let mask = INSN_FIELD_SHAMTW;
19890
19891 self.value &= !mask;
19892 self.value |= (value & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)) << INSN_FIELD_SHAMTW_START;
19893 self
19894 }
19895 pub const fn shamtw4(self) -> u32 {
19896 (self.value >> INSN_FIELD_SHAMTW4_START) & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)
19897 }
19898
19899 pub const fn set_shamtw4(mut self, value: u32) -> Self {
19900 let mask = INSN_FIELD_SHAMTW4;
19901
19902 self.value &= !mask;
19903 self.value |= (value & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)) << INSN_FIELD_SHAMTW4_START;
19904 self
19905 }
19906 pub const fn shamtd(self) -> u32 {
19907 (self.value >> INSN_FIELD_SHAMTD_START) & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)
19908 }
19909
19910 pub const fn set_shamtd(mut self, value: u32) -> Self {
19911 let mask = INSN_FIELD_SHAMTD;
19912
19913 self.value &= !mask;
19914 self.value |= (value & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)) << INSN_FIELD_SHAMTD_START;
19915 self
19916 }
19917 pub const fn bs(self) -> u32 {
19918 (self.value >> INSN_FIELD_BS_START) & ((1 << INSN_FIELD_BS_SIZE) - 1)
19919 }
19920
19921 pub const fn set_bs(mut self, value: u32) -> Self {
19922 let mask = INSN_FIELD_BS;
19923
19924 self.value &= !mask;
19925 self.value |= (value & ((1 << INSN_FIELD_BS_SIZE) - 1)) << INSN_FIELD_BS_START;
19926 self
19927 }
19928 pub const fn rnum(self) -> u32 {
19929 (self.value >> INSN_FIELD_RNUM_START) & ((1 << INSN_FIELD_RNUM_SIZE) - 1)
19930 }
19931
19932 pub const fn set_rnum(mut self, value: u32) -> Self {
19933 let mask = INSN_FIELD_RNUM;
19934
19935 self.value &= !mask;
19936 self.value |= (value & ((1 << INSN_FIELD_RNUM_SIZE) - 1)) << INSN_FIELD_RNUM_START;
19937 self
19938 }
19939 pub const fn rc(self) -> u32 {
19940 (self.value >> INSN_FIELD_RC_START) & ((1 << INSN_FIELD_RC_SIZE) - 1)
19941 }
19942
19943 pub const fn set_rc(mut self, value: u32) -> Self {
19944 let mask = INSN_FIELD_RC;
19945
19946 self.value &= !mask;
19947 self.value |= (value & ((1 << INSN_FIELD_RC_SIZE) - 1)) << INSN_FIELD_RC_START;
19948 self
19949 }
19950 pub const fn imm2_raw(self) -> u32 {
19951 (self.value >> INSN_FIELD_IMM2_START) & ((1 << INSN_FIELD_IMM2_SIZE) - 1)
19952 }
19953
19954 pub const fn set_imm2_raw(mut self, value: u32) -> Self {
19955 let mask = INSN_FIELD_IMM2;
19956
19957 self.value &= !mask;
19958 self.value |= (value & ((1 << INSN_FIELD_IMM2_SIZE) - 1)) << INSN_FIELD_IMM2_START;
19959 self
19960 }
19961 pub const fn imm3_raw(self) -> u32 {
19962 (self.value >> INSN_FIELD_IMM3_START) & ((1 << INSN_FIELD_IMM3_SIZE) - 1)
19963 }
19964
19965 pub const fn set_imm3_raw(mut self, value: u32) -> Self {
19966 let mask = INSN_FIELD_IMM3;
19967
19968 self.value &= !mask;
19969 self.value |= (value & ((1 << INSN_FIELD_IMM3_SIZE) - 1)) << INSN_FIELD_IMM3_START;
19970 self
19971 }
19972 pub const fn imm4_raw(self) -> u32 {
19973 (self.value >> INSN_FIELD_IMM4_START) & ((1 << INSN_FIELD_IMM4_SIZE) - 1)
19974 }
19975
19976 pub const fn set_imm4_raw(mut self, value: u32) -> Self {
19977 let mask = INSN_FIELD_IMM4;
19978
19979 self.value &= !mask;
19980 self.value |= (value & ((1 << INSN_FIELD_IMM4_SIZE) - 1)) << INSN_FIELD_IMM4_START;
19981 self
19982 }
19983 pub const fn imm5_raw(self) -> u32 {
19984 (self.value >> INSN_FIELD_IMM5_START) & ((1 << INSN_FIELD_IMM5_SIZE) - 1)
19985 }
19986
19987 pub const fn set_imm5_raw(mut self, value: u32) -> Self {
19988 let mask = INSN_FIELD_IMM5;
19989
19990 self.value &= !mask;
19991 self.value |= (value & ((1 << INSN_FIELD_IMM5_SIZE) - 1)) << INSN_FIELD_IMM5_START;
19992 self
19993 }
19994 pub const fn imm6_raw(self) -> u32 {
19995 (self.value >> INSN_FIELD_IMM6_START) & ((1 << INSN_FIELD_IMM6_SIZE) - 1)
19996 }
19997
19998 pub const fn set_imm6_raw(mut self, value: u32) -> Self {
19999 let mask = INSN_FIELD_IMM6;
20000
20001 self.value &= !mask;
20002 self.value |= (value & ((1 << INSN_FIELD_IMM6_SIZE) - 1)) << INSN_FIELD_IMM6_START;
20003 self
20004 }
20005 pub const fn zimm_raw(self) -> u32 {
20006 (self.value >> INSN_FIELD_ZIMM_START) & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)
20007 }
20008
20009 pub const fn set_zimm_raw(mut self, value: u32) -> Self {
20010 let mask = INSN_FIELD_ZIMM;
20011
20012 self.value &= !mask;
20013 self.value |= (value & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)) << INSN_FIELD_ZIMM_START;
20014 self
20015 }
20016 pub const fn opcode(self) -> u32 {
20017 (self.value >> INSN_FIELD_OPCODE_START) & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)
20018 }
20019
20020 pub const fn set_opcode(mut self, value: u32) -> Self {
20021 let mask = INSN_FIELD_OPCODE;
20022
20023 self.value &= !mask;
20024 self.value |= (value & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)) << INSN_FIELD_OPCODE_START;
20025 self
20026 }
20027 pub const fn funct7(self) -> u32 {
20028 (self.value >> INSN_FIELD_FUNCT7_START) & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)
20029 }
20030
20031 pub const fn set_funct7(mut self, value: u32) -> Self {
20032 let mask = INSN_FIELD_FUNCT7;
20033
20034 self.value &= !mask;
20035 self.value |= (value & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)) << INSN_FIELD_FUNCT7_START;
20036 self
20037 }
20038 pub const fn vd(self) -> u32 {
20039 (self.value >> INSN_FIELD_VD_START) & ((1 << INSN_FIELD_VD_SIZE) - 1)
20040 }
20041
20042 pub const fn set_vd(mut self, value: u32) -> Self {
20043 let mask = INSN_FIELD_VD;
20044
20045 self.value &= !mask;
20046 self.value |= (value & ((1 << INSN_FIELD_VD_SIZE) - 1)) << INSN_FIELD_VD_START;
20047 self
20048 }
20049 pub const fn vs3(self) -> u32 {
20050 (self.value >> INSN_FIELD_VS3_START) & ((1 << INSN_FIELD_VS3_SIZE) - 1)
20051 }
20052
20053 pub const fn set_vs3(mut self, value: u32) -> Self {
20054 let mask = INSN_FIELD_VS3;
20055
20056 self.value &= !mask;
20057 self.value |= (value & ((1 << INSN_FIELD_VS3_SIZE) - 1)) << INSN_FIELD_VS3_START;
20058 self
20059 }
20060 pub const fn vs1(self) -> u32 {
20061 (self.value >> INSN_FIELD_VS1_START) & ((1 << INSN_FIELD_VS1_SIZE) - 1)
20062 }
20063
20064 pub const fn set_vs1(mut self, value: u32) -> Self {
20065 let mask = INSN_FIELD_VS1;
20066
20067 self.value &= !mask;
20068 self.value |= (value & ((1 << INSN_FIELD_VS1_SIZE) - 1)) << INSN_FIELD_VS1_START;
20069 self
20070 }
20071 pub const fn vs2(self) -> u32 {
20072 (self.value >> INSN_FIELD_VS2_START) & ((1 << INSN_FIELD_VS2_SIZE) - 1)
20073 }
20074
20075 pub const fn set_vs2(mut self, value: u32) -> Self {
20076 let mask = INSN_FIELD_VS2;
20077
20078 self.value &= !mask;
20079 self.value |= (value & ((1 << INSN_FIELD_VS2_SIZE) - 1)) << INSN_FIELD_VS2_START;
20080 self
20081 }
20082 pub const fn vm(self) -> u32 {
20083 (self.value >> INSN_FIELD_VM_START) & ((1 << INSN_FIELD_VM_SIZE) - 1)
20084 }
20085
20086 pub const fn set_vm(mut self, value: u32) -> Self {
20087 let mask = INSN_FIELD_VM;
20088
20089 self.value &= !mask;
20090 self.value |= (value & ((1 << INSN_FIELD_VM_SIZE) - 1)) << INSN_FIELD_VM_START;
20091 self
20092 }
20093 pub const fn wd(self) -> u32 {
20094 (self.value >> INSN_FIELD_WD_START) & ((1 << INSN_FIELD_WD_SIZE) - 1)
20095 }
20096
20097 pub const fn set_wd(mut self, value: u32) -> Self {
20098 let mask = INSN_FIELD_WD;
20099
20100 self.value &= !mask;
20101 self.value |= (value & ((1 << INSN_FIELD_WD_SIZE) - 1)) << INSN_FIELD_WD_START;
20102 self
20103 }
20104 pub const fn amoop(self) -> u32 {
20105 (self.value >> INSN_FIELD_AMOOP_START) & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)
20106 }
20107
20108 pub const fn set_amoop(mut self, value: u32) -> Self {
20109 let mask = INSN_FIELD_AMOOP;
20110
20111 self.value &= !mask;
20112 self.value |= (value & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)) << INSN_FIELD_AMOOP_START;
20113 self
20114 }
20115 pub const fn nf(self) -> u32 {
20116 (self.value >> INSN_FIELD_NF_START) & ((1 << INSN_FIELD_NF_SIZE) - 1)
20117 }
20118
20119 pub const fn set_nf(mut self, value: u32) -> Self {
20120 let mask = INSN_FIELD_NF;
20121
20122 self.value &= !mask;
20123 self.value |= (value & ((1 << INSN_FIELD_NF_SIZE) - 1)) << INSN_FIELD_NF_START;
20124 self
20125 }
20126 pub const fn simm5_raw(self) -> u32 {
20127 (self.value >> INSN_FIELD_SIMM5_START) & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)
20128 }
20129
20130 pub const fn set_simm5_raw(mut self, value: u32) -> Self {
20131 let mask = INSN_FIELD_SIMM5;
20132
20133 self.value &= !mask;
20134 self.value |= (value & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)) << INSN_FIELD_SIMM5_START;
20135 self
20136 }
20137 pub const fn zimm5_raw(self) -> u32 {
20138 (self.value >> INSN_FIELD_ZIMM5_START) & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)
20139 }
20140
20141 pub const fn set_zimm5_raw(mut self, value: u32) -> Self {
20142 let mask = INSN_FIELD_ZIMM5;
20143
20144 self.value &= !mask;
20145 self.value |= (value & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)) << INSN_FIELD_ZIMM5_START;
20146 self
20147 }
20148 pub const fn zimm10_raw(self) -> u32 {
20149 (self.value >> INSN_FIELD_ZIMM10_START) & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)
20150 }
20151
20152 pub const fn set_zimm10_raw(mut self, value: u32) -> Self {
20153 let mask = INSN_FIELD_ZIMM10;
20154
20155 self.value &= !mask;
20156 self.value |= (value & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)) << INSN_FIELD_ZIMM10_START;
20157 self
20158 }
20159 pub const fn zimm11_raw(self) -> u32 {
20160 (self.value >> INSN_FIELD_ZIMM11_START) & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)
20161 }
20162
20163 pub const fn set_zimm11_raw(mut self, value: u32) -> Self {
20164 let mask = INSN_FIELD_ZIMM11;
20165
20166 self.value &= !mask;
20167 self.value |= (value & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)) << INSN_FIELD_ZIMM11_START;
20168 self
20169 }
20170 pub const fn zimm6hi_raw(self) -> u32 {
20171 (self.value >> INSN_FIELD_ZIMM6HI_START) & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)
20172 }
20173
20174 pub const fn set_zimm6hi_raw(mut self, value: u32) -> Self {
20175 let mask = INSN_FIELD_ZIMM6HI;
20176
20177 self.value &= !mask;
20178 self.value |= (value & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)) << INSN_FIELD_ZIMM6HI_START;
20179 self
20180 }
20181 pub const fn zimm6lo_raw(self) -> u32 {
20182 (self.value >> INSN_FIELD_ZIMM6LO_START) & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)
20183 }
20184
20185 pub const fn set_zimm6lo_raw(mut self, value: u32) -> Self {
20186 let mask = INSN_FIELD_ZIMM6LO;
20187
20188 self.value &= !mask;
20189 self.value |= (value & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)) << INSN_FIELD_ZIMM6LO_START;
20190 self
20191 }
20192 pub const fn c_nzuimm10_raw(self) -> u32 {
20193 (self.value >> INSN_FIELD_C_NZUIMM10_START) & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)
20194 }
20195
20196 pub const fn set_c_nzuimm10_raw(mut self, value: u32) -> Self {
20197 let mask = INSN_FIELD_C_NZUIMM10;
20198
20199 self.value &= !mask;
20200 self.value |=
20201 (value & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)) << INSN_FIELD_C_NZUIMM10_START;
20202 self
20203 }
20204 pub const fn c_uimm7lo_raw(self) -> u32 {
20205 (self.value >> INSN_FIELD_C_UIMM7LO_START) & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)
20206 }
20207
20208 pub const fn set_c_uimm7lo_raw(mut self, value: u32) -> Self {
20209 let mask = INSN_FIELD_C_UIMM7LO;
20210
20211 self.value &= !mask;
20212 self.value |=
20213 (value & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)) << INSN_FIELD_C_UIMM7LO_START;
20214 self
20215 }
20216 pub const fn c_uimm7hi_raw(self) -> u32 {
20217 (self.value >> INSN_FIELD_C_UIMM7HI_START) & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)
20218 }
20219
20220 pub const fn set_c_uimm7hi_raw(mut self, value: u32) -> Self {
20221 let mask = INSN_FIELD_C_UIMM7HI;
20222
20223 self.value &= !mask;
20224 self.value |=
20225 (value & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)) << INSN_FIELD_C_UIMM7HI_START;
20226 self
20227 }
20228 pub const fn c_uimm8lo_raw(self) -> u32 {
20229 (self.value >> INSN_FIELD_C_UIMM8LO_START) & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)
20230 }
20231
20232 pub const fn set_c_uimm8lo_raw(mut self, value: u32) -> Self {
20233 let mask = INSN_FIELD_C_UIMM8LO;
20234
20235 self.value &= !mask;
20236 self.value |=
20237 (value & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)) << INSN_FIELD_C_UIMM8LO_START;
20238 self
20239 }
20240 pub const fn c_uimm8hi_raw(self) -> u32 {
20241 (self.value >> INSN_FIELD_C_UIMM8HI_START) & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)
20242 }
20243
20244 pub const fn set_c_uimm8hi_raw(mut self, value: u32) -> Self {
20245 let mask = INSN_FIELD_C_UIMM8HI;
20246
20247 self.value &= !mask;
20248 self.value |=
20249 (value & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)) << INSN_FIELD_C_UIMM8HI_START;
20250 self
20251 }
20252 pub const fn c_uimm9lo_raw(self) -> u32 {
20253 (self.value >> INSN_FIELD_C_UIMM9LO_START) & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)
20254 }
20255
20256 pub const fn set_c_uimm9lo_raw(mut self, value: u32) -> Self {
20257 let mask = INSN_FIELD_C_UIMM9LO;
20258
20259 self.value &= !mask;
20260 self.value |=
20261 (value & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)) << INSN_FIELD_C_UIMM9LO_START;
20262 self
20263 }
20264 pub const fn c_uimm9hi_raw(self) -> u32 {
20265 (self.value >> INSN_FIELD_C_UIMM9HI_START) & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)
20266 }
20267
20268 pub const fn set_c_uimm9hi_raw(mut self, value: u32) -> Self {
20269 let mask = INSN_FIELD_C_UIMM9HI;
20270
20271 self.value &= !mask;
20272 self.value |=
20273 (value & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)) << INSN_FIELD_C_UIMM9HI_START;
20274 self
20275 }
20276 pub const fn c_nzimm6lo_raw(self) -> u32 {
20277 (self.value >> INSN_FIELD_C_NZIMM6LO_START) & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)
20278 }
20279
20280 pub const fn set_c_nzimm6lo_raw(mut self, value: u32) -> Self {
20281 let mask = INSN_FIELD_C_NZIMM6LO;
20282
20283 self.value &= !mask;
20284 self.value |=
20285 (value & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM6LO_START;
20286 self
20287 }
20288 pub const fn c_nzimm6hi_raw(self) -> u32 {
20289 (self.value >> INSN_FIELD_C_NZIMM6HI_START) & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)
20290 }
20291
20292 pub const fn set_c_nzimm6hi_raw(mut self, value: u32) -> Self {
20293 let mask = INSN_FIELD_C_NZIMM6HI;
20294
20295 self.value &= !mask;
20296 self.value |=
20297 (value & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM6HI_START;
20298 self
20299 }
20300 pub const fn c_imm6lo_raw(self) -> u32 {
20301 (self.value >> INSN_FIELD_C_IMM6LO_START) & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)
20302 }
20303
20304 pub const fn set_c_imm6lo_raw(mut self, value: u32) -> Self {
20305 let mask = INSN_FIELD_C_IMM6LO;
20306
20307 self.value &= !mask;
20308 self.value |= (value & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)) << INSN_FIELD_C_IMM6LO_START;
20309 self
20310 }
20311 pub const fn c_imm6hi_raw(self) -> u32 {
20312 (self.value >> INSN_FIELD_C_IMM6HI_START) & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)
20313 }
20314
20315 pub const fn set_c_imm6hi_raw(mut self, value: u32) -> Self {
20316 let mask = INSN_FIELD_C_IMM6HI;
20317
20318 self.value &= !mask;
20319 self.value |= (value & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)) << INSN_FIELD_C_IMM6HI_START;
20320 self
20321 }
20322 pub const fn c_nzimm10hi_raw(self) -> u32 {
20323 (self.value >> INSN_FIELD_C_NZIMM10HI_START) & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)
20324 }
20325
20326 pub const fn set_c_nzimm10hi_raw(mut self, value: u32) -> Self {
20327 let mask = INSN_FIELD_C_NZIMM10HI;
20328
20329 self.value &= !mask;
20330 self.value |=
20331 (value & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM10HI_START;
20332 self
20333 }
20334 pub const fn c_nzimm10lo_raw(self) -> u32 {
20335 (self.value >> INSN_FIELD_C_NZIMM10LO_START) & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)
20336 }
20337
20338 pub const fn set_c_nzimm10lo_raw(mut self, value: u32) -> Self {
20339 let mask = INSN_FIELD_C_NZIMM10LO;
20340
20341 self.value &= !mask;
20342 self.value |=
20343 (value & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM10LO_START;
20344 self
20345 }
20346 pub const fn c_nzimm18hi_raw(self) -> u32 {
20347 (self.value >> INSN_FIELD_C_NZIMM18HI_START) & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)
20348 }
20349
20350 pub const fn set_c_nzimm18hi_raw(mut self, value: u32) -> Self {
20351 let mask = INSN_FIELD_C_NZIMM18HI;
20352
20353 self.value &= !mask;
20354 self.value |=
20355 (value & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM18HI_START;
20356 self
20357 }
20358 pub const fn c_nzimm18lo_raw(self) -> u32 {
20359 (self.value >> INSN_FIELD_C_NZIMM18LO_START) & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)
20360 }
20361
20362 pub const fn set_c_nzimm18lo_raw(mut self, value: u32) -> Self {
20363 let mask = INSN_FIELD_C_NZIMM18LO;
20364
20365 self.value &= !mask;
20366 self.value |=
20367 (value & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM18LO_START;
20368 self
20369 }
20370 pub const fn c_imm12_raw(self) -> u32 {
20371 (self.value >> INSN_FIELD_C_IMM12_START) & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)
20372 }
20373
20374 pub const fn set_c_imm12_raw(mut self, value: u32) -> Self {
20375 let mask = INSN_FIELD_C_IMM12;
20376
20377 self.value &= !mask;
20378 self.value |= (value & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)) << INSN_FIELD_C_IMM12_START;
20379 self
20380 }
20381 pub const fn c_bimm9lo_raw(self) -> u32 {
20382 (self.value >> INSN_FIELD_C_BIMM9LO_START) & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)
20383 }
20384
20385 pub const fn set_c_bimm9lo_raw(mut self, value: u32) -> Self {
20386 let mask = INSN_FIELD_C_BIMM9LO;
20387
20388 self.value &= !mask;
20389 self.value |=
20390 (value & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)) << INSN_FIELD_C_BIMM9LO_START;
20391 self
20392 }
20393 pub const fn c_bimm9hi_raw(self) -> u32 {
20394 (self.value >> INSN_FIELD_C_BIMM9HI_START) & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)
20395 }
20396
20397 pub const fn set_c_bimm9hi_raw(mut self, value: u32) -> Self {
20398 let mask = INSN_FIELD_C_BIMM9HI;
20399
20400 self.value &= !mask;
20401 self.value |=
20402 (value & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)) << INSN_FIELD_C_BIMM9HI_START;
20403 self
20404 }
20405 pub const fn c_nzuimm5_raw(self) -> u32 {
20406 (self.value >> INSN_FIELD_C_NZUIMM5_START) & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)
20407 }
20408
20409 pub const fn set_c_nzuimm5_raw(mut self, value: u32) -> Self {
20410 let mask = INSN_FIELD_C_NZUIMM5;
20411
20412 self.value &= !mask;
20413 self.value |=
20414 (value & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)) << INSN_FIELD_C_NZUIMM5_START;
20415 self
20416 }
20417 pub const fn c_nzuimm6lo_raw(self) -> u32 {
20418 (self.value >> INSN_FIELD_C_NZUIMM6LO_START) & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)
20419 }
20420
20421 pub const fn set_c_nzuimm6lo_raw(mut self, value: u32) -> Self {
20422 let mask = INSN_FIELD_C_NZUIMM6LO;
20423
20424 self.value &= !mask;
20425 self.value |=
20426 (value & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6LO_START;
20427 self
20428 }
20429 pub const fn c_nzuimm6hi_raw(self) -> u32 {
20430 (self.value >> INSN_FIELD_C_NZUIMM6HI_START) & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)
20431 }
20432
20433 pub const fn set_c_nzuimm6hi_raw(mut self, value: u32) -> Self {
20434 let mask = INSN_FIELD_C_NZUIMM6HI;
20435
20436 self.value &= !mask;
20437 self.value |=
20438 (value & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6HI_START;
20439 self
20440 }
20441 pub const fn c_uimm8splo_raw(self) -> u32 {
20442 (self.value >> INSN_FIELD_C_UIMM8SPLO_START) & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)
20443 }
20444
20445 pub const fn set_c_uimm8splo_raw(mut self, value: u32) -> Self {
20446 let mask = INSN_FIELD_C_UIMM8SPLO;
20447
20448 self.value &= !mask;
20449 self.value |=
20450 (value & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPLO_START;
20451 self
20452 }
20453 pub const fn c_uimm8sphi_raw(self) -> u32 {
20454 (self.value >> INSN_FIELD_C_UIMM8SPHI_START) & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)
20455 }
20456
20457 pub const fn set_c_uimm8sphi_raw(mut self, value: u32) -> Self {
20458 let mask = INSN_FIELD_C_UIMM8SPHI;
20459
20460 self.value &= !mask;
20461 self.value |=
20462 (value & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPHI_START;
20463 self
20464 }
20465 pub const fn c_uimm8sp_s_raw(self) -> u32 {
20466 (self.value >> INSN_FIELD_C_UIMM8SP_S_START) & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)
20467 }
20468
20469 pub const fn set_c_uimm8sp_s_raw(mut self, value: u32) -> Self {
20470 let mask = INSN_FIELD_C_UIMM8SP_S;
20471
20472 self.value &= !mask;
20473 self.value |=
20474 (value & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM8SP_S_START;
20475 self
20476 }
20477 pub const fn c_uimm10splo_raw(self) -> u32 {
20478 (self.value >> INSN_FIELD_C_UIMM10SPLO_START) & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)
20479 }
20480
20481 pub const fn set_c_uimm10splo_raw(mut self, value: u32) -> Self {
20482 let mask = INSN_FIELD_C_UIMM10SPLO;
20483
20484 self.value &= !mask;
20485 self.value |=
20486 (value & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPLO_START;
20487 self
20488 }
20489 pub const fn c_uimm10sphi_raw(self) -> u32 {
20490 (self.value >> INSN_FIELD_C_UIMM10SPHI_START) & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)
20491 }
20492
20493 pub const fn set_c_uimm10sphi_raw(mut self, value: u32) -> Self {
20494 let mask = INSN_FIELD_C_UIMM10SPHI;
20495
20496 self.value &= !mask;
20497 self.value |=
20498 (value & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPHI_START;
20499 self
20500 }
20501 pub const fn c_uimm9splo_raw(self) -> u32 {
20502 (self.value >> INSN_FIELD_C_UIMM9SPLO_START) & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)
20503 }
20504
20505 pub const fn set_c_uimm9splo_raw(mut self, value: u32) -> Self {
20506 let mask = INSN_FIELD_C_UIMM9SPLO;
20507
20508 self.value &= !mask;
20509 self.value |=
20510 (value & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPLO_START;
20511 self
20512 }
20513 pub const fn c_uimm9sphi_raw(self) -> u32 {
20514 (self.value >> INSN_FIELD_C_UIMM9SPHI_START) & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)
20515 }
20516
20517 pub const fn set_c_uimm9sphi_raw(mut self, value: u32) -> Self {
20518 let mask = INSN_FIELD_C_UIMM9SPHI;
20519
20520 self.value &= !mask;
20521 self.value |=
20522 (value & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPHI_START;
20523 self
20524 }
20525 pub const fn c_uimm10sp_s_raw(self) -> u32 {
20526 (self.value >> INSN_FIELD_C_UIMM10SP_S_START) & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)
20527 }
20528
20529 pub const fn set_c_uimm10sp_s_raw(mut self, value: u32) -> Self {
20530 let mask = INSN_FIELD_C_UIMM10SP_S;
20531
20532 self.value &= !mask;
20533 self.value |=
20534 (value & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM10SP_S_START;
20535 self
20536 }
20537 pub const fn c_uimm9sp_s_raw(self) -> u32 {
20538 (self.value >> INSN_FIELD_C_UIMM9SP_S_START) & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)
20539 }
20540
20541 pub const fn set_c_uimm9sp_s_raw(mut self, value: u32) -> Self {
20542 let mask = INSN_FIELD_C_UIMM9SP_S;
20543
20544 self.value &= !mask;
20545 self.value |=
20546 (value & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM9SP_S_START;
20547 self
20548 }
20549 pub const fn c_uimm2_raw(self) -> u32 {
20550 (self.value >> INSN_FIELD_C_UIMM2_START) & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)
20551 }
20552
20553 pub const fn set_c_uimm2_raw(mut self, value: u32) -> Self {
20554 let mask = INSN_FIELD_C_UIMM2;
20555
20556 self.value &= !mask;
20557 self.value |= (value & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)) << INSN_FIELD_C_UIMM2_START;
20558 self
20559 }
20560 pub const fn c_uimm1_raw(self) -> u32 {
20561 (self.value >> INSN_FIELD_C_UIMM1_START) & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)
20562 }
20563
20564 pub const fn set_c_uimm1_raw(mut self, value: u32) -> Self {
20565 let mask = INSN_FIELD_C_UIMM1;
20566
20567 self.value &= !mask;
20568 self.value |= (value & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)) << INSN_FIELD_C_UIMM1_START;
20569 self
20570 }
20571 pub const fn c_rlist(self) -> u32 {
20572 (self.value >> INSN_FIELD_C_RLIST_START) & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)
20573 }
20574
20575 pub const fn set_c_rlist(mut self, value: u32) -> Self {
20576 let mask = INSN_FIELD_C_RLIST;
20577
20578 self.value &= !mask;
20579 self.value |= (value & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)) << INSN_FIELD_C_RLIST_START;
20580 self
20581 }
20582 pub const fn c_spimm_raw(self) -> u32 {
20583 (self.value >> INSN_FIELD_C_SPIMM_START) & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)
20584 }
20585
20586 pub const fn set_c_spimm_raw(mut self, value: u32) -> Self {
20587 let mask = INSN_FIELD_C_SPIMM;
20588
20589 self.value &= !mask;
20590 self.value |= (value & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)) << INSN_FIELD_C_SPIMM_START;
20591 self
20592 }
20593 pub const fn c_index(self) -> u32 {
20594 (self.value >> INSN_FIELD_C_INDEX_START) & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)
20595 }
20596
20597 pub const fn set_c_index(mut self, value: u32) -> Self {
20598 let mask = INSN_FIELD_C_INDEX;
20599
20600 self.value &= !mask;
20601 self.value |= (value & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)) << INSN_FIELD_C_INDEX_START;
20602 self
20603 }
20604 pub const fn rs1_p(self) -> u32 {
20605 (self.value >> INSN_FIELD_RS1_P_START) & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)
20606 }
20607
20608 pub const fn set_rs1_p(mut self, value: u32) -> Self {
20609 let mask = INSN_FIELD_RS1_P;
20610
20611 self.value &= !mask;
20612 self.value |= (value & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)) << INSN_FIELD_RS1_P_START;
20613 self
20614 }
20615 pub const fn rs2_p(self) -> u32 {
20616 (self.value >> INSN_FIELD_RS2_P_START) & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)
20617 }
20618
20619 pub const fn set_rs2_p(mut self, value: u32) -> Self {
20620 let mask = INSN_FIELD_RS2_P;
20621
20622 self.value &= !mask;
20623 self.value |= (value & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)) << INSN_FIELD_RS2_P_START;
20624 self
20625 }
20626 pub const fn rd_p(self) -> u32 {
20627 (self.value >> INSN_FIELD_RD_P_START) & ((1 << INSN_FIELD_RD_P_SIZE) - 1)
20628 }
20629
20630 pub const fn set_rd_p(mut self, value: u32) -> Self {
20631 let mask = INSN_FIELD_RD_P;
20632
20633 self.value &= !mask;
20634 self.value |= (value & ((1 << INSN_FIELD_RD_P_SIZE) - 1)) << INSN_FIELD_RD_P_START;
20635 self
20636 }
20637 pub const fn rd_rs1_n0(self) -> u32 {
20638 (self.value >> INSN_FIELD_RD_RS1_N0_START) & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)
20639 }
20640
20641 pub const fn set_rd_rs1_n0(mut self, value: u32) -> Self {
20642 let mask = INSN_FIELD_RD_RS1_N0;
20643
20644 self.value &= !mask;
20645 self.value |=
20646 (value & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RD_RS1_N0_START;
20647 self
20648 }
20649 pub const fn rd_rs1_p(self) -> u32 {
20650 (self.value >> INSN_FIELD_RD_RS1_P_START) & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)
20651 }
20652
20653 pub const fn set_rd_rs1_p(mut self, value: u32) -> Self {
20654 let mask = INSN_FIELD_RD_RS1_P;
20655
20656 self.value &= !mask;
20657 self.value |= (value & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)) << INSN_FIELD_RD_RS1_P_START;
20658 self
20659 }
20660 pub const fn rd_rs1(self) -> u32 {
20661 (self.value >> INSN_FIELD_RD_RS1_START) & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)
20662 }
20663
20664 pub const fn set_rd_rs1(mut self, value: u32) -> Self {
20665 let mask = INSN_FIELD_RD_RS1;
20666
20667 self.value &= !mask;
20668 self.value |= (value & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)) << INSN_FIELD_RD_RS1_START;
20669 self
20670 }
20671 pub const fn rd_n2(self) -> u32 {
20672 (self.value >> INSN_FIELD_RD_N2_START) & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)
20673 }
20674
20675 pub const fn set_rd_n2(mut self, value: u32) -> Self {
20676 let mask = INSN_FIELD_RD_N2;
20677
20678 self.value &= !mask;
20679 self.value |= (value & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)) << INSN_FIELD_RD_N2_START;
20680 self
20681 }
20682 pub const fn rd_n0(self) -> u32 {
20683 (self.value >> INSN_FIELD_RD_N0_START) & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)
20684 }
20685
20686 pub const fn set_rd_n0(mut self, value: u32) -> Self {
20687 let mask = INSN_FIELD_RD_N0;
20688
20689 self.value &= !mask;
20690 self.value |= (value & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)) << INSN_FIELD_RD_N0_START;
20691 self
20692 }
20693 pub const fn rs1_n0(self) -> u32 {
20694 (self.value >> INSN_FIELD_RS1_N0_START) & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)
20695 }
20696
20697 pub const fn set_rs1_n0(mut self, value: u32) -> Self {
20698 let mask = INSN_FIELD_RS1_N0;
20699
20700 self.value &= !mask;
20701 self.value |= (value & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RS1_N0_START;
20702 self
20703 }
20704 pub const fn c_rs2_n0(self) -> u32 {
20705 (self.value >> INSN_FIELD_C_RS2_N0_START) & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)
20706 }
20707
20708 pub const fn set_c_rs2_n0(mut self, value: u32) -> Self {
20709 let mask = INSN_FIELD_C_RS2_N0;
20710
20711 self.value &= !mask;
20712 self.value |= (value & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)) << INSN_FIELD_C_RS2_N0_START;
20713 self
20714 }
20715 pub const fn c_rs1_n0(self) -> u32 {
20716 (self.value >> INSN_FIELD_C_RS1_N0_START) & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)
20717 }
20718
20719 pub const fn set_c_rs1_n0(mut self, value: u32) -> Self {
20720 let mask = INSN_FIELD_C_RS1_N0;
20721
20722 self.value &= !mask;
20723 self.value |= (value & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)) << INSN_FIELD_C_RS1_N0_START;
20724 self
20725 }
20726 pub const fn c_rs2(self) -> u32 {
20727 (self.value >> INSN_FIELD_C_RS2_START) & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)
20728 }
20729
20730 pub const fn set_c_rs2(mut self, value: u32) -> Self {
20731 let mask = INSN_FIELD_C_RS2;
20732
20733 self.value &= !mask;
20734 self.value |= (value & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)) << INSN_FIELD_C_RS2_START;
20735 self
20736 }
20737 pub const fn c_sreg1(self) -> u32 {
20738 (self.value >> INSN_FIELD_C_SREG1_START) & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)
20739 }
20740
20741 pub const fn set_c_sreg1(mut self, value: u32) -> Self {
20742 let mask = INSN_FIELD_C_SREG1;
20743
20744 self.value &= !mask;
20745 self.value |= (value & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)) << INSN_FIELD_C_SREG1_START;
20746 self
20747 }
20748 pub const fn c_sreg2(self) -> u32 {
20749 (self.value >> INSN_FIELD_C_SREG2_START) & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)
20750 }
20751
20752 pub const fn set_c_sreg2(mut self, value: u32) -> Self {
20753 let mask = INSN_FIELD_C_SREG2;
20754
20755 self.value &= !mask;
20756 self.value |= (value & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)) << INSN_FIELD_C_SREG2_START;
20757 self
20758 }
20759 pub const fn mop_r_t_30(self) -> u32 {
20760 (self.value >> INSN_FIELD_MOP_R_T_30_START) & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)
20761 }
20762
20763 pub const fn set_mop_r_t_30(mut self, value: u32) -> Self {
20764 let mask = INSN_FIELD_MOP_R_T_30;
20765
20766 self.value &= !mask;
20767 self.value |=
20768 (value & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)) << INSN_FIELD_MOP_R_T_30_START;
20769 self
20770 }
20771 pub const fn mop_r_t_27_26(self) -> u32 {
20772 (self.value >> INSN_FIELD_MOP_R_T_27_26_START) & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)
20773 }
20774
20775 pub const fn set_mop_r_t_27_26(mut self, value: u32) -> Self {
20776 let mask = INSN_FIELD_MOP_R_T_27_26;
20777
20778 self.value &= !mask;
20779 self.value |=
20780 (value & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)) << INSN_FIELD_MOP_R_T_27_26_START;
20781 self
20782 }
20783 pub const fn mop_r_t_21_20(self) -> u32 {
20784 (self.value >> INSN_FIELD_MOP_R_T_21_20_START) & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)
20785 }
20786
20787 pub const fn set_mop_r_t_21_20(mut self, value: u32) -> Self {
20788 let mask = INSN_FIELD_MOP_R_T_21_20;
20789
20790 self.value &= !mask;
20791 self.value |=
20792 (value & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)) << INSN_FIELD_MOP_R_T_21_20_START;
20793 self
20794 }
20795 pub const fn mop_rr_t_30(self) -> u32 {
20796 (self.value >> INSN_FIELD_MOP_RR_T_30_START) & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)
20797 }
20798
20799 pub const fn set_mop_rr_t_30(mut self, value: u32) -> Self {
20800 let mask = INSN_FIELD_MOP_RR_T_30;
20801
20802 self.value &= !mask;
20803 self.value |=
20804 (value & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)) << INSN_FIELD_MOP_RR_T_30_START;
20805 self
20806 }
20807 pub const fn mop_rr_t_27_26(self) -> u32 {
20808 (self.value >> INSN_FIELD_MOP_RR_T_27_26_START)
20809 & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1)
20810 }
20811
20812 pub const fn set_mop_rr_t_27_26(mut self, value: u32) -> Self {
20813 let mask = INSN_FIELD_MOP_RR_T_27_26;
20814
20815 self.value &= !mask;
20816 self.value |= (value & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1))
20817 << INSN_FIELD_MOP_RR_T_27_26_START;
20818 self
20819 }
20820 pub const fn c_mop_t(self) -> u32 {
20821 (self.value >> INSN_FIELD_C_MOP_T_START) & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)
20822 }
20823
20824 pub const fn set_c_mop_t(mut self, value: u32) -> Self {
20825 let mask = INSN_FIELD_C_MOP_T;
20826
20827 self.value &= !mask;
20828 self.value |= (value & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)) << INSN_FIELD_C_MOP_T_START;
20829 self
20830 }
20831 pub const fn rs2_eq_rs1(self) -> u32 {
20832 (self.value >> INSN_FIELD_RS2_EQ_RS1_START) & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)
20833 }
20834
20835 pub const fn set_rs2_eq_rs1(mut self, value: u32) -> Self {
20836 let mask = INSN_FIELD_RS2_EQ_RS1;
20837
20838 self.value &= !mask;
20839 self.value |=
20840 (value & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)) << INSN_FIELD_RS2_EQ_RS1_START;
20841 self
20842 }
20843
20844 pub const fn imm20(self) -> i32 {
20846 decode_immediate(IMM20, self.value as _) as _
20847 }
20848
20849 pub const fn set_imm20(mut self, imm20: i32) -> Self {
20850 self.value |= encode_immediate(IMM20, imm20 as _);
20851 self
20852 }
20853
20854 pub const fn jimm20(self) -> i32 {
20856 decode_immediate(JIMM20, self.value as _) as _
20857 }
20858
20859 pub const fn set_jimm20(mut self, jimm20: i32) -> Self {
20860 self.value |= encode_immediate(JIMM20, jimm20 as _);
20861 self
20862 }
20863
20864 pub const fn imm12(self) -> i32 {
20866 decode_immediate(IMM12, self.value as _) as _
20867 }
20868
20869 pub const fn set_imm12(mut self, imm12: i32) -> Self {
20870 self.value |= encode_immediate(IMM12, imm12 as _);
20871 self
20872 }
20873
20874 pub const fn imm12lohi(self) -> i32 {
20876 decode_immediate(IMM12LOHI, self.value as _) as _
20877 }
20878
20879 pub const fn set_imm12lohi(mut self, imm12lohi: i32) -> Self {
20880 self.value |= encode_immediate(IMM12LOHI, imm12lohi as _);
20881 self
20882 }
20883
20884 pub const fn bimm12lohi(self) -> i32 {
20886 decode_immediate(BIMM12LOHI, self.value as _) as _
20887 }
20888
20889 pub const fn set_bimm12lohi(mut self, bimm12lohi: i32) -> Self {
20890 self.value |= encode_immediate(BIMM12LOHI, bimm12lohi as _);
20891 self
20892 }
20893
20894 pub const fn imm2(self) -> i32 {
20896 decode_immediate(IMM2, self.value as _) as _
20897 }
20898
20899 pub const fn set_imm2(mut self, imm2: i32) -> Self {
20900 self.value |= encode_immediate(IMM2, imm2 as _);
20901 self
20902 }
20903
20904 pub const fn imm3(self) -> i32 {
20906 decode_immediate(IMM3, self.value as _) as _
20907 }
20908
20909 pub const fn set_imm3(mut self, imm3: i32) -> Self {
20910 self.value |= encode_immediate(IMM3, imm3 as _);
20911 self
20912 }
20913
20914 pub const fn imm4(self) -> i32 {
20916 decode_immediate(IMM4, self.value as _) as _
20917 }
20918
20919 pub const fn set_imm4(mut self, imm4: i32) -> Self {
20920 self.value |= encode_immediate(IMM4, imm4 as _);
20921 self
20922 }
20923
20924 pub const fn imm5(self) -> i32 {
20926 decode_immediate(IMM5, self.value as _) as _
20927 }
20928
20929 pub const fn set_imm5(mut self, imm5: i32) -> Self {
20930 self.value |= encode_immediate(IMM5, imm5 as _);
20931 self
20932 }
20933
20934 pub const fn imm6(self) -> i32 {
20936 decode_immediate(IMM6, self.value as _) as _
20937 }
20938
20939 pub const fn set_imm6(mut self, imm6: i32) -> Self {
20940 self.value |= encode_immediate(IMM6, imm6 as _);
20941 self
20942 }
20943
20944 pub const fn zimm(self) -> i32 {
20946 decode_immediate(ZIMM, self.value as _) as _
20947 }
20948
20949 pub const fn set_zimm(mut self, zimm: i32) -> Self {
20950 self.value |= encode_immediate(ZIMM, zimm as _);
20951 self
20952 }
20953
20954 pub const fn simm5(self) -> i32 {
20956 decode_immediate(SIMM5, self.value as _) as _
20957 }
20958
20959 pub const fn set_simm5(mut self, simm5: i32) -> Self {
20960 self.value |= encode_immediate(SIMM5, simm5 as _);
20961 self
20962 }
20963
20964 pub const fn zimm5(self) -> i32 {
20966 decode_immediate(ZIMM5, self.value as _) as _
20967 }
20968
20969 pub const fn set_zimm5(mut self, zimm5: i32) -> Self {
20970 self.value |= encode_immediate(ZIMM5, zimm5 as _);
20971 self
20972 }
20973
20974 pub const fn zimm10(self) -> i32 {
20976 decode_immediate(ZIMM10, self.value as _) as _
20977 }
20978
20979 pub const fn set_zimm10(mut self, zimm10: i32) -> Self {
20980 self.value |= encode_immediate(ZIMM10, zimm10 as _);
20981 self
20982 }
20983
20984 pub const fn zimm11(self) -> i32 {
20986 decode_immediate(ZIMM11, self.value as _) as _
20987 }
20988
20989 pub const fn set_zimm11(mut self, zimm11: i32) -> Self {
20990 self.value |= encode_immediate(ZIMM11, zimm11 as _);
20991 self
20992 }
20993
20994 pub const fn zimm6lohi(self) -> i32 {
20996 decode_immediate(ZIMM6LOHI, self.value as _) as _
20997 }
20998
20999 pub const fn set_zimm6lohi(mut self, zimm6lohi: i32) -> Self {
21000 self.value |= encode_immediate(ZIMM6LOHI, zimm6lohi as _);
21001 self
21002 }
21003
21004 pub const fn c_nzuimm10(self) -> u32 {
21006 decode_immediate(C_NZUIMM10, self.value as _) as _
21007 }
21008
21009 pub const fn set_c_nzuimm10(mut self, c_nzuimm10: u32) -> Self {
21010 self.value |= encode_immediate(C_NZUIMM10, c_nzuimm10 as _);
21011 self
21012 }
21013
21014 pub const fn c_uimm7lohi(self) -> u32 {
21016 decode_immediate(C_UIMM7LOHI, self.value as _) as _
21017 }
21018
21019 pub const fn set_c_uimm7lohi(mut self, c_uimm7lohi: u32) -> Self {
21020 self.value |= encode_immediate(C_UIMM7LOHI, c_uimm7lohi as _);
21021 self
21022 }
21023
21024 pub const fn c_uimm8lohi(self) -> u32 {
21026 decode_immediate(C_UIMM8LOHI, self.value as _) as _
21027 }
21028
21029 pub const fn set_c_uimm8lohi(mut self, c_uimm8lohi: u32) -> Self {
21030 self.value |= encode_immediate(C_UIMM8LOHI, c_uimm8lohi as _);
21031 self
21032 }
21033
21034 pub const fn c_uimm9lohi(self) -> u32 {
21036 decode_immediate(C_UIMM9LOHI, self.value as _) as _
21037 }
21038
21039 pub const fn set_c_uimm9lohi(mut self, c_uimm9lohi: u32) -> Self {
21040 self.value |= encode_immediate(C_UIMM9LOHI, c_uimm9lohi as _);
21041 self
21042 }
21043
21044 pub const fn c_nzimm6lohi(self) -> i32 {
21046 decode_immediate(C_NZIMM6LOHI, self.value as _) as _
21047 }
21048
21049 pub const fn set_c_nzimm6lohi(mut self, c_nzimm6lohi: i32) -> Self {
21050 self.value |= encode_immediate(C_NZIMM6LOHI, c_nzimm6lohi as _);
21051 self
21052 }
21053
21054 pub const fn c_imm6lohi(self) -> i32 {
21056 decode_immediate(C_IMM6LOHI, self.value as _) as _
21057 }
21058
21059 pub const fn set_c_imm6lohi(mut self, c_imm6lohi: i32) -> Self {
21060 self.value |= encode_immediate(C_IMM6LOHI, c_imm6lohi as _);
21061 self
21062 }
21063
21064 pub const fn c_nzimm10lohi(self) -> i32 {
21066 decode_immediate(C_NZIMM10LOHI, self.value as _) as _
21067 }
21068
21069 pub const fn set_c_nzimm10lohi(mut self, c_nzimm10lohi: i32) -> Self {
21070 self.value |= encode_immediate(C_NZIMM10LOHI, c_nzimm10lohi as _);
21071 self
21072 }
21073
21074 pub const fn c_nzimm18lohi(self) -> i32 {
21076 decode_immediate(C_NZIMM18LOHI, self.value as _) as _
21077 }
21078
21079 pub const fn set_c_nzimm18lohi(mut self, c_nzimm18lohi: i32) -> Self {
21080 self.value |= encode_immediate(C_NZIMM18LOHI, c_nzimm18lohi as _);
21081 self
21082 }
21083
21084 pub const fn c_imm12(self) -> i32 {
21086 decode_immediate(C_IMM12, self.value as _) as _
21087 }
21088
21089 pub const fn set_c_imm12(mut self, c_imm12: i32) -> Self {
21090 self.value |= encode_immediate(C_IMM12, c_imm12 as _);
21091 self
21092 }
21093
21094 pub const fn c_bimm9lohi(self) -> i32 {
21096 decode_immediate(C_BIMM9LOHI, self.value as _) as _
21097 }
21098
21099 pub const fn set_c_bimm9lohi(mut self, c_bimm9lohi: i32) -> Self {
21100 self.value |= encode_immediate(C_BIMM9LOHI, c_bimm9lohi as _);
21101 self
21102 }
21103
21104 pub const fn c_nzuimm5(self) -> u32 {
21106 decode_immediate(C_NZUIMM5, self.value as _) as _
21107 }
21108
21109 pub const fn set_c_nzuimm5(mut self, c_nzuimm5: u32) -> Self {
21110 self.value |= encode_immediate(C_NZUIMM5, c_nzuimm5 as _);
21111 self
21112 }
21113
21114 pub const fn c_nzuimm6lohi(self) -> u32 {
21116 decode_immediate(C_NZUIMM6LOHI, self.value as _) as _
21117 }
21118
21119 pub const fn set_c_nzuimm6lohi(mut self, c_nzuimm6lohi: u32) -> Self {
21120 self.value |= encode_immediate(C_NZUIMM6LOHI, c_nzuimm6lohi as _);
21121 self
21122 }
21123
21124 pub const fn c_uimm8splohi(self) -> u32 {
21126 decode_immediate(C_UIMM8SPLOHI, self.value as _) as _
21127 }
21128
21129 pub const fn set_c_uimm8splohi(mut self, c_uimm8splohi: u32) -> Self {
21130 self.value |= encode_immediate(C_UIMM8SPLOHI, c_uimm8splohi as _);
21131 self
21132 }
21133
21134 pub const fn c_uimm8sp_s(self) -> u32 {
21136 decode_immediate(C_UIMM8SP_S, self.value as _) as _
21137 }
21138
21139 pub const fn set_c_uimm8sp_s(mut self, c_uimm8sp_s: u32) -> Self {
21140 self.value |= encode_immediate(C_UIMM8SP_S, c_uimm8sp_s as _);
21141 self
21142 }
21143
21144 pub const fn c_uimm10splohi(self) -> u32 {
21146 decode_immediate(C_UIMM10SPLOHI, self.value as _) as _
21147 }
21148
21149 pub const fn set_c_uimm10splohi(mut self, c_uimm10splohi: u32) -> Self {
21150 self.value |= encode_immediate(C_UIMM10SPLOHI, c_uimm10splohi as _);
21151 self
21152 }
21153
21154 pub const fn c_uimm9splohi(self) -> u32 {
21156 decode_immediate(C_UIMM9SPLOHI, self.value as _) as _
21157 }
21158
21159 pub const fn set_c_uimm9splohi(mut self, c_uimm9splohi: u32) -> Self {
21160 self.value |= encode_immediate(C_UIMM9SPLOHI, c_uimm9splohi as _);
21161 self
21162 }
21163
21164 pub const fn c_uimm10sp_s(self) -> u32 {
21166 decode_immediate(C_UIMM10SP_S, self.value as _) as _
21167 }
21168
21169 pub const fn set_c_uimm10sp_s(mut self, c_uimm10sp_s: u32) -> Self {
21170 self.value |= encode_immediate(C_UIMM10SP_S, c_uimm10sp_s as _);
21171 self
21172 }
21173
21174 pub const fn c_uimm9sp_s(self) -> u32 {
21176 decode_immediate(C_UIMM9SP_S, self.value as _) as _
21177 }
21178
21179 pub const fn set_c_uimm9sp_s(mut self, c_uimm9sp_s: u32) -> Self {
21180 self.value |= encode_immediate(C_UIMM9SP_S, c_uimm9sp_s as _);
21181 self
21182 }
21183
21184 pub const fn c_uimm2(self) -> u32 {
21186 decode_immediate(C_UIMM2, self.value as _) as _
21187 }
21188
21189 pub const fn set_c_uimm2(mut self, c_uimm2: u32) -> Self {
21190 self.value |= encode_immediate(C_UIMM2, c_uimm2 as _);
21191 self
21192 }
21193
21194 pub const fn c_uimm1(self) -> u32 {
21196 decode_immediate(C_UIMM1, self.value as _) as _
21197 }
21198
21199 pub const fn set_c_uimm1(mut self, c_uimm1: u32) -> Self {
21200 self.value |= encode_immediate(C_UIMM1, c_uimm1 as _);
21201 self
21202 }
21203
21204 pub const fn c_spimm(self) -> i32 {
21206 decode_immediate(C_SPIMM, self.value as _) as _
21207 }
21208
21209 pub const fn set_c_spimm(mut self, c_spimm: i32) -> Self {
21210 self.value |= encode_immediate(C_SPIMM, c_spimm as _);
21211 self
21212 }
21213}