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) as u32 & mask) << self.position_in_opcode.1) as u32
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 as u32 >> self.position_in_opcode.1) as u32 & 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)) as i32 == 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] = [
30880x33, 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] = [
41110xfe00707f, 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] = [
51340x33, 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] = [
61570xfe00707f, 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] = [
71800x33,
71810x800003b,
71820x13,
71830x1b,
71840x3b,
71850x2a000033,
71860x2e000033,
71870x22000033,
71880x26000033,
71890x3a000033,
71900x3e000033,
71910x32000033,
71920x36000033,
71930x30001013,
71940x31001013,
71950x7e000033,
71960x2f,
71970x302f,
71980x102f,
71990x202f,
72000x6000002f,
72010x6000302f,
72020x6000102f,
72030x6000202f,
72040x2800002f,
72050x2800302f,
72060x2800102f,
72070x2800402f,
72080x2800202f,
72090xa000002f,
72100xa000302f,
72110xa000102f,
72120xa000202f,
72130xe000002f,
72140xe000302f,
72150xe000102f,
72160xe000202f,
72170x8000002f,
72180x8000302f,
72190x8000102f,
72200x8000202f,
72210xc000002f,
72220xc000302f,
72230xc000102f,
72240xc000202f,
72250x4000002f,
72260x4000302f,
72270x4000102f,
72280x4000202f,
72290x800002f,
72300x800302f,
72310x800102f,
72320x800202f,
72330x2000002f,
72340x2000302f,
72350x2000102f,
72360x2000202f,
72370x7033,
72380x7013,
72390x40007033,
72400x17,
72410x48001033,
72420x48001013,
72430x48001013,
72440x63,
72450x63,
72460x48005033,
72470x48005013,
72480x48005013,
72490x5063,
72500x7063,
72510x5063,
72520x4063,
72530x6063,
72540x4063,
72550x68001033,
72560x68001013,
72570x68001013,
72580x5063,
72590x7063,
72600x5063,
72610x4063,
72620x6063,
72630x4063,
72640x1063,
72650x1063,
72660x68705013,
72670x28001033,
72680x28001013,
72690x28001013,
72700x9002,
72710x1,
72720x6101,
72730x0,
72740x2001,
72750x9c21,
72760x8c61,
72770x8801,
72780xc001,
72790xe001,
72800x9002,
72810x2000,
72820x2002,
72830x6000,
72840x6002,
72850xa000,
72860xa002,
72870xe000,
72880xe002,
72890xa001,
72900x2001,
72910x9002,
72920x8002,
72930x8000,
72940x6000,
72950x6002,
72960x8440,
72970x8400,
72980x4001,
72990x6001,
73000x4000,
73010x4002,
73020x6081,
73030x6581,
73040x6681,
73050x6781,
73060x6181,
73070x6281,
73080x6381,
73090x6481,
73100x6081,
73110x9c41,
73120x8002,
73130x1,
73140x9c75,
73150x9016,
73160x900a,
73170x900e,
73180x9012,
73190x8c41,
73200x8800,
73210xe000,
73220xe002,
73230x9c65,
73240x9c6d,
73250x2001,
73260x8c00,
73270x2,
73280x2,
73290x8401,
73300x8401,
73310x8001,
73320x8001,
73330x8c01,
73340x9c01,
73350xc000,
73360xc002,
73370x8c21,
73380x9c61,
73390x9c69,
73400x9c71,
73410x10200f,
73420x20200f,
73430x200f,
73440x40200f,
73450xa001033,
73460xa003033,
73470xa002033,
73480x60001013,
73490x6000101b,
73500xa002,
73510xac62,
73520xac22,
73530xba02,
73540xbe02,
73550xbc02,
73560xb802,
73570x60201013,
73580x6020101b,
73590x3073,
73600x7073,
73610x2073,
73620x3073,
73630x7073,
73640x2073,
73650x6073,
73660x1073,
73670x5073,
73680x2073,
73690x6073,
73700x1073,
73710x5073,
73720x60101013,
73730x6010101b,
73740xe005033,
73750xe007033,
73760x2004033,
73770x2005033,
73780x200503b,
73790x200403b,
73800x7b200073,
73810x100073,
73820x73,
73830x22002053,
73840x24002053,
73850x26002053,
73860x20002053,
73870x2000053,
73880x4000053,
73890x6000053,
73900x53,
73910xe2001053,
73920xe4001053,
73930xe6001053,
73940xe0001053,
73950x42200053,
73960xd2200053,
73970xd2300053,
73980x42300053,
73990x42000053,
74000xd2000053,
74010xd2100053,
74020x44100053,
74030xd4200053,
74040xd4300053,
74050x44300053,
74060x44000053,
74070xd4000053,
74080xd4100053,
74090xc2200053,
74100xc4200053,
74110xc6200053,
74120xc0200053,
74130xc2300053,
74140xc4300053,
74150xc6300053,
74160xc0300053,
74170x46100053,
74180x46200053,
74190xd6200053,
74200xd6300053,
74210x46000053,
74220xd6000053,
74230xd6100053,
74240x40100053,
74250x40200053,
74260xd0200053,
74270xd0300053,
74280x40300053,
74290xd0000053,
74300xd0100053,
74310xc2000053,
74320xc4000053,
74330xc6000053,
74340xc0000053,
74350xc2100053,
74360xc4100053,
74370xc6100053,
74380xc0100053,
74390xc2801053,
74400x1a000053,
74410x1c000053,
74420x1e000053,
74430x18000053,
74440xf,
74450x100f,
74460x8330000f,
74470xa2002053,
74480xa4002053,
74490xa6002053,
74500xa0002053,
74510x3007,
74520xa2000053,
74530xa4000053,
74540xa6000053,
74550xa0000053,
74560xa2004053,
74570xa4004053,
74580xa6004053,
74590xa0004053,
74600x1007,
74610xf2100053,
74620xf4100053,
74630xf6100053,
74640xf0100053,
74650x4007,
74660xa2001053,
74670xa4001053,
74680xa6001053,
74690xa0001053,
74700xa2005053,
74710xa4005053,
74720xa6005053,
74730xa0005053,
74740x2007,
74750x2000043,
74760x4000043,
74770x6000043,
74780x43,
74790x2a001053,
74800x2c001053,
74810x2e001053,
74820x28001053,
74830x2a003053,
74840x2c003053,
74850x2e003053,
74860x28003053,
74870x2a000053,
74880x2c000053,
74890x2e000053,
74900x28000053,
74910x2a002053,
74920x2c002053,
74930x2e002053,
74940x28002053,
74950x2000047,
74960x4000047,
74970x6000047,
74980x47,
74990x12000053,
75000x14000053,
75010x16000053,
75020x10000053,
75030x22000053,
75040xf2000053,
75050x24000053,
75060xf4000053,
75070x26000053,
75080x20000053,
75090xf0000053,
75100xf0000053,
75110xe2000053,
75120xe4000053,
75130xe0000053,
75140xe0000053,
75150xe2100053,
75160xe6100053,
75170xb2000053,
75180xb6000053,
75190x22001053,
75200x24001053,
75210x26001053,
75220x20001053,
75230x200004f,
75240x400004f,
75250x600004f,
75260x4f,
75270x200004b,
75280x400004b,
75290x600004b,
75300x4b,
75310x302073,
75320x102073,
75330x42400053,
75340x44400053,
75350x46400053,
75360x40400053,
75370x42500053,
75380x44500053,
75390x46500053,
75400x40500053,
75410x202073,
75420x301073,
75430x3027,
75440x101073,
75450x105073,
75460x22000053,
75470x24000053,
75480x26000053,
75490x20000053,
75500x22001053,
75510x24001053,
75520x26001053,
75530x20001053,
75540x22002053,
75550x24002053,
75560x26002053,
75570x20002053,
75580x1027,
75590x4027,
75600x5a000053,
75610x5c000053,
75620x5e000053,
75630x58000053,
75640x201073,
75650x205073,
75660xa000053,
75670xc000053,
75680xe000053,
75690x8000053,
75700x2027,
75710x62000073,
75720x22000073,
75730x66000073,
75740x26000073,
75750x60004073,
75760x60104073,
75770x6c004073,
75780x64004073,
75790x64104073,
75800x68004073,
75810x68104073,
75820x64304073,
75830x68304073,
75840x62004073,
75850x6e004073,
75860x66004073,
75870x6a004073,
75880x6f,
75890x6f,
75900xef,
75910x67,
75920xe7,
75930x67,
75940x3,
75950x4003,
75960x3003,
75970x1003,
75980x5003,
75990x1000302f,
76000x1000202f,
76010x37,
76020x2003,
76030x6003,
76040xa006033,
76050xa007033,
76060xa004033,
76070xa005033,
76080x81c04073,
76090x81d04073,
76100x89e04073,
76110x89f04073,
76120x8dc04073,
76130x8dd04073,
76140x8de04073,
76150x8df04073,
76160xc1c04073,
76170xc1d04073,
76180xc1e04073,
76190xc1f04073,
76200x81e04073,
76210xc5c04073,
76220xc5d04073,
76230xc5e04073,
76240xc5f04073,
76250xc9c04073,
76260xc9d04073,
76270xc9e04073,
76280xc9f04073,
76290xcdc04073,
76300xcdd04073,
76310x81f04073,
76320xcde04073,
76330xcdf04073,
76340x85c04073,
76350x85d04073,
76360x85e04073,
76370x85f04073,
76380x89c04073,
76390x89d04073,
76400x81c04073,
76410x82004073,
76420x86004073,
76430x8a004073,
76440x8e004073,
76450xc2004073,
76460xc6004073,
76470xca004073,
76480xce004073,
76490x82004073,
76500x30200073,
76510x2000033,
76520x2001033,
76530x2002033,
76540x2003033,
76550x200003b,
76560x13,
76570x40000033,
76580x13,
76590x500033,
76600x200033,
76610x300033,
76620x400033,
76630x6033,
76640x28705013,
76650x6013,
76660x40006033,
76670x8004033,
76680x8007033,
76690x800403b,
76700x100000f,
76710x6013,
76720x106013,
76730x306013,
76740xc0002073,
76750xc8002073,
76760xc0202073,
76770xc8202073,
76780xc0102073,
76790xc8102073,
76800x2006033,
76810x2007033,
76820x200703b,
76830x200603b,
76840x8067,
76850x6b805013,
76860x69805013,
76870x60001033,
76880x6000103b,
76890x60005033,
76900x60005013,
76910x60005013,
76920x6000501b,
76930x6000503b,
76940x23,
76950x100073,
76960x1800302f,
76970x1800202f,
76980x73,
76990x3023,
77000x103013,
77010x60401013,
77020x60501013,
77030x1b,
77040x18100073,
77050x12000073,
77060x18000073,
77070x2033,
77080x1023,
77090x20002033,
77100x2000203b,
77110x20004033,
77120x2000403b,
77130x20006033,
77140x2000603b,
77150x10201013,
77160x10301013,
77170x10001013,
77180x10101013,
77190x10601013,
77200x5c000033,
77210x54000033,
77220x10701013,
77230x5e000033,
77240x56000033,
77250x10401013,
77260x50000033,
77270x10501013,
77280x52000033,
77290x16000073,
77300x1033,
77310x1013,
77320x1013,
77330x800101b,
77340x101b,
77350x103b,
77360x2033,
77370x2013,
77380x3013,
77390x3033,
77400x2033,
77410x10801013,
77420x10901013,
77430x30000033,
77440x34000033,
77450x3033,
77460x40005033,
77470x40005013,
77480x40005013,
77490x4000501b,
77500x4000503b,
77510x10200073,
77520x5033,
77530x5013,
77540x5013,
77550x501b,
77560x503b,
77570x40000033,
77580x4000003b,
77590x2023,
77600x8f05013,
77610x24002057,
77620x24006057,
77630x20002057,
77640x20006057,
77650x40003057,
77660x40000057,
77670x40004057,
77680x3057,
77690x57,
77700x4057,
77710xa600a077,
77720xa200a077,
77730xa6002077,
77740xa2002077,
77750xa601a077,
77760xa201a077,
77770xa6012077,
77780xa2012077,
77790x8a002077,
77800xaa002077,
77810xa603a077,
77820x24003057,
77830x24000057,
77840x24004057,
77850x4000057,
77860x4004057,
77870x2c002057,
77880x2c006057,
77890x28002057,
77900x28006057,
77910x48042057,
77920x48052057,
77930x30002057,
77940x30006057,
77950x34002057,
77960x34006057,
77970x48062057,
77980x5e002057,
77990x40082057,
78000x48072057,
78010x4806a057,
78020x84002057,
78030x84006057,
78040x80002057,
78050x80006057,
78060x5057,
78070x1057,
78080x4c081057,
78090x48019057,
78100x48011057,
78110x48039057,
78120x48031057,
78130x48009057,
78140x48001057,
78150x80005057,
78160x80001057,
78170x4008a057,
78180xb0005057,
78190xb0001057,
78200xa0005057,
78210xa0001057,
78220x18005057,
78230x18001057,
78240x5c005057,
78250x10005057,
78260x10001057,
78270xb8005057,
78280xb8001057,
78290xa8005057,
78300xa8001057,
78310x90005057,
78320x90001057,
78330x42001057,
78340x42005057,
78350x5e005057,
78360x480a1057,
78370x48099057,
78380x48091057,
78390x480a9057,
78400x480b9057,
78410x480b1057,
78420x48089057,
78430x48081057,
78440xb4005057,
78450xb4001057,
78460xa4005057,
78470xa4001057,
78480xbc005057,
78490xbc001057,
78500xac005057,
78510xac001057,
78520x84005057,
78530x4c029057,
78540x1c001057,
78550x14001057,
78560xc001057,
78570x4001057,
78580x4001057,
78590x4c021057,
78600x9c005057,
78610x20005057,
78620x20001057,
78630x24005057,
78640x24001057,
78650x28005057,
78660x28001057,
78670x3c005057,
78680x38005057,
78690x4c001057,
78700x8005057,
78710x8001057,
78720xc0005057,
78730xc0001057,
78740xd0005057,
78750xd0001057,
78760x48061057,
78770x48059057,
78780x48051057,
78790x48079057,
78800x48071057,
78810x48049057,
78820x48041057,
78830xf0005057,
78840xf0001057,
78850xf8005057,
78860xf8001057,
78870xe0005057,
78880xe0001057,
78890xf4005057,
78900xf4001057,
78910xfc005057,
78920xfc001057,
78930xcc001057,
78940xc4001057,
78950xc4001057,
78960xc8005057,
78970xc8001057,
78980xd8005057,
78990xd8001057,
79000xb2002077,
79010xa208a077,
79020x5008a057,
79030x50082057,
79040x2800007,
79050x2805007,
79060x2806007,
79070x2807007,
79080x2800007,
79090x22800007,
79100x22805007,
79110x22806007,
79120x22807007,
79130x22800007,
79140x62800007,
79150x62805007,
79160x62806007,
79170x62807007,
79180x62800007,
79190xe2800007,
79200xe2805007,
79210xe2806007,
79220xe2807007,
79230xe2800007,
79240x5007,
79250x1005007,
79260x2b00007,
79270x6007,
79280x1006007,
79290x7007,
79300x1007007,
79310x7,
79320x1000007,
79330x2b00007,
79340xc005007,
79350xc006007,
79360xc007007,
79370xc000007,
79380x8005007,
79390x8006007,
79400x8007007,
79410x8000007,
79420x4005007,
79430x4006007,
79440x4007007,
79450x4000007,
79460xb4002057,
79470xb4006057,
79480x46003057,
79490x44003057,
79500x46000057,
79510x44000057,
79520x46004057,
79530x44004057,
79540xa4002057,
79550xa4006057,
79560x66002057,
79570x62002057,
79580x60002057,
79590x1c000057,
79600x1c004057,
79610x18000057,
79620x18004057,
79630x5c003057,
79640x5c000057,
79650x5c004057,
79660x60005057,
79670x60001057,
79680x7c005057,
79690x74005057,
79700x64005057,
79710x64001057,
79720x6c005057,
79730x6c001057,
79740x70005057,
79750x70001057,
79760x14000057,
79770x14004057,
79780x10000057,
79790x10004057,
79800x76002057,
79810x7a002057,
79820x6a002057,
79830x72002057,
79840x70002057,
79850x4e000057,
79860x4c000057,
79870x4e004057,
79880x4c004057,
79890x5000a057,
79900x60003057,
79910x60000057,
79920x60004057,
79930x7c003057,
79940x7c004057,
79950x78003057,
79960x78004057,
79970x5001a057,
79980x74003057,
79990x74000057,
80000x74004057,
80010x70003057,
80020x70000057,
80030x70004057,
80040x6c000057,
80050x6c004057,
80060x68000057,
80070x68004057,
80080x64003057,
80090x64000057,
80100x64004057,
80110x50012057,
80120x94002057,
80130x94006057,
80140x9c002057,
80150x9c006057,
80160x98002057,
80170x98006057,
80180x90002057,
80190x90006057,
80200x9e003057,
80210x9e00b057,
80220x9e01b057,
80230x9e03b057,
80240x42006057,
80250x5e003057,
80260x5e000057,
80270x5e004057,
80280x42002057,
80290x7e002057,
80300x6e002057,
80310xbc003057,
80320xbc000057,
80330xbc004057,
80340xb8003057,
80350xb8000057,
80360xb8004057,
80370xbc002057,
80380xbc006057,
80390xac002057,
80400xac006057,
80410xb4003057,
80420xb4000057,
80430xb4004057,
80440xb0003057,
80450xb0000057,
80460xb0004057,
80470x28003057,
80480x28000057,
80490x28004057,
80500x40082057,
80510x4002057,
80520x1c002057,
80530x18002057,
80540x14002057,
80550x10002057,
80560x8002057,
80570x2057,
80580xc002057,
80590x8c002057,
80600x8c006057,
80610x88002057,
80620x88006057,
80630x4804a057,
80640x30003057,
80650x30000057,
80660x30004057,
80670x38000057,
80680x54000057,
80690x54004057,
80700x50003057,
80710x50000057,
80720x50004057,
80730xc003057,
80740xc004057,
80750x2800027,
80760x22800027,
80770x62800027,
80780xe2800027,
80790x84003057,
80800x84000057,
80810x84004057,
80820x80003057,
80830x80000057,
80840x80004057,
80850x48000057,
80860x48004057,
80870x5027,
80880x2b00027,
80890x6027,
80900x7027,
80910x27,
80920xc0007057,
80930x80007057,
80940x7057,
80950x4803a057,
80960x4802a057,
80970x4801a057,
80980xba002077,
80990xbe002077,
81000xb6002077,
81010x3c006057,
81020x38006057,
81030x3c003057,
81040x3c004057,
81050x38003057,
81060x38004057,
81070x94003057,
81080x94000057,
81090x94004057,
81100xae002077,
81110x82002077,
81120x86002077,
81130xa6082077,
81140xa2082077,
81150x2b00027,
81160x9c000057,
81170x9c004057,
81180xc005027,
81190xc006027,
81200xc007027,
81210xc000027,
81220xa4003057,
81230xa4000057,
81240xa4004057,
81250xa0003057,
81260xa0000057,
81270xa0004057,
81280x8005027,
81290x8006027,
81300x8007027,
81310x8000027,
81320xac003057,
81330xac000057,
81340xac004057,
81350xa8003057,
81360xa8000057,
81370xa8004057,
81380x8c000057,
81390x8c004057,
81400x88000057,
81410x88004057,
81420x8000057,
81430x8004057,
81440x4005027,
81450x4006027,
81460x4007027,
81470x4000027,
81480xc4002057,
81490xc4006057,
81500xd4002057,
81510xd4006057,
81520xc0002057,
81530xc0006057,
81540xd0002057,
81550xd0006057,
81560xf4002057,
81570xf4006057,
81580xfc002057,
81590xfc006057,
81600xf0002057,
81610xf0006057,
81620xf8006057,
81630xec002057,
81640xec006057,
81650xe8002057,
81660xe8006057,
81670xe0002057,
81680xe0006057,
81690xc4000057,
81700xc0000057,
81710xd4003057,
81720xd4000057,
81730xd4004057,
81740xcc002057,
81750xcc006057,
81760xdc002057,
81770xdc006057,
81780xc8002057,
81790xc8006057,
81800xd8002057,
81810xd8006057,
81820x2c003057,
81830x2c000057,
81840x2c004057,
81850x48032057,
81860x48022057,
81870x48012057,
81880x10500073,
81890xd00073,
81900x1d00073,
81910x40004033,
81920x4033,
81930x4013,
81940x28002033,
81950x28004033,
81960x7013,
81970x800403b,
81980x8004033,
81990x800003b,
82000x8f01013,
8201];
8202pub static OPCODE_MASK: [u32; 1021] = [
82030xfe00707f,
82040xfe00707f,
82050x707f,
82060x707f,
82070xfe00707f,
82080x3e00707f,
82090x3e00707f,
82100x3e00707f,
82110x3e00707f,
82120xfe00707f,
82130xfe00707f,
82140xfe00707f,
82150xfe00707f,
82160xfff0707f,
82170xff00707f,
82180xfe00707f,
82190xf800707f,
82200xf800707f,
82210xf800707f,
82220xf800707f,
82230xf800707f,
82240xf800707f,
82250xf800707f,
82260xf800707f,
82270xf800707f,
82280xf800707f,
82290xf800707f,
82300xf800707f,
82310xf800707f,
82320xf800707f,
82330xf800707f,
82340xf800707f,
82350xf800707f,
82360xf800707f,
82370xf800707f,
82380xf800707f,
82390xf800707f,
82400xf800707f,
82410xf800707f,
82420xf800707f,
82430xf800707f,
82440xf800707f,
82450xf800707f,
82460xf800707f,
82470xf800707f,
82480xf800707f,
82490xf800707f,
82500xf800707f,
82510xf800707f,
82520xf800707f,
82530xf800707f,
82540xf800707f,
82550xf800707f,
82560xf800707f,
82570xf800707f,
82580xf800707f,
82590xf800707f,
82600xfe00707f,
82610x707f,
82620xfe00707f,
82630x7f,
82640xfe00707f,
82650xfc00707f,
82660xfe00707f,
82670x707f,
82680x1f0707f,
82690xfe00707f,
82700xfc00707f,
82710xfe00707f,
82720x707f,
82730x707f,
82740x1f0707f,
82750x707f,
82760x707f,
82770xff07f,
82780xfe00707f,
82790xfc00707f,
82800xfe00707f,
82810x707f,
82820x707f,
82830xff07f,
82840x707f,
82850x707f,
82860x1f0707f,
82870x707f,
82880x1f0707f,
82890xfff0707f,
82900xfe00707f,
82910xfc00707f,
82920xfe00707f,
82930xf003,
82940xe003,
82950xef83,
82960xe003,
82970xe003,
82980xfc63,
82990xfc63,
83000xec03,
83010xe003,
83020xe003,
83030xffff,
83040xe003,
83050xe003,
83060xe003,
83070xe003,
83080xe003,
83090xe003,
83100xe003,
83110xe003,
83120xe003,
83130xe003,
83140xf07f,
83150xf07f,
83160xfc03,
83170xe003,
83180xe003,
83190xfc43,
83200xfc43,
83210xe003,
83220xe003,
83230xe003,
83240xe003,
83250xffff,
83260xffff,
83270xffff,
83280xffff,
83290xffff,
83300xffff,
83310xffff,
83320xffff,
83330xf8ff,
83340xfc63,
83350xf003,
83360xef83,
83370xfc7f,
83380xffff,
83390xffff,
83400xffff,
83410xffff,
83420xfc63,
83430xfc03,
83440xe003,
83450xe003,
83460xfc7f,
83470xfc7f,
83480xf07f,
83490xfc43,
83500xe003,
83510xf003,
83520xec03,
83530xfc03,
83540xec03,
83550xfc03,
83560xfc63,
83570xfc63,
83580xe003,
83590xe003,
83600xfc63,
83610xfc7f,
83620xfc7f,
83630xfc7f,
83640xfff07fff,
83650xfff07fff,
83660xfff07fff,
83670xfff07fff,
83680xfe00707f,
83690xfe00707f,
83700xfe00707f,
83710xfff0707f,
83720xfff0707f,
83730xfc03,
83740xfc63,
83750xfc63,
83760xff03,
83770xff03,
83780xff03,
83790xff03,
83800xfff0707f,
83810xfff0707f,
83820x7fff,
83830x7fff,
83840xff07f,
83850x707f,
83860x707f,
83870x707f,
83880x707f,
83890x707f,
83900x707f,
83910x7fff,
83920x7fff,
83930x7fff,
83940x7fff,
83950xfff0707f,
83960xfff0707f,
83970xfe00707f,
83980xfe00707f,
83990xfe00707f,
84000xfe00707f,
84010xfe00707f,
84020xfe00707f,
84030xffffffff,
84040xffffffff,
84050xffffffff,
84060xfe00707f,
84070xfe00707f,
84080xfe00707f,
84090xfe00707f,
84100xfe00007f,
84110xfe00007f,
84120xfe00007f,
84130xfe00007f,
84140xfff0707f,
84150xfff0707f,
84160xfff0707f,
84170xfff0707f,
84180xfff0007f,
84190xfff0007f,
84200xfff0007f,
84210xfff0007f,
84220xfff0007f,
84230xfff0007f,
84240xfff0007f,
84250xfff0007f,
84260xfff0007f,
84270xfff0007f,
84280xfff0007f,
84290xfff0007f,
84300xfff0007f,
84310xfff0007f,
84320xfff0007f,
84330xfff0007f,
84340xfff0007f,
84350xfff0007f,
84360xfff0007f,
84370xfff0007f,
84380xfff0007f,
84390xfff0007f,
84400xfff0007f,
84410xfff0007f,
84420xfff0007f,
84430xfff0007f,
84440xfff0007f,
84450xfff0007f,
84460xfff0007f,
84470xfff0007f,
84480xfff0007f,
84490xfff0007f,
84500xfff0007f,
84510xfff0007f,
84520xfff0007f,
84530xfff0007f,
84540xfff0007f,
84550xfff0007f,
84560xfff0007f,
84570xfff0007f,
84580xfff0007f,
84590xfff0007f,
84600xfff0007f,
84610xfff0007f,
84620xfff0707f,
84630xfe00007f,
84640xfe00007f,
84650xfe00007f,
84660xfe00007f,
84670x707f,
84680x707f,
84690xfff0707f,
84700xfe00707f,
84710xfe00707f,
84720xfe00707f,
84730xfe00707f,
84740x707f,
84750xfe00707f,
84760xfe00707f,
84770xfe00707f,
84780xfe00707f,
84790xfe00707f,
84800xfe00707f,
84810xfe00707f,
84820xfe00707f,
84830x707f,
84840xfff0707f,
84850xfff0707f,
84860xfff0707f,
84870xfff0707f,
84880x707f,
84890xfe00707f,
84900xfe00707f,
84910xfe00707f,
84920xfe00707f,
84930xfe00707f,
84940xfe00707f,
84950xfe00707f,
84960xfe00707f,
84970x707f,
84980x600007f,
84990x600007f,
85000x600007f,
85010x600007f,
85020xfe00707f,
85030xfe00707f,
85040xfe00707f,
85050xfe00707f,
85060xfe00707f,
85070xfe00707f,
85080xfe00707f,
85090xfe00707f,
85100xfe00707f,
85110xfe00707f,
85120xfe00707f,
85130xfe00707f,
85140xfe00707f,
85150xfe00707f,
85160xfe00707f,
85170xfe00707f,
85180x600007f,
85190x600007f,
85200x600007f,
85210x600007f,
85220xfe00007f,
85230xfe00007f,
85240xfe00007f,
85250xfe00007f,
85260xfe00707f,
85270xfff0707f,
85280xfe00707f,
85290xfff0707f,
85300xfe00707f,
85310xfe00707f,
85320xfff0707f,
85330xfff0707f,
85340xfff0707f,
85350xfff0707f,
85360xfff0707f,
85370xfff0707f,
85380xfff0707f,
85390xfff0707f,
85400xfe00707f,
85410xfe00707f,
85420xfe00707f,
85430xfe00707f,
85440xfe00707f,
85450xfe00707f,
85460x600007f,
85470x600007f,
85480x600007f,
85490x600007f,
85500x600007f,
85510x600007f,
85520x600007f,
85530x600007f,
85540xfffff07f,
85550xfffff07f,
85560xfff0007f,
85570xfff0007f,
85580xfff0007f,
85590xfff0007f,
85600xfff0007f,
85610xfff0007f,
85620xfff0007f,
85630xfff0007f,
85640xfffff07f,
85650xfff0707f,
85660x707f,
85670xfff0707f,
85680xfff0707f,
85690xfe00707f,
85700xfe00707f,
85710xfe00707f,
85720xfe00707f,
85730xfe00707f,
85740xfe00707f,
85750xfe00707f,
85760xfe00707f,
85770xfe00707f,
85780xfe00707f,
85790xfe00707f,
85800xfe00707f,
85810x707f,
85820x707f,
85830xfff0007f,
85840xfff0007f,
85850xfff0007f,
85860xfff0007f,
85870xfff0707f,
85880xfff0707f,
85890xfe00007f,
85900xfe00007f,
85910xfe00007f,
85920xfe00007f,
85930x707f,
85940xfe007fff,
85950xfe007fff,
85960xfe007fff,
85970xfe007fff,
85980xfff0707f,
85990xfff0707f,
86000xfff0707f,
86010xfff0707f,
86020xfff0707f,
86030xfff0707f,
86040xfff0707f,
86050xfff0707f,
86060xfff0707f,
86070xfe007fff,
86080xfe007fff,
86090xfe007fff,
86100xfe007fff,
86110xfff,
86120x7f,
86130xfff,
86140x707f,
86150xfff07fff,
86160xfff07fff,
86170x707f,
86180x707f,
86190x707f,
86200x707f,
86210x707f,
86220xf9f0707f,
86230xf9f0707f,
86240x7f,
86250x707f,
86260x707f,
86270xfe00707f,
86280xfe00707f,
86290xfe00707f,
86300xfe00707f,
86310xfff0707f,
86320xfff0707f,
86330xfff0707f,
86340xfff0707f,
86350xfff0707f,
86360xfff0707f,
86370xfff0707f,
86380xfff0707f,
86390xfff0707f,
86400xfff0707f,
86410xfff0707f,
86420xfff0707f,
86430xfff0707f,
86440xfff0707f,
86450xfff0707f,
86460xfff0707f,
86470xfff0707f,
86480xfff0707f,
86490xfff0707f,
86500xfff0707f,
86510xfff0707f,
86520xfff0707f,
86530xfff0707f,
86540xfff0707f,
86550xfff0707f,
86560xfff0707f,
86570xfff0707f,
86580xfff0707f,
86590xfff0707f,
86600xfff0707f,
86610xfff0707f,
86620xfff0707f,
86630xb3c0707f,
86640xfe00707f,
86650xfe00707f,
86660xfe00707f,
86670xfe00707f,
86680xfe00707f,
86690xfe00707f,
86700xfe00707f,
86710xfe00707f,
86720xb200707f,
86730xffffffff,
86740xfe00707f,
86750xfe00707f,
86760xfe00707f,
86770xfe00707f,
86780xfe00707f,
86790xfff0707f,
86800xfff0707f,
86810xffffffff,
86820xffffffff,
86830xffffffff,
86840xffffffff,
86850xffffffff,
86860xfe00707f,
86870xfff0707f,
86880x707f,
86890xfe00707f,
86900xfe00707f,
86910xfe00707f,
86920xfe00707f,
86930xffffffff,
86940x1f07fff,
86950x1f07fff,
86960x1f07fff,
86970xfffff07f,
86980xfffff07f,
86990xfffff07f,
87000xfffff07f,
87010xfffff07f,
87020xfffff07f,
87030xfe00707f,
87040xfe00707f,
87050xfe00707f,
87060xfe00707f,
87070xffffffff,
87080xfff0707f,
87090xfff0707f,
87100xfe00707f,
87110xfe00707f,
87120xfe00707f,
87130xfc00707f,
87140xfe00707f,
87150xfe00707f,
87160xfe00707f,
87170x707f,
87180xffffffff,
87190xf800707f,
87200xf800707f,
87210xffffffff,
87220x707f,
87230xfff0707f,
87240xfff0707f,
87250xfff0707f,
87260xfff0707f,
87270xffffffff,
87280xfe007fff,
87290xffffffff,
87300xfe0ff07f,
87310x707f,
87320xfe00707f,
87330xfe00707f,
87340xfe00707f,
87350xfe00707f,
87360xfe00707f,
87370xfe00707f,
87380xfff0707f,
87390xfff0707f,
87400xfff0707f,
87410xfff0707f,
87420xfff0707f,
87430xfe00707f,
87440xfe00707f,
87450xfff0707f,
87460xfe00707f,
87470xfe00707f,
87480xfff0707f,
87490xfe00707f,
87500xfff0707f,
87510xfe00707f,
87520xfe007fff,
87530xfe00707f,
87540xfc00707f,
87550xfe00707f,
87560xfc00707f,
87570xfe00707f,
87580xfe00707f,
87590xfe00707f,
87600x707f,
87610x707f,
87620xfe00707f,
87630xfff0707f,
87640xfff0707f,
87650xfff0707f,
87660x3e00707f,
87670x3e00707f,
87680xfe0ff07f,
87690xfe00707f,
87700xfc00707f,
87710xfe00707f,
87720xfe00707f,
87730xfe00707f,
87740xffffffff,
87750xfe00707f,
87760xfc00707f,
87770xfe00707f,
87780xfe00707f,
87790xfe00707f,
87800xfe00707f,
87810xfe00707f,
87820x707f,
87830xfff0707f,
87840xfc00707f,
87850xfc00707f,
87860xfc00707f,
87870xfc00707f,
87880xfe00707f,
87890xfe00707f,
87900xfe00707f,
87910xfc00707f,
87920xfc00707f,
87930xfc00707f,
87940xfe0ff07f,
87950xfe0ff07f,
87960xfe0ff07f,
87970xfe0ff07f,
87980xfe0ff07f,
87990xfe0ff07f,
88000xfe0ff07f,
88010xfe0ff07f,
88020xfe00707f,
88030xfe00707f,
88040xfe0ff07f,
88050xfc00707f,
88060xfc00707f,
88070xfc00707f,
88080xfc00707f,
88090xfc00707f,
88100xfc00707f,
88110xfc00707f,
88120xfc00707f,
88130xfc00707f,
88140xfc0ff07f,
88150xfc0ff07f,
88160xfc00707f,
88170xfc00707f,
88180xfc00707f,
88190xfc00707f,
88200xfc0ff07f,
88210xfe00707f,
88220xfc0ff07f,
88230xfc0ff07f,
88240xfc0ff07f,
88250xfc00707f,
88260xfc00707f,
88270xfc00707f,
88280xfc00707f,
88290xfc00707f,
88300xfc00707f,
88310xfc0ff07f,
88320xfc0ff07f,
88330xfc0ff07f,
88340xfc0ff07f,
88350xfc0ff07f,
88360xfc0ff07f,
88370xfc0ff07f,
88380xfc00707f,
88390xfc00707f,
88400xfc0ff07f,
88410xfc00707f,
88420xfc00707f,
88430xfc00707f,
88440xfc00707f,
88450xfc00707f,
88460xfc00707f,
88470xfe00707f,
88480xfc00707f,
88490xfc00707f,
88500xfc00707f,
88510xfc00707f,
88520xfc00707f,
88530xfc00707f,
88540xfc00707f,
88550xfc00707f,
88560xfe0ff07f,
88570xfff0707f,
88580xfff0707f,
88590xfc0ff07f,
88600xfc0ff07f,
88610xfc0ff07f,
88620xfc0ff07f,
88630xfc0ff07f,
88640xfc0ff07f,
88650xfc0ff07f,
88660xfc0ff07f,
88670xfc00707f,
88680xfc00707f,
88690xfc00707f,
88700xfc00707f,
88710xfc00707f,
88720xfc00707f,
88730xfc00707f,
88740xfc00707f,
88750xfc00707f,
88760xfc0ff07f,
88770xfc00707f,
88780xfc00707f,
88790xfc00707f,
88800xfc00707f,
88810xfc00707f,
88820xfc0ff07f,
88830xfc00707f,
88840xfc00707f,
88850xfc00707f,
88860xfc00707f,
88870xfc00707f,
88880xfc00707f,
88890xfc00707f,
88900xfc00707f,
88910xfc00707f,
88920xfc0ff07f,
88930xfc00707f,
88940xfc00707f,
88950xfc00707f,
88960xfc00707f,
88970xfc00707f,
88980xfc00707f,
88990xfc0ff07f,
89000xfc0ff07f,
89010xfc0ff07f,
89020xfc0ff07f,
89030xfc0ff07f,
89040xfc0ff07f,
89050xfc0ff07f,
89060xfc00707f,
89070xfc00707f,
89080xfc00707f,
89090xfc00707f,
89100xfc00707f,
89110xfc00707f,
89120xfc00707f,
89130xfc00707f,
89140xfc00707f,
89150xfc00707f,
89160xfc00707f,
89170xfc00707f,
89180xfc00707f,
89190xfc00707f,
89200xfc00707f,
89210xfc00707f,
89220xfc00707f,
89230xfe00707f,
89240xfe0ff07f,
89250xfdfff07f,
89260xfc0ff07f,
89270xfff0707f,
89280xfff0707f,
89290xfff0707f,
89300xfff0707f,
89310xfff0707f,
89320xfff0707f,
89330xfff0707f,
89340xfff0707f,
89350xfff0707f,
89360xfff0707f,
89370xfff0707f,
89380xfff0707f,
89390xfff0707f,
89400xfff0707f,
89410xfff0707f,
89420xfff0707f,
89430xfff0707f,
89440xfff0707f,
89450xfff0707f,
89460xfff0707f,
89470x1df0707f,
89480x1df0707f,
89490xfff0707f,
89500x1df0707f,
89510x1df0707f,
89520x1df0707f,
89530x1df0707f,
89540x1df0707f,
89550x1df0707f,
89560xfff0707f,
89570x1c00707f,
89580x1c00707f,
89590x1c00707f,
89600x1c00707f,
89610x1c00707f,
89620x1c00707f,
89630x1c00707f,
89640x1c00707f,
89650x1c00707f,
89660x1c00707f,
89670x1c00707f,
89680x1c00707f,
89690xfc00707f,
89700xfc00707f,
89710xfe00707f,
89720xfe00707f,
89730xfe00707f,
89740xfe00707f,
89750xfe00707f,
89760xfe00707f,
89770xfc00707f,
89780xfc00707f,
89790xfe00707f,
89800xfe00707f,
89810xfc00707f,
89820xfc00707f,
89830xfc00707f,
89840xfc00707f,
89850xfc00707f,
89860xfe00707f,
89870xfe00707f,
89880xfe00707f,
89890xfc00707f,
89900xfc00707f,
89910xfc00707f,
89920xfc00707f,
89930xfc00707f,
89940xfc00707f,
89950xfc00707f,
89960xfc00707f,
89970xfc00707f,
89980xfc00707f,
89990xfc00707f,
90000xfc00707f,
90010xfc00707f,
90020xfc00707f,
90030xfe00707f,
90040xfe00707f,
90050xfe00707f,
90060xfe00707f,
90070xfc00707f,
90080xfe00707f,
90090xfe00707f,
90100xfe00707f,
90110xfe00707f,
90120xfc0ff07f,
90130xfc00707f,
90140xfc00707f,
90150xfc00707f,
90160xfc00707f,
90170xfc00707f,
90180xfc00707f,
90190xfc00707f,
90200xfc0ff07f,
90210xfc00707f,
90220xfc00707f,
90230xfc00707f,
90240xfc00707f,
90250xfc00707f,
90260xfc00707f,
90270xfc00707f,
90280xfc00707f,
90290xfc00707f,
90300xfc00707f,
90310xfc00707f,
90320xfc00707f,
90330xfc00707f,
90340xfc0ff07f,
90350xfc00707f,
90360xfc00707f,
90370xfc00707f,
90380xfc00707f,
90390xfc00707f,
90400xfc00707f,
90410xfc00707f,
90420xfc00707f,
90430xfe0ff07f,
90440xfe0ff07f,
90450xfe0ff07f,
90460xfe0ff07f,
90470xfff0707f,
90480xfff0707f,
90490xfff0707f,
90500xfff0707f,
90510xfe0ff07f,
90520xfe00707f,
90530xfe00707f,
90540xfc00707f,
90550xfc00707f,
90560xfc00707f,
90570xfc00707f,
90580xfc00707f,
90590xfc00707f,
90600xfc00707f,
90610xfc00707f,
90620xfc00707f,
90630xfc00707f,
90640xfc00707f,
90650xfc00707f,
90660xfc00707f,
90670xfc00707f,
90680xfc00707f,
90690xfc00707f,
90700xfc00707f,
90710xfc00707f,
90720xfc00707f,
90730xfc0ff07f,
90740xfc00707f,
90750xfc00707f,
90760xfc00707f,
90770xfc00707f,
90780xfc00707f,
90790xfc00707f,
90800xfc00707f,
90810xfc00707f,
90820xfc00707f,
90830xfc00707f,
90840xfc00707f,
90850xfc00707f,
90860xfc0ff07f,
90870xfc00707f,
90880xfc00707f,
90890xfc00707f,
90900xfc00707f,
90910xfc00707f,
90920xfc00707f,
90930xf800707f,
90940xfc00707f,
90950xfc00707f,
90960xfc00707f,
90970xfc00707f,
90980xfff0707f,
90990xfff0707f,
91000xfff0707f,
91010xfff0707f,
91020xfc00707f,
91030xfc00707f,
91040xfc00707f,
91050xfc00707f,
91060xfc00707f,
91070xfc00707f,
91080xfe00707f,
91090xfe00707f,
91100x1df0707f,
91110xfff0707f,
91120x1df0707f,
91130x1df0707f,
91140x1df0707f,
91150xc000707f,
91160xfe00707f,
91170x8000707f,
91180xfc0ff07f,
91190xfc0ff07f,
91200xfc0ff07f,
91210xfe00707f,
91220xfe00707f,
91230xfe00707f,
91240xfc00707f,
91250xfc00707f,
91260xfc00707f,
91270xfc00707f,
91280xfc00707f,
91290xfc00707f,
91300xfc00707f,
91310xfc00707f,
91320xfc00707f,
91330xfe00707f,
91340xfe00707f,
91350xfe00707f,
91360xfe0ff07f,
91370xfe0ff07f,
91380xfff0707f,
91390xfc00707f,
91400xfc00707f,
91410x1c00707f,
91420x1c00707f,
91430x1c00707f,
91440x1c00707f,
91450xfc00707f,
91460xfc00707f,
91470xfc00707f,
91480xfc00707f,
91490xfc00707f,
91500xfc00707f,
91510x1c00707f,
91520x1c00707f,
91530x1c00707f,
91540x1c00707f,
91550xfc00707f,
91560xfc00707f,
91570xfc00707f,
91580xfc00707f,
91590xfc00707f,
91600xfc00707f,
91610xfc00707f,
91620xfc00707f,
91630xfc00707f,
91640xfc00707f,
91650xfc00707f,
91660xfc00707f,
91670x1c00707f,
91680x1c00707f,
91690x1c00707f,
91700x1c00707f,
91710xfc00707f,
91720xfc00707f,
91730xfc00707f,
91740xfc00707f,
91750xfc00707f,
91760xfc00707f,
91770xfc00707f,
91780xfc00707f,
91790xfc00707f,
91800xfc00707f,
91810xfc00707f,
91820xfc00707f,
91830xfc00707f,
91840xfc00707f,
91850xfc00707f,
91860xfc00707f,
91870xfc00707f,
91880xfc00707f,
91890xfc00707f,
91900xfc00707f,
91910xfc00707f,
91920xfc00707f,
91930xfc00707f,
91940xfc00707f,
91950xfc00707f,
91960xfc00707f,
91970xfc00707f,
91980xfc00707f,
91990xfc00707f,
92000xfc00707f,
92010xfc00707f,
92020xfc00707f,
92030xfc00707f,
92040xfc00707f,
92050xfc00707f,
92060xfc00707f,
92070xfc00707f,
92080xfc0ff07f,
92090xfc0ff07f,
92100xfc0ff07f,
92110xffffffff,
92120xffffffff,
92130xffffffff,
92140xfe00707f,
92150xfe00707f,
92160x707f,
92170xfe00707f,
92180xfe00707f,
92190xfff0707f,
92200xfff0707f,
92210xfff0707f,
92220xfff0707f,
92230xfff0707f,
9224];
9225pub static OPCODE_MASK_COMPRESSED: [u16; 1021] = [
92260,
92270,
92280,
92290,
92300,
92310,
92320,
92330,
92340,
92350,
92360,
92370,
92380,
92390,
92400,
92410,
92420,
92430,
92440,
92450,
92460,
92470,
92480,
92490,
92500,
92510,
92520,
92530,
92540,
92550,
92560,
92570,
92580,
92590,
92600,
92610,
92620,
92630,
92640,
92650,
92660,
92670,
92680,
92690,
92700,
92710,
92720,
92730,
92740,
92750,
92760,
92770,
92780,
92790,
92800,
92810,
92820,
92830,
92840,
92850,
92860,
92870,
92880,
92890,
92900,
92910,
92920,
92930,
92940,
92950,
92960,
92970,
92980,
92990,
93000,
93010,
93020,
93030,
93040,
93050,
93060,
93070,
93080,
93090,
93100,
93110,
93120,
93130,
93140,
93150,
931661443,
931757347,
931861315,
931957347,
932057347,
932164611,
932264611,
932360419,
932457347,
932557347,
932665535,
932757347,
932857347,
932957347,
933057347,
933157347,
933257347,
933357347,
933457347,
933557347,
933657347,
933761567,
933861567,
933964515,
934057347,
934157347,
934264579,
934364579,
934457347,
934557347,
934657347,
934757347,
934865535,
934965535,
935065535,
935165535,
935265535,
935365535,
935465535,
935565535,
935663743,
935764611,
935861443,
935961315,
936064639,
936165535,
936265535,
936365535,
936465535,
936564611,
936664515,
936757347,
936857347,
936964639,
937064639,
937161567,
937264579,
937357347,
937461443,
937560419,
937664515,
937760419,
937864515,
937964611,
938064611,
938157347,
938257347,
938364611,
938464639,
938564639,
938664639,
938732767,
938832767,
938932767,
939032767,
939128799,
939228799,
939328799,
939428799,
939528799,
939664515,
939764611,
939864611,
939965283,
940065283,
940165283,
940265283,
940328799,
940428799,
940532767,
940632767,
940761567,
940828799,
940928799,
941028799,
941128799,
941228799,
941328799,
941432767,
941532767,
941632767,
941732767,
941828799,
941928799,
942028799,
942128799,
94220,
94230,
94240,
94250,
94260,
94270,
94280,
94290,
94300,
94310,
94320,
94330,
94340,
94350,
94360,
94370,
94380,
94390,
94400,
94410,
94420,
94430,
94440,
94450,
94460,
94470,
94480,
94490,
94500,
94510,
94520,
94530,
94540,
94550,
94560,
94570,
94580,
94590,
94600,
94610,
94620,
94630,
94640,
94650,
94660,
94670,
94680,
94690,
94700,
94710,
94720,
94730,
94740,
94750,
94760,
94770,
94780,
94790,
94800,
94810,
94820,
94830,
94840,
94850,
94860,
94870,
94880,
94890,
94900,
94910,
94920,
94930,
94940,
94950,
94960,
94970,
94980,
94990,
95000,
95010,
95020,
95030,
95040,
95050,
95060,
95070,
95080,
95090,
95100,
95110,
95120,
95130,
95140,
95150,
95160,
95170,
95180,
95190,
95200,
95210,
95220,
95230,
95240,
95250,
95260,
95270,
95280,
95290,
95300,
95310,
95320,
95330,
95340,
95350,
95360,
95370,
95380,
95390,
95400,
95410,
95420,
95430,
95440,
95450,
95460,
95470,
95480,
95490,
95500,
95510,
95520,
95530,
95540,
95550,
95560,
95570,
95580,
95590,
95600,
95610,
95620,
95630,
95640,
95650,
95660,
95670,
95680,
95690,
95700,
95710,
95720,
95730,
95740,
95750,
95760,
95770,
95780,
95790,
95800,
95810,
95820,
95830,
95840,
95850,
95860,
95870,
95880,
95890,
95900,
95910,
95920,
95930,
95940,
95950,
95960,
95970,
95980,
95990,
96000,
96010,
96020,
96030,
96040,
96050,
96060,
96070,
96080,
96090,
96100,
96110,
96120,
96130,
96140,
96150,
96160,
96170,
96180,
96190,
96200,
96210,
96220,
96230,
96240,
96250,
96260,
96270,
96280,
96290,
96300,
96310,
96320,
96330,
96340,
96350,
96360,
96370,
96380,
96390,
96400,
96410,
96420,
96430,
96440,
96450,
96460,
96470,
96480,
96490,
96500,
96510,
96520,
96530,
96540,
96550,
96560,
96570,
96580,
96590,
96600,
96610,
96620,
96630,
96640,
96650,
96660,
96670,
96680,
96690,
96700,
96710,
96720,
96730,
96740,
96750,
96760,
96770,
96780,
96790,
96800,
96810,
96820,
96830,
96840,
96850,
96860,
96870,
96880,
96890,
96900,
96910,
96920,
96930,
96940,
96950,
96960,
96970,
96980,
96990,
97000,
97010,
97020,
97030,
97040,
97050,
97060,
97070,
97080,
97090,
97100,
97110,
97120,
97130,
97140,
97150,
97160,
97170,
97180,
97190,
97200,
97210,
97220,
97230,
97240,
97250,
97260,
97270,
97280,
97290,
97300,
97310,
97320,
97330,
97340,
97350,
97360,
97370,
97380,
97390,
97400,
97410,
97420,
97430,
97440,
97450,
97460,
97470,
97480,
97490,
97500,
97510,
97520,
97530,
97540,
97550,
97560,
97570,
97580,
97590,
97600,
97610,
97620,
97630,
97640,
97650,
97660,
97670,
97680,
97690,
97700,
97710,
97720,
97730,
97740,
97750,
97760,
97770,
97780,
97790,
97800,
97810,
97820,
97830,
97840,
97850,
97860,
97870,
97880,
97890,
97900,
97910,
97920,
97930,
97940,
97950,
97960,
97970,
97980,
97990,
98000,
98010,
98020,
98030,
98040,
98050,
98060,
98070,
98080,
98090,
98100,
98110,
98120,
98130,
98140,
98150,
98160,
98170,
98180,
98190,
98200,
98210,
98220,
98230,
98240,
98250,
98260,
98270,
98280,
98290,
98300,
98310,
98320,
98330,
98340,
98350,
98360,
98370,
98380,
98390,
98400,
98410,
98420,
98430,
98440,
98450,
98460,
98470,
98480,
98490,
98500,
98510,
98520,
98530,
98540,
98550,
98560,
98570,
98580,
98590,
98600,
98610,
98620,
98630,
98640,
98650,
98660,
98670,
98680,
98690,
98700,
98710,
98720,
98730,
98740,
98750,
98760,
98770,
98780,
98790,
98800,
98810,
98820,
98830,
98840,
98850,
98860,
98870,
98880,
98890,
98900,
98910,
98920,
98930,
98940,
98950,
98960,
98970,
98980,
98990,
99000,
99010,
99020,
99030,
99040,
99050,
99060,
99070,
99080,
99090,
99100,
99110,
99120,
99130,
99140,
99150,
99160,
99170,
99180,
99190,
99200,
99210,
99220,
99230,
99240,
99250,
99260,
99270,
99280,
99290,
99300,
99310,
99320,
99330,
99340,
99350,
99360,
99370,
99380,
99390,
99400,
99410,
99420,
99430,
99440,
99450,
99460,
99470,
99480,
99490,
99500,
99510,
99520,
99530,
99540,
99550,
99560,
99570,
99580,
99590,
99600,
99610,
99620,
99630,
99640,
99650,
99660,
99670,
99680,
99690,
99700,
99710,
99720,
99730,
99740,
99750,
99760,
99770,
99780,
99790,
99800,
99810,
99820,
99830,
99840,
99850,
99860,
99870,
99880,
99890,
99900,
99910,
99920,
99930,
99940,
99950,
99960,
99970,
99980,
99990,
100000,
100010,
100020,
100030,
100040,
100050,
100060,
100070,
100080,
100090,
100100,
100110,
100120,
100130,
100140,
100150,
100160,
100170,
100180,
100190,
100200,
100210,
100220,
100230,
100240,
100250,
100260,
100270,
100280,
100290,
100300,
100310,
100320,
100330,
100340,
100350,
100360,
100370,
100380,
100390,
100400,
100410,
100420,
100430,
100440,
100450,
100460,
100470,
100480,
100490,
100500,
100510,
100520,
100530,
100540,
100550,
100560,
100570,
100580,
100590,
100600,
100610,
100620,
100630,
100640,
100650,
100660,
100670,
100680,
100690,
100700,
100710,
100720,
100730,
100740,
100750,
100760,
100770,
100780,
100790,
100800,
100810,
100820,
100830,
100840,
100850,
100860,
100870,
100880,
100890,
100900,
100910,
100920,
100930,
100940,
100950,
100960,
100970,
100980,
100990,
101000,
101010,
101020,
101030,
101040,
101050,
101060,
101070,
101080,
101090,
101100,
101110,
101120,
101130,
101140,
101150,
101160,
101170,
101180,
101190,
101200,
101210,
101220,
101230,
101240,
101250,
101260,
101270,
101280,
101290,
101300,
101310,
101320,
101330,
101340,
101350,
101360,
101370,
101380,
101390,
101400,
101410,
101420,
101430,
101440,
101450,
101460,
101470,
101480,
101490,
101500,
101510,
101520,
101530,
101540,
101550,
101560,
101570,
101580,
101590,
101600,
101610,
101620,
101630,
101640,
101650,
101660,
101670,
101680,
101690,
101700,
101710,
101720,
101730,
101740,
101750,
101760,
101770,
101780,
101790,
101800,
101810,
101820,
101830,
101840,
101850,
101860,
101870,
101880,
101890,
101900,
101910,
101920,
101930,
101940,
101950,
101960,
101970,
101980,
101990,
102000,
102010,
102020,
102030,
102040,
102050,
102060,
102070,
102080,
102090,
102100,
102110,
102120,
102130,
102140,
102150,
102160,
102170,
102180,
102190,
102200,
102210,
102220,
102230,
102240,
102250,
102260,
102270,
102280,
102290,
102300,
102310,
102320,
102330,
102340,
102350,
102360,
102370,
102380,
102390,
102400,
102410,
102420,
102430,
102440,
102450,
102460,
10247];
10248
10249pub static OPCODE_MATCH_COMPRESSED: [u16; 1021] = [
102500,
102510,
102520,
102530,
102540,
102550,
102560,
102570,
102580,
102590,
102600,
102610,
102620,
102630,
102640,
102650,
102660,
102670,
102680,
102690,
102700,
102710,
102720,
102730,
102740,
102750,
102760,
102770,
102780,
102790,
102800,
102810,
102820,
102830,
102840,
102850,
102860,
102870,
102880,
102890,
102900,
102910,
102920,
102930,
102940,
102950,
102960,
102970,
102980,
102990,
103000,
103010,
103020,
103030,
103040,
103050,
103060,
103070,
103080,
103090,
103100,
103110,
103120,
103130,
103140,
103150,
103160,
103170,
103180,
103190,
103200,
103210,
103220,
103230,
103240,
103250,
103260,
103270,
103280,
103290,
103300,
103310,
103320,
103330,
103340,
103350,
103360,
103370,
103380,
103390,
1034036866,
103411,
1034224833,
103430,
103448193,
1034539969,
1034635937,
1034734817,
1034849153,
1034957345,
1035036866,
103518192,
103528194,
1035324576,
1035424578,
1035540960,
1035640962,
1035757344,
1035857346,
1035940961,
103608193,
1036136866,
1036232770,
1036332768,
1036424576,
1036524578,
1036633856,
1036733792,
1036816385,
1036924577,
1037016384,
1037116386,
1037224705,
1037325985,
1037426241,
1037526497,
1037624961,
1037725217,
1037825473,
1037925729,
1038024705,
1038140001,
1038232770,
103831,
1038440053,
1038536886,
1038636874,
1038736878,
1038836882,
1038935905,
1039034816,
1039157344,
1039257346,
1039340037,
1039440045,
103958193,
1039635840,
103972,
103982,
1039933793,
1040033793,
1040132769,
1040232769,
1040335841,
1040439937,
1040549152,
1040649154,
1040735873,
1040840033,
1040940041,
1041040049,
104118207,
104128207,
104138207,
104148207,
104154147,
1041612339,
104178243,
104184115,
104194123,
1042040962,
1042144130,
1042244066,
1042347618,
1042448642,
1042548130,
1042647106,
104274115,
104284123,
1042912403,
1043028787,
104318307,
1043212403,
1043328787,
104348307,
1043524691,
104364211,
1043720595,
104388307,
1043924691,
104404211,
1044120595,
104424115,
104434123,
1044420531,
1044528723,
104460,
104470,
104480,
104490,
104500,
104510,
104520,
104530,
104540,
104550,
104560,
104570,
104580,
104590,
104600,
104610,
104620,
104630,
104640,
104650,
104660,
104670,
104680,
104690,
104700,
104710,
104720,
104730,
104740,
104750,
104760,
104770,
104780,
104790,
104800,
104810,
104820,
104830,
104840,
104850,
104860,
104870,
104880,
104890,
104900,
104910,
104920,
104930,
104940,
104950,
104960,
104970,
104980,
104990,
105000,
105010,
105020,
105030,
105040,
105050,
105060,
105070,
105080,
105090,
105100,
105110,
105120,
105130,
105140,
105150,
105160,
105170,
105180,
105190,
105200,
105210,
105220,
105230,
105240,
105250,
105260,
105270,
105280,
105290,
105300,
105310,
105320,
105330,
105340,
105350,
105360,
105370,
105380,
105390,
105400,
105410,
105420,
105430,
105440,
105450,
105460,
105470,
105480,
105490,
105500,
105510,
105520,
105530,
105540,
105550,
105560,
105570,
105580,
105590,
105600,
105610,
105620,
105630,
105640,
105650,
105660,
105670,
105680,
105690,
105700,
105710,
105720,
105730,
105740,
105750,
105760,
105770,
105780,
105790,
105800,
105810,
105820,
105830,
105840,
105850,
105860,
105870,
105880,
105890,
105900,
105910,
105920,
105930,
105940,
105950,
105960,
105970,
105980,
105990,
106000,
106010,
106020,
106030,
106040,
106050,
106060,
106070,
106080,
106090,
106100,
106110,
106120,
106130,
106140,
106150,
106160,
106170,
106180,
106190,
106200,
106210,
106220,
106230,
106240,
106250,
106260,
106270,
106280,
106290,
106300,
106310,
106320,
106330,
106340,
106350,
106360,
106370,
106380,
106390,
106400,
106410,
106420,
106430,
106440,
106450,
106460,
106470,
106480,
106490,
106500,
106510,
106520,
106530,
106540,
106550,
106560,
106570,
106580,
106590,
106600,
106610,
106620,
106630,
106640,
106650,
106660,
106670,
106680,
106690,
106700,
106710,
106720,
106730,
106740,
106750,
106760,
106770,
106780,
106790,
106800,
106810,
106820,
106830,
106840,
106850,
106860,
106870,
106880,
106890,
106900,
106910,
106920,
106930,
106940,
106950,
106960,
106970,
106980,
106990,
107000,
107010,
107020,
107030,
107040,
107050,
107060,
107070,
107080,
107090,
107100,
107110,
107120,
107130,
107140,
107150,
107160,
107170,
107180,
107190,
107200,
107210,
107220,
107230,
107240,
107250,
107260,
107270,
107280,
107290,
107300,
107310,
107320,
107330,
107340,
107350,
107360,
107370,
107380,
107390,
107400,
107410,
107420,
107430,
107440,
107450,
107460,
107470,
107480,
107490,
107500,
107510,
107520,
107530,
107540,
107550,
107560,
107570,
107580,
107590,
107600,
107610,
107620,
107630,
107640,
107650,
107660,
107670,
107680,
107690,
107700,
107710,
107720,
107730,
107740,
107750,
107760,
107770,
107780,
107790,
107800,
107810,
107820,
107830,
107840,
107850,
107860,
107870,
107880,
107890,
107900,
107910,
107920,
107930,
107940,
107950,
107960,
107970,
107980,
107990,
108000,
108010,
108020,
108030,
108040,
108050,
108060,
108070,
108080,
108090,
108100,
108110,
108120,
108130,
108140,
108150,
108160,
108170,
108180,
108190,
108200,
108210,
108220,
108230,
108240,
108250,
108260,
108270,
108280,
108290,
108300,
108310,
108320,
108330,
108340,
108350,
108360,
108370,
108380,
108390,
108400,
108410,
108420,
108430,
108440,
108450,
108460,
108470,
108480,
108490,
108500,
108510,
108520,
108530,
108540,
108550,
108560,
108570,
108580,
108590,
108600,
108610,
108620,
108630,
108640,
108650,
108660,
108670,
108680,
108690,
108700,
108710,
108720,
108730,
108740,
108750,
108760,
108770,
108780,
108790,
108800,
108810,
108820,
108830,
108840,
108850,
108860,
108870,
108880,
108890,
108900,
108910,
108920,
108930,
108940,
108950,
108960,
108970,
108980,
108990,
109000,
109010,
109020,
109030,
109040,
109050,
109060,
109070,
109080,
109090,
109100,
109110,
109120,
109130,
109140,
109150,
109160,
109170,
109180,
109190,
109200,
109210,
109220,
109230,
109240,
109250,
109260,
109270,
109280,
109290,
109300,
109310,
109320,
109330,
109340,
109350,
109360,
109370,
109380,
109390,
109400,
109410,
109420,
109430,
109440,
109450,
109460,
109470,
109480,
109490,
109500,
109510,
109520,
109530,
109540,
109550,
109560,
109570,
109580,
109590,
109600,
109610,
109620,
109630,
109640,
109650,
109660,
109670,
109680,
109690,
109700,
109710,
109720,
109730,
109740,
109750,
109760,
109770,
109780,
109790,
109800,
109810,
109820,
109830,
109840,
109850,
109860,
109870,
109880,
109890,
109900,
109910,
109920,
109930,
109940,
109950,
109960,
109970,
109980,
109990,
110000,
110010,
110020,
110030,
110040,
110050,
110060,
110070,
110080,
110090,
110100,
110110,
110120,
110130,
110140,
110150,
110160,
110170,
110180,
110190,
110200,
110210,
110220,
110230,
110240,
110250,
110260,
110270,
110280,
110290,
110300,
110310,
110320,
110330,
110340,
110350,
110360,
110370,
110380,
110390,
110400,
110410,
110420,
110430,
110440,
110450,
110460,
110470,
110480,
110490,
110500,
110510,
110520,
110530,
110540,
110550,
110560,
110570,
110580,
110590,
110600,
110610,
110620,
110630,
110640,
110650,
110660,
110670,
110680,
110690,
110700,
110710,
110720,
110730,
110740,
110750,
110760,
110770,
110780,
110790,
110800,
110810,
110820,
110830,
110840,
110850,
110860,
110870,
110880,
110890,
110900,
110910,
110920,
110930,
110940,
110950,
110960,
110970,
110980,
110990,
111000,
111010,
111020,
111030,
111040,
111050,
111060,
111070,
111080,
111090,
111100,
111110,
111120,
111130,
111140,
111150,
111160,
111170,
111180,
111190,
111200,
111210,
111220,
111230,
111240,
111250,
111260,
111270,
111280,
111290,
111300,
111310,
111320,
111330,
111340,
111350,
111360,
111370,
111380,
111390,
111400,
111410,
111420,
111430,
111440,
111450,
111460,
111470,
111480,
111490,
111500,
111510,
111520,
111530,
111540,
111550,
111560,
111570,
111580,
111590,
111600,
111610,
111620,
111630,
111640,
111650,
111660,
111670,
111680,
111690,
111700,
111710,
111720,
111730,
111740,
111750,
111760,
111770,
111780,
111790,
111800,
111810,
111820,
111830,
111840,
111850,
111860,
111870,
111880,
111890,
111900,
111910,
111920,
111930,
111940,
111950,
111960,
111970,
111980,
111990,
112000,
112010,
112020,
112030,
112040,
112050,
112060,
112070,
112080,
112090,
112100,
112110,
112120,
112130,
112140,
112150,
112160,
112170,
112180,
112190,
112200,
112210,
112220,
112230,
112240,
112250,
112260,
112270,
112280,
112290,
112300,
112310,
112320,
112330,
112340,
112350,
112360,
112370,
112380,
112390,
112400,
112410,
112420,
112430,
112440,
112450,
112460,
112470,
112480,
112490,
112500,
112510,
112520,
112530,
112540,
112550,
112560,
112570,
112580,
112590,
112600,
112610,
112620,
112630,
112640,
112650,
112660,
112670,
112680,
112690,
112700,
11271];
11272
11273pub static ALL_OPCODES: [Opcode; 1021] = [
11274Opcode::ADD,
11275Opcode::ADDUW,
11276Opcode::ADDI,
11277Opcode::ADDIW,
11278Opcode::ADDW,
11279Opcode::AES32DSI,
11280Opcode::AES32DSMI,
11281Opcode::AES32ESI,
11282Opcode::AES32ESMI,
11283Opcode::AES64DS,
11284Opcode::AES64DSM,
11285Opcode::AES64ES,
11286Opcode::AES64ESM,
11287Opcode::AES64IM,
11288Opcode::AES64KS1I,
11289Opcode::AES64KS2,
11290Opcode::AMOADDB,
11291Opcode::AMOADDD,
11292Opcode::AMOADDH,
11293Opcode::AMOADDW,
11294Opcode::AMOANDB,
11295Opcode::AMOANDD,
11296Opcode::AMOANDH,
11297Opcode::AMOANDW,
11298Opcode::AMOCASB,
11299Opcode::AMOCASD,
11300Opcode::AMOCASH,
11301Opcode::AMOCASQ,
11302Opcode::AMOCASW,
11303Opcode::AMOMAXB,
11304Opcode::AMOMAXD,
11305Opcode::AMOMAXH,
11306Opcode::AMOMAXW,
11307Opcode::AMOMAXUB,
11308Opcode::AMOMAXUD,
11309Opcode::AMOMAXUH,
11310Opcode::AMOMAXUW,
11311Opcode::AMOMINB,
11312Opcode::AMOMIND,
11313Opcode::AMOMINH,
11314Opcode::AMOMINW,
11315Opcode::AMOMINUB,
11316Opcode::AMOMINUD,
11317Opcode::AMOMINUH,
11318Opcode::AMOMINUW,
11319Opcode::AMOORB,
11320Opcode::AMOORD,
11321Opcode::AMOORH,
11322Opcode::AMOORW,
11323Opcode::AMOSWAPB,
11324Opcode::AMOSWAPD,
11325Opcode::AMOSWAPH,
11326Opcode::AMOSWAPW,
11327Opcode::AMOXORB,
11328Opcode::AMOXORD,
11329Opcode::AMOXORH,
11330Opcode::AMOXORW,
11331Opcode::AND,
11332Opcode::ANDI,
11333Opcode::ANDN,
11334Opcode::AUIPC,
11335Opcode::BCLR,
11336Opcode::BCLRI,
11337Opcode::BCLRIRV32,
11338Opcode::BEQ,
11339Opcode::BEQZ,
11340Opcode::BEXT,
11341Opcode::BEXTI,
11342Opcode::BEXTIRV32,
11343Opcode::BGE,
11344Opcode::BGEU,
11345Opcode::BGEZ,
11346Opcode::BGT,
11347Opcode::BGTU,
11348Opcode::BGTZ,
11349Opcode::BINV,
11350Opcode::BINVI,
11351Opcode::BINVIRV32,
11352Opcode::BLE,
11353Opcode::BLEU,
11354Opcode::BLEZ,
11355Opcode::BLT,
11356Opcode::BLTU,
11357Opcode::BLTZ,
11358Opcode::BNE,
11359Opcode::BNEZ,
11360Opcode::BREV8,
11361Opcode::BSET,
11362Opcode::BSETI,
11363Opcode::BSETIRV32,
11364Opcode::CADD,
11365Opcode::CADDI,
11366Opcode::CADDI16SP,
11367Opcode::CADDI4SPN,
11368Opcode::CADDIW,
11369Opcode::CADDW,
11370Opcode::CAND,
11371Opcode::CANDI,
11372Opcode::CBEQZ,
11373Opcode::CBNEZ,
11374Opcode::CEBREAK,
11375Opcode::CFLD,
11376Opcode::CFLDSP,
11377Opcode::CFLW,
11378Opcode::CFLWSP,
11379Opcode::CFSD,
11380Opcode::CFSDSP,
11381Opcode::CFSW,
11382Opcode::CFSWSP,
11383Opcode::CJ,
11384Opcode::CJAL,
11385Opcode::CJALR,
11386Opcode::CJR,
11387Opcode::CLBU,
11388Opcode::CLD,
11389Opcode::CLDSP,
11390Opcode::CLH,
11391Opcode::CLHU,
11392Opcode::CLI,
11393Opcode::CLUI,
11394Opcode::CLW,
11395Opcode::CLWSP,
11396Opcode::CMOP1,
11397Opcode::CMOP11,
11398Opcode::CMOP13,
11399Opcode::CMOP15,
11400Opcode::CMOP3,
11401Opcode::CMOP5,
11402Opcode::CMOP7,
11403Opcode::CMOP9,
11404Opcode::CMOPN,
11405Opcode::CMUL,
11406Opcode::CMV,
11407Opcode::CNOP,
11408Opcode::CNOT,
11409Opcode::CNTLALL,
11410Opcode::CNTLP1,
11411Opcode::CNTLPALL,
11412Opcode::CNTLS1,
11413Opcode::COR,
11414Opcode::CSB,
11415Opcode::CSD,
11416Opcode::CSDSP,
11417Opcode::CSEXTB,
11418Opcode::CSEXTH,
11419Opcode::CSEXTW,
11420Opcode::CSH,
11421Opcode::CSLLI,
11422Opcode::CSLLIRV32,
11423Opcode::CSRAI,
11424Opcode::CSRAIRV32,
11425Opcode::CSRLI,
11426Opcode::CSRLIRV32,
11427Opcode::CSUB,
11428Opcode::CSUBW,
11429Opcode::CSW,
11430Opcode::CSWSP,
11431Opcode::CXOR,
11432Opcode::CZEXTB,
11433Opcode::CZEXTH,
11434Opcode::CZEXTW,
11435Opcode::CBOCLEAN,
11436Opcode::CBOFLUSH,
11437Opcode::CBOINVAL,
11438Opcode::CBOZERO,
11439Opcode::CLMUL,
11440Opcode::CLMULH,
11441Opcode::CLMULR,
11442Opcode::CLZ,
11443Opcode::CLZW,
11444Opcode::CMJALT,
11445Opcode::CMMVA01S,
11446Opcode::CMMVSA01,
11447Opcode::CMPOP,
11448Opcode::CMPOPRET,
11449Opcode::CMPOPRETZ,
11450Opcode::CMPUSH,
11451Opcode::CPOP,
11452Opcode::CPOPW,
11453Opcode::CSRC,
11454Opcode::CSRCI,
11455Opcode::CSRR,
11456Opcode::CSRRC,
11457Opcode::CSRRCI,
11458Opcode::CSRRS,
11459Opcode::CSRRSI,
11460Opcode::CSRRW,
11461Opcode::CSRRWI,
11462Opcode::CSRS,
11463Opcode::CSRSI,
11464Opcode::CSRW,
11465Opcode::CSRWI,
11466Opcode::CTZ,
11467Opcode::CTZW,
11468Opcode::CZEROEQZ,
11469Opcode::CZERONEZ,
11470Opcode::DIV,
11471Opcode::DIVU,
11472Opcode::DIVUW,
11473Opcode::DIVW,
11474Opcode::DRET,
11475Opcode::EBREAK,
11476Opcode::ECALL,
11477Opcode::FABSD,
11478Opcode::FABSH,
11479Opcode::FABSQ,
11480Opcode::FABSS,
11481Opcode::FADDD,
11482Opcode::FADDH,
11483Opcode::FADDQ,
11484Opcode::FADDS,
11485Opcode::FCLASSD,
11486Opcode::FCLASSH,
11487Opcode::FCLASSQ,
11488Opcode::FCLASSS,
11489Opcode::FCVTDH,
11490Opcode::FCVTDL,
11491Opcode::FCVTDLU,
11492Opcode::FCVTDQ,
11493Opcode::FCVTDS,
11494Opcode::FCVTDW,
11495Opcode::FCVTDWU,
11496Opcode::FCVTHD,
11497Opcode::FCVTHL,
11498Opcode::FCVTHLU,
11499Opcode::FCVTHQ,
11500Opcode::FCVTHS,
11501Opcode::FCVTHW,
11502Opcode::FCVTHWU,
11503Opcode::FCVTLD,
11504Opcode::FCVTLH,
11505Opcode::FCVTLQ,
11506Opcode::FCVTLS,
11507Opcode::FCVTLUD,
11508Opcode::FCVTLUH,
11509Opcode::FCVTLUQ,
11510Opcode::FCVTLUS,
11511Opcode::FCVTQD,
11512Opcode::FCVTQH,
11513Opcode::FCVTQL,
11514Opcode::FCVTQLU,
11515Opcode::FCVTQS,
11516Opcode::FCVTQW,
11517Opcode::FCVTQWU,
11518Opcode::FCVTSD,
11519Opcode::FCVTSH,
11520Opcode::FCVTSL,
11521Opcode::FCVTSLU,
11522Opcode::FCVTSQ,
11523Opcode::FCVTSW,
11524Opcode::FCVTSWU,
11525Opcode::FCVTWD,
11526Opcode::FCVTWH,
11527Opcode::FCVTWQ,
11528Opcode::FCVTWS,
11529Opcode::FCVTWUD,
11530Opcode::FCVTWUH,
11531Opcode::FCVTWUQ,
11532Opcode::FCVTWUS,
11533Opcode::FCVTMODWD,
11534Opcode::FDIVD,
11535Opcode::FDIVH,
11536Opcode::FDIVQ,
11537Opcode::FDIVS,
11538Opcode::FENCE,
11539Opcode::FENCEI,
11540Opcode::FENCETSO,
11541Opcode::FEQD,
11542Opcode::FEQH,
11543Opcode::FEQQ,
11544Opcode::FEQS,
11545Opcode::FLD,
11546Opcode::FLED,
11547Opcode::FLEH,
11548Opcode::FLEQ,
11549Opcode::FLES,
11550Opcode::FLEQD,
11551Opcode::FLEQH,
11552Opcode::FLEQQ,
11553Opcode::FLEQS,
11554Opcode::FLH,
11555Opcode::FLID,
11556Opcode::FLIH,
11557Opcode::FLIQ,
11558Opcode::FLIS,
11559Opcode::FLQ,
11560Opcode::FLTD,
11561Opcode::FLTH,
11562Opcode::FLTQ,
11563Opcode::FLTS,
11564Opcode::FLTQD,
11565Opcode::FLTQH,
11566Opcode::FLTQQ,
11567Opcode::FLTQS,
11568Opcode::FLW,
11569Opcode::FMADDD,
11570Opcode::FMADDH,
11571Opcode::FMADDQ,
11572Opcode::FMADDS,
11573Opcode::FMAXD,
11574Opcode::FMAXH,
11575Opcode::FMAXQ,
11576Opcode::FMAXS,
11577Opcode::FMAXMD,
11578Opcode::FMAXMH,
11579Opcode::FMAXMQ,
11580Opcode::FMAXMS,
11581Opcode::FMIND,
11582Opcode::FMINH,
11583Opcode::FMINQ,
11584Opcode::FMINS,
11585Opcode::FMINMD,
11586Opcode::FMINMH,
11587Opcode::FMINMQ,
11588Opcode::FMINMS,
11589Opcode::FMSUBD,
11590Opcode::FMSUBH,
11591Opcode::FMSUBQ,
11592Opcode::FMSUBS,
11593Opcode::FMULD,
11594Opcode::FMULH,
11595Opcode::FMULQ,
11596Opcode::FMULS,
11597Opcode::FMVD,
11598Opcode::FMVDX,
11599Opcode::FMVH,
11600Opcode::FMVHX,
11601Opcode::FMVQ,
11602Opcode::FMVS,
11603Opcode::FMVSX,
11604Opcode::FMVWX,
11605Opcode::FMVXD,
11606Opcode::FMVXH,
11607Opcode::FMVXS,
11608Opcode::FMVXW,
11609Opcode::FMVHXD,
11610Opcode::FMVHXQ,
11611Opcode::FMVPDX,
11612Opcode::FMVPQX,
11613Opcode::FNEGD,
11614Opcode::FNEGH,
11615Opcode::FNEGQ,
11616Opcode::FNEGS,
11617Opcode::FNMADDD,
11618Opcode::FNMADDH,
11619Opcode::FNMADDQ,
11620Opcode::FNMADDS,
11621Opcode::FNMSUBD,
11622Opcode::FNMSUBH,
11623Opcode::FNMSUBQ,
11624Opcode::FNMSUBS,
11625Opcode::FRCSR,
11626Opcode::FRFLAGS,
11627Opcode::FROUNDD,
11628Opcode::FROUNDH,
11629Opcode::FROUNDQ,
11630Opcode::FROUNDS,
11631Opcode::FROUNDNXD,
11632Opcode::FROUNDNXH,
11633Opcode::FROUNDNXQ,
11634Opcode::FROUNDNXS,
11635Opcode::FRRM,
11636Opcode::FSCSR,
11637Opcode::FSD,
11638Opcode::FSFLAGS,
11639Opcode::FSFLAGSI,
11640Opcode::FSGNJD,
11641Opcode::FSGNJH,
11642Opcode::FSGNJQ,
11643Opcode::FSGNJS,
11644Opcode::FSGNJND,
11645Opcode::FSGNJNH,
11646Opcode::FSGNJNQ,
11647Opcode::FSGNJNS,
11648Opcode::FSGNJXD,
11649Opcode::FSGNJXH,
11650Opcode::FSGNJXQ,
11651Opcode::FSGNJXS,
11652Opcode::FSH,
11653Opcode::FSQ,
11654Opcode::FSQRTD,
11655Opcode::FSQRTH,
11656Opcode::FSQRTQ,
11657Opcode::FSQRTS,
11658Opcode::FSRM,
11659Opcode::FSRMI,
11660Opcode::FSUBD,
11661Opcode::FSUBH,
11662Opcode::FSUBQ,
11663Opcode::FSUBS,
11664Opcode::FSW,
11665Opcode::HFENCEGVMA,
11666Opcode::HFENCEVVMA,
11667Opcode::HINVALGVMA,
11668Opcode::HINVALVVMA,
11669Opcode::HLVB,
11670Opcode::HLVBU,
11671Opcode::HLVD,
11672Opcode::HLVH,
11673Opcode::HLVHU,
11674Opcode::HLVW,
11675Opcode::HLVWU,
11676Opcode::HLVXHU,
11677Opcode::HLVXWU,
11678Opcode::HSVB,
11679Opcode::HSVD,
11680Opcode::HSVH,
11681Opcode::HSVW,
11682Opcode::J,
11683Opcode::JAL,
11684Opcode::JALPSEUDO,
11685Opcode::JALR,
11686Opcode::JALRPSEUDO,
11687Opcode::JR,
11688Opcode::LB,
11689Opcode::LBU,
11690Opcode::LD,
11691Opcode::LH,
11692Opcode::LHU,
11693Opcode::LRD,
11694Opcode::LRW,
11695Opcode::LUI,
11696Opcode::LW,
11697Opcode::LWU,
11698Opcode::MAX,
11699Opcode::MAXU,
11700Opcode::MIN,
11701Opcode::MINU,
11702Opcode::MOPR0,
11703Opcode::MOPR1,
11704Opcode::MOPR10,
11705Opcode::MOPR11,
11706Opcode::MOPR12,
11707Opcode::MOPR13,
11708Opcode::MOPR14,
11709Opcode::MOPR15,
11710Opcode::MOPR16,
11711Opcode::MOPR17,
11712Opcode::MOPR18,
11713Opcode::MOPR19,
11714Opcode::MOPR2,
11715Opcode::MOPR20,
11716Opcode::MOPR21,
11717Opcode::MOPR22,
11718Opcode::MOPR23,
11719Opcode::MOPR24,
11720Opcode::MOPR25,
11721Opcode::MOPR26,
11722Opcode::MOPR27,
11723Opcode::MOPR28,
11724Opcode::MOPR29,
11725Opcode::MOPR3,
11726Opcode::MOPR30,
11727Opcode::MOPR31,
11728Opcode::MOPR4,
11729Opcode::MOPR5,
11730Opcode::MOPR6,
11731Opcode::MOPR7,
11732Opcode::MOPR8,
11733Opcode::MOPR9,
11734Opcode::MOPRN,
11735Opcode::MOPRR0,
11736Opcode::MOPRR1,
11737Opcode::MOPRR2,
11738Opcode::MOPRR3,
11739Opcode::MOPRR4,
11740Opcode::MOPRR5,
11741Opcode::MOPRR6,
11742Opcode::MOPRR7,
11743Opcode::MOPRRN,
11744Opcode::MRET,
11745Opcode::MUL,
11746Opcode::MULH,
11747Opcode::MULHSU,
11748Opcode::MULHU,
11749Opcode::MULW,
11750Opcode::MV,
11751Opcode::NEG,
11752Opcode::NOP,
11753Opcode::NTLALL,
11754Opcode::NTLP1,
11755Opcode::NTLPALL,
11756Opcode::NTLS1,
11757Opcode::OR,
11758Opcode::ORCB,
11759Opcode::ORI,
11760Opcode::ORN,
11761Opcode::PACK,
11762Opcode::PACKH,
11763Opcode::PACKW,
11764Opcode::PAUSE,
11765Opcode::PREFETCHI,
11766Opcode::PREFETCHR,
11767Opcode::PREFETCHW,
11768Opcode::RDCYCLE,
11769Opcode::RDCYCLEH,
11770Opcode::RDINSTRET,
11771Opcode::RDINSTRETH,
11772Opcode::RDTIME,
11773Opcode::RDTIMEH,
11774Opcode::REM,
11775Opcode::REMU,
11776Opcode::REMUW,
11777Opcode::REMW,
11778Opcode::RET,
11779Opcode::REV8,
11780Opcode::REV8RV32,
11781Opcode::ROL,
11782Opcode::ROLW,
11783Opcode::ROR,
11784Opcode::RORI,
11785Opcode::RORIRV32,
11786Opcode::RORIW,
11787Opcode::RORW,
11788Opcode::SB,
11789Opcode::SBREAK,
11790Opcode::SCD,
11791Opcode::SCW,
11792Opcode::SCALL,
11793Opcode::SD,
11794Opcode::SEQZ,
11795Opcode::SEXTB,
11796Opcode::SEXTH,
11797Opcode::SEXTW,
11798Opcode::SFENCEINVALIR,
11799Opcode::SFENCEVMA,
11800Opcode::SFENCEWINVAL,
11801Opcode::SGTZ,
11802Opcode::SH,
11803Opcode::SH1ADD,
11804Opcode::SH1ADDUW,
11805Opcode::SH2ADD,
11806Opcode::SH2ADDUW,
11807Opcode::SH3ADD,
11808Opcode::SH3ADDUW,
11809Opcode::SHA256SIG0,
11810Opcode::SHA256SIG1,
11811Opcode::SHA256SUM0,
11812Opcode::SHA256SUM1,
11813Opcode::SHA512SIG0,
11814Opcode::SHA512SIG0H,
11815Opcode::SHA512SIG0L,
11816Opcode::SHA512SIG1,
11817Opcode::SHA512SIG1H,
11818Opcode::SHA512SIG1L,
11819Opcode::SHA512SUM0,
11820Opcode::SHA512SUM0R,
11821Opcode::SHA512SUM1,
11822Opcode::SHA512SUM1R,
11823Opcode::SINVALVMA,
11824Opcode::SLL,
11825Opcode::SLLI,
11826Opcode::SLLIRV32,
11827Opcode::SLLIUW,
11828Opcode::SLLIW,
11829Opcode::SLLW,
11830Opcode::SLT,
11831Opcode::SLTI,
11832Opcode::SLTIU,
11833Opcode::SLTU,
11834Opcode::SLTZ,
11835Opcode::SM3P0,
11836Opcode::SM3P1,
11837Opcode::SM4ED,
11838Opcode::SM4KS,
11839Opcode::SNEZ,
11840Opcode::SRA,
11841Opcode::SRAI,
11842Opcode::SRAIRV32,
11843Opcode::SRAIW,
11844Opcode::SRAW,
11845Opcode::SRET,
11846Opcode::SRL,
11847Opcode::SRLI,
11848Opcode::SRLIRV32,
11849Opcode::SRLIW,
11850Opcode::SRLW,
11851Opcode::SUB,
11852Opcode::SUBW,
11853Opcode::SW,
11854Opcode::UNZIP,
11855Opcode::VAADDVV,
11856Opcode::VAADDVX,
11857Opcode::VAADDUVV,
11858Opcode::VAADDUVX,
11859Opcode::VADCVIM,
11860Opcode::VADCVVM,
11861Opcode::VADCVXM,
11862Opcode::VADDVI,
11863Opcode::VADDVV,
11864Opcode::VADDVX,
11865Opcode::VAESDFVS,
11866Opcode::VAESDFVV,
11867Opcode::VAESDMVS,
11868Opcode::VAESDMVV,
11869Opcode::VAESEFVS,
11870Opcode::VAESEFVV,
11871Opcode::VAESEMVS,
11872Opcode::VAESEMVV,
11873Opcode::VAESKF1VI,
11874Opcode::VAESKF2VI,
11875Opcode::VAESZVS,
11876Opcode::VANDVI,
11877Opcode::VANDVV,
11878Opcode::VANDVX,
11879Opcode::VANDNVV,
11880Opcode::VANDNVX,
11881Opcode::VASUBVV,
11882Opcode::VASUBVX,
11883Opcode::VASUBUVV,
11884Opcode::VASUBUVX,
11885Opcode::VBREV8V,
11886Opcode::VBREVV,
11887Opcode::VCLMULVV,
11888Opcode::VCLMULVX,
11889Opcode::VCLMULHVV,
11890Opcode::VCLMULHVX,
11891Opcode::VCLZV,
11892Opcode::VCOMPRESSVM,
11893Opcode::VCPOPM,
11894Opcode::VCPOPV,
11895Opcode::VCTZV,
11896Opcode::VDIVVV,
11897Opcode::VDIVVX,
11898Opcode::VDIVUVV,
11899Opcode::VDIVUVX,
11900Opcode::VFADDVF,
11901Opcode::VFADDVV,
11902Opcode::VFCLASSV,
11903Opcode::VFCVTFXV,
11904Opcode::VFCVTFXUV,
11905Opcode::VFCVTRTZXFV,
11906Opcode::VFCVTRTZXUFV,
11907Opcode::VFCVTXFV,
11908Opcode::VFCVTXUFV,
11909Opcode::VFDIVVF,
11910Opcode::VFDIVVV,
11911Opcode::VFIRSTM,
11912Opcode::VFMACCVF,
11913Opcode::VFMACCVV,
11914Opcode::VFMADDVF,
11915Opcode::VFMADDVV,
11916Opcode::VFMAXVF,
11917Opcode::VFMAXVV,
11918Opcode::VFMERGEVFM,
11919Opcode::VFMINVF,
11920Opcode::VFMINVV,
11921Opcode::VFMSACVF,
11922Opcode::VFMSACVV,
11923Opcode::VFMSUBVF,
11924Opcode::VFMSUBVV,
11925Opcode::VFMULVF,
11926Opcode::VFMULVV,
11927Opcode::VFMVFS,
11928Opcode::VFMVSF,
11929Opcode::VFMVVF,
11930Opcode::VFNCVTFFW,
11931Opcode::VFNCVTFXW,
11932Opcode::VFNCVTFXUW,
11933Opcode::VFNCVTRODFFW,
11934Opcode::VFNCVTRTZXFW,
11935Opcode::VFNCVTRTZXUFW,
11936Opcode::VFNCVTXFW,
11937Opcode::VFNCVTXUFW,
11938Opcode::VFNMACCVF,
11939Opcode::VFNMACCVV,
11940Opcode::VFNMADDVF,
11941Opcode::VFNMADDVV,
11942Opcode::VFNMSACVF,
11943Opcode::VFNMSACVV,
11944Opcode::VFNMSUBVF,
11945Opcode::VFNMSUBVV,
11946Opcode::VFRDIVVF,
11947Opcode::VFREC7V,
11948Opcode::VFREDMAXVS,
11949Opcode::VFREDMINVS,
11950Opcode::VFREDOSUMVS,
11951Opcode::VFREDSUMVS,
11952Opcode::VFREDUSUMVS,
11953Opcode::VFRSQRT7V,
11954Opcode::VFRSUBVF,
11955Opcode::VFSGNJVF,
11956Opcode::VFSGNJVV,
11957Opcode::VFSGNJNVF,
11958Opcode::VFSGNJNVV,
11959Opcode::VFSGNJXVF,
11960Opcode::VFSGNJXVV,
11961Opcode::VFSLIDE1DOWNVF,
11962Opcode::VFSLIDE1UPVF,
11963Opcode::VFSQRTV,
11964Opcode::VFSUBVF,
11965Opcode::VFSUBVV,
11966Opcode::VFWADDVF,
11967Opcode::VFWADDVV,
11968Opcode::VFWADDWF,
11969Opcode::VFWADDWV,
11970Opcode::VFWCVTFFV,
11971Opcode::VFWCVTFXV,
11972Opcode::VFWCVTFXUV,
11973Opcode::VFWCVTRTZXFV,
11974Opcode::VFWCVTRTZXUFV,
11975Opcode::VFWCVTXFV,
11976Opcode::VFWCVTXUFV,
11977Opcode::VFWMACCVF,
11978Opcode::VFWMACCVV,
11979Opcode::VFWMSACVF,
11980Opcode::VFWMSACVV,
11981Opcode::VFWMULVF,
11982Opcode::VFWMULVV,
11983Opcode::VFWNMACCVF,
11984Opcode::VFWNMACCVV,
11985Opcode::VFWNMSACVF,
11986Opcode::VFWNMSACVV,
11987Opcode::VFWREDOSUMVS,
11988Opcode::VFWREDSUMVS,
11989Opcode::VFWREDUSUMVS,
11990Opcode::VFWSUBVF,
11991Opcode::VFWSUBVV,
11992Opcode::VFWSUBWF,
11993Opcode::VFWSUBWV,
11994Opcode::VGHSHVV,
11995Opcode::VGMULVV,
11996Opcode::VIDV,
11997Opcode::VIOTAM,
11998Opcode::VL1RV,
11999Opcode::VL1RE16V,
12000Opcode::VL1RE32V,
12001Opcode::VL1RE64V,
12002Opcode::VL1RE8V,
12003Opcode::VL2RV,
12004Opcode::VL2RE16V,
12005Opcode::VL2RE32V,
12006Opcode::VL2RE64V,
12007Opcode::VL2RE8V,
12008Opcode::VL4RV,
12009Opcode::VL4RE16V,
12010Opcode::VL4RE32V,
12011Opcode::VL4RE64V,
12012Opcode::VL4RE8V,
12013Opcode::VL8RV,
12014Opcode::VL8RE16V,
12015Opcode::VL8RE32V,
12016Opcode::VL8RE64V,
12017Opcode::VL8RE8V,
12018Opcode::VLE16V,
12019Opcode::VLE16FFV,
12020Opcode::VLE1V,
12021Opcode::VLE32V,
12022Opcode::VLE32FFV,
12023Opcode::VLE64V,
12024Opcode::VLE64FFV,
12025Opcode::VLE8V,
12026Opcode::VLE8FFV,
12027Opcode::VLMV,
12028Opcode::VLOXEI16V,
12029Opcode::VLOXEI32V,
12030Opcode::VLOXEI64V,
12031Opcode::VLOXEI8V,
12032Opcode::VLSE16V,
12033Opcode::VLSE32V,
12034Opcode::VLSE64V,
12035Opcode::VLSE8V,
12036Opcode::VLUXEI16V,
12037Opcode::VLUXEI32V,
12038Opcode::VLUXEI64V,
12039Opcode::VLUXEI8V,
12040Opcode::VMACCVV,
12041Opcode::VMACCVX,
12042Opcode::VMADCVI,
12043Opcode::VMADCVIM,
12044Opcode::VMADCVV,
12045Opcode::VMADCVVM,
12046Opcode::VMADCVX,
12047Opcode::VMADCVXM,
12048Opcode::VMADDVV,
12049Opcode::VMADDVX,
12050Opcode::VMANDMM,
12051Opcode::VMANDNMM,
12052Opcode::VMANDNOTMM,
12053Opcode::VMAXVV,
12054Opcode::VMAXVX,
12055Opcode::VMAXUVV,
12056Opcode::VMAXUVX,
12057Opcode::VMERGEVIM,
12058Opcode::VMERGEVVM,
12059Opcode::VMERGEVXM,
12060Opcode::VMFEQVF,
12061Opcode::VMFEQVV,
12062Opcode::VMFGEVF,
12063Opcode::VMFGTVF,
12064Opcode::VMFLEVF,
12065Opcode::VMFLEVV,
12066Opcode::VMFLTVF,
12067Opcode::VMFLTVV,
12068Opcode::VMFNEVF,
12069Opcode::VMFNEVV,
12070Opcode::VMINVV,
12071Opcode::VMINVX,
12072Opcode::VMINUVV,
12073Opcode::VMINUVX,
12074Opcode::VMNANDMM,
12075Opcode::VMNORMM,
12076Opcode::VMORMM,
12077Opcode::VMORNMM,
12078Opcode::VMORNOTMM,
12079Opcode::VMSBCVV,
12080Opcode::VMSBCVVM,
12081Opcode::VMSBCVX,
12082Opcode::VMSBCVXM,
12083Opcode::VMSBFM,
12084Opcode::VMSEQVI,
12085Opcode::VMSEQVV,
12086Opcode::VMSEQVX,
12087Opcode::VMSGTVI,
12088Opcode::VMSGTVX,
12089Opcode::VMSGTUVI,
12090Opcode::VMSGTUVX,
12091Opcode::VMSIFM,
12092Opcode::VMSLEVI,
12093Opcode::VMSLEVV,
12094Opcode::VMSLEVX,
12095Opcode::VMSLEUVI,
12096Opcode::VMSLEUVV,
12097Opcode::VMSLEUVX,
12098Opcode::VMSLTVV,
12099Opcode::VMSLTVX,
12100Opcode::VMSLTUVV,
12101Opcode::VMSLTUVX,
12102Opcode::VMSNEVI,
12103Opcode::VMSNEVV,
12104Opcode::VMSNEVX,
12105Opcode::VMSOFM,
12106Opcode::VMULVV,
12107Opcode::VMULVX,
12108Opcode::VMULHVV,
12109Opcode::VMULHVX,
12110Opcode::VMULHSUVV,
12111Opcode::VMULHSUVX,
12112Opcode::VMULHUVV,
12113Opcode::VMULHUVX,
12114Opcode::VMV1RV,
12115Opcode::VMV2RV,
12116Opcode::VMV4RV,
12117Opcode::VMV8RV,
12118Opcode::VMVSX,
12119Opcode::VMVVI,
12120Opcode::VMVVV,
12121Opcode::VMVVX,
12122Opcode::VMVXS,
12123Opcode::VMXNORMM,
12124Opcode::VMXORMM,
12125Opcode::VNCLIPWI,
12126Opcode::VNCLIPWV,
12127Opcode::VNCLIPWX,
12128Opcode::VNCLIPUWI,
12129Opcode::VNCLIPUWV,
12130Opcode::VNCLIPUWX,
12131Opcode::VNMSACVV,
12132Opcode::VNMSACVX,
12133Opcode::VNMSUBVV,
12134Opcode::VNMSUBVX,
12135Opcode::VNSRAWI,
12136Opcode::VNSRAWV,
12137Opcode::VNSRAWX,
12138Opcode::VNSRLWI,
12139Opcode::VNSRLWV,
12140Opcode::VNSRLWX,
12141Opcode::VORVI,
12142Opcode::VORVV,
12143Opcode::VORVX,
12144Opcode::VPOPCM,
12145Opcode::VREDANDVS,
12146Opcode::VREDMAXVS,
12147Opcode::VREDMAXUVS,
12148Opcode::VREDMINVS,
12149Opcode::VREDMINUVS,
12150Opcode::VREDORVS,
12151Opcode::VREDSUMVS,
12152Opcode::VREDXORVS,
12153Opcode::VREMVV,
12154Opcode::VREMVX,
12155Opcode::VREMUVV,
12156Opcode::VREMUVX,
12157Opcode::VREV8V,
12158Opcode::VRGATHERVI,
12159Opcode::VRGATHERVV,
12160Opcode::VRGATHERVX,
12161Opcode::VRGATHEREI16VV,
12162Opcode::VROLVV,
12163Opcode::VROLVX,
12164Opcode::VRORVI,
12165Opcode::VRORVV,
12166Opcode::VRORVX,
12167Opcode::VRSUBVI,
12168Opcode::VRSUBVX,
12169Opcode::VS1RV,
12170Opcode::VS2RV,
12171Opcode::VS4RV,
12172Opcode::VS8RV,
12173Opcode::VSADDVI,
12174Opcode::VSADDVV,
12175Opcode::VSADDVX,
12176Opcode::VSADDUVI,
12177Opcode::VSADDUVV,
12178Opcode::VSADDUVX,
12179Opcode::VSBCVVM,
12180Opcode::VSBCVXM,
12181Opcode::VSE16V,
12182Opcode::VSE1V,
12183Opcode::VSE32V,
12184Opcode::VSE64V,
12185Opcode::VSE8V,
12186Opcode::VSETIVLI,
12187Opcode::VSETVL,
12188Opcode::VSETVLI,
12189Opcode::VSEXTVF2,
12190Opcode::VSEXTVF4,
12191Opcode::VSEXTVF8,
12192Opcode::VSHA2CHVV,
12193Opcode::VSHA2CLVV,
12194Opcode::VSHA2MSVV,
12195Opcode::VSLIDE1DOWNVX,
12196Opcode::VSLIDE1UPVX,
12197Opcode::VSLIDEDOWNVI,
12198Opcode::VSLIDEDOWNVX,
12199Opcode::VSLIDEUPVI,
12200Opcode::VSLIDEUPVX,
12201Opcode::VSLLVI,
12202Opcode::VSLLVV,
12203Opcode::VSLLVX,
12204Opcode::VSM3CVI,
12205Opcode::VSM3MEVV,
12206Opcode::VSM4KVI,
12207Opcode::VSM4RVS,
12208Opcode::VSM4RVV,
12209Opcode::VSMV,
12210Opcode::VSMULVV,
12211Opcode::VSMULVX,
12212Opcode::VSOXEI16V,
12213Opcode::VSOXEI32V,
12214Opcode::VSOXEI64V,
12215Opcode::VSOXEI8V,
12216Opcode::VSRAVI,
12217Opcode::VSRAVV,
12218Opcode::VSRAVX,
12219Opcode::VSRLVI,
12220Opcode::VSRLVV,
12221Opcode::VSRLVX,
12222Opcode::VSSE16V,
12223Opcode::VSSE32V,
12224Opcode::VSSE64V,
12225Opcode::VSSE8V,
12226Opcode::VSSRAVI,
12227Opcode::VSSRAVV,
12228Opcode::VSSRAVX,
12229Opcode::VSSRLVI,
12230Opcode::VSSRLVV,
12231Opcode::VSSRLVX,
12232Opcode::VSSUBVV,
12233Opcode::VSSUBVX,
12234Opcode::VSSUBUVV,
12235Opcode::VSSUBUVX,
12236Opcode::VSUBVV,
12237Opcode::VSUBVX,
12238Opcode::VSUXEI16V,
12239Opcode::VSUXEI32V,
12240Opcode::VSUXEI64V,
12241Opcode::VSUXEI8V,
12242Opcode::VWADDVV,
12243Opcode::VWADDVX,
12244Opcode::VWADDWV,
12245Opcode::VWADDWX,
12246Opcode::VWADDUVV,
12247Opcode::VWADDUVX,
12248Opcode::VWADDUWV,
12249Opcode::VWADDUWX,
12250Opcode::VWMACCVV,
12251Opcode::VWMACCVX,
12252Opcode::VWMACCSUVV,
12253Opcode::VWMACCSUVX,
12254Opcode::VWMACCUVV,
12255Opcode::VWMACCUVX,
12256Opcode::VWMACCUSVX,
12257Opcode::VWMULVV,
12258Opcode::VWMULVX,
12259Opcode::VWMULSUVV,
12260Opcode::VWMULSUVX,
12261Opcode::VWMULUVV,
12262Opcode::VWMULUVX,
12263Opcode::VWREDSUMVS,
12264Opcode::VWREDSUMUVS,
12265Opcode::VWSLLVI,
12266Opcode::VWSLLVV,
12267Opcode::VWSLLVX,
12268Opcode::VWSUBVV,
12269Opcode::VWSUBVX,
12270Opcode::VWSUBWV,
12271Opcode::VWSUBWX,
12272Opcode::VWSUBUVV,
12273Opcode::VWSUBUVX,
12274Opcode::VWSUBUWV,
12275Opcode::VWSUBUWX,
12276Opcode::VXORVI,
12277Opcode::VXORVV,
12278Opcode::VXORVX,
12279Opcode::VZEXTVF2,
12280Opcode::VZEXTVF4,
12281Opcode::VZEXTVF8,
12282Opcode::WFI,
12283Opcode::WRSNTO,
12284Opcode::WRSSTO,
12285Opcode::XNOR,
12286Opcode::XOR,
12287Opcode::XORI,
12288Opcode::XPERM4,
12289Opcode::XPERM8,
12290Opcode::ZEXTB,
12291Opcode::ZEXTH,
12292Opcode::ZEXTHRV32,
12293Opcode::ZEXTW,
12294Opcode::ZIP,
12295];
12296pub static SHORT_OPCODE: [bool; 1021] = [
12297false,
12298false,
12299false,
12300false,
12301false,
12302false,
12303false,
12304false,
12305false,
12306false,
12307false,
12308false,
12309false,
12310false,
12311false,
12312false,
12313false,
12314false,
12315false,
12316false,
12317false,
12318false,
12319false,
12320false,
12321false,
12322false,
12323false,
12324false,
12325false,
12326false,
12327false,
12328false,
12329false,
12330false,
12331false,
12332false,
12333false,
12334false,
12335false,
12336false,
12337false,
12338false,
12339false,
12340false,
12341false,
12342false,
12343false,
12344false,
12345false,
12346false,
12347false,
12348false,
12349false,
12350false,
12351false,
12352false,
12353false,
12354false,
12355false,
12356false,
12357false,
12358false,
12359false,
12360false,
12361false,
12362false,
12363false,
12364false,
12365false,
12366false,
12367false,
12368false,
12369false,
12370false,
12371false,
12372false,
12373false,
12374false,
12375false,
12376false,
12377false,
12378false,
12379false,
12380false,
12381false,
12382false,
12383false,
12384false,
12385false,
12386false,
12387true,
12388true,
12389true,
12390true,
12391true,
12392true,
12393true,
12394true,
12395true,
12396true,
12397true,
12398true,
12399true,
12400true,
12401true,
12402true,
12403true,
12404true,
12405true,
12406true,
12407true,
12408true,
12409true,
12410true,
12411true,
12412true,
12413true,
12414true,
12415true,
12416true,
12417true,
12418true,
12419true,
12420true,
12421true,
12422true,
12423true,
12424true,
12425true,
12426true,
12427true,
12428true,
12429true,
12430true,
12431true,
12432true,
12433true,
12434true,
12435true,
12436true,
12437true,
12438true,
12439true,
12440true,
12441true,
12442true,
12443true,
12444true,
12445true,
12446true,
12447true,
12448true,
12449true,
12450true,
12451true,
12452true,
12453true,
12454true,
12455true,
12456true,
12457true,
12458true,
12459true,
12460true,
12461true,
12462true,
12463true,
12464true,
12465true,
12466true,
12467true,
12468true,
12469true,
12470true,
12471true,
12472true,
12473true,
12474true,
12475true,
12476true,
12477true,
12478true,
12479true,
12480true,
12481true,
12482true,
12483true,
12484true,
12485true,
12486true,
12487true,
12488true,
12489true,
12490true,
12491true,
12492true,
12493false,
12494false,
12495false,
12496false,
12497false,
12498false,
12499false,
12500false,
12501false,
12502false,
12503false,
12504false,
12505false,
12506false,
12507false,
12508false,
12509false,
12510false,
12511false,
12512false,
12513false,
12514false,
12515false,
12516false,
12517false,
12518false,
12519false,
12520false,
12521false,
12522false,
12523false,
12524false,
12525false,
12526false,
12527false,
12528false,
12529false,
12530false,
12531false,
12532false,
12533false,
12534false,
12535false,
12536false,
12537false,
12538false,
12539false,
12540false,
12541false,
12542false,
12543false,
12544false,
12545false,
12546false,
12547false,
12548false,
12549false,
12550false,
12551false,
12552false,
12553false,
12554false,
12555false,
12556false,
12557false,
12558false,
12559false,
12560false,
12561false,
12562false,
12563false,
12564false,
12565false,
12566false,
12567false,
12568false,
12569false,
12570false,
12571false,
12572false,
12573false,
12574false,
12575false,
12576false,
12577false,
12578false,
12579false,
12580false,
12581false,
12582false,
12583false,
12584false,
12585false,
12586false,
12587false,
12588false,
12589false,
12590false,
12591false,
12592false,
12593false,
12594false,
12595false,
12596false,
12597false,
12598false,
12599false,
12600false,
12601false,
12602false,
12603false,
12604false,
12605false,
12606false,
12607false,
12608false,
12609false,
12610false,
12611false,
12612false,
12613false,
12614false,
12615false,
12616false,
12617false,
12618false,
12619false,
12620false,
12621false,
12622false,
12623false,
12624false,
12625false,
12626false,
12627false,
12628false,
12629false,
12630false,
12631false,
12632false,
12633false,
12634false,
12635false,
12636false,
12637false,
12638false,
12639false,
12640false,
12641false,
12642false,
12643false,
12644false,
12645false,
12646false,
12647false,
12648false,
12649false,
12650false,
12651false,
12652false,
12653false,
12654false,
12655false,
12656false,
12657false,
12658false,
12659false,
12660false,
12661false,
12662false,
12663false,
12664false,
12665false,
12666false,
12667false,
12668false,
12669false,
12670false,
12671false,
12672false,
12673false,
12674false,
12675false,
12676false,
12677false,
12678false,
12679false,
12680false,
12681false,
12682false,
12683false,
12684false,
12685false,
12686false,
12687false,
12688false,
12689false,
12690false,
12691false,
12692false,
12693false,
12694false,
12695false,
12696false,
12697false,
12698false,
12699false,
12700false,
12701false,
12702false,
12703false,
12704false,
12705false,
12706false,
12707false,
12708false,
12709false,
12710false,
12711false,
12712false,
12713false,
12714false,
12715false,
12716false,
12717false,
12718false,
12719false,
12720false,
12721false,
12722false,
12723false,
12724false,
12725false,
12726false,
12727false,
12728false,
12729false,
12730false,
12731false,
12732false,
12733false,
12734false,
12735false,
12736false,
12737false,
12738false,
12739false,
12740false,
12741false,
12742false,
12743false,
12744false,
12745false,
12746false,
12747false,
12748false,
12749false,
12750false,
12751false,
12752false,
12753false,
12754false,
12755false,
12756false,
12757false,
12758false,
12759false,
12760false,
12761false,
12762false,
12763false,
12764false,
12765false,
12766false,
12767false,
12768false,
12769false,
12770false,
12771false,
12772false,
12773false,
12774false,
12775false,
12776false,
12777false,
12778false,
12779false,
12780false,
12781false,
12782false,
12783false,
12784false,
12785false,
12786false,
12787false,
12788false,
12789false,
12790false,
12791false,
12792false,
12793false,
12794false,
12795false,
12796false,
12797false,
12798false,
12799false,
12800false,
12801false,
12802false,
12803false,
12804false,
12805false,
12806false,
12807false,
12808false,
12809false,
12810false,
12811false,
12812false,
12813false,
12814false,
12815false,
12816false,
12817false,
12818false,
12819false,
12820false,
12821false,
12822false,
12823false,
12824false,
12825false,
12826false,
12827false,
12828false,
12829false,
12830false,
12831false,
12832false,
12833false,
12834false,
12835false,
12836false,
12837false,
12838false,
12839false,
12840false,
12841false,
12842false,
12843false,
12844false,
12845false,
12846false,
12847false,
12848false,
12849false,
12850false,
12851false,
12852false,
12853false,
12854false,
12855false,
12856false,
12857false,
12858false,
12859false,
12860false,
12861false,
12862false,
12863false,
12864false,
12865false,
12866false,
12867false,
12868false,
12869false,
12870false,
12871false,
12872false,
12873false,
12874false,
12875false,
12876false,
12877false,
12878false,
12879false,
12880false,
12881false,
12882false,
12883false,
12884false,
12885false,
12886false,
12887false,
12888false,
12889false,
12890false,
12891false,
12892false,
12893false,
12894false,
12895false,
12896false,
12897false,
12898false,
12899false,
12900false,
12901false,
12902false,
12903false,
12904false,
12905false,
12906false,
12907false,
12908false,
12909false,
12910false,
12911false,
12912false,
12913false,
12914false,
12915false,
12916false,
12917false,
12918false,
12919false,
12920false,
12921false,
12922false,
12923false,
12924false,
12925false,
12926false,
12927false,
12928false,
12929false,
12930false,
12931false,
12932false,
12933false,
12934false,
12935false,
12936false,
12937false,
12938false,
12939false,
12940false,
12941false,
12942false,
12943false,
12944false,
12945false,
12946false,
12947false,
12948false,
12949false,
12950false,
12951false,
12952false,
12953false,
12954false,
12955false,
12956false,
12957false,
12958false,
12959false,
12960false,
12961false,
12962false,
12963false,
12964false,
12965false,
12966false,
12967false,
12968false,
12969false,
12970false,
12971false,
12972false,
12973false,
12974false,
12975false,
12976false,
12977false,
12978false,
12979false,
12980false,
12981false,
12982false,
12983false,
12984false,
12985false,
12986false,
12987false,
12988false,
12989false,
12990false,
12991false,
12992false,
12993false,
12994false,
12995false,
12996false,
12997false,
12998false,
12999false,
13000false,
13001false,
13002false,
13003false,
13004false,
13005false,
13006false,
13007false,
13008false,
13009false,
13010false,
13011false,
13012false,
13013false,
13014false,
13015false,
13016false,
13017false,
13018false,
13019false,
13020false,
13021false,
13022false,
13023false,
13024false,
13025false,
13026false,
13027false,
13028false,
13029false,
13030false,
13031false,
13032false,
13033false,
13034false,
13035false,
13036false,
13037false,
13038false,
13039false,
13040false,
13041false,
13042false,
13043false,
13044false,
13045false,
13046false,
13047false,
13048false,
13049false,
13050false,
13051false,
13052false,
13053false,
13054false,
13055false,
13056false,
13057false,
13058false,
13059false,
13060false,
13061false,
13062false,
13063false,
13064false,
13065false,
13066false,
13067false,
13068false,
13069false,
13070false,
13071false,
13072false,
13073false,
13074false,
13075false,
13076false,
13077false,
13078false,
13079false,
13080false,
13081false,
13082false,
13083false,
13084false,
13085false,
13086false,
13087false,
13088false,
13089false,
13090false,
13091false,
13092false,
13093false,
13094false,
13095false,
13096false,
13097false,
13098false,
13099false,
13100false,
13101false,
13102false,
13103false,
13104false,
13105false,
13106false,
13107false,
13108false,
13109false,
13110false,
13111false,
13112false,
13113false,
13114false,
13115false,
13116false,
13117false,
13118false,
13119false,
13120false,
13121false,
13122false,
13123false,
13124false,
13125false,
13126false,
13127false,
13128false,
13129false,
13130false,
13131false,
13132false,
13133false,
13134false,
13135false,
13136false,
13137false,
13138false,
13139false,
13140false,
13141false,
13142false,
13143false,
13144false,
13145false,
13146false,
13147false,
13148false,
13149false,
13150false,
13151false,
13152false,
13153false,
13154false,
13155false,
13156false,
13157false,
13158false,
13159false,
13160false,
13161false,
13162false,
13163false,
13164false,
13165false,
13166false,
13167false,
13168false,
13169false,
13170false,
13171false,
13172false,
13173false,
13174false,
13175false,
13176false,
13177false,
13178false,
13179false,
13180false,
13181false,
13182false,
13183false,
13184false,
13185false,
13186false,
13187false,
13188false,
13189false,
13190false,
13191false,
13192false,
13193false,
13194false,
13195false,
13196false,
13197false,
13198false,
13199false,
13200false,
13201false,
13202false,
13203false,
13204false,
13205false,
13206false,
13207false,
13208false,
13209false,
13210false,
13211false,
13212false,
13213false,
13214false,
13215false,
13216false,
13217false,
13218false,
13219false,
13220false,
13221false,
13222false,
13223false,
13224false,
13225false,
13226false,
13227false,
13228false,
13229false,
13230false,
13231false,
13232false,
13233false,
13234false,
13235false,
13236false,
13237false,
13238false,
13239false,
13240false,
13241false,
13242false,
13243false,
13244false,
13245false,
13246false,
13247false,
13248false,
13249false,
13250false,
13251false,
13252false,
13253false,
13254false,
13255false,
13256false,
13257false,
13258false,
13259false,
13260false,
13261false,
13262false,
13263false,
13264false,
13265false,
13266false,
13267false,
13268false,
13269false,
13270false,
13271false,
13272false,
13273false,
13274false,
13275false,
13276false,
13277false,
13278false,
13279false,
13280false,
13281false,
13282false,
13283false,
13284false,
13285false,
13286false,
13287false,
13288false,
13289false,
13290false,
13291false,
13292false,
13293false,
13294false,
13295false,
13296false,
13297false,
13298false,
13299false,
13300false,
13301false,
13302false,
13303false,
13304false,
13305false,
13306false,
13307false,
13308false,
13309false,
13310false,
13311false,
13312false,
13313false,
13314false,
13315false,
13316false,
13317false,
13318];
13319pub const SHORT_OPCODES: [Opcode; 106] = [
13320Opcode::CADD,
13321Opcode::CADDI,
13322Opcode::CADDI16SP,
13323Opcode::CADDI4SPN,
13324Opcode::CADDIW,
13325Opcode::CADDW,
13326Opcode::CAND,
13327Opcode::CANDI,
13328Opcode::CBEQZ,
13329Opcode::CBNEZ,
13330Opcode::CEBREAK,
13331Opcode::CFLD,
13332Opcode::CFLDSP,
13333Opcode::CFLW,
13334Opcode::CFLWSP,
13335Opcode::CFSD,
13336Opcode::CFSDSP,
13337Opcode::CFSW,
13338Opcode::CFSWSP,
13339Opcode::CJ,
13340Opcode::CJAL,
13341Opcode::CJALR,
13342Opcode::CJR,
13343Opcode::CLBU,
13344Opcode::CLD,
13345Opcode::CLDSP,
13346Opcode::CLH,
13347Opcode::CLHU,
13348Opcode::CLI,
13349Opcode::CLUI,
13350Opcode::CLW,
13351Opcode::CLWSP,
13352Opcode::CMOP1,
13353Opcode::CMOP11,
13354Opcode::CMOP13,
13355Opcode::CMOP15,
13356Opcode::CMOP3,
13357Opcode::CMOP5,
13358Opcode::CMOP7,
13359Opcode::CMOP9,
13360Opcode::CMOPN,
13361Opcode::CMUL,
13362Opcode::CMV,
13363Opcode::CNOP,
13364Opcode::CNOT,
13365Opcode::CNTLALL,
13366Opcode::CNTLP1,
13367Opcode::CNTLPALL,
13368Opcode::CNTLS1,
13369Opcode::COR,
13370Opcode::CSB,
13371Opcode::CSD,
13372Opcode::CSDSP,
13373Opcode::CSEXTB,
13374Opcode::CSEXTH,
13375Opcode::CSEXTW,
13376Opcode::CSH,
13377Opcode::CSLLI,
13378Opcode::CSLLIRV32,
13379Opcode::CSRAI,
13380Opcode::CSRAIRV32,
13381Opcode::CSRLI,
13382Opcode::CSRLIRV32,
13383Opcode::CSUB,
13384Opcode::CSUBW,
13385Opcode::CSW,
13386Opcode::CSWSP,
13387Opcode::CXOR,
13388Opcode::CZEXTB,
13389Opcode::CZEXTH,
13390Opcode::CZEXTW,
13391Opcode::CBOCLEAN,
13392Opcode::CBOFLUSH,
13393Opcode::CBOINVAL,
13394Opcode::CBOZERO,
13395Opcode::CLMUL,
13396Opcode::CLMULH,
13397Opcode::CLMULR,
13398Opcode::CLZ,
13399Opcode::CLZW,
13400Opcode::CMJALT,
13401Opcode::CMMVA01S,
13402Opcode::CMMVSA01,
13403Opcode::CMPOP,
13404Opcode::CMPOPRET,
13405Opcode::CMPOPRETZ,
13406Opcode::CMPUSH,
13407Opcode::CPOP,
13408Opcode::CPOPW,
13409Opcode::CSRC,
13410Opcode::CSRCI,
13411Opcode::CSRR,
13412Opcode::CSRRC,
13413Opcode::CSRRCI,
13414Opcode::CSRRS,
13415Opcode::CSRRSI,
13416Opcode::CSRRW,
13417Opcode::CSRRWI,
13418Opcode::CSRS,
13419Opcode::CSRSI,
13420Opcode::CSRW,
13421Opcode::CSRWI,
13422Opcode::CTZ,
13423Opcode::CTZW,
13424Opcode::CZEROEQZ,
13425Opcode::CZERONEZ,
13426];
13427
13428#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
13429#[repr(u32)]
13430pub enum Opcode {
13431    ADD,
13432    ADDUW,
13433    ADDI,
13434    ADDIW,
13435    ADDW,
13436    AES32DSI,
13437    AES32DSMI,
13438    AES32ESI,
13439    AES32ESMI,
13440    AES64DS,
13441    AES64DSM,
13442    AES64ES,
13443    AES64ESM,
13444    AES64IM,
13445    AES64KS1I,
13446    AES64KS2,
13447    AMOADDB,
13448    AMOADDD,
13449    AMOADDH,
13450    AMOADDW,
13451    AMOANDB,
13452    AMOANDD,
13453    AMOANDH,
13454    AMOANDW,
13455    AMOCASB,
13456    AMOCASD,
13457    AMOCASH,
13458    AMOCASQ,
13459    AMOCASW,
13460    AMOMAXB,
13461    AMOMAXD,
13462    AMOMAXH,
13463    AMOMAXW,
13464    AMOMAXUB,
13465    AMOMAXUD,
13466    AMOMAXUH,
13467    AMOMAXUW,
13468    AMOMINB,
13469    AMOMIND,
13470    AMOMINH,
13471    AMOMINW,
13472    AMOMINUB,
13473    AMOMINUD,
13474    AMOMINUH,
13475    AMOMINUW,
13476    AMOORB,
13477    AMOORD,
13478    AMOORH,
13479    AMOORW,
13480    AMOSWAPB,
13481    AMOSWAPD,
13482    AMOSWAPH,
13483    AMOSWAPW,
13484    AMOXORB,
13485    AMOXORD,
13486    AMOXORH,
13487    AMOXORW,
13488    AND,
13489    ANDI,
13490    ANDN,
13491    AUIPC,
13492    BCLR,
13493    BCLRI,
13494    BCLRIRV32,
13495    BEQ,
13496    BEQZ,
13497    BEXT,
13498    BEXTI,
13499    BEXTIRV32,
13500    BGE,
13501    BGEU,
13502    BGEZ,
13503    BGT,
13504    BGTU,
13505    BGTZ,
13506    BINV,
13507    BINVI,
13508    BINVIRV32,
13509    BLE,
13510    BLEU,
13511    BLEZ,
13512    BLT,
13513    BLTU,
13514    BLTZ,
13515    BNE,
13516    BNEZ,
13517    BREV8,
13518    BSET,
13519    BSETI,
13520    BSETIRV32,
13521    CADD,
13522    CADDI,
13523    CADDI16SP,
13524    CADDI4SPN,
13525    CADDIW,
13526    CADDW,
13527    CAND,
13528    CANDI,
13529    CBEQZ,
13530    CBNEZ,
13531    CEBREAK,
13532    CFLD,
13533    CFLDSP,
13534    CFLW,
13535    CFLWSP,
13536    CFSD,
13537    CFSDSP,
13538    CFSW,
13539    CFSWSP,
13540    CJ,
13541    CJAL,
13542    CJALR,
13543    CJR,
13544    CLBU,
13545    CLD,
13546    CLDSP,
13547    CLH,
13548    CLHU,
13549    CLI,
13550    CLUI,
13551    CLW,
13552    CLWSP,
13553    CMOP1,
13554    CMOP11,
13555    CMOP13,
13556    CMOP15,
13557    CMOP3,
13558    CMOP5,
13559    CMOP7,
13560    CMOP9,
13561    CMOPN,
13562    CMUL,
13563    CMV,
13564    CNOP,
13565    CNOT,
13566    CNTLALL,
13567    CNTLP1,
13568    CNTLPALL,
13569    CNTLS1,
13570    COR,
13571    CSB,
13572    CSD,
13573    CSDSP,
13574    CSEXTB,
13575    CSEXTH,
13576    CSEXTW,
13577    CSH,
13578    CSLLI,
13579    CSLLIRV32,
13580    CSRAI,
13581    CSRAIRV32,
13582    CSRLI,
13583    CSRLIRV32,
13584    CSUB,
13585    CSUBW,
13586    CSW,
13587    CSWSP,
13588    CXOR,
13589    CZEXTB,
13590    CZEXTH,
13591    CZEXTW,
13592    CBOCLEAN,
13593    CBOFLUSH,
13594    CBOINVAL,
13595    CBOZERO,
13596    CLMUL,
13597    CLMULH,
13598    CLMULR,
13599    CLZ,
13600    CLZW,
13601    CMJALT,
13602    CMMVA01S,
13603    CMMVSA01,
13604    CMPOP,
13605    CMPOPRET,
13606    CMPOPRETZ,
13607    CMPUSH,
13608    CPOP,
13609    CPOPW,
13610    CSRC,
13611    CSRCI,
13612    CSRR,
13613    CSRRC,
13614    CSRRCI,
13615    CSRRS,
13616    CSRRSI,
13617    CSRRW,
13618    CSRRWI,
13619    CSRS,
13620    CSRSI,
13621    CSRW,
13622    CSRWI,
13623    CTZ,
13624    CTZW,
13625    CZEROEQZ,
13626    CZERONEZ,
13627    DIV,
13628    DIVU,
13629    DIVUW,
13630    DIVW,
13631    DRET,
13632    EBREAK,
13633    ECALL,
13634    FABSD,
13635    FABSH,
13636    FABSQ,
13637    FABSS,
13638    FADDD,
13639    FADDH,
13640    FADDQ,
13641    FADDS,
13642    FCLASSD,
13643    FCLASSH,
13644    FCLASSQ,
13645    FCLASSS,
13646    FCVTDH,
13647    FCVTDL,
13648    FCVTDLU,
13649    FCVTDQ,
13650    FCVTDS,
13651    FCVTDW,
13652    FCVTDWU,
13653    FCVTHD,
13654    FCVTHL,
13655    FCVTHLU,
13656    FCVTHQ,
13657    FCVTHS,
13658    FCVTHW,
13659    FCVTHWU,
13660    FCVTLD,
13661    FCVTLH,
13662    FCVTLQ,
13663    FCVTLS,
13664    FCVTLUD,
13665    FCVTLUH,
13666    FCVTLUQ,
13667    FCVTLUS,
13668    FCVTQD,
13669    FCVTQH,
13670    FCVTQL,
13671    FCVTQLU,
13672    FCVTQS,
13673    FCVTQW,
13674    FCVTQWU,
13675    FCVTSD,
13676    FCVTSH,
13677    FCVTSL,
13678    FCVTSLU,
13679    FCVTSQ,
13680    FCVTSW,
13681    FCVTSWU,
13682    FCVTWD,
13683    FCVTWH,
13684    FCVTWQ,
13685    FCVTWS,
13686    FCVTWUD,
13687    FCVTWUH,
13688    FCVTWUQ,
13689    FCVTWUS,
13690    FCVTMODWD,
13691    FDIVD,
13692    FDIVH,
13693    FDIVQ,
13694    FDIVS,
13695    FENCE,
13696    FENCEI,
13697    FENCETSO,
13698    FEQD,
13699    FEQH,
13700    FEQQ,
13701    FEQS,
13702    FLD,
13703    FLED,
13704    FLEH,
13705    FLEQ,
13706    FLES,
13707    FLEQD,
13708    FLEQH,
13709    FLEQQ,
13710    FLEQS,
13711    FLH,
13712    FLID,
13713    FLIH,
13714    FLIQ,
13715    FLIS,
13716    FLQ,
13717    FLTD,
13718    FLTH,
13719    FLTQ,
13720    FLTS,
13721    FLTQD,
13722    FLTQH,
13723    FLTQQ,
13724    FLTQS,
13725    FLW,
13726    FMADDD,
13727    FMADDH,
13728    FMADDQ,
13729    FMADDS,
13730    FMAXD,
13731    FMAXH,
13732    FMAXQ,
13733    FMAXS,
13734    FMAXMD,
13735    FMAXMH,
13736    FMAXMQ,
13737    FMAXMS,
13738    FMIND,
13739    FMINH,
13740    FMINQ,
13741    FMINS,
13742    FMINMD,
13743    FMINMH,
13744    FMINMQ,
13745    FMINMS,
13746    FMSUBD,
13747    FMSUBH,
13748    FMSUBQ,
13749    FMSUBS,
13750    FMULD,
13751    FMULH,
13752    FMULQ,
13753    FMULS,
13754    FMVD,
13755    FMVDX,
13756    FMVH,
13757    FMVHX,
13758    FMVQ,
13759    FMVS,
13760    FMVSX,
13761    FMVWX,
13762    FMVXD,
13763    FMVXH,
13764    FMVXS,
13765    FMVXW,
13766    FMVHXD,
13767    FMVHXQ,
13768    FMVPDX,
13769    FMVPQX,
13770    FNEGD,
13771    FNEGH,
13772    FNEGQ,
13773    FNEGS,
13774    FNMADDD,
13775    FNMADDH,
13776    FNMADDQ,
13777    FNMADDS,
13778    FNMSUBD,
13779    FNMSUBH,
13780    FNMSUBQ,
13781    FNMSUBS,
13782    FRCSR,
13783    FRFLAGS,
13784    FROUNDD,
13785    FROUNDH,
13786    FROUNDQ,
13787    FROUNDS,
13788    FROUNDNXD,
13789    FROUNDNXH,
13790    FROUNDNXQ,
13791    FROUNDNXS,
13792    FRRM,
13793    FSCSR,
13794    FSD,
13795    FSFLAGS,
13796    FSFLAGSI,
13797    FSGNJD,
13798    FSGNJH,
13799    FSGNJQ,
13800    FSGNJS,
13801    FSGNJND,
13802    FSGNJNH,
13803    FSGNJNQ,
13804    FSGNJNS,
13805    FSGNJXD,
13806    FSGNJXH,
13807    FSGNJXQ,
13808    FSGNJXS,
13809    FSH,
13810    FSQ,
13811    FSQRTD,
13812    FSQRTH,
13813    FSQRTQ,
13814    FSQRTS,
13815    FSRM,
13816    FSRMI,
13817    FSUBD,
13818    FSUBH,
13819    FSUBQ,
13820    FSUBS,
13821    FSW,
13822    HFENCEGVMA,
13823    HFENCEVVMA,
13824    HINVALGVMA,
13825    HINVALVVMA,
13826    HLVB,
13827    HLVBU,
13828    HLVD,
13829    HLVH,
13830    HLVHU,
13831    HLVW,
13832    HLVWU,
13833    HLVXHU,
13834    HLVXWU,
13835    HSVB,
13836    HSVD,
13837    HSVH,
13838    HSVW,
13839    J,
13840    JAL,
13841    JALPSEUDO,
13842    JALR,
13843    JALRPSEUDO,
13844    JR,
13845    LB,
13846    LBU,
13847    LD,
13848    LH,
13849    LHU,
13850    LRD,
13851    LRW,
13852    LUI,
13853    LW,
13854    LWU,
13855    MAX,
13856    MAXU,
13857    MIN,
13858    MINU,
13859    MOPR0,
13860    MOPR1,
13861    MOPR10,
13862    MOPR11,
13863    MOPR12,
13864    MOPR13,
13865    MOPR14,
13866    MOPR15,
13867    MOPR16,
13868    MOPR17,
13869    MOPR18,
13870    MOPR19,
13871    MOPR2,
13872    MOPR20,
13873    MOPR21,
13874    MOPR22,
13875    MOPR23,
13876    MOPR24,
13877    MOPR25,
13878    MOPR26,
13879    MOPR27,
13880    MOPR28,
13881    MOPR29,
13882    MOPR3,
13883    MOPR30,
13884    MOPR31,
13885    MOPR4,
13886    MOPR5,
13887    MOPR6,
13888    MOPR7,
13889    MOPR8,
13890    MOPR9,
13891    MOPRN,
13892    MOPRR0,
13893    MOPRR1,
13894    MOPRR2,
13895    MOPRR3,
13896    MOPRR4,
13897    MOPRR5,
13898    MOPRR6,
13899    MOPRR7,
13900    MOPRRN,
13901    MRET,
13902    MUL,
13903    MULH,
13904    MULHSU,
13905    MULHU,
13906    MULW,
13907    MV,
13908    NEG,
13909    NOP,
13910    NTLALL,
13911    NTLP1,
13912    NTLPALL,
13913    NTLS1,
13914    OR,
13915    ORCB,
13916    ORI,
13917    ORN,
13918    PACK,
13919    PACKH,
13920    PACKW,
13921    PAUSE,
13922    PREFETCHI,
13923    PREFETCHR,
13924    PREFETCHW,
13925    RDCYCLE,
13926    RDCYCLEH,
13927    RDINSTRET,
13928    RDINSTRETH,
13929    RDTIME,
13930    RDTIMEH,
13931    REM,
13932    REMU,
13933    REMUW,
13934    REMW,
13935    RET,
13936    REV8,
13937    REV8RV32,
13938    ROL,
13939    ROLW,
13940    ROR,
13941    RORI,
13942    RORIRV32,
13943    RORIW,
13944    RORW,
13945    SB,
13946    SBREAK,
13947    SCD,
13948    SCW,
13949    SCALL,
13950    SD,
13951    SEQZ,
13952    SEXTB,
13953    SEXTH,
13954    SEXTW,
13955    SFENCEINVALIR,
13956    SFENCEVMA,
13957    SFENCEWINVAL,
13958    SGTZ,
13959    SH,
13960    SH1ADD,
13961    SH1ADDUW,
13962    SH2ADD,
13963    SH2ADDUW,
13964    SH3ADD,
13965    SH3ADDUW,
13966    SHA256SIG0,
13967    SHA256SIG1,
13968    SHA256SUM0,
13969    SHA256SUM1,
13970    SHA512SIG0,
13971    SHA512SIG0H,
13972    SHA512SIG0L,
13973    SHA512SIG1,
13974    SHA512SIG1H,
13975    SHA512SIG1L,
13976    SHA512SUM0,
13977    SHA512SUM0R,
13978    SHA512SUM1,
13979    SHA512SUM1R,
13980    SINVALVMA,
13981    SLL,
13982    SLLI,
13983    SLLIRV32,
13984    SLLIUW,
13985    SLLIW,
13986    SLLW,
13987    SLT,
13988    SLTI,
13989    SLTIU,
13990    SLTU,
13991    SLTZ,
13992    SM3P0,
13993    SM3P1,
13994    SM4ED,
13995    SM4KS,
13996    SNEZ,
13997    SRA,
13998    SRAI,
13999    SRAIRV32,
14000    SRAIW,
14001    SRAW,
14002    SRET,
14003    SRL,
14004    SRLI,
14005    SRLIRV32,
14006    SRLIW,
14007    SRLW,
14008    SUB,
14009    SUBW,
14010    SW,
14011    UNZIP,
14012    VAADDVV,
14013    VAADDVX,
14014    VAADDUVV,
14015    VAADDUVX,
14016    VADCVIM,
14017    VADCVVM,
14018    VADCVXM,
14019    VADDVI,
14020    VADDVV,
14021    VADDVX,
14022    VAESDFVS,
14023    VAESDFVV,
14024    VAESDMVS,
14025    VAESDMVV,
14026    VAESEFVS,
14027    VAESEFVV,
14028    VAESEMVS,
14029    VAESEMVV,
14030    VAESKF1VI,
14031    VAESKF2VI,
14032    VAESZVS,
14033    VANDVI,
14034    VANDVV,
14035    VANDVX,
14036    VANDNVV,
14037    VANDNVX,
14038    VASUBVV,
14039    VASUBVX,
14040    VASUBUVV,
14041    VASUBUVX,
14042    VBREV8V,
14043    VBREVV,
14044    VCLMULVV,
14045    VCLMULVX,
14046    VCLMULHVV,
14047    VCLMULHVX,
14048    VCLZV,
14049    VCOMPRESSVM,
14050    VCPOPM,
14051    VCPOPV,
14052    VCTZV,
14053    VDIVVV,
14054    VDIVVX,
14055    VDIVUVV,
14056    VDIVUVX,
14057    VFADDVF,
14058    VFADDVV,
14059    VFCLASSV,
14060    VFCVTFXV,
14061    VFCVTFXUV,
14062    VFCVTRTZXFV,
14063    VFCVTRTZXUFV,
14064    VFCVTXFV,
14065    VFCVTXUFV,
14066    VFDIVVF,
14067    VFDIVVV,
14068    VFIRSTM,
14069    VFMACCVF,
14070    VFMACCVV,
14071    VFMADDVF,
14072    VFMADDVV,
14073    VFMAXVF,
14074    VFMAXVV,
14075    VFMERGEVFM,
14076    VFMINVF,
14077    VFMINVV,
14078    VFMSACVF,
14079    VFMSACVV,
14080    VFMSUBVF,
14081    VFMSUBVV,
14082    VFMULVF,
14083    VFMULVV,
14084    VFMVFS,
14085    VFMVSF,
14086    VFMVVF,
14087    VFNCVTFFW,
14088    VFNCVTFXW,
14089    VFNCVTFXUW,
14090    VFNCVTRODFFW,
14091    VFNCVTRTZXFW,
14092    VFNCVTRTZXUFW,
14093    VFNCVTXFW,
14094    VFNCVTXUFW,
14095    VFNMACCVF,
14096    VFNMACCVV,
14097    VFNMADDVF,
14098    VFNMADDVV,
14099    VFNMSACVF,
14100    VFNMSACVV,
14101    VFNMSUBVF,
14102    VFNMSUBVV,
14103    VFRDIVVF,
14104    VFREC7V,
14105    VFREDMAXVS,
14106    VFREDMINVS,
14107    VFREDOSUMVS,
14108    VFREDSUMVS,
14109    VFREDUSUMVS,
14110    VFRSQRT7V,
14111    VFRSUBVF,
14112    VFSGNJVF,
14113    VFSGNJVV,
14114    VFSGNJNVF,
14115    VFSGNJNVV,
14116    VFSGNJXVF,
14117    VFSGNJXVV,
14118    VFSLIDE1DOWNVF,
14119    VFSLIDE1UPVF,
14120    VFSQRTV,
14121    VFSUBVF,
14122    VFSUBVV,
14123    VFWADDVF,
14124    VFWADDVV,
14125    VFWADDWF,
14126    VFWADDWV,
14127    VFWCVTFFV,
14128    VFWCVTFXV,
14129    VFWCVTFXUV,
14130    VFWCVTRTZXFV,
14131    VFWCVTRTZXUFV,
14132    VFWCVTXFV,
14133    VFWCVTXUFV,
14134    VFWMACCVF,
14135    VFWMACCVV,
14136    VFWMSACVF,
14137    VFWMSACVV,
14138    VFWMULVF,
14139    VFWMULVV,
14140    VFWNMACCVF,
14141    VFWNMACCVV,
14142    VFWNMSACVF,
14143    VFWNMSACVV,
14144    VFWREDOSUMVS,
14145    VFWREDSUMVS,
14146    VFWREDUSUMVS,
14147    VFWSUBVF,
14148    VFWSUBVV,
14149    VFWSUBWF,
14150    VFWSUBWV,
14151    VGHSHVV,
14152    VGMULVV,
14153    VIDV,
14154    VIOTAM,
14155    VL1RV,
14156    VL1RE16V,
14157    VL1RE32V,
14158    VL1RE64V,
14159    VL1RE8V,
14160    VL2RV,
14161    VL2RE16V,
14162    VL2RE32V,
14163    VL2RE64V,
14164    VL2RE8V,
14165    VL4RV,
14166    VL4RE16V,
14167    VL4RE32V,
14168    VL4RE64V,
14169    VL4RE8V,
14170    VL8RV,
14171    VL8RE16V,
14172    VL8RE32V,
14173    VL8RE64V,
14174    VL8RE8V,
14175    VLE16V,
14176    VLE16FFV,
14177    VLE1V,
14178    VLE32V,
14179    VLE32FFV,
14180    VLE64V,
14181    VLE64FFV,
14182    VLE8V,
14183    VLE8FFV,
14184    VLMV,
14185    VLOXEI16V,
14186    VLOXEI32V,
14187    VLOXEI64V,
14188    VLOXEI8V,
14189    VLSE16V,
14190    VLSE32V,
14191    VLSE64V,
14192    VLSE8V,
14193    VLUXEI16V,
14194    VLUXEI32V,
14195    VLUXEI64V,
14196    VLUXEI8V,
14197    VMACCVV,
14198    VMACCVX,
14199    VMADCVI,
14200    VMADCVIM,
14201    VMADCVV,
14202    VMADCVVM,
14203    VMADCVX,
14204    VMADCVXM,
14205    VMADDVV,
14206    VMADDVX,
14207    VMANDMM,
14208    VMANDNMM,
14209    VMANDNOTMM,
14210    VMAXVV,
14211    VMAXVX,
14212    VMAXUVV,
14213    VMAXUVX,
14214    VMERGEVIM,
14215    VMERGEVVM,
14216    VMERGEVXM,
14217    VMFEQVF,
14218    VMFEQVV,
14219    VMFGEVF,
14220    VMFGTVF,
14221    VMFLEVF,
14222    VMFLEVV,
14223    VMFLTVF,
14224    VMFLTVV,
14225    VMFNEVF,
14226    VMFNEVV,
14227    VMINVV,
14228    VMINVX,
14229    VMINUVV,
14230    VMINUVX,
14231    VMNANDMM,
14232    VMNORMM,
14233    VMORMM,
14234    VMORNMM,
14235    VMORNOTMM,
14236    VMSBCVV,
14237    VMSBCVVM,
14238    VMSBCVX,
14239    VMSBCVXM,
14240    VMSBFM,
14241    VMSEQVI,
14242    VMSEQVV,
14243    VMSEQVX,
14244    VMSGTVI,
14245    VMSGTVX,
14246    VMSGTUVI,
14247    VMSGTUVX,
14248    VMSIFM,
14249    VMSLEVI,
14250    VMSLEVV,
14251    VMSLEVX,
14252    VMSLEUVI,
14253    VMSLEUVV,
14254    VMSLEUVX,
14255    VMSLTVV,
14256    VMSLTVX,
14257    VMSLTUVV,
14258    VMSLTUVX,
14259    VMSNEVI,
14260    VMSNEVV,
14261    VMSNEVX,
14262    VMSOFM,
14263    VMULVV,
14264    VMULVX,
14265    VMULHVV,
14266    VMULHVX,
14267    VMULHSUVV,
14268    VMULHSUVX,
14269    VMULHUVV,
14270    VMULHUVX,
14271    VMV1RV,
14272    VMV2RV,
14273    VMV4RV,
14274    VMV8RV,
14275    VMVSX,
14276    VMVVI,
14277    VMVVV,
14278    VMVVX,
14279    VMVXS,
14280    VMXNORMM,
14281    VMXORMM,
14282    VNCLIPWI,
14283    VNCLIPWV,
14284    VNCLIPWX,
14285    VNCLIPUWI,
14286    VNCLIPUWV,
14287    VNCLIPUWX,
14288    VNMSACVV,
14289    VNMSACVX,
14290    VNMSUBVV,
14291    VNMSUBVX,
14292    VNSRAWI,
14293    VNSRAWV,
14294    VNSRAWX,
14295    VNSRLWI,
14296    VNSRLWV,
14297    VNSRLWX,
14298    VORVI,
14299    VORVV,
14300    VORVX,
14301    VPOPCM,
14302    VREDANDVS,
14303    VREDMAXVS,
14304    VREDMAXUVS,
14305    VREDMINVS,
14306    VREDMINUVS,
14307    VREDORVS,
14308    VREDSUMVS,
14309    VREDXORVS,
14310    VREMVV,
14311    VREMVX,
14312    VREMUVV,
14313    VREMUVX,
14314    VREV8V,
14315    VRGATHERVI,
14316    VRGATHERVV,
14317    VRGATHERVX,
14318    VRGATHEREI16VV,
14319    VROLVV,
14320    VROLVX,
14321    VRORVI,
14322    VRORVV,
14323    VRORVX,
14324    VRSUBVI,
14325    VRSUBVX,
14326    VS1RV,
14327    VS2RV,
14328    VS4RV,
14329    VS8RV,
14330    VSADDVI,
14331    VSADDVV,
14332    VSADDVX,
14333    VSADDUVI,
14334    VSADDUVV,
14335    VSADDUVX,
14336    VSBCVVM,
14337    VSBCVXM,
14338    VSE16V,
14339    VSE1V,
14340    VSE32V,
14341    VSE64V,
14342    VSE8V,
14343    VSETIVLI,
14344    VSETVL,
14345    VSETVLI,
14346    VSEXTVF2,
14347    VSEXTVF4,
14348    VSEXTVF8,
14349    VSHA2CHVV,
14350    VSHA2CLVV,
14351    VSHA2MSVV,
14352    VSLIDE1DOWNVX,
14353    VSLIDE1UPVX,
14354    VSLIDEDOWNVI,
14355    VSLIDEDOWNVX,
14356    VSLIDEUPVI,
14357    VSLIDEUPVX,
14358    VSLLVI,
14359    VSLLVV,
14360    VSLLVX,
14361    VSM3CVI,
14362    VSM3MEVV,
14363    VSM4KVI,
14364    VSM4RVS,
14365    VSM4RVV,
14366    VSMV,
14367    VSMULVV,
14368    VSMULVX,
14369    VSOXEI16V,
14370    VSOXEI32V,
14371    VSOXEI64V,
14372    VSOXEI8V,
14373    VSRAVI,
14374    VSRAVV,
14375    VSRAVX,
14376    VSRLVI,
14377    VSRLVV,
14378    VSRLVX,
14379    VSSE16V,
14380    VSSE32V,
14381    VSSE64V,
14382    VSSE8V,
14383    VSSRAVI,
14384    VSSRAVV,
14385    VSSRAVX,
14386    VSSRLVI,
14387    VSSRLVV,
14388    VSSRLVX,
14389    VSSUBVV,
14390    VSSUBVX,
14391    VSSUBUVV,
14392    VSSUBUVX,
14393    VSUBVV,
14394    VSUBVX,
14395    VSUXEI16V,
14396    VSUXEI32V,
14397    VSUXEI64V,
14398    VSUXEI8V,
14399    VWADDVV,
14400    VWADDVX,
14401    VWADDWV,
14402    VWADDWX,
14403    VWADDUVV,
14404    VWADDUVX,
14405    VWADDUWV,
14406    VWADDUWX,
14407    VWMACCVV,
14408    VWMACCVX,
14409    VWMACCSUVV,
14410    VWMACCSUVX,
14411    VWMACCUVV,
14412    VWMACCUVX,
14413    VWMACCUSVX,
14414    VWMULVV,
14415    VWMULVX,
14416    VWMULSUVV,
14417    VWMULSUVX,
14418    VWMULUVV,
14419    VWMULUVX,
14420    VWREDSUMVS,
14421    VWREDSUMUVS,
14422    VWSLLVI,
14423    VWSLLVV,
14424    VWSLLVX,
14425    VWSUBVV,
14426    VWSUBVX,
14427    VWSUBWV,
14428    VWSUBWX,
14429    VWSUBUVV,
14430    VWSUBUVX,
14431    VWSUBUWV,
14432    VWSUBUWX,
14433    VXORVI,
14434    VXORVV,
14435    VXORVX,
14436    VZEXTVF2,
14437    VZEXTVF4,
14438    VZEXTVF8,
14439    WFI,
14440    WRSNTO,
14441    WRSSTO,
14442    XNOR,
14443    XOR,
14444    XORI,
14445    XPERM4,
14446    XPERM8,
14447    ZEXTB,
14448    ZEXTH,
14449    ZEXTHRV32,
14450    ZEXTW,
14451    ZIP,
14452    Invalid,
14453}
14454
14455pub const OPCODE_STR: &[&str] = &[
14456    "add",
14457    "add.uw",
14458    "addi",
14459    "addiw",
14460    "addw",
14461    "aes32dsi",
14462    "aes32dsmi",
14463    "aes32esi",
14464    "aes32esmi",
14465    "aes64ds",
14466    "aes64dsm",
14467    "aes64es",
14468    "aes64esm",
14469    "aes64im",
14470    "aes64ks1i",
14471    "aes64ks2",
14472    "amoadd.b",
14473    "amoadd.d",
14474    "amoadd.h",
14475    "amoadd.w",
14476    "amoand.b",
14477    "amoand.d",
14478    "amoand.h",
14479    "amoand.w",
14480    "amocas.b",
14481    "amocas.d",
14482    "amocas.h",
14483    "amocas.q",
14484    "amocas.w",
14485    "amomax.b",
14486    "amomax.d",
14487    "amomax.h",
14488    "amomax.w",
14489    "amomaxu.b",
14490    "amomaxu.d",
14491    "amomaxu.h",
14492    "amomaxu.w",
14493    "amomin.b",
14494    "amomin.d",
14495    "amomin.h",
14496    "amomin.w",
14497    "amominu.b",
14498    "amominu.d",
14499    "amominu.h",
14500    "amominu.w",
14501    "amoor.b",
14502    "amoor.d",
14503    "amoor.h",
14504    "amoor.w",
14505    "amoswap.b",
14506    "amoswap.d",
14507    "amoswap.h",
14508    "amoswap.w",
14509    "amoxor.b",
14510    "amoxor.d",
14511    "amoxor.h",
14512    "amoxor.w",
14513    "and",
14514    "andi",
14515    "andn",
14516    "auipc",
14517    "bclr",
14518    "bclri",
14519    "bclri.rv32",
14520    "beq",
14521    "beqz",
14522    "bext",
14523    "bexti",
14524    "bexti.rv32",
14525    "bge",
14526    "bgeu",
14527    "bgez",
14528    "bgt",
14529    "bgtu",
14530    "bgtz",
14531    "binv",
14532    "binvi",
14533    "binvi.rv32",
14534    "ble",
14535    "bleu",
14536    "blez",
14537    "blt",
14538    "bltu",
14539    "bltz",
14540    "bne",
14541    "bnez",
14542    "brev8",
14543    "bset",
14544    "bseti",
14545    "bseti.rv32",
14546    "c.add",
14547    "c.addi",
14548    "c.addi16sp",
14549    "c.addi4spn",
14550    "c.addiw",
14551    "c.addw",
14552    "c.and",
14553    "c.andi",
14554    "c.beqz",
14555    "c.bnez",
14556    "c.ebreak",
14557    "c.fld",
14558    "c.fldsp",
14559    "c.flw",
14560    "c.flwsp",
14561    "c.fsd",
14562    "c.fsdsp",
14563    "c.fsw",
14564    "c.fswsp",
14565    "c.j",
14566    "c.jal",
14567    "c.jalr",
14568    "c.jr",
14569    "c.lbu",
14570    "c.ld",
14571    "c.ldsp",
14572    "c.lh",
14573    "c.lhu",
14574    "c.li",
14575    "c.lui",
14576    "c.lw",
14577    "c.lwsp",
14578    "c.mop.1",
14579    "c.mop.11",
14580    "c.mop.13",
14581    "c.mop.15",
14582    "c.mop.3",
14583    "c.mop.5",
14584    "c.mop.7",
14585    "c.mop.9",
14586    "c.mop.n",
14587    "c.mul",
14588    "c.mv",
14589    "c.nop",
14590    "c.not",
14591    "c.ntl.all",
14592    "c.ntl.p1",
14593    "c.ntl.pall",
14594    "c.ntl.s1",
14595    "c.or",
14596    "c.sb",
14597    "c.sd",
14598    "c.sdsp",
14599    "c.sext.b",
14600    "c.sext.h",
14601    "c.sext.w",
14602    "c.sh",
14603    "c.slli",
14604    "c.slli.rv32",
14605    "c.srai",
14606    "c.srai.rv32",
14607    "c.srli",
14608    "c.srli.rv32",
14609    "c.sub",
14610    "c.subw",
14611    "c.sw",
14612    "c.swsp",
14613    "c.xor",
14614    "c.zext.b",
14615    "c.zext.h",
14616    "c.zext.w",
14617    "cbo.clean",
14618    "cbo.flush",
14619    "cbo.inval",
14620    "cbo.zero",
14621    "clmul",
14622    "clmulh",
14623    "clmulr",
14624    "clz",
14625    "clzw",
14626    "cm.jalt",
14627    "cm.mva01s",
14628    "cm.mvsa01",
14629    "cm.pop",
14630    "cm.popret",
14631    "cm.popretz",
14632    "cm.push",
14633    "cpop",
14634    "cpopw",
14635    "csrc",
14636    "csrci",
14637    "csrr",
14638    "csrrc",
14639    "csrrci",
14640    "csrrs",
14641    "csrrsi",
14642    "csrrw",
14643    "csrrwi",
14644    "csrs",
14645    "csrsi",
14646    "csrw",
14647    "csrwi",
14648    "ctz",
14649    "ctzw",
14650    "czero.eqz",
14651    "czero.nez",
14652    "div",
14653    "divu",
14654    "divuw",
14655    "divw",
14656    "dret",
14657    "ebreak",
14658    "ecall",
14659    "fabs.d",
14660    "fabs.h",
14661    "fabs.q",
14662    "fabs.s",
14663    "fadd.d",
14664    "fadd.h",
14665    "fadd.q",
14666    "fadd.s",
14667    "fclass.d",
14668    "fclass.h",
14669    "fclass.q",
14670    "fclass.s",
14671    "fcvt.d.h",
14672    "fcvt.d.l",
14673    "fcvt.d.lu",
14674    "fcvt.d.q",
14675    "fcvt.d.s",
14676    "fcvt.d.w",
14677    "fcvt.d.wu",
14678    "fcvt.h.d",
14679    "fcvt.h.l",
14680    "fcvt.h.lu",
14681    "fcvt.h.q",
14682    "fcvt.h.s",
14683    "fcvt.h.w",
14684    "fcvt.h.wu",
14685    "fcvt.l.d",
14686    "fcvt.l.h",
14687    "fcvt.l.q",
14688    "fcvt.l.s",
14689    "fcvt.lu.d",
14690    "fcvt.lu.h",
14691    "fcvt.lu.q",
14692    "fcvt.lu.s",
14693    "fcvt.q.d",
14694    "fcvt.q.h",
14695    "fcvt.q.l",
14696    "fcvt.q.lu",
14697    "fcvt.q.s",
14698    "fcvt.q.w",
14699    "fcvt.q.wu",
14700    "fcvt.s.d",
14701    "fcvt.s.h",
14702    "fcvt.s.l",
14703    "fcvt.s.lu",
14704    "fcvt.s.q",
14705    "fcvt.s.w",
14706    "fcvt.s.wu",
14707    "fcvt.w.d",
14708    "fcvt.w.h",
14709    "fcvt.w.q",
14710    "fcvt.w.s",
14711    "fcvt.wu.d",
14712    "fcvt.wu.h",
14713    "fcvt.wu.q",
14714    "fcvt.wu.s",
14715    "fcvtmod.w.d",
14716    "fdiv.d",
14717    "fdiv.h",
14718    "fdiv.q",
14719    "fdiv.s",
14720    "fence",
14721    "fence.i",
14722    "fence.tso",
14723    "feq.d",
14724    "feq.h",
14725    "feq.q",
14726    "feq.s",
14727    "fld",
14728    "fle.d",
14729    "fle.h",
14730    "fle.q",
14731    "fle.s",
14732    "fleq.d",
14733    "fleq.h",
14734    "fleq.q",
14735    "fleq.s",
14736    "flh",
14737    "fli.d",
14738    "fli.h",
14739    "fli.q",
14740    "fli.s",
14741    "flq",
14742    "flt.d",
14743    "flt.h",
14744    "flt.q",
14745    "flt.s",
14746    "fltq.d",
14747    "fltq.h",
14748    "fltq.q",
14749    "fltq.s",
14750    "flw",
14751    "fmadd.d",
14752    "fmadd.h",
14753    "fmadd.q",
14754    "fmadd.s",
14755    "fmax.d",
14756    "fmax.h",
14757    "fmax.q",
14758    "fmax.s",
14759    "fmaxm.d",
14760    "fmaxm.h",
14761    "fmaxm.q",
14762    "fmaxm.s",
14763    "fmin.d",
14764    "fmin.h",
14765    "fmin.q",
14766    "fmin.s",
14767    "fminm.d",
14768    "fminm.h",
14769    "fminm.q",
14770    "fminm.s",
14771    "fmsub.d",
14772    "fmsub.h",
14773    "fmsub.q",
14774    "fmsub.s",
14775    "fmul.d",
14776    "fmul.h",
14777    "fmul.q",
14778    "fmul.s",
14779    "fmv.d",
14780    "fmv.d.x",
14781    "fmv.h",
14782    "fmv.h.x",
14783    "fmv.q",
14784    "fmv.s",
14785    "fmv.s.x",
14786    "fmv.w.x",
14787    "fmv.x.d",
14788    "fmv.x.h",
14789    "fmv.x.s",
14790    "fmv.x.w",
14791    "fmvh.x.d",
14792    "fmvh.x.q",
14793    "fmvp.d.x",
14794    "fmvp.q.x",
14795    "fneg.d",
14796    "fneg.h",
14797    "fneg.q",
14798    "fneg.s",
14799    "fnmadd.d",
14800    "fnmadd.h",
14801    "fnmadd.q",
14802    "fnmadd.s",
14803    "fnmsub.d",
14804    "fnmsub.h",
14805    "fnmsub.q",
14806    "fnmsub.s",
14807    "frcsr",
14808    "frflags",
14809    "fround.d",
14810    "fround.h",
14811    "fround.q",
14812    "fround.s",
14813    "froundnx.d",
14814    "froundnx.h",
14815    "froundnx.q",
14816    "froundnx.s",
14817    "frrm",
14818    "fscsr",
14819    "fsd",
14820    "fsflags",
14821    "fsflagsi",
14822    "fsgnj.d",
14823    "fsgnj.h",
14824    "fsgnj.q",
14825    "fsgnj.s",
14826    "fsgnjn.d",
14827    "fsgnjn.h",
14828    "fsgnjn.q",
14829    "fsgnjn.s",
14830    "fsgnjx.d",
14831    "fsgnjx.h",
14832    "fsgnjx.q",
14833    "fsgnjx.s",
14834    "fsh",
14835    "fsq",
14836    "fsqrt.d",
14837    "fsqrt.h",
14838    "fsqrt.q",
14839    "fsqrt.s",
14840    "fsrm",
14841    "fsrmi",
14842    "fsub.d",
14843    "fsub.h",
14844    "fsub.q",
14845    "fsub.s",
14846    "fsw",
14847    "hfence.gvma",
14848    "hfence.vvma",
14849    "hinval.gvma",
14850    "hinval.vvma",
14851    "hlv.b",
14852    "hlv.bu",
14853    "hlv.d",
14854    "hlv.h",
14855    "hlv.hu",
14856    "hlv.w",
14857    "hlv.wu",
14858    "hlvx.hu",
14859    "hlvx.wu",
14860    "hsv.b",
14861    "hsv.d",
14862    "hsv.h",
14863    "hsv.w",
14864    "j",
14865    "jal",
14866    "jal.pseudo",
14867    "jalr",
14868    "jalr.pseudo",
14869    "jr",
14870    "lb",
14871    "lbu",
14872    "ld",
14873    "lh",
14874    "lhu",
14875    "lr.d",
14876    "lr.w",
14877    "lui",
14878    "lw",
14879    "lwu",
14880    "max",
14881    "maxu",
14882    "min",
14883    "minu",
14884    "mop.r.0",
14885    "mop.r.1",
14886    "mop.r.10",
14887    "mop.r.11",
14888    "mop.r.12",
14889    "mop.r.13",
14890    "mop.r.14",
14891    "mop.r.15",
14892    "mop.r.16",
14893    "mop.r.17",
14894    "mop.r.18",
14895    "mop.r.19",
14896    "mop.r.2",
14897    "mop.r.20",
14898    "mop.r.21",
14899    "mop.r.22",
14900    "mop.r.23",
14901    "mop.r.24",
14902    "mop.r.25",
14903    "mop.r.26",
14904    "mop.r.27",
14905    "mop.r.28",
14906    "mop.r.29",
14907    "mop.r.3",
14908    "mop.r.30",
14909    "mop.r.31",
14910    "mop.r.4",
14911    "mop.r.5",
14912    "mop.r.6",
14913    "mop.r.7",
14914    "mop.r.8",
14915    "mop.r.9",
14916    "mop.r.n",
14917    "mop.rr.0",
14918    "mop.rr.1",
14919    "mop.rr.2",
14920    "mop.rr.3",
14921    "mop.rr.4",
14922    "mop.rr.5",
14923    "mop.rr.6",
14924    "mop.rr.7",
14925    "mop.rr.n",
14926    "mret",
14927    "mul",
14928    "mulh",
14929    "mulhsu",
14930    "mulhu",
14931    "mulw",
14932    "mv",
14933    "neg",
14934    "nop",
14935    "ntl.all",
14936    "ntl.p1",
14937    "ntl.pall",
14938    "ntl.s1",
14939    "or",
14940    "orc.b",
14941    "ori",
14942    "orn",
14943    "pack",
14944    "packh",
14945    "packw",
14946    "pause",
14947    "prefetch.i",
14948    "prefetch.r",
14949    "prefetch.w",
14950    "rdcycle",
14951    "rdcycleh",
14952    "rdinstret",
14953    "rdinstreth",
14954    "rdtime",
14955    "rdtimeh",
14956    "rem",
14957    "remu",
14958    "remuw",
14959    "remw",
14960    "ret",
14961    "rev8",
14962    "rev8.rv32",
14963    "rol",
14964    "rolw",
14965    "ror",
14966    "rori",
14967    "rori.rv32",
14968    "roriw",
14969    "rorw",
14970    "sb",
14971    "sbreak",
14972    "sc.d",
14973    "sc.w",
14974    "scall",
14975    "sd",
14976    "seqz",
14977    "sext.b",
14978    "sext.h",
14979    "sext.w",
14980    "sfence.inval.ir",
14981    "sfence.vma",
14982    "sfence.w.inval",
14983    "sgtz",
14984    "sh",
14985    "sh1add",
14986    "sh1add.uw",
14987    "sh2add",
14988    "sh2add.uw",
14989    "sh3add",
14990    "sh3add.uw",
14991    "sha256sig0",
14992    "sha256sig1",
14993    "sha256sum0",
14994    "sha256sum1",
14995    "sha512sig0",
14996    "sha512sig0h",
14997    "sha512sig0l",
14998    "sha512sig1",
14999    "sha512sig1h",
15000    "sha512sig1l",
15001    "sha512sum0",
15002    "sha512sum0r",
15003    "sha512sum1",
15004    "sha512sum1r",
15005    "sinval.vma",
15006    "sll",
15007    "slli",
15008    "slli.rv32",
15009    "slli.uw",
15010    "slliw",
15011    "sllw",
15012    "slt",
15013    "slti",
15014    "sltiu",
15015    "sltu",
15016    "sltz",
15017    "sm3p0",
15018    "sm3p1",
15019    "sm4ed",
15020    "sm4ks",
15021    "snez",
15022    "sra",
15023    "srai",
15024    "srai.rv32",
15025    "sraiw",
15026    "sraw",
15027    "sret",
15028    "srl",
15029    "srli",
15030    "srli.rv32",
15031    "srliw",
15032    "srlw",
15033    "sub",
15034    "subw",
15035    "sw",
15036    "unzip",
15037    "vaadd.vv",
15038    "vaadd.vx",
15039    "vaaddu.vv",
15040    "vaaddu.vx",
15041    "vadc.vim",
15042    "vadc.vvm",
15043    "vadc.vxm",
15044    "vadd.vi",
15045    "vadd.vv",
15046    "vadd.vx",
15047    "vaesdf.vs",
15048    "vaesdf.vv",
15049    "vaesdm.vs",
15050    "vaesdm.vv",
15051    "vaesef.vs",
15052    "vaesef.vv",
15053    "vaesem.vs",
15054    "vaesem.vv",
15055    "vaeskf1.vi",
15056    "vaeskf2.vi",
15057    "vaesz.vs",
15058    "vand.vi",
15059    "vand.vv",
15060    "vand.vx",
15061    "vandn.vv",
15062    "vandn.vx",
15063    "vasub.vv",
15064    "vasub.vx",
15065    "vasubu.vv",
15066    "vasubu.vx",
15067    "vbrev8.v",
15068    "vbrev.v",
15069    "vclmul.vv",
15070    "vclmul.vx",
15071    "vclmulh.vv",
15072    "vclmulh.vx",
15073    "vclz.v",
15074    "vcompress.vm",
15075    "vcpop.m",
15076    "vcpop.v",
15077    "vctz.v",
15078    "vdiv.vv",
15079    "vdiv.vx",
15080    "vdivu.vv",
15081    "vdivu.vx",
15082    "vfadd.vf",
15083    "vfadd.vv",
15084    "vfclass.v",
15085    "vfcvt.f.x.v",
15086    "vfcvt.f.xu.v",
15087    "vfcvt.rtz.x.f.v",
15088    "vfcvt.rtz.xu.f.v",
15089    "vfcvt.x.f.v",
15090    "vfcvt.xu.f.v",
15091    "vfdiv.vf",
15092    "vfdiv.vv",
15093    "vfirst.m",
15094    "vfmacc.vf",
15095    "vfmacc.vv",
15096    "vfmadd.vf",
15097    "vfmadd.vv",
15098    "vfmax.vf",
15099    "vfmax.vv",
15100    "vfmerge.vfm",
15101    "vfmin.vf",
15102    "vfmin.vv",
15103    "vfmsac.vf",
15104    "vfmsac.vv",
15105    "vfmsub.vf",
15106    "vfmsub.vv",
15107    "vfmul.vf",
15108    "vfmul.vv",
15109    "vfmv.f.s",
15110    "vfmv.s.f",
15111    "vfmv.v.f",
15112    "vfncvt.f.f.w",
15113    "vfncvt.f.x.w",
15114    "vfncvt.f.xu.w",
15115    "vfncvt.rod.f.f.w",
15116    "vfncvt.rtz.x.f.w",
15117    "vfncvt.rtz.xu.f.w",
15118    "vfncvt.x.f.w",
15119    "vfncvt.xu.f.w",
15120    "vfnmacc.vf",
15121    "vfnmacc.vv",
15122    "vfnmadd.vf",
15123    "vfnmadd.vv",
15124    "vfnmsac.vf",
15125    "vfnmsac.vv",
15126    "vfnmsub.vf",
15127    "vfnmsub.vv",
15128    "vfrdiv.vf",
15129    "vfrec7.v",
15130    "vfredmax.vs",
15131    "vfredmin.vs",
15132    "vfredosum.vs",
15133    "vfredsum.vs",
15134    "vfredusum.vs",
15135    "vfrsqrt7.v",
15136    "vfrsub.vf",
15137    "vfsgnj.vf",
15138    "vfsgnj.vv",
15139    "vfsgnjn.vf",
15140    "vfsgnjn.vv",
15141    "vfsgnjx.vf",
15142    "vfsgnjx.vv",
15143    "vfslide1down.vf",
15144    "vfslide1up.vf",
15145    "vfsqrt.v",
15146    "vfsub.vf",
15147    "vfsub.vv",
15148    "vfwadd.vf",
15149    "vfwadd.vv",
15150    "vfwadd.wf",
15151    "vfwadd.wv",
15152    "vfwcvt.f.f.v",
15153    "vfwcvt.f.x.v",
15154    "vfwcvt.f.xu.v",
15155    "vfwcvt.rtz.x.f.v",
15156    "vfwcvt.rtz.xu.f.v",
15157    "vfwcvt.x.f.v",
15158    "vfwcvt.xu.f.v",
15159    "vfwmacc.vf",
15160    "vfwmacc.vv",
15161    "vfwmsac.vf",
15162    "vfwmsac.vv",
15163    "vfwmul.vf",
15164    "vfwmul.vv",
15165    "vfwnmacc.vf",
15166    "vfwnmacc.vv",
15167    "vfwnmsac.vf",
15168    "vfwnmsac.vv",
15169    "vfwredosum.vs",
15170    "vfwredsum.vs",
15171    "vfwredusum.vs",
15172    "vfwsub.vf",
15173    "vfwsub.vv",
15174    "vfwsub.wf",
15175    "vfwsub.wv",
15176    "vghsh.vv",
15177    "vgmul.vv",
15178    "vid.v",
15179    "viota.m",
15180    "vl1r.v",
15181    "vl1re16.v",
15182    "vl1re32.v",
15183    "vl1re64.v",
15184    "vl1re8.v",
15185    "vl2r.v",
15186    "vl2re16.v",
15187    "vl2re32.v",
15188    "vl2re64.v",
15189    "vl2re8.v",
15190    "vl4r.v",
15191    "vl4re16.v",
15192    "vl4re32.v",
15193    "vl4re64.v",
15194    "vl4re8.v",
15195    "vl8r.v",
15196    "vl8re16.v",
15197    "vl8re32.v",
15198    "vl8re64.v",
15199    "vl8re8.v",
15200    "vle16.v",
15201    "vle16ff.v",
15202    "vle1.v",
15203    "vle32.v",
15204    "vle32ff.v",
15205    "vle64.v",
15206    "vle64ff.v",
15207    "vle8.v",
15208    "vle8ff.v",
15209    "vlm.v",
15210    "vloxei16.v",
15211    "vloxei32.v",
15212    "vloxei64.v",
15213    "vloxei8.v",
15214    "vlse16.v",
15215    "vlse32.v",
15216    "vlse64.v",
15217    "vlse8.v",
15218    "vluxei16.v",
15219    "vluxei32.v",
15220    "vluxei64.v",
15221    "vluxei8.v",
15222    "vmacc.vv",
15223    "vmacc.vx",
15224    "vmadc.vi",
15225    "vmadc.vim",
15226    "vmadc.vv",
15227    "vmadc.vvm",
15228    "vmadc.vx",
15229    "vmadc.vxm",
15230    "vmadd.vv",
15231    "vmadd.vx",
15232    "vmand.mm",
15233    "vmandn.mm",
15234    "vmandnot.mm",
15235    "vmax.vv",
15236    "vmax.vx",
15237    "vmaxu.vv",
15238    "vmaxu.vx",
15239    "vmerge.vim",
15240    "vmerge.vvm",
15241    "vmerge.vxm",
15242    "vmfeq.vf",
15243    "vmfeq.vv",
15244    "vmfge.vf",
15245    "vmfgt.vf",
15246    "vmfle.vf",
15247    "vmfle.vv",
15248    "vmflt.vf",
15249    "vmflt.vv",
15250    "vmfne.vf",
15251    "vmfne.vv",
15252    "vmin.vv",
15253    "vmin.vx",
15254    "vminu.vv",
15255    "vminu.vx",
15256    "vmnand.mm",
15257    "vmnor.mm",
15258    "vmor.mm",
15259    "vmorn.mm",
15260    "vmornot.mm",
15261    "vmsbc.vv",
15262    "vmsbc.vvm",
15263    "vmsbc.vx",
15264    "vmsbc.vxm",
15265    "vmsbf.m",
15266    "vmseq.vi",
15267    "vmseq.vv",
15268    "vmseq.vx",
15269    "vmsgt.vi",
15270    "vmsgt.vx",
15271    "vmsgtu.vi",
15272    "vmsgtu.vx",
15273    "vmsif.m",
15274    "vmsle.vi",
15275    "vmsle.vv",
15276    "vmsle.vx",
15277    "vmsleu.vi",
15278    "vmsleu.vv",
15279    "vmsleu.vx",
15280    "vmslt.vv",
15281    "vmslt.vx",
15282    "vmsltu.vv",
15283    "vmsltu.vx",
15284    "vmsne.vi",
15285    "vmsne.vv",
15286    "vmsne.vx",
15287    "vmsof.m",
15288    "vmul.vv",
15289    "vmul.vx",
15290    "vmulh.vv",
15291    "vmulh.vx",
15292    "vmulhsu.vv",
15293    "vmulhsu.vx",
15294    "vmulhu.vv",
15295    "vmulhu.vx",
15296    "vmv1r.v",
15297    "vmv2r.v",
15298    "vmv4r.v",
15299    "vmv8r.v",
15300    "vmv.s.x",
15301    "vmv.v.i",
15302    "vmv.v.v",
15303    "vmv.v.x",
15304    "vmv.x.s",
15305    "vmxnor.mm",
15306    "vmxor.mm",
15307    "vnclip.wi",
15308    "vnclip.wv",
15309    "vnclip.wx",
15310    "vnclipu.wi",
15311    "vnclipu.wv",
15312    "vnclipu.wx",
15313    "vnmsac.vv",
15314    "vnmsac.vx",
15315    "vnmsub.vv",
15316    "vnmsub.vx",
15317    "vnsra.wi",
15318    "vnsra.wv",
15319    "vnsra.wx",
15320    "vnsrl.wi",
15321    "vnsrl.wv",
15322    "vnsrl.wx",
15323    "vor.vi",
15324    "vor.vv",
15325    "vor.vx",
15326    "vpopc.m",
15327    "vredand.vs",
15328    "vredmax.vs",
15329    "vredmaxu.vs",
15330    "vredmin.vs",
15331    "vredminu.vs",
15332    "vredor.vs",
15333    "vredsum.vs",
15334    "vredxor.vs",
15335    "vrem.vv",
15336    "vrem.vx",
15337    "vremu.vv",
15338    "vremu.vx",
15339    "vrev8.v",
15340    "vrgather.vi",
15341    "vrgather.vv",
15342    "vrgather.vx",
15343    "vrgatherei16.vv",
15344    "vrol.vv",
15345    "vrol.vx",
15346    "vror.vi",
15347    "vror.vv",
15348    "vror.vx",
15349    "vrsub.vi",
15350    "vrsub.vx",
15351    "vs1r.v",
15352    "vs2r.v",
15353    "vs4r.v",
15354    "vs8r.v",
15355    "vsadd.vi",
15356    "vsadd.vv",
15357    "vsadd.vx",
15358    "vsaddu.vi",
15359    "vsaddu.vv",
15360    "vsaddu.vx",
15361    "vsbc.vvm",
15362    "vsbc.vxm",
15363    "vse16.v",
15364    "vse1.v",
15365    "vse32.v",
15366    "vse64.v",
15367    "vse8.v",
15368    "vsetivli",
15369    "vsetvl",
15370    "vsetvli",
15371    "vsext.vf2",
15372    "vsext.vf4",
15373    "vsext.vf8",
15374    "vsha2ch.vv",
15375    "vsha2cl.vv",
15376    "vsha2ms.vv",
15377    "vslide1down.vx",
15378    "vslide1up.vx",
15379    "vslidedown.vi",
15380    "vslidedown.vx",
15381    "vslideup.vi",
15382    "vslideup.vx",
15383    "vsll.vi",
15384    "vsll.vv",
15385    "vsll.vx",
15386    "vsm3c.vi",
15387    "vsm3me.vv",
15388    "vsm4k.vi",
15389    "vsm4r.vs",
15390    "vsm4r.vv",
15391    "vsm.v",
15392    "vsmul.vv",
15393    "vsmul.vx",
15394    "vsoxei16.v",
15395    "vsoxei32.v",
15396    "vsoxei64.v",
15397    "vsoxei8.v",
15398    "vsra.vi",
15399    "vsra.vv",
15400    "vsra.vx",
15401    "vsrl.vi",
15402    "vsrl.vv",
15403    "vsrl.vx",
15404    "vsse16.v",
15405    "vsse32.v",
15406    "vsse64.v",
15407    "vsse8.v",
15408    "vssra.vi",
15409    "vssra.vv",
15410    "vssra.vx",
15411    "vssrl.vi",
15412    "vssrl.vv",
15413    "vssrl.vx",
15414    "vssub.vv",
15415    "vssub.vx",
15416    "vssubu.vv",
15417    "vssubu.vx",
15418    "vsub.vv",
15419    "vsub.vx",
15420    "vsuxei16.v",
15421    "vsuxei32.v",
15422    "vsuxei64.v",
15423    "vsuxei8.v",
15424    "vwadd.vv",
15425    "vwadd.vx",
15426    "vwadd.wv",
15427    "vwadd.wx",
15428    "vwaddu.vv",
15429    "vwaddu.vx",
15430    "vwaddu.wv",
15431    "vwaddu.wx",
15432    "vwmacc.vv",
15433    "vwmacc.vx",
15434    "vwmaccsu.vv",
15435    "vwmaccsu.vx",
15436    "vwmaccu.vv",
15437    "vwmaccu.vx",
15438    "vwmaccus.vx",
15439    "vwmul.vv",
15440    "vwmul.vx",
15441    "vwmulsu.vv",
15442    "vwmulsu.vx",
15443    "vwmulu.vv",
15444    "vwmulu.vx",
15445    "vwredsum.vs",
15446    "vwredsumu.vs",
15447    "vwsll.vi",
15448    "vwsll.vv",
15449    "vwsll.vx",
15450    "vwsub.vv",
15451    "vwsub.vx",
15452    "vwsub.wv",
15453    "vwsub.wx",
15454    "vwsubu.vv",
15455    "vwsubu.vx",
15456    "vwsubu.wv",
15457    "vwsubu.wx",
15458    "vxor.vi",
15459    "vxor.vv",
15460    "vxor.vx",
15461    "vzext.vf2",
15462    "vzext.vf4",
15463    "vzext.vf8",
15464    "wfi",
15465    "wrs.nto",
15466    "wrs.sto",
15467    "xnor",
15468    "xor",
15469    "xori",
15470    "xperm4",
15471    "xperm8",
15472    "zext.b",
15473    "zext.h",
15474    "zext.h.rv32",
15475    "zext.w",
15476    "zip",
15477    "<invalid>"
15478];
15479
15480#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug)]
15481pub struct Inst {
15482    pub opcode: u32,
15483    pub funct3: u32,
15484    pub rs1: u32,
15485    pub rs2: u32,
15486    pub csr: i64,
15487    pub funct7: u32,
15488}
15489
15490impl Inst {
15491    pub const fn encode(&self) -> InstructionValue {
15492        InstructionValue::new(
15493            0 | (self.funct7 << 25)
15494                | (self.rs2 << 20)
15495                | (self.rs1 << 15)
15496                | (self.funct3 << 12)
15497                | self.opcode,
15498        )
15499    }
15500
15501    pub const fn new(op: Opcode) -> Self {
15502        match op {
15503            Opcode::Invalid => unreachable!(),
15504            Opcode::ADD => Inst {
15505                opcode: 0x33,
15506                funct3: 0x0,
15507                rs1: 0x0,
15508                rs2: 0x0,
15509                csr: 0x0,
15510                funct7: 0x0,
15511            },
15512            Opcode::ADDUW => Inst {
15513                opcode: 0x3b,
15514                funct3: 0x0,
15515                rs1: 0x0,
15516                rs2: 0x0,
15517                csr: 0x80,
15518                funct7: 0x4,
15519            },
15520            Opcode::ADDI => Inst {
15521                opcode: 0x13,
15522                funct3: 0x0,
15523                rs1: 0x0,
15524                rs2: 0x0,
15525                csr: 0x0,
15526                funct7: 0x0,
15527            },
15528            Opcode::ADDIW => Inst {
15529                opcode: 0x1b,
15530                funct3: 0x0,
15531                rs1: 0x0,
15532                rs2: 0x0,
15533                csr: 0x0,
15534                funct7: 0x0,
15535            },
15536            Opcode::ADDW => Inst {
15537                opcode: 0x3b,
15538                funct3: 0x0,
15539                rs1: 0x0,
15540                rs2: 0x0,
15541                csr: 0x0,
15542                funct7: 0x0,
15543            },
15544            Opcode::AES32DSI => Inst {
15545                opcode: 0x33,
15546                funct3: 0x0,
15547                rs1: 0x0,
15548                rs2: 0x0,
15549                csr: 0x2a0,
15550                funct7: 0x15,
15551            },
15552            Opcode::AES32DSMI => Inst {
15553                opcode: 0x33,
15554                funct3: 0x0,
15555                rs1: 0x0,
15556                rs2: 0x0,
15557                csr: 0x2e0,
15558                funct7: 0x17,
15559            },
15560            Opcode::AES32ESI => Inst {
15561                opcode: 0x33,
15562                funct3: 0x0,
15563                rs1: 0x0,
15564                rs2: 0x0,
15565                csr: 0x220,
15566                funct7: 0x11,
15567            },
15568            Opcode::AES32ESMI => Inst {
15569                opcode: 0x33,
15570                funct3: 0x0,
15571                rs1: 0x0,
15572                rs2: 0x0,
15573                csr: 0x260,
15574                funct7: 0x13,
15575            },
15576            Opcode::AES64DS => Inst {
15577                opcode: 0x33,
15578                funct3: 0x0,
15579                rs1: 0x0,
15580                rs2: 0x0,
15581                csr: 0x3a0,
15582                funct7: 0x1d,
15583            },
15584            Opcode::AES64DSM => Inst {
15585                opcode: 0x33,
15586                funct3: 0x0,
15587                rs1: 0x0,
15588                rs2: 0x0,
15589                csr: 0x3e0,
15590                funct7: 0x1f,
15591            },
15592            Opcode::AES64ES => Inst {
15593                opcode: 0x33,
15594                funct3: 0x0,
15595                rs1: 0x0,
15596                rs2: 0x0,
15597                csr: 0x320,
15598                funct7: 0x19,
15599            },
15600            Opcode::AES64ESM => Inst {
15601                opcode: 0x33,
15602                funct3: 0x0,
15603                rs1: 0x0,
15604                rs2: 0x0,
15605                csr: 0x360,
15606                funct7: 0x1b,
15607            },
15608            Opcode::AES64IM => Inst {
15609                opcode: 0x13,
15610                funct3: 0x1,
15611                rs1: 0x0,
15612                rs2: 0x0,
15613                csr: 0x300,
15614                funct7: 0x18,
15615            },
15616            Opcode::AES64KS1I => Inst {
15617                opcode: 0x13,
15618                funct3: 0x1,
15619                rs1: 0x0,
15620                rs2: 0x10,
15621                csr: 0x310,
15622                funct7: 0x18,
15623            },
15624            Opcode::AES64KS2 => Inst {
15625                opcode: 0x33,
15626                funct3: 0x0,
15627                rs1: 0x0,
15628                rs2: 0x0,
15629                csr: 0x7e0,
15630                funct7: 0x3f,
15631            },
15632            Opcode::AMOADDB => Inst {
15633                opcode: 0x2f,
15634                funct3: 0x0,
15635                rs1: 0x0,
15636                rs2: 0x0,
15637                csr: 0x0,
15638                funct7: 0x0,
15639            },
15640            Opcode::AMOADDD => Inst {
15641                opcode: 0x2f,
15642                funct3: 0x3,
15643                rs1: 0x0,
15644                rs2: 0x0,
15645                csr: 0x0,
15646                funct7: 0x0,
15647            },
15648            Opcode::AMOADDH => Inst {
15649                opcode: 0x2f,
15650                funct3: 0x1,
15651                rs1: 0x0,
15652                rs2: 0x0,
15653                csr: 0x0,
15654                funct7: 0x0,
15655            },
15656            Opcode::AMOADDW => Inst {
15657                opcode: 0x2f,
15658                funct3: 0x2,
15659                rs1: 0x0,
15660                rs2: 0x0,
15661                csr: 0x0,
15662                funct7: 0x0,
15663            },
15664            Opcode::AMOANDB => Inst {
15665                opcode: 0x2f,
15666                funct3: 0x0,
15667                rs1: 0x0,
15668                rs2: 0x0,
15669                csr: 0x600,
15670                funct7: 0x30,
15671            },
15672            Opcode::AMOANDD => Inst {
15673                opcode: 0x2f,
15674                funct3: 0x3,
15675                rs1: 0x0,
15676                rs2: 0x0,
15677                csr: 0x600,
15678                funct7: 0x30,
15679            },
15680            Opcode::AMOANDH => Inst {
15681                opcode: 0x2f,
15682                funct3: 0x1,
15683                rs1: 0x0,
15684                rs2: 0x0,
15685                csr: 0x600,
15686                funct7: 0x30,
15687            },
15688            Opcode::AMOANDW => Inst {
15689                opcode: 0x2f,
15690                funct3: 0x2,
15691                rs1: 0x0,
15692                rs2: 0x0,
15693                csr: 0x600,
15694                funct7: 0x30,
15695            },
15696            Opcode::AMOCASB => Inst {
15697                opcode: 0x2f,
15698                funct3: 0x0,
15699                rs1: 0x0,
15700                rs2: 0x0,
15701                csr: 0x280,
15702                funct7: 0x14,
15703            },
15704            Opcode::AMOCASD => Inst {
15705                opcode: 0x2f,
15706                funct3: 0x3,
15707                rs1: 0x0,
15708                rs2: 0x0,
15709                csr: 0x280,
15710                funct7: 0x14,
15711            },
15712            Opcode::AMOCASH => Inst {
15713                opcode: 0x2f,
15714                funct3: 0x1,
15715                rs1: 0x0,
15716                rs2: 0x0,
15717                csr: 0x280,
15718                funct7: 0x14,
15719            },
15720            Opcode::AMOCASQ => Inst {
15721                opcode: 0x2f,
15722                funct3: 0x4,
15723                rs1: 0x0,
15724                rs2: 0x0,
15725                csr: 0x280,
15726                funct7: 0x14,
15727            },
15728            Opcode::AMOCASW => Inst {
15729                opcode: 0x2f,
15730                funct3: 0x2,
15731                rs1: 0x0,
15732                rs2: 0x0,
15733                csr: 0x280,
15734                funct7: 0x14,
15735            },
15736            Opcode::AMOMAXB => Inst {
15737                opcode: 0x2f,
15738                funct3: 0x0,
15739                rs1: 0x0,
15740                rs2: 0x0,
15741                csr: 0xa00,
15742                funct7: 0x50,
15743            },
15744            Opcode::AMOMAXD => Inst {
15745                opcode: 0x2f,
15746                funct3: 0x3,
15747                rs1: 0x0,
15748                rs2: 0x0,
15749                csr: 0xa00,
15750                funct7: 0x50,
15751            },
15752            Opcode::AMOMAXH => Inst {
15753                opcode: 0x2f,
15754                funct3: 0x1,
15755                rs1: 0x0,
15756                rs2: 0x0,
15757                csr: 0xa00,
15758                funct7: 0x50,
15759            },
15760            Opcode::AMOMAXW => Inst {
15761                opcode: 0x2f,
15762                funct3: 0x2,
15763                rs1: 0x0,
15764                rs2: 0x0,
15765                csr: 0xa00,
15766                funct7: 0x50,
15767            },
15768            Opcode::AMOMAXUB => Inst {
15769                opcode: 0x2f,
15770                funct3: 0x0,
15771                rs1: 0x0,
15772                rs2: 0x0,
15773                csr: 0xe00,
15774                funct7: 0x70,
15775            },
15776            Opcode::AMOMAXUD => Inst {
15777                opcode: 0x2f,
15778                funct3: 0x3,
15779                rs1: 0x0,
15780                rs2: 0x0,
15781                csr: 0xe00,
15782                funct7: 0x70,
15783            },
15784            Opcode::AMOMAXUH => Inst {
15785                opcode: 0x2f,
15786                funct3: 0x1,
15787                rs1: 0x0,
15788                rs2: 0x0,
15789                csr: 0xe00,
15790                funct7: 0x70,
15791            },
15792            Opcode::AMOMAXUW => Inst {
15793                opcode: 0x2f,
15794                funct3: 0x2,
15795                rs1: 0x0,
15796                rs2: 0x0,
15797                csr: 0xe00,
15798                funct7: 0x70,
15799            },
15800            Opcode::AMOMINB => Inst {
15801                opcode: 0x2f,
15802                funct3: 0x0,
15803                rs1: 0x0,
15804                rs2: 0x0,
15805                csr: 0x800,
15806                funct7: 0x40,
15807            },
15808            Opcode::AMOMIND => Inst {
15809                opcode: 0x2f,
15810                funct3: 0x3,
15811                rs1: 0x0,
15812                rs2: 0x0,
15813                csr: 0x800,
15814                funct7: 0x40,
15815            },
15816            Opcode::AMOMINH => Inst {
15817                opcode: 0x2f,
15818                funct3: 0x1,
15819                rs1: 0x0,
15820                rs2: 0x0,
15821                csr: 0x800,
15822                funct7: 0x40,
15823            },
15824            Opcode::AMOMINW => Inst {
15825                opcode: 0x2f,
15826                funct3: 0x2,
15827                rs1: 0x0,
15828                rs2: 0x0,
15829                csr: 0x800,
15830                funct7: 0x40,
15831            },
15832            Opcode::AMOMINUB => Inst {
15833                opcode: 0x2f,
15834                funct3: 0x0,
15835                rs1: 0x0,
15836                rs2: 0x0,
15837                csr: 0xc00,
15838                funct7: 0x60,
15839            },
15840            Opcode::AMOMINUD => Inst {
15841                opcode: 0x2f,
15842                funct3: 0x3,
15843                rs1: 0x0,
15844                rs2: 0x0,
15845                csr: 0xc00,
15846                funct7: 0x60,
15847            },
15848            Opcode::AMOMINUH => Inst {
15849                opcode: 0x2f,
15850                funct3: 0x1,
15851                rs1: 0x0,
15852                rs2: 0x0,
15853                csr: 0xc00,
15854                funct7: 0x60,
15855            },
15856            Opcode::AMOMINUW => Inst {
15857                opcode: 0x2f,
15858                funct3: 0x2,
15859                rs1: 0x0,
15860                rs2: 0x0,
15861                csr: 0xc00,
15862                funct7: 0x60,
15863            },
15864            Opcode::AMOORB => Inst {
15865                opcode: 0x2f,
15866                funct3: 0x0,
15867                rs1: 0x0,
15868                rs2: 0x0,
15869                csr: 0x400,
15870                funct7: 0x20,
15871            },
15872            Opcode::AMOORD => Inst {
15873                opcode: 0x2f,
15874                funct3: 0x3,
15875                rs1: 0x0,
15876                rs2: 0x0,
15877                csr: 0x400,
15878                funct7: 0x20,
15879            },
15880            Opcode::AMOORH => Inst {
15881                opcode: 0x2f,
15882                funct3: 0x1,
15883                rs1: 0x0,
15884                rs2: 0x0,
15885                csr: 0x400,
15886                funct7: 0x20,
15887            },
15888            Opcode::AMOORW => Inst {
15889                opcode: 0x2f,
15890                funct3: 0x2,
15891                rs1: 0x0,
15892                rs2: 0x0,
15893                csr: 0x400,
15894                funct7: 0x20,
15895            },
15896            Opcode::AMOSWAPB => Inst {
15897                opcode: 0x2f,
15898                funct3: 0x0,
15899                rs1: 0x0,
15900                rs2: 0x0,
15901                csr: 0x80,
15902                funct7: 0x4,
15903            },
15904            Opcode::AMOSWAPD => Inst {
15905                opcode: 0x2f,
15906                funct3: 0x3,
15907                rs1: 0x0,
15908                rs2: 0x0,
15909                csr: 0x80,
15910                funct7: 0x4,
15911            },
15912            Opcode::AMOSWAPH => Inst {
15913                opcode: 0x2f,
15914                funct3: 0x1,
15915                rs1: 0x0,
15916                rs2: 0x0,
15917                csr: 0x80,
15918                funct7: 0x4,
15919            },
15920            Opcode::AMOSWAPW => Inst {
15921                opcode: 0x2f,
15922                funct3: 0x2,
15923                rs1: 0x0,
15924                rs2: 0x0,
15925                csr: 0x80,
15926                funct7: 0x4,
15927            },
15928            Opcode::AMOXORB => Inst {
15929                opcode: 0x2f,
15930                funct3: 0x0,
15931                rs1: 0x0,
15932                rs2: 0x0,
15933                csr: 0x200,
15934                funct7: 0x10,
15935            },
15936            Opcode::AMOXORD => Inst {
15937                opcode: 0x2f,
15938                funct3: 0x3,
15939                rs1: 0x0,
15940                rs2: 0x0,
15941                csr: 0x200,
15942                funct7: 0x10,
15943            },
15944            Opcode::AMOXORH => Inst {
15945                opcode: 0x2f,
15946                funct3: 0x1,
15947                rs1: 0x0,
15948                rs2: 0x0,
15949                csr: 0x200,
15950                funct7: 0x10,
15951            },
15952            Opcode::AMOXORW => Inst {
15953                opcode: 0x2f,
15954                funct3: 0x2,
15955                rs1: 0x0,
15956                rs2: 0x0,
15957                csr: 0x200,
15958                funct7: 0x10,
15959            },
15960            Opcode::AND => Inst {
15961                opcode: 0x33,
15962                funct3: 0x7,
15963                rs1: 0x0,
15964                rs2: 0x0,
15965                csr: 0x0,
15966                funct7: 0x0,
15967            },
15968            Opcode::ANDI => Inst {
15969                opcode: 0x13,
15970                funct3: 0x7,
15971                rs1: 0x0,
15972                rs2: 0x0,
15973                csr: 0x0,
15974                funct7: 0x0,
15975            },
15976            Opcode::ANDN => Inst {
15977                opcode: 0x33,
15978                funct3: 0x7,
15979                rs1: 0x0,
15980                rs2: 0x0,
15981                csr: 0x400,
15982                funct7: 0x20,
15983            },
15984            Opcode::AUIPC => Inst {
15985                opcode: 0x17,
15986                funct3: 0x0,
15987                rs1: 0x0,
15988                rs2: 0x0,
15989                csr: 0x0,
15990                funct7: 0x0,
15991            },
15992            Opcode::BCLR => Inst {
15993                opcode: 0x33,
15994                funct3: 0x1,
15995                rs1: 0x0,
15996                rs2: 0x0,
15997                csr: 0x480,
15998                funct7: 0x24,
15999            },
16000            Opcode::BCLRI => Inst {
16001                opcode: 0x13,
16002                funct3: 0x1,
16003                rs1: 0x0,
16004                rs2: 0x0,
16005                csr: 0x480,
16006                funct7: 0x24,
16007            },
16008            Opcode::BCLRIRV32 => Inst {
16009                opcode: 0x13,
16010                funct3: 0x1,
16011                rs1: 0x0,
16012                rs2: 0x0,
16013                csr: 0x480,
16014                funct7: 0x24,
16015            },
16016            Opcode::BEQ => Inst {
16017                opcode: 0x63,
16018                funct3: 0x0,
16019                rs1: 0x0,
16020                rs2: 0x0,
16021                csr: 0x0,
16022                funct7: 0x0,
16023            },
16024            Opcode::BEQZ => Inst {
16025                opcode: 0x63,
16026                funct3: 0x0,
16027                rs1: 0x0,
16028                rs2: 0x0,
16029                csr: 0x0,
16030                funct7: 0x0,
16031            },
16032            Opcode::BEXT => Inst {
16033                opcode: 0x33,
16034                funct3: 0x5,
16035                rs1: 0x0,
16036                rs2: 0x0,
16037                csr: 0x480,
16038                funct7: 0x24,
16039            },
16040            Opcode::BEXTI => Inst {
16041                opcode: 0x13,
16042                funct3: 0x5,
16043                rs1: 0x0,
16044                rs2: 0x0,
16045                csr: 0x480,
16046                funct7: 0x24,
16047            },
16048            Opcode::BEXTIRV32 => Inst {
16049                opcode: 0x13,
16050                funct3: 0x5,
16051                rs1: 0x0,
16052                rs2: 0x0,
16053                csr: 0x480,
16054                funct7: 0x24,
16055            },
16056            Opcode::BGE => Inst {
16057                opcode: 0x63,
16058                funct3: 0x5,
16059                rs1: 0x0,
16060                rs2: 0x0,
16061                csr: 0x0,
16062                funct7: 0x0,
16063            },
16064            Opcode::BGEU => Inst {
16065                opcode: 0x63,
16066                funct3: 0x7,
16067                rs1: 0x0,
16068                rs2: 0x0,
16069                csr: 0x0,
16070                funct7: 0x0,
16071            },
16072            Opcode::BGEZ => Inst {
16073                opcode: 0x63,
16074                funct3: 0x5,
16075                rs1: 0x0,
16076                rs2: 0x0,
16077                csr: 0x0,
16078                funct7: 0x0,
16079            },
16080            Opcode::BGT => Inst {
16081                opcode: 0x63,
16082                funct3: 0x4,
16083                rs1: 0x0,
16084                rs2: 0x0,
16085                csr: 0x0,
16086                funct7: 0x0,
16087            },
16088            Opcode::BGTU => Inst {
16089                opcode: 0x63,
16090                funct3: 0x6,
16091                rs1: 0x0,
16092                rs2: 0x0,
16093                csr: 0x0,
16094                funct7: 0x0,
16095            },
16096            Opcode::BGTZ => Inst {
16097                opcode: 0x63,
16098                funct3: 0x4,
16099                rs1: 0x0,
16100                rs2: 0x0,
16101                csr: 0x0,
16102                funct7: 0x0,
16103            },
16104            Opcode::BINV => Inst {
16105                opcode: 0x33,
16106                funct3: 0x1,
16107                rs1: 0x0,
16108                rs2: 0x0,
16109                csr: 0x680,
16110                funct7: 0x34,
16111            },
16112            Opcode::BINVI => Inst {
16113                opcode: 0x13,
16114                funct3: 0x1,
16115                rs1: 0x0,
16116                rs2: 0x0,
16117                csr: 0x680,
16118                funct7: 0x34,
16119            },
16120            Opcode::BINVIRV32 => Inst {
16121                opcode: 0x13,
16122                funct3: 0x1,
16123                rs1: 0x0,
16124                rs2: 0x0,
16125                csr: 0x680,
16126                funct7: 0x34,
16127            },
16128            Opcode::BLE => Inst {
16129                opcode: 0x63,
16130                funct3: 0x5,
16131                rs1: 0x0,
16132                rs2: 0x0,
16133                csr: 0x0,
16134                funct7: 0x0,
16135            },
16136            Opcode::BLEU => Inst {
16137                opcode: 0x63,
16138                funct3: 0x7,
16139                rs1: 0x0,
16140                rs2: 0x0,
16141                csr: 0x0,
16142                funct7: 0x0,
16143            },
16144            Opcode::BLEZ => Inst {
16145                opcode: 0x63,
16146                funct3: 0x5,
16147                rs1: 0x0,
16148                rs2: 0x0,
16149                csr: 0x0,
16150                funct7: 0x0,
16151            },
16152            Opcode::BLT => Inst {
16153                opcode: 0x63,
16154                funct3: 0x4,
16155                rs1: 0x0,
16156                rs2: 0x0,
16157                csr: 0x0,
16158                funct7: 0x0,
16159            },
16160            Opcode::BLTU => Inst {
16161                opcode: 0x63,
16162                funct3: 0x6,
16163                rs1: 0x0,
16164                rs2: 0x0,
16165                csr: 0x0,
16166                funct7: 0x0,
16167            },
16168            Opcode::BLTZ => Inst {
16169                opcode: 0x63,
16170                funct3: 0x4,
16171                rs1: 0x0,
16172                rs2: 0x0,
16173                csr: 0x0,
16174                funct7: 0x0,
16175            },
16176            Opcode::BNE => Inst {
16177                opcode: 0x63,
16178                funct3: 0x1,
16179                rs1: 0x0,
16180                rs2: 0x0,
16181                csr: 0x0,
16182                funct7: 0x0,
16183            },
16184            Opcode::BNEZ => Inst {
16185                opcode: 0x63,
16186                funct3: 0x1,
16187                rs1: 0x0,
16188                rs2: 0x0,
16189                csr: 0x0,
16190                funct7: 0x0,
16191            },
16192            Opcode::BREV8 => Inst {
16193                opcode: 0x13,
16194                funct3: 0x5,
16195                rs1: 0x0,
16196                rs2: 0x7,
16197                csr: 0x687,
16198                funct7: 0x34,
16199            },
16200            Opcode::BSET => Inst {
16201                opcode: 0x33,
16202                funct3: 0x1,
16203                rs1: 0x0,
16204                rs2: 0x0,
16205                csr: 0x280,
16206                funct7: 0x14,
16207            },
16208            Opcode::BSETI => Inst {
16209                opcode: 0x13,
16210                funct3: 0x1,
16211                rs1: 0x0,
16212                rs2: 0x0,
16213                csr: 0x280,
16214                funct7: 0x14,
16215            },
16216            Opcode::BSETIRV32 => Inst {
16217                opcode: 0x13,
16218                funct3: 0x1,
16219                rs1: 0x0,
16220                rs2: 0x0,
16221                csr: 0x280,
16222                funct7: 0x14,
16223            },
16224            Opcode::CADD => Inst {
16225                opcode: 0x2,
16226                funct3: 0x1,
16227                rs1: 0x1,
16228                rs2: 0x0,
16229                csr: 0x0,
16230                funct7: 0x0,
16231            },
16232            Opcode::CADDI => Inst {
16233                opcode: 0x1,
16234                funct3: 0x0,
16235                rs1: 0x0,
16236                rs2: 0x0,
16237                csr: 0x0,
16238                funct7: 0x0,
16239            },
16240            Opcode::CADDI16SP => Inst {
16241                opcode: 0x1,
16242                funct3: 0x6,
16243                rs1: 0x0,
16244                rs2: 0x0,
16245                csr: 0x0,
16246                funct7: 0x0,
16247            },
16248            Opcode::CADDI4SPN => Inst {
16249                opcode: 0x0,
16250                funct3: 0x0,
16251                rs1: 0x0,
16252                rs2: 0x0,
16253                csr: 0x0,
16254                funct7: 0x0,
16255            },
16256            Opcode::CADDIW => Inst {
16257                opcode: 0x1,
16258                funct3: 0x2,
16259                rs1: 0x0,
16260                rs2: 0x0,
16261                csr: 0x0,
16262                funct7: 0x0,
16263            },
16264            Opcode::CADDW => Inst {
16265                opcode: 0x21,
16266                funct3: 0x1,
16267                rs1: 0x1,
16268                rs2: 0x0,
16269                csr: 0x0,
16270                funct7: 0x0,
16271            },
16272            Opcode::CAND => Inst {
16273                opcode: 0x61,
16274                funct3: 0x0,
16275                rs1: 0x1,
16276                rs2: 0x0,
16277                csr: 0x0,
16278                funct7: 0x0,
16279            },
16280            Opcode::CANDI => Inst {
16281                opcode: 0x1,
16282                funct3: 0x0,
16283                rs1: 0x1,
16284                rs2: 0x0,
16285                csr: 0x0,
16286                funct7: 0x0,
16287            },
16288            Opcode::CBEQZ => Inst {
16289                opcode: 0x1,
16290                funct3: 0x4,
16291                rs1: 0x1,
16292                rs2: 0x0,
16293                csr: 0x0,
16294                funct7: 0x0,
16295            },
16296            Opcode::CBNEZ => Inst {
16297                opcode: 0x1,
16298                funct3: 0x6,
16299                rs1: 0x1,
16300                rs2: 0x0,
16301                csr: 0x0,
16302                funct7: 0x0,
16303            },
16304            Opcode::CEBREAK => Inst {
16305                opcode: 0x2,
16306                funct3: 0x1,
16307                rs1: 0x1,
16308                rs2: 0x0,
16309                csr: 0x0,
16310                funct7: 0x0,
16311            },
16312            Opcode::CFLD => Inst {
16313                opcode: 0x0,
16314                funct3: 0x2,
16315                rs1: 0x0,
16316                rs2: 0x0,
16317                csr: 0x0,
16318                funct7: 0x0,
16319            },
16320            Opcode::CFLDSP => Inst {
16321                opcode: 0x2,
16322                funct3: 0x2,
16323                rs1: 0x0,
16324                rs2: 0x0,
16325                csr: 0x0,
16326                funct7: 0x0,
16327            },
16328            Opcode::CFLW => Inst {
16329                opcode: 0x0,
16330                funct3: 0x6,
16331                rs1: 0x0,
16332                rs2: 0x0,
16333                csr: 0x0,
16334                funct7: 0x0,
16335            },
16336            Opcode::CFLWSP => Inst {
16337                opcode: 0x2,
16338                funct3: 0x6,
16339                rs1: 0x0,
16340                rs2: 0x0,
16341                csr: 0x0,
16342                funct7: 0x0,
16343            },
16344            Opcode::CFSD => Inst {
16345                opcode: 0x0,
16346                funct3: 0x2,
16347                rs1: 0x1,
16348                rs2: 0x0,
16349                csr: 0x0,
16350                funct7: 0x0,
16351            },
16352            Opcode::CFSDSP => Inst {
16353                opcode: 0x2,
16354                funct3: 0x2,
16355                rs1: 0x1,
16356                rs2: 0x0,
16357                csr: 0x0,
16358                funct7: 0x0,
16359            },
16360            Opcode::CFSW => Inst {
16361                opcode: 0x0,
16362                funct3: 0x6,
16363                rs1: 0x1,
16364                rs2: 0x0,
16365                csr: 0x0,
16366                funct7: 0x0,
16367            },
16368            Opcode::CFSWSP => Inst {
16369                opcode: 0x2,
16370                funct3: 0x6,
16371                rs1: 0x1,
16372                rs2: 0x0,
16373                csr: 0x0,
16374                funct7: 0x0,
16375            },
16376            Opcode::CJ => Inst {
16377                opcode: 0x1,
16378                funct3: 0x2,
16379                rs1: 0x1,
16380                rs2: 0x0,
16381                csr: 0x0,
16382                funct7: 0x0,
16383            },
16384            Opcode::CJAL => Inst {
16385                opcode: 0x1,
16386                funct3: 0x2,
16387                rs1: 0x0,
16388                rs2: 0x0,
16389                csr: 0x0,
16390                funct7: 0x0,
16391            },
16392            Opcode::CJALR => Inst {
16393                opcode: 0x2,
16394                funct3: 0x1,
16395                rs1: 0x1,
16396                rs2: 0x0,
16397                csr: 0x0,
16398                funct7: 0x0,
16399            },
16400            Opcode::CJR => Inst {
16401                opcode: 0x2,
16402                funct3: 0x0,
16403                rs1: 0x1,
16404                rs2: 0x0,
16405                csr: 0x0,
16406                funct7: 0x0,
16407            },
16408            Opcode::CLBU => Inst {
16409                opcode: 0x0,
16410                funct3: 0x0,
16411                rs1: 0x1,
16412                rs2: 0x0,
16413                csr: 0x0,
16414                funct7: 0x0,
16415            },
16416            Opcode::CLD => Inst {
16417                opcode: 0x0,
16418                funct3: 0x6,
16419                rs1: 0x0,
16420                rs2: 0x0,
16421                csr: 0x0,
16422                funct7: 0x0,
16423            },
16424            Opcode::CLDSP => Inst {
16425                opcode: 0x2,
16426                funct3: 0x6,
16427                rs1: 0x0,
16428                rs2: 0x0,
16429                csr: 0x0,
16430                funct7: 0x0,
16431            },
16432            Opcode::CLH => Inst {
16433                opcode: 0x40,
16434                funct3: 0x0,
16435                rs1: 0x1,
16436                rs2: 0x0,
16437                csr: 0x0,
16438                funct7: 0x0,
16439            },
16440            Opcode::CLHU => Inst {
16441                opcode: 0x0,
16442                funct3: 0x0,
16443                rs1: 0x1,
16444                rs2: 0x0,
16445                csr: 0x0,
16446                funct7: 0x0,
16447            },
16448            Opcode::CLI => Inst {
16449                opcode: 0x1,
16450                funct3: 0x4,
16451                rs1: 0x0,
16452                rs2: 0x0,
16453                csr: 0x0,
16454                funct7: 0x0,
16455            },
16456            Opcode::CLUI => Inst {
16457                opcode: 0x1,
16458                funct3: 0x6,
16459                rs1: 0x0,
16460                rs2: 0x0,
16461                csr: 0x0,
16462                funct7: 0x0,
16463            },
16464            Opcode::CLW => Inst {
16465                opcode: 0x0,
16466                funct3: 0x4,
16467                rs1: 0x0,
16468                rs2: 0x0,
16469                csr: 0x0,
16470                funct7: 0x0,
16471            },
16472            Opcode::CLWSP => Inst {
16473                opcode: 0x2,
16474                funct3: 0x4,
16475                rs1: 0x0,
16476                rs2: 0x0,
16477                csr: 0x0,
16478                funct7: 0x0,
16479            },
16480            Opcode::CMOP1 => Inst {
16481                opcode: 0x1,
16482                funct3: 0x6,
16483                rs1: 0x0,
16484                rs2: 0x0,
16485                csr: 0x0,
16486                funct7: 0x0,
16487            },
16488            Opcode::CMOP11 => Inst {
16489                opcode: 0x1,
16490                funct3: 0x6,
16491                rs1: 0x0,
16492                rs2: 0x0,
16493                csr: 0x0,
16494                funct7: 0x0,
16495            },
16496            Opcode::CMOP13 => Inst {
16497                opcode: 0x1,
16498                funct3: 0x6,
16499                rs1: 0x0,
16500                rs2: 0x0,
16501                csr: 0x0,
16502                funct7: 0x0,
16503            },
16504            Opcode::CMOP15 => Inst {
16505                opcode: 0x1,
16506                funct3: 0x6,
16507                rs1: 0x0,
16508                rs2: 0x0,
16509                csr: 0x0,
16510                funct7: 0x0,
16511            },
16512            Opcode::CMOP3 => Inst {
16513                opcode: 0x1,
16514                funct3: 0x6,
16515                rs1: 0x0,
16516                rs2: 0x0,
16517                csr: 0x0,
16518                funct7: 0x0,
16519            },
16520            Opcode::CMOP5 => Inst {
16521                opcode: 0x1,
16522                funct3: 0x6,
16523                rs1: 0x0,
16524                rs2: 0x0,
16525                csr: 0x0,
16526                funct7: 0x0,
16527            },
16528            Opcode::CMOP7 => Inst {
16529                opcode: 0x1,
16530                funct3: 0x6,
16531                rs1: 0x0,
16532                rs2: 0x0,
16533                csr: 0x0,
16534                funct7: 0x0,
16535            },
16536            Opcode::CMOP9 => Inst {
16537                opcode: 0x1,
16538                funct3: 0x6,
16539                rs1: 0x0,
16540                rs2: 0x0,
16541                csr: 0x0,
16542                funct7: 0x0,
16543            },
16544            Opcode::CMOPN => Inst {
16545                opcode: 0x1,
16546                funct3: 0x6,
16547                rs1: 0x0,
16548                rs2: 0x0,
16549                csr: 0x0,
16550                funct7: 0x0,
16551            },
16552            Opcode::CMUL => Inst {
16553                opcode: 0x41,
16554                funct3: 0x1,
16555                rs1: 0x1,
16556                rs2: 0x0,
16557                csr: 0x0,
16558                funct7: 0x0,
16559            },
16560            Opcode::CMV => Inst {
16561                opcode: 0x2,
16562                funct3: 0x0,
16563                rs1: 0x1,
16564                rs2: 0x0,
16565                csr: 0x0,
16566                funct7: 0x0,
16567            },
16568            Opcode::CNOP => Inst {
16569                opcode: 0x1,
16570                funct3: 0x0,
16571                rs1: 0x0,
16572                rs2: 0x0,
16573                csr: 0x0,
16574                funct7: 0x0,
16575            },
16576            Opcode::CNOT => Inst {
16577                opcode: 0x75,
16578                funct3: 0x1,
16579                rs1: 0x1,
16580                rs2: 0x0,
16581                csr: 0x0,
16582                funct7: 0x0,
16583            },
16584            Opcode::CNTLALL => Inst {
16585                opcode: 0x16,
16586                funct3: 0x1,
16587                rs1: 0x1,
16588                rs2: 0x0,
16589                csr: 0x0,
16590                funct7: 0x0,
16591            },
16592            Opcode::CNTLP1 => Inst {
16593                opcode: 0xa,
16594                funct3: 0x1,
16595                rs1: 0x1,
16596                rs2: 0x0,
16597                csr: 0x0,
16598                funct7: 0x0,
16599            },
16600            Opcode::CNTLPALL => Inst {
16601                opcode: 0xe,
16602                funct3: 0x1,
16603                rs1: 0x1,
16604                rs2: 0x0,
16605                csr: 0x0,
16606                funct7: 0x0,
16607            },
16608            Opcode::CNTLS1 => Inst {
16609                opcode: 0x12,
16610                funct3: 0x1,
16611                rs1: 0x1,
16612                rs2: 0x0,
16613                csr: 0x0,
16614                funct7: 0x0,
16615            },
16616            Opcode::COR => Inst {
16617                opcode: 0x41,
16618                funct3: 0x0,
16619                rs1: 0x1,
16620                rs2: 0x0,
16621                csr: 0x0,
16622                funct7: 0x0,
16623            },
16624            Opcode::CSB => Inst {
16625                opcode: 0x0,
16626                funct3: 0x0,
16627                rs1: 0x1,
16628                rs2: 0x0,
16629                csr: 0x0,
16630                funct7: 0x0,
16631            },
16632            Opcode::CSD => Inst {
16633                opcode: 0x0,
16634                funct3: 0x6,
16635                rs1: 0x1,
16636                rs2: 0x0,
16637                csr: 0x0,
16638                funct7: 0x0,
16639            },
16640            Opcode::CSDSP => Inst {
16641                opcode: 0x2,
16642                funct3: 0x6,
16643                rs1: 0x1,
16644                rs2: 0x0,
16645                csr: 0x0,
16646                funct7: 0x0,
16647            },
16648            Opcode::CSEXTB => Inst {
16649                opcode: 0x65,
16650                funct3: 0x1,
16651                rs1: 0x1,
16652                rs2: 0x0,
16653                csr: 0x0,
16654                funct7: 0x0,
16655            },
16656            Opcode::CSEXTH => Inst {
16657                opcode: 0x6d,
16658                funct3: 0x1,
16659                rs1: 0x1,
16660                rs2: 0x0,
16661                csr: 0x0,
16662                funct7: 0x0,
16663            },
16664            Opcode::CSEXTW => Inst {
16665                opcode: 0x1,
16666                funct3: 0x2,
16667                rs1: 0x0,
16668                rs2: 0x0,
16669                csr: 0x0,
16670                funct7: 0x0,
16671            },
16672            Opcode::CSH => Inst {
16673                opcode: 0x0,
16674                funct3: 0x0,
16675                rs1: 0x1,
16676                rs2: 0x0,
16677                csr: 0x0,
16678                funct7: 0x0,
16679            },
16680            Opcode::CSLLI => Inst {
16681                opcode: 0x2,
16682                funct3: 0x0,
16683                rs1: 0x0,
16684                rs2: 0x0,
16685                csr: 0x0,
16686                funct7: 0x0,
16687            },
16688            Opcode::CSLLIRV32 => Inst {
16689                opcode: 0x2,
16690                funct3: 0x0,
16691                rs1: 0x0,
16692                rs2: 0x0,
16693                csr: 0x0,
16694                funct7: 0x0,
16695            },
16696            Opcode::CSRAI => Inst {
16697                opcode: 0x1,
16698                funct3: 0x0,
16699                rs1: 0x1,
16700                rs2: 0x0,
16701                csr: 0x0,
16702                funct7: 0x0,
16703            },
16704            Opcode::CSRAIRV32 => Inst {
16705                opcode: 0x1,
16706                funct3: 0x0,
16707                rs1: 0x1,
16708                rs2: 0x0,
16709                csr: 0x0,
16710                funct7: 0x0,
16711            },
16712            Opcode::CSRLI => Inst {
16713                opcode: 0x1,
16714                funct3: 0x0,
16715                rs1: 0x1,
16716                rs2: 0x0,
16717                csr: 0x0,
16718                funct7: 0x0,
16719            },
16720            Opcode::CSRLIRV32 => Inst {
16721                opcode: 0x1,
16722                funct3: 0x0,
16723                rs1: 0x1,
16724                rs2: 0x0,
16725                csr: 0x0,
16726                funct7: 0x0,
16727            },
16728            Opcode::CSUB => Inst {
16729                opcode: 0x1,
16730                funct3: 0x0,
16731                rs1: 0x1,
16732                rs2: 0x0,
16733                csr: 0x0,
16734                funct7: 0x0,
16735            },
16736            Opcode::CSUBW => Inst {
16737                opcode: 0x1,
16738                funct3: 0x1,
16739                rs1: 0x1,
16740                rs2: 0x0,
16741                csr: 0x0,
16742                funct7: 0x0,
16743            },
16744            Opcode::CSW => Inst {
16745                opcode: 0x0,
16746                funct3: 0x4,
16747                rs1: 0x1,
16748                rs2: 0x0,
16749                csr: 0x0,
16750                funct7: 0x0,
16751            },
16752            Opcode::CSWSP => Inst {
16753                opcode: 0x2,
16754                funct3: 0x4,
16755                rs1: 0x1,
16756                rs2: 0x0,
16757                csr: 0x0,
16758                funct7: 0x0,
16759            },
16760            Opcode::CXOR => Inst {
16761                opcode: 0x21,
16762                funct3: 0x0,
16763                rs1: 0x1,
16764                rs2: 0x0,
16765                csr: 0x0,
16766                funct7: 0x0,
16767            },
16768            Opcode::CZEXTB => Inst {
16769                opcode: 0x61,
16770                funct3: 0x1,
16771                rs1: 0x1,
16772                rs2: 0x0,
16773                csr: 0x0,
16774                funct7: 0x0,
16775            },
16776            Opcode::CZEXTH => Inst {
16777                opcode: 0x69,
16778                funct3: 0x1,
16779                rs1: 0x1,
16780                rs2: 0x0,
16781                csr: 0x0,
16782                funct7: 0x0,
16783            },
16784            Opcode::CZEXTW => Inst {
16785                opcode: 0x71,
16786                funct3: 0x1,
16787                rs1: 0x1,
16788                rs2: 0x0,
16789                csr: 0x0,
16790                funct7: 0x0,
16791            },
16792            Opcode::CBOCLEAN => Inst {
16793                opcode: 0xf,
16794                funct3: 0x2,
16795                rs1: 0x0,
16796                rs2: 0x1,
16797                csr: 0x1,
16798                funct7: 0x0,
16799            },
16800            Opcode::CBOFLUSH => Inst {
16801                opcode: 0xf,
16802                funct3: 0x2,
16803                rs1: 0x0,
16804                rs2: 0x2,
16805                csr: 0x2,
16806                funct7: 0x0,
16807            },
16808            Opcode::CBOINVAL => Inst {
16809                opcode: 0xf,
16810                funct3: 0x2,
16811                rs1: 0x0,
16812                rs2: 0x0,
16813                csr: 0x0,
16814                funct7: 0x0,
16815            },
16816            Opcode::CBOZERO => Inst {
16817                opcode: 0xf,
16818                funct3: 0x2,
16819                rs1: 0x0,
16820                rs2: 0x4,
16821                csr: 0x4,
16822                funct7: 0x0,
16823            },
16824            Opcode::CLMUL => Inst {
16825                opcode: 0x33,
16826                funct3: 0x1,
16827                rs1: 0x0,
16828                rs2: 0x0,
16829                csr: 0xa0,
16830                funct7: 0x5,
16831            },
16832            Opcode::CLMULH => Inst {
16833                opcode: 0x33,
16834                funct3: 0x3,
16835                rs1: 0x0,
16836                rs2: 0x0,
16837                csr: 0xa0,
16838                funct7: 0x5,
16839            },
16840            Opcode::CLMULR => Inst {
16841                opcode: 0x33,
16842                funct3: 0x2,
16843                rs1: 0x0,
16844                rs2: 0x0,
16845                csr: 0xa0,
16846                funct7: 0x5,
16847            },
16848            Opcode::CLZ => Inst {
16849                opcode: 0x13,
16850                funct3: 0x1,
16851                rs1: 0x0,
16852                rs2: 0x0,
16853                csr: 0x600,
16854                funct7: 0x30,
16855            },
16856            Opcode::CLZW => Inst {
16857                opcode: 0x1b,
16858                funct3: 0x1,
16859                rs1: 0x0,
16860                rs2: 0x0,
16861                csr: 0x600,
16862                funct7: 0x30,
16863            },
16864            Opcode::CMJALT => Inst {
16865                opcode: 0x2,
16866                funct3: 0x2,
16867                rs1: 0x1,
16868                rs2: 0x0,
16869                csr: 0x0,
16870                funct7: 0x0,
16871            },
16872            Opcode::CMMVA01S => Inst {
16873                opcode: 0x62,
16874                funct3: 0x2,
16875                rs1: 0x1,
16876                rs2: 0x0,
16877                csr: 0x0,
16878                funct7: 0x0,
16879            },
16880            Opcode::CMMVSA01 => Inst {
16881                opcode: 0x22,
16882                funct3: 0x2,
16883                rs1: 0x1,
16884                rs2: 0x0,
16885                csr: 0x0,
16886                funct7: 0x0,
16887            },
16888            Opcode::CMPOP => Inst {
16889                opcode: 0x2,
16890                funct3: 0x3,
16891                rs1: 0x1,
16892                rs2: 0x0,
16893                csr: 0x0,
16894                funct7: 0x0,
16895            },
16896            Opcode::CMPOPRET => Inst {
16897                opcode: 0x2,
16898                funct3: 0x3,
16899                rs1: 0x1,
16900                rs2: 0x0,
16901                csr: 0x0,
16902                funct7: 0x0,
16903            },
16904            Opcode::CMPOPRETZ => Inst {
16905                opcode: 0x2,
16906                funct3: 0x3,
16907                rs1: 0x1,
16908                rs2: 0x0,
16909                csr: 0x0,
16910                funct7: 0x0,
16911            },
16912            Opcode::CMPUSH => Inst {
16913                opcode: 0x2,
16914                funct3: 0x3,
16915                rs1: 0x1,
16916                rs2: 0x0,
16917                csr: 0x0,
16918                funct7: 0x0,
16919            },
16920            Opcode::CPOP => Inst {
16921                opcode: 0x13,
16922                funct3: 0x1,
16923                rs1: 0x0,
16924                rs2: 0x2,
16925                csr: 0x602,
16926                funct7: 0x30,
16927            },
16928            Opcode::CPOPW => Inst {
16929                opcode: 0x1b,
16930                funct3: 0x1,
16931                rs1: 0x0,
16932                rs2: 0x2,
16933                csr: 0x602,
16934                funct7: 0x30,
16935            },
16936            Opcode::CSRC => Inst {
16937                opcode: 0x73,
16938                funct3: 0x3,
16939                rs1: 0x0,
16940                rs2: 0x0,
16941                csr: 0x0,
16942                funct7: 0x0,
16943            },
16944            Opcode::CSRCI => Inst {
16945                opcode: 0x73,
16946                funct3: 0x7,
16947                rs1: 0x0,
16948                rs2: 0x0,
16949                csr: 0x0,
16950                funct7: 0x0,
16951            },
16952            Opcode::CSRR => Inst {
16953                opcode: 0x73,
16954                funct3: 0x2,
16955                rs1: 0x0,
16956                rs2: 0x0,
16957                csr: 0x0,
16958                funct7: 0x0,
16959            },
16960            Opcode::CSRRC => Inst {
16961                opcode: 0x73,
16962                funct3: 0x3,
16963                rs1: 0x0,
16964                rs2: 0x0,
16965                csr: 0x0,
16966                funct7: 0x0,
16967            },
16968            Opcode::CSRRCI => Inst {
16969                opcode: 0x73,
16970                funct3: 0x7,
16971                rs1: 0x0,
16972                rs2: 0x0,
16973                csr: 0x0,
16974                funct7: 0x0,
16975            },
16976            Opcode::CSRRS => Inst {
16977                opcode: 0x73,
16978                funct3: 0x2,
16979                rs1: 0x0,
16980                rs2: 0x0,
16981                csr: 0x0,
16982                funct7: 0x0,
16983            },
16984            Opcode::CSRRSI => Inst {
16985                opcode: 0x73,
16986                funct3: 0x6,
16987                rs1: 0x0,
16988                rs2: 0x0,
16989                csr: 0x0,
16990                funct7: 0x0,
16991            },
16992            Opcode::CSRRW => Inst {
16993                opcode: 0x73,
16994                funct3: 0x1,
16995                rs1: 0x0,
16996                rs2: 0x0,
16997                csr: 0x0,
16998                funct7: 0x0,
16999            },
17000            Opcode::CSRRWI => Inst {
17001                opcode: 0x73,
17002                funct3: 0x5,
17003                rs1: 0x0,
17004                rs2: 0x0,
17005                csr: 0x0,
17006                funct7: 0x0,
17007            },
17008            Opcode::CSRS => Inst {
17009                opcode: 0x73,
17010                funct3: 0x2,
17011                rs1: 0x0,
17012                rs2: 0x0,
17013                csr: 0x0,
17014                funct7: 0x0,
17015            },
17016            Opcode::CSRSI => Inst {
17017                opcode: 0x73,
17018                funct3: 0x6,
17019                rs1: 0x0,
17020                rs2: 0x0,
17021                csr: 0x0,
17022                funct7: 0x0,
17023            },
17024            Opcode::CSRW => Inst {
17025                opcode: 0x73,
17026                funct3: 0x1,
17027                rs1: 0x0,
17028                rs2: 0x0,
17029                csr: 0x0,
17030                funct7: 0x0,
17031            },
17032            Opcode::CSRWI => Inst {
17033                opcode: 0x73,
17034                funct3: 0x5,
17035                rs1: 0x0,
17036                rs2: 0x0,
17037                csr: 0x0,
17038                funct7: 0x0,
17039            },
17040            Opcode::CTZ => Inst {
17041                opcode: 0x13,
17042                funct3: 0x1,
17043                rs1: 0x0,
17044                rs2: 0x1,
17045                csr: 0x601,
17046                funct7: 0x30,
17047            },
17048            Opcode::CTZW => Inst {
17049                opcode: 0x1b,
17050                funct3: 0x1,
17051                rs1: 0x0,
17052                rs2: 0x1,
17053                csr: 0x601,
17054                funct7: 0x30,
17055            },
17056            Opcode::CZEROEQZ => Inst {
17057                opcode: 0x33,
17058                funct3: 0x5,
17059                rs1: 0x0,
17060                rs2: 0x0,
17061                csr: 0xe0,
17062                funct7: 0x7,
17063            },
17064            Opcode::CZERONEZ => Inst {
17065                opcode: 0x33,
17066                funct3: 0x7,
17067                rs1: 0x0,
17068                rs2: 0x0,
17069                csr: 0xe0,
17070                funct7: 0x7,
17071            },
17072            Opcode::DIV => Inst {
17073                opcode: 0x33,
17074                funct3: 0x4,
17075                rs1: 0x0,
17076                rs2: 0x0,
17077                csr: 0x20,
17078                funct7: 0x1,
17079            },
17080            Opcode::DIVU => Inst {
17081                opcode: 0x33,
17082                funct3: 0x5,
17083                rs1: 0x0,
17084                rs2: 0x0,
17085                csr: 0x20,
17086                funct7: 0x1,
17087            },
17088            Opcode::DIVUW => Inst {
17089                opcode: 0x3b,
17090                funct3: 0x5,
17091                rs1: 0x0,
17092                rs2: 0x0,
17093                csr: 0x20,
17094                funct7: 0x1,
17095            },
17096            Opcode::DIVW => Inst {
17097                opcode: 0x3b,
17098                funct3: 0x4,
17099                rs1: 0x0,
17100                rs2: 0x0,
17101                csr: 0x20,
17102                funct7: 0x1,
17103            },
17104            Opcode::DRET => Inst {
17105                opcode: 0x73,
17106                funct3: 0x0,
17107                rs1: 0x0,
17108                rs2: 0x12,
17109                csr: 0x7b2,
17110                funct7: 0x3d,
17111            },
17112            Opcode::EBREAK => Inst {
17113                opcode: 0x73,
17114                funct3: 0x0,
17115                rs1: 0x0,
17116                rs2: 0x1,
17117                csr: 0x1,
17118                funct7: 0x0,
17119            },
17120            Opcode::ECALL => Inst {
17121                opcode: 0x73,
17122                funct3: 0x0,
17123                rs1: 0x0,
17124                rs2: 0x0,
17125                csr: 0x0,
17126                funct7: 0x0,
17127            },
17128            Opcode::FABSD => Inst {
17129                opcode: 0x53,
17130                funct3: 0x2,
17131                rs1: 0x0,
17132                rs2: 0x0,
17133                csr: 0x220,
17134                funct7: 0x11,
17135            },
17136            Opcode::FABSH => Inst {
17137                opcode: 0x53,
17138                funct3: 0x2,
17139                rs1: 0x0,
17140                rs2: 0x0,
17141                csr: 0x240,
17142                funct7: 0x12,
17143            },
17144            Opcode::FABSQ => Inst {
17145                opcode: 0x53,
17146                funct3: 0x2,
17147                rs1: 0x0,
17148                rs2: 0x0,
17149                csr: 0x260,
17150                funct7: 0x13,
17151            },
17152            Opcode::FABSS => Inst {
17153                opcode: 0x53,
17154                funct3: 0x2,
17155                rs1: 0x0,
17156                rs2: 0x0,
17157                csr: 0x200,
17158                funct7: 0x10,
17159            },
17160            Opcode::FADDD => Inst {
17161                opcode: 0x53,
17162                funct3: 0x0,
17163                rs1: 0x0,
17164                rs2: 0x0,
17165                csr: 0x20,
17166                funct7: 0x1,
17167            },
17168            Opcode::FADDH => Inst {
17169                opcode: 0x53,
17170                funct3: 0x0,
17171                rs1: 0x0,
17172                rs2: 0x0,
17173                csr: 0x40,
17174                funct7: 0x2,
17175            },
17176            Opcode::FADDQ => Inst {
17177                opcode: 0x53,
17178                funct3: 0x0,
17179                rs1: 0x0,
17180                rs2: 0x0,
17181                csr: 0x60,
17182                funct7: 0x3,
17183            },
17184            Opcode::FADDS => Inst {
17185                opcode: 0x53,
17186                funct3: 0x0,
17187                rs1: 0x0,
17188                rs2: 0x0,
17189                csr: 0x0,
17190                funct7: 0x0,
17191            },
17192            Opcode::FCLASSD => Inst {
17193                opcode: 0x53,
17194                funct3: 0x1,
17195                rs1: 0x0,
17196                rs2: 0x0,
17197                csr: 0xe20,
17198                funct7: 0x71,
17199            },
17200            Opcode::FCLASSH => Inst {
17201                opcode: 0x53,
17202                funct3: 0x1,
17203                rs1: 0x0,
17204                rs2: 0x0,
17205                csr: 0xe40,
17206                funct7: 0x72,
17207            },
17208            Opcode::FCLASSQ => Inst {
17209                opcode: 0x53,
17210                funct3: 0x1,
17211                rs1: 0x0,
17212                rs2: 0x0,
17213                csr: 0xe60,
17214                funct7: 0x73,
17215            },
17216            Opcode::FCLASSS => Inst {
17217                opcode: 0x53,
17218                funct3: 0x1,
17219                rs1: 0x0,
17220                rs2: 0x0,
17221                csr: 0xe00,
17222                funct7: 0x70,
17223            },
17224            Opcode::FCVTDH => Inst {
17225                opcode: 0x53,
17226                funct3: 0x0,
17227                rs1: 0x0,
17228                rs2: 0x2,
17229                csr: 0x422,
17230                funct7: 0x21,
17231            },
17232            Opcode::FCVTDL => Inst {
17233                opcode: 0x53,
17234                funct3: 0x0,
17235                rs1: 0x0,
17236                rs2: 0x2,
17237                csr: 0xd22,
17238                funct7: 0x69,
17239            },
17240            Opcode::FCVTDLU => Inst {
17241                opcode: 0x53,
17242                funct3: 0x0,
17243                rs1: 0x0,
17244                rs2: 0x3,
17245                csr: 0xd23,
17246                funct7: 0x69,
17247            },
17248            Opcode::FCVTDQ => Inst {
17249                opcode: 0x53,
17250                funct3: 0x0,
17251                rs1: 0x0,
17252                rs2: 0x3,
17253                csr: 0x423,
17254                funct7: 0x21,
17255            },
17256            Opcode::FCVTDS => Inst {
17257                opcode: 0x53,
17258                funct3: 0x0,
17259                rs1: 0x0,
17260                rs2: 0x0,
17261                csr: 0x420,
17262                funct7: 0x21,
17263            },
17264            Opcode::FCVTDW => Inst {
17265                opcode: 0x53,
17266                funct3: 0x0,
17267                rs1: 0x0,
17268                rs2: 0x0,
17269                csr: 0xd20,
17270                funct7: 0x69,
17271            },
17272            Opcode::FCVTDWU => Inst {
17273                opcode: 0x53,
17274                funct3: 0x0,
17275                rs1: 0x0,
17276                rs2: 0x1,
17277                csr: 0xd21,
17278                funct7: 0x69,
17279            },
17280            Opcode::FCVTHD => Inst {
17281                opcode: 0x53,
17282                funct3: 0x0,
17283                rs1: 0x0,
17284                rs2: 0x1,
17285                csr: 0x441,
17286                funct7: 0x22,
17287            },
17288            Opcode::FCVTHL => Inst {
17289                opcode: 0x53,
17290                funct3: 0x0,
17291                rs1: 0x0,
17292                rs2: 0x2,
17293                csr: 0xd42,
17294                funct7: 0x6a,
17295            },
17296            Opcode::FCVTHLU => Inst {
17297                opcode: 0x53,
17298                funct3: 0x0,
17299                rs1: 0x0,
17300                rs2: 0x3,
17301                csr: 0xd43,
17302                funct7: 0x6a,
17303            },
17304            Opcode::FCVTHQ => Inst {
17305                opcode: 0x53,
17306                funct3: 0x0,
17307                rs1: 0x0,
17308                rs2: 0x3,
17309                csr: 0x443,
17310                funct7: 0x22,
17311            },
17312            Opcode::FCVTHS => Inst {
17313                opcode: 0x53,
17314                funct3: 0x0,
17315                rs1: 0x0,
17316                rs2: 0x0,
17317                csr: 0x440,
17318                funct7: 0x22,
17319            },
17320            Opcode::FCVTHW => Inst {
17321                opcode: 0x53,
17322                funct3: 0x0,
17323                rs1: 0x0,
17324                rs2: 0x0,
17325                csr: 0xd40,
17326                funct7: 0x6a,
17327            },
17328            Opcode::FCVTHWU => Inst {
17329                opcode: 0x53,
17330                funct3: 0x0,
17331                rs1: 0x0,
17332                rs2: 0x1,
17333                csr: 0xd41,
17334                funct7: 0x6a,
17335            },
17336            Opcode::FCVTLD => Inst {
17337                opcode: 0x53,
17338                funct3: 0x0,
17339                rs1: 0x0,
17340                rs2: 0x2,
17341                csr: 0xc22,
17342                funct7: 0x61,
17343            },
17344            Opcode::FCVTLH => Inst {
17345                opcode: 0x53,
17346                funct3: 0x0,
17347                rs1: 0x0,
17348                rs2: 0x2,
17349                csr: 0xc42,
17350                funct7: 0x62,
17351            },
17352            Opcode::FCVTLQ => Inst {
17353                opcode: 0x53,
17354                funct3: 0x0,
17355                rs1: 0x0,
17356                rs2: 0x2,
17357                csr: 0xc62,
17358                funct7: 0x63,
17359            },
17360            Opcode::FCVTLS => Inst {
17361                opcode: 0x53,
17362                funct3: 0x0,
17363                rs1: 0x0,
17364                rs2: 0x2,
17365                csr: 0xc02,
17366                funct7: 0x60,
17367            },
17368            Opcode::FCVTLUD => Inst {
17369                opcode: 0x53,
17370                funct3: 0x0,
17371                rs1: 0x0,
17372                rs2: 0x3,
17373                csr: 0xc23,
17374                funct7: 0x61,
17375            },
17376            Opcode::FCVTLUH => Inst {
17377                opcode: 0x53,
17378                funct3: 0x0,
17379                rs1: 0x0,
17380                rs2: 0x3,
17381                csr: 0xc43,
17382                funct7: 0x62,
17383            },
17384            Opcode::FCVTLUQ => Inst {
17385                opcode: 0x53,
17386                funct3: 0x0,
17387                rs1: 0x0,
17388                rs2: 0x3,
17389                csr: 0xc63,
17390                funct7: 0x63,
17391            },
17392            Opcode::FCVTLUS => Inst {
17393                opcode: 0x53,
17394                funct3: 0x0,
17395                rs1: 0x0,
17396                rs2: 0x3,
17397                csr: 0xc03,
17398                funct7: 0x60,
17399            },
17400            Opcode::FCVTQD => Inst {
17401                opcode: 0x53,
17402                funct3: 0x0,
17403                rs1: 0x0,
17404                rs2: 0x1,
17405                csr: 0x461,
17406                funct7: 0x23,
17407            },
17408            Opcode::FCVTQH => Inst {
17409                opcode: 0x53,
17410                funct3: 0x0,
17411                rs1: 0x0,
17412                rs2: 0x2,
17413                csr: 0x462,
17414                funct7: 0x23,
17415            },
17416            Opcode::FCVTQL => Inst {
17417                opcode: 0x53,
17418                funct3: 0x0,
17419                rs1: 0x0,
17420                rs2: 0x2,
17421                csr: 0xd62,
17422                funct7: 0x6b,
17423            },
17424            Opcode::FCVTQLU => Inst {
17425                opcode: 0x53,
17426                funct3: 0x0,
17427                rs1: 0x0,
17428                rs2: 0x3,
17429                csr: 0xd63,
17430                funct7: 0x6b,
17431            },
17432            Opcode::FCVTQS => Inst {
17433                opcode: 0x53,
17434                funct3: 0x0,
17435                rs1: 0x0,
17436                rs2: 0x0,
17437                csr: 0x460,
17438                funct7: 0x23,
17439            },
17440            Opcode::FCVTQW => Inst {
17441                opcode: 0x53,
17442                funct3: 0x0,
17443                rs1: 0x0,
17444                rs2: 0x0,
17445                csr: 0xd60,
17446                funct7: 0x6b,
17447            },
17448            Opcode::FCVTQWU => Inst {
17449                opcode: 0x53,
17450                funct3: 0x0,
17451                rs1: 0x0,
17452                rs2: 0x1,
17453                csr: 0xd61,
17454                funct7: 0x6b,
17455            },
17456            Opcode::FCVTSD => Inst {
17457                opcode: 0x53,
17458                funct3: 0x0,
17459                rs1: 0x0,
17460                rs2: 0x1,
17461                csr: 0x401,
17462                funct7: 0x20,
17463            },
17464            Opcode::FCVTSH => Inst {
17465                opcode: 0x53,
17466                funct3: 0x0,
17467                rs1: 0x0,
17468                rs2: 0x2,
17469                csr: 0x402,
17470                funct7: 0x20,
17471            },
17472            Opcode::FCVTSL => Inst {
17473                opcode: 0x53,
17474                funct3: 0x0,
17475                rs1: 0x0,
17476                rs2: 0x2,
17477                csr: 0xd02,
17478                funct7: 0x68,
17479            },
17480            Opcode::FCVTSLU => Inst {
17481                opcode: 0x53,
17482                funct3: 0x0,
17483                rs1: 0x0,
17484                rs2: 0x3,
17485                csr: 0xd03,
17486                funct7: 0x68,
17487            },
17488            Opcode::FCVTSQ => Inst {
17489                opcode: 0x53,
17490                funct3: 0x0,
17491                rs1: 0x0,
17492                rs2: 0x3,
17493                csr: 0x403,
17494                funct7: 0x20,
17495            },
17496            Opcode::FCVTSW => Inst {
17497                opcode: 0x53,
17498                funct3: 0x0,
17499                rs1: 0x0,
17500                rs2: 0x0,
17501                csr: 0xd00,
17502                funct7: 0x68,
17503            },
17504            Opcode::FCVTSWU => Inst {
17505                opcode: 0x53,
17506                funct3: 0x0,
17507                rs1: 0x0,
17508                rs2: 0x1,
17509                csr: 0xd01,
17510                funct7: 0x68,
17511            },
17512            Opcode::FCVTWD => Inst {
17513                opcode: 0x53,
17514                funct3: 0x0,
17515                rs1: 0x0,
17516                rs2: 0x0,
17517                csr: 0xc20,
17518                funct7: 0x61,
17519            },
17520            Opcode::FCVTWH => Inst {
17521                opcode: 0x53,
17522                funct3: 0x0,
17523                rs1: 0x0,
17524                rs2: 0x0,
17525                csr: 0xc40,
17526                funct7: 0x62,
17527            },
17528            Opcode::FCVTWQ => Inst {
17529                opcode: 0x53,
17530                funct3: 0x0,
17531                rs1: 0x0,
17532                rs2: 0x0,
17533                csr: 0xc60,
17534                funct7: 0x63,
17535            },
17536            Opcode::FCVTWS => Inst {
17537                opcode: 0x53,
17538                funct3: 0x0,
17539                rs1: 0x0,
17540                rs2: 0x0,
17541                csr: 0xc00,
17542                funct7: 0x60,
17543            },
17544            Opcode::FCVTWUD => Inst {
17545                opcode: 0x53,
17546                funct3: 0x0,
17547                rs1: 0x0,
17548                rs2: 0x1,
17549                csr: 0xc21,
17550                funct7: 0x61,
17551            },
17552            Opcode::FCVTWUH => Inst {
17553                opcode: 0x53,
17554                funct3: 0x0,
17555                rs1: 0x0,
17556                rs2: 0x1,
17557                csr: 0xc41,
17558                funct7: 0x62,
17559            },
17560            Opcode::FCVTWUQ => Inst {
17561                opcode: 0x53,
17562                funct3: 0x0,
17563                rs1: 0x0,
17564                rs2: 0x1,
17565                csr: 0xc61,
17566                funct7: 0x63,
17567            },
17568            Opcode::FCVTWUS => Inst {
17569                opcode: 0x53,
17570                funct3: 0x0,
17571                rs1: 0x0,
17572                rs2: 0x1,
17573                csr: 0xc01,
17574                funct7: 0x60,
17575            },
17576            Opcode::FCVTMODWD => Inst {
17577                opcode: 0x53,
17578                funct3: 0x1,
17579                rs1: 0x0,
17580                rs2: 0x8,
17581                csr: 0xc28,
17582                funct7: 0x61,
17583            },
17584            Opcode::FDIVD => Inst {
17585                opcode: 0x53,
17586                funct3: 0x0,
17587                rs1: 0x0,
17588                rs2: 0x0,
17589                csr: 0x1a0,
17590                funct7: 0xd,
17591            },
17592            Opcode::FDIVH => Inst {
17593                opcode: 0x53,
17594                funct3: 0x0,
17595                rs1: 0x0,
17596                rs2: 0x0,
17597                csr: 0x1c0,
17598                funct7: 0xe,
17599            },
17600            Opcode::FDIVQ => Inst {
17601                opcode: 0x53,
17602                funct3: 0x0,
17603                rs1: 0x0,
17604                rs2: 0x0,
17605                csr: 0x1e0,
17606                funct7: 0xf,
17607            },
17608            Opcode::FDIVS => Inst {
17609                opcode: 0x53,
17610                funct3: 0x0,
17611                rs1: 0x0,
17612                rs2: 0x0,
17613                csr: 0x180,
17614                funct7: 0xc,
17615            },
17616            Opcode::FENCE => Inst {
17617                opcode: 0xf,
17618                funct3: 0x0,
17619                rs1: 0x0,
17620                rs2: 0x0,
17621                csr: 0x0,
17622                funct7: 0x0,
17623            },
17624            Opcode::FENCEI => Inst {
17625                opcode: 0xf,
17626                funct3: 0x1,
17627                rs1: 0x0,
17628                rs2: 0x0,
17629                csr: 0x0,
17630                funct7: 0x0,
17631            },
17632            Opcode::FENCETSO => Inst {
17633                opcode: 0xf,
17634                funct3: 0x0,
17635                rs1: 0x0,
17636                rs2: 0x13,
17637                csr: 0x833,
17638                funct7: 0x41,
17639            },
17640            Opcode::FEQD => Inst {
17641                opcode: 0x53,
17642                funct3: 0x2,
17643                rs1: 0x0,
17644                rs2: 0x0,
17645                csr: 0xa20,
17646                funct7: 0x51,
17647            },
17648            Opcode::FEQH => Inst {
17649                opcode: 0x53,
17650                funct3: 0x2,
17651                rs1: 0x0,
17652                rs2: 0x0,
17653                csr: 0xa40,
17654                funct7: 0x52,
17655            },
17656            Opcode::FEQQ => Inst {
17657                opcode: 0x53,
17658                funct3: 0x2,
17659                rs1: 0x0,
17660                rs2: 0x0,
17661                csr: 0xa60,
17662                funct7: 0x53,
17663            },
17664            Opcode::FEQS => Inst {
17665                opcode: 0x53,
17666                funct3: 0x2,
17667                rs1: 0x0,
17668                rs2: 0x0,
17669                csr: 0xa00,
17670                funct7: 0x50,
17671            },
17672            Opcode::FLD => Inst {
17673                opcode: 0x7,
17674                funct3: 0x3,
17675                rs1: 0x0,
17676                rs2: 0x0,
17677                csr: 0x0,
17678                funct7: 0x0,
17679            },
17680            Opcode::FLED => Inst {
17681                opcode: 0x53,
17682                funct3: 0x0,
17683                rs1: 0x0,
17684                rs2: 0x0,
17685                csr: 0xa20,
17686                funct7: 0x51,
17687            },
17688            Opcode::FLEH => Inst {
17689                opcode: 0x53,
17690                funct3: 0x0,
17691                rs1: 0x0,
17692                rs2: 0x0,
17693                csr: 0xa40,
17694                funct7: 0x52,
17695            },
17696            Opcode::FLEQ => Inst {
17697                opcode: 0x53,
17698                funct3: 0x0,
17699                rs1: 0x0,
17700                rs2: 0x0,
17701                csr: 0xa60,
17702                funct7: 0x53,
17703            },
17704            Opcode::FLES => Inst {
17705                opcode: 0x53,
17706                funct3: 0x0,
17707                rs1: 0x0,
17708                rs2: 0x0,
17709                csr: 0xa00,
17710                funct7: 0x50,
17711            },
17712            Opcode::FLEQD => Inst {
17713                opcode: 0x53,
17714                funct3: 0x4,
17715                rs1: 0x0,
17716                rs2: 0x0,
17717                csr: 0xa20,
17718                funct7: 0x51,
17719            },
17720            Opcode::FLEQH => Inst {
17721                opcode: 0x53,
17722                funct3: 0x4,
17723                rs1: 0x0,
17724                rs2: 0x0,
17725                csr: 0xa40,
17726                funct7: 0x52,
17727            },
17728            Opcode::FLEQQ => Inst {
17729                opcode: 0x53,
17730                funct3: 0x4,
17731                rs1: 0x0,
17732                rs2: 0x0,
17733                csr: 0xa60,
17734                funct7: 0x53,
17735            },
17736            Opcode::FLEQS => Inst {
17737                opcode: 0x53,
17738                funct3: 0x4,
17739                rs1: 0x0,
17740                rs2: 0x0,
17741                csr: 0xa00,
17742                funct7: 0x50,
17743            },
17744            Opcode::FLH => Inst {
17745                opcode: 0x7,
17746                funct3: 0x1,
17747                rs1: 0x0,
17748                rs2: 0x0,
17749                csr: 0x0,
17750                funct7: 0x0,
17751            },
17752            Opcode::FLID => Inst {
17753                opcode: 0x53,
17754                funct3: 0x0,
17755                rs1: 0x0,
17756                rs2: 0x1,
17757                csr: 0xf21,
17758                funct7: 0x79,
17759            },
17760            Opcode::FLIH => Inst {
17761                opcode: 0x53,
17762                funct3: 0x0,
17763                rs1: 0x0,
17764                rs2: 0x1,
17765                csr: 0xf41,
17766                funct7: 0x7a,
17767            },
17768            Opcode::FLIQ => Inst {
17769                opcode: 0x53,
17770                funct3: 0x0,
17771                rs1: 0x0,
17772                rs2: 0x1,
17773                csr: 0xf61,
17774                funct7: 0x7b,
17775            },
17776            Opcode::FLIS => Inst {
17777                opcode: 0x53,
17778                funct3: 0x0,
17779                rs1: 0x0,
17780                rs2: 0x1,
17781                csr: 0xf01,
17782                funct7: 0x78,
17783            },
17784            Opcode::FLQ => Inst {
17785                opcode: 0x7,
17786                funct3: 0x4,
17787                rs1: 0x0,
17788                rs2: 0x0,
17789                csr: 0x0,
17790                funct7: 0x0,
17791            },
17792            Opcode::FLTD => Inst {
17793                opcode: 0x53,
17794                funct3: 0x1,
17795                rs1: 0x0,
17796                rs2: 0x0,
17797                csr: 0xa20,
17798                funct7: 0x51,
17799            },
17800            Opcode::FLTH => Inst {
17801                opcode: 0x53,
17802                funct3: 0x1,
17803                rs1: 0x0,
17804                rs2: 0x0,
17805                csr: 0xa40,
17806                funct7: 0x52,
17807            },
17808            Opcode::FLTQ => Inst {
17809                opcode: 0x53,
17810                funct3: 0x1,
17811                rs1: 0x0,
17812                rs2: 0x0,
17813                csr: 0xa60,
17814                funct7: 0x53,
17815            },
17816            Opcode::FLTS => Inst {
17817                opcode: 0x53,
17818                funct3: 0x1,
17819                rs1: 0x0,
17820                rs2: 0x0,
17821                csr: 0xa00,
17822                funct7: 0x50,
17823            },
17824            Opcode::FLTQD => Inst {
17825                opcode: 0x53,
17826                funct3: 0x5,
17827                rs1: 0x0,
17828                rs2: 0x0,
17829                csr: 0xa20,
17830                funct7: 0x51,
17831            },
17832            Opcode::FLTQH => Inst {
17833                opcode: 0x53,
17834                funct3: 0x5,
17835                rs1: 0x0,
17836                rs2: 0x0,
17837                csr: 0xa40,
17838                funct7: 0x52,
17839            },
17840            Opcode::FLTQQ => Inst {
17841                opcode: 0x53,
17842                funct3: 0x5,
17843                rs1: 0x0,
17844                rs2: 0x0,
17845                csr: 0xa60,
17846                funct7: 0x53,
17847            },
17848            Opcode::FLTQS => Inst {
17849                opcode: 0x53,
17850                funct3: 0x5,
17851                rs1: 0x0,
17852                rs2: 0x0,
17853                csr: 0xa00,
17854                funct7: 0x50,
17855            },
17856            Opcode::FLW => Inst {
17857                opcode: 0x7,
17858                funct3: 0x2,
17859                rs1: 0x0,
17860                rs2: 0x0,
17861                csr: 0x0,
17862                funct7: 0x0,
17863            },
17864            Opcode::FMADDD => Inst {
17865                opcode: 0x43,
17866                funct3: 0x0,
17867                rs1: 0x0,
17868                rs2: 0x0,
17869                csr: 0x20,
17870                funct7: 0x1,
17871            },
17872            Opcode::FMADDH => Inst {
17873                opcode: 0x43,
17874                funct3: 0x0,
17875                rs1: 0x0,
17876                rs2: 0x0,
17877                csr: 0x40,
17878                funct7: 0x2,
17879            },
17880            Opcode::FMADDQ => Inst {
17881                opcode: 0x43,
17882                funct3: 0x0,
17883                rs1: 0x0,
17884                rs2: 0x0,
17885                csr: 0x60,
17886                funct7: 0x3,
17887            },
17888            Opcode::FMADDS => Inst {
17889                opcode: 0x43,
17890                funct3: 0x0,
17891                rs1: 0x0,
17892                rs2: 0x0,
17893                csr: 0x0,
17894                funct7: 0x0,
17895            },
17896            Opcode::FMAXD => Inst {
17897                opcode: 0x53,
17898                funct3: 0x1,
17899                rs1: 0x0,
17900                rs2: 0x0,
17901                csr: 0x2a0,
17902                funct7: 0x15,
17903            },
17904            Opcode::FMAXH => Inst {
17905                opcode: 0x53,
17906                funct3: 0x1,
17907                rs1: 0x0,
17908                rs2: 0x0,
17909                csr: 0x2c0,
17910                funct7: 0x16,
17911            },
17912            Opcode::FMAXQ => Inst {
17913                opcode: 0x53,
17914                funct3: 0x1,
17915                rs1: 0x0,
17916                rs2: 0x0,
17917                csr: 0x2e0,
17918                funct7: 0x17,
17919            },
17920            Opcode::FMAXS => Inst {
17921                opcode: 0x53,
17922                funct3: 0x1,
17923                rs1: 0x0,
17924                rs2: 0x0,
17925                csr: 0x280,
17926                funct7: 0x14,
17927            },
17928            Opcode::FMAXMD => Inst {
17929                opcode: 0x53,
17930                funct3: 0x3,
17931                rs1: 0x0,
17932                rs2: 0x0,
17933                csr: 0x2a0,
17934                funct7: 0x15,
17935            },
17936            Opcode::FMAXMH => Inst {
17937                opcode: 0x53,
17938                funct3: 0x3,
17939                rs1: 0x0,
17940                rs2: 0x0,
17941                csr: 0x2c0,
17942                funct7: 0x16,
17943            },
17944            Opcode::FMAXMQ => Inst {
17945                opcode: 0x53,
17946                funct3: 0x3,
17947                rs1: 0x0,
17948                rs2: 0x0,
17949                csr: 0x2e0,
17950                funct7: 0x17,
17951            },
17952            Opcode::FMAXMS => Inst {
17953                opcode: 0x53,
17954                funct3: 0x3,
17955                rs1: 0x0,
17956                rs2: 0x0,
17957                csr: 0x280,
17958                funct7: 0x14,
17959            },
17960            Opcode::FMIND => Inst {
17961                opcode: 0x53,
17962                funct3: 0x0,
17963                rs1: 0x0,
17964                rs2: 0x0,
17965                csr: 0x2a0,
17966                funct7: 0x15,
17967            },
17968            Opcode::FMINH => Inst {
17969                opcode: 0x53,
17970                funct3: 0x0,
17971                rs1: 0x0,
17972                rs2: 0x0,
17973                csr: 0x2c0,
17974                funct7: 0x16,
17975            },
17976            Opcode::FMINQ => Inst {
17977                opcode: 0x53,
17978                funct3: 0x0,
17979                rs1: 0x0,
17980                rs2: 0x0,
17981                csr: 0x2e0,
17982                funct7: 0x17,
17983            },
17984            Opcode::FMINS => Inst {
17985                opcode: 0x53,
17986                funct3: 0x0,
17987                rs1: 0x0,
17988                rs2: 0x0,
17989                csr: 0x280,
17990                funct7: 0x14,
17991            },
17992            Opcode::FMINMD => Inst {
17993                opcode: 0x53,
17994                funct3: 0x2,
17995                rs1: 0x0,
17996                rs2: 0x0,
17997                csr: 0x2a0,
17998                funct7: 0x15,
17999            },
18000            Opcode::FMINMH => Inst {
18001                opcode: 0x53,
18002                funct3: 0x2,
18003                rs1: 0x0,
18004                rs2: 0x0,
18005                csr: 0x2c0,
18006                funct7: 0x16,
18007            },
18008            Opcode::FMINMQ => Inst {
18009                opcode: 0x53,
18010                funct3: 0x2,
18011                rs1: 0x0,
18012                rs2: 0x0,
18013                csr: 0x2e0,
18014                funct7: 0x17,
18015            },
18016            Opcode::FMINMS => Inst {
18017                opcode: 0x53,
18018                funct3: 0x2,
18019                rs1: 0x0,
18020                rs2: 0x0,
18021                csr: 0x280,
18022                funct7: 0x14,
18023            },
18024            Opcode::FMSUBD => Inst {
18025                opcode: 0x47,
18026                funct3: 0x0,
18027                rs1: 0x0,
18028                rs2: 0x0,
18029                csr: 0x20,
18030                funct7: 0x1,
18031            },
18032            Opcode::FMSUBH => Inst {
18033                opcode: 0x47,
18034                funct3: 0x0,
18035                rs1: 0x0,
18036                rs2: 0x0,
18037                csr: 0x40,
18038                funct7: 0x2,
18039            },
18040            Opcode::FMSUBQ => Inst {
18041                opcode: 0x47,
18042                funct3: 0x0,
18043                rs1: 0x0,
18044                rs2: 0x0,
18045                csr: 0x60,
18046                funct7: 0x3,
18047            },
18048            Opcode::FMSUBS => Inst {
18049                opcode: 0x47,
18050                funct3: 0x0,
18051                rs1: 0x0,
18052                rs2: 0x0,
18053                csr: 0x0,
18054                funct7: 0x0,
18055            },
18056            Opcode::FMULD => Inst {
18057                opcode: 0x53,
18058                funct3: 0x0,
18059                rs1: 0x0,
18060                rs2: 0x0,
18061                csr: 0x120,
18062                funct7: 0x9,
18063            },
18064            Opcode::FMULH => Inst {
18065                opcode: 0x53,
18066                funct3: 0x0,
18067                rs1: 0x0,
18068                rs2: 0x0,
18069                csr: 0x140,
18070                funct7: 0xa,
18071            },
18072            Opcode::FMULQ => Inst {
18073                opcode: 0x53,
18074                funct3: 0x0,
18075                rs1: 0x0,
18076                rs2: 0x0,
18077                csr: 0x160,
18078                funct7: 0xb,
18079            },
18080            Opcode::FMULS => Inst {
18081                opcode: 0x53,
18082                funct3: 0x0,
18083                rs1: 0x0,
18084                rs2: 0x0,
18085                csr: 0x100,
18086                funct7: 0x8,
18087            },
18088            Opcode::FMVD => Inst {
18089                opcode: 0x53,
18090                funct3: 0x0,
18091                rs1: 0x0,
18092                rs2: 0x0,
18093                csr: 0x220,
18094                funct7: 0x11,
18095            },
18096            Opcode::FMVDX => Inst {
18097                opcode: 0x53,
18098                funct3: 0x0,
18099                rs1: 0x0,
18100                rs2: 0x0,
18101                csr: 0xf20,
18102                funct7: 0x79,
18103            },
18104            Opcode::FMVH => Inst {
18105                opcode: 0x53,
18106                funct3: 0x0,
18107                rs1: 0x0,
18108                rs2: 0x0,
18109                csr: 0x240,
18110                funct7: 0x12,
18111            },
18112            Opcode::FMVHX => Inst {
18113                opcode: 0x53,
18114                funct3: 0x0,
18115                rs1: 0x0,
18116                rs2: 0x0,
18117                csr: 0xf40,
18118                funct7: 0x7a,
18119            },
18120            Opcode::FMVQ => Inst {
18121                opcode: 0x53,
18122                funct3: 0x0,
18123                rs1: 0x0,
18124                rs2: 0x0,
18125                csr: 0x260,
18126                funct7: 0x13,
18127            },
18128            Opcode::FMVS => Inst {
18129                opcode: 0x53,
18130                funct3: 0x0,
18131                rs1: 0x0,
18132                rs2: 0x0,
18133                csr: 0x200,
18134                funct7: 0x10,
18135            },
18136            Opcode::FMVSX => Inst {
18137                opcode: 0x53,
18138                funct3: 0x0,
18139                rs1: 0x0,
18140                rs2: 0x0,
18141                csr: 0xf00,
18142                funct7: 0x78,
18143            },
18144            Opcode::FMVWX => Inst {
18145                opcode: 0x53,
18146                funct3: 0x0,
18147                rs1: 0x0,
18148                rs2: 0x0,
18149                csr: 0xf00,
18150                funct7: 0x78,
18151            },
18152            Opcode::FMVXD => Inst {
18153                opcode: 0x53,
18154                funct3: 0x0,
18155                rs1: 0x0,
18156                rs2: 0x0,
18157                csr: 0xe20,
18158                funct7: 0x71,
18159            },
18160            Opcode::FMVXH => Inst {
18161                opcode: 0x53,
18162                funct3: 0x0,
18163                rs1: 0x0,
18164                rs2: 0x0,
18165                csr: 0xe40,
18166                funct7: 0x72,
18167            },
18168            Opcode::FMVXS => Inst {
18169                opcode: 0x53,
18170                funct3: 0x0,
18171                rs1: 0x0,
18172                rs2: 0x0,
18173                csr: 0xe00,
18174                funct7: 0x70,
18175            },
18176            Opcode::FMVXW => Inst {
18177                opcode: 0x53,
18178                funct3: 0x0,
18179                rs1: 0x0,
18180                rs2: 0x0,
18181                csr: 0xe00,
18182                funct7: 0x70,
18183            },
18184            Opcode::FMVHXD => Inst {
18185                opcode: 0x53,
18186                funct3: 0x0,
18187                rs1: 0x0,
18188                rs2: 0x1,
18189                csr: 0xe21,
18190                funct7: 0x71,
18191            },
18192            Opcode::FMVHXQ => Inst {
18193                opcode: 0x53,
18194                funct3: 0x0,
18195                rs1: 0x0,
18196                rs2: 0x1,
18197                csr: 0xe61,
18198                funct7: 0x73,
18199            },
18200            Opcode::FMVPDX => Inst {
18201                opcode: 0x53,
18202                funct3: 0x0,
18203                rs1: 0x0,
18204                rs2: 0x0,
18205                csr: 0xb20,
18206                funct7: 0x59,
18207            },
18208            Opcode::FMVPQX => Inst {
18209                opcode: 0x53,
18210                funct3: 0x0,
18211                rs1: 0x0,
18212                rs2: 0x0,
18213                csr: 0xb60,
18214                funct7: 0x5b,
18215            },
18216            Opcode::FNEGD => Inst {
18217                opcode: 0x53,
18218                funct3: 0x1,
18219                rs1: 0x0,
18220                rs2: 0x0,
18221                csr: 0x220,
18222                funct7: 0x11,
18223            },
18224            Opcode::FNEGH => Inst {
18225                opcode: 0x53,
18226                funct3: 0x1,
18227                rs1: 0x0,
18228                rs2: 0x0,
18229                csr: 0x240,
18230                funct7: 0x12,
18231            },
18232            Opcode::FNEGQ => Inst {
18233                opcode: 0x53,
18234                funct3: 0x1,
18235                rs1: 0x0,
18236                rs2: 0x0,
18237                csr: 0x260,
18238                funct7: 0x13,
18239            },
18240            Opcode::FNEGS => Inst {
18241                opcode: 0x53,
18242                funct3: 0x1,
18243                rs1: 0x0,
18244                rs2: 0x0,
18245                csr: 0x200,
18246                funct7: 0x10,
18247            },
18248            Opcode::FNMADDD => Inst {
18249                opcode: 0x4f,
18250                funct3: 0x0,
18251                rs1: 0x0,
18252                rs2: 0x0,
18253                csr: 0x20,
18254                funct7: 0x1,
18255            },
18256            Opcode::FNMADDH => Inst {
18257                opcode: 0x4f,
18258                funct3: 0x0,
18259                rs1: 0x0,
18260                rs2: 0x0,
18261                csr: 0x40,
18262                funct7: 0x2,
18263            },
18264            Opcode::FNMADDQ => Inst {
18265                opcode: 0x4f,
18266                funct3: 0x0,
18267                rs1: 0x0,
18268                rs2: 0x0,
18269                csr: 0x60,
18270                funct7: 0x3,
18271            },
18272            Opcode::FNMADDS => Inst {
18273                opcode: 0x4f,
18274                funct3: 0x0,
18275                rs1: 0x0,
18276                rs2: 0x0,
18277                csr: 0x0,
18278                funct7: 0x0,
18279            },
18280            Opcode::FNMSUBD => Inst {
18281                opcode: 0x4b,
18282                funct3: 0x0,
18283                rs1: 0x0,
18284                rs2: 0x0,
18285                csr: 0x20,
18286                funct7: 0x1,
18287            },
18288            Opcode::FNMSUBH => Inst {
18289                opcode: 0x4b,
18290                funct3: 0x0,
18291                rs1: 0x0,
18292                rs2: 0x0,
18293                csr: 0x40,
18294                funct7: 0x2,
18295            },
18296            Opcode::FNMSUBQ => Inst {
18297                opcode: 0x4b,
18298                funct3: 0x0,
18299                rs1: 0x0,
18300                rs2: 0x0,
18301                csr: 0x60,
18302                funct7: 0x3,
18303            },
18304            Opcode::FNMSUBS => Inst {
18305                opcode: 0x4b,
18306                funct3: 0x0,
18307                rs1: 0x0,
18308                rs2: 0x0,
18309                csr: 0x0,
18310                funct7: 0x0,
18311            },
18312            Opcode::FRCSR => Inst {
18313                opcode: 0x73,
18314                funct3: 0x2,
18315                rs1: 0x0,
18316                rs2: 0x3,
18317                csr: 0x3,
18318                funct7: 0x0,
18319            },
18320            Opcode::FRFLAGS => Inst {
18321                opcode: 0x73,
18322                funct3: 0x2,
18323                rs1: 0x0,
18324                rs2: 0x1,
18325                csr: 0x1,
18326                funct7: 0x0,
18327            },
18328            Opcode::FROUNDD => Inst {
18329                opcode: 0x53,
18330                funct3: 0x0,
18331                rs1: 0x0,
18332                rs2: 0x4,
18333                csr: 0x424,
18334                funct7: 0x21,
18335            },
18336            Opcode::FROUNDH => Inst {
18337                opcode: 0x53,
18338                funct3: 0x0,
18339                rs1: 0x0,
18340                rs2: 0x4,
18341                csr: 0x444,
18342                funct7: 0x22,
18343            },
18344            Opcode::FROUNDQ => Inst {
18345                opcode: 0x53,
18346                funct3: 0x0,
18347                rs1: 0x0,
18348                rs2: 0x4,
18349                csr: 0x464,
18350                funct7: 0x23,
18351            },
18352            Opcode::FROUNDS => Inst {
18353                opcode: 0x53,
18354                funct3: 0x0,
18355                rs1: 0x0,
18356                rs2: 0x4,
18357                csr: 0x404,
18358                funct7: 0x20,
18359            },
18360            Opcode::FROUNDNXD => Inst {
18361                opcode: 0x53,
18362                funct3: 0x0,
18363                rs1: 0x0,
18364                rs2: 0x5,
18365                csr: 0x425,
18366                funct7: 0x21,
18367            },
18368            Opcode::FROUNDNXH => Inst {
18369                opcode: 0x53,
18370                funct3: 0x0,
18371                rs1: 0x0,
18372                rs2: 0x5,
18373                csr: 0x445,
18374                funct7: 0x22,
18375            },
18376            Opcode::FROUNDNXQ => Inst {
18377                opcode: 0x53,
18378                funct3: 0x0,
18379                rs1: 0x0,
18380                rs2: 0x5,
18381                csr: 0x465,
18382                funct7: 0x23,
18383            },
18384            Opcode::FROUNDNXS => Inst {
18385                opcode: 0x53,
18386                funct3: 0x0,
18387                rs1: 0x0,
18388                rs2: 0x5,
18389                csr: 0x405,
18390                funct7: 0x20,
18391            },
18392            Opcode::FRRM => Inst {
18393                opcode: 0x73,
18394                funct3: 0x2,
18395                rs1: 0x0,
18396                rs2: 0x2,
18397                csr: 0x2,
18398                funct7: 0x0,
18399            },
18400            Opcode::FSCSR => Inst {
18401                opcode: 0x73,
18402                funct3: 0x1,
18403                rs1: 0x0,
18404                rs2: 0x3,
18405                csr: 0x3,
18406                funct7: 0x0,
18407            },
18408            Opcode::FSD => Inst {
18409                opcode: 0x27,
18410                funct3: 0x3,
18411                rs1: 0x0,
18412                rs2: 0x0,
18413                csr: 0x0,
18414                funct7: 0x0,
18415            },
18416            Opcode::FSFLAGS => Inst {
18417                opcode: 0x73,
18418                funct3: 0x1,
18419                rs1: 0x0,
18420                rs2: 0x1,
18421                csr: 0x1,
18422                funct7: 0x0,
18423            },
18424            Opcode::FSFLAGSI => Inst {
18425                opcode: 0x73,
18426                funct3: 0x5,
18427                rs1: 0x0,
18428                rs2: 0x1,
18429                csr: 0x1,
18430                funct7: 0x0,
18431            },
18432            Opcode::FSGNJD => Inst {
18433                opcode: 0x53,
18434                funct3: 0x0,
18435                rs1: 0x0,
18436                rs2: 0x0,
18437                csr: 0x220,
18438                funct7: 0x11,
18439            },
18440            Opcode::FSGNJH => Inst {
18441                opcode: 0x53,
18442                funct3: 0x0,
18443                rs1: 0x0,
18444                rs2: 0x0,
18445                csr: 0x240,
18446                funct7: 0x12,
18447            },
18448            Opcode::FSGNJQ => Inst {
18449                opcode: 0x53,
18450                funct3: 0x0,
18451                rs1: 0x0,
18452                rs2: 0x0,
18453                csr: 0x260,
18454                funct7: 0x13,
18455            },
18456            Opcode::FSGNJS => Inst {
18457                opcode: 0x53,
18458                funct3: 0x0,
18459                rs1: 0x0,
18460                rs2: 0x0,
18461                csr: 0x200,
18462                funct7: 0x10,
18463            },
18464            Opcode::FSGNJND => Inst {
18465                opcode: 0x53,
18466                funct3: 0x1,
18467                rs1: 0x0,
18468                rs2: 0x0,
18469                csr: 0x220,
18470                funct7: 0x11,
18471            },
18472            Opcode::FSGNJNH => Inst {
18473                opcode: 0x53,
18474                funct3: 0x1,
18475                rs1: 0x0,
18476                rs2: 0x0,
18477                csr: 0x240,
18478                funct7: 0x12,
18479            },
18480            Opcode::FSGNJNQ => Inst {
18481                opcode: 0x53,
18482                funct3: 0x1,
18483                rs1: 0x0,
18484                rs2: 0x0,
18485                csr: 0x260,
18486                funct7: 0x13,
18487            },
18488            Opcode::FSGNJNS => Inst {
18489                opcode: 0x53,
18490                funct3: 0x1,
18491                rs1: 0x0,
18492                rs2: 0x0,
18493                csr: 0x200,
18494                funct7: 0x10,
18495            },
18496            Opcode::FSGNJXD => Inst {
18497                opcode: 0x53,
18498                funct3: 0x2,
18499                rs1: 0x0,
18500                rs2: 0x0,
18501                csr: 0x220,
18502                funct7: 0x11,
18503            },
18504            Opcode::FSGNJXH => Inst {
18505                opcode: 0x53,
18506                funct3: 0x2,
18507                rs1: 0x0,
18508                rs2: 0x0,
18509                csr: 0x240,
18510                funct7: 0x12,
18511            },
18512            Opcode::FSGNJXQ => Inst {
18513                opcode: 0x53,
18514                funct3: 0x2,
18515                rs1: 0x0,
18516                rs2: 0x0,
18517                csr: 0x260,
18518                funct7: 0x13,
18519            },
18520            Opcode::FSGNJXS => Inst {
18521                opcode: 0x53,
18522                funct3: 0x2,
18523                rs1: 0x0,
18524                rs2: 0x0,
18525                csr: 0x200,
18526                funct7: 0x10,
18527            },
18528            Opcode::FSH => Inst {
18529                opcode: 0x27,
18530                funct3: 0x1,
18531                rs1: 0x0,
18532                rs2: 0x0,
18533                csr: 0x0,
18534                funct7: 0x0,
18535            },
18536            Opcode::FSQ => Inst {
18537                opcode: 0x27,
18538                funct3: 0x4,
18539                rs1: 0x0,
18540                rs2: 0x0,
18541                csr: 0x0,
18542                funct7: 0x0,
18543            },
18544            Opcode::FSQRTD => Inst {
18545                opcode: 0x53,
18546                funct3: 0x0,
18547                rs1: 0x0,
18548                rs2: 0x0,
18549                csr: 0x5a0,
18550                funct7: 0x2d,
18551            },
18552            Opcode::FSQRTH => Inst {
18553                opcode: 0x53,
18554                funct3: 0x0,
18555                rs1: 0x0,
18556                rs2: 0x0,
18557                csr: 0x5c0,
18558                funct7: 0x2e,
18559            },
18560            Opcode::FSQRTQ => Inst {
18561                opcode: 0x53,
18562                funct3: 0x0,
18563                rs1: 0x0,
18564                rs2: 0x0,
18565                csr: 0x5e0,
18566                funct7: 0x2f,
18567            },
18568            Opcode::FSQRTS => Inst {
18569                opcode: 0x53,
18570                funct3: 0x0,
18571                rs1: 0x0,
18572                rs2: 0x0,
18573                csr: 0x580,
18574                funct7: 0x2c,
18575            },
18576            Opcode::FSRM => Inst {
18577                opcode: 0x73,
18578                funct3: 0x1,
18579                rs1: 0x0,
18580                rs2: 0x2,
18581                csr: 0x2,
18582                funct7: 0x0,
18583            },
18584            Opcode::FSRMI => Inst {
18585                opcode: 0x73,
18586                funct3: 0x5,
18587                rs1: 0x0,
18588                rs2: 0x2,
18589                csr: 0x2,
18590                funct7: 0x0,
18591            },
18592            Opcode::FSUBD => Inst {
18593                opcode: 0x53,
18594                funct3: 0x0,
18595                rs1: 0x0,
18596                rs2: 0x0,
18597                csr: 0xa0,
18598                funct7: 0x5,
18599            },
18600            Opcode::FSUBH => Inst {
18601                opcode: 0x53,
18602                funct3: 0x0,
18603                rs1: 0x0,
18604                rs2: 0x0,
18605                csr: 0xc0,
18606                funct7: 0x6,
18607            },
18608            Opcode::FSUBQ => Inst {
18609                opcode: 0x53,
18610                funct3: 0x0,
18611                rs1: 0x0,
18612                rs2: 0x0,
18613                csr: 0xe0,
18614                funct7: 0x7,
18615            },
18616            Opcode::FSUBS => Inst {
18617                opcode: 0x53,
18618                funct3: 0x0,
18619                rs1: 0x0,
18620                rs2: 0x0,
18621                csr: 0x80,
18622                funct7: 0x4,
18623            },
18624            Opcode::FSW => Inst {
18625                opcode: 0x27,
18626                funct3: 0x2,
18627                rs1: 0x0,
18628                rs2: 0x0,
18629                csr: 0x0,
18630                funct7: 0x0,
18631            },
18632            Opcode::HFENCEGVMA => Inst {
18633                opcode: 0x73,
18634                funct3: 0x0,
18635                rs1: 0x0,
18636                rs2: 0x0,
18637                csr: 0x620,
18638                funct7: 0x31,
18639            },
18640            Opcode::HFENCEVVMA => Inst {
18641                opcode: 0x73,
18642                funct3: 0x0,
18643                rs1: 0x0,
18644                rs2: 0x0,
18645                csr: 0x220,
18646                funct7: 0x11,
18647            },
18648            Opcode::HINVALGVMA => Inst {
18649                opcode: 0x73,
18650                funct3: 0x0,
18651                rs1: 0x0,
18652                rs2: 0x0,
18653                csr: 0x660,
18654                funct7: 0x33,
18655            },
18656            Opcode::HINVALVVMA => Inst {
18657                opcode: 0x73,
18658                funct3: 0x0,
18659                rs1: 0x0,
18660                rs2: 0x0,
18661                csr: 0x260,
18662                funct7: 0x13,
18663            },
18664            Opcode::HLVB => Inst {
18665                opcode: 0x73,
18666                funct3: 0x4,
18667                rs1: 0x0,
18668                rs2: 0x0,
18669                csr: 0x600,
18670                funct7: 0x30,
18671            },
18672            Opcode::HLVBU => Inst {
18673                opcode: 0x73,
18674                funct3: 0x4,
18675                rs1: 0x0,
18676                rs2: 0x1,
18677                csr: 0x601,
18678                funct7: 0x30,
18679            },
18680            Opcode::HLVD => Inst {
18681                opcode: 0x73,
18682                funct3: 0x4,
18683                rs1: 0x0,
18684                rs2: 0x0,
18685                csr: 0x6c0,
18686                funct7: 0x36,
18687            },
18688            Opcode::HLVH => Inst {
18689                opcode: 0x73,
18690                funct3: 0x4,
18691                rs1: 0x0,
18692                rs2: 0x0,
18693                csr: 0x640,
18694                funct7: 0x32,
18695            },
18696            Opcode::HLVHU => Inst {
18697                opcode: 0x73,
18698                funct3: 0x4,
18699                rs1: 0x0,
18700                rs2: 0x1,
18701                csr: 0x641,
18702                funct7: 0x32,
18703            },
18704            Opcode::HLVW => Inst {
18705                opcode: 0x73,
18706                funct3: 0x4,
18707                rs1: 0x0,
18708                rs2: 0x0,
18709                csr: 0x680,
18710                funct7: 0x34,
18711            },
18712            Opcode::HLVWU => Inst {
18713                opcode: 0x73,
18714                funct3: 0x4,
18715                rs1: 0x0,
18716                rs2: 0x1,
18717                csr: 0x681,
18718                funct7: 0x34,
18719            },
18720            Opcode::HLVXHU => Inst {
18721                opcode: 0x73,
18722                funct3: 0x4,
18723                rs1: 0x0,
18724                rs2: 0x3,
18725                csr: 0x643,
18726                funct7: 0x32,
18727            },
18728            Opcode::HLVXWU => Inst {
18729                opcode: 0x73,
18730                funct3: 0x4,
18731                rs1: 0x0,
18732                rs2: 0x3,
18733                csr: 0x683,
18734                funct7: 0x34,
18735            },
18736            Opcode::HSVB => Inst {
18737                opcode: 0x73,
18738                funct3: 0x4,
18739                rs1: 0x0,
18740                rs2: 0x0,
18741                csr: 0x620,
18742                funct7: 0x31,
18743            },
18744            Opcode::HSVD => Inst {
18745                opcode: 0x73,
18746                funct3: 0x4,
18747                rs1: 0x0,
18748                rs2: 0x0,
18749                csr: 0x6e0,
18750                funct7: 0x37,
18751            },
18752            Opcode::HSVH => Inst {
18753                opcode: 0x73,
18754                funct3: 0x4,
18755                rs1: 0x0,
18756                rs2: 0x0,
18757                csr: 0x660,
18758                funct7: 0x33,
18759            },
18760            Opcode::HSVW => Inst {
18761                opcode: 0x73,
18762                funct3: 0x4,
18763                rs1: 0x0,
18764                rs2: 0x0,
18765                csr: 0x6a0,
18766                funct7: 0x35,
18767            },
18768            Opcode::J => Inst {
18769                opcode: 0x6f,
18770                funct3: 0x0,
18771                rs1: 0x0,
18772                rs2: 0x0,
18773                csr: 0x0,
18774                funct7: 0x0,
18775            },
18776            Opcode::JAL => Inst {
18777                opcode: 0x6f,
18778                funct3: 0x0,
18779                rs1: 0x0,
18780                rs2: 0x0,
18781                csr: 0x0,
18782                funct7: 0x0,
18783            },
18784            Opcode::JALPSEUDO => Inst {
18785                opcode: 0x6f,
18786                funct3: 0x0,
18787                rs1: 0x0,
18788                rs2: 0x0,
18789                csr: 0x0,
18790                funct7: 0x0,
18791            },
18792            Opcode::JALR => Inst {
18793                opcode: 0x67,
18794                funct3: 0x0,
18795                rs1: 0x0,
18796                rs2: 0x0,
18797                csr: 0x0,
18798                funct7: 0x0,
18799            },
18800            Opcode::JALRPSEUDO => Inst {
18801                opcode: 0x67,
18802                funct3: 0x0,
18803                rs1: 0x0,
18804                rs2: 0x0,
18805                csr: 0x0,
18806                funct7: 0x0,
18807            },
18808            Opcode::JR => Inst {
18809                opcode: 0x67,
18810                funct3: 0x0,
18811                rs1: 0x0,
18812                rs2: 0x0,
18813                csr: 0x0,
18814                funct7: 0x0,
18815            },
18816            Opcode::LB => Inst {
18817                opcode: 0x3,
18818                funct3: 0x0,
18819                rs1: 0x0,
18820                rs2: 0x0,
18821                csr: 0x0,
18822                funct7: 0x0,
18823            },
18824            Opcode::LBU => Inst {
18825                opcode: 0x3,
18826                funct3: 0x4,
18827                rs1: 0x0,
18828                rs2: 0x0,
18829                csr: 0x0,
18830                funct7: 0x0,
18831            },
18832            Opcode::LD => Inst {
18833                opcode: 0x3,
18834                funct3: 0x3,
18835                rs1: 0x0,
18836                rs2: 0x0,
18837                csr: 0x0,
18838                funct7: 0x0,
18839            },
18840            Opcode::LH => Inst {
18841                opcode: 0x3,
18842                funct3: 0x1,
18843                rs1: 0x0,
18844                rs2: 0x0,
18845                csr: 0x0,
18846                funct7: 0x0,
18847            },
18848            Opcode::LHU => Inst {
18849                opcode: 0x3,
18850                funct3: 0x5,
18851                rs1: 0x0,
18852                rs2: 0x0,
18853                csr: 0x0,
18854                funct7: 0x0,
18855            },
18856            Opcode::LRD => Inst {
18857                opcode: 0x2f,
18858                funct3: 0x3,
18859                rs1: 0x0,
18860                rs2: 0x0,
18861                csr: 0x100,
18862                funct7: 0x8,
18863            },
18864            Opcode::LRW => Inst {
18865                opcode: 0x2f,
18866                funct3: 0x2,
18867                rs1: 0x0,
18868                rs2: 0x0,
18869                csr: 0x100,
18870                funct7: 0x8,
18871            },
18872            Opcode::LUI => Inst {
18873                opcode: 0x37,
18874                funct3: 0x0,
18875                rs1: 0x0,
18876                rs2: 0x0,
18877                csr: 0x0,
18878                funct7: 0x0,
18879            },
18880            Opcode::LW => Inst {
18881                opcode: 0x3,
18882                funct3: 0x2,
18883                rs1: 0x0,
18884                rs2: 0x0,
18885                csr: 0x0,
18886                funct7: 0x0,
18887            },
18888            Opcode::LWU => Inst {
18889                opcode: 0x3,
18890                funct3: 0x6,
18891                rs1: 0x0,
18892                rs2: 0x0,
18893                csr: 0x0,
18894                funct7: 0x0,
18895            },
18896            Opcode::MAX => Inst {
18897                opcode: 0x33,
18898                funct3: 0x6,
18899                rs1: 0x0,
18900                rs2: 0x0,
18901                csr: 0xa0,
18902                funct7: 0x5,
18903            },
18904            Opcode::MAXU => Inst {
18905                opcode: 0x33,
18906                funct3: 0x7,
18907                rs1: 0x0,
18908                rs2: 0x0,
18909                csr: 0xa0,
18910                funct7: 0x5,
18911            },
18912            Opcode::MIN => Inst {
18913                opcode: 0x33,
18914                funct3: 0x4,
18915                rs1: 0x0,
18916                rs2: 0x0,
18917                csr: 0xa0,
18918                funct7: 0x5,
18919            },
18920            Opcode::MINU => Inst {
18921                opcode: 0x33,
18922                funct3: 0x5,
18923                rs1: 0x0,
18924                rs2: 0x0,
18925                csr: 0xa0,
18926                funct7: 0x5,
18927            },
18928            Opcode::MOPR0 => Inst {
18929                opcode: 0x73,
18930                funct3: 0x4,
18931                rs1: 0x0,
18932                rs2: 0x1c,
18933                csr: 0x81c,
18934                funct7: 0x40,
18935            },
18936            Opcode::MOPR1 => Inst {
18937                opcode: 0x73,
18938                funct3: 0x4,
18939                rs1: 0x0,
18940                rs2: 0x1d,
18941                csr: 0x81d,
18942                funct7: 0x40,
18943            },
18944            Opcode::MOPR10 => Inst {
18945                opcode: 0x73,
18946                funct3: 0x4,
18947                rs1: 0x0,
18948                rs2: 0x1e,
18949                csr: 0x89e,
18950                funct7: 0x44,
18951            },
18952            Opcode::MOPR11 => Inst {
18953                opcode: 0x73,
18954                funct3: 0x4,
18955                rs1: 0x0,
18956                rs2: 0x1f,
18957                csr: 0x89f,
18958                funct7: 0x44,
18959            },
18960            Opcode::MOPR12 => Inst {
18961                opcode: 0x73,
18962                funct3: 0x4,
18963                rs1: 0x0,
18964                rs2: 0x1c,
18965                csr: 0x8dc,
18966                funct7: 0x46,
18967            },
18968            Opcode::MOPR13 => Inst {
18969                opcode: 0x73,
18970                funct3: 0x4,
18971                rs1: 0x0,
18972                rs2: 0x1d,
18973                csr: 0x8dd,
18974                funct7: 0x46,
18975            },
18976            Opcode::MOPR14 => Inst {
18977                opcode: 0x73,
18978                funct3: 0x4,
18979                rs1: 0x0,
18980                rs2: 0x1e,
18981                csr: 0x8de,
18982                funct7: 0x46,
18983            },
18984            Opcode::MOPR15 => Inst {
18985                opcode: 0x73,
18986                funct3: 0x4,
18987                rs1: 0x0,
18988                rs2: 0x1f,
18989                csr: 0x8df,
18990                funct7: 0x46,
18991            },
18992            Opcode::MOPR16 => Inst {
18993                opcode: 0x73,
18994                funct3: 0x4,
18995                rs1: 0x0,
18996                rs2: 0x1c,
18997                csr: 0xc1c,
18998                funct7: 0x60,
18999            },
19000            Opcode::MOPR17 => Inst {
19001                opcode: 0x73,
19002                funct3: 0x4,
19003                rs1: 0x0,
19004                rs2: 0x1d,
19005                csr: 0xc1d,
19006                funct7: 0x60,
19007            },
19008            Opcode::MOPR18 => Inst {
19009                opcode: 0x73,
19010                funct3: 0x4,
19011                rs1: 0x0,
19012                rs2: 0x1e,
19013                csr: 0xc1e,
19014                funct7: 0x60,
19015            },
19016            Opcode::MOPR19 => Inst {
19017                opcode: 0x73,
19018                funct3: 0x4,
19019                rs1: 0x0,
19020                rs2: 0x1f,
19021                csr: 0xc1f,
19022                funct7: 0x60,
19023            },
19024            Opcode::MOPR2 => Inst {
19025                opcode: 0x73,
19026                funct3: 0x4,
19027                rs1: 0x0,
19028                rs2: 0x1e,
19029                csr: 0x81e,
19030                funct7: 0x40,
19031            },
19032            Opcode::MOPR20 => Inst {
19033                opcode: 0x73,
19034                funct3: 0x4,
19035                rs1: 0x0,
19036                rs2: 0x1c,
19037                csr: 0xc5c,
19038                funct7: 0x62,
19039            },
19040            Opcode::MOPR21 => Inst {
19041                opcode: 0x73,
19042                funct3: 0x4,
19043                rs1: 0x0,
19044                rs2: 0x1d,
19045                csr: 0xc5d,
19046                funct7: 0x62,
19047            },
19048            Opcode::MOPR22 => Inst {
19049                opcode: 0x73,
19050                funct3: 0x4,
19051                rs1: 0x0,
19052                rs2: 0x1e,
19053                csr: 0xc5e,
19054                funct7: 0x62,
19055            },
19056            Opcode::MOPR23 => Inst {
19057                opcode: 0x73,
19058                funct3: 0x4,
19059                rs1: 0x0,
19060                rs2: 0x1f,
19061                csr: 0xc5f,
19062                funct7: 0x62,
19063            },
19064            Opcode::MOPR24 => Inst {
19065                opcode: 0x73,
19066                funct3: 0x4,
19067                rs1: 0x0,
19068                rs2: 0x1c,
19069                csr: 0xc9c,
19070                funct7: 0x64,
19071            },
19072            Opcode::MOPR25 => Inst {
19073                opcode: 0x73,
19074                funct3: 0x4,
19075                rs1: 0x0,
19076                rs2: 0x1d,
19077                csr: 0xc9d,
19078                funct7: 0x64,
19079            },
19080            Opcode::MOPR26 => Inst {
19081                opcode: 0x73,
19082                funct3: 0x4,
19083                rs1: 0x0,
19084                rs2: 0x1e,
19085                csr: 0xc9e,
19086                funct7: 0x64,
19087            },
19088            Opcode::MOPR27 => Inst {
19089                opcode: 0x73,
19090                funct3: 0x4,
19091                rs1: 0x0,
19092                rs2: 0x1f,
19093                csr: 0xc9f,
19094                funct7: 0x64,
19095            },
19096            Opcode::MOPR28 => Inst {
19097                opcode: 0x73,
19098                funct3: 0x4,
19099                rs1: 0x0,
19100                rs2: 0x1c,
19101                csr: 0xcdc,
19102                funct7: 0x66,
19103            },
19104            Opcode::MOPR29 => Inst {
19105                opcode: 0x73,
19106                funct3: 0x4,
19107                rs1: 0x0,
19108                rs2: 0x1d,
19109                csr: 0xcdd,
19110                funct7: 0x66,
19111            },
19112            Opcode::MOPR3 => Inst {
19113                opcode: 0x73,
19114                funct3: 0x4,
19115                rs1: 0x0,
19116                rs2: 0x1f,
19117                csr: 0x81f,
19118                funct7: 0x40,
19119            },
19120            Opcode::MOPR30 => Inst {
19121                opcode: 0x73,
19122                funct3: 0x4,
19123                rs1: 0x0,
19124                rs2: 0x1e,
19125                csr: 0xcde,
19126                funct7: 0x66,
19127            },
19128            Opcode::MOPR31 => Inst {
19129                opcode: 0x73,
19130                funct3: 0x4,
19131                rs1: 0x0,
19132                rs2: 0x1f,
19133                csr: 0xcdf,
19134                funct7: 0x66,
19135            },
19136            Opcode::MOPR4 => Inst {
19137                opcode: 0x73,
19138                funct3: 0x4,
19139                rs1: 0x0,
19140                rs2: 0x1c,
19141                csr: 0x85c,
19142                funct7: 0x42,
19143            },
19144            Opcode::MOPR5 => Inst {
19145                opcode: 0x73,
19146                funct3: 0x4,
19147                rs1: 0x0,
19148                rs2: 0x1d,
19149                csr: 0x85d,
19150                funct7: 0x42,
19151            },
19152            Opcode::MOPR6 => Inst {
19153                opcode: 0x73,
19154                funct3: 0x4,
19155                rs1: 0x0,
19156                rs2: 0x1e,
19157                csr: 0x85e,
19158                funct7: 0x42,
19159            },
19160            Opcode::MOPR7 => Inst {
19161                opcode: 0x73,
19162                funct3: 0x4,
19163                rs1: 0x0,
19164                rs2: 0x1f,
19165                csr: 0x85f,
19166                funct7: 0x42,
19167            },
19168            Opcode::MOPR8 => Inst {
19169                opcode: 0x73,
19170                funct3: 0x4,
19171                rs1: 0x0,
19172                rs2: 0x1c,
19173                csr: 0x89c,
19174                funct7: 0x44,
19175            },
19176            Opcode::MOPR9 => Inst {
19177                opcode: 0x73,
19178                funct3: 0x4,
19179                rs1: 0x0,
19180                rs2: 0x1d,
19181                csr: 0x89d,
19182                funct7: 0x44,
19183            },
19184            Opcode::MOPRN => Inst {
19185                opcode: 0x73,
19186                funct3: 0x4,
19187                rs1: 0x0,
19188                rs2: 0x1c,
19189                csr: 0x81c,
19190                funct7: 0x40,
19191            },
19192            Opcode::MOPRR0 => Inst {
19193                opcode: 0x73,
19194                funct3: 0x4,
19195                rs1: 0x0,
19196                rs2: 0x0,
19197                csr: 0x820,
19198                funct7: 0x41,
19199            },
19200            Opcode::MOPRR1 => Inst {
19201                opcode: 0x73,
19202                funct3: 0x4,
19203                rs1: 0x0,
19204                rs2: 0x0,
19205                csr: 0x860,
19206                funct7: 0x43,
19207            },
19208            Opcode::MOPRR2 => Inst {
19209                opcode: 0x73,
19210                funct3: 0x4,
19211                rs1: 0x0,
19212                rs2: 0x0,
19213                csr: 0x8a0,
19214                funct7: 0x45,
19215            },
19216            Opcode::MOPRR3 => Inst {
19217                opcode: 0x73,
19218                funct3: 0x4,
19219                rs1: 0x0,
19220                rs2: 0x0,
19221                csr: 0x8e0,
19222                funct7: 0x47,
19223            },
19224            Opcode::MOPRR4 => Inst {
19225                opcode: 0x73,
19226                funct3: 0x4,
19227                rs1: 0x0,
19228                rs2: 0x0,
19229                csr: 0xc20,
19230                funct7: 0x61,
19231            },
19232            Opcode::MOPRR5 => Inst {
19233                opcode: 0x73,
19234                funct3: 0x4,
19235                rs1: 0x0,
19236                rs2: 0x0,
19237                csr: 0xc60,
19238                funct7: 0x63,
19239            },
19240            Opcode::MOPRR6 => Inst {
19241                opcode: 0x73,
19242                funct3: 0x4,
19243                rs1: 0x0,
19244                rs2: 0x0,
19245                csr: 0xca0,
19246                funct7: 0x65,
19247            },
19248            Opcode::MOPRR7 => Inst {
19249                opcode: 0x73,
19250                funct3: 0x4,
19251                rs1: 0x0,
19252                rs2: 0x0,
19253                csr: 0xce0,
19254                funct7: 0x67,
19255            },
19256            Opcode::MOPRRN => Inst {
19257                opcode: 0x73,
19258                funct3: 0x4,
19259                rs1: 0x0,
19260                rs2: 0x0,
19261                csr: 0x820,
19262                funct7: 0x41,
19263            },
19264            Opcode::MRET => Inst {
19265                opcode: 0x73,
19266                funct3: 0x0,
19267                rs1: 0x0,
19268                rs2: 0x2,
19269                csr: 0x302,
19270                funct7: 0x18,
19271            },
19272            Opcode::MUL => Inst {
19273                opcode: 0x33,
19274                funct3: 0x0,
19275                rs1: 0x0,
19276                rs2: 0x0,
19277                csr: 0x20,
19278                funct7: 0x1,
19279            },
19280            Opcode::MULH => Inst {
19281                opcode: 0x33,
19282                funct3: 0x1,
19283                rs1: 0x0,
19284                rs2: 0x0,
19285                csr: 0x20,
19286                funct7: 0x1,
19287            },
19288            Opcode::MULHSU => Inst {
19289                opcode: 0x33,
19290                funct3: 0x2,
19291                rs1: 0x0,
19292                rs2: 0x0,
19293                csr: 0x20,
19294                funct7: 0x1,
19295            },
19296            Opcode::MULHU => Inst {
19297                opcode: 0x33,
19298                funct3: 0x3,
19299                rs1: 0x0,
19300                rs2: 0x0,
19301                csr: 0x20,
19302                funct7: 0x1,
19303            },
19304            Opcode::MULW => Inst {
19305                opcode: 0x3b,
19306                funct3: 0x0,
19307                rs1: 0x0,
19308                rs2: 0x0,
19309                csr: 0x20,
19310                funct7: 0x1,
19311            },
19312            Opcode::MV => Inst {
19313                opcode: 0x13,
19314                funct3: 0x0,
19315                rs1: 0x0,
19316                rs2: 0x0,
19317                csr: 0x0,
19318                funct7: 0x0,
19319            },
19320            Opcode::NEG => Inst {
19321                opcode: 0x33,
19322                funct3: 0x0,
19323                rs1: 0x0,
19324                rs2: 0x0,
19325                csr: 0x400,
19326                funct7: 0x20,
19327            },
19328            Opcode::NOP => Inst {
19329                opcode: 0x13,
19330                funct3: 0x0,
19331                rs1: 0x0,
19332                rs2: 0x0,
19333                csr: 0x0,
19334                funct7: 0x0,
19335            },
19336            Opcode::NTLALL => Inst {
19337                opcode: 0x33,
19338                funct3: 0x0,
19339                rs1: 0x0,
19340                rs2: 0x5,
19341                csr: 0x5,
19342                funct7: 0x0,
19343            },
19344            Opcode::NTLP1 => Inst {
19345                opcode: 0x33,
19346                funct3: 0x0,
19347                rs1: 0x0,
19348                rs2: 0x2,
19349                csr: 0x2,
19350                funct7: 0x0,
19351            },
19352            Opcode::NTLPALL => Inst {
19353                opcode: 0x33,
19354                funct3: 0x0,
19355                rs1: 0x0,
19356                rs2: 0x3,
19357                csr: 0x3,
19358                funct7: 0x0,
19359            },
19360            Opcode::NTLS1 => Inst {
19361                opcode: 0x33,
19362                funct3: 0x0,
19363                rs1: 0x0,
19364                rs2: 0x4,
19365                csr: 0x4,
19366                funct7: 0x0,
19367            },
19368            Opcode::OR => Inst {
19369                opcode: 0x33,
19370                funct3: 0x6,
19371                rs1: 0x0,
19372                rs2: 0x0,
19373                csr: 0x0,
19374                funct7: 0x0,
19375            },
19376            Opcode::ORCB => Inst {
19377                opcode: 0x13,
19378                funct3: 0x5,
19379                rs1: 0x0,
19380                rs2: 0x7,
19381                csr: 0x287,
19382                funct7: 0x14,
19383            },
19384            Opcode::ORI => Inst {
19385                opcode: 0x13,
19386                funct3: 0x6,
19387                rs1: 0x0,
19388                rs2: 0x0,
19389                csr: 0x0,
19390                funct7: 0x0,
19391            },
19392            Opcode::ORN => Inst {
19393                opcode: 0x33,
19394                funct3: 0x6,
19395                rs1: 0x0,
19396                rs2: 0x0,
19397                csr: 0x400,
19398                funct7: 0x20,
19399            },
19400            Opcode::PACK => Inst {
19401                opcode: 0x33,
19402                funct3: 0x4,
19403                rs1: 0x0,
19404                rs2: 0x0,
19405                csr: 0x80,
19406                funct7: 0x4,
19407            },
19408            Opcode::PACKH => Inst {
19409                opcode: 0x33,
19410                funct3: 0x7,
19411                rs1: 0x0,
19412                rs2: 0x0,
19413                csr: 0x80,
19414                funct7: 0x4,
19415            },
19416            Opcode::PACKW => Inst {
19417                opcode: 0x3b,
19418                funct3: 0x4,
19419                rs1: 0x0,
19420                rs2: 0x0,
19421                csr: 0x80,
19422                funct7: 0x4,
19423            },
19424            Opcode::PAUSE => Inst {
19425                opcode: 0xf,
19426                funct3: 0x0,
19427                rs1: 0x0,
19428                rs2: 0x10,
19429                csr: 0x10,
19430                funct7: 0x0,
19431            },
19432            Opcode::PREFETCHI => Inst {
19433                opcode: 0x13,
19434                funct3: 0x6,
19435                rs1: 0x0,
19436                rs2: 0x0,
19437                csr: 0x0,
19438                funct7: 0x0,
19439            },
19440            Opcode::PREFETCHR => Inst {
19441                opcode: 0x13,
19442                funct3: 0x6,
19443                rs1: 0x0,
19444                rs2: 0x1,
19445                csr: 0x1,
19446                funct7: 0x0,
19447            },
19448            Opcode::PREFETCHW => Inst {
19449                opcode: 0x13,
19450                funct3: 0x6,
19451                rs1: 0x0,
19452                rs2: 0x3,
19453                csr: 0x3,
19454                funct7: 0x0,
19455            },
19456            Opcode::RDCYCLE => Inst {
19457                opcode: 0x73,
19458                funct3: 0x2,
19459                rs1: 0x0,
19460                rs2: 0x0,
19461                csr: 0xc00,
19462                funct7: 0x60,
19463            },
19464            Opcode::RDCYCLEH => Inst {
19465                opcode: 0x73,
19466                funct3: 0x2,
19467                rs1: 0x0,
19468                rs2: 0x0,
19469                csr: 0xc80,
19470                funct7: 0x64,
19471            },
19472            Opcode::RDINSTRET => Inst {
19473                opcode: 0x73,
19474                funct3: 0x2,
19475                rs1: 0x0,
19476                rs2: 0x2,
19477                csr: 0xc02,
19478                funct7: 0x60,
19479            },
19480            Opcode::RDINSTRETH => Inst {
19481                opcode: 0x73,
19482                funct3: 0x2,
19483                rs1: 0x0,
19484                rs2: 0x2,
19485                csr: 0xc82,
19486                funct7: 0x64,
19487            },
19488            Opcode::RDTIME => Inst {
19489                opcode: 0x73,
19490                funct3: 0x2,
19491                rs1: 0x0,
19492                rs2: 0x1,
19493                csr: 0xc01,
19494                funct7: 0x60,
19495            },
19496            Opcode::RDTIMEH => Inst {
19497                opcode: 0x73,
19498                funct3: 0x2,
19499                rs1: 0x0,
19500                rs2: 0x1,
19501                csr: 0xc81,
19502                funct7: 0x64,
19503            },
19504            Opcode::REM => Inst {
19505                opcode: 0x33,
19506                funct3: 0x6,
19507                rs1: 0x0,
19508                rs2: 0x0,
19509                csr: 0x20,
19510                funct7: 0x1,
19511            },
19512            Opcode::REMU => Inst {
19513                opcode: 0x33,
19514                funct3: 0x7,
19515                rs1: 0x0,
19516                rs2: 0x0,
19517                csr: 0x20,
19518                funct7: 0x1,
19519            },
19520            Opcode::REMUW => Inst {
19521                opcode: 0x3b,
19522                funct3: 0x7,
19523                rs1: 0x0,
19524                rs2: 0x0,
19525                csr: 0x20,
19526                funct7: 0x1,
19527            },
19528            Opcode::REMW => Inst {
19529                opcode: 0x3b,
19530                funct3: 0x6,
19531                rs1: 0x0,
19532                rs2: 0x0,
19533                csr: 0x20,
19534                funct7: 0x1,
19535            },
19536            Opcode::RET => Inst {
19537                opcode: 0x67,
19538                funct3: 0x0,
19539                rs1: 0x1,
19540                rs2: 0x0,
19541                csr: 0x0,
19542                funct7: 0x0,
19543            },
19544            Opcode::REV8 => Inst {
19545                opcode: 0x13,
19546                funct3: 0x5,
19547                rs1: 0x0,
19548                rs2: 0x18,
19549                csr: 0x6b8,
19550                funct7: 0x35,
19551            },
19552            Opcode::REV8RV32 => Inst {
19553                opcode: 0x13,
19554                funct3: 0x5,
19555                rs1: 0x0,
19556                rs2: 0x18,
19557                csr: 0x698,
19558                funct7: 0x34,
19559            },
19560            Opcode::ROL => Inst {
19561                opcode: 0x33,
19562                funct3: 0x1,
19563                rs1: 0x0,
19564                rs2: 0x0,
19565                csr: 0x600,
19566                funct7: 0x30,
19567            },
19568            Opcode::ROLW => Inst {
19569                opcode: 0x3b,
19570                funct3: 0x1,
19571                rs1: 0x0,
19572                rs2: 0x0,
19573                csr: 0x600,
19574                funct7: 0x30,
19575            },
19576            Opcode::ROR => Inst {
19577                opcode: 0x33,
19578                funct3: 0x5,
19579                rs1: 0x0,
19580                rs2: 0x0,
19581                csr: 0x600,
19582                funct7: 0x30,
19583            },
19584            Opcode::RORI => Inst {
19585                opcode: 0x13,
19586                funct3: 0x5,
19587                rs1: 0x0,
19588                rs2: 0x0,
19589                csr: 0x600,
19590                funct7: 0x30,
19591            },
19592            Opcode::RORIRV32 => Inst {
19593                opcode: 0x13,
19594                funct3: 0x5,
19595                rs1: 0x0,
19596                rs2: 0x0,
19597                csr: 0x600,
19598                funct7: 0x30,
19599            },
19600            Opcode::RORIW => Inst {
19601                opcode: 0x1b,
19602                funct3: 0x5,
19603                rs1: 0x0,
19604                rs2: 0x0,
19605                csr: 0x600,
19606                funct7: 0x30,
19607            },
19608            Opcode::RORW => Inst {
19609                opcode: 0x3b,
19610                funct3: 0x5,
19611                rs1: 0x0,
19612                rs2: 0x0,
19613                csr: 0x600,
19614                funct7: 0x30,
19615            },
19616            Opcode::SB => Inst {
19617                opcode: 0x23,
19618                funct3: 0x0,
19619                rs1: 0x0,
19620                rs2: 0x0,
19621                csr: 0x0,
19622                funct7: 0x0,
19623            },
19624            Opcode::SBREAK => Inst {
19625                opcode: 0x73,
19626                funct3: 0x0,
19627                rs1: 0x0,
19628                rs2: 0x1,
19629                csr: 0x1,
19630                funct7: 0x0,
19631            },
19632            Opcode::SCD => Inst {
19633                opcode: 0x2f,
19634                funct3: 0x3,
19635                rs1: 0x0,
19636                rs2: 0x0,
19637                csr: 0x180,
19638                funct7: 0xc,
19639            },
19640            Opcode::SCW => Inst {
19641                opcode: 0x2f,
19642                funct3: 0x2,
19643                rs1: 0x0,
19644                rs2: 0x0,
19645                csr: 0x180,
19646                funct7: 0xc,
19647            },
19648            Opcode::SCALL => Inst {
19649                opcode: 0x73,
19650                funct3: 0x0,
19651                rs1: 0x0,
19652                rs2: 0x0,
19653                csr: 0x0,
19654                funct7: 0x0,
19655            },
19656            Opcode::SD => Inst {
19657                opcode: 0x23,
19658                funct3: 0x3,
19659                rs1: 0x0,
19660                rs2: 0x0,
19661                csr: 0x0,
19662                funct7: 0x0,
19663            },
19664            Opcode::SEQZ => Inst {
19665                opcode: 0x13,
19666                funct3: 0x3,
19667                rs1: 0x0,
19668                rs2: 0x1,
19669                csr: 0x1,
19670                funct7: 0x0,
19671            },
19672            Opcode::SEXTB => Inst {
19673                opcode: 0x13,
19674                funct3: 0x1,
19675                rs1: 0x0,
19676                rs2: 0x4,
19677                csr: 0x604,
19678                funct7: 0x30,
19679            },
19680            Opcode::SEXTH => Inst {
19681                opcode: 0x13,
19682                funct3: 0x1,
19683                rs1: 0x0,
19684                rs2: 0x5,
19685                csr: 0x605,
19686                funct7: 0x30,
19687            },
19688            Opcode::SEXTW => Inst {
19689                opcode: 0x1b,
19690                funct3: 0x0,
19691                rs1: 0x0,
19692                rs2: 0x0,
19693                csr: 0x0,
19694                funct7: 0x0,
19695            },
19696            Opcode::SFENCEINVALIR => Inst {
19697                opcode: 0x73,
19698                funct3: 0x0,
19699                rs1: 0x0,
19700                rs2: 0x1,
19701                csr: 0x181,
19702                funct7: 0xc,
19703            },
19704            Opcode::SFENCEVMA => Inst {
19705                opcode: 0x73,
19706                funct3: 0x0,
19707                rs1: 0x0,
19708                rs2: 0x0,
19709                csr: 0x120,
19710                funct7: 0x9,
19711            },
19712            Opcode::SFENCEWINVAL => Inst {
19713                opcode: 0x73,
19714                funct3: 0x0,
19715                rs1: 0x0,
19716                rs2: 0x0,
19717                csr: 0x180,
19718                funct7: 0xc,
19719            },
19720            Opcode::SGTZ => Inst {
19721                opcode: 0x33,
19722                funct3: 0x2,
19723                rs1: 0x0,
19724                rs2: 0x0,
19725                csr: 0x0,
19726                funct7: 0x0,
19727            },
19728            Opcode::SH => Inst {
19729                opcode: 0x23,
19730                funct3: 0x1,
19731                rs1: 0x0,
19732                rs2: 0x0,
19733                csr: 0x0,
19734                funct7: 0x0,
19735            },
19736            Opcode::SH1ADD => Inst {
19737                opcode: 0x33,
19738                funct3: 0x2,
19739                rs1: 0x0,
19740                rs2: 0x0,
19741                csr: 0x200,
19742                funct7: 0x10,
19743            },
19744            Opcode::SH1ADDUW => Inst {
19745                opcode: 0x3b,
19746                funct3: 0x2,
19747                rs1: 0x0,
19748                rs2: 0x0,
19749                csr: 0x200,
19750                funct7: 0x10,
19751            },
19752            Opcode::SH2ADD => Inst {
19753                opcode: 0x33,
19754                funct3: 0x4,
19755                rs1: 0x0,
19756                rs2: 0x0,
19757                csr: 0x200,
19758                funct7: 0x10,
19759            },
19760            Opcode::SH2ADDUW => Inst {
19761                opcode: 0x3b,
19762                funct3: 0x4,
19763                rs1: 0x0,
19764                rs2: 0x0,
19765                csr: 0x200,
19766                funct7: 0x10,
19767            },
19768            Opcode::SH3ADD => Inst {
19769                opcode: 0x33,
19770                funct3: 0x6,
19771                rs1: 0x0,
19772                rs2: 0x0,
19773                csr: 0x200,
19774                funct7: 0x10,
19775            },
19776            Opcode::SH3ADDUW => Inst {
19777                opcode: 0x3b,
19778                funct3: 0x6,
19779                rs1: 0x0,
19780                rs2: 0x0,
19781                csr: 0x200,
19782                funct7: 0x10,
19783            },
19784            Opcode::SHA256SIG0 => Inst {
19785                opcode: 0x13,
19786                funct3: 0x1,
19787                rs1: 0x0,
19788                rs2: 0x2,
19789                csr: 0x102,
19790                funct7: 0x8,
19791            },
19792            Opcode::SHA256SIG1 => Inst {
19793                opcode: 0x13,
19794                funct3: 0x1,
19795                rs1: 0x0,
19796                rs2: 0x3,
19797                csr: 0x103,
19798                funct7: 0x8,
19799            },
19800            Opcode::SHA256SUM0 => Inst {
19801                opcode: 0x13,
19802                funct3: 0x1,
19803                rs1: 0x0,
19804                rs2: 0x0,
19805                csr: 0x100,
19806                funct7: 0x8,
19807            },
19808            Opcode::SHA256SUM1 => Inst {
19809                opcode: 0x13,
19810                funct3: 0x1,
19811                rs1: 0x0,
19812                rs2: 0x1,
19813                csr: 0x101,
19814                funct7: 0x8,
19815            },
19816            Opcode::SHA512SIG0 => Inst {
19817                opcode: 0x13,
19818                funct3: 0x1,
19819                rs1: 0x0,
19820                rs2: 0x6,
19821                csr: 0x106,
19822                funct7: 0x8,
19823            },
19824            Opcode::SHA512SIG0H => Inst {
19825                opcode: 0x33,
19826                funct3: 0x0,
19827                rs1: 0x0,
19828                rs2: 0x0,
19829                csr: 0x5c0,
19830                funct7: 0x2e,
19831            },
19832            Opcode::SHA512SIG0L => Inst {
19833                opcode: 0x33,
19834                funct3: 0x0,
19835                rs1: 0x0,
19836                rs2: 0x0,
19837                csr: 0x540,
19838                funct7: 0x2a,
19839            },
19840            Opcode::SHA512SIG1 => Inst {
19841                opcode: 0x13,
19842                funct3: 0x1,
19843                rs1: 0x0,
19844                rs2: 0x7,
19845                csr: 0x107,
19846                funct7: 0x8,
19847            },
19848            Opcode::SHA512SIG1H => Inst {
19849                opcode: 0x33,
19850                funct3: 0x0,
19851                rs1: 0x0,
19852                rs2: 0x0,
19853                csr: 0x5e0,
19854                funct7: 0x2f,
19855            },
19856            Opcode::SHA512SIG1L => Inst {
19857                opcode: 0x33,
19858                funct3: 0x0,
19859                rs1: 0x0,
19860                rs2: 0x0,
19861                csr: 0x560,
19862                funct7: 0x2b,
19863            },
19864            Opcode::SHA512SUM0 => Inst {
19865                opcode: 0x13,
19866                funct3: 0x1,
19867                rs1: 0x0,
19868                rs2: 0x4,
19869                csr: 0x104,
19870                funct7: 0x8,
19871            },
19872            Opcode::SHA512SUM0R => Inst {
19873                opcode: 0x33,
19874                funct3: 0x0,
19875                rs1: 0x0,
19876                rs2: 0x0,
19877                csr: 0x500,
19878                funct7: 0x28,
19879            },
19880            Opcode::SHA512SUM1 => Inst {
19881                opcode: 0x13,
19882                funct3: 0x1,
19883                rs1: 0x0,
19884                rs2: 0x5,
19885                csr: 0x105,
19886                funct7: 0x8,
19887            },
19888            Opcode::SHA512SUM1R => Inst {
19889                opcode: 0x33,
19890                funct3: 0x0,
19891                rs1: 0x0,
19892                rs2: 0x0,
19893                csr: 0x520,
19894                funct7: 0x29,
19895            },
19896            Opcode::SINVALVMA => Inst {
19897                opcode: 0x73,
19898                funct3: 0x0,
19899                rs1: 0x0,
19900                rs2: 0x0,
19901                csr: 0x160,
19902                funct7: 0xb,
19903            },
19904            Opcode::SLL => Inst {
19905                opcode: 0x33,
19906                funct3: 0x1,
19907                rs1: 0x0,
19908                rs2: 0x0,
19909                csr: 0x0,
19910                funct7: 0x0,
19911            },
19912            Opcode::SLLI => Inst {
19913                opcode: 0x13,
19914                funct3: 0x1,
19915                rs1: 0x0,
19916                rs2: 0x0,
19917                csr: 0x0,
19918                funct7: 0x0,
19919            },
19920            Opcode::SLLIRV32 => Inst {
19921                opcode: 0x13,
19922                funct3: 0x1,
19923                rs1: 0x0,
19924                rs2: 0x0,
19925                csr: 0x0,
19926                funct7: 0x0,
19927            },
19928            Opcode::SLLIUW => Inst {
19929                opcode: 0x1b,
19930                funct3: 0x1,
19931                rs1: 0x0,
19932                rs2: 0x0,
19933                csr: 0x80,
19934                funct7: 0x4,
19935            },
19936            Opcode::SLLIW => Inst {
19937                opcode: 0x1b,
19938                funct3: 0x1,
19939                rs1: 0x0,
19940                rs2: 0x0,
19941                csr: 0x0,
19942                funct7: 0x0,
19943            },
19944            Opcode::SLLW => Inst {
19945                opcode: 0x3b,
19946                funct3: 0x1,
19947                rs1: 0x0,
19948                rs2: 0x0,
19949                csr: 0x0,
19950                funct7: 0x0,
19951            },
19952            Opcode::SLT => Inst {
19953                opcode: 0x33,
19954                funct3: 0x2,
19955                rs1: 0x0,
19956                rs2: 0x0,
19957                csr: 0x0,
19958                funct7: 0x0,
19959            },
19960            Opcode::SLTI => Inst {
19961                opcode: 0x13,
19962                funct3: 0x2,
19963                rs1: 0x0,
19964                rs2: 0x0,
19965                csr: 0x0,
19966                funct7: 0x0,
19967            },
19968            Opcode::SLTIU => Inst {
19969                opcode: 0x13,
19970                funct3: 0x3,
19971                rs1: 0x0,
19972                rs2: 0x0,
19973                csr: 0x0,
19974                funct7: 0x0,
19975            },
19976            Opcode::SLTU => Inst {
19977                opcode: 0x33,
19978                funct3: 0x3,
19979                rs1: 0x0,
19980                rs2: 0x0,
19981                csr: 0x0,
19982                funct7: 0x0,
19983            },
19984            Opcode::SLTZ => Inst {
19985                opcode: 0x33,
19986                funct3: 0x2,
19987                rs1: 0x0,
19988                rs2: 0x0,
19989                csr: 0x0,
19990                funct7: 0x0,
19991            },
19992            Opcode::SM3P0 => Inst {
19993                opcode: 0x13,
19994                funct3: 0x1,
19995                rs1: 0x0,
19996                rs2: 0x8,
19997                csr: 0x108,
19998                funct7: 0x8,
19999            },
20000            Opcode::SM3P1 => Inst {
20001                opcode: 0x13,
20002                funct3: 0x1,
20003                rs1: 0x0,
20004                rs2: 0x9,
20005                csr: 0x109,
20006                funct7: 0x8,
20007            },
20008            Opcode::SM4ED => Inst {
20009                opcode: 0x33,
20010                funct3: 0x0,
20011                rs1: 0x0,
20012                rs2: 0x0,
20013                csr: 0x300,
20014                funct7: 0x18,
20015            },
20016            Opcode::SM4KS => Inst {
20017                opcode: 0x33,
20018                funct3: 0x0,
20019                rs1: 0x0,
20020                rs2: 0x0,
20021                csr: 0x340,
20022                funct7: 0x1a,
20023            },
20024            Opcode::SNEZ => Inst {
20025                opcode: 0x33,
20026                funct3: 0x3,
20027                rs1: 0x0,
20028                rs2: 0x0,
20029                csr: 0x0,
20030                funct7: 0x0,
20031            },
20032            Opcode::SRA => Inst {
20033                opcode: 0x33,
20034                funct3: 0x5,
20035                rs1: 0x0,
20036                rs2: 0x0,
20037                csr: 0x400,
20038                funct7: 0x20,
20039            },
20040            Opcode::SRAI => Inst {
20041                opcode: 0x13,
20042                funct3: 0x5,
20043                rs1: 0x0,
20044                rs2: 0x0,
20045                csr: 0x400,
20046                funct7: 0x20,
20047            },
20048            Opcode::SRAIRV32 => Inst {
20049                opcode: 0x13,
20050                funct3: 0x5,
20051                rs1: 0x0,
20052                rs2: 0x0,
20053                csr: 0x400,
20054                funct7: 0x20,
20055            },
20056            Opcode::SRAIW => Inst {
20057                opcode: 0x1b,
20058                funct3: 0x5,
20059                rs1: 0x0,
20060                rs2: 0x0,
20061                csr: 0x400,
20062                funct7: 0x20,
20063            },
20064            Opcode::SRAW => Inst {
20065                opcode: 0x3b,
20066                funct3: 0x5,
20067                rs1: 0x0,
20068                rs2: 0x0,
20069                csr: 0x400,
20070                funct7: 0x20,
20071            },
20072            Opcode::SRET => Inst {
20073                opcode: 0x73,
20074                funct3: 0x0,
20075                rs1: 0x0,
20076                rs2: 0x2,
20077                csr: 0x102,
20078                funct7: 0x8,
20079            },
20080            Opcode::SRL => Inst {
20081                opcode: 0x33,
20082                funct3: 0x5,
20083                rs1: 0x0,
20084                rs2: 0x0,
20085                csr: 0x0,
20086                funct7: 0x0,
20087            },
20088            Opcode::SRLI => Inst {
20089                opcode: 0x13,
20090                funct3: 0x5,
20091                rs1: 0x0,
20092                rs2: 0x0,
20093                csr: 0x0,
20094                funct7: 0x0,
20095            },
20096            Opcode::SRLIRV32 => Inst {
20097                opcode: 0x13,
20098                funct3: 0x5,
20099                rs1: 0x0,
20100                rs2: 0x0,
20101                csr: 0x0,
20102                funct7: 0x0,
20103            },
20104            Opcode::SRLIW => Inst {
20105                opcode: 0x1b,
20106                funct3: 0x5,
20107                rs1: 0x0,
20108                rs2: 0x0,
20109                csr: 0x0,
20110                funct7: 0x0,
20111            },
20112            Opcode::SRLW => Inst {
20113                opcode: 0x3b,
20114                funct3: 0x5,
20115                rs1: 0x0,
20116                rs2: 0x0,
20117                csr: 0x0,
20118                funct7: 0x0,
20119            },
20120            Opcode::SUB => Inst {
20121                opcode: 0x33,
20122                funct3: 0x0,
20123                rs1: 0x0,
20124                rs2: 0x0,
20125                csr: 0x400,
20126                funct7: 0x20,
20127            },
20128            Opcode::SUBW => Inst {
20129                opcode: 0x3b,
20130                funct3: 0x0,
20131                rs1: 0x0,
20132                rs2: 0x0,
20133                csr: 0x400,
20134                funct7: 0x20,
20135            },
20136            Opcode::SW => Inst {
20137                opcode: 0x23,
20138                funct3: 0x2,
20139                rs1: 0x0,
20140                rs2: 0x0,
20141                csr: 0x0,
20142                funct7: 0x0,
20143            },
20144            Opcode::UNZIP => Inst {
20145                opcode: 0x13,
20146                funct3: 0x5,
20147                rs1: 0x0,
20148                rs2: 0xf,
20149                csr: 0x8f,
20150                funct7: 0x4,
20151            },
20152            Opcode::VAADDVV => Inst {
20153                opcode: 0x57,
20154                funct3: 0x2,
20155                rs1: 0x0,
20156                rs2: 0x0,
20157                csr: 0x240,
20158                funct7: 0x12,
20159            },
20160            Opcode::VAADDVX => Inst {
20161                opcode: 0x57,
20162                funct3: 0x6,
20163                rs1: 0x0,
20164                rs2: 0x0,
20165                csr: 0x240,
20166                funct7: 0x12,
20167            },
20168            Opcode::VAADDUVV => Inst {
20169                opcode: 0x57,
20170                funct3: 0x2,
20171                rs1: 0x0,
20172                rs2: 0x0,
20173                csr: 0x200,
20174                funct7: 0x10,
20175            },
20176            Opcode::VAADDUVX => Inst {
20177                opcode: 0x57,
20178                funct3: 0x6,
20179                rs1: 0x0,
20180                rs2: 0x0,
20181                csr: 0x200,
20182                funct7: 0x10,
20183            },
20184            Opcode::VADCVIM => Inst {
20185                opcode: 0x57,
20186                funct3: 0x3,
20187                rs1: 0x0,
20188                rs2: 0x0,
20189                csr: 0x400,
20190                funct7: 0x20,
20191            },
20192            Opcode::VADCVVM => Inst {
20193                opcode: 0x57,
20194                funct3: 0x0,
20195                rs1: 0x0,
20196                rs2: 0x0,
20197                csr: 0x400,
20198                funct7: 0x20,
20199            },
20200            Opcode::VADCVXM => Inst {
20201                opcode: 0x57,
20202                funct3: 0x4,
20203                rs1: 0x0,
20204                rs2: 0x0,
20205                csr: 0x400,
20206                funct7: 0x20,
20207            },
20208            Opcode::VADDVI => Inst {
20209                opcode: 0x57,
20210                funct3: 0x3,
20211                rs1: 0x0,
20212                rs2: 0x0,
20213                csr: 0x0,
20214                funct7: 0x0,
20215            },
20216            Opcode::VADDVV => Inst {
20217                opcode: 0x57,
20218                funct3: 0x0,
20219                rs1: 0x0,
20220                rs2: 0x0,
20221                csr: 0x0,
20222                funct7: 0x0,
20223            },
20224            Opcode::VADDVX => Inst {
20225                opcode: 0x57,
20226                funct3: 0x4,
20227                rs1: 0x0,
20228                rs2: 0x0,
20229                csr: 0x0,
20230                funct7: 0x0,
20231            },
20232            Opcode::VAESDFVS => Inst {
20233                opcode: 0x77,
20234                funct3: 0x2,
20235                rs1: 0x1,
20236                rs2: 0x0,
20237                csr: 0xa60,
20238                funct7: 0x53,
20239            },
20240            Opcode::VAESDFVV => Inst {
20241                opcode: 0x77,
20242                funct3: 0x2,
20243                rs1: 0x1,
20244                rs2: 0x0,
20245                csr: 0xa20,
20246                funct7: 0x51,
20247            },
20248            Opcode::VAESDMVS => Inst {
20249                opcode: 0x77,
20250                funct3: 0x2,
20251                rs1: 0x0,
20252                rs2: 0x0,
20253                csr: 0xa60,
20254                funct7: 0x53,
20255            },
20256            Opcode::VAESDMVV => Inst {
20257                opcode: 0x77,
20258                funct3: 0x2,
20259                rs1: 0x0,
20260                rs2: 0x0,
20261                csr: 0xa20,
20262                funct7: 0x51,
20263            },
20264            Opcode::VAESEFVS => Inst {
20265                opcode: 0x77,
20266                funct3: 0x2,
20267                rs1: 0x3,
20268                rs2: 0x0,
20269                csr: 0xa60,
20270                funct7: 0x53,
20271            },
20272            Opcode::VAESEFVV => Inst {
20273                opcode: 0x77,
20274                funct3: 0x2,
20275                rs1: 0x3,
20276                rs2: 0x0,
20277                csr: 0xa20,
20278                funct7: 0x51,
20279            },
20280            Opcode::VAESEMVS => Inst {
20281                opcode: 0x77,
20282                funct3: 0x2,
20283                rs1: 0x2,
20284                rs2: 0x0,
20285                csr: 0xa60,
20286                funct7: 0x53,
20287            },
20288            Opcode::VAESEMVV => Inst {
20289                opcode: 0x77,
20290                funct3: 0x2,
20291                rs1: 0x2,
20292                rs2: 0x0,
20293                csr: 0xa20,
20294                funct7: 0x51,
20295            },
20296            Opcode::VAESKF1VI => Inst {
20297                opcode: 0x77,
20298                funct3: 0x2,
20299                rs1: 0x0,
20300                rs2: 0x0,
20301                csr: 0x8a0,
20302                funct7: 0x45,
20303            },
20304            Opcode::VAESKF2VI => Inst {
20305                opcode: 0x77,
20306                funct3: 0x2,
20307                rs1: 0x0,
20308                rs2: 0x0,
20309                csr: 0xaa0,
20310                funct7: 0x55,
20311            },
20312            Opcode::VAESZVS => Inst {
20313                opcode: 0x77,
20314                funct3: 0x2,
20315                rs1: 0x7,
20316                rs2: 0x0,
20317                csr: 0xa60,
20318                funct7: 0x53,
20319            },
20320            Opcode::VANDVI => Inst {
20321                opcode: 0x57,
20322                funct3: 0x3,
20323                rs1: 0x0,
20324                rs2: 0x0,
20325                csr: 0x240,
20326                funct7: 0x12,
20327            },
20328            Opcode::VANDVV => Inst {
20329                opcode: 0x57,
20330                funct3: 0x0,
20331                rs1: 0x0,
20332                rs2: 0x0,
20333                csr: 0x240,
20334                funct7: 0x12,
20335            },
20336            Opcode::VANDVX => Inst {
20337                opcode: 0x57,
20338                funct3: 0x4,
20339                rs1: 0x0,
20340                rs2: 0x0,
20341                csr: 0x240,
20342                funct7: 0x12,
20343            },
20344            Opcode::VANDNVV => Inst {
20345                opcode: 0x57,
20346                funct3: 0x0,
20347                rs1: 0x0,
20348                rs2: 0x0,
20349                csr: 0x40,
20350                funct7: 0x2,
20351            },
20352            Opcode::VANDNVX => Inst {
20353                opcode: 0x57,
20354                funct3: 0x4,
20355                rs1: 0x0,
20356                rs2: 0x0,
20357                csr: 0x40,
20358                funct7: 0x2,
20359            },
20360            Opcode::VASUBVV => Inst {
20361                opcode: 0x57,
20362                funct3: 0x2,
20363                rs1: 0x0,
20364                rs2: 0x0,
20365                csr: 0x2c0,
20366                funct7: 0x16,
20367            },
20368            Opcode::VASUBVX => Inst {
20369                opcode: 0x57,
20370                funct3: 0x6,
20371                rs1: 0x0,
20372                rs2: 0x0,
20373                csr: 0x2c0,
20374                funct7: 0x16,
20375            },
20376            Opcode::VASUBUVV => Inst {
20377                opcode: 0x57,
20378                funct3: 0x2,
20379                rs1: 0x0,
20380                rs2: 0x0,
20381                csr: 0x280,
20382                funct7: 0x14,
20383            },
20384            Opcode::VASUBUVX => Inst {
20385                opcode: 0x57,
20386                funct3: 0x6,
20387                rs1: 0x0,
20388                rs2: 0x0,
20389                csr: 0x280,
20390                funct7: 0x14,
20391            },
20392            Opcode::VBREV8V => Inst {
20393                opcode: 0x57,
20394                funct3: 0x2,
20395                rs1: 0x8,
20396                rs2: 0x0,
20397                csr: 0x480,
20398                funct7: 0x24,
20399            },
20400            Opcode::VBREVV => Inst {
20401                opcode: 0x57,
20402                funct3: 0x2,
20403                rs1: 0xa,
20404                rs2: 0x0,
20405                csr: 0x480,
20406                funct7: 0x24,
20407            },
20408            Opcode::VCLMULVV => Inst {
20409                opcode: 0x57,
20410                funct3: 0x2,
20411                rs1: 0x0,
20412                rs2: 0x0,
20413                csr: 0x300,
20414                funct7: 0x18,
20415            },
20416            Opcode::VCLMULVX => Inst {
20417                opcode: 0x57,
20418                funct3: 0x6,
20419                rs1: 0x0,
20420                rs2: 0x0,
20421                csr: 0x300,
20422                funct7: 0x18,
20423            },
20424            Opcode::VCLMULHVV => Inst {
20425                opcode: 0x57,
20426                funct3: 0x2,
20427                rs1: 0x0,
20428                rs2: 0x0,
20429                csr: 0x340,
20430                funct7: 0x1a,
20431            },
20432            Opcode::VCLMULHVX => Inst {
20433                opcode: 0x57,
20434                funct3: 0x6,
20435                rs1: 0x0,
20436                rs2: 0x0,
20437                csr: 0x340,
20438                funct7: 0x1a,
20439            },
20440            Opcode::VCLZV => Inst {
20441                opcode: 0x57,
20442                funct3: 0x2,
20443                rs1: 0xc,
20444                rs2: 0x0,
20445                csr: 0x480,
20446                funct7: 0x24,
20447            },
20448            Opcode::VCOMPRESSVM => Inst {
20449                opcode: 0x57,
20450                funct3: 0x2,
20451                rs1: 0x0,
20452                rs2: 0x0,
20453                csr: 0x5e0,
20454                funct7: 0x2f,
20455            },
20456            Opcode::VCPOPM => Inst {
20457                opcode: 0x57,
20458                funct3: 0x2,
20459                rs1: 0x10,
20460                rs2: 0x0,
20461                csr: 0x400,
20462                funct7: 0x20,
20463            },
20464            Opcode::VCPOPV => Inst {
20465                opcode: 0x57,
20466                funct3: 0x2,
20467                rs1: 0xe,
20468                rs2: 0x0,
20469                csr: 0x480,
20470                funct7: 0x24,
20471            },
20472            Opcode::VCTZV => Inst {
20473                opcode: 0x57,
20474                funct3: 0x2,
20475                rs1: 0xd,
20476                rs2: 0x0,
20477                csr: 0x480,
20478                funct7: 0x24,
20479            },
20480            Opcode::VDIVVV => Inst {
20481                opcode: 0x57,
20482                funct3: 0x2,
20483                rs1: 0x0,
20484                rs2: 0x0,
20485                csr: 0x840,
20486                funct7: 0x42,
20487            },
20488            Opcode::VDIVVX => Inst {
20489                opcode: 0x57,
20490                funct3: 0x6,
20491                rs1: 0x0,
20492                rs2: 0x0,
20493                csr: 0x840,
20494                funct7: 0x42,
20495            },
20496            Opcode::VDIVUVV => Inst {
20497                opcode: 0x57,
20498                funct3: 0x2,
20499                rs1: 0x0,
20500                rs2: 0x0,
20501                csr: 0x800,
20502                funct7: 0x40,
20503            },
20504            Opcode::VDIVUVX => Inst {
20505                opcode: 0x57,
20506                funct3: 0x6,
20507                rs1: 0x0,
20508                rs2: 0x0,
20509                csr: 0x800,
20510                funct7: 0x40,
20511            },
20512            Opcode::VFADDVF => Inst {
20513                opcode: 0x57,
20514                funct3: 0x5,
20515                rs1: 0x0,
20516                rs2: 0x0,
20517                csr: 0x0,
20518                funct7: 0x0,
20519            },
20520            Opcode::VFADDVV => Inst {
20521                opcode: 0x57,
20522                funct3: 0x1,
20523                rs1: 0x0,
20524                rs2: 0x0,
20525                csr: 0x0,
20526                funct7: 0x0,
20527            },
20528            Opcode::VFCLASSV => Inst {
20529                opcode: 0x57,
20530                funct3: 0x1,
20531                rs1: 0x10,
20532                rs2: 0x0,
20533                csr: 0x4c0,
20534                funct7: 0x26,
20535            },
20536            Opcode::VFCVTFXV => Inst {
20537                opcode: 0x57,
20538                funct3: 0x1,
20539                rs1: 0x3,
20540                rs2: 0x0,
20541                csr: 0x480,
20542                funct7: 0x24,
20543            },
20544            Opcode::VFCVTFXUV => Inst {
20545                opcode: 0x57,
20546                funct3: 0x1,
20547                rs1: 0x2,
20548                rs2: 0x0,
20549                csr: 0x480,
20550                funct7: 0x24,
20551            },
20552            Opcode::VFCVTRTZXFV => Inst {
20553                opcode: 0x57,
20554                funct3: 0x1,
20555                rs1: 0x7,
20556                rs2: 0x0,
20557                csr: 0x480,
20558                funct7: 0x24,
20559            },
20560            Opcode::VFCVTRTZXUFV => Inst {
20561                opcode: 0x57,
20562                funct3: 0x1,
20563                rs1: 0x6,
20564                rs2: 0x0,
20565                csr: 0x480,
20566                funct7: 0x24,
20567            },
20568            Opcode::VFCVTXFV => Inst {
20569                opcode: 0x57,
20570                funct3: 0x1,
20571                rs1: 0x1,
20572                rs2: 0x0,
20573                csr: 0x480,
20574                funct7: 0x24,
20575            },
20576            Opcode::VFCVTXUFV => Inst {
20577                opcode: 0x57,
20578                funct3: 0x1,
20579                rs1: 0x0,
20580                rs2: 0x0,
20581                csr: 0x480,
20582                funct7: 0x24,
20583            },
20584            Opcode::VFDIVVF => Inst {
20585                opcode: 0x57,
20586                funct3: 0x5,
20587                rs1: 0x0,
20588                rs2: 0x0,
20589                csr: 0x800,
20590                funct7: 0x40,
20591            },
20592            Opcode::VFDIVVV => Inst {
20593                opcode: 0x57,
20594                funct3: 0x1,
20595                rs1: 0x0,
20596                rs2: 0x0,
20597                csr: 0x800,
20598                funct7: 0x40,
20599            },
20600            Opcode::VFIRSTM => Inst {
20601                opcode: 0x57,
20602                funct3: 0x2,
20603                rs1: 0x11,
20604                rs2: 0x0,
20605                csr: 0x400,
20606                funct7: 0x20,
20607            },
20608            Opcode::VFMACCVF => Inst {
20609                opcode: 0x57,
20610                funct3: 0x5,
20611                rs1: 0x0,
20612                rs2: 0x0,
20613                csr: 0xb00,
20614                funct7: 0x58,
20615            },
20616            Opcode::VFMACCVV => Inst {
20617                opcode: 0x57,
20618                funct3: 0x1,
20619                rs1: 0x0,
20620                rs2: 0x0,
20621                csr: 0xb00,
20622                funct7: 0x58,
20623            },
20624            Opcode::VFMADDVF => Inst {
20625                opcode: 0x57,
20626                funct3: 0x5,
20627                rs1: 0x0,
20628                rs2: 0x0,
20629                csr: 0xa00,
20630                funct7: 0x50,
20631            },
20632            Opcode::VFMADDVV => Inst {
20633                opcode: 0x57,
20634                funct3: 0x1,
20635                rs1: 0x0,
20636                rs2: 0x0,
20637                csr: 0xa00,
20638                funct7: 0x50,
20639            },
20640            Opcode::VFMAXVF => Inst {
20641                opcode: 0x57,
20642                funct3: 0x5,
20643                rs1: 0x0,
20644                rs2: 0x0,
20645                csr: 0x180,
20646                funct7: 0xc,
20647            },
20648            Opcode::VFMAXVV => Inst {
20649                opcode: 0x57,
20650                funct3: 0x1,
20651                rs1: 0x0,
20652                rs2: 0x0,
20653                csr: 0x180,
20654                funct7: 0xc,
20655            },
20656            Opcode::VFMERGEVFM => Inst {
20657                opcode: 0x57,
20658                funct3: 0x5,
20659                rs1: 0x0,
20660                rs2: 0x0,
20661                csr: 0x5c0,
20662                funct7: 0x2e,
20663            },
20664            Opcode::VFMINVF => Inst {
20665                opcode: 0x57,
20666                funct3: 0x5,
20667                rs1: 0x0,
20668                rs2: 0x0,
20669                csr: 0x100,
20670                funct7: 0x8,
20671            },
20672            Opcode::VFMINVV => Inst {
20673                opcode: 0x57,
20674                funct3: 0x1,
20675                rs1: 0x0,
20676                rs2: 0x0,
20677                csr: 0x100,
20678                funct7: 0x8,
20679            },
20680            Opcode::VFMSACVF => Inst {
20681                opcode: 0x57,
20682                funct3: 0x5,
20683                rs1: 0x0,
20684                rs2: 0x0,
20685                csr: 0xb80,
20686                funct7: 0x5c,
20687            },
20688            Opcode::VFMSACVV => Inst {
20689                opcode: 0x57,
20690                funct3: 0x1,
20691                rs1: 0x0,
20692                rs2: 0x0,
20693                csr: 0xb80,
20694                funct7: 0x5c,
20695            },
20696            Opcode::VFMSUBVF => Inst {
20697                opcode: 0x57,
20698                funct3: 0x5,
20699                rs1: 0x0,
20700                rs2: 0x0,
20701                csr: 0xa80,
20702                funct7: 0x54,
20703            },
20704            Opcode::VFMSUBVV => Inst {
20705                opcode: 0x57,
20706                funct3: 0x1,
20707                rs1: 0x0,
20708                rs2: 0x0,
20709                csr: 0xa80,
20710                funct7: 0x54,
20711            },
20712            Opcode::VFMULVF => Inst {
20713                opcode: 0x57,
20714                funct3: 0x5,
20715                rs1: 0x0,
20716                rs2: 0x0,
20717                csr: 0x900,
20718                funct7: 0x48,
20719            },
20720            Opcode::VFMULVV => Inst {
20721                opcode: 0x57,
20722                funct3: 0x1,
20723                rs1: 0x0,
20724                rs2: 0x0,
20725                csr: 0x900,
20726                funct7: 0x48,
20727            },
20728            Opcode::VFMVFS => Inst {
20729                opcode: 0x57,
20730                funct3: 0x1,
20731                rs1: 0x0,
20732                rs2: 0x0,
20733                csr: 0x420,
20734                funct7: 0x21,
20735            },
20736            Opcode::VFMVSF => Inst {
20737                opcode: 0x57,
20738                funct3: 0x5,
20739                rs1: 0x0,
20740                rs2: 0x0,
20741                csr: 0x420,
20742                funct7: 0x21,
20743            },
20744            Opcode::VFMVVF => Inst {
20745                opcode: 0x57,
20746                funct3: 0x5,
20747                rs1: 0x0,
20748                rs2: 0x0,
20749                csr: 0x5e0,
20750                funct7: 0x2f,
20751            },
20752            Opcode::VFNCVTFFW => Inst {
20753                opcode: 0x57,
20754                funct3: 0x1,
20755                rs1: 0x14,
20756                rs2: 0x0,
20757                csr: 0x480,
20758                funct7: 0x24,
20759            },
20760            Opcode::VFNCVTFXW => Inst {
20761                opcode: 0x57,
20762                funct3: 0x1,
20763                rs1: 0x13,
20764                rs2: 0x0,
20765                csr: 0x480,
20766                funct7: 0x24,
20767            },
20768            Opcode::VFNCVTFXUW => Inst {
20769                opcode: 0x57,
20770                funct3: 0x1,
20771                rs1: 0x12,
20772                rs2: 0x0,
20773                csr: 0x480,
20774                funct7: 0x24,
20775            },
20776            Opcode::VFNCVTRODFFW => Inst {
20777                opcode: 0x57,
20778                funct3: 0x1,
20779                rs1: 0x15,
20780                rs2: 0x0,
20781                csr: 0x480,
20782                funct7: 0x24,
20783            },
20784            Opcode::VFNCVTRTZXFW => Inst {
20785                opcode: 0x57,
20786                funct3: 0x1,
20787                rs1: 0x17,
20788                rs2: 0x0,
20789                csr: 0x480,
20790                funct7: 0x24,
20791            },
20792            Opcode::VFNCVTRTZXUFW => Inst {
20793                opcode: 0x57,
20794                funct3: 0x1,
20795                rs1: 0x16,
20796                rs2: 0x0,
20797                csr: 0x480,
20798                funct7: 0x24,
20799            },
20800            Opcode::VFNCVTXFW => Inst {
20801                opcode: 0x57,
20802                funct3: 0x1,
20803                rs1: 0x11,
20804                rs2: 0x0,
20805                csr: 0x480,
20806                funct7: 0x24,
20807            },
20808            Opcode::VFNCVTXUFW => Inst {
20809                opcode: 0x57,
20810                funct3: 0x1,
20811                rs1: 0x10,
20812                rs2: 0x0,
20813                csr: 0x480,
20814                funct7: 0x24,
20815            },
20816            Opcode::VFNMACCVF => Inst {
20817                opcode: 0x57,
20818                funct3: 0x5,
20819                rs1: 0x0,
20820                rs2: 0x0,
20821                csr: 0xb40,
20822                funct7: 0x5a,
20823            },
20824            Opcode::VFNMACCVV => Inst {
20825                opcode: 0x57,
20826                funct3: 0x1,
20827                rs1: 0x0,
20828                rs2: 0x0,
20829                csr: 0xb40,
20830                funct7: 0x5a,
20831            },
20832            Opcode::VFNMADDVF => Inst {
20833                opcode: 0x57,
20834                funct3: 0x5,
20835                rs1: 0x0,
20836                rs2: 0x0,
20837                csr: 0xa40,
20838                funct7: 0x52,
20839            },
20840            Opcode::VFNMADDVV => Inst {
20841                opcode: 0x57,
20842                funct3: 0x1,
20843                rs1: 0x0,
20844                rs2: 0x0,
20845                csr: 0xa40,
20846                funct7: 0x52,
20847            },
20848            Opcode::VFNMSACVF => Inst {
20849                opcode: 0x57,
20850                funct3: 0x5,
20851                rs1: 0x0,
20852                rs2: 0x0,
20853                csr: 0xbc0,
20854                funct7: 0x5e,
20855            },
20856            Opcode::VFNMSACVV => Inst {
20857                opcode: 0x57,
20858                funct3: 0x1,
20859                rs1: 0x0,
20860                rs2: 0x0,
20861                csr: 0xbc0,
20862                funct7: 0x5e,
20863            },
20864            Opcode::VFNMSUBVF => Inst {
20865                opcode: 0x57,
20866                funct3: 0x5,
20867                rs1: 0x0,
20868                rs2: 0x0,
20869                csr: 0xac0,
20870                funct7: 0x56,
20871            },
20872            Opcode::VFNMSUBVV => Inst {
20873                opcode: 0x57,
20874                funct3: 0x1,
20875                rs1: 0x0,
20876                rs2: 0x0,
20877                csr: 0xac0,
20878                funct7: 0x56,
20879            },
20880            Opcode::VFRDIVVF => Inst {
20881                opcode: 0x57,
20882                funct3: 0x5,
20883                rs1: 0x0,
20884                rs2: 0x0,
20885                csr: 0x840,
20886                funct7: 0x42,
20887            },
20888            Opcode::VFREC7V => Inst {
20889                opcode: 0x57,
20890                funct3: 0x1,
20891                rs1: 0x5,
20892                rs2: 0x0,
20893                csr: 0x4c0,
20894                funct7: 0x26,
20895            },
20896            Opcode::VFREDMAXVS => Inst {
20897                opcode: 0x57,
20898                funct3: 0x1,
20899                rs1: 0x0,
20900                rs2: 0x0,
20901                csr: 0x1c0,
20902                funct7: 0xe,
20903            },
20904            Opcode::VFREDMINVS => Inst {
20905                opcode: 0x57,
20906                funct3: 0x1,
20907                rs1: 0x0,
20908                rs2: 0x0,
20909                csr: 0x140,
20910                funct7: 0xa,
20911            },
20912            Opcode::VFREDOSUMVS => Inst {
20913                opcode: 0x57,
20914                funct3: 0x1,
20915                rs1: 0x0,
20916                rs2: 0x0,
20917                csr: 0xc0,
20918                funct7: 0x6,
20919            },
20920            Opcode::VFREDSUMVS => Inst {
20921                opcode: 0x57,
20922                funct3: 0x1,
20923                rs1: 0x0,
20924                rs2: 0x0,
20925                csr: 0x40,
20926                funct7: 0x2,
20927            },
20928            Opcode::VFREDUSUMVS => Inst {
20929                opcode: 0x57,
20930                funct3: 0x1,
20931                rs1: 0x0,
20932                rs2: 0x0,
20933                csr: 0x40,
20934                funct7: 0x2,
20935            },
20936            Opcode::VFRSQRT7V => Inst {
20937                opcode: 0x57,
20938                funct3: 0x1,
20939                rs1: 0x4,
20940                rs2: 0x0,
20941                csr: 0x4c0,
20942                funct7: 0x26,
20943            },
20944            Opcode::VFRSUBVF => Inst {
20945                opcode: 0x57,
20946                funct3: 0x5,
20947                rs1: 0x0,
20948                rs2: 0x0,
20949                csr: 0x9c0,
20950                funct7: 0x4e,
20951            },
20952            Opcode::VFSGNJVF => Inst {
20953                opcode: 0x57,
20954                funct3: 0x5,
20955                rs1: 0x0,
20956                rs2: 0x0,
20957                csr: 0x200,
20958                funct7: 0x10,
20959            },
20960            Opcode::VFSGNJVV => Inst {
20961                opcode: 0x57,
20962                funct3: 0x1,
20963                rs1: 0x0,
20964                rs2: 0x0,
20965                csr: 0x200,
20966                funct7: 0x10,
20967            },
20968            Opcode::VFSGNJNVF => Inst {
20969                opcode: 0x57,
20970                funct3: 0x5,
20971                rs1: 0x0,
20972                rs2: 0x0,
20973                csr: 0x240,
20974                funct7: 0x12,
20975            },
20976            Opcode::VFSGNJNVV => Inst {
20977                opcode: 0x57,
20978                funct3: 0x1,
20979                rs1: 0x0,
20980                rs2: 0x0,
20981                csr: 0x240,
20982                funct7: 0x12,
20983            },
20984            Opcode::VFSGNJXVF => Inst {
20985                opcode: 0x57,
20986                funct3: 0x5,
20987                rs1: 0x0,
20988                rs2: 0x0,
20989                csr: 0x280,
20990                funct7: 0x14,
20991            },
20992            Opcode::VFSGNJXVV => Inst {
20993                opcode: 0x57,
20994                funct3: 0x1,
20995                rs1: 0x0,
20996                rs2: 0x0,
20997                csr: 0x280,
20998                funct7: 0x14,
20999            },
21000            Opcode::VFSLIDE1DOWNVF => Inst {
21001                opcode: 0x57,
21002                funct3: 0x5,
21003                rs1: 0x0,
21004                rs2: 0x0,
21005                csr: 0x3c0,
21006                funct7: 0x1e,
21007            },
21008            Opcode::VFSLIDE1UPVF => Inst {
21009                opcode: 0x57,
21010                funct3: 0x5,
21011                rs1: 0x0,
21012                rs2: 0x0,
21013                csr: 0x380,
21014                funct7: 0x1c,
21015            },
21016            Opcode::VFSQRTV => Inst {
21017                opcode: 0x57,
21018                funct3: 0x1,
21019                rs1: 0x0,
21020                rs2: 0x0,
21021                csr: 0x4c0,
21022                funct7: 0x26,
21023            },
21024            Opcode::VFSUBVF => Inst {
21025                opcode: 0x57,
21026                funct3: 0x5,
21027                rs1: 0x0,
21028                rs2: 0x0,
21029                csr: 0x80,
21030                funct7: 0x4,
21031            },
21032            Opcode::VFSUBVV => Inst {
21033                opcode: 0x57,
21034                funct3: 0x1,
21035                rs1: 0x0,
21036                rs2: 0x0,
21037                csr: 0x80,
21038                funct7: 0x4,
21039            },
21040            Opcode::VFWADDVF => Inst {
21041                opcode: 0x57,
21042                funct3: 0x5,
21043                rs1: 0x0,
21044                rs2: 0x0,
21045                csr: 0xc00,
21046                funct7: 0x60,
21047            },
21048            Opcode::VFWADDVV => Inst {
21049                opcode: 0x57,
21050                funct3: 0x1,
21051                rs1: 0x0,
21052                rs2: 0x0,
21053                csr: 0xc00,
21054                funct7: 0x60,
21055            },
21056            Opcode::VFWADDWF => Inst {
21057                opcode: 0x57,
21058                funct3: 0x5,
21059                rs1: 0x0,
21060                rs2: 0x0,
21061                csr: 0xd00,
21062                funct7: 0x68,
21063            },
21064            Opcode::VFWADDWV => Inst {
21065                opcode: 0x57,
21066                funct3: 0x1,
21067                rs1: 0x0,
21068                rs2: 0x0,
21069                csr: 0xd00,
21070                funct7: 0x68,
21071            },
21072            Opcode::VFWCVTFFV => Inst {
21073                opcode: 0x57,
21074                funct3: 0x1,
21075                rs1: 0xc,
21076                rs2: 0x0,
21077                csr: 0x480,
21078                funct7: 0x24,
21079            },
21080            Opcode::VFWCVTFXV => Inst {
21081                opcode: 0x57,
21082                funct3: 0x1,
21083                rs1: 0xb,
21084                rs2: 0x0,
21085                csr: 0x480,
21086                funct7: 0x24,
21087            },
21088            Opcode::VFWCVTFXUV => Inst {
21089                opcode: 0x57,
21090                funct3: 0x1,
21091                rs1: 0xa,
21092                rs2: 0x0,
21093                csr: 0x480,
21094                funct7: 0x24,
21095            },
21096            Opcode::VFWCVTRTZXFV => Inst {
21097                opcode: 0x57,
21098                funct3: 0x1,
21099                rs1: 0xf,
21100                rs2: 0x0,
21101                csr: 0x480,
21102                funct7: 0x24,
21103            },
21104            Opcode::VFWCVTRTZXUFV => Inst {
21105                opcode: 0x57,
21106                funct3: 0x1,
21107                rs1: 0xe,
21108                rs2: 0x0,
21109                csr: 0x480,
21110                funct7: 0x24,
21111            },
21112            Opcode::VFWCVTXFV => Inst {
21113                opcode: 0x57,
21114                funct3: 0x1,
21115                rs1: 0x9,
21116                rs2: 0x0,
21117                csr: 0x480,
21118                funct7: 0x24,
21119            },
21120            Opcode::VFWCVTXUFV => Inst {
21121                opcode: 0x57,
21122                funct3: 0x1,
21123                rs1: 0x8,
21124                rs2: 0x0,
21125                csr: 0x480,
21126                funct7: 0x24,
21127            },
21128            Opcode::VFWMACCVF => Inst {
21129                opcode: 0x57,
21130                funct3: 0x5,
21131                rs1: 0x0,
21132                rs2: 0x0,
21133                csr: 0xf00,
21134                funct7: 0x78,
21135            },
21136            Opcode::VFWMACCVV => Inst {
21137                opcode: 0x57,
21138                funct3: 0x1,
21139                rs1: 0x0,
21140                rs2: 0x0,
21141                csr: 0xf00,
21142                funct7: 0x78,
21143            },
21144            Opcode::VFWMSACVF => Inst {
21145                opcode: 0x57,
21146                funct3: 0x5,
21147                rs1: 0x0,
21148                rs2: 0x0,
21149                csr: 0xf80,
21150                funct7: 0x7c,
21151            },
21152            Opcode::VFWMSACVV => Inst {
21153                opcode: 0x57,
21154                funct3: 0x1,
21155                rs1: 0x0,
21156                rs2: 0x0,
21157                csr: 0xf80,
21158                funct7: 0x7c,
21159            },
21160            Opcode::VFWMULVF => Inst {
21161                opcode: 0x57,
21162                funct3: 0x5,
21163                rs1: 0x0,
21164                rs2: 0x0,
21165                csr: 0xe00,
21166                funct7: 0x70,
21167            },
21168            Opcode::VFWMULVV => Inst {
21169                opcode: 0x57,
21170                funct3: 0x1,
21171                rs1: 0x0,
21172                rs2: 0x0,
21173                csr: 0xe00,
21174                funct7: 0x70,
21175            },
21176            Opcode::VFWNMACCVF => Inst {
21177                opcode: 0x57,
21178                funct3: 0x5,
21179                rs1: 0x0,
21180                rs2: 0x0,
21181                csr: 0xf40,
21182                funct7: 0x7a,
21183            },
21184            Opcode::VFWNMACCVV => Inst {
21185                opcode: 0x57,
21186                funct3: 0x1,
21187                rs1: 0x0,
21188                rs2: 0x0,
21189                csr: 0xf40,
21190                funct7: 0x7a,
21191            },
21192            Opcode::VFWNMSACVF => Inst {
21193                opcode: 0x57,
21194                funct3: 0x5,
21195                rs1: 0x0,
21196                rs2: 0x0,
21197                csr: 0xfc0,
21198                funct7: 0x7e,
21199            },
21200            Opcode::VFWNMSACVV => Inst {
21201                opcode: 0x57,
21202                funct3: 0x1,
21203                rs1: 0x0,
21204                rs2: 0x0,
21205                csr: 0xfc0,
21206                funct7: 0x7e,
21207            },
21208            Opcode::VFWREDOSUMVS => Inst {
21209                opcode: 0x57,
21210                funct3: 0x1,
21211                rs1: 0x0,
21212                rs2: 0x0,
21213                csr: 0xcc0,
21214                funct7: 0x66,
21215            },
21216            Opcode::VFWREDSUMVS => Inst {
21217                opcode: 0x57,
21218                funct3: 0x1,
21219                rs1: 0x0,
21220                rs2: 0x0,
21221                csr: 0xc40,
21222                funct7: 0x62,
21223            },
21224            Opcode::VFWREDUSUMVS => Inst {
21225                opcode: 0x57,
21226                funct3: 0x1,
21227                rs1: 0x0,
21228                rs2: 0x0,
21229                csr: 0xc40,
21230                funct7: 0x62,
21231            },
21232            Opcode::VFWSUBVF => Inst {
21233                opcode: 0x57,
21234                funct3: 0x5,
21235                rs1: 0x0,
21236                rs2: 0x0,
21237                csr: 0xc80,
21238                funct7: 0x64,
21239            },
21240            Opcode::VFWSUBVV => Inst {
21241                opcode: 0x57,
21242                funct3: 0x1,
21243                rs1: 0x0,
21244                rs2: 0x0,
21245                csr: 0xc80,
21246                funct7: 0x64,
21247            },
21248            Opcode::VFWSUBWF => Inst {
21249                opcode: 0x57,
21250                funct3: 0x5,
21251                rs1: 0x0,
21252                rs2: 0x0,
21253                csr: 0xd80,
21254                funct7: 0x6c,
21255            },
21256            Opcode::VFWSUBWV => Inst {
21257                opcode: 0x57,
21258                funct3: 0x1,
21259                rs1: 0x0,
21260                rs2: 0x0,
21261                csr: 0xd80,
21262                funct7: 0x6c,
21263            },
21264            Opcode::VGHSHVV => Inst {
21265                opcode: 0x77,
21266                funct3: 0x2,
21267                rs1: 0x0,
21268                rs2: 0x0,
21269                csr: 0xb20,
21270                funct7: 0x59,
21271            },
21272            Opcode::VGMULVV => Inst {
21273                opcode: 0x77,
21274                funct3: 0x2,
21275                rs1: 0x11,
21276                rs2: 0x0,
21277                csr: 0xa20,
21278                funct7: 0x51,
21279            },
21280            Opcode::VIDV => Inst {
21281                opcode: 0x57,
21282                funct3: 0x2,
21283                rs1: 0x11,
21284                rs2: 0x0,
21285                csr: 0x500,
21286                funct7: 0x28,
21287            },
21288            Opcode::VIOTAM => Inst {
21289                opcode: 0x57,
21290                funct3: 0x2,
21291                rs1: 0x10,
21292                rs2: 0x0,
21293                csr: 0x500,
21294                funct7: 0x28,
21295            },
21296            Opcode::VL1RV => Inst {
21297                opcode: 0x7,
21298                funct3: 0x0,
21299                rs1: 0x0,
21300                rs2: 0x8,
21301                csr: 0x28,
21302                funct7: 0x1,
21303            },
21304            Opcode::VL1RE16V => Inst {
21305                opcode: 0x7,
21306                funct3: 0x5,
21307                rs1: 0x0,
21308                rs2: 0x8,
21309                csr: 0x28,
21310                funct7: 0x1,
21311            },
21312            Opcode::VL1RE32V => Inst {
21313                opcode: 0x7,
21314                funct3: 0x6,
21315                rs1: 0x0,
21316                rs2: 0x8,
21317                csr: 0x28,
21318                funct7: 0x1,
21319            },
21320            Opcode::VL1RE64V => Inst {
21321                opcode: 0x7,
21322                funct3: 0x7,
21323                rs1: 0x0,
21324                rs2: 0x8,
21325                csr: 0x28,
21326                funct7: 0x1,
21327            },
21328            Opcode::VL1RE8V => Inst {
21329                opcode: 0x7,
21330                funct3: 0x0,
21331                rs1: 0x0,
21332                rs2: 0x8,
21333                csr: 0x28,
21334                funct7: 0x1,
21335            },
21336            Opcode::VL2RV => Inst {
21337                opcode: 0x7,
21338                funct3: 0x0,
21339                rs1: 0x0,
21340                rs2: 0x8,
21341                csr: 0x228,
21342                funct7: 0x11,
21343            },
21344            Opcode::VL2RE16V => Inst {
21345                opcode: 0x7,
21346                funct3: 0x5,
21347                rs1: 0x0,
21348                rs2: 0x8,
21349                csr: 0x228,
21350                funct7: 0x11,
21351            },
21352            Opcode::VL2RE32V => Inst {
21353                opcode: 0x7,
21354                funct3: 0x6,
21355                rs1: 0x0,
21356                rs2: 0x8,
21357                csr: 0x228,
21358                funct7: 0x11,
21359            },
21360            Opcode::VL2RE64V => Inst {
21361                opcode: 0x7,
21362                funct3: 0x7,
21363                rs1: 0x0,
21364                rs2: 0x8,
21365                csr: 0x228,
21366                funct7: 0x11,
21367            },
21368            Opcode::VL2RE8V => Inst {
21369                opcode: 0x7,
21370                funct3: 0x0,
21371                rs1: 0x0,
21372                rs2: 0x8,
21373                csr: 0x228,
21374                funct7: 0x11,
21375            },
21376            Opcode::VL4RV => Inst {
21377                opcode: 0x7,
21378                funct3: 0x0,
21379                rs1: 0x0,
21380                rs2: 0x8,
21381                csr: 0x628,
21382                funct7: 0x31,
21383            },
21384            Opcode::VL4RE16V => Inst {
21385                opcode: 0x7,
21386                funct3: 0x5,
21387                rs1: 0x0,
21388                rs2: 0x8,
21389                csr: 0x628,
21390                funct7: 0x31,
21391            },
21392            Opcode::VL4RE32V => Inst {
21393                opcode: 0x7,
21394                funct3: 0x6,
21395                rs1: 0x0,
21396                rs2: 0x8,
21397                csr: 0x628,
21398                funct7: 0x31,
21399            },
21400            Opcode::VL4RE64V => Inst {
21401                opcode: 0x7,
21402                funct3: 0x7,
21403                rs1: 0x0,
21404                rs2: 0x8,
21405                csr: 0x628,
21406                funct7: 0x31,
21407            },
21408            Opcode::VL4RE8V => Inst {
21409                opcode: 0x7,
21410                funct3: 0x0,
21411                rs1: 0x0,
21412                rs2: 0x8,
21413                csr: 0x628,
21414                funct7: 0x31,
21415            },
21416            Opcode::VL8RV => Inst {
21417                opcode: 0x7,
21418                funct3: 0x0,
21419                rs1: 0x0,
21420                rs2: 0x8,
21421                csr: 0xe28,
21422                funct7: 0x71,
21423            },
21424            Opcode::VL8RE16V => Inst {
21425                opcode: 0x7,
21426                funct3: 0x5,
21427                rs1: 0x0,
21428                rs2: 0x8,
21429                csr: 0xe28,
21430                funct7: 0x71,
21431            },
21432            Opcode::VL8RE32V => Inst {
21433                opcode: 0x7,
21434                funct3: 0x6,
21435                rs1: 0x0,
21436                rs2: 0x8,
21437                csr: 0xe28,
21438                funct7: 0x71,
21439            },
21440            Opcode::VL8RE64V => Inst {
21441                opcode: 0x7,
21442                funct3: 0x7,
21443                rs1: 0x0,
21444                rs2: 0x8,
21445                csr: 0xe28,
21446                funct7: 0x71,
21447            },
21448            Opcode::VL8RE8V => Inst {
21449                opcode: 0x7,
21450                funct3: 0x0,
21451                rs1: 0x0,
21452                rs2: 0x8,
21453                csr: 0xe28,
21454                funct7: 0x71,
21455            },
21456            Opcode::VLE16V => Inst {
21457                opcode: 0x7,
21458                funct3: 0x5,
21459                rs1: 0x0,
21460                rs2: 0x0,
21461                csr: 0x0,
21462                funct7: 0x0,
21463            },
21464            Opcode::VLE16FFV => Inst {
21465                opcode: 0x7,
21466                funct3: 0x5,
21467                rs1: 0x0,
21468                rs2: 0x10,
21469                csr: 0x10,
21470                funct7: 0x0,
21471            },
21472            Opcode::VLE1V => Inst {
21473                opcode: 0x7,
21474                funct3: 0x0,
21475                rs1: 0x0,
21476                rs2: 0xb,
21477                csr: 0x2b,
21478                funct7: 0x1,
21479            },
21480            Opcode::VLE32V => Inst {
21481                opcode: 0x7,
21482                funct3: 0x6,
21483                rs1: 0x0,
21484                rs2: 0x0,
21485                csr: 0x0,
21486                funct7: 0x0,
21487            },
21488            Opcode::VLE32FFV => Inst {
21489                opcode: 0x7,
21490                funct3: 0x6,
21491                rs1: 0x0,
21492                rs2: 0x10,
21493                csr: 0x10,
21494                funct7: 0x0,
21495            },
21496            Opcode::VLE64V => Inst {
21497                opcode: 0x7,
21498                funct3: 0x7,
21499                rs1: 0x0,
21500                rs2: 0x0,
21501                csr: 0x0,
21502                funct7: 0x0,
21503            },
21504            Opcode::VLE64FFV => Inst {
21505                opcode: 0x7,
21506                funct3: 0x7,
21507                rs1: 0x0,
21508                rs2: 0x10,
21509                csr: 0x10,
21510                funct7: 0x0,
21511            },
21512            Opcode::VLE8V => Inst {
21513                opcode: 0x7,
21514                funct3: 0x0,
21515                rs1: 0x0,
21516                rs2: 0x0,
21517                csr: 0x0,
21518                funct7: 0x0,
21519            },
21520            Opcode::VLE8FFV => Inst {
21521                opcode: 0x7,
21522                funct3: 0x0,
21523                rs1: 0x0,
21524                rs2: 0x10,
21525                csr: 0x10,
21526                funct7: 0x0,
21527            },
21528            Opcode::VLMV => Inst {
21529                opcode: 0x7,
21530                funct3: 0x0,
21531                rs1: 0x0,
21532                rs2: 0xb,
21533                csr: 0x2b,
21534                funct7: 0x1,
21535            },
21536            Opcode::VLOXEI16V => Inst {
21537                opcode: 0x7,
21538                funct3: 0x5,
21539                rs1: 0x0,
21540                rs2: 0x0,
21541                csr: 0xc0,
21542                funct7: 0x6,
21543            },
21544            Opcode::VLOXEI32V => Inst {
21545                opcode: 0x7,
21546                funct3: 0x6,
21547                rs1: 0x0,
21548                rs2: 0x0,
21549                csr: 0xc0,
21550                funct7: 0x6,
21551            },
21552            Opcode::VLOXEI64V => Inst {
21553                opcode: 0x7,
21554                funct3: 0x7,
21555                rs1: 0x0,
21556                rs2: 0x0,
21557                csr: 0xc0,
21558                funct7: 0x6,
21559            },
21560            Opcode::VLOXEI8V => Inst {
21561                opcode: 0x7,
21562                funct3: 0x0,
21563                rs1: 0x0,
21564                rs2: 0x0,
21565                csr: 0xc0,
21566                funct7: 0x6,
21567            },
21568            Opcode::VLSE16V => Inst {
21569                opcode: 0x7,
21570                funct3: 0x5,
21571                rs1: 0x0,
21572                rs2: 0x0,
21573                csr: 0x80,
21574                funct7: 0x4,
21575            },
21576            Opcode::VLSE32V => Inst {
21577                opcode: 0x7,
21578                funct3: 0x6,
21579                rs1: 0x0,
21580                rs2: 0x0,
21581                csr: 0x80,
21582                funct7: 0x4,
21583            },
21584            Opcode::VLSE64V => Inst {
21585                opcode: 0x7,
21586                funct3: 0x7,
21587                rs1: 0x0,
21588                rs2: 0x0,
21589                csr: 0x80,
21590                funct7: 0x4,
21591            },
21592            Opcode::VLSE8V => Inst {
21593                opcode: 0x7,
21594                funct3: 0x0,
21595                rs1: 0x0,
21596                rs2: 0x0,
21597                csr: 0x80,
21598                funct7: 0x4,
21599            },
21600            Opcode::VLUXEI16V => Inst {
21601                opcode: 0x7,
21602                funct3: 0x5,
21603                rs1: 0x0,
21604                rs2: 0x0,
21605                csr: 0x40,
21606                funct7: 0x2,
21607            },
21608            Opcode::VLUXEI32V => Inst {
21609                opcode: 0x7,
21610                funct3: 0x6,
21611                rs1: 0x0,
21612                rs2: 0x0,
21613                csr: 0x40,
21614                funct7: 0x2,
21615            },
21616            Opcode::VLUXEI64V => Inst {
21617                opcode: 0x7,
21618                funct3: 0x7,
21619                rs1: 0x0,
21620                rs2: 0x0,
21621                csr: 0x40,
21622                funct7: 0x2,
21623            },
21624            Opcode::VLUXEI8V => Inst {
21625                opcode: 0x7,
21626                funct3: 0x0,
21627                rs1: 0x0,
21628                rs2: 0x0,
21629                csr: 0x40,
21630                funct7: 0x2,
21631            },
21632            Opcode::VMACCVV => Inst {
21633                opcode: 0x57,
21634                funct3: 0x2,
21635                rs1: 0x0,
21636                rs2: 0x0,
21637                csr: 0xb40,
21638                funct7: 0x5a,
21639            },
21640            Opcode::VMACCVX => Inst {
21641                opcode: 0x57,
21642                funct3: 0x6,
21643                rs1: 0x0,
21644                rs2: 0x0,
21645                csr: 0xb40,
21646                funct7: 0x5a,
21647            },
21648            Opcode::VMADCVI => Inst {
21649                opcode: 0x57,
21650                funct3: 0x3,
21651                rs1: 0x0,
21652                rs2: 0x0,
21653                csr: 0x460,
21654                funct7: 0x23,
21655            },
21656            Opcode::VMADCVIM => Inst {
21657                opcode: 0x57,
21658                funct3: 0x3,
21659                rs1: 0x0,
21660                rs2: 0x0,
21661                csr: 0x440,
21662                funct7: 0x22,
21663            },
21664            Opcode::VMADCVV => Inst {
21665                opcode: 0x57,
21666                funct3: 0x0,
21667                rs1: 0x0,
21668                rs2: 0x0,
21669                csr: 0x460,
21670                funct7: 0x23,
21671            },
21672            Opcode::VMADCVVM => Inst {
21673                opcode: 0x57,
21674                funct3: 0x0,
21675                rs1: 0x0,
21676                rs2: 0x0,
21677                csr: 0x440,
21678                funct7: 0x22,
21679            },
21680            Opcode::VMADCVX => Inst {
21681                opcode: 0x57,
21682                funct3: 0x4,
21683                rs1: 0x0,
21684                rs2: 0x0,
21685                csr: 0x460,
21686                funct7: 0x23,
21687            },
21688            Opcode::VMADCVXM => Inst {
21689                opcode: 0x57,
21690                funct3: 0x4,
21691                rs1: 0x0,
21692                rs2: 0x0,
21693                csr: 0x440,
21694                funct7: 0x22,
21695            },
21696            Opcode::VMADDVV => Inst {
21697                opcode: 0x57,
21698                funct3: 0x2,
21699                rs1: 0x0,
21700                rs2: 0x0,
21701                csr: 0xa40,
21702                funct7: 0x52,
21703            },
21704            Opcode::VMADDVX => Inst {
21705                opcode: 0x57,
21706                funct3: 0x6,
21707                rs1: 0x0,
21708                rs2: 0x0,
21709                csr: 0xa40,
21710                funct7: 0x52,
21711            },
21712            Opcode::VMANDMM => Inst {
21713                opcode: 0x57,
21714                funct3: 0x2,
21715                rs1: 0x0,
21716                rs2: 0x0,
21717                csr: 0x660,
21718                funct7: 0x33,
21719            },
21720            Opcode::VMANDNMM => Inst {
21721                opcode: 0x57,
21722                funct3: 0x2,
21723                rs1: 0x0,
21724                rs2: 0x0,
21725                csr: 0x620,
21726                funct7: 0x31,
21727            },
21728            Opcode::VMANDNOTMM => Inst {
21729                opcode: 0x57,
21730                funct3: 0x2,
21731                rs1: 0x0,
21732                rs2: 0x0,
21733                csr: 0x600,
21734                funct7: 0x30,
21735            },
21736            Opcode::VMAXVV => Inst {
21737                opcode: 0x57,
21738                funct3: 0x0,
21739                rs1: 0x0,
21740                rs2: 0x0,
21741                csr: 0x1c0,
21742                funct7: 0xe,
21743            },
21744            Opcode::VMAXVX => Inst {
21745                opcode: 0x57,
21746                funct3: 0x4,
21747                rs1: 0x0,
21748                rs2: 0x0,
21749                csr: 0x1c0,
21750                funct7: 0xe,
21751            },
21752            Opcode::VMAXUVV => Inst {
21753                opcode: 0x57,
21754                funct3: 0x0,
21755                rs1: 0x0,
21756                rs2: 0x0,
21757                csr: 0x180,
21758                funct7: 0xc,
21759            },
21760            Opcode::VMAXUVX => Inst {
21761                opcode: 0x57,
21762                funct3: 0x4,
21763                rs1: 0x0,
21764                rs2: 0x0,
21765                csr: 0x180,
21766                funct7: 0xc,
21767            },
21768            Opcode::VMERGEVIM => Inst {
21769                opcode: 0x57,
21770                funct3: 0x3,
21771                rs1: 0x0,
21772                rs2: 0x0,
21773                csr: 0x5c0,
21774                funct7: 0x2e,
21775            },
21776            Opcode::VMERGEVVM => Inst {
21777                opcode: 0x57,
21778                funct3: 0x0,
21779                rs1: 0x0,
21780                rs2: 0x0,
21781                csr: 0x5c0,
21782                funct7: 0x2e,
21783            },
21784            Opcode::VMERGEVXM => Inst {
21785                opcode: 0x57,
21786                funct3: 0x4,
21787                rs1: 0x0,
21788                rs2: 0x0,
21789                csr: 0x5c0,
21790                funct7: 0x2e,
21791            },
21792            Opcode::VMFEQVF => Inst {
21793                opcode: 0x57,
21794                funct3: 0x5,
21795                rs1: 0x0,
21796                rs2: 0x0,
21797                csr: 0x600,
21798                funct7: 0x30,
21799            },
21800            Opcode::VMFEQVV => Inst {
21801                opcode: 0x57,
21802                funct3: 0x1,
21803                rs1: 0x0,
21804                rs2: 0x0,
21805                csr: 0x600,
21806                funct7: 0x30,
21807            },
21808            Opcode::VMFGEVF => Inst {
21809                opcode: 0x57,
21810                funct3: 0x5,
21811                rs1: 0x0,
21812                rs2: 0x0,
21813                csr: 0x7c0,
21814                funct7: 0x3e,
21815            },
21816            Opcode::VMFGTVF => Inst {
21817                opcode: 0x57,
21818                funct3: 0x5,
21819                rs1: 0x0,
21820                rs2: 0x0,
21821                csr: 0x740,
21822                funct7: 0x3a,
21823            },
21824            Opcode::VMFLEVF => Inst {
21825                opcode: 0x57,
21826                funct3: 0x5,
21827                rs1: 0x0,
21828                rs2: 0x0,
21829                csr: 0x640,
21830                funct7: 0x32,
21831            },
21832            Opcode::VMFLEVV => Inst {
21833                opcode: 0x57,
21834                funct3: 0x1,
21835                rs1: 0x0,
21836                rs2: 0x0,
21837                csr: 0x640,
21838                funct7: 0x32,
21839            },
21840            Opcode::VMFLTVF => Inst {
21841                opcode: 0x57,
21842                funct3: 0x5,
21843                rs1: 0x0,
21844                rs2: 0x0,
21845                csr: 0x6c0,
21846                funct7: 0x36,
21847            },
21848            Opcode::VMFLTVV => Inst {
21849                opcode: 0x57,
21850                funct3: 0x1,
21851                rs1: 0x0,
21852                rs2: 0x0,
21853                csr: 0x6c0,
21854                funct7: 0x36,
21855            },
21856            Opcode::VMFNEVF => Inst {
21857                opcode: 0x57,
21858                funct3: 0x5,
21859                rs1: 0x0,
21860                rs2: 0x0,
21861                csr: 0x700,
21862                funct7: 0x38,
21863            },
21864            Opcode::VMFNEVV => Inst {
21865                opcode: 0x57,
21866                funct3: 0x1,
21867                rs1: 0x0,
21868                rs2: 0x0,
21869                csr: 0x700,
21870                funct7: 0x38,
21871            },
21872            Opcode::VMINVV => Inst {
21873                opcode: 0x57,
21874                funct3: 0x0,
21875                rs1: 0x0,
21876                rs2: 0x0,
21877                csr: 0x140,
21878                funct7: 0xa,
21879            },
21880            Opcode::VMINVX => Inst {
21881                opcode: 0x57,
21882                funct3: 0x4,
21883                rs1: 0x0,
21884                rs2: 0x0,
21885                csr: 0x140,
21886                funct7: 0xa,
21887            },
21888            Opcode::VMINUVV => Inst {
21889                opcode: 0x57,
21890                funct3: 0x0,
21891                rs1: 0x0,
21892                rs2: 0x0,
21893                csr: 0x100,
21894                funct7: 0x8,
21895            },
21896            Opcode::VMINUVX => Inst {
21897                opcode: 0x57,
21898                funct3: 0x4,
21899                rs1: 0x0,
21900                rs2: 0x0,
21901                csr: 0x100,
21902                funct7: 0x8,
21903            },
21904            Opcode::VMNANDMM => Inst {
21905                opcode: 0x57,
21906                funct3: 0x2,
21907                rs1: 0x0,
21908                rs2: 0x0,
21909                csr: 0x760,
21910                funct7: 0x3b,
21911            },
21912            Opcode::VMNORMM => Inst {
21913                opcode: 0x57,
21914                funct3: 0x2,
21915                rs1: 0x0,
21916                rs2: 0x0,
21917                csr: 0x7a0,
21918                funct7: 0x3d,
21919            },
21920            Opcode::VMORMM => Inst {
21921                opcode: 0x57,
21922                funct3: 0x2,
21923                rs1: 0x0,
21924                rs2: 0x0,
21925                csr: 0x6a0,
21926                funct7: 0x35,
21927            },
21928            Opcode::VMORNMM => Inst {
21929                opcode: 0x57,
21930                funct3: 0x2,
21931                rs1: 0x0,
21932                rs2: 0x0,
21933                csr: 0x720,
21934                funct7: 0x39,
21935            },
21936            Opcode::VMORNOTMM => Inst {
21937                opcode: 0x57,
21938                funct3: 0x2,
21939                rs1: 0x0,
21940                rs2: 0x0,
21941                csr: 0x700,
21942                funct7: 0x38,
21943            },
21944            Opcode::VMSBCVV => Inst {
21945                opcode: 0x57,
21946                funct3: 0x0,
21947                rs1: 0x0,
21948                rs2: 0x0,
21949                csr: 0x4e0,
21950                funct7: 0x27,
21951            },
21952            Opcode::VMSBCVVM => Inst {
21953                opcode: 0x57,
21954                funct3: 0x0,
21955                rs1: 0x0,
21956                rs2: 0x0,
21957                csr: 0x4c0,
21958                funct7: 0x26,
21959            },
21960            Opcode::VMSBCVX => Inst {
21961                opcode: 0x57,
21962                funct3: 0x4,
21963                rs1: 0x0,
21964                rs2: 0x0,
21965                csr: 0x4e0,
21966                funct7: 0x27,
21967            },
21968            Opcode::VMSBCVXM => Inst {
21969                opcode: 0x57,
21970                funct3: 0x4,
21971                rs1: 0x0,
21972                rs2: 0x0,
21973                csr: 0x4c0,
21974                funct7: 0x26,
21975            },
21976            Opcode::VMSBFM => Inst {
21977                opcode: 0x57,
21978                funct3: 0x2,
21979                rs1: 0x1,
21980                rs2: 0x0,
21981                csr: 0x500,
21982                funct7: 0x28,
21983            },
21984            Opcode::VMSEQVI => Inst {
21985                opcode: 0x57,
21986                funct3: 0x3,
21987                rs1: 0x0,
21988                rs2: 0x0,
21989                csr: 0x600,
21990                funct7: 0x30,
21991            },
21992            Opcode::VMSEQVV => Inst {
21993                opcode: 0x57,
21994                funct3: 0x0,
21995                rs1: 0x0,
21996                rs2: 0x0,
21997                csr: 0x600,
21998                funct7: 0x30,
21999            },
22000            Opcode::VMSEQVX => Inst {
22001                opcode: 0x57,
22002                funct3: 0x4,
22003                rs1: 0x0,
22004                rs2: 0x0,
22005                csr: 0x600,
22006                funct7: 0x30,
22007            },
22008            Opcode::VMSGTVI => Inst {
22009                opcode: 0x57,
22010                funct3: 0x3,
22011                rs1: 0x0,
22012                rs2: 0x0,
22013                csr: 0x7c0,
22014                funct7: 0x3e,
22015            },
22016            Opcode::VMSGTVX => Inst {
22017                opcode: 0x57,
22018                funct3: 0x4,
22019                rs1: 0x0,
22020                rs2: 0x0,
22021                csr: 0x7c0,
22022                funct7: 0x3e,
22023            },
22024            Opcode::VMSGTUVI => Inst {
22025                opcode: 0x57,
22026                funct3: 0x3,
22027                rs1: 0x0,
22028                rs2: 0x0,
22029                csr: 0x780,
22030                funct7: 0x3c,
22031            },
22032            Opcode::VMSGTUVX => Inst {
22033                opcode: 0x57,
22034                funct3: 0x4,
22035                rs1: 0x0,
22036                rs2: 0x0,
22037                csr: 0x780,
22038                funct7: 0x3c,
22039            },
22040            Opcode::VMSIFM => Inst {
22041                opcode: 0x57,
22042                funct3: 0x2,
22043                rs1: 0x3,
22044                rs2: 0x0,
22045                csr: 0x500,
22046                funct7: 0x28,
22047            },
22048            Opcode::VMSLEVI => Inst {
22049                opcode: 0x57,
22050                funct3: 0x3,
22051                rs1: 0x0,
22052                rs2: 0x0,
22053                csr: 0x740,
22054                funct7: 0x3a,
22055            },
22056            Opcode::VMSLEVV => Inst {
22057                opcode: 0x57,
22058                funct3: 0x0,
22059                rs1: 0x0,
22060                rs2: 0x0,
22061                csr: 0x740,
22062                funct7: 0x3a,
22063            },
22064            Opcode::VMSLEVX => Inst {
22065                opcode: 0x57,
22066                funct3: 0x4,
22067                rs1: 0x0,
22068                rs2: 0x0,
22069                csr: 0x740,
22070                funct7: 0x3a,
22071            },
22072            Opcode::VMSLEUVI => Inst {
22073                opcode: 0x57,
22074                funct3: 0x3,
22075                rs1: 0x0,
22076                rs2: 0x0,
22077                csr: 0x700,
22078                funct7: 0x38,
22079            },
22080            Opcode::VMSLEUVV => Inst {
22081                opcode: 0x57,
22082                funct3: 0x0,
22083                rs1: 0x0,
22084                rs2: 0x0,
22085                csr: 0x700,
22086                funct7: 0x38,
22087            },
22088            Opcode::VMSLEUVX => Inst {
22089                opcode: 0x57,
22090                funct3: 0x4,
22091                rs1: 0x0,
22092                rs2: 0x0,
22093                csr: 0x700,
22094                funct7: 0x38,
22095            },
22096            Opcode::VMSLTVV => Inst {
22097                opcode: 0x57,
22098                funct3: 0x0,
22099                rs1: 0x0,
22100                rs2: 0x0,
22101                csr: 0x6c0,
22102                funct7: 0x36,
22103            },
22104            Opcode::VMSLTVX => Inst {
22105                opcode: 0x57,
22106                funct3: 0x4,
22107                rs1: 0x0,
22108                rs2: 0x0,
22109                csr: 0x6c0,
22110                funct7: 0x36,
22111            },
22112            Opcode::VMSLTUVV => Inst {
22113                opcode: 0x57,
22114                funct3: 0x0,
22115                rs1: 0x0,
22116                rs2: 0x0,
22117                csr: 0x680,
22118                funct7: 0x34,
22119            },
22120            Opcode::VMSLTUVX => Inst {
22121                opcode: 0x57,
22122                funct3: 0x4,
22123                rs1: 0x0,
22124                rs2: 0x0,
22125                csr: 0x680,
22126                funct7: 0x34,
22127            },
22128            Opcode::VMSNEVI => Inst {
22129                opcode: 0x57,
22130                funct3: 0x3,
22131                rs1: 0x0,
22132                rs2: 0x0,
22133                csr: 0x640,
22134                funct7: 0x32,
22135            },
22136            Opcode::VMSNEVV => Inst {
22137                opcode: 0x57,
22138                funct3: 0x0,
22139                rs1: 0x0,
22140                rs2: 0x0,
22141                csr: 0x640,
22142                funct7: 0x32,
22143            },
22144            Opcode::VMSNEVX => Inst {
22145                opcode: 0x57,
22146                funct3: 0x4,
22147                rs1: 0x0,
22148                rs2: 0x0,
22149                csr: 0x640,
22150                funct7: 0x32,
22151            },
22152            Opcode::VMSOFM => Inst {
22153                opcode: 0x57,
22154                funct3: 0x2,
22155                rs1: 0x2,
22156                rs2: 0x0,
22157                csr: 0x500,
22158                funct7: 0x28,
22159            },
22160            Opcode::VMULVV => Inst {
22161                opcode: 0x57,
22162                funct3: 0x2,
22163                rs1: 0x0,
22164                rs2: 0x0,
22165                csr: 0x940,
22166                funct7: 0x4a,
22167            },
22168            Opcode::VMULVX => Inst {
22169                opcode: 0x57,
22170                funct3: 0x6,
22171                rs1: 0x0,
22172                rs2: 0x0,
22173                csr: 0x940,
22174                funct7: 0x4a,
22175            },
22176            Opcode::VMULHVV => Inst {
22177                opcode: 0x57,
22178                funct3: 0x2,
22179                rs1: 0x0,
22180                rs2: 0x0,
22181                csr: 0x9c0,
22182                funct7: 0x4e,
22183            },
22184            Opcode::VMULHVX => Inst {
22185                opcode: 0x57,
22186                funct3: 0x6,
22187                rs1: 0x0,
22188                rs2: 0x0,
22189                csr: 0x9c0,
22190                funct7: 0x4e,
22191            },
22192            Opcode::VMULHSUVV => Inst {
22193                opcode: 0x57,
22194                funct3: 0x2,
22195                rs1: 0x0,
22196                rs2: 0x0,
22197                csr: 0x980,
22198                funct7: 0x4c,
22199            },
22200            Opcode::VMULHSUVX => Inst {
22201                opcode: 0x57,
22202                funct3: 0x6,
22203                rs1: 0x0,
22204                rs2: 0x0,
22205                csr: 0x980,
22206                funct7: 0x4c,
22207            },
22208            Opcode::VMULHUVV => Inst {
22209                opcode: 0x57,
22210                funct3: 0x2,
22211                rs1: 0x0,
22212                rs2: 0x0,
22213                csr: 0x900,
22214                funct7: 0x48,
22215            },
22216            Opcode::VMULHUVX => Inst {
22217                opcode: 0x57,
22218                funct3: 0x6,
22219                rs1: 0x0,
22220                rs2: 0x0,
22221                csr: 0x900,
22222                funct7: 0x48,
22223            },
22224            Opcode::VMV1RV => Inst {
22225                opcode: 0x57,
22226                funct3: 0x3,
22227                rs1: 0x0,
22228                rs2: 0x0,
22229                csr: 0x9e0,
22230                funct7: 0x4f,
22231            },
22232            Opcode::VMV2RV => Inst {
22233                opcode: 0x57,
22234                funct3: 0x3,
22235                rs1: 0x1,
22236                rs2: 0x0,
22237                csr: 0x9e0,
22238                funct7: 0x4f,
22239            },
22240            Opcode::VMV4RV => Inst {
22241                opcode: 0x57,
22242                funct3: 0x3,
22243                rs1: 0x3,
22244                rs2: 0x0,
22245                csr: 0x9e0,
22246                funct7: 0x4f,
22247            },
22248            Opcode::VMV8RV => Inst {
22249                opcode: 0x57,
22250                funct3: 0x3,
22251                rs1: 0x7,
22252                rs2: 0x0,
22253                csr: 0x9e0,
22254                funct7: 0x4f,
22255            },
22256            Opcode::VMVSX => Inst {
22257                opcode: 0x57,
22258                funct3: 0x6,
22259                rs1: 0x0,
22260                rs2: 0x0,
22261                csr: 0x420,
22262                funct7: 0x21,
22263            },
22264            Opcode::VMVVI => Inst {
22265                opcode: 0x57,
22266                funct3: 0x3,
22267                rs1: 0x0,
22268                rs2: 0x0,
22269                csr: 0x5e0,
22270                funct7: 0x2f,
22271            },
22272            Opcode::VMVVV => Inst {
22273                opcode: 0x57,
22274                funct3: 0x0,
22275                rs1: 0x0,
22276                rs2: 0x0,
22277                csr: 0x5e0,
22278                funct7: 0x2f,
22279            },
22280            Opcode::VMVVX => Inst {
22281                opcode: 0x57,
22282                funct3: 0x4,
22283                rs1: 0x0,
22284                rs2: 0x0,
22285                csr: 0x5e0,
22286                funct7: 0x2f,
22287            },
22288            Opcode::VMVXS => Inst {
22289                opcode: 0x57,
22290                funct3: 0x2,
22291                rs1: 0x0,
22292                rs2: 0x0,
22293                csr: 0x420,
22294                funct7: 0x21,
22295            },
22296            Opcode::VMXNORMM => Inst {
22297                opcode: 0x57,
22298                funct3: 0x2,
22299                rs1: 0x0,
22300                rs2: 0x0,
22301                csr: 0x7e0,
22302                funct7: 0x3f,
22303            },
22304            Opcode::VMXORMM => Inst {
22305                opcode: 0x57,
22306                funct3: 0x2,
22307                rs1: 0x0,
22308                rs2: 0x0,
22309                csr: 0x6e0,
22310                funct7: 0x37,
22311            },
22312            Opcode::VNCLIPWI => Inst {
22313                opcode: 0x57,
22314                funct3: 0x3,
22315                rs1: 0x0,
22316                rs2: 0x0,
22317                csr: 0xbc0,
22318                funct7: 0x5e,
22319            },
22320            Opcode::VNCLIPWV => Inst {
22321                opcode: 0x57,
22322                funct3: 0x0,
22323                rs1: 0x0,
22324                rs2: 0x0,
22325                csr: 0xbc0,
22326                funct7: 0x5e,
22327            },
22328            Opcode::VNCLIPWX => Inst {
22329                opcode: 0x57,
22330                funct3: 0x4,
22331                rs1: 0x0,
22332                rs2: 0x0,
22333                csr: 0xbc0,
22334                funct7: 0x5e,
22335            },
22336            Opcode::VNCLIPUWI => Inst {
22337                opcode: 0x57,
22338                funct3: 0x3,
22339                rs1: 0x0,
22340                rs2: 0x0,
22341                csr: 0xb80,
22342                funct7: 0x5c,
22343            },
22344            Opcode::VNCLIPUWV => Inst {
22345                opcode: 0x57,
22346                funct3: 0x0,
22347                rs1: 0x0,
22348                rs2: 0x0,
22349                csr: 0xb80,
22350                funct7: 0x5c,
22351            },
22352            Opcode::VNCLIPUWX => Inst {
22353                opcode: 0x57,
22354                funct3: 0x4,
22355                rs1: 0x0,
22356                rs2: 0x0,
22357                csr: 0xb80,
22358                funct7: 0x5c,
22359            },
22360            Opcode::VNMSACVV => Inst {
22361                opcode: 0x57,
22362                funct3: 0x2,
22363                rs1: 0x0,
22364                rs2: 0x0,
22365                csr: 0xbc0,
22366                funct7: 0x5e,
22367            },
22368            Opcode::VNMSACVX => Inst {
22369                opcode: 0x57,
22370                funct3: 0x6,
22371                rs1: 0x0,
22372                rs2: 0x0,
22373                csr: 0xbc0,
22374                funct7: 0x5e,
22375            },
22376            Opcode::VNMSUBVV => Inst {
22377                opcode: 0x57,
22378                funct3: 0x2,
22379                rs1: 0x0,
22380                rs2: 0x0,
22381                csr: 0xac0,
22382                funct7: 0x56,
22383            },
22384            Opcode::VNMSUBVX => Inst {
22385                opcode: 0x57,
22386                funct3: 0x6,
22387                rs1: 0x0,
22388                rs2: 0x0,
22389                csr: 0xac0,
22390                funct7: 0x56,
22391            },
22392            Opcode::VNSRAWI => Inst {
22393                opcode: 0x57,
22394                funct3: 0x3,
22395                rs1: 0x0,
22396                rs2: 0x0,
22397                csr: 0xb40,
22398                funct7: 0x5a,
22399            },
22400            Opcode::VNSRAWV => Inst {
22401                opcode: 0x57,
22402                funct3: 0x0,
22403                rs1: 0x0,
22404                rs2: 0x0,
22405                csr: 0xb40,
22406                funct7: 0x5a,
22407            },
22408            Opcode::VNSRAWX => Inst {
22409                opcode: 0x57,
22410                funct3: 0x4,
22411                rs1: 0x0,
22412                rs2: 0x0,
22413                csr: 0xb40,
22414                funct7: 0x5a,
22415            },
22416            Opcode::VNSRLWI => Inst {
22417                opcode: 0x57,
22418                funct3: 0x3,
22419                rs1: 0x0,
22420                rs2: 0x0,
22421                csr: 0xb00,
22422                funct7: 0x58,
22423            },
22424            Opcode::VNSRLWV => Inst {
22425                opcode: 0x57,
22426                funct3: 0x0,
22427                rs1: 0x0,
22428                rs2: 0x0,
22429                csr: 0xb00,
22430                funct7: 0x58,
22431            },
22432            Opcode::VNSRLWX => Inst {
22433                opcode: 0x57,
22434                funct3: 0x4,
22435                rs1: 0x0,
22436                rs2: 0x0,
22437                csr: 0xb00,
22438                funct7: 0x58,
22439            },
22440            Opcode::VORVI => Inst {
22441                opcode: 0x57,
22442                funct3: 0x3,
22443                rs1: 0x0,
22444                rs2: 0x0,
22445                csr: 0x280,
22446                funct7: 0x14,
22447            },
22448            Opcode::VORVV => Inst {
22449                opcode: 0x57,
22450                funct3: 0x0,
22451                rs1: 0x0,
22452                rs2: 0x0,
22453                csr: 0x280,
22454                funct7: 0x14,
22455            },
22456            Opcode::VORVX => Inst {
22457                opcode: 0x57,
22458                funct3: 0x4,
22459                rs1: 0x0,
22460                rs2: 0x0,
22461                csr: 0x280,
22462                funct7: 0x14,
22463            },
22464            Opcode::VPOPCM => Inst {
22465                opcode: 0x57,
22466                funct3: 0x2,
22467                rs1: 0x10,
22468                rs2: 0x0,
22469                csr: 0x400,
22470                funct7: 0x20,
22471            },
22472            Opcode::VREDANDVS => Inst {
22473                opcode: 0x57,
22474                funct3: 0x2,
22475                rs1: 0x0,
22476                rs2: 0x0,
22477                csr: 0x40,
22478                funct7: 0x2,
22479            },
22480            Opcode::VREDMAXVS => Inst {
22481                opcode: 0x57,
22482                funct3: 0x2,
22483                rs1: 0x0,
22484                rs2: 0x0,
22485                csr: 0x1c0,
22486                funct7: 0xe,
22487            },
22488            Opcode::VREDMAXUVS => Inst {
22489                opcode: 0x57,
22490                funct3: 0x2,
22491                rs1: 0x0,
22492                rs2: 0x0,
22493                csr: 0x180,
22494                funct7: 0xc,
22495            },
22496            Opcode::VREDMINVS => Inst {
22497                opcode: 0x57,
22498                funct3: 0x2,
22499                rs1: 0x0,
22500                rs2: 0x0,
22501                csr: 0x140,
22502                funct7: 0xa,
22503            },
22504            Opcode::VREDMINUVS => Inst {
22505                opcode: 0x57,
22506                funct3: 0x2,
22507                rs1: 0x0,
22508                rs2: 0x0,
22509                csr: 0x100,
22510                funct7: 0x8,
22511            },
22512            Opcode::VREDORVS => Inst {
22513                opcode: 0x57,
22514                funct3: 0x2,
22515                rs1: 0x0,
22516                rs2: 0x0,
22517                csr: 0x80,
22518                funct7: 0x4,
22519            },
22520            Opcode::VREDSUMVS => Inst {
22521                opcode: 0x57,
22522                funct3: 0x2,
22523                rs1: 0x0,
22524                rs2: 0x0,
22525                csr: 0x0,
22526                funct7: 0x0,
22527            },
22528            Opcode::VREDXORVS => Inst {
22529                opcode: 0x57,
22530                funct3: 0x2,
22531                rs1: 0x0,
22532                rs2: 0x0,
22533                csr: 0xc0,
22534                funct7: 0x6,
22535            },
22536            Opcode::VREMVV => Inst {
22537                opcode: 0x57,
22538                funct3: 0x2,
22539                rs1: 0x0,
22540                rs2: 0x0,
22541                csr: 0x8c0,
22542                funct7: 0x46,
22543            },
22544            Opcode::VREMVX => Inst {
22545                opcode: 0x57,
22546                funct3: 0x6,
22547                rs1: 0x0,
22548                rs2: 0x0,
22549                csr: 0x8c0,
22550                funct7: 0x46,
22551            },
22552            Opcode::VREMUVV => Inst {
22553                opcode: 0x57,
22554                funct3: 0x2,
22555                rs1: 0x0,
22556                rs2: 0x0,
22557                csr: 0x880,
22558                funct7: 0x44,
22559            },
22560            Opcode::VREMUVX => Inst {
22561                opcode: 0x57,
22562                funct3: 0x6,
22563                rs1: 0x0,
22564                rs2: 0x0,
22565                csr: 0x880,
22566                funct7: 0x44,
22567            },
22568            Opcode::VREV8V => Inst {
22569                opcode: 0x57,
22570                funct3: 0x2,
22571                rs1: 0x9,
22572                rs2: 0x0,
22573                csr: 0x480,
22574                funct7: 0x24,
22575            },
22576            Opcode::VRGATHERVI => Inst {
22577                opcode: 0x57,
22578                funct3: 0x3,
22579                rs1: 0x0,
22580                rs2: 0x0,
22581                csr: 0x300,
22582                funct7: 0x18,
22583            },
22584            Opcode::VRGATHERVV => Inst {
22585                opcode: 0x57,
22586                funct3: 0x0,
22587                rs1: 0x0,
22588                rs2: 0x0,
22589                csr: 0x300,
22590                funct7: 0x18,
22591            },
22592            Opcode::VRGATHERVX => Inst {
22593                opcode: 0x57,
22594                funct3: 0x4,
22595                rs1: 0x0,
22596                rs2: 0x0,
22597                csr: 0x300,
22598                funct7: 0x18,
22599            },
22600            Opcode::VRGATHEREI16VV => Inst {
22601                opcode: 0x57,
22602                funct3: 0x0,
22603                rs1: 0x0,
22604                rs2: 0x0,
22605                csr: 0x380,
22606                funct7: 0x1c,
22607            },
22608            Opcode::VROLVV => Inst {
22609                opcode: 0x57,
22610                funct3: 0x0,
22611                rs1: 0x0,
22612                rs2: 0x0,
22613                csr: 0x540,
22614                funct7: 0x2a,
22615            },
22616            Opcode::VROLVX => Inst {
22617                opcode: 0x57,
22618                funct3: 0x4,
22619                rs1: 0x0,
22620                rs2: 0x0,
22621                csr: 0x540,
22622                funct7: 0x2a,
22623            },
22624            Opcode::VRORVI => Inst {
22625                opcode: 0x57,
22626                funct3: 0x3,
22627                rs1: 0x0,
22628                rs2: 0x0,
22629                csr: 0x500,
22630                funct7: 0x28,
22631            },
22632            Opcode::VRORVV => Inst {
22633                opcode: 0x57,
22634                funct3: 0x0,
22635                rs1: 0x0,
22636                rs2: 0x0,
22637                csr: 0x500,
22638                funct7: 0x28,
22639            },
22640            Opcode::VRORVX => Inst {
22641                opcode: 0x57,
22642                funct3: 0x4,
22643                rs1: 0x0,
22644                rs2: 0x0,
22645                csr: 0x500,
22646                funct7: 0x28,
22647            },
22648            Opcode::VRSUBVI => Inst {
22649                opcode: 0x57,
22650                funct3: 0x3,
22651                rs1: 0x0,
22652                rs2: 0x0,
22653                csr: 0xc0,
22654                funct7: 0x6,
22655            },
22656            Opcode::VRSUBVX => Inst {
22657                opcode: 0x57,
22658                funct3: 0x4,
22659                rs1: 0x0,
22660                rs2: 0x0,
22661                csr: 0xc0,
22662                funct7: 0x6,
22663            },
22664            Opcode::VS1RV => Inst {
22665                opcode: 0x27,
22666                funct3: 0x0,
22667                rs1: 0x0,
22668                rs2: 0x8,
22669                csr: 0x28,
22670                funct7: 0x1,
22671            },
22672            Opcode::VS2RV => Inst {
22673                opcode: 0x27,
22674                funct3: 0x0,
22675                rs1: 0x0,
22676                rs2: 0x8,
22677                csr: 0x228,
22678                funct7: 0x11,
22679            },
22680            Opcode::VS4RV => Inst {
22681                opcode: 0x27,
22682                funct3: 0x0,
22683                rs1: 0x0,
22684                rs2: 0x8,
22685                csr: 0x628,
22686                funct7: 0x31,
22687            },
22688            Opcode::VS8RV => Inst {
22689                opcode: 0x27,
22690                funct3: 0x0,
22691                rs1: 0x0,
22692                rs2: 0x8,
22693                csr: 0xe28,
22694                funct7: 0x71,
22695            },
22696            Opcode::VSADDVI => Inst {
22697                opcode: 0x57,
22698                funct3: 0x3,
22699                rs1: 0x0,
22700                rs2: 0x0,
22701                csr: 0x840,
22702                funct7: 0x42,
22703            },
22704            Opcode::VSADDVV => Inst {
22705                opcode: 0x57,
22706                funct3: 0x0,
22707                rs1: 0x0,
22708                rs2: 0x0,
22709                csr: 0x840,
22710                funct7: 0x42,
22711            },
22712            Opcode::VSADDVX => Inst {
22713                opcode: 0x57,
22714                funct3: 0x4,
22715                rs1: 0x0,
22716                rs2: 0x0,
22717                csr: 0x840,
22718                funct7: 0x42,
22719            },
22720            Opcode::VSADDUVI => Inst {
22721                opcode: 0x57,
22722                funct3: 0x3,
22723                rs1: 0x0,
22724                rs2: 0x0,
22725                csr: 0x800,
22726                funct7: 0x40,
22727            },
22728            Opcode::VSADDUVV => Inst {
22729                opcode: 0x57,
22730                funct3: 0x0,
22731                rs1: 0x0,
22732                rs2: 0x0,
22733                csr: 0x800,
22734                funct7: 0x40,
22735            },
22736            Opcode::VSADDUVX => Inst {
22737                opcode: 0x57,
22738                funct3: 0x4,
22739                rs1: 0x0,
22740                rs2: 0x0,
22741                csr: 0x800,
22742                funct7: 0x40,
22743            },
22744            Opcode::VSBCVVM => Inst {
22745                opcode: 0x57,
22746                funct3: 0x0,
22747                rs1: 0x0,
22748                rs2: 0x0,
22749                csr: 0x480,
22750                funct7: 0x24,
22751            },
22752            Opcode::VSBCVXM => Inst {
22753                opcode: 0x57,
22754                funct3: 0x4,
22755                rs1: 0x0,
22756                rs2: 0x0,
22757                csr: 0x480,
22758                funct7: 0x24,
22759            },
22760            Opcode::VSE16V => Inst {
22761                opcode: 0x27,
22762                funct3: 0x5,
22763                rs1: 0x0,
22764                rs2: 0x0,
22765                csr: 0x0,
22766                funct7: 0x0,
22767            },
22768            Opcode::VSE1V => Inst {
22769                opcode: 0x27,
22770                funct3: 0x0,
22771                rs1: 0x0,
22772                rs2: 0xb,
22773                csr: 0x2b,
22774                funct7: 0x1,
22775            },
22776            Opcode::VSE32V => Inst {
22777                opcode: 0x27,
22778                funct3: 0x6,
22779                rs1: 0x0,
22780                rs2: 0x0,
22781                csr: 0x0,
22782                funct7: 0x0,
22783            },
22784            Opcode::VSE64V => Inst {
22785                opcode: 0x27,
22786                funct3: 0x7,
22787                rs1: 0x0,
22788                rs2: 0x0,
22789                csr: 0x0,
22790                funct7: 0x0,
22791            },
22792            Opcode::VSE8V => Inst {
22793                opcode: 0x27,
22794                funct3: 0x0,
22795                rs1: 0x0,
22796                rs2: 0x0,
22797                csr: 0x0,
22798                funct7: 0x0,
22799            },
22800            Opcode::VSETIVLI => Inst {
22801                opcode: 0x57,
22802                funct3: 0x7,
22803                rs1: 0x0,
22804                rs2: 0x0,
22805                csr: 0xc00,
22806                funct7: 0x60,
22807            },
22808            Opcode::VSETVL => Inst {
22809                opcode: 0x57,
22810                funct3: 0x7,
22811                rs1: 0x0,
22812                rs2: 0x0,
22813                csr: 0x800,
22814                funct7: 0x40,
22815            },
22816            Opcode::VSETVLI => Inst {
22817                opcode: 0x57,
22818                funct3: 0x7,
22819                rs1: 0x0,
22820                rs2: 0x0,
22821                csr: 0x0,
22822                funct7: 0x0,
22823            },
22824            Opcode::VSEXTVF2 => Inst {
22825                opcode: 0x57,
22826                funct3: 0x2,
22827                rs1: 0x7,
22828                rs2: 0x0,
22829                csr: 0x480,
22830                funct7: 0x24,
22831            },
22832            Opcode::VSEXTVF4 => Inst {
22833                opcode: 0x57,
22834                funct3: 0x2,
22835                rs1: 0x5,
22836                rs2: 0x0,
22837                csr: 0x480,
22838                funct7: 0x24,
22839            },
22840            Opcode::VSEXTVF8 => Inst {
22841                opcode: 0x57,
22842                funct3: 0x2,
22843                rs1: 0x3,
22844                rs2: 0x0,
22845                csr: 0x480,
22846                funct7: 0x24,
22847            },
22848            Opcode::VSHA2CHVV => Inst {
22849                opcode: 0x77,
22850                funct3: 0x2,
22851                rs1: 0x0,
22852                rs2: 0x0,
22853                csr: 0xba0,
22854                funct7: 0x5d,
22855            },
22856            Opcode::VSHA2CLVV => Inst {
22857                opcode: 0x77,
22858                funct3: 0x2,
22859                rs1: 0x0,
22860                rs2: 0x0,
22861                csr: 0xbe0,
22862                funct7: 0x5f,
22863            },
22864            Opcode::VSHA2MSVV => Inst {
22865                opcode: 0x77,
22866                funct3: 0x2,
22867                rs1: 0x0,
22868                rs2: 0x0,
22869                csr: 0xb60,
22870                funct7: 0x5b,
22871            },
22872            Opcode::VSLIDE1DOWNVX => Inst {
22873                opcode: 0x57,
22874                funct3: 0x6,
22875                rs1: 0x0,
22876                rs2: 0x0,
22877                csr: 0x3c0,
22878                funct7: 0x1e,
22879            },
22880            Opcode::VSLIDE1UPVX => Inst {
22881                opcode: 0x57,
22882                funct3: 0x6,
22883                rs1: 0x0,
22884                rs2: 0x0,
22885                csr: 0x380,
22886                funct7: 0x1c,
22887            },
22888            Opcode::VSLIDEDOWNVI => Inst {
22889                opcode: 0x57,
22890                funct3: 0x3,
22891                rs1: 0x0,
22892                rs2: 0x0,
22893                csr: 0x3c0,
22894                funct7: 0x1e,
22895            },
22896            Opcode::VSLIDEDOWNVX => Inst {
22897                opcode: 0x57,
22898                funct3: 0x4,
22899                rs1: 0x0,
22900                rs2: 0x0,
22901                csr: 0x3c0,
22902                funct7: 0x1e,
22903            },
22904            Opcode::VSLIDEUPVI => Inst {
22905                opcode: 0x57,
22906                funct3: 0x3,
22907                rs1: 0x0,
22908                rs2: 0x0,
22909                csr: 0x380,
22910                funct7: 0x1c,
22911            },
22912            Opcode::VSLIDEUPVX => Inst {
22913                opcode: 0x57,
22914                funct3: 0x4,
22915                rs1: 0x0,
22916                rs2: 0x0,
22917                csr: 0x380,
22918                funct7: 0x1c,
22919            },
22920            Opcode::VSLLVI => Inst {
22921                opcode: 0x57,
22922                funct3: 0x3,
22923                rs1: 0x0,
22924                rs2: 0x0,
22925                csr: 0x940,
22926                funct7: 0x4a,
22927            },
22928            Opcode::VSLLVV => Inst {
22929                opcode: 0x57,
22930                funct3: 0x0,
22931                rs1: 0x0,
22932                rs2: 0x0,
22933                csr: 0x940,
22934                funct7: 0x4a,
22935            },
22936            Opcode::VSLLVX => Inst {
22937                opcode: 0x57,
22938                funct3: 0x4,
22939                rs1: 0x0,
22940                rs2: 0x0,
22941                csr: 0x940,
22942                funct7: 0x4a,
22943            },
22944            Opcode::VSM3CVI => Inst {
22945                opcode: 0x77,
22946                funct3: 0x2,
22947                rs1: 0x0,
22948                rs2: 0x0,
22949                csr: 0xae0,
22950                funct7: 0x57,
22951            },
22952            Opcode::VSM3MEVV => Inst {
22953                opcode: 0x77,
22954                funct3: 0x2,
22955                rs1: 0x0,
22956                rs2: 0x0,
22957                csr: 0x820,
22958                funct7: 0x41,
22959            },
22960            Opcode::VSM4KVI => Inst {
22961                opcode: 0x77,
22962                funct3: 0x2,
22963                rs1: 0x0,
22964                rs2: 0x0,
22965                csr: 0x860,
22966                funct7: 0x43,
22967            },
22968            Opcode::VSM4RVS => Inst {
22969                opcode: 0x77,
22970                funct3: 0x2,
22971                rs1: 0x10,
22972                rs2: 0x0,
22973                csr: 0xa60,
22974                funct7: 0x53,
22975            },
22976            Opcode::VSM4RVV => Inst {
22977                opcode: 0x77,
22978                funct3: 0x2,
22979                rs1: 0x10,
22980                rs2: 0x0,
22981                csr: 0xa20,
22982                funct7: 0x51,
22983            },
22984            Opcode::VSMV => Inst {
22985                opcode: 0x27,
22986                funct3: 0x0,
22987                rs1: 0x0,
22988                rs2: 0xb,
22989                csr: 0x2b,
22990                funct7: 0x1,
22991            },
22992            Opcode::VSMULVV => Inst {
22993                opcode: 0x57,
22994                funct3: 0x0,
22995                rs1: 0x0,
22996                rs2: 0x0,
22997                csr: 0x9c0,
22998                funct7: 0x4e,
22999            },
23000            Opcode::VSMULVX => Inst {
23001                opcode: 0x57,
23002                funct3: 0x4,
23003                rs1: 0x0,
23004                rs2: 0x0,
23005                csr: 0x9c0,
23006                funct7: 0x4e,
23007            },
23008            Opcode::VSOXEI16V => Inst {
23009                opcode: 0x27,
23010                funct3: 0x5,
23011                rs1: 0x0,
23012                rs2: 0x0,
23013                csr: 0xc0,
23014                funct7: 0x6,
23015            },
23016            Opcode::VSOXEI32V => Inst {
23017                opcode: 0x27,
23018                funct3: 0x6,
23019                rs1: 0x0,
23020                rs2: 0x0,
23021                csr: 0xc0,
23022                funct7: 0x6,
23023            },
23024            Opcode::VSOXEI64V => Inst {
23025                opcode: 0x27,
23026                funct3: 0x7,
23027                rs1: 0x0,
23028                rs2: 0x0,
23029                csr: 0xc0,
23030                funct7: 0x6,
23031            },
23032            Opcode::VSOXEI8V => Inst {
23033                opcode: 0x27,
23034                funct3: 0x0,
23035                rs1: 0x0,
23036                rs2: 0x0,
23037                csr: 0xc0,
23038                funct7: 0x6,
23039            },
23040            Opcode::VSRAVI => Inst {
23041                opcode: 0x57,
23042                funct3: 0x3,
23043                rs1: 0x0,
23044                rs2: 0x0,
23045                csr: 0xa40,
23046                funct7: 0x52,
23047            },
23048            Opcode::VSRAVV => Inst {
23049                opcode: 0x57,
23050                funct3: 0x0,
23051                rs1: 0x0,
23052                rs2: 0x0,
23053                csr: 0xa40,
23054                funct7: 0x52,
23055            },
23056            Opcode::VSRAVX => Inst {
23057                opcode: 0x57,
23058                funct3: 0x4,
23059                rs1: 0x0,
23060                rs2: 0x0,
23061                csr: 0xa40,
23062                funct7: 0x52,
23063            },
23064            Opcode::VSRLVI => Inst {
23065                opcode: 0x57,
23066                funct3: 0x3,
23067                rs1: 0x0,
23068                rs2: 0x0,
23069                csr: 0xa00,
23070                funct7: 0x50,
23071            },
23072            Opcode::VSRLVV => Inst {
23073                opcode: 0x57,
23074                funct3: 0x0,
23075                rs1: 0x0,
23076                rs2: 0x0,
23077                csr: 0xa00,
23078                funct7: 0x50,
23079            },
23080            Opcode::VSRLVX => Inst {
23081                opcode: 0x57,
23082                funct3: 0x4,
23083                rs1: 0x0,
23084                rs2: 0x0,
23085                csr: 0xa00,
23086                funct7: 0x50,
23087            },
23088            Opcode::VSSE16V => Inst {
23089                opcode: 0x27,
23090                funct3: 0x5,
23091                rs1: 0x0,
23092                rs2: 0x0,
23093                csr: 0x80,
23094                funct7: 0x4,
23095            },
23096            Opcode::VSSE32V => Inst {
23097                opcode: 0x27,
23098                funct3: 0x6,
23099                rs1: 0x0,
23100                rs2: 0x0,
23101                csr: 0x80,
23102                funct7: 0x4,
23103            },
23104            Opcode::VSSE64V => Inst {
23105                opcode: 0x27,
23106                funct3: 0x7,
23107                rs1: 0x0,
23108                rs2: 0x0,
23109                csr: 0x80,
23110                funct7: 0x4,
23111            },
23112            Opcode::VSSE8V => Inst {
23113                opcode: 0x27,
23114                funct3: 0x0,
23115                rs1: 0x0,
23116                rs2: 0x0,
23117                csr: 0x80,
23118                funct7: 0x4,
23119            },
23120            Opcode::VSSRAVI => Inst {
23121                opcode: 0x57,
23122                funct3: 0x3,
23123                rs1: 0x0,
23124                rs2: 0x0,
23125                csr: 0xac0,
23126                funct7: 0x56,
23127            },
23128            Opcode::VSSRAVV => Inst {
23129                opcode: 0x57,
23130                funct3: 0x0,
23131                rs1: 0x0,
23132                rs2: 0x0,
23133                csr: 0xac0,
23134                funct7: 0x56,
23135            },
23136            Opcode::VSSRAVX => Inst {
23137                opcode: 0x57,
23138                funct3: 0x4,
23139                rs1: 0x0,
23140                rs2: 0x0,
23141                csr: 0xac0,
23142                funct7: 0x56,
23143            },
23144            Opcode::VSSRLVI => Inst {
23145                opcode: 0x57,
23146                funct3: 0x3,
23147                rs1: 0x0,
23148                rs2: 0x0,
23149                csr: 0xa80,
23150                funct7: 0x54,
23151            },
23152            Opcode::VSSRLVV => Inst {
23153                opcode: 0x57,
23154                funct3: 0x0,
23155                rs1: 0x0,
23156                rs2: 0x0,
23157                csr: 0xa80,
23158                funct7: 0x54,
23159            },
23160            Opcode::VSSRLVX => Inst {
23161                opcode: 0x57,
23162                funct3: 0x4,
23163                rs1: 0x0,
23164                rs2: 0x0,
23165                csr: 0xa80,
23166                funct7: 0x54,
23167            },
23168            Opcode::VSSUBVV => Inst {
23169                opcode: 0x57,
23170                funct3: 0x0,
23171                rs1: 0x0,
23172                rs2: 0x0,
23173                csr: 0x8c0,
23174                funct7: 0x46,
23175            },
23176            Opcode::VSSUBVX => Inst {
23177                opcode: 0x57,
23178                funct3: 0x4,
23179                rs1: 0x0,
23180                rs2: 0x0,
23181                csr: 0x8c0,
23182                funct7: 0x46,
23183            },
23184            Opcode::VSSUBUVV => Inst {
23185                opcode: 0x57,
23186                funct3: 0x0,
23187                rs1: 0x0,
23188                rs2: 0x0,
23189                csr: 0x880,
23190                funct7: 0x44,
23191            },
23192            Opcode::VSSUBUVX => Inst {
23193                opcode: 0x57,
23194                funct3: 0x4,
23195                rs1: 0x0,
23196                rs2: 0x0,
23197                csr: 0x880,
23198                funct7: 0x44,
23199            },
23200            Opcode::VSUBVV => Inst {
23201                opcode: 0x57,
23202                funct3: 0x0,
23203                rs1: 0x0,
23204                rs2: 0x0,
23205                csr: 0x80,
23206                funct7: 0x4,
23207            },
23208            Opcode::VSUBVX => Inst {
23209                opcode: 0x57,
23210                funct3: 0x4,
23211                rs1: 0x0,
23212                rs2: 0x0,
23213                csr: 0x80,
23214                funct7: 0x4,
23215            },
23216            Opcode::VSUXEI16V => Inst {
23217                opcode: 0x27,
23218                funct3: 0x5,
23219                rs1: 0x0,
23220                rs2: 0x0,
23221                csr: 0x40,
23222                funct7: 0x2,
23223            },
23224            Opcode::VSUXEI32V => Inst {
23225                opcode: 0x27,
23226                funct3: 0x6,
23227                rs1: 0x0,
23228                rs2: 0x0,
23229                csr: 0x40,
23230                funct7: 0x2,
23231            },
23232            Opcode::VSUXEI64V => Inst {
23233                opcode: 0x27,
23234                funct3: 0x7,
23235                rs1: 0x0,
23236                rs2: 0x0,
23237                csr: 0x40,
23238                funct7: 0x2,
23239            },
23240            Opcode::VSUXEI8V => Inst {
23241                opcode: 0x27,
23242                funct3: 0x0,
23243                rs1: 0x0,
23244                rs2: 0x0,
23245                csr: 0x40,
23246                funct7: 0x2,
23247            },
23248            Opcode::VWADDVV => Inst {
23249                opcode: 0x57,
23250                funct3: 0x2,
23251                rs1: 0x0,
23252                rs2: 0x0,
23253                csr: 0xc40,
23254                funct7: 0x62,
23255            },
23256            Opcode::VWADDVX => Inst {
23257                opcode: 0x57,
23258                funct3: 0x6,
23259                rs1: 0x0,
23260                rs2: 0x0,
23261                csr: 0xc40,
23262                funct7: 0x62,
23263            },
23264            Opcode::VWADDWV => Inst {
23265                opcode: 0x57,
23266                funct3: 0x2,
23267                rs1: 0x0,
23268                rs2: 0x0,
23269                csr: 0xd40,
23270                funct7: 0x6a,
23271            },
23272            Opcode::VWADDWX => Inst {
23273                opcode: 0x57,
23274                funct3: 0x6,
23275                rs1: 0x0,
23276                rs2: 0x0,
23277                csr: 0xd40,
23278                funct7: 0x6a,
23279            },
23280            Opcode::VWADDUVV => Inst {
23281                opcode: 0x57,
23282                funct3: 0x2,
23283                rs1: 0x0,
23284                rs2: 0x0,
23285                csr: 0xc00,
23286                funct7: 0x60,
23287            },
23288            Opcode::VWADDUVX => Inst {
23289                opcode: 0x57,
23290                funct3: 0x6,
23291                rs1: 0x0,
23292                rs2: 0x0,
23293                csr: 0xc00,
23294                funct7: 0x60,
23295            },
23296            Opcode::VWADDUWV => Inst {
23297                opcode: 0x57,
23298                funct3: 0x2,
23299                rs1: 0x0,
23300                rs2: 0x0,
23301                csr: 0xd00,
23302                funct7: 0x68,
23303            },
23304            Opcode::VWADDUWX => Inst {
23305                opcode: 0x57,
23306                funct3: 0x6,
23307                rs1: 0x0,
23308                rs2: 0x0,
23309                csr: 0xd00,
23310                funct7: 0x68,
23311            },
23312            Opcode::VWMACCVV => Inst {
23313                opcode: 0x57,
23314                funct3: 0x2,
23315                rs1: 0x0,
23316                rs2: 0x0,
23317                csr: 0xf40,
23318                funct7: 0x7a,
23319            },
23320            Opcode::VWMACCVX => Inst {
23321                opcode: 0x57,
23322                funct3: 0x6,
23323                rs1: 0x0,
23324                rs2: 0x0,
23325                csr: 0xf40,
23326                funct7: 0x7a,
23327            },
23328            Opcode::VWMACCSUVV => Inst {
23329                opcode: 0x57,
23330                funct3: 0x2,
23331                rs1: 0x0,
23332                rs2: 0x0,
23333                csr: 0xfc0,
23334                funct7: 0x7e,
23335            },
23336            Opcode::VWMACCSUVX => Inst {
23337                opcode: 0x57,
23338                funct3: 0x6,
23339                rs1: 0x0,
23340                rs2: 0x0,
23341                csr: 0xfc0,
23342                funct7: 0x7e,
23343            },
23344            Opcode::VWMACCUVV => Inst {
23345                opcode: 0x57,
23346                funct3: 0x2,
23347                rs1: 0x0,
23348                rs2: 0x0,
23349                csr: 0xf00,
23350                funct7: 0x78,
23351            },
23352            Opcode::VWMACCUVX => Inst {
23353                opcode: 0x57,
23354                funct3: 0x6,
23355                rs1: 0x0,
23356                rs2: 0x0,
23357                csr: 0xf00,
23358                funct7: 0x78,
23359            },
23360            Opcode::VWMACCUSVX => Inst {
23361                opcode: 0x57,
23362                funct3: 0x6,
23363                rs1: 0x0,
23364                rs2: 0x0,
23365                csr: 0xf80,
23366                funct7: 0x7c,
23367            },
23368            Opcode::VWMULVV => Inst {
23369                opcode: 0x57,
23370                funct3: 0x2,
23371                rs1: 0x0,
23372                rs2: 0x0,
23373                csr: 0xec0,
23374                funct7: 0x76,
23375            },
23376            Opcode::VWMULVX => Inst {
23377                opcode: 0x57,
23378                funct3: 0x6,
23379                rs1: 0x0,
23380                rs2: 0x0,
23381                csr: 0xec0,
23382                funct7: 0x76,
23383            },
23384            Opcode::VWMULSUVV => Inst {
23385                opcode: 0x57,
23386                funct3: 0x2,
23387                rs1: 0x0,
23388                rs2: 0x0,
23389                csr: 0xe80,
23390                funct7: 0x74,
23391            },
23392            Opcode::VWMULSUVX => Inst {
23393                opcode: 0x57,
23394                funct3: 0x6,
23395                rs1: 0x0,
23396                rs2: 0x0,
23397                csr: 0xe80,
23398                funct7: 0x74,
23399            },
23400            Opcode::VWMULUVV => Inst {
23401                opcode: 0x57,
23402                funct3: 0x2,
23403                rs1: 0x0,
23404                rs2: 0x0,
23405                csr: 0xe00,
23406                funct7: 0x70,
23407            },
23408            Opcode::VWMULUVX => Inst {
23409                opcode: 0x57,
23410                funct3: 0x6,
23411                rs1: 0x0,
23412                rs2: 0x0,
23413                csr: 0xe00,
23414                funct7: 0x70,
23415            },
23416            Opcode::VWREDSUMVS => Inst {
23417                opcode: 0x57,
23418                funct3: 0x0,
23419                rs1: 0x0,
23420                rs2: 0x0,
23421                csr: 0xc40,
23422                funct7: 0x62,
23423            },
23424            Opcode::VWREDSUMUVS => Inst {
23425                opcode: 0x57,
23426                funct3: 0x0,
23427                rs1: 0x0,
23428                rs2: 0x0,
23429                csr: 0xc00,
23430                funct7: 0x60,
23431            },
23432            Opcode::VWSLLVI => Inst {
23433                opcode: 0x57,
23434                funct3: 0x3,
23435                rs1: 0x0,
23436                rs2: 0x0,
23437                csr: 0xd40,
23438                funct7: 0x6a,
23439            },
23440            Opcode::VWSLLVV => Inst {
23441                opcode: 0x57,
23442                funct3: 0x0,
23443                rs1: 0x0,
23444                rs2: 0x0,
23445                csr: 0xd40,
23446                funct7: 0x6a,
23447            },
23448            Opcode::VWSLLVX => Inst {
23449                opcode: 0x57,
23450                funct3: 0x4,
23451                rs1: 0x0,
23452                rs2: 0x0,
23453                csr: 0xd40,
23454                funct7: 0x6a,
23455            },
23456            Opcode::VWSUBVV => Inst {
23457                opcode: 0x57,
23458                funct3: 0x2,
23459                rs1: 0x0,
23460                rs2: 0x0,
23461                csr: 0xcc0,
23462                funct7: 0x66,
23463            },
23464            Opcode::VWSUBVX => Inst {
23465                opcode: 0x57,
23466                funct3: 0x6,
23467                rs1: 0x0,
23468                rs2: 0x0,
23469                csr: 0xcc0,
23470                funct7: 0x66,
23471            },
23472            Opcode::VWSUBWV => Inst {
23473                opcode: 0x57,
23474                funct3: 0x2,
23475                rs1: 0x0,
23476                rs2: 0x0,
23477                csr: 0xdc0,
23478                funct7: 0x6e,
23479            },
23480            Opcode::VWSUBWX => Inst {
23481                opcode: 0x57,
23482                funct3: 0x6,
23483                rs1: 0x0,
23484                rs2: 0x0,
23485                csr: 0xdc0,
23486                funct7: 0x6e,
23487            },
23488            Opcode::VWSUBUVV => Inst {
23489                opcode: 0x57,
23490                funct3: 0x2,
23491                rs1: 0x0,
23492                rs2: 0x0,
23493                csr: 0xc80,
23494                funct7: 0x64,
23495            },
23496            Opcode::VWSUBUVX => Inst {
23497                opcode: 0x57,
23498                funct3: 0x6,
23499                rs1: 0x0,
23500                rs2: 0x0,
23501                csr: 0xc80,
23502                funct7: 0x64,
23503            },
23504            Opcode::VWSUBUWV => Inst {
23505                opcode: 0x57,
23506                funct3: 0x2,
23507                rs1: 0x0,
23508                rs2: 0x0,
23509                csr: 0xd80,
23510                funct7: 0x6c,
23511            },
23512            Opcode::VWSUBUWX => Inst {
23513                opcode: 0x57,
23514                funct3: 0x6,
23515                rs1: 0x0,
23516                rs2: 0x0,
23517                csr: 0xd80,
23518                funct7: 0x6c,
23519            },
23520            Opcode::VXORVI => Inst {
23521                opcode: 0x57,
23522                funct3: 0x3,
23523                rs1: 0x0,
23524                rs2: 0x0,
23525                csr: 0x2c0,
23526                funct7: 0x16,
23527            },
23528            Opcode::VXORVV => Inst {
23529                opcode: 0x57,
23530                funct3: 0x0,
23531                rs1: 0x0,
23532                rs2: 0x0,
23533                csr: 0x2c0,
23534                funct7: 0x16,
23535            },
23536            Opcode::VXORVX => Inst {
23537                opcode: 0x57,
23538                funct3: 0x4,
23539                rs1: 0x0,
23540                rs2: 0x0,
23541                csr: 0x2c0,
23542                funct7: 0x16,
23543            },
23544            Opcode::VZEXTVF2 => Inst {
23545                opcode: 0x57,
23546                funct3: 0x2,
23547                rs1: 0x6,
23548                rs2: 0x0,
23549                csr: 0x480,
23550                funct7: 0x24,
23551            },
23552            Opcode::VZEXTVF4 => Inst {
23553                opcode: 0x57,
23554                funct3: 0x2,
23555                rs1: 0x4,
23556                rs2: 0x0,
23557                csr: 0x480,
23558                funct7: 0x24,
23559            },
23560            Opcode::VZEXTVF8 => Inst {
23561                opcode: 0x57,
23562                funct3: 0x2,
23563                rs1: 0x2,
23564                rs2: 0x0,
23565                csr: 0x480,
23566                funct7: 0x24,
23567            },
23568            Opcode::WFI => Inst {
23569                opcode: 0x73,
23570                funct3: 0x0,
23571                rs1: 0x0,
23572                rs2: 0x5,
23573                csr: 0x105,
23574                funct7: 0x8,
23575            },
23576            Opcode::WRSNTO => Inst {
23577                opcode: 0x73,
23578                funct3: 0x0,
23579                rs1: 0x0,
23580                rs2: 0xd,
23581                csr: 0xd,
23582                funct7: 0x0,
23583            },
23584            Opcode::WRSSTO => Inst {
23585                opcode: 0x73,
23586                funct3: 0x0,
23587                rs1: 0x0,
23588                rs2: 0x1d,
23589                csr: 0x1d,
23590                funct7: 0x0,
23591            },
23592            Opcode::XNOR => Inst {
23593                opcode: 0x33,
23594                funct3: 0x4,
23595                rs1: 0x0,
23596                rs2: 0x0,
23597                csr: 0x400,
23598                funct7: 0x20,
23599            },
23600            Opcode::XOR => Inst {
23601                opcode: 0x33,
23602                funct3: 0x4,
23603                rs1: 0x0,
23604                rs2: 0x0,
23605                csr: 0x0,
23606                funct7: 0x0,
23607            },
23608            Opcode::XORI => Inst {
23609                opcode: 0x13,
23610                funct3: 0x4,
23611                rs1: 0x0,
23612                rs2: 0x0,
23613                csr: 0x0,
23614                funct7: 0x0,
23615            },
23616            Opcode::XPERM4 => Inst {
23617                opcode: 0x33,
23618                funct3: 0x2,
23619                rs1: 0x0,
23620                rs2: 0x0,
23621                csr: 0x280,
23622                funct7: 0x14,
23623            },
23624            Opcode::XPERM8 => Inst {
23625                opcode: 0x33,
23626                funct3: 0x4,
23627                rs1: 0x0,
23628                rs2: 0x0,
23629                csr: 0x280,
23630                funct7: 0x14,
23631            },
23632            Opcode::ZEXTB => Inst {
23633                opcode: 0x13,
23634                funct3: 0x7,
23635                rs1: 0x0,
23636                rs2: 0x0,
23637                csr: 0x0,
23638                funct7: 0x0,
23639            },
23640            Opcode::ZEXTH => Inst {
23641                opcode: 0x3b,
23642                funct3: 0x4,
23643                rs1: 0x0,
23644                rs2: 0x0,
23645                csr: 0x80,
23646                funct7: 0x4,
23647            },
23648            Opcode::ZEXTHRV32 => Inst {
23649                opcode: 0x33,
23650                funct3: 0x4,
23651                rs1: 0x0,
23652                rs2: 0x0,
23653                csr: 0x80,
23654                funct7: 0x4,
23655            },
23656            Opcode::ZEXTW => Inst {
23657                opcode: 0x3b,
23658                funct3: 0x0,
23659                rs1: 0x0,
23660                rs2: 0x0,
23661                csr: 0x80,
23662                funct7: 0x4,
23663            },
23664            Opcode::ZIP => Inst {
23665                opcode: 0x13,
23666                funct3: 0x1,
23667                rs1: 0x0,
23668                rs2: 0xf,
23669                csr: 0x8f,
23670                funct7: 0x4,
23671            },
23672        }
23673    }
23674}
23675
23676#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
23677pub enum Encoding {
23678    Bimm12HiRs1Bimm12lo,
23679    Bimm12HiRs1Rs2Bimm12lo,
23680    Bimm12HiRs2Bimm12lo,
23681    Bimm12HiRs2Rs1Bimm12lo,
23682    CImm12,
23683    CIndex,
23684    CMopT,
23685    CNzimm10hiCNzimm10lo,
23686    CNzimm6hiCNzimm6lo,
23687    CRlistCSpimm,
23688    CRs1N0,
23689    CRs2CUimm8spS,
23690    CRs2CUimm9spS,
23691    CSreg1CSreg2,
23692    CsrZimm,
23693    Empty,
23694    FmPredSuccRs1Rd,
23695    Imm12HiRs1Rs2Imm12lo,
23696    Imm12Rs1Rd,
23697    Jimm20,
23698    MopRT30MopRT2726MopRT2120RdRs1,
23699    MopRrT30MopRrT2726RdRs1Rs2,
23700    NfVmRs1Vd,
23701    NfVmRs1Vs3,
23702    NfVmRs2Rs1Vd,
23703    NfVmRs2Rs1Vs3,
23704    NfVmVs2Rs1Vd,
23705    NfVmVs2Rs1Vs3,
23706    Rd,
23707    RdCUimm8sphiCUimm8splo,
23708    RdCUimm9sphiCUimm9splo,
23709    RdCsr,
23710    RdCsrZimm,
23711    RdImm20,
23712    RdJimm20,
23713    RdN0CImm6loCImm6hi,
23714    RdN0CRs2N0,
23715    RdN0CUimm8sphiCUimm8splo,
23716    RdN0CUimm9sphiCUimm9splo,
23717    RdN2CNzimm18hiCNzimm18lo,
23718    RdPCNzuimm10,
23719    RdPRs1PCUimm1,
23720    RdPRs1PCUimm2,
23721    RdPRs1PCUimm7loCUimm7hi,
23722    RdPRs1PCUimm8loCUimm8hi,
23723    RdRs1,
23724    RdRs1AqRl,
23725    RdRs1Csr,
23726    RdRs1Imm12,
23727    RdRs1N0,
23728    RdRs1N0CImm6loCImm6hi,
23729    RdRs1N0CNzimm6loCNzimm6hi,
23730    RdRs1N0CNzuimm6hiCNzuimm6lo,
23731    RdRs1N0CNzuimm6lo,
23732    RdRs1N0CRs2N0,
23733    RdRs1P,
23734    RdRs1PCImm6hiCImm6lo,
23735    RdRs1PCNzuimm5,
23736    RdRs1PCNzuimm6loCNzuimm6hi,
23737    RdRs1PRs2P,
23738    RdRs1Rm,
23739    RdRs1Rnum,
23740    RdRs1Rs2,
23741    RdRs1Rs2AqRl,
23742    RdRs1Rs2Bs,
23743    RdRs1Rs2EqRs1,
23744    RdRs1Rs2Rm,
23745    RdRs1Rs2Rs3Rm,
23746    RdRs1Shamtd,
23747    RdRs1Shamtw,
23748    RdRs2,
23749    RdZimm,
23750    Rs1,
23751    Rs1Csr,
23752    Rs1Imm12hi,
23753    Rs1N0,
23754    Rs1PCBimm9loCBimm9hi,
23755    Rs1PRs2PCUimm7loCUimm7hi,
23756    Rs1PRs2PCUimm8hiCUimm8lo,
23757    Rs1PRs2PCUimm8loCUimm8hi,
23758    Rs1Rd,
23759    Rs1Rs2,
23760    Rs1Vd,
23761    Rs1Vs3,
23762    Rs2PRs1PCUimm1,
23763    Rs2PRs1PCUimm2,
23764    Rs2Rs1Rd,
23765    Simm5Vd,
23766    VmVd,
23767    VmVs2Rd,
23768    VmVs2Rs1Vd,
23769    VmVs2Simm5Vd,
23770    VmVs2Vd,
23771    VmVs2Vs1Vd,
23772    VmVs2Zimm5Vd,
23773    Vs1Vd,
23774    Vs2Rd,
23775    Vs2Rs1Vd,
23776    Vs2Simm5Vd,
23777    Vs2Vd,
23778    Vs2Vs1Vd,
23779    Vs2Zimm5Vd,
23780    Zimm10ZimmRd,
23781    Zimm11Rs1Rd,
23782    Zimm6HiVmVs2Zimm6loVd,
23783}
23784
23785impl Opcode {
23786    pub fn encoding(self) -> Encoding {
23787        use Opcode::*;
23788        match self {
23789            Opcode::Invalid => unreachable!(),
23790            BEQZ | BGEZ | BLTZ | BNEZ => Encoding::Bimm12HiRs1Bimm12lo,
23791            BEQ | BGE | BGEU | BLT | BLTU | BNE => Encoding::Bimm12HiRs1Rs2Bimm12lo,
23792            BGTZ | BLEZ => Encoding::Bimm12HiRs2Bimm12lo,
23793            BGT | BGTU | BLE | BLEU => Encoding::Bimm12HiRs2Rs1Bimm12lo,
23794            CJ | CJAL => Encoding::CImm12,
23795            CMJALT => Encoding::CIndex,
23796            CMOPN => Encoding::CMopT,
23797            CADDI16SP => Encoding::CNzimm10hiCNzimm10lo,
23798            CNOP => Encoding::CNzimm6hiCNzimm6lo,
23799            CMPOP | CMPOPRET | CMPOPRETZ | CMPUSH => Encoding::CRlistCSpimm,
23800            CJALR => Encoding::CRs1N0,
23801            CFSWSP | CSWSP => Encoding::CRs2CUimm8spS,
23802            CFSDSP | CSDSP => Encoding::CRs2CUimm9spS,
23803            CMMVA01S | CMMVSA01 => Encoding::CSreg1CSreg2,
23804            CSRCI | CSRSI | CSRWI => Encoding::CsrZimm,
23805            CEBREAK | CMOP1 | CMOP11 | CMOP13 | CMOP15 | CMOP3 | CMOP5 | CMOP7 | CMOP9
23806            | CNTLALL | CNTLP1 | CNTLPALL | CNTLS1 | DRET | EBREAK | ECALL | MRET | NOP
23807            | NTLALL | NTLP1 | NTLPALL | NTLS1 | PAUSE | RET | SBREAK | SCALL | SFENCEINVALIR
23808            | SFENCEWINVAL | SRET | WFI | WRSNTO | WRSSTO => Encoding::Empty,
23809            FENCE => Encoding::FmPredSuccRs1Rd,
23810            FSD | FSH | FSQ | FSW | SB | SD | SH | SW => Encoding::Imm12HiRs1Rs2Imm12lo,
23811            FENCEI => Encoding::Imm12Rs1Rd,
23812            J | JALPSEUDO => Encoding::Jimm20,
23813            MOPRN => Encoding::MopRT30MopRT2726MopRT2120RdRs1,
23814            MOPRRN => Encoding::MopRrT30MopRrT2726RdRs1Rs2,
23815            VLE16V | VLE16FFV | VLE32V | VLE32FFV | VLE64V | VLE64FFV | VLE8V | VLE8FFV => {
23816                Encoding::NfVmRs1Vd
23817            }
23818            VSE16V | VSE32V | VSE64V | VSE8V => Encoding::NfVmRs1Vs3,
23819            VLSE16V | VLSE32V | VLSE64V | VLSE8V => Encoding::NfVmRs2Rs1Vd,
23820            VSSE16V | VSSE32V | VSSE64V | VSSE8V => Encoding::NfVmRs2Rs1Vs3,
23821            VLOXEI16V | VLOXEI32V | VLOXEI64V | VLOXEI8V | VLUXEI16V | VLUXEI32V | VLUXEI64V
23822            | VLUXEI8V => Encoding::NfVmVs2Rs1Vd,
23823            VSOXEI16V | VSOXEI32V | VSOXEI64V | VSOXEI8V | VSUXEI16V | VSUXEI32V | VSUXEI64V
23824            | VSUXEI8V => Encoding::NfVmVs2Rs1Vs3,
23825            FRCSR | FRFLAGS | FRRM | RDCYCLE | RDCYCLEH | RDINSTRET | RDINSTRETH | RDTIME
23826            | RDTIMEH => Encoding::Rd,
23827            CFLWSP => Encoding::RdCUimm8sphiCUimm8splo,
23828            CFLDSP => Encoding::RdCUimm9sphiCUimm9splo,
23829            CSRR => Encoding::RdCsr,
23830            CSRRCI | CSRRSI | CSRRWI => Encoding::RdCsrZimm,
23831            AUIPC | LUI => Encoding::RdImm20,
23832            JAL => Encoding::RdJimm20,
23833            CLI => Encoding::RdN0CImm6loCImm6hi,
23834            CMV => Encoding::RdN0CRs2N0,
23835            CLWSP => Encoding::RdN0CUimm8sphiCUimm8splo,
23836            CLDSP => Encoding::RdN0CUimm9sphiCUimm9splo,
23837            CLUI => Encoding::RdN2CNzimm18hiCNzimm18lo,
23838            CADDI4SPN => Encoding::RdPCNzuimm10,
23839            CLH | CLHU => Encoding::RdPRs1PCUimm1,
23840            CLBU => Encoding::RdPRs1PCUimm2,
23841            CFLW | CLW => Encoding::RdPRs1PCUimm7loCUimm7hi,
23842            CFLD | CLD => Encoding::RdPRs1PCUimm8loCUimm8hi,
23843            AES64IM | BREV8 | CLZ | CLZW | CPOP | CPOPW | CTZ | CTZW | FCLASSD | FCLASSH
23844            | FCLASSQ | FCLASSS | FCVTMODWD | FLID | FLIH | FLIQ | FLIS | FMVDX | FMVHX | FMVSX
23845            | FMVWX | FMVXD | FMVXH | FMVXS | FMVXW | FMVHXD | FMVHXQ | FSCSR | FSFLAGS | FSRM
23846            | HLVB | HLVBU | HLVD | HLVH | HLVHU | HLVW | HLVWU | HLVXHU | HLVXWU | MOPR0
23847            | MOPR1 | MOPR10 | MOPR11 | MOPR12 | MOPR13 | MOPR14 | MOPR15 | MOPR16 | MOPR17
23848            | MOPR18 | MOPR19 | MOPR2 | MOPR20 | MOPR21 | MOPR22 | MOPR23 | MOPR24 | MOPR25
23849            | MOPR26 | MOPR27 | MOPR28 | MOPR29 | MOPR3 | MOPR30 | MOPR31 | MOPR4 | MOPR5
23850            | MOPR6 | MOPR7 | MOPR8 | MOPR9 | MV | NEG | ORCB | REV8 | REV8RV32 | SEQZ | SEXTB
23851            | SEXTH | SEXTW | SHA256SIG0 | SHA256SIG1 | SHA256SUM0 | SHA256SUM1 | SHA512SIG0
23852            | SHA512SIG1 | SHA512SUM0 | SHA512SUM1 | SLTZ | SM3P0 | SM3P1 | UNZIP | ZEXTB
23853            | ZEXTH | ZEXTHRV32 | ZEXTW | ZIP => Encoding::RdRs1,
23854            LRD | LRW => Encoding::RdRs1AqRl,
23855            CSRRC | CSRRS | CSRRW => Encoding::RdRs1Csr,
23856            ADDI | ADDIW | ANDI | FLD | FLH | FLQ | FLW | JALR | LB | LBU | LD | LH | LHU | LW
23857            | LWU | ORI | SLTI | SLTIU | XORI => Encoding::RdRs1Imm12,
23858            CSEXTW => Encoding::RdRs1N0,
23859            CADDIW => Encoding::RdRs1N0CImm6loCImm6hi,
23860            CADDI => Encoding::RdRs1N0CNzimm6loCNzimm6hi,
23861            CSLLI => Encoding::RdRs1N0CNzuimm6hiCNzuimm6lo,
23862            CSLLIRV32 => Encoding::RdRs1N0CNzuimm6lo,
23863            CADD => Encoding::RdRs1N0CRs2N0,
23864            CNOT | CSEXTB | CSEXTH | CZEXTB | CZEXTH | CZEXTW => Encoding::RdRs1P,
23865            CANDI => Encoding::RdRs1PCImm6hiCImm6lo,
23866            CSRAIRV32 | CSRLIRV32 => Encoding::RdRs1PCNzuimm5,
23867            CSRAI | CSRLI => Encoding::RdRs1PCNzuimm6loCNzuimm6hi,
23868            CADDW | CAND | CMUL | COR | CSUB | CSUBW | CXOR => Encoding::RdRs1PRs2P,
23869            FCVTDH | FCVTDL | FCVTDLU | FCVTDQ | FCVTDS | FCVTDW | FCVTDWU | FCVTHD | FCVTHL
23870            | FCVTHLU | FCVTHQ | FCVTHS | FCVTHW | FCVTHWU | FCVTLD | FCVTLH | FCVTLQ | FCVTLS
23871            | FCVTLUD | FCVTLUH | FCVTLUQ | FCVTLUS | FCVTQD | FCVTQH | FCVTQL | FCVTQLU
23872            | FCVTQS | FCVTQW | FCVTQWU | FCVTSD | FCVTSH | FCVTSL | FCVTSLU | FCVTSQ | FCVTSW
23873            | FCVTSWU | FCVTWD | FCVTWH | FCVTWQ | FCVTWS | FCVTWUD | FCVTWUH | FCVTWUQ
23874            | FCVTWUS | FROUNDD | FROUNDH | FROUNDQ | FROUNDS | FROUNDNXD | FROUNDNXH
23875            | FROUNDNXQ | FROUNDNXS | FSQRTD | FSQRTH | FSQRTQ | FSQRTS => Encoding::RdRs1Rm,
23876            AES64KS1I => Encoding::RdRs1Rnum,
23877            ADD | ADDUW | ADDW | AES64DS | AES64DSM | AES64ES | AES64ESM | AES64KS2 | AND
23878            | ANDN | BCLR | BEXT | BINV | BSET | CLMUL | CLMULH | CLMULR | CZEROEQZ | CZERONEZ
23879            | DIV | DIVU | DIVUW | DIVW | FEQD | FEQH | FEQQ | FEQS | FLED | FLEH | FLEQ | FLES
23880            | FLEQD | FLEQH | FLEQQ | FLEQS | FLTD | FLTH | FLTQ | FLTS | FLTQD | FLTQH | FLTQQ
23881            | FLTQS | FMAXD | FMAXH | FMAXQ | FMAXS | FMAXMD | FMAXMH | FMAXMQ | FMAXMS | FMIND
23882            | FMINH | FMINQ | FMINS | FMINMD | FMINMH | FMINMQ | FMINMS | FMVPDX | FMVPQX
23883            | FSGNJD | FSGNJH | FSGNJQ | FSGNJS | FSGNJND | FSGNJNH | FSGNJNQ | FSGNJNS
23884            | FSGNJXD | FSGNJXH | FSGNJXQ | FSGNJXS | MAX | MAXU | MIN | MINU | MOPRR0 | MOPRR1
23885            | MOPRR2 | MOPRR3 | MOPRR4 | MOPRR5 | MOPRR6 | MOPRR7 | MUL | MULH | MULHSU | MULHU
23886            | MULW | OR | ORN | PACK | PACKH | PACKW | REM | REMU | REMUW | REMW | ROL | ROLW
23887            | ROR | RORW | SH1ADD | SH1ADDUW | SH2ADD | SH2ADDUW | SH3ADD | SH3ADDUW
23888            | SHA512SIG0H | SHA512SIG0L | SHA512SIG1H | SHA512SIG1L | SHA512SUM0R | SHA512SUM1R
23889            | SLL | SLLW | SLT | SLTU | SRA | SRAW | SRL | SRLW | SUB | SUBW | XNOR | XOR
23890            | XPERM4 | XPERM8 => Encoding::RdRs1Rs2,
23891            AMOADDB | AMOADDD | AMOADDH | AMOADDW | AMOANDB | AMOANDD | AMOANDH | AMOANDW
23892            | AMOCASB | AMOCASD | AMOCASH | AMOCASQ | AMOCASW | AMOMAXB | AMOMAXD | AMOMAXH
23893            | AMOMAXW | AMOMAXUB | AMOMAXUD | AMOMAXUH | AMOMAXUW | AMOMINB | AMOMIND | AMOMINH
23894            | AMOMINW | AMOMINUB | AMOMINUD | AMOMINUH | AMOMINUW | AMOORB | AMOORD | AMOORH
23895            | AMOORW | AMOSWAPB | AMOSWAPD | AMOSWAPH | AMOSWAPW | AMOXORB | AMOXORD | AMOXORH
23896            | AMOXORW | SCD | SCW => Encoding::RdRs1Rs2AqRl,
23897            AES32DSI | AES32DSMI | AES32ESI | AES32ESMI | SM4ED | SM4KS => Encoding::RdRs1Rs2Bs,
23898            FABSD | FABSH | FABSQ | FABSS | FMVD | FMVH | FMVQ | FMVS | FNEGD | FNEGH | FNEGQ
23899            | FNEGS => Encoding::RdRs1Rs2EqRs1,
23900            FADDD | FADDH | FADDQ | FADDS | FDIVD | FDIVH | FDIVQ | FDIVS | FMULD | FMULH
23901            | FMULQ | FMULS | FSUBD | FSUBH | FSUBQ | FSUBS => Encoding::RdRs1Rs2Rm,
23902            FMADDD | FMADDH | FMADDQ | FMADDS | FMSUBD | FMSUBH | FMSUBQ | FMSUBS | FNMADDD
23903            | FNMADDH | FNMADDQ | FNMADDS | FNMSUBD | FNMSUBH | FNMSUBQ | FNMSUBS => {
23904                Encoding::RdRs1Rs2Rs3Rm
23905            }
23906            BCLRI | BEXTI | BINVI | BSETI | RORI | SLLI | SLLIUW | SRAI | SRLI => {
23907                Encoding::RdRs1Shamtd
23908            }
23909            BCLRIRV32 | BEXTIRV32 | BINVIRV32 | BSETIRV32 | RORIRV32 | RORIW | SLLIRV32 | SLLIW
23910            | SRAIRV32 | SRAIW | SRLIRV32 | SRLIW => Encoding::RdRs1Shamtw,
23911            SGTZ | SNEZ => Encoding::RdRs2,
23912            FSFLAGSI | FSRMI => Encoding::RdZimm,
23913            CBOCLEAN | CBOFLUSH | CBOINVAL | CBOZERO | JALRPSEUDO | JR => Encoding::Rs1,
23914            CSRC | CSRS | CSRW => Encoding::Rs1Csr,
23915            PREFETCHI | PREFETCHR | PREFETCHW => Encoding::Rs1Imm12hi,
23916            CJR => Encoding::Rs1N0,
23917            CBEQZ | CBNEZ => Encoding::Rs1PCBimm9loCBimm9hi,
23918            CFSW | CSW => Encoding::Rs1PRs2PCUimm7loCUimm7hi,
23919            CSD => Encoding::Rs1PRs2PCUimm8hiCUimm8lo,
23920            CFSD => Encoding::Rs1PRs2PCUimm8loCUimm8hi,
23921            FENCETSO => Encoding::Rs1Rd,
23922            HFENCEGVMA | HFENCEVVMA | HINVALGVMA | HINVALVVMA | HSVB | HSVD | HSVH | HSVW
23923            | SFENCEVMA | SINVALVMA => Encoding::Rs1Rs2,
23924            VFMVSF | VFMVVF | VL1RV | VL1RE16V | VL1RE32V | VL1RE64V | VL1RE8V | VL2RV
23925            | VL2RE16V | VL2RE32V | VL2RE64V | VL2RE8V | VL4RV | VL4RE16V | VL4RE32V | VL4RE64V
23926            | VL4RE8V | VL8RV | VL8RE16V | VL8RE32V | VL8RE64V | VL8RE8V | VLE1V | VLMV | VMVSX
23927            | VMVVX => Encoding::Rs1Vd,
23928            VS1RV | VS2RV | VS4RV | VS8RV | VSE1V | VSMV => Encoding::Rs1Vs3,
23929            CSH => Encoding::Rs2PRs1PCUimm1,
23930            CSB => Encoding::Rs2PRs1PCUimm2,
23931            VSETVL => Encoding::Rs2Rs1Rd,
23932            VMVVI => Encoding::Simm5Vd,
23933            VIDV => Encoding::VmVd,
23934            VCPOPM | VFIRSTM | VPOPCM => Encoding::VmVs2Rd,
23935            VAADDVX | VAADDUVX | VADDVX | VANDVX | VANDNVX | VASUBVX | VASUBUVX | VCLMULVX
23936            | VCLMULHVX | VDIVVX | VDIVUVX | VFADDVF | VFDIVVF | VFMACCVF | VFMADDVF | VFMAXVF
23937            | VFMINVF | VFMSACVF | VFMSUBVF | VFMULVF | VFNMACCVF | VFNMADDVF | VFNMSACVF
23938            | VFNMSUBVF | VFRDIVVF | VFRSUBVF | VFSGNJVF | VFSGNJNVF | VFSGNJXVF
23939            | VFSLIDE1DOWNVF | VFSLIDE1UPVF | VFSUBVF | VFWADDVF | VFWADDWF | VFWMACCVF
23940            | VFWMSACVF | VFWMULVF | VFWNMACCVF | VFWNMSACVF | VFWSUBVF | VFWSUBWF | VMACCVX
23941            | VMADDVX | VMAXVX | VMAXUVX | VMFEQVF | VMFGEVF | VMFGTVF | VMFLEVF | VMFLTVF
23942            | VMFNEVF | VMINVX | VMINUVX | VMSEQVX | VMSGTVX | VMSGTUVX | VMSLEVX | VMSLEUVX
23943            | VMSLTVX | VMSLTUVX | VMSNEVX | VMULVX | VMULHVX | VMULHSUVX | VMULHUVX | VNCLIPWX
23944            | VNCLIPUWX | VNMSACVX | VNMSUBVX | VNSRAWX | VNSRLWX | VORVX | VREMVX | VREMUVX
23945            | VRGATHERVX | VROLVX | VRORVX | VRSUBVX | VSADDVX | VSADDUVX | VSLIDE1DOWNVX
23946            | VSLIDE1UPVX | VSLIDEDOWNVX | VSLIDEUPVX | VSLLVX | VSMULVX | VSRAVX | VSRLVX
23947            | VSSRAVX | VSSRLVX | VSSUBVX | VSSUBUVX | VSUBVX | VWADDVX | VWADDWX | VWADDUVX
23948            | VWADDUWX | VWMACCVX | VWMACCSUVX | VWMACCUVX | VWMACCUSVX | VWMULVX | VWMULSUVX
23949            | VWMULUVX | VWSLLVX | VWSUBVX | VWSUBWX | VWSUBUVX | VWSUBUWX | VXORVX => {
23950                Encoding::VmVs2Rs1Vd
23951            }
23952            VADDVI | VANDVI | VMSEQVI | VMSGTVI | VMSGTUVI | VMSLEVI | VMSLEUVI | VMSNEVI
23953            | VNCLIPWI | VNCLIPUWI | VNSRAWI | VNSRLWI | VORVI | VRGATHERVI | VRSUBVI | VSADDVI
23954            | VSADDUVI | VSLIDEDOWNVI | VSLIDEUPVI | VSLLVI | VSRAVI | VSRLVI | VSSRAVI
23955            | VSSRLVI | VXORVI => Encoding::VmVs2Simm5Vd,
23956            VBREV8V | VBREVV | VCLZV | VCPOPV | VCTZV | VFCLASSV | VFCVTFXV | VFCVTFXUV
23957            | VFCVTRTZXFV | VFCVTRTZXUFV | VFCVTXFV | VFCVTXUFV | VFNCVTFFW | VFNCVTFXW
23958            | VFNCVTFXUW | VFNCVTRODFFW | VFNCVTRTZXFW | VFNCVTRTZXUFW | VFNCVTXFW | VFNCVTXUFW
23959            | VFREC7V | VFRSQRT7V | VFSQRTV | VFWCVTFFV | VFWCVTFXV | VFWCVTFXUV | VFWCVTRTZXFV
23960            | VFWCVTRTZXUFV | VFWCVTXFV | VFWCVTXUFV | VIOTAM | VMSBFM | VMSIFM | VMSOFM
23961            | VREV8V | VSEXTVF2 | VSEXTVF4 | VSEXTVF8 | VZEXTVF2 | VZEXTVF4 | VZEXTVF8 => {
23962                Encoding::VmVs2Vd
23963            }
23964            VAADDVV | VAADDUVV | VADDVV | VANDVV | VANDNVV | VASUBVV | VASUBUVV | VCLMULVV
23965            | VCLMULHVV | VDIVVV | VDIVUVV | VFADDVV | VFDIVVV | VFMACCVV | VFMADDVV | VFMAXVV
23966            | VFMINVV | VFMSACVV | VFMSUBVV | VFMULVV | VFNMACCVV | VFNMADDVV | VFNMSACVV
23967            | VFNMSUBVV | VFREDMAXVS | VFREDMINVS | VFREDOSUMVS | VFREDSUMVS | VFREDUSUMVS
23968            | VFSGNJVV | VFSGNJNVV | VFSGNJXVV | VFSUBVV | VFWADDVV | VFWADDWV | VFWMACCVV
23969            | VFWMSACVV | VFWMULVV | VFWNMACCVV | VFWNMSACVV | VFWREDOSUMVS | VFWREDSUMVS
23970            | VFWREDUSUMVS | VFWSUBVV | VFWSUBWV | VMACCVV | VMADDVV | VMANDNOTMM | VMAXVV
23971            | VMAXUVV | VMFEQVV | VMFLEVV | VMFLTVV | VMFNEVV | VMINVV | VMINUVV | VMORNOTMM
23972            | VMSEQVV | VMSLEVV | VMSLEUVV | VMSLTVV | VMSLTUVV | VMSNEVV | VMULVV | VMULHVV
23973            | VMULHSUVV | VMULHUVV | VNCLIPWV | VNCLIPUWV | VNMSACVV | VNMSUBVV | VNSRAWV
23974            | VNSRLWV | VORVV | VREDANDVS | VREDMAXVS | VREDMAXUVS | VREDMINVS | VREDMINUVS
23975            | VREDORVS | VREDSUMVS | VREDXORVS | VREMVV | VREMUVV | VRGATHERVV | VRGATHEREI16VV
23976            | VROLVV | VRORVV | VSADDVV | VSADDUVV | VSLLVV | VSMULVV | VSRAVV | VSRLVV
23977            | VSSRAVV | VSSRLVV | VSSUBVV | VSSUBUVV | VSUBVV | VWADDVV | VWADDWV | VWADDUVV
23978            | VWADDUWV | VWMACCVV | VWMACCSUVV | VWMACCUVV | VWMULVV | VWMULSUVV | VWMULUVV
23979            | VWREDSUMVS | VWREDSUMUVS | VWSLLVV | VWSUBVV | VWSUBWV | VWSUBUVV | VWSUBUWV
23980            | VXORVV => Encoding::VmVs2Vs1Vd,
23981            VWSLLVI => Encoding::VmVs2Zimm5Vd,
23982            VMVVV => Encoding::Vs1Vd,
23983            VFMVFS | VMVXS => Encoding::Vs2Rd,
23984            VADCVXM | VFMERGEVFM | VMADCVX | VMADCVXM | VMERGEVXM | VMSBCVX | VMSBCVXM
23985            | VSBCVXM => Encoding::Vs2Rs1Vd,
23986            VADCVIM | VMADCVI | VMADCVIM | VMERGEVIM => Encoding::Vs2Simm5Vd,
23987            VAESDFVS | VAESDFVV | VAESDMVS | VAESDMVV | VAESEFVS | VAESEFVV | VAESEMVS
23988            | VAESEMVV | VAESZVS | VGMULVV | VMV1RV | VMV2RV | VMV4RV | VMV8RV | VSM4RVS
23989            | VSM4RVV => Encoding::Vs2Vd,
23990            VADCVVM | VCOMPRESSVM | VGHSHVV | VMADCVV | VMADCVVM | VMANDMM | VMANDNMM
23991            | VMERGEVVM | VMNANDMM | VMNORMM | VMORMM | VMORNMM | VMSBCVV | VMSBCVVM | VMXNORMM
23992            | VMXORMM | VSBCVVM | VSHA2CHVV | VSHA2CLVV | VSHA2MSVV | VSM3MEVV => {
23993                Encoding::Vs2Vs1Vd
23994            }
23995            VAESKF1VI | VAESKF2VI | VSM3CVI | VSM4KVI => Encoding::Vs2Zimm5Vd,
23996            VSETIVLI => Encoding::Zimm10ZimmRd,
23997            VSETVLI => Encoding::Zimm11Rs1Rd,
23998            VRORVI => Encoding::Zimm6HiVmVs2Zimm6loVd,
23999        }
24000    }
24001}
24002pub const INSN_FIELD_RD: u32 = 0xf80;
24003pub const INSN_FIELD_RD_START: u32 = 7;
24004pub const INSN_FIELD_RD_SIZE: u32 = 5;
24005pub const INSN_FIELD_RT: u32 = 0xf8000;
24006pub const INSN_FIELD_RT_START: u32 = 15;
24007pub const INSN_FIELD_RT_SIZE: u32 = 5;
24008pub const INSN_FIELD_RS1: u32 = 0xf8000;
24009pub const INSN_FIELD_RS1_START: u32 = 15;
24010pub const INSN_FIELD_RS1_SIZE: u32 = 5;
24011pub const INSN_FIELD_RS2: u32 = 0x1f00000;
24012pub const INSN_FIELD_RS2_START: u32 = 20;
24013pub const INSN_FIELD_RS2_SIZE: u32 = 5;
24014pub const INSN_FIELD_RS3: u32 = 0xf8000000;
24015pub const INSN_FIELD_RS3_START: u32 = 27;
24016pub const INSN_FIELD_RS3_SIZE: u32 = 5;
24017pub const INSN_FIELD_AQRL: u32 = 0x6000000;
24018pub const INSN_FIELD_AQRL_START: u32 = 25;
24019pub const INSN_FIELD_AQRL_SIZE: u32 = 2;
24020pub const INSN_FIELD_AQ: u32 = 0x4000000;
24021pub const INSN_FIELD_AQ_START: u32 = 26;
24022pub const INSN_FIELD_AQ_SIZE: u32 = 1;
24023pub const INSN_FIELD_RL: u32 = 0x2000000;
24024pub const INSN_FIELD_RL_START: u32 = 25;
24025pub const INSN_FIELD_RL_SIZE: u32 = 1;
24026pub const INSN_FIELD_FM: u32 = 0xf0000000;
24027pub const INSN_FIELD_FM_START: u32 = 28;
24028pub const INSN_FIELD_FM_SIZE: u32 = 4;
24029pub const INSN_FIELD_PRED: u32 = 0xf000000;
24030pub const INSN_FIELD_PRED_START: u32 = 24;
24031pub const INSN_FIELD_PRED_SIZE: u32 = 4;
24032pub const INSN_FIELD_SUCC: u32 = 0xf00000;
24033pub const INSN_FIELD_SUCC_START: u32 = 20;
24034pub const INSN_FIELD_SUCC_SIZE: u32 = 4;
24035pub const INSN_FIELD_RM: u32 = 0x7000;
24036pub const INSN_FIELD_RM_START: u32 = 12;
24037pub const INSN_FIELD_RM_SIZE: u32 = 3;
24038pub const INSN_FIELD_FUNCT3: u32 = 0x7000;
24039pub const INSN_FIELD_FUNCT3_START: u32 = 12;
24040pub const INSN_FIELD_FUNCT3_SIZE: u32 = 3;
24041pub const INSN_FIELD_FUNCT2: u32 = 0x6000000;
24042pub const INSN_FIELD_FUNCT2_START: u32 = 25;
24043pub const INSN_FIELD_FUNCT2_SIZE: u32 = 2;
24044pub const INSN_FIELD_IMM20: u32 = 0xfffff000;
24045pub const INSN_FIELD_IMM20_START: u32 = 12;
24046pub const INSN_FIELD_IMM20_SIZE: u32 = 20;
24047pub const INSN_FIELD_JIMM20: u32 = 0xfffff000;
24048pub const INSN_FIELD_JIMM20_START: u32 = 12;
24049pub const INSN_FIELD_JIMM20_SIZE: u32 = 20;
24050pub const INSN_FIELD_IMM12: u32 = 0xfff00000;
24051pub const INSN_FIELD_IMM12_START: u32 = 20;
24052pub const INSN_FIELD_IMM12_SIZE: u32 = 12;
24053pub const INSN_FIELD_CSR: u32 = 0xfff00000;
24054pub const INSN_FIELD_CSR_START: u32 = 20;
24055pub const INSN_FIELD_CSR_SIZE: u32 = 12;
24056pub const INSN_FIELD_IMM12HI: u32 = 0xfe000000;
24057pub const INSN_FIELD_IMM12HI_START: u32 = 25;
24058pub const INSN_FIELD_IMM12HI_SIZE: u32 = 7;
24059pub const INSN_FIELD_BIMM12HI: u32 = 0xfe000000;
24060pub const INSN_FIELD_BIMM12HI_START: u32 = 25;
24061pub const INSN_FIELD_BIMM12HI_SIZE: u32 = 7;
24062pub const INSN_FIELD_IMM12LO: u32 = 0xf80;
24063pub const INSN_FIELD_IMM12LO_START: u32 = 7;
24064pub const INSN_FIELD_IMM12LO_SIZE: u32 = 5;
24065pub const INSN_FIELD_BIMM12LO: u32 = 0xf80;
24066pub const INSN_FIELD_BIMM12LO_START: u32 = 7;
24067pub const INSN_FIELD_BIMM12LO_SIZE: u32 = 5;
24068pub const INSN_FIELD_SHAMTQ: u32 = 0x7f00000;
24069pub const INSN_FIELD_SHAMTQ_START: u32 = 20;
24070pub const INSN_FIELD_SHAMTQ_SIZE: u32 = 7;
24071pub const INSN_FIELD_SHAMTW: u32 = 0x1f00000;
24072pub const INSN_FIELD_SHAMTW_START: u32 = 20;
24073pub const INSN_FIELD_SHAMTW_SIZE: u32 = 5;
24074pub const INSN_FIELD_SHAMTW4: u32 = 0xf00000;
24075pub const INSN_FIELD_SHAMTW4_START: u32 = 20;
24076pub const INSN_FIELD_SHAMTW4_SIZE: u32 = 4;
24077pub const INSN_FIELD_SHAMTD: u32 = 0x3f00000;
24078pub const INSN_FIELD_SHAMTD_START: u32 = 20;
24079pub const INSN_FIELD_SHAMTD_SIZE: u32 = 6;
24080pub const INSN_FIELD_BS: u32 = 0xc0000000;
24081pub const INSN_FIELD_BS_START: u32 = 30;
24082pub const INSN_FIELD_BS_SIZE: u32 = 2;
24083pub const INSN_FIELD_RNUM: u32 = 0xf00000;
24084pub const INSN_FIELD_RNUM_START: u32 = 20;
24085pub const INSN_FIELD_RNUM_SIZE: u32 = 4;
24086pub const INSN_FIELD_RC: u32 = 0x3e000000;
24087pub const INSN_FIELD_RC_START: u32 = 25;
24088pub const INSN_FIELD_RC_SIZE: u32 = 5;
24089pub const INSN_FIELD_IMM2: u32 = 0x300000;
24090pub const INSN_FIELD_IMM2_START: u32 = 20;
24091pub const INSN_FIELD_IMM2_SIZE: u32 = 2;
24092pub const INSN_FIELD_IMM3: u32 = 0x700000;
24093pub const INSN_FIELD_IMM3_START: u32 = 20;
24094pub const INSN_FIELD_IMM3_SIZE: u32 = 3;
24095pub const INSN_FIELD_IMM4: u32 = 0xf00000;
24096pub const INSN_FIELD_IMM4_START: u32 = 20;
24097pub const INSN_FIELD_IMM4_SIZE: u32 = 4;
24098pub const INSN_FIELD_IMM5: u32 = 0x1f00000;
24099pub const INSN_FIELD_IMM5_START: u32 = 20;
24100pub const INSN_FIELD_IMM5_SIZE: u32 = 5;
24101pub const INSN_FIELD_IMM6: u32 = 0x3f00000;
24102pub const INSN_FIELD_IMM6_START: u32 = 20;
24103pub const INSN_FIELD_IMM6_SIZE: u32 = 6;
24104pub const INSN_FIELD_ZIMM: u32 = 0xf8000;
24105pub const INSN_FIELD_ZIMM_START: u32 = 15;
24106pub const INSN_FIELD_ZIMM_SIZE: u32 = 5;
24107pub const INSN_FIELD_OPCODE: u32 = 0x7f;
24108pub const INSN_FIELD_OPCODE_START: u32 = 0;
24109pub const INSN_FIELD_OPCODE_SIZE: u32 = 7;
24110pub const INSN_FIELD_FUNCT7: u32 = 0xfe000000;
24111pub const INSN_FIELD_FUNCT7_START: u32 = 25;
24112pub const INSN_FIELD_FUNCT7_SIZE: u32 = 7;
24113pub const INSN_FIELD_VD: u32 = 0xf80;
24114pub const INSN_FIELD_VD_START: u32 = 7;
24115pub const INSN_FIELD_VD_SIZE: u32 = 5;
24116pub const INSN_FIELD_VS3: u32 = 0xf80;
24117pub const INSN_FIELD_VS3_START: u32 = 7;
24118pub const INSN_FIELD_VS3_SIZE: u32 = 5;
24119pub const INSN_FIELD_VS1: u32 = 0xf8000;
24120pub const INSN_FIELD_VS1_START: u32 = 15;
24121pub const INSN_FIELD_VS1_SIZE: u32 = 5;
24122pub const INSN_FIELD_VS2: u32 = 0x1f00000;
24123pub const INSN_FIELD_VS2_START: u32 = 20;
24124pub const INSN_FIELD_VS2_SIZE: u32 = 5;
24125pub const INSN_FIELD_VM: u32 = 0x2000000;
24126pub const INSN_FIELD_VM_START: u32 = 25;
24127pub const INSN_FIELD_VM_SIZE: u32 = 1;
24128pub const INSN_FIELD_WD: u32 = 0x4000000;
24129pub const INSN_FIELD_WD_START: u32 = 26;
24130pub const INSN_FIELD_WD_SIZE: u32 = 1;
24131pub const INSN_FIELD_AMOOP: u32 = 0xf8000000;
24132pub const INSN_FIELD_AMOOP_START: u32 = 27;
24133pub const INSN_FIELD_AMOOP_SIZE: u32 = 5;
24134pub const INSN_FIELD_NF: u32 = 0xe0000000;
24135pub const INSN_FIELD_NF_START: u32 = 29;
24136pub const INSN_FIELD_NF_SIZE: u32 = 3;
24137pub const INSN_FIELD_SIMM5: u32 = 0xf8000;
24138pub const INSN_FIELD_SIMM5_START: u32 = 15;
24139pub const INSN_FIELD_SIMM5_SIZE: u32 = 5;
24140pub const INSN_FIELD_ZIMM5: u32 = 0xf8000;
24141pub const INSN_FIELD_ZIMM5_START: u32 = 15;
24142pub const INSN_FIELD_ZIMM5_SIZE: u32 = 5;
24143pub const INSN_FIELD_ZIMM10: u32 = 0x3ff00000;
24144pub const INSN_FIELD_ZIMM10_START: u32 = 20;
24145pub const INSN_FIELD_ZIMM10_SIZE: u32 = 10;
24146pub const INSN_FIELD_ZIMM11: u32 = 0x7ff00000;
24147pub const INSN_FIELD_ZIMM11_START: u32 = 20;
24148pub const INSN_FIELD_ZIMM11_SIZE: u32 = 11;
24149pub const INSN_FIELD_ZIMM6HI: u32 = 0x4000000;
24150pub const INSN_FIELD_ZIMM6HI_START: u32 = 26;
24151pub const INSN_FIELD_ZIMM6HI_SIZE: u32 = 1;
24152pub const INSN_FIELD_ZIMM6LO: u32 = 0xf8000;
24153pub const INSN_FIELD_ZIMM6LO_START: u32 = 15;
24154pub const INSN_FIELD_ZIMM6LO_SIZE: u32 = 5;
24155pub const INSN_FIELD_C_NZUIMM10: u32 = 0x1fe0;
24156pub const INSN_FIELD_C_NZUIMM10_START: u32 = 5;
24157pub const INSN_FIELD_C_NZUIMM10_SIZE: u32 = 8;
24158pub const INSN_FIELD_C_UIMM7LO: u32 = 0x60;
24159pub const INSN_FIELD_C_UIMM7LO_START: u32 = 5;
24160pub const INSN_FIELD_C_UIMM7LO_SIZE: u32 = 2;
24161pub const INSN_FIELD_C_UIMM7HI: u32 = 0x1c00;
24162pub const INSN_FIELD_C_UIMM7HI_START: u32 = 10;
24163pub const INSN_FIELD_C_UIMM7HI_SIZE: u32 = 3;
24164pub const INSN_FIELD_C_UIMM8LO: u32 = 0x60;
24165pub const INSN_FIELD_C_UIMM8LO_START: u32 = 5;
24166pub const INSN_FIELD_C_UIMM8LO_SIZE: u32 = 2;
24167pub const INSN_FIELD_C_UIMM8HI: u32 = 0x1c00;
24168pub const INSN_FIELD_C_UIMM8HI_START: u32 = 10;
24169pub const INSN_FIELD_C_UIMM8HI_SIZE: u32 = 3;
24170pub const INSN_FIELD_C_UIMM9LO: u32 = 0x60;
24171pub const INSN_FIELD_C_UIMM9LO_START: u32 = 5;
24172pub const INSN_FIELD_C_UIMM9LO_SIZE: u32 = 2;
24173pub const INSN_FIELD_C_UIMM9HI: u32 = 0x1c00;
24174pub const INSN_FIELD_C_UIMM9HI_START: u32 = 10;
24175pub const INSN_FIELD_C_UIMM9HI_SIZE: u32 = 3;
24176pub const INSN_FIELD_C_NZIMM6LO: u32 = 0x7c;
24177pub const INSN_FIELD_C_NZIMM6LO_START: u32 = 2;
24178pub const INSN_FIELD_C_NZIMM6LO_SIZE: u32 = 5;
24179pub const INSN_FIELD_C_NZIMM6HI: u32 = 0x1000;
24180pub const INSN_FIELD_C_NZIMM6HI_START: u32 = 12;
24181pub const INSN_FIELD_C_NZIMM6HI_SIZE: u32 = 1;
24182pub const INSN_FIELD_C_IMM6LO: u32 = 0x7c;
24183pub const INSN_FIELD_C_IMM6LO_START: u32 = 2;
24184pub const INSN_FIELD_C_IMM6LO_SIZE: u32 = 5;
24185pub const INSN_FIELD_C_IMM6HI: u32 = 0x1000;
24186pub const INSN_FIELD_C_IMM6HI_START: u32 = 12;
24187pub const INSN_FIELD_C_IMM6HI_SIZE: u32 = 1;
24188pub const INSN_FIELD_C_NZIMM10HI: u32 = 0x1000;
24189pub const INSN_FIELD_C_NZIMM10HI_START: u32 = 12;
24190pub const INSN_FIELD_C_NZIMM10HI_SIZE: u32 = 1;
24191pub const INSN_FIELD_C_NZIMM10LO: u32 = 0x7c;
24192pub const INSN_FIELD_C_NZIMM10LO_START: u32 = 2;
24193pub const INSN_FIELD_C_NZIMM10LO_SIZE: u32 = 5;
24194pub const INSN_FIELD_C_NZIMM18HI: u32 = 0x1000;
24195pub const INSN_FIELD_C_NZIMM18HI_START: u32 = 12;
24196pub const INSN_FIELD_C_NZIMM18HI_SIZE: u32 = 1;
24197pub const INSN_FIELD_C_NZIMM18LO: u32 = 0x7c;
24198pub const INSN_FIELD_C_NZIMM18LO_START: u32 = 2;
24199pub const INSN_FIELD_C_NZIMM18LO_SIZE: u32 = 5;
24200pub const INSN_FIELD_C_IMM12: u32 = 0x1ffc;
24201pub const INSN_FIELD_C_IMM12_START: u32 = 2;
24202pub const INSN_FIELD_C_IMM12_SIZE: u32 = 11;
24203pub const INSN_FIELD_C_BIMM9LO: u32 = 0x7c;
24204pub const INSN_FIELD_C_BIMM9LO_START: u32 = 2;
24205pub const INSN_FIELD_C_BIMM9LO_SIZE: u32 = 5;
24206pub const INSN_FIELD_C_BIMM9HI: u32 = 0x1c00;
24207pub const INSN_FIELD_C_BIMM9HI_START: u32 = 10;
24208pub const INSN_FIELD_C_BIMM9HI_SIZE: u32 = 3;
24209pub const INSN_FIELD_C_NZUIMM5: u32 = 0x7c;
24210pub const INSN_FIELD_C_NZUIMM5_START: u32 = 2;
24211pub const INSN_FIELD_C_NZUIMM5_SIZE: u32 = 5;
24212pub const INSN_FIELD_C_NZUIMM6LO: u32 = 0x7c;
24213pub const INSN_FIELD_C_NZUIMM6LO_START: u32 = 2;
24214pub const INSN_FIELD_C_NZUIMM6LO_SIZE: u32 = 5;
24215pub const INSN_FIELD_C_NZUIMM6HI: u32 = 0x1000;
24216pub const INSN_FIELD_C_NZUIMM6HI_START: u32 = 12;
24217pub const INSN_FIELD_C_NZUIMM6HI_SIZE: u32 = 1;
24218pub const INSN_FIELD_C_UIMM8SPLO: u32 = 0x7c;
24219pub const INSN_FIELD_C_UIMM8SPLO_START: u32 = 2;
24220pub const INSN_FIELD_C_UIMM8SPLO_SIZE: u32 = 5;
24221pub const INSN_FIELD_C_UIMM8SPHI: u32 = 0x1000;
24222pub const INSN_FIELD_C_UIMM8SPHI_START: u32 = 12;
24223pub const INSN_FIELD_C_UIMM8SPHI_SIZE: u32 = 1;
24224pub const INSN_FIELD_C_UIMM8SP_S: u32 = 0x1f80;
24225pub const INSN_FIELD_C_UIMM8SP_S_START: u32 = 7;
24226pub const INSN_FIELD_C_UIMM8SP_S_SIZE: u32 = 6;
24227pub const INSN_FIELD_C_UIMM10SPLO: u32 = 0x7c;
24228pub const INSN_FIELD_C_UIMM10SPLO_START: u32 = 2;
24229pub const INSN_FIELD_C_UIMM10SPLO_SIZE: u32 = 5;
24230pub const INSN_FIELD_C_UIMM10SPHI: u32 = 0x1000;
24231pub const INSN_FIELD_C_UIMM10SPHI_START: u32 = 12;
24232pub const INSN_FIELD_C_UIMM10SPHI_SIZE: u32 = 1;
24233pub const INSN_FIELD_C_UIMM9SPLO: u32 = 0x7c;
24234pub const INSN_FIELD_C_UIMM9SPLO_START: u32 = 2;
24235pub const INSN_FIELD_C_UIMM9SPLO_SIZE: u32 = 5;
24236pub const INSN_FIELD_C_UIMM9SPHI: u32 = 0x1000;
24237pub const INSN_FIELD_C_UIMM9SPHI_START: u32 = 12;
24238pub const INSN_FIELD_C_UIMM9SPHI_SIZE: u32 = 1;
24239pub const INSN_FIELD_C_UIMM10SP_S: u32 = 0x1f80;
24240pub const INSN_FIELD_C_UIMM10SP_S_START: u32 = 7;
24241pub const INSN_FIELD_C_UIMM10SP_S_SIZE: u32 = 6;
24242pub const INSN_FIELD_C_UIMM9SP_S: u32 = 0x1f80;
24243pub const INSN_FIELD_C_UIMM9SP_S_START: u32 = 7;
24244pub const INSN_FIELD_C_UIMM9SP_S_SIZE: u32 = 6;
24245pub const INSN_FIELD_C_UIMM2: u32 = 0x60;
24246pub const INSN_FIELD_C_UIMM2_START: u32 = 5;
24247pub const INSN_FIELD_C_UIMM2_SIZE: u32 = 2;
24248pub const INSN_FIELD_C_UIMM1: u32 = 0x20;
24249pub const INSN_FIELD_C_UIMM1_START: u32 = 5;
24250pub const INSN_FIELD_C_UIMM1_SIZE: u32 = 1;
24251pub const INSN_FIELD_C_RLIST: u32 = 0xf0;
24252pub const INSN_FIELD_C_RLIST_START: u32 = 4;
24253pub const INSN_FIELD_C_RLIST_SIZE: u32 = 4;
24254pub const INSN_FIELD_C_SPIMM: u32 = 0xc;
24255pub const INSN_FIELD_C_SPIMM_START: u32 = 2;
24256pub const INSN_FIELD_C_SPIMM_SIZE: u32 = 2;
24257pub const INSN_FIELD_C_INDEX: u32 = 0x3fc;
24258pub const INSN_FIELD_C_INDEX_START: u32 = 2;
24259pub const INSN_FIELD_C_INDEX_SIZE: u32 = 8;
24260pub const INSN_FIELD_RS1_P: u32 = 0x380;
24261pub const INSN_FIELD_RS1_P_START: u32 = 7;
24262pub const INSN_FIELD_RS1_P_SIZE: u32 = 3;
24263pub const INSN_FIELD_RS2_P: u32 = 0x1c;
24264pub const INSN_FIELD_RS2_P_START: u32 = 2;
24265pub const INSN_FIELD_RS2_P_SIZE: u32 = 3;
24266pub const INSN_FIELD_RD_P: u32 = 0x1c;
24267pub const INSN_FIELD_RD_P_START: u32 = 2;
24268pub const INSN_FIELD_RD_P_SIZE: u32 = 3;
24269pub const INSN_FIELD_RD_RS1_N0: u32 = 0xf80;
24270pub const INSN_FIELD_RD_RS1_N0_START: u32 = 7;
24271pub const INSN_FIELD_RD_RS1_N0_SIZE: u32 = 5;
24272pub const INSN_FIELD_RD_RS1_P: u32 = 0x380;
24273pub const INSN_FIELD_RD_RS1_P_START: u32 = 7;
24274pub const INSN_FIELD_RD_RS1_P_SIZE: u32 = 3;
24275pub const INSN_FIELD_RD_RS1: u32 = 0xf80;
24276pub const INSN_FIELD_RD_RS1_START: u32 = 7;
24277pub const INSN_FIELD_RD_RS1_SIZE: u32 = 5;
24278pub const INSN_FIELD_RD_N2: u32 = 0xf80;
24279pub const INSN_FIELD_RD_N2_START: u32 = 7;
24280pub const INSN_FIELD_RD_N2_SIZE: u32 = 5;
24281pub const INSN_FIELD_RD_N0: u32 = 0xf80;
24282pub const INSN_FIELD_RD_N0_START: u32 = 7;
24283pub const INSN_FIELD_RD_N0_SIZE: u32 = 5;
24284pub const INSN_FIELD_RS1_N0: u32 = 0xf80;
24285pub const INSN_FIELD_RS1_N0_START: u32 = 7;
24286pub const INSN_FIELD_RS1_N0_SIZE: u32 = 5;
24287pub const INSN_FIELD_C_RS2_N0: u32 = 0x7c;
24288pub const INSN_FIELD_C_RS2_N0_START: u32 = 2;
24289pub const INSN_FIELD_C_RS2_N0_SIZE: u32 = 5;
24290pub const INSN_FIELD_C_RS1_N0: u32 = 0xf80;
24291pub const INSN_FIELD_C_RS1_N0_START: u32 = 7;
24292pub const INSN_FIELD_C_RS1_N0_SIZE: u32 = 5;
24293pub const INSN_FIELD_C_RS2: u32 = 0x7c;
24294pub const INSN_FIELD_C_RS2_START: u32 = 2;
24295pub const INSN_FIELD_C_RS2_SIZE: u32 = 5;
24296pub const INSN_FIELD_C_SREG1: u32 = 0x380;
24297pub const INSN_FIELD_C_SREG1_START: u32 = 7;
24298pub const INSN_FIELD_C_SREG1_SIZE: u32 = 3;
24299pub const INSN_FIELD_C_SREG2: u32 = 0x1c;
24300pub const INSN_FIELD_C_SREG2_START: u32 = 2;
24301pub const INSN_FIELD_C_SREG2_SIZE: u32 = 3;
24302pub const INSN_FIELD_MOP_R_T_30: u32 = 0x40000000;
24303pub const INSN_FIELD_MOP_R_T_30_START: u32 = 30;
24304pub const INSN_FIELD_MOP_R_T_30_SIZE: u32 = 1;
24305pub const INSN_FIELD_MOP_R_T_27_26: u32 = 0xc000000;
24306pub const INSN_FIELD_MOP_R_T_27_26_START: u32 = 26;
24307pub const INSN_FIELD_MOP_R_T_27_26_SIZE: u32 = 2;
24308pub const INSN_FIELD_MOP_R_T_21_20: u32 = 0x300000;
24309pub const INSN_FIELD_MOP_R_T_21_20_START: u32 = 20;
24310pub const INSN_FIELD_MOP_R_T_21_20_SIZE: u32 = 2;
24311pub const INSN_FIELD_MOP_RR_T_30: u32 = 0x40000000;
24312pub const INSN_FIELD_MOP_RR_T_30_START: u32 = 30;
24313pub const INSN_FIELD_MOP_RR_T_30_SIZE: u32 = 1;
24314pub const INSN_FIELD_MOP_RR_T_27_26: u32 = 0xc000000;
24315pub const INSN_FIELD_MOP_RR_T_27_26_START: u32 = 26;
24316pub const INSN_FIELD_MOP_RR_T_27_26_SIZE: u32 = 2;
24317pub const INSN_FIELD_C_MOP_T: u32 = 0x700;
24318pub const INSN_FIELD_C_MOP_T_START: u32 = 8;
24319pub const INSN_FIELD_C_MOP_T_SIZE: u32 = 3;
24320pub const INSN_FIELD_RS2_EQ_RS1: u32 = 0x1f00000;
24321pub const INSN_FIELD_RS2_EQ_RS1_START: u32 = 20;
24322pub const INSN_FIELD_RS2_EQ_RS1_SIZE: u32 = 5;
24323
24324#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
24326#[repr(transparent)]
24327pub struct InstructionValue {
24328    pub value: u32,
24329}
24330
24331impl InstructionValue {
24332    pub const fn new(value: u32) -> Self {
24333        Self { value }
24334    }
24335
24336    pub const fn field<const FIELD_START: usize, const FIELD_SIZE: usize>(self) -> u32 {
24337        (self.value >> FIELD_START) & ((1 << FIELD_SIZE) - 1)
24338    }
24339
24340    pub const fn rd(self) -> u32 {
24341        (self.value >> INSN_FIELD_RD_START) & ((1 << INSN_FIELD_RD_SIZE) - 1)
24342    }
24343
24344    pub const fn set_rd(mut self, value: u32) -> Self {
24345        let mask = INSN_FIELD_RD;
24346
24347        self.value &= !mask;
24348        self.value |= (value & ((1 << INSN_FIELD_RD_SIZE) - 1)) << INSN_FIELD_RD_START;
24349        self
24350    }
24351    pub const fn rt(self) -> u32 {
24352        (self.value >> INSN_FIELD_RT_START) & ((1 << INSN_FIELD_RT_SIZE) - 1)
24353    }
24354
24355    pub const fn set_rt(mut self, value: u32) -> Self {
24356        let mask = INSN_FIELD_RT;
24357
24358        self.value &= !mask;
24359        self.value |= (value & ((1 << INSN_FIELD_RT_SIZE) - 1)) << INSN_FIELD_RT_START;
24360        self
24361    }
24362    pub const fn rs1(self) -> u32 {
24363        (self.value >> INSN_FIELD_RS1_START) & ((1 << INSN_FIELD_RS1_SIZE) - 1)
24364    }
24365
24366    pub const fn set_rs1(mut self, value: u32) -> Self {
24367        let mask = INSN_FIELD_RS1;
24368
24369        self.value &= !mask;
24370        self.value |= (value & ((1 << INSN_FIELD_RS1_SIZE) - 1)) << INSN_FIELD_RS1_START;
24371        self
24372    }
24373    pub const fn rs2(self) -> u32 {
24374        (self.value >> INSN_FIELD_RS2_START) & ((1 << INSN_FIELD_RS2_SIZE) - 1)
24375    }
24376
24377    pub const fn set_rs2(mut self, value: u32) -> Self {
24378        let mask = INSN_FIELD_RS2;
24379
24380        self.value &= !mask;
24381        self.value |= (value & ((1 << INSN_FIELD_RS2_SIZE) - 1)) << INSN_FIELD_RS2_START;
24382        self
24383    }
24384    pub const fn rs3(self) -> u32 {
24385        (self.value >> INSN_FIELD_RS3_START) & ((1 << INSN_FIELD_RS3_SIZE) - 1)
24386    }
24387
24388    pub const fn set_rs3(mut self, value: u32) -> Self {
24389        let mask = INSN_FIELD_RS3;
24390
24391        self.value &= !mask;
24392        self.value |= (value & ((1 << INSN_FIELD_RS3_SIZE) - 1)) << INSN_FIELD_RS3_START;
24393        self
24394    }
24395    pub const fn aqrl(self) -> u32 {
24396        (self.value >> INSN_FIELD_AQRL_START) & ((1 << INSN_FIELD_AQRL_SIZE) - 1)
24397    }
24398
24399    pub const fn set_aqrl(mut self, value: u32) -> Self {
24400        let mask = INSN_FIELD_AQRL;
24401
24402        self.value &= !mask;
24403        self.value |= (value & ((1 << INSN_FIELD_AQRL_SIZE) - 1)) << INSN_FIELD_AQRL_START;
24404        self
24405    }
24406    pub const fn aq(self) -> u32 {
24407        (self.value >> INSN_FIELD_AQ_START) & ((1 << INSN_FIELD_AQ_SIZE) - 1)
24408    }
24409
24410    pub const fn set_aq(mut self, value: u32) -> Self {
24411        let mask = INSN_FIELD_AQ;
24412
24413        self.value &= !mask;
24414        self.value |= (value & ((1 << INSN_FIELD_AQ_SIZE) - 1)) << INSN_FIELD_AQ_START;
24415        self
24416    }
24417    pub const fn rl(self) -> u32 {
24418        (self.value >> INSN_FIELD_RL_START) & ((1 << INSN_FIELD_RL_SIZE) - 1)
24419    }
24420
24421    pub const fn set_rl(mut self, value: u32) -> Self {
24422        let mask = INSN_FIELD_RL;
24423
24424        self.value &= !mask;
24425        self.value |= (value & ((1 << INSN_FIELD_RL_SIZE) - 1)) << INSN_FIELD_RL_START;
24426        self
24427    }
24428    pub const fn fm(self) -> u32 {
24429        (self.value >> INSN_FIELD_FM_START) & ((1 << INSN_FIELD_FM_SIZE) - 1)
24430    }
24431
24432    pub const fn set_fm(mut self, value: u32) -> Self {
24433        let mask = INSN_FIELD_FM;
24434
24435        self.value &= !mask;
24436        self.value |= (value & ((1 << INSN_FIELD_FM_SIZE) - 1)) << INSN_FIELD_FM_START;
24437        self
24438    }
24439    pub const fn pred(self) -> u32 {
24440        (self.value >> INSN_FIELD_PRED_START) & ((1 << INSN_FIELD_PRED_SIZE) - 1)
24441    }
24442
24443    pub const fn set_pred(mut self, value: u32) -> Self {
24444        let mask = INSN_FIELD_PRED;
24445
24446        self.value &= !mask;
24447        self.value |= (value & ((1 << INSN_FIELD_PRED_SIZE) - 1)) << INSN_FIELD_PRED_START;
24448        self
24449    }
24450    pub const fn succ(self) -> u32 {
24451        (self.value >> INSN_FIELD_SUCC_START) & ((1 << INSN_FIELD_SUCC_SIZE) - 1)
24452    }
24453
24454    pub const fn set_succ(mut self, value: u32) -> Self {
24455        let mask = INSN_FIELD_SUCC;
24456
24457        self.value &= !mask;
24458        self.value |= (value & ((1 << INSN_FIELD_SUCC_SIZE) - 1)) << INSN_FIELD_SUCC_START;
24459        self
24460    }
24461    pub const fn rm(self) -> u32 {
24462        (self.value >> INSN_FIELD_RM_START) & ((1 << INSN_FIELD_RM_SIZE) - 1)
24463    }
24464
24465    pub const fn set_rm(mut self, value: u32) -> Self {
24466        let mask = INSN_FIELD_RM;
24467
24468        self.value &= !mask;
24469        self.value |= (value & ((1 << INSN_FIELD_RM_SIZE) - 1)) << INSN_FIELD_RM_START;
24470        self
24471    }
24472    pub const fn funct3(self) -> u32 {
24473        (self.value >> INSN_FIELD_FUNCT3_START) & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)
24474    }
24475
24476    pub const fn set_funct3(mut self, value: u32) -> Self {
24477        let mask = INSN_FIELD_FUNCT3;
24478
24479        self.value &= !mask;
24480        self.value |= (value & ((1 << INSN_FIELD_FUNCT3_SIZE) - 1)) << INSN_FIELD_FUNCT3_START;
24481        self
24482    }
24483    pub const fn funct2(self) -> u32 {
24484        (self.value >> INSN_FIELD_FUNCT2_START) & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)
24485    }
24486
24487    pub const fn set_funct2(mut self, value: u32) -> Self {
24488        let mask = INSN_FIELD_FUNCT2;
24489
24490        self.value &= !mask;
24491        self.value |= (value & ((1 << INSN_FIELD_FUNCT2_SIZE) - 1)) << INSN_FIELD_FUNCT2_START;
24492        self
24493    }
24494    pub const fn imm20_raw(self) -> u32 {
24495        (self.value >> INSN_FIELD_IMM20_START) & ((1 << INSN_FIELD_IMM20_SIZE) - 1)
24496    }
24497
24498    pub const fn set_imm20_raw(mut self, value: u32) -> Self {
24499        let mask = INSN_FIELD_IMM20;
24500
24501        self.value &= !mask;
24502        self.value |= (value & ((1 << INSN_FIELD_IMM20_SIZE) - 1)) << INSN_FIELD_IMM20_START;
24503        self
24504    }
24505    pub const fn jimm20_raw(self) -> u32 {
24506        (self.value >> INSN_FIELD_JIMM20_START) & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)
24507    }
24508
24509    pub const fn set_jimm20_raw(mut self, value: u32) -> Self {
24510        let mask = INSN_FIELD_JIMM20;
24511
24512        self.value &= !mask;
24513        self.value |= (value & ((1 << INSN_FIELD_JIMM20_SIZE) - 1)) << INSN_FIELD_JIMM20_START;
24514        self
24515    }
24516    pub const fn imm12_raw(self) -> u32 {
24517        (self.value >> INSN_FIELD_IMM12_START) & ((1 << INSN_FIELD_IMM12_SIZE) - 1)
24518    }
24519
24520    pub const fn set_imm12_raw(mut self, value: u32) -> Self {
24521        let mask = INSN_FIELD_IMM12;
24522
24523        self.value &= !mask;
24524        self.value |= (value & ((1 << INSN_FIELD_IMM12_SIZE) - 1)) << INSN_FIELD_IMM12_START;
24525        self
24526    }
24527    pub const fn csr(self) -> u32 {
24528        (self.value >> INSN_FIELD_CSR_START) & ((1 << INSN_FIELD_CSR_SIZE) - 1)
24529    }
24530
24531    pub const fn set_csr(mut self, value: u32) -> Self {
24532        let mask = INSN_FIELD_CSR;
24533
24534        self.value &= !mask;
24535        self.value |= (value & ((1 << INSN_FIELD_CSR_SIZE) - 1)) << INSN_FIELD_CSR_START;
24536        self
24537    }
24538    pub const fn imm12hi_raw(self) -> u32 {
24539        (self.value >> INSN_FIELD_IMM12HI_START) & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)
24540    }
24541
24542    pub const fn set_imm12hi_raw(mut self, value: u32) -> Self {
24543        let mask = INSN_FIELD_IMM12HI;
24544
24545        self.value &= !mask;
24546        self.value |= (value & ((1 << INSN_FIELD_IMM12HI_SIZE) - 1)) << INSN_FIELD_IMM12HI_START;
24547        self
24548    }
24549    pub const fn bimm12hi_raw(self) -> u32 {
24550        (self.value >> INSN_FIELD_BIMM12HI_START) & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)
24551    }
24552
24553    pub const fn set_bimm12hi_raw(mut self, value: u32) -> Self {
24554        let mask = INSN_FIELD_BIMM12HI;
24555
24556        self.value &= !mask;
24557        self.value |= (value & ((1 << INSN_FIELD_BIMM12HI_SIZE) - 1)) << INSN_FIELD_BIMM12HI_START;
24558        self
24559    }
24560    pub const fn imm12lo_raw(self) -> u32 {
24561        (self.value >> INSN_FIELD_IMM12LO_START) & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)
24562    }
24563
24564    pub const fn set_imm12lo_raw(mut self, value: u32) -> Self {
24565        let mask = INSN_FIELD_IMM12LO;
24566
24567        self.value &= !mask;
24568        self.value |= (value & ((1 << INSN_FIELD_IMM12LO_SIZE) - 1)) << INSN_FIELD_IMM12LO_START;
24569        self
24570    }
24571    pub const fn bimm12lo_raw(self) -> u32 {
24572        (self.value >> INSN_FIELD_BIMM12LO_START) & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)
24573    }
24574
24575    pub const fn set_bimm12lo_raw(mut self, value: u32) -> Self {
24576        let mask = INSN_FIELD_BIMM12LO;
24577
24578        self.value &= !mask;
24579        self.value |= (value & ((1 << INSN_FIELD_BIMM12LO_SIZE) - 1)) << INSN_FIELD_BIMM12LO_START;
24580        self
24581    }
24582    pub const fn shamtq(self) -> u32 {
24583        (self.value >> INSN_FIELD_SHAMTQ_START) & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)
24584    }
24585
24586    pub const fn set_shamtq(mut self, value: u32) -> Self {
24587        let mask = INSN_FIELD_SHAMTQ;
24588
24589        self.value &= !mask;
24590        self.value |= (value & ((1 << INSN_FIELD_SHAMTQ_SIZE) - 1)) << INSN_FIELD_SHAMTQ_START;
24591        self
24592    }
24593    pub const fn shamtw(self) -> u32 {
24594        (self.value >> INSN_FIELD_SHAMTW_START) & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)
24595    }
24596
24597    pub const fn set_shamtw(mut self, value: u32) -> Self {
24598        let mask = INSN_FIELD_SHAMTW;
24599
24600        self.value &= !mask;
24601        self.value |= (value & ((1 << INSN_FIELD_SHAMTW_SIZE) - 1)) << INSN_FIELD_SHAMTW_START;
24602        self
24603    }
24604    pub const fn shamtw4(self) -> u32 {
24605        (self.value >> INSN_FIELD_SHAMTW4_START) & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)
24606    }
24607
24608    pub const fn set_shamtw4(mut self, value: u32) -> Self {
24609        let mask = INSN_FIELD_SHAMTW4;
24610
24611        self.value &= !mask;
24612        self.value |= (value & ((1 << INSN_FIELD_SHAMTW4_SIZE) - 1)) << INSN_FIELD_SHAMTW4_START;
24613        self
24614    }
24615    pub const fn shamtd(self) -> u32 {
24616        (self.value >> INSN_FIELD_SHAMTD_START) & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)
24617    }
24618
24619    pub const fn set_shamtd(mut self, value: u32) -> Self {
24620        let mask = INSN_FIELD_SHAMTD;
24621
24622        self.value &= !mask;
24623        self.value |= (value & ((1 << INSN_FIELD_SHAMTD_SIZE) - 1)) << INSN_FIELD_SHAMTD_START;
24624        self
24625    }
24626    pub const fn bs(self) -> u32 {
24627        (self.value >> INSN_FIELD_BS_START) & ((1 << INSN_FIELD_BS_SIZE) - 1)
24628    }
24629
24630    pub const fn set_bs(mut self, value: u32) -> Self {
24631        let mask = INSN_FIELD_BS;
24632
24633        self.value &= !mask;
24634        self.value |= (value & ((1 << INSN_FIELD_BS_SIZE) - 1)) << INSN_FIELD_BS_START;
24635        self
24636    }
24637    pub const fn rnum(self) -> u32 {
24638        (self.value >> INSN_FIELD_RNUM_START) & ((1 << INSN_FIELD_RNUM_SIZE) - 1)
24639    }
24640
24641    pub const fn set_rnum(mut self, value: u32) -> Self {
24642        let mask = INSN_FIELD_RNUM;
24643
24644        self.value &= !mask;
24645        self.value |= (value & ((1 << INSN_FIELD_RNUM_SIZE) - 1)) << INSN_FIELD_RNUM_START;
24646        self
24647    }
24648    pub const fn rc(self) -> u32 {
24649        (self.value >> INSN_FIELD_RC_START) & ((1 << INSN_FIELD_RC_SIZE) - 1)
24650    }
24651
24652    pub const fn set_rc(mut self, value: u32) -> Self {
24653        let mask = INSN_FIELD_RC;
24654
24655        self.value &= !mask;
24656        self.value |= (value & ((1 << INSN_FIELD_RC_SIZE) - 1)) << INSN_FIELD_RC_START;
24657        self
24658    }
24659    pub const fn imm2_raw(self) -> u32 {
24660        (self.value >> INSN_FIELD_IMM2_START) & ((1 << INSN_FIELD_IMM2_SIZE) - 1)
24661    }
24662
24663    pub const fn set_imm2_raw(mut self, value: u32) -> Self {
24664        let mask = INSN_FIELD_IMM2;
24665
24666        self.value &= !mask;
24667        self.value |= (value & ((1 << INSN_FIELD_IMM2_SIZE) - 1)) << INSN_FIELD_IMM2_START;
24668        self
24669    }
24670    pub const fn imm3_raw(self) -> u32 {
24671        (self.value >> INSN_FIELD_IMM3_START) & ((1 << INSN_FIELD_IMM3_SIZE) - 1)
24672    }
24673
24674    pub const fn set_imm3_raw(mut self, value: u32) -> Self {
24675        let mask = INSN_FIELD_IMM3;
24676
24677        self.value &= !mask;
24678        self.value |= (value & ((1 << INSN_FIELD_IMM3_SIZE) - 1)) << INSN_FIELD_IMM3_START;
24679        self
24680    }
24681    pub const fn imm4_raw(self) -> u32 {
24682        (self.value >> INSN_FIELD_IMM4_START) & ((1 << INSN_FIELD_IMM4_SIZE) - 1)
24683    }
24684
24685    pub const fn set_imm4_raw(mut self, value: u32) -> Self {
24686        let mask = INSN_FIELD_IMM4;
24687
24688        self.value &= !mask;
24689        self.value |= (value & ((1 << INSN_FIELD_IMM4_SIZE) - 1)) << INSN_FIELD_IMM4_START;
24690        self
24691    }
24692    pub const fn imm5_raw(self) -> u32 {
24693        (self.value >> INSN_FIELD_IMM5_START) & ((1 << INSN_FIELD_IMM5_SIZE) - 1)
24694    }
24695
24696    pub const fn set_imm5_raw(mut self, value: u32) -> Self {
24697        let mask = INSN_FIELD_IMM5;
24698
24699        self.value &= !mask;
24700        self.value |= (value & ((1 << INSN_FIELD_IMM5_SIZE) - 1)) << INSN_FIELD_IMM5_START;
24701        self
24702    }
24703    pub const fn imm6_raw(self) -> u32 {
24704        (self.value >> INSN_FIELD_IMM6_START) & ((1 << INSN_FIELD_IMM6_SIZE) - 1)
24705    }
24706
24707    pub const fn set_imm6_raw(mut self, value: u32) -> Self {
24708        let mask = INSN_FIELD_IMM6;
24709
24710        self.value &= !mask;
24711        self.value |= (value & ((1 << INSN_FIELD_IMM6_SIZE) - 1)) << INSN_FIELD_IMM6_START;
24712        self
24713    }
24714    pub const fn zimm_raw(self) -> u32 {
24715        (self.value >> INSN_FIELD_ZIMM_START) & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)
24716    }
24717
24718    pub const fn set_zimm_raw(mut self, value: u32) -> Self {
24719        let mask = INSN_FIELD_ZIMM;
24720
24721        self.value &= !mask;
24722        self.value |= (value & ((1 << INSN_FIELD_ZIMM_SIZE) - 1)) << INSN_FIELD_ZIMM_START;
24723        self
24724    }
24725    pub const fn opcode(self) -> u32 {
24726        (self.value >> INSN_FIELD_OPCODE_START) & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)
24727    }
24728
24729    pub const fn set_opcode(mut self, value: u32) -> Self {
24730        let mask = INSN_FIELD_OPCODE;
24731
24732        self.value &= !mask;
24733        self.value |= (value & ((1 << INSN_FIELD_OPCODE_SIZE) - 1)) << INSN_FIELD_OPCODE_START;
24734        self
24735    }
24736    pub const fn funct7(self) -> u32 {
24737        (self.value >> INSN_FIELD_FUNCT7_START) & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)
24738    }
24739
24740    pub const fn set_funct7(mut self, value: u32) -> Self {
24741        let mask = INSN_FIELD_FUNCT7;
24742
24743        self.value &= !mask;
24744        self.value |= (value & ((1 << INSN_FIELD_FUNCT7_SIZE) - 1)) << INSN_FIELD_FUNCT7_START;
24745        self
24746    }
24747    pub const fn vd(self) -> u32 {
24748        (self.value >> INSN_FIELD_VD_START) & ((1 << INSN_FIELD_VD_SIZE) - 1)
24749    }
24750
24751    pub const fn set_vd(mut self, value: u32) -> Self {
24752        let mask = INSN_FIELD_VD;
24753
24754        self.value &= !mask;
24755        self.value |= (value & ((1 << INSN_FIELD_VD_SIZE) - 1)) << INSN_FIELD_VD_START;
24756        self
24757    }
24758    pub const fn vs3(self) -> u32 {
24759        (self.value >> INSN_FIELD_VS3_START) & ((1 << INSN_FIELD_VS3_SIZE) - 1)
24760    }
24761
24762    pub const fn set_vs3(mut self, value: u32) -> Self {
24763        let mask = INSN_FIELD_VS3;
24764
24765        self.value &= !mask;
24766        self.value |= (value & ((1 << INSN_FIELD_VS3_SIZE) - 1)) << INSN_FIELD_VS3_START;
24767        self
24768    }
24769    pub const fn vs1(self) -> u32 {
24770        (self.value >> INSN_FIELD_VS1_START) & ((1 << INSN_FIELD_VS1_SIZE) - 1)
24771    }
24772
24773    pub const fn set_vs1(mut self, value: u32) -> Self {
24774        let mask = INSN_FIELD_VS1;
24775
24776        self.value &= !mask;
24777        self.value |= (value & ((1 << INSN_FIELD_VS1_SIZE) - 1)) << INSN_FIELD_VS1_START;
24778        self
24779    }
24780    pub const fn vs2(self) -> u32 {
24781        (self.value >> INSN_FIELD_VS2_START) & ((1 << INSN_FIELD_VS2_SIZE) - 1)
24782    }
24783
24784    pub const fn set_vs2(mut self, value: u32) -> Self {
24785        let mask = INSN_FIELD_VS2;
24786
24787        self.value &= !mask;
24788        self.value |= (value & ((1 << INSN_FIELD_VS2_SIZE) - 1)) << INSN_FIELD_VS2_START;
24789        self
24790    }
24791    pub const fn vm(self) -> u32 {
24792        (self.value >> INSN_FIELD_VM_START) & ((1 << INSN_FIELD_VM_SIZE) - 1)
24793    }
24794
24795    pub const fn set_vm(mut self, value: u32) -> Self {
24796        let mask = INSN_FIELD_VM;
24797
24798        self.value &= !mask;
24799        self.value |= (value & ((1 << INSN_FIELD_VM_SIZE) - 1)) << INSN_FIELD_VM_START;
24800        self
24801    }
24802    pub const fn wd(self) -> u32 {
24803        (self.value >> INSN_FIELD_WD_START) & ((1 << INSN_FIELD_WD_SIZE) - 1)
24804    }
24805
24806    pub const fn set_wd(mut self, value: u32) -> Self {
24807        let mask = INSN_FIELD_WD;
24808
24809        self.value &= !mask;
24810        self.value |= (value & ((1 << INSN_FIELD_WD_SIZE) - 1)) << INSN_FIELD_WD_START;
24811        self
24812    }
24813    pub const fn amoop(self) -> u32 {
24814        (self.value >> INSN_FIELD_AMOOP_START) & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)
24815    }
24816
24817    pub const fn set_amoop(mut self, value: u32) -> Self {
24818        let mask = INSN_FIELD_AMOOP;
24819
24820        self.value &= !mask;
24821        self.value |= (value & ((1 << INSN_FIELD_AMOOP_SIZE) - 1)) << INSN_FIELD_AMOOP_START;
24822        self
24823    }
24824    pub const fn nf(self) -> u32 {
24825        (self.value >> INSN_FIELD_NF_START) & ((1 << INSN_FIELD_NF_SIZE) - 1)
24826    }
24827
24828    pub const fn set_nf(mut self, value: u32) -> Self {
24829        let mask = INSN_FIELD_NF;
24830
24831        self.value &= !mask;
24832        self.value |= (value & ((1 << INSN_FIELD_NF_SIZE) - 1)) << INSN_FIELD_NF_START;
24833        self
24834    }
24835    pub const fn simm5_raw(self) -> u32 {
24836        (self.value >> INSN_FIELD_SIMM5_START) & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)
24837    }
24838
24839    pub const fn set_simm5_raw(mut self, value: u32) -> Self {
24840        let mask = INSN_FIELD_SIMM5;
24841
24842        self.value &= !mask;
24843        self.value |= (value & ((1 << INSN_FIELD_SIMM5_SIZE) - 1)) << INSN_FIELD_SIMM5_START;
24844        self
24845    }
24846    pub const fn zimm5_raw(self) -> u32 {
24847        (self.value >> INSN_FIELD_ZIMM5_START) & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)
24848    }
24849
24850    pub const fn set_zimm5_raw(mut self, value: u32) -> Self {
24851        let mask = INSN_FIELD_ZIMM5;
24852
24853        self.value &= !mask;
24854        self.value |= (value & ((1 << INSN_FIELD_ZIMM5_SIZE) - 1)) << INSN_FIELD_ZIMM5_START;
24855        self
24856    }
24857    pub const fn zimm10_raw(self) -> u32 {
24858        (self.value >> INSN_FIELD_ZIMM10_START) & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)
24859    }
24860
24861    pub const fn set_zimm10_raw(mut self, value: u32) -> Self {
24862        let mask = INSN_FIELD_ZIMM10;
24863
24864        self.value &= !mask;
24865        self.value |= (value & ((1 << INSN_FIELD_ZIMM10_SIZE) - 1)) << INSN_FIELD_ZIMM10_START;
24866        self
24867    }
24868    pub const fn zimm11_raw(self) -> u32 {
24869        (self.value >> INSN_FIELD_ZIMM11_START) & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)
24870    }
24871
24872    pub const fn set_zimm11_raw(mut self, value: u32) -> Self {
24873        let mask = INSN_FIELD_ZIMM11;
24874
24875        self.value &= !mask;
24876        self.value |= (value & ((1 << INSN_FIELD_ZIMM11_SIZE) - 1)) << INSN_FIELD_ZIMM11_START;
24877        self
24878    }
24879    pub const fn zimm6hi_raw(self) -> u32 {
24880        (self.value >> INSN_FIELD_ZIMM6HI_START) & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)
24881    }
24882
24883    pub const fn set_zimm6hi_raw(mut self, value: u32) -> Self {
24884        let mask = INSN_FIELD_ZIMM6HI;
24885
24886        self.value &= !mask;
24887        self.value |= (value & ((1 << INSN_FIELD_ZIMM6HI_SIZE) - 1)) << INSN_FIELD_ZIMM6HI_START;
24888        self
24889    }
24890    pub const fn zimm6lo_raw(self) -> u32 {
24891        (self.value >> INSN_FIELD_ZIMM6LO_START) & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)
24892    }
24893
24894    pub const fn set_zimm6lo_raw(mut self, value: u32) -> Self {
24895        let mask = INSN_FIELD_ZIMM6LO;
24896
24897        self.value &= !mask;
24898        self.value |= (value & ((1 << INSN_FIELD_ZIMM6LO_SIZE) - 1)) << INSN_FIELD_ZIMM6LO_START;
24899        self
24900    }
24901    pub const fn c_nzuimm10_raw(self) -> u32 {
24902        (self.value >> INSN_FIELD_C_NZUIMM10_START) & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)
24903    }
24904
24905    pub const fn set_c_nzuimm10_raw(mut self, value: u32) -> Self {
24906        let mask = INSN_FIELD_C_NZUIMM10;
24907
24908        self.value &= !mask;
24909        self.value |=
24910            (value & ((1 << INSN_FIELD_C_NZUIMM10_SIZE) - 1)) << INSN_FIELD_C_NZUIMM10_START;
24911        self
24912    }
24913    pub const fn c_uimm7lo_raw(self) -> u32 {
24914        (self.value >> INSN_FIELD_C_UIMM7LO_START) & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)
24915    }
24916
24917    pub const fn set_c_uimm7lo_raw(mut self, value: u32) -> Self {
24918        let mask = INSN_FIELD_C_UIMM7LO;
24919
24920        self.value &= !mask;
24921        self.value |=
24922            (value & ((1 << INSN_FIELD_C_UIMM7LO_SIZE) - 1)) << INSN_FIELD_C_UIMM7LO_START;
24923        self
24924    }
24925    pub const fn c_uimm7hi_raw(self) -> u32 {
24926        (self.value >> INSN_FIELD_C_UIMM7HI_START) & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)
24927    }
24928
24929    pub const fn set_c_uimm7hi_raw(mut self, value: u32) -> Self {
24930        let mask = INSN_FIELD_C_UIMM7HI;
24931
24932        self.value &= !mask;
24933        self.value |=
24934            (value & ((1 << INSN_FIELD_C_UIMM7HI_SIZE) - 1)) << INSN_FIELD_C_UIMM7HI_START;
24935        self
24936    }
24937    pub const fn c_uimm8lo_raw(self) -> u32 {
24938        (self.value >> INSN_FIELD_C_UIMM8LO_START) & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)
24939    }
24940
24941    pub const fn set_c_uimm8lo_raw(mut self, value: u32) -> Self {
24942        let mask = INSN_FIELD_C_UIMM8LO;
24943
24944        self.value &= !mask;
24945        self.value |=
24946            (value & ((1 << INSN_FIELD_C_UIMM8LO_SIZE) - 1)) << INSN_FIELD_C_UIMM8LO_START;
24947        self
24948    }
24949    pub const fn c_uimm8hi_raw(self) -> u32 {
24950        (self.value >> INSN_FIELD_C_UIMM8HI_START) & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)
24951    }
24952
24953    pub const fn set_c_uimm8hi_raw(mut self, value: u32) -> Self {
24954        let mask = INSN_FIELD_C_UIMM8HI;
24955
24956        self.value &= !mask;
24957        self.value |=
24958            (value & ((1 << INSN_FIELD_C_UIMM8HI_SIZE) - 1)) << INSN_FIELD_C_UIMM8HI_START;
24959        self
24960    }
24961    pub const fn c_uimm9lo_raw(self) -> u32 {
24962        (self.value >> INSN_FIELD_C_UIMM9LO_START) & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)
24963    }
24964
24965    pub const fn set_c_uimm9lo_raw(mut self, value: u32) -> Self {
24966        let mask = INSN_FIELD_C_UIMM9LO;
24967
24968        self.value &= !mask;
24969        self.value |=
24970            (value & ((1 << INSN_FIELD_C_UIMM9LO_SIZE) - 1)) << INSN_FIELD_C_UIMM9LO_START;
24971        self
24972    }
24973    pub const fn c_uimm9hi_raw(self) -> u32 {
24974        (self.value >> INSN_FIELD_C_UIMM9HI_START) & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)
24975    }
24976
24977    pub const fn set_c_uimm9hi_raw(mut self, value: u32) -> Self {
24978        let mask = INSN_FIELD_C_UIMM9HI;
24979
24980        self.value &= !mask;
24981        self.value |=
24982            (value & ((1 << INSN_FIELD_C_UIMM9HI_SIZE) - 1)) << INSN_FIELD_C_UIMM9HI_START;
24983        self
24984    }
24985    pub const fn c_nzimm6lo_raw(self) -> u32 {
24986        (self.value >> INSN_FIELD_C_NZIMM6LO_START) & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)
24987    }
24988
24989    pub const fn set_c_nzimm6lo_raw(mut self, value: u32) -> Self {
24990        let mask = INSN_FIELD_C_NZIMM6LO;
24991
24992        self.value &= !mask;
24993        self.value |=
24994            (value & ((1 << INSN_FIELD_C_NZIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM6LO_START;
24995        self
24996    }
24997    pub const fn c_nzimm6hi_raw(self) -> u32 {
24998        (self.value >> INSN_FIELD_C_NZIMM6HI_START) & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)
24999    }
25000
25001    pub const fn set_c_nzimm6hi_raw(mut self, value: u32) -> Self {
25002        let mask = INSN_FIELD_C_NZIMM6HI;
25003
25004        self.value &= !mask;
25005        self.value |=
25006            (value & ((1 << INSN_FIELD_C_NZIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM6HI_START;
25007        self
25008    }
25009    pub const fn c_imm6lo_raw(self) -> u32 {
25010        (self.value >> INSN_FIELD_C_IMM6LO_START) & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)
25011    }
25012
25013    pub const fn set_c_imm6lo_raw(mut self, value: u32) -> Self {
25014        let mask = INSN_FIELD_C_IMM6LO;
25015
25016        self.value &= !mask;
25017        self.value |= (value & ((1 << INSN_FIELD_C_IMM6LO_SIZE) - 1)) << INSN_FIELD_C_IMM6LO_START;
25018        self
25019    }
25020    pub const fn c_imm6hi_raw(self) -> u32 {
25021        (self.value >> INSN_FIELD_C_IMM6HI_START) & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)
25022    }
25023
25024    pub const fn set_c_imm6hi_raw(mut self, value: u32) -> Self {
25025        let mask = INSN_FIELD_C_IMM6HI;
25026
25027        self.value &= !mask;
25028        self.value |= (value & ((1 << INSN_FIELD_C_IMM6HI_SIZE) - 1)) << INSN_FIELD_C_IMM6HI_START;
25029        self
25030    }
25031    pub const fn c_nzimm10hi_raw(self) -> u32 {
25032        (self.value >> INSN_FIELD_C_NZIMM10HI_START) & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)
25033    }
25034
25035    pub const fn set_c_nzimm10hi_raw(mut self, value: u32) -> Self {
25036        let mask = INSN_FIELD_C_NZIMM10HI;
25037
25038        self.value &= !mask;
25039        self.value |=
25040            (value & ((1 << INSN_FIELD_C_NZIMM10HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM10HI_START;
25041        self
25042    }
25043    pub const fn c_nzimm10lo_raw(self) -> u32 {
25044        (self.value >> INSN_FIELD_C_NZIMM10LO_START) & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)
25045    }
25046
25047    pub const fn set_c_nzimm10lo_raw(mut self, value: u32) -> Self {
25048        let mask = INSN_FIELD_C_NZIMM10LO;
25049
25050        self.value &= !mask;
25051        self.value |=
25052            (value & ((1 << INSN_FIELD_C_NZIMM10LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM10LO_START;
25053        self
25054    }
25055    pub const fn c_nzimm18hi_raw(self) -> u32 {
25056        (self.value >> INSN_FIELD_C_NZIMM18HI_START) & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)
25057    }
25058
25059    pub const fn set_c_nzimm18hi_raw(mut self, value: u32) -> Self {
25060        let mask = INSN_FIELD_C_NZIMM18HI;
25061
25062        self.value &= !mask;
25063        self.value |=
25064            (value & ((1 << INSN_FIELD_C_NZIMM18HI_SIZE) - 1)) << INSN_FIELD_C_NZIMM18HI_START;
25065        self
25066    }
25067    pub const fn c_nzimm18lo_raw(self) -> u32 {
25068        (self.value >> INSN_FIELD_C_NZIMM18LO_START) & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)
25069    }
25070
25071    pub const fn set_c_nzimm18lo_raw(mut self, value: u32) -> Self {
25072        let mask = INSN_FIELD_C_NZIMM18LO;
25073
25074        self.value &= !mask;
25075        self.value |=
25076            (value & ((1 << INSN_FIELD_C_NZIMM18LO_SIZE) - 1)) << INSN_FIELD_C_NZIMM18LO_START;
25077        self
25078    }
25079    pub const fn c_imm12_raw(self) -> u32 {
25080        (self.value >> INSN_FIELD_C_IMM12_START) & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)
25081    }
25082
25083    pub const fn set_c_imm12_raw(mut self, value: u32) -> Self {
25084        let mask = INSN_FIELD_C_IMM12;
25085
25086        self.value &= !mask;
25087        self.value |= (value & ((1 << INSN_FIELD_C_IMM12_SIZE) - 1)) << INSN_FIELD_C_IMM12_START;
25088        self
25089    }
25090    pub const fn c_bimm9lo_raw(self) -> u32 {
25091        (self.value >> INSN_FIELD_C_BIMM9LO_START) & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)
25092    }
25093
25094    pub const fn set_c_bimm9lo_raw(mut self, value: u32) -> Self {
25095        let mask = INSN_FIELD_C_BIMM9LO;
25096
25097        self.value &= !mask;
25098        self.value |=
25099            (value & ((1 << INSN_FIELD_C_BIMM9LO_SIZE) - 1)) << INSN_FIELD_C_BIMM9LO_START;
25100        self
25101    }
25102    pub const fn c_bimm9hi_raw(self) -> u32 {
25103        (self.value >> INSN_FIELD_C_BIMM9HI_START) & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)
25104    }
25105
25106    pub const fn set_c_bimm9hi_raw(mut self, value: u32) -> Self {
25107        let mask = INSN_FIELD_C_BIMM9HI;
25108
25109        self.value &= !mask;
25110        self.value |=
25111            (value & ((1 << INSN_FIELD_C_BIMM9HI_SIZE) - 1)) << INSN_FIELD_C_BIMM9HI_START;
25112        self
25113    }
25114    pub const fn c_nzuimm5_raw(self) -> u32 {
25115        (self.value >> INSN_FIELD_C_NZUIMM5_START) & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)
25116    }
25117
25118    pub const fn set_c_nzuimm5_raw(mut self, value: u32) -> Self {
25119        let mask = INSN_FIELD_C_NZUIMM5;
25120
25121        self.value &= !mask;
25122        self.value |=
25123            (value & ((1 << INSN_FIELD_C_NZUIMM5_SIZE) - 1)) << INSN_FIELD_C_NZUIMM5_START;
25124        self
25125    }
25126    pub const fn c_nzuimm6lo_raw(self) -> u32 {
25127        (self.value >> INSN_FIELD_C_NZUIMM6LO_START) & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)
25128    }
25129
25130    pub const fn set_c_nzuimm6lo_raw(mut self, value: u32) -> Self {
25131        let mask = INSN_FIELD_C_NZUIMM6LO;
25132
25133        self.value &= !mask;
25134        self.value |=
25135            (value & ((1 << INSN_FIELD_C_NZUIMM6LO_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6LO_START;
25136        self
25137    }
25138    pub const fn c_nzuimm6hi_raw(self) -> u32 {
25139        (self.value >> INSN_FIELD_C_NZUIMM6HI_START) & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)
25140    }
25141
25142    pub const fn set_c_nzuimm6hi_raw(mut self, value: u32) -> Self {
25143        let mask = INSN_FIELD_C_NZUIMM6HI;
25144
25145        self.value &= !mask;
25146        self.value |=
25147            (value & ((1 << INSN_FIELD_C_NZUIMM6HI_SIZE) - 1)) << INSN_FIELD_C_NZUIMM6HI_START;
25148        self
25149    }
25150    pub const fn c_uimm8splo_raw(self) -> u32 {
25151        (self.value >> INSN_FIELD_C_UIMM8SPLO_START) & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)
25152    }
25153
25154    pub const fn set_c_uimm8splo_raw(mut self, value: u32) -> Self {
25155        let mask = INSN_FIELD_C_UIMM8SPLO;
25156
25157        self.value &= !mask;
25158        self.value |=
25159            (value & ((1 << INSN_FIELD_C_UIMM8SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPLO_START;
25160        self
25161    }
25162    pub const fn c_uimm8sphi_raw(self) -> u32 {
25163        (self.value >> INSN_FIELD_C_UIMM8SPHI_START) & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)
25164    }
25165
25166    pub const fn set_c_uimm8sphi_raw(mut self, value: u32) -> Self {
25167        let mask = INSN_FIELD_C_UIMM8SPHI;
25168
25169        self.value &= !mask;
25170        self.value |=
25171            (value & ((1 << INSN_FIELD_C_UIMM8SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM8SPHI_START;
25172        self
25173    }
25174    pub const fn c_uimm8sp_s_raw(self) -> u32 {
25175        (self.value >> INSN_FIELD_C_UIMM8SP_S_START) & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)
25176    }
25177
25178    pub const fn set_c_uimm8sp_s_raw(mut self, value: u32) -> Self {
25179        let mask = INSN_FIELD_C_UIMM8SP_S;
25180
25181        self.value &= !mask;
25182        self.value |=
25183            (value & ((1 << INSN_FIELD_C_UIMM8SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM8SP_S_START;
25184        self
25185    }
25186    pub const fn c_uimm10splo_raw(self) -> u32 {
25187        (self.value >> INSN_FIELD_C_UIMM10SPLO_START) & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)
25188    }
25189
25190    pub const fn set_c_uimm10splo_raw(mut self, value: u32) -> Self {
25191        let mask = INSN_FIELD_C_UIMM10SPLO;
25192
25193        self.value &= !mask;
25194        self.value |=
25195            (value & ((1 << INSN_FIELD_C_UIMM10SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPLO_START;
25196        self
25197    }
25198    pub const fn c_uimm10sphi_raw(self) -> u32 {
25199        (self.value >> INSN_FIELD_C_UIMM10SPHI_START) & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)
25200    }
25201
25202    pub const fn set_c_uimm10sphi_raw(mut self, value: u32) -> Self {
25203        let mask = INSN_FIELD_C_UIMM10SPHI;
25204
25205        self.value &= !mask;
25206        self.value |=
25207            (value & ((1 << INSN_FIELD_C_UIMM10SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM10SPHI_START;
25208        self
25209    }
25210    pub const fn c_uimm9splo_raw(self) -> u32 {
25211        (self.value >> INSN_FIELD_C_UIMM9SPLO_START) & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)
25212    }
25213
25214    pub const fn set_c_uimm9splo_raw(mut self, value: u32) -> Self {
25215        let mask = INSN_FIELD_C_UIMM9SPLO;
25216
25217        self.value &= !mask;
25218        self.value |=
25219            (value & ((1 << INSN_FIELD_C_UIMM9SPLO_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPLO_START;
25220        self
25221    }
25222    pub const fn c_uimm9sphi_raw(self) -> u32 {
25223        (self.value >> INSN_FIELD_C_UIMM9SPHI_START) & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)
25224    }
25225
25226    pub const fn set_c_uimm9sphi_raw(mut self, value: u32) -> Self {
25227        let mask = INSN_FIELD_C_UIMM9SPHI;
25228
25229        self.value &= !mask;
25230        self.value |=
25231            (value & ((1 << INSN_FIELD_C_UIMM9SPHI_SIZE) - 1)) << INSN_FIELD_C_UIMM9SPHI_START;
25232        self
25233    }
25234    pub const fn c_uimm10sp_s_raw(self) -> u32 {
25235        (self.value >> INSN_FIELD_C_UIMM10SP_S_START) & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)
25236    }
25237
25238    pub const fn set_c_uimm10sp_s_raw(mut self, value: u32) -> Self {
25239        let mask = INSN_FIELD_C_UIMM10SP_S;
25240
25241        self.value &= !mask;
25242        self.value |=
25243            (value & ((1 << INSN_FIELD_C_UIMM10SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM10SP_S_START;
25244        self
25245    }
25246    pub const fn c_uimm9sp_s_raw(self) -> u32 {
25247        (self.value >> INSN_FIELD_C_UIMM9SP_S_START) & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)
25248    }
25249
25250    pub const fn set_c_uimm9sp_s_raw(mut self, value: u32) -> Self {
25251        let mask = INSN_FIELD_C_UIMM9SP_S;
25252
25253        self.value &= !mask;
25254        self.value |=
25255            (value & ((1 << INSN_FIELD_C_UIMM9SP_S_SIZE) - 1)) << INSN_FIELD_C_UIMM9SP_S_START;
25256        self
25257    }
25258    pub const fn c_uimm2_raw(self) -> u32 {
25259        (self.value >> INSN_FIELD_C_UIMM2_START) & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)
25260    }
25261
25262    pub const fn set_c_uimm2_raw(mut self, value: u32) -> Self {
25263        let mask = INSN_FIELD_C_UIMM2;
25264
25265        self.value &= !mask;
25266        self.value |= (value & ((1 << INSN_FIELD_C_UIMM2_SIZE) - 1)) << INSN_FIELD_C_UIMM2_START;
25267        self
25268    }
25269    pub const fn c_uimm1_raw(self) -> u32 {
25270        (self.value >> INSN_FIELD_C_UIMM1_START) & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)
25271    }
25272
25273    pub const fn set_c_uimm1_raw(mut self, value: u32) -> Self {
25274        let mask = INSN_FIELD_C_UIMM1;
25275
25276        self.value &= !mask;
25277        self.value |= (value & ((1 << INSN_FIELD_C_UIMM1_SIZE) - 1)) << INSN_FIELD_C_UIMM1_START;
25278        self
25279    }
25280    pub const fn c_rlist(self) -> u32 {
25281        (self.value >> INSN_FIELD_C_RLIST_START) & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)
25282    }
25283
25284    pub const fn set_c_rlist(mut self, value: u32) -> Self {
25285        let mask = INSN_FIELD_C_RLIST;
25286
25287        self.value &= !mask;
25288        self.value |= (value & ((1 << INSN_FIELD_C_RLIST_SIZE) - 1)) << INSN_FIELD_C_RLIST_START;
25289        self
25290    }
25291    pub const fn c_spimm_raw(self) -> u32 {
25292        (self.value >> INSN_FIELD_C_SPIMM_START) & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)
25293    }
25294
25295    pub const fn set_c_spimm_raw(mut self, value: u32) -> Self {
25296        let mask = INSN_FIELD_C_SPIMM;
25297
25298        self.value &= !mask;
25299        self.value |= (value & ((1 << INSN_FIELD_C_SPIMM_SIZE) - 1)) << INSN_FIELD_C_SPIMM_START;
25300        self
25301    }
25302    pub const fn c_index(self) -> u32 {
25303        (self.value >> INSN_FIELD_C_INDEX_START) & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)
25304    }
25305
25306    pub const fn set_c_index(mut self, value: u32) -> Self {
25307        let mask = INSN_FIELD_C_INDEX;
25308
25309        self.value &= !mask;
25310        self.value |= (value & ((1 << INSN_FIELD_C_INDEX_SIZE) - 1)) << INSN_FIELD_C_INDEX_START;
25311        self
25312    }
25313    pub const fn rs1_p(self) -> u32 {
25314        (self.value >> INSN_FIELD_RS1_P_START) & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)
25315    }
25316
25317    pub const fn set_rs1_p(mut self, value: u32) -> Self {
25318        let mask = INSN_FIELD_RS1_P;
25319
25320        self.value &= !mask;
25321        self.value |= (value & ((1 << INSN_FIELD_RS1_P_SIZE) - 1)) << INSN_FIELD_RS1_P_START;
25322        self
25323    }
25324    pub const fn rs2_p(self) -> u32 {
25325        (self.value >> INSN_FIELD_RS2_P_START) & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)
25326    }
25327
25328    pub const fn set_rs2_p(mut self, value: u32) -> Self {
25329        let mask = INSN_FIELD_RS2_P;
25330
25331        self.value &= !mask;
25332        self.value |= (value & ((1 << INSN_FIELD_RS2_P_SIZE) - 1)) << INSN_FIELD_RS2_P_START;
25333        self
25334    }
25335    pub const fn rd_p(self) -> u32 {
25336        (self.value >> INSN_FIELD_RD_P_START) & ((1 << INSN_FIELD_RD_P_SIZE) - 1)
25337    }
25338
25339    pub const fn set_rd_p(mut self, value: u32) -> Self {
25340        let mask = INSN_FIELD_RD_P;
25341
25342        self.value &= !mask;
25343        self.value |= (value & ((1 << INSN_FIELD_RD_P_SIZE) - 1)) << INSN_FIELD_RD_P_START;
25344        self
25345    }
25346    pub const fn rd_rs1_n0(self) -> u32 {
25347        (self.value >> INSN_FIELD_RD_RS1_N0_START) & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)
25348    }
25349
25350    pub const fn set_rd_rs1_n0(mut self, value: u32) -> Self {
25351        let mask = INSN_FIELD_RD_RS1_N0;
25352
25353        self.value &= !mask;
25354        self.value |=
25355            (value & ((1 << INSN_FIELD_RD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RD_RS1_N0_START;
25356        self
25357    }
25358    pub const fn rd_rs1_p(self) -> u32 {
25359        (self.value >> INSN_FIELD_RD_RS1_P_START) & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)
25360    }
25361
25362    pub const fn set_rd_rs1_p(mut self, value: u32) -> Self {
25363        let mask = INSN_FIELD_RD_RS1_P;
25364
25365        self.value &= !mask;
25366        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_P_SIZE) - 1)) << INSN_FIELD_RD_RS1_P_START;
25367        self
25368    }
25369    pub const fn rd_rs1(self) -> u32 {
25370        (self.value >> INSN_FIELD_RD_RS1_START) & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)
25371    }
25372
25373    pub const fn set_rd_rs1(mut self, value: u32) -> Self {
25374        let mask = INSN_FIELD_RD_RS1;
25375
25376        self.value &= !mask;
25377        self.value |= (value & ((1 << INSN_FIELD_RD_RS1_SIZE) - 1)) << INSN_FIELD_RD_RS1_START;
25378        self
25379    }
25380    pub const fn rd_n2(self) -> u32 {
25381        (self.value >> INSN_FIELD_RD_N2_START) & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)
25382    }
25383
25384    pub const fn set_rd_n2(mut self, value: u32) -> Self {
25385        let mask = INSN_FIELD_RD_N2;
25386
25387        self.value &= !mask;
25388        self.value |= (value & ((1 << INSN_FIELD_RD_N2_SIZE) - 1)) << INSN_FIELD_RD_N2_START;
25389        self
25390    }
25391    pub const fn rd_n0(self) -> u32 {
25392        (self.value >> INSN_FIELD_RD_N0_START) & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)
25393    }
25394
25395    pub const fn set_rd_n0(mut self, value: u32) -> Self {
25396        let mask = INSN_FIELD_RD_N0;
25397
25398        self.value &= !mask;
25399        self.value |= (value & ((1 << INSN_FIELD_RD_N0_SIZE) - 1)) << INSN_FIELD_RD_N0_START;
25400        self
25401    }
25402    pub const fn rs1_n0(self) -> u32 {
25403        (self.value >> INSN_FIELD_RS1_N0_START) & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)
25404    }
25405
25406    pub const fn set_rs1_n0(mut self, value: u32) -> Self {
25407        let mask = INSN_FIELD_RS1_N0;
25408
25409        self.value &= !mask;
25410        self.value |= (value & ((1 << INSN_FIELD_RS1_N0_SIZE) - 1)) << INSN_FIELD_RS1_N0_START;
25411        self
25412    }
25413    pub const fn c_rs2_n0(self) -> u32 {
25414        (self.value >> INSN_FIELD_C_RS2_N0_START) & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)
25415    }
25416
25417    pub const fn set_c_rs2_n0(mut self, value: u32) -> Self {
25418        let mask = INSN_FIELD_C_RS2_N0;
25419
25420        self.value &= !mask;
25421        self.value |= (value & ((1 << INSN_FIELD_C_RS2_N0_SIZE) - 1)) << INSN_FIELD_C_RS2_N0_START;
25422        self
25423    }
25424    pub const fn c_rs1_n0(self) -> u32 {
25425        (self.value >> INSN_FIELD_C_RS1_N0_START) & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)
25426    }
25427
25428    pub const fn set_c_rs1_n0(mut self, value: u32) -> Self {
25429        let mask = INSN_FIELD_C_RS1_N0;
25430
25431        self.value &= !mask;
25432        self.value |= (value & ((1 << INSN_FIELD_C_RS1_N0_SIZE) - 1)) << INSN_FIELD_C_RS1_N0_START;
25433        self
25434    }
25435    pub const fn c_rs2(self) -> u32 {
25436        (self.value >> INSN_FIELD_C_RS2_START) & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)
25437    }
25438
25439    pub const fn set_c_rs2(mut self, value: u32) -> Self {
25440        let mask = INSN_FIELD_C_RS2;
25441
25442        self.value &= !mask;
25443        self.value |= (value & ((1 << INSN_FIELD_C_RS2_SIZE) - 1)) << INSN_FIELD_C_RS2_START;
25444        self
25445    }
25446    pub const fn c_sreg1(self) -> u32 {
25447        (self.value >> INSN_FIELD_C_SREG1_START) & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)
25448    }
25449
25450    pub const fn set_c_sreg1(mut self, value: u32) -> Self {
25451        let mask = INSN_FIELD_C_SREG1;
25452
25453        self.value &= !mask;
25454        self.value |= (value & ((1 << INSN_FIELD_C_SREG1_SIZE) - 1)) << INSN_FIELD_C_SREG1_START;
25455        self
25456    }
25457    pub const fn c_sreg2(self) -> u32 {
25458        (self.value >> INSN_FIELD_C_SREG2_START) & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)
25459    }
25460
25461    pub const fn set_c_sreg2(mut self, value: u32) -> Self {
25462        let mask = INSN_FIELD_C_SREG2;
25463
25464        self.value &= !mask;
25465        self.value |= (value & ((1 << INSN_FIELD_C_SREG2_SIZE) - 1)) << INSN_FIELD_C_SREG2_START;
25466        self
25467    }
25468    pub const fn mop_r_t_30(self) -> u32 {
25469        (self.value >> INSN_FIELD_MOP_R_T_30_START) & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)
25470    }
25471
25472    pub const fn set_mop_r_t_30(mut self, value: u32) -> Self {
25473        let mask = INSN_FIELD_MOP_R_T_30;
25474
25475        self.value &= !mask;
25476        self.value |=
25477            (value & ((1 << INSN_FIELD_MOP_R_T_30_SIZE) - 1)) << INSN_FIELD_MOP_R_T_30_START;
25478        self
25479    }
25480    pub const fn mop_r_t_27_26(self) -> u32 {
25481        (self.value >> INSN_FIELD_MOP_R_T_27_26_START) & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)
25482    }
25483
25484    pub const fn set_mop_r_t_27_26(mut self, value: u32) -> Self {
25485        let mask = INSN_FIELD_MOP_R_T_27_26;
25486
25487        self.value &= !mask;
25488        self.value |=
25489            (value & ((1 << INSN_FIELD_MOP_R_T_27_26_SIZE) - 1)) << INSN_FIELD_MOP_R_T_27_26_START;
25490        self
25491    }
25492    pub const fn mop_r_t_21_20(self) -> u32 {
25493        (self.value >> INSN_FIELD_MOP_R_T_21_20_START) & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)
25494    }
25495
25496    pub const fn set_mop_r_t_21_20(mut self, value: u32) -> Self {
25497        let mask = INSN_FIELD_MOP_R_T_21_20;
25498
25499        self.value &= !mask;
25500        self.value |=
25501            (value & ((1 << INSN_FIELD_MOP_R_T_21_20_SIZE) - 1)) << INSN_FIELD_MOP_R_T_21_20_START;
25502        self
25503    }
25504    pub const fn mop_rr_t_30(self) -> u32 {
25505        (self.value >> INSN_FIELD_MOP_RR_T_30_START) & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)
25506    }
25507
25508    pub const fn set_mop_rr_t_30(mut self, value: u32) -> Self {
25509        let mask = INSN_FIELD_MOP_RR_T_30;
25510
25511        self.value &= !mask;
25512        self.value |=
25513            (value & ((1 << INSN_FIELD_MOP_RR_T_30_SIZE) - 1)) << INSN_FIELD_MOP_RR_T_30_START;
25514        self
25515    }
25516    pub const fn mop_rr_t_27_26(self) -> u32 {
25517        (self.value >> INSN_FIELD_MOP_RR_T_27_26_START)
25518            & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1)
25519    }
25520
25521    pub const fn set_mop_rr_t_27_26(mut self, value: u32) -> Self {
25522        let mask = INSN_FIELD_MOP_RR_T_27_26;
25523
25524        self.value &= !mask;
25525        self.value |= (value & ((1 << INSN_FIELD_MOP_RR_T_27_26_SIZE) - 1))
25526            << INSN_FIELD_MOP_RR_T_27_26_START;
25527        self
25528    }
25529    pub const fn c_mop_t(self) -> u32 {
25530        (self.value >> INSN_FIELD_C_MOP_T_START) & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)
25531    }
25532
25533    pub const fn set_c_mop_t(mut self, value: u32) -> Self {
25534        let mask = INSN_FIELD_C_MOP_T;
25535
25536        self.value &= !mask;
25537        self.value |= (value & ((1 << INSN_FIELD_C_MOP_T_SIZE) - 1)) << INSN_FIELD_C_MOP_T_START;
25538        self
25539    }
25540    pub const fn rs2_eq_rs1(self) -> u32 {
25541        (self.value >> INSN_FIELD_RS2_EQ_RS1_START) & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)
25542    }
25543
25544    pub const fn set_rs2_eq_rs1(mut self, value: u32) -> Self {
25545        let mask = INSN_FIELD_RS2_EQ_RS1;
25546
25547        self.value &= !mask;
25548        self.value |=
25549            (value & ((1 << INSN_FIELD_RS2_EQ_RS1_SIZE) - 1)) << INSN_FIELD_RS2_EQ_RS1_START;
25550        self
25551    }
25552
25553    pub const fn imm20(self) -> i32 {
25555        decode_immediate(&IMM20, self.value as _) as _
25556    }
25557
25558    pub const fn set_imm20(mut self, imm20: i32) -> Self {
25559        self.value |= encode_immediate(&IMM20, imm20 as _);
25560        self
25561    }
25562
25563    pub const fn jimm20(self) -> i32 {
25565        decode_immediate(&JIMM20, self.value as _) as _
25566    }
25567
25568    pub const fn set_jimm20(mut self, jimm20: i32) -> Self {
25569        self.value |= encode_immediate(&JIMM20, jimm20 as _);
25570        self
25571    }
25572
25573    pub const fn imm12(self) -> i32 {
25575        decode_immediate(&IMM12, self.value as _) as _
25576    }
25577
25578    pub const fn set_imm12(mut self, imm12: i32) -> Self {
25579        self.value |= encode_immediate(&IMM12, imm12 as _);
25580        self
25581    }
25582
25583    pub const fn imm12lohi(self) -> i32 {
25585        decode_immediate(&IMM12LOHI, self.value as _) as _
25586    }
25587
25588    pub const fn set_imm12lohi(mut self, imm12lohi: i32) -> Self {
25589        self.value |= encode_immediate(&IMM12LOHI, imm12lohi as _);
25590        self
25591    }
25592
25593    pub const fn bimm12lohi(self) -> i32 {
25595        decode_immediate(&BIMM12LOHI, self.value as _) as _
25596    }
25597
25598    pub const fn set_bimm12lohi(mut self, bimm12lohi: i32) -> Self {
25599        self.value |= encode_immediate(&BIMM12LOHI, bimm12lohi as _);
25600        self
25601    }
25602
25603    pub const fn imm2(self) -> i32 {
25605        decode_immediate(&IMM2, self.value as _) as _
25606    }
25607
25608    pub const fn set_imm2(mut self, imm2: i32) -> Self {
25609        self.value |= encode_immediate(&IMM2, imm2 as _);
25610        self
25611    }
25612
25613    pub const fn imm3(self) -> i32 {
25615        decode_immediate(&IMM3, self.value as _) as _
25616    }
25617
25618    pub const fn set_imm3(mut self, imm3: i32) -> Self {
25619        self.value |= encode_immediate(&IMM3, imm3 as _);
25620        self
25621    }
25622
25623    pub const fn imm4(self) -> i32 {
25625        decode_immediate(&IMM4, self.value as _) as _
25626    }
25627
25628    pub const fn set_imm4(mut self, imm4: i32) -> Self {
25629        self.value |= encode_immediate(&IMM4, imm4 as _);
25630        self
25631    }
25632
25633    pub const fn imm5(self) -> i32 {
25635        decode_immediate(&IMM5, self.value as _) as _
25636    }
25637
25638    pub const fn set_imm5(mut self, imm5: i32) -> Self {
25639        self.value |= encode_immediate(&IMM5, imm5 as _);
25640        self
25641    }
25642
25643    pub const fn imm6(self) -> i32 {
25645        decode_immediate(&IMM6, self.value as _) as _
25646    }
25647
25648    pub const fn set_imm6(mut self, imm6: i32) -> Self {
25649        self.value |= encode_immediate(&IMM6, imm6 as _);
25650        self
25651    }
25652
25653    pub const fn zimm(self) -> i32 {
25655        decode_immediate(&ZIMM, self.value as _) as _
25656    }
25657
25658    pub const fn set_zimm(mut self, zimm: i32) -> Self {
25659        self.value |= encode_immediate(&ZIMM, zimm as _);
25660        self
25661    }
25662
25663    pub const fn simm5(self) -> i32 {
25665        decode_immediate(&SIMM5, self.value as _) as _
25666    }
25667
25668    pub const fn set_simm5(mut self, simm5: i32) -> Self {
25669        self.value |= encode_immediate(&SIMM5, simm5 as _);
25670        self
25671    }
25672
25673    pub const fn zimm5(self) -> i32 {
25675        decode_immediate(&ZIMM5, self.value as _) as _
25676    }
25677
25678    pub const fn set_zimm5(mut self, zimm5: i32) -> Self {
25679        self.value |= encode_immediate(&ZIMM5, zimm5 as _);
25680        self
25681    }
25682
25683    pub const fn zimm10(self) -> i32 {
25685        decode_immediate(&ZIMM10, self.value as _) as _
25686    }
25687
25688    pub const fn set_zimm10(mut self, zimm10: i32) -> Self {
25689        self.value |= encode_immediate(&ZIMM10, zimm10 as _);
25690        self
25691    }
25692
25693    pub const fn zimm11(self) -> i32 {
25695        decode_immediate(&ZIMM11, self.value as _) as _
25696    }
25697
25698    pub const fn set_zimm11(mut self, zimm11: i32) -> Self {
25699        self.value |= encode_immediate(&ZIMM11, zimm11 as _);
25700        self
25701    }
25702
25703    pub const fn zimm6lohi(self) -> i32 {
25705        decode_immediate(&ZIMM6LOHI, self.value as _) as _
25706    }
25707
25708    pub const fn set_zimm6lohi(mut self, zimm6lohi: i32) -> Self {
25709        self.value |= encode_immediate(&ZIMM6LOHI, zimm6lohi as _);
25710        self
25711    }
25712
25713    pub const fn c_nzuimm10(self) -> u32 {
25715        decode_immediate(&C_NZUIMM10, self.value as _) as _
25716    }
25717
25718    pub const fn set_c_nzuimm10(mut self, c_nzuimm10: u32) -> Self {
25719        self.value |= encode_immediate(&C_NZUIMM10, c_nzuimm10 as _);
25720        self
25721    }
25722
25723    pub const fn c_uimm7lohi(self) -> u32 {
25725        decode_immediate(&C_UIMM7LOHI, self.value as _) as _
25726    }
25727
25728    pub const fn set_c_uimm7lohi(mut self, c_uimm7lohi: u32) -> Self {
25729        self.value |= encode_immediate(&C_UIMM7LOHI, c_uimm7lohi as _);
25730        self
25731    }
25732
25733    pub const fn c_uimm8lohi(self) -> u32 {
25735        decode_immediate(&C_UIMM8LOHI, self.value as _) as _
25736    }
25737
25738    pub const fn set_c_uimm8lohi(mut self, c_uimm8lohi: u32) -> Self {
25739        self.value |= encode_immediate(&C_UIMM8LOHI, c_uimm8lohi as _);
25740        self
25741    }
25742
25743    pub const fn c_uimm9lohi(self) -> u32 {
25745        decode_immediate(&C_UIMM9LOHI, self.value as _) as _
25746    }
25747
25748    pub const fn set_c_uimm9lohi(mut self, c_uimm9lohi: u32) -> Self {
25749        self.value |= encode_immediate(&C_UIMM9LOHI, c_uimm9lohi as _);
25750        self
25751    }
25752
25753    pub const fn c_nzimm6lohi(self) -> i32 {
25755        decode_immediate(&C_NZIMM6LOHI, self.value as _) as _
25756    }
25757
25758    pub const fn set_c_nzimm6lohi(mut self, c_nzimm6lohi: i32) -> Self {
25759        self.value |= encode_immediate(&C_NZIMM6LOHI, c_nzimm6lohi as _);
25760        self
25761    }
25762
25763    pub const fn c_imm6lohi(self) -> i32 {
25765        decode_immediate(&C_IMM6LOHI, self.value as _) as _
25766    }
25767
25768    pub const fn set_c_imm6lohi(mut self, c_imm6lohi: i32) -> Self {
25769        self.value |= encode_immediate(&C_IMM6LOHI, c_imm6lohi as _);
25770        self
25771    }
25772
25773    pub const fn c_nzimm10lohi(self) -> i32 {
25775        decode_immediate(&C_NZIMM10LOHI, self.value as _) as _
25776    }
25777
25778    pub const fn set_c_nzimm10lohi(mut self, c_nzimm10lohi: i32) -> Self {
25779        self.value |= encode_immediate(&C_NZIMM10LOHI, c_nzimm10lohi as _);
25780        self
25781    }
25782
25783    pub const fn c_nzimm18lohi(self) -> i32 {
25785        decode_immediate(&C_NZIMM18LOHI, self.value as _) as _
25786    }
25787
25788    pub const fn set_c_nzimm18lohi(mut self, c_nzimm18lohi: i32) -> Self {
25789        self.value |= encode_immediate(&C_NZIMM18LOHI, c_nzimm18lohi as _);
25790        self
25791    }
25792
25793    pub const fn c_imm12(self) -> i32 {
25795        decode_immediate(&C_IMM12, self.value as _) as _
25796    }
25797
25798    pub const fn set_c_imm12(mut self, c_imm12: i32) -> Self {
25799        self.value |= encode_immediate(&C_IMM12, c_imm12 as _);
25800        self
25801    }
25802
25803    pub const fn c_bimm9lohi(self) -> i32 {
25805        decode_immediate(&C_BIMM9LOHI, self.value as _) as _
25806    }
25807
25808    pub const fn set_c_bimm9lohi(mut self, c_bimm9lohi: i32) -> Self {
25809        self.value |= encode_immediate(&C_BIMM9LOHI, c_bimm9lohi as _);
25810        self
25811    }
25812
25813    pub const fn c_nzuimm5(self) -> u32 {
25815        decode_immediate(&C_NZUIMM5, self.value as _) as _
25816    }
25817
25818    pub const fn set_c_nzuimm5(mut self, c_nzuimm5: u32) -> Self {
25819        self.value |= encode_immediate(&C_NZUIMM5, c_nzuimm5 as _);
25820        self
25821    }
25822
25823    pub const fn c_nzuimm6lohi(self) -> u32 {
25825        decode_immediate(&C_NZUIMM6LOHI, self.value as _) as _
25826    }
25827
25828    pub const fn set_c_nzuimm6lohi(mut self, c_nzuimm6lohi: u32) -> Self {
25829        self.value |= encode_immediate(&C_NZUIMM6LOHI, c_nzuimm6lohi as _);
25830        self
25831    }
25832
25833    pub const fn c_uimm8splohi(self) -> u32 {
25835        decode_immediate(&C_UIMM8SPLOHI, self.value as _) as _
25836    }
25837
25838    pub const fn set_c_uimm8splohi(mut self, c_uimm8splohi: u32) -> Self {
25839        self.value |= encode_immediate(&C_UIMM8SPLOHI, c_uimm8splohi as _);
25840        self
25841    }
25842
25843    pub const fn c_uimm8sp_s(self) -> u32 {
25845        decode_immediate(&C_UIMM8SP_S, self.value as _) as _
25846    }
25847
25848    pub const fn set_c_uimm8sp_s(mut self, c_uimm8sp_s: u32) -> Self {
25849        self.value |= encode_immediate(&C_UIMM8SP_S, c_uimm8sp_s as _);
25850        self
25851    }
25852
25853    pub const fn c_uimm10splohi(self) -> u32 {
25855        decode_immediate(&C_UIMM10SPLOHI, self.value as _) as _
25856    }
25857
25858    pub const fn set_c_uimm10splohi(mut self, c_uimm10splohi: u32) -> Self {
25859        self.value |= encode_immediate(&C_UIMM10SPLOHI, c_uimm10splohi as _);
25860        self
25861    }
25862
25863    pub const fn c_uimm9splohi(self) -> u32 {
25865        decode_immediate(&C_UIMM9SPLOHI, self.value as _) as _
25866    }
25867
25868    pub const fn set_c_uimm9splohi(mut self, c_uimm9splohi: u32) -> Self {
25869        self.value |= encode_immediate(&C_UIMM9SPLOHI, c_uimm9splohi as _);
25870        self
25871    }
25872
25873    pub const fn c_uimm10sp_s(self) -> u32 {
25875        decode_immediate(&C_UIMM10SP_S, self.value as _) as _
25876    }
25877
25878    pub const fn set_c_uimm10sp_s(mut self, c_uimm10sp_s: u32) -> Self {
25879        self.value |= encode_immediate(&C_UIMM10SP_S, c_uimm10sp_s as _);
25880        self
25881    }
25882
25883    pub const fn c_uimm9sp_s(self) -> u32 {
25885        decode_immediate(&C_UIMM9SP_S, self.value as _) as _
25886    }
25887
25888    pub const fn set_c_uimm9sp_s(mut self, c_uimm9sp_s: u32) -> Self {
25889        self.value |= encode_immediate(&C_UIMM9SP_S, c_uimm9sp_s as _);
25890        self
25891    }
25892
25893    pub const fn c_uimm2(self) -> u32 {
25895        decode_immediate(&C_UIMM2, self.value as _) as _
25896    }
25897
25898    pub const fn set_c_uimm2(mut self, c_uimm2: u32) -> Self {
25899        self.value |= encode_immediate(&C_UIMM2, c_uimm2 as _);
25900        self
25901    }
25902
25903    pub const fn c_uimm1(self) -> u32 {
25905        decode_immediate(&C_UIMM1, self.value as _) as _
25906    }
25907
25908    pub const fn set_c_uimm1(mut self, c_uimm1: u32) -> Self {
25909        self.value |= encode_immediate(&C_UIMM1, c_uimm1 as _);
25910        self
25911    }
25912
25913    pub const fn c_spimm(self) -> i32 {
25915        decode_immediate(&C_SPIMM, self.value as _) as _
25916    }
25917
25918    pub const fn set_c_spimm(mut self, c_spimm: i32) -> Self {
25919        self.value |= encode_immediate(&C_SPIMM, c_spimm as _);
25920        self
25921    }
25922}