--- /dev/null
+// Code generated by "stringer -type=CSR"; DO NOT EDIT.
+
+package riscv64asm
+
+import "strconv"
+
+func _() {
+ // An "invalid array index" compiler error signifies that the constant values have changed.
+ // Re-run the stringer command to generate them again.
+ var x [1]struct{}
+ _ = x[USTATUS-0]
+ _ = x[FFLAGS-1]
+ _ = x[FRM-2]
+ _ = x[FCSR-3]
+ _ = x[UIE-4]
+ _ = x[UTVEC-5]
+ _ = x[UTVT-7]
+ _ = x[VSTART-8]
+ _ = x[VXSAT-9]
+ _ = x[VXRM-10]
+ _ = x[VCSR-15]
+ _ = x[USCRATCH-64]
+ _ = x[UEPC-65]
+ _ = x[UCAUSE-66]
+ _ = x[UTVAL-67]
+ _ = x[UIP-68]
+ _ = x[UNXTI-69]
+ _ = x[UINTSTATUS-70]
+ _ = x[USCRATCHCSW-72]
+ _ = x[USCRATCHCSWL-73]
+ _ = x[SSTATUS-256]
+ _ = x[SEDELEG-258]
+ _ = x[SIDELEG-259]
+ _ = x[SIE-260]
+ _ = x[STVEC-261]
+ _ = x[SCOUNTEREN-262]
+ _ = x[STVT-263]
+ _ = x[SSCRATCH-320]
+ _ = x[SEPC-321]
+ _ = x[SCAUSE-322]
+ _ = x[STVAL-323]
+ _ = x[SIP-324]
+ _ = x[SNXTI-325]
+ _ = x[SINTSTATUS-326]
+ _ = x[SSCRATCHCSW-328]
+ _ = x[SSCRATCHCSWL-329]
+ _ = x[SATP-384]
+ _ = x[VSSTATUS-512]
+ _ = x[VSIE-516]
+ _ = x[VSTVEC-517]
+ _ = x[VSSCRATCH-576]
+ _ = x[VSEPC-577]
+ _ = x[VSCAUSE-578]
+ _ = x[VSTVAL-579]
+ _ = x[VSIP-580]
+ _ = x[VSATP-640]
+ _ = x[MSTATUS-768]
+ _ = x[MISA-769]
+ _ = x[MEDELEG-770]
+ _ = x[MIDELEG-771]
+ _ = x[MIE-772]
+ _ = x[MTVEC-773]
+ _ = x[MCOUNTEREN-774]
+ _ = x[MTVT-775]
+ _ = x[MSTATUSH-784]
+ _ = x[MCOUNTINHIBIT-800]
+ _ = x[MHPMEVENT3-803]
+ _ = x[MHPMEVENT4-804]
+ _ = x[MHPMEVENT5-805]
+ _ = x[MHPMEVENT6-806]
+ _ = x[MHPMEVENT7-807]
+ _ = x[MHPMEVENT8-808]
+ _ = x[MHPMEVENT9-809]
+ _ = x[MHPMEVENT10-810]
+ _ = x[MHPMEVENT11-811]
+ _ = x[MHPMEVENT12-812]
+ _ = x[MHPMEVENT13-813]
+ _ = x[MHPMEVENT14-814]
+ _ = x[MHPMEVENT15-815]
+ _ = x[MHPMEVENT16-816]
+ _ = x[MHPMEVENT17-817]
+ _ = x[MHPMEVENT18-818]
+ _ = x[MHPMEVENT19-819]
+ _ = x[MHPMEVENT20-820]
+ _ = x[MHPMEVENT21-821]
+ _ = x[MHPMEVENT22-822]
+ _ = x[MHPMEVENT23-823]
+ _ = x[MHPMEVENT24-824]
+ _ = x[MHPMEVENT25-825]
+ _ = x[MHPMEVENT26-826]
+ _ = x[MHPMEVENT27-827]
+ _ = x[MHPMEVENT28-828]
+ _ = x[MHPMEVENT29-829]
+ _ = x[MHPMEVENT30-830]
+ _ = x[MHPMEVENT31-831]
+ _ = x[MSCRATCH-832]
+ _ = x[MEPC-833]
+ _ = x[MCAUSE-834]
+ _ = x[MTVAL-835]
+ _ = x[MIP-836]
+ _ = x[MNXTI-837]
+ _ = x[MINTSTATUS-838]
+ _ = x[MSCRATCHCSW-840]
+ _ = x[MSCRATCHCSWL-841]
+ _ = x[MTINST-842]
+ _ = x[MTVAL2-843]
+ _ = x[PMPCFG0-928]
+ _ = x[PMPCFG1-929]
+ _ = x[PMPCFG2-930]
+ _ = x[PMPCFG3-931]
+ _ = x[PMPADDR0-944]
+ _ = x[PMPADDR1-945]
+ _ = x[PMPADDR2-946]
+ _ = x[PMPADDR3-947]
+ _ = x[PMPADDR4-948]
+ _ = x[PMPADDR5-949]
+ _ = x[PMPADDR6-950]
+ _ = x[PMPADDR7-951]
+ _ = x[PMPADDR8-952]
+ _ = x[PMPADDR9-953]
+ _ = x[PMPADDR10-954]
+ _ = x[PMPADDR11-955]
+ _ = x[PMPADDR12-956]
+ _ = x[PMPADDR13-957]
+ _ = x[PMPADDR14-958]
+ _ = x[PMPADDR15-959]
+ _ = x[HSTATUS-1536]
+ _ = x[HEDELEG-1538]
+ _ = x[HIDELEG-1539]
+ _ = x[HIE-1540]
+ _ = x[HTIMEDELTA-1541]
+ _ = x[HCOUNTEREN-1542]
+ _ = x[HGEIE-1543]
+ _ = x[HTIMEDELTAH-1557]
+ _ = x[HTVAL-1603]
+ _ = x[HIP-1604]
+ _ = x[HVIP-1605]
+ _ = x[HTINST-1610]
+ _ = x[HGATP-1664]
+ _ = x[TSELECT-1952]
+ _ = x[TDATA1-1953]
+ _ = x[TDATA2-1954]
+ _ = x[TDATA3-1955]
+ _ = x[TINFO-1956]
+ _ = x[TCONTROL-1957]
+ _ = x[MCONTEXT-1960]
+ _ = x[MNOISE-1961]
+ _ = x[SCONTEXT-1962]
+ _ = x[DCSR-1968]
+ _ = x[DPC-1969]
+ _ = x[DSCRATCH0-1970]
+ _ = x[DSCRATCH1-1971]
+ _ = x[MCYCLE-2816]
+ _ = x[MINSTRET-2818]
+ _ = x[MHPMCOUNTER3-2819]
+ _ = x[MHPMCOUNTER4-2820]
+ _ = x[MHPMCOUNTER5-2821]
+ _ = x[MHPMCOUNTER6-2822]
+ _ = x[MHPMCOUNTER7-2823]
+ _ = x[MHPMCOUNTER8-2824]
+ _ = x[MHPMCOUNTER9-2825]
+ _ = x[MHPMCOUNTER10-2826]
+ _ = x[MHPMCOUNTER11-2827]
+ _ = x[MHPMCOUNTER12-2828]
+ _ = x[MHPMCOUNTER13-2829]
+ _ = x[MHPMCOUNTER14-2830]
+ _ = x[MHPMCOUNTER15-2831]
+ _ = x[MHPMCOUNTER16-2832]
+ _ = x[MHPMCOUNTER17-2833]
+ _ = x[MHPMCOUNTER18-2834]
+ _ = x[MHPMCOUNTER19-2835]
+ _ = x[MHPMCOUNTER20-2836]
+ _ = x[MHPMCOUNTER21-2837]
+ _ = x[MHPMCOUNTER22-2838]
+ _ = x[MHPMCOUNTER23-2839]
+ _ = x[MHPMCOUNTER24-2840]
+ _ = x[MHPMCOUNTER25-2841]
+ _ = x[MHPMCOUNTER26-2842]
+ _ = x[MHPMCOUNTER27-2843]
+ _ = x[MHPMCOUNTER28-2844]
+ _ = x[MHPMCOUNTER29-2845]
+ _ = x[MHPMCOUNTER30-2846]
+ _ = x[MHPMCOUNTER31-2847]
+ _ = x[MCYCLEH-2944]
+ _ = x[MINSTRETH-2946]
+ _ = x[MHPMCOUNTER3H-2947]
+ _ = x[MHPMCOUNTER4H-2948]
+ _ = x[MHPMCOUNTER5H-2949]
+ _ = x[MHPMCOUNTER6H-2950]
+ _ = x[MHPMCOUNTER7H-2951]
+ _ = x[MHPMCOUNTER8H-2952]
+ _ = x[MHPMCOUNTER9H-2953]
+ _ = x[MHPMCOUNTER10H-2954]
+ _ = x[MHPMCOUNTER11H-2955]
+ _ = x[MHPMCOUNTER12H-2956]
+ _ = x[MHPMCOUNTER13H-2957]
+ _ = x[MHPMCOUNTER14H-2958]
+ _ = x[MHPMCOUNTER15H-2959]
+ _ = x[MHPMCOUNTER16H-2960]
+ _ = x[MHPMCOUNTER17H-2961]
+ _ = x[MHPMCOUNTER18H-2962]
+ _ = x[MHPMCOUNTER19H-2963]
+ _ = x[MHPMCOUNTER20H-2964]
+ _ = x[MHPMCOUNTER21H-2965]
+ _ = x[MHPMCOUNTER22H-2966]
+ _ = x[MHPMCOUNTER23H-2967]
+ _ = x[MHPMCOUNTER24H-2968]
+ _ = x[MHPMCOUNTER25H-2969]
+ _ = x[MHPMCOUNTER26H-2970]
+ _ = x[MHPMCOUNTER27H-2971]
+ _ = x[MHPMCOUNTER28H-2972]
+ _ = x[MHPMCOUNTER29H-2973]
+ _ = x[MHPMCOUNTER30H-2974]
+ _ = x[MHPMCOUNTER31H-2975]
+ _ = x[CYCLE-3072]
+ _ = x[TIME-3073]
+ _ = x[INSTRET-3074]
+ _ = x[HPMCOUNTER3-3075]
+ _ = x[HPMCOUNTER4-3076]
+ _ = x[HPMCOUNTER5-3077]
+ _ = x[HPMCOUNTER6-3078]
+ _ = x[HPMCOUNTER7-3079]
+ _ = x[HPMCOUNTER8-3080]
+ _ = x[HPMCOUNTER9-3081]
+ _ = x[HPMCOUNTER10-3082]
+ _ = x[HPMCOUNTER11-3083]
+ _ = x[HPMCOUNTER12-3084]
+ _ = x[HPMCOUNTER13-3085]
+ _ = x[HPMCOUNTER14-3086]
+ _ = x[HPMCOUNTER15-3087]
+ _ = x[HPMCOUNTER16-3088]
+ _ = x[HPMCOUNTER17-3089]
+ _ = x[HPMCOUNTER18-3090]
+ _ = x[HPMCOUNTER19-3091]
+ _ = x[HPMCOUNTER20-3092]
+ _ = x[HPMCOUNTER21-3093]
+ _ = x[HPMCOUNTER22-3094]
+ _ = x[HPMCOUNTER23-3095]
+ _ = x[HPMCOUNTER24-3096]
+ _ = x[HPMCOUNTER25-3097]
+ _ = x[HPMCOUNTER26-3098]
+ _ = x[HPMCOUNTER27-3099]
+ _ = x[HPMCOUNTER28-3100]
+ _ = x[HPMCOUNTER29-3101]
+ _ = x[HPMCOUNTER30-3102]
+ _ = x[HPMCOUNTER31-3103]
+ _ = x[VL-3104]
+ _ = x[VTYPE-3105]
+ _ = x[VLENB-3106]
+ _ = x[CYCLEH-3200]
+ _ = x[TIMEH-3201]
+ _ = x[INSTRETH-3202]
+ _ = x[HPMCOUNTER3H-3203]
+ _ = x[HPMCOUNTER4H-3204]
+ _ = x[HPMCOUNTER5H-3205]
+ _ = x[HPMCOUNTER6H-3206]
+ _ = x[HPMCOUNTER7H-3207]
+ _ = x[HPMCOUNTER8H-3208]
+ _ = x[HPMCOUNTER9H-3209]
+ _ = x[HPMCOUNTER10H-3210]
+ _ = x[HPMCOUNTER11H-3211]
+ _ = x[HPMCOUNTER12H-3212]
+ _ = x[HPMCOUNTER13H-3213]
+ _ = x[HPMCOUNTER14H-3214]
+ _ = x[HPMCOUNTER15H-3215]
+ _ = x[HPMCOUNTER16H-3216]
+ _ = x[HPMCOUNTER17H-3217]
+ _ = x[HPMCOUNTER18H-3218]
+ _ = x[HPMCOUNTER19H-3219]
+ _ = x[HPMCOUNTER20H-3220]
+ _ = x[HPMCOUNTER21H-3221]
+ _ = x[HPMCOUNTER22H-3222]
+ _ = x[HPMCOUNTER23H-3223]
+ _ = x[HPMCOUNTER24H-3224]
+ _ = x[HPMCOUNTER25H-3225]
+ _ = x[HPMCOUNTER26H-3226]
+ _ = x[HPMCOUNTER27H-3227]
+ _ = x[HPMCOUNTER28H-3228]
+ _ = x[HPMCOUNTER29H-3229]
+ _ = x[HPMCOUNTER30H-3230]
+ _ = x[HPMCOUNTER31H-3231]
+ _ = x[HGEIP-3602]
+ _ = x[MVENDORID-3857]
+ _ = x[MARCHID-3858]
+ _ = x[MIMPID-3859]
+ _ = x[MHARTID-3860]
+ _ = x[MENTROPY-3861]
+}
+
+const _CSR_name = "USTATUSFFLAGSFRMFCSRUIEUTVECUTVTVSTARTVXSATVXRMVCSRUSCRATCHUEPCUCAUSEUTVALUIPUNXTIUINTSTATUSUSCRATCHCSWUSCRATCHCSWLSSTATUSSEDELEGSIDELEGSIESTVECSCOUNTERENSTVTSSCRATCHSEPCSCAUSESTVALSIPSNXTISINTSTATUSSSCRATCHCSWSSCRATCHCSWLSATPVSSTATUSVSIEVSTVECVSSCRATCHVSEPCVSCAUSEVSTVALVSIPVSATPMSTATUSMISAMEDELEGMIDELEGMIEMTVECMCOUNTERENMTVTMSTATUSHMCOUNTINHIBITMHPMEVENT3MHPMEVENT4MHPMEVENT5MHPMEVENT6MHPMEVENT7MHPMEVENT8MHPMEVENT9MHPMEVENT10MHPMEVENT11MHPMEVENT12MHPMEVENT13MHPMEVENT14MHPMEVENT15MHPMEVENT16MHPMEVENT17MHPMEVENT18MHPMEVENT19MHPMEVENT20MHPMEVENT21MHPMEVENT22MHPMEVENT23MHPMEVENT24MHPMEVENT25MHPMEVENT26MHPMEVENT27MHPMEVENT28MHPMEVENT29MHPMEVENT30MHPMEVENT31MSCRATCHMEPCMCAUSEMTVALMIPMNXTIMINTSTATUSMSCRATCHCSWMSCRATCHCSWLMTINSTMTVAL2PMPCFG0PMPCFG1PMPCFG2PMPCFG3PMPADDR0PMPADDR1PMPADDR2PMPADDR3PMPADDR4PMPADDR5PMPADDR6PMPADDR7PMPADDR8PMPADDR9PMPADDR10PMPADDR11PMPADDR12PMPADDR13PMPADDR14PMPADDR15HSTATUSHEDELEGHIDELEGHIEHTIMEDELTAHCOUNTERENHGEIEHTIMEDELTAHHTVALHIPHVIPHTINSTHGATPTSELECTTDATA1TDATA2TDATA3TINFOTCONTROLMCONTEXTMNOISESCONTEXTDCSRDPCDSCRATCH0DSCRATCH1MCYCLEMINSTRETMHPMCOUNTER3MHPMCOUNTER4MHPMCOUNTER5MHPMCOUNTER6MHPMCOUNTER7MHPMCOUNTER8MHPMCOUNTER9MHPMCOUNTER10MHPMCOUNTER11MHPMCOUNTER12MHPMCOUNTER13MHPMCOUNTER14MHPMCOUNTER15MHPMCOUNTER16MHPMCOUNTER17MHPMCOUNTER18MHPMCOUNTER19MHPMCOUNTER20MHPMCOUNTER21MHPMCOUNTER22MHPMCOUNTER23MHPMCOUNTER24MHPMCOUNTER25MHPMCOUNTER26MHPMCOUNTER27MHPMCOUNTER28MHPMCOUNTER29MHPMCOUNTER30MHPMCOUNTER31MCYCLEHMINSTRETHMHPMCOUNTER3HMHPMCOUNTER4HMHPMCOUNTER5HMHPMCOUNTER6HMHPMCOUNTER7HMHPMCOUNTER8HMHPMCOUNTER9HMHPMCOUNTER10HMHPMCOUNTER11HMHPMCOUNTER12HMHPMCOUNTER13HMHPMCOUNTER14HMHPMCOUNTER15HMHPMCOUNTER16HMHPMCOUNTER17HMHPMCOUNTER18HMHPMCOUNTER19HMHPMCOUNTER20HMHPMCOUNTER21HMHPMCOUNTER22HMHPMCOUNTER23HMHPMCOUNTER24HMHPMCOUNTER25HMHPMCOUNTER26HMHPMCOUNTER27HMHPMCOUNTER28HMHPMCOUNTER29HMHPMCOUNTER30HMHPMCOUNTER31HCYCLETIMEINSTRETHPMCOUNTER3HPMCOUNTER4HPMCOUNTER5HPMCOUNTER6HPMCOUNTER7HPMCOUNTER8HPMCOUNTER9HPMCOUNTER10HPMCOUNTER11HPMCOUNTER12HPMCOUNTER13HPMCOUNTER14HPMCOUNTER15HPMCOUNTER16HPMCOUNTER17HPMCOUNTER18HPMCOUNTER19HPMCOUNTER20HPMCOUNTER21HPMCOUNTER22HPMCOUNTER23HPMCOUNTER24HPMCOUNTER25HPMCOUNTER26HPMCOUNTER27HPMCOUNTER28HPMCOUNTER29HPMCOUNTER30HPMCOUNTER31VLVTYPEVLENBCYCLEHTIMEHINSTRETHHPMCOUNTER3HHPMCOUNTER4HHPMCOUNTER5HHPMCOUNTER6HHPMCOUNTER7HHPMCOUNTER8HHPMCOUNTER9HHPMCOUNTER10HHPMCOUNTER11HHPMCOUNTER12HHPMCOUNTER13HHPMCOUNTER14HHPMCOUNTER15HHPMCOUNTER16HHPMCOUNTER17HHPMCOUNTER18HHPMCOUNTER19HHPMCOUNTER20HHPMCOUNTER21HHPMCOUNTER22HHPMCOUNTER23HHPMCOUNTER24HHPMCOUNTER25HHPMCOUNTER26HHPMCOUNTER27HHPMCOUNTER28HHPMCOUNTER29HHPMCOUNTER30HHPMCOUNTER31HHGEIPMVENDORIDMARCHIDMIMPIDMHARTIDMENTROPY"
+
+var _CSR_map = map[CSR]string{
+ 0: _CSR_name[0:7],
+ 1: _CSR_name[7:13],
+ 2: _CSR_name[13:16],
+ 3: _CSR_name[16:20],
+ 4: _CSR_name[20:23],
+ 5: _CSR_name[23:28],
+ 7: _CSR_name[28:32],
+ 8: _CSR_name[32:38],
+ 9: _CSR_name[38:43],
+ 10: _CSR_name[43:47],
+ 15: _CSR_name[47:51],
+ 64: _CSR_name[51:59],
+ 65: _CSR_name[59:63],
+ 66: _CSR_name[63:69],
+ 67: _CSR_name[69:74],
+ 68: _CSR_name[74:77],
+ 69: _CSR_name[77:82],
+ 70: _CSR_name[82:92],
+ 72: _CSR_name[92:103],
+ 73: _CSR_name[103:115],
+ 256: _CSR_name[115:122],
+ 258: _CSR_name[122:129],
+ 259: _CSR_name[129:136],
+ 260: _CSR_name[136:139],
+ 261: _CSR_name[139:144],
+ 262: _CSR_name[144:154],
+ 263: _CSR_name[154:158],
+ 320: _CSR_name[158:166],
+ 321: _CSR_name[166:170],
+ 322: _CSR_name[170:176],
+ 323: _CSR_name[176:181],
+ 324: _CSR_name[181:184],
+ 325: _CSR_name[184:189],
+ 326: _CSR_name[189:199],
+ 328: _CSR_name[199:210],
+ 329: _CSR_name[210:222],
+ 384: _CSR_name[222:226],
+ 512: _CSR_name[226:234],
+ 516: _CSR_name[234:238],
+ 517: _CSR_name[238:244],
+ 576: _CSR_name[244:253],
+ 577: _CSR_name[253:258],
+ 578: _CSR_name[258:265],
+ 579: _CSR_name[265:271],
+ 580: _CSR_name[271:275],
+ 640: _CSR_name[275:280],
+ 768: _CSR_name[280:287],
+ 769: _CSR_name[287:291],
+ 770: _CSR_name[291:298],
+ 771: _CSR_name[298:305],
+ 772: _CSR_name[305:308],
+ 773: _CSR_name[308:313],
+ 774: _CSR_name[313:323],
+ 775: _CSR_name[323:327],
+ 784: _CSR_name[327:335],
+ 800: _CSR_name[335:348],
+ 803: _CSR_name[348:358],
+ 804: _CSR_name[358:368],
+ 805: _CSR_name[368:378],
+ 806: _CSR_name[378:388],
+ 807: _CSR_name[388:398],
+ 808: _CSR_name[398:408],
+ 809: _CSR_name[408:418],
+ 810: _CSR_name[418:429],
+ 811: _CSR_name[429:440],
+ 812: _CSR_name[440:451],
+ 813: _CSR_name[451:462],
+ 814: _CSR_name[462:473],
+ 815: _CSR_name[473:484],
+ 816: _CSR_name[484:495],
+ 817: _CSR_name[495:506],
+ 818: _CSR_name[506:517],
+ 819: _CSR_name[517:528],
+ 820: _CSR_name[528:539],
+ 821: _CSR_name[539:550],
+ 822: _CSR_name[550:561],
+ 823: _CSR_name[561:572],
+ 824: _CSR_name[572:583],
+ 825: _CSR_name[583:594],
+ 826: _CSR_name[594:605],
+ 827: _CSR_name[605:616],
+ 828: _CSR_name[616:627],
+ 829: _CSR_name[627:638],
+ 830: _CSR_name[638:649],
+ 831: _CSR_name[649:660],
+ 832: _CSR_name[660:668],
+ 833: _CSR_name[668:672],
+ 834: _CSR_name[672:678],
+ 835: _CSR_name[678:683],
+ 836: _CSR_name[683:686],
+ 837: _CSR_name[686:691],
+ 838: _CSR_name[691:701],
+ 840: _CSR_name[701:712],
+ 841: _CSR_name[712:724],
+ 842: _CSR_name[724:730],
+ 843: _CSR_name[730:736],
+ 928: _CSR_name[736:743],
+ 929: _CSR_name[743:750],
+ 930: _CSR_name[750:757],
+ 931: _CSR_name[757:764],
+ 944: _CSR_name[764:772],
+ 945: _CSR_name[772:780],
+ 946: _CSR_name[780:788],
+ 947: _CSR_name[788:796],
+ 948: _CSR_name[796:804],
+ 949: _CSR_name[804:812],
+ 950: _CSR_name[812:820],
+ 951: _CSR_name[820:828],
+ 952: _CSR_name[828:836],
+ 953: _CSR_name[836:844],
+ 954: _CSR_name[844:853],
+ 955: _CSR_name[853:862],
+ 956: _CSR_name[862:871],
+ 957: _CSR_name[871:880],
+ 958: _CSR_name[880:889],
+ 959: _CSR_name[889:898],
+ 1536: _CSR_name[898:905],
+ 1538: _CSR_name[905:912],
+ 1539: _CSR_name[912:919],
+ 1540: _CSR_name[919:922],
+ 1541: _CSR_name[922:932],
+ 1542: _CSR_name[932:942],
+ 1543: _CSR_name[942:947],
+ 1557: _CSR_name[947:958],
+ 1603: _CSR_name[958:963],
+ 1604: _CSR_name[963:966],
+ 1605: _CSR_name[966:970],
+ 1610: _CSR_name[970:976],
+ 1664: _CSR_name[976:981],
+ 1952: _CSR_name[981:988],
+ 1953: _CSR_name[988:994],
+ 1954: _CSR_name[994:1000],
+ 1955: _CSR_name[1000:1006],
+ 1956: _CSR_name[1006:1011],
+ 1957: _CSR_name[1011:1019],
+ 1960: _CSR_name[1019:1027],
+ 1961: _CSR_name[1027:1033],
+ 1962: _CSR_name[1033:1041],
+ 1968: _CSR_name[1041:1045],
+ 1969: _CSR_name[1045:1048],
+ 1970: _CSR_name[1048:1057],
+ 1971: _CSR_name[1057:1066],
+ 2816: _CSR_name[1066:1072],
+ 2818: _CSR_name[1072:1080],
+ 2819: _CSR_name[1080:1092],
+ 2820: _CSR_name[1092:1104],
+ 2821: _CSR_name[1104:1116],
+ 2822: _CSR_name[1116:1128],
+ 2823: _CSR_name[1128:1140],
+ 2824: _CSR_name[1140:1152],
+ 2825: _CSR_name[1152:1164],
+ 2826: _CSR_name[1164:1177],
+ 2827: _CSR_name[1177:1190],
+ 2828: _CSR_name[1190:1203],
+ 2829: _CSR_name[1203:1216],
+ 2830: _CSR_name[1216:1229],
+ 2831: _CSR_name[1229:1242],
+ 2832: _CSR_name[1242:1255],
+ 2833: _CSR_name[1255:1268],
+ 2834: _CSR_name[1268:1281],
+ 2835: _CSR_name[1281:1294],
+ 2836: _CSR_name[1294:1307],
+ 2837: _CSR_name[1307:1320],
+ 2838: _CSR_name[1320:1333],
+ 2839: _CSR_name[1333:1346],
+ 2840: _CSR_name[1346:1359],
+ 2841: _CSR_name[1359:1372],
+ 2842: _CSR_name[1372:1385],
+ 2843: _CSR_name[1385:1398],
+ 2844: _CSR_name[1398:1411],
+ 2845: _CSR_name[1411:1424],
+ 2846: _CSR_name[1424:1437],
+ 2847: _CSR_name[1437:1450],
+ 2944: _CSR_name[1450:1457],
+ 2946: _CSR_name[1457:1466],
+ 2947: _CSR_name[1466:1479],
+ 2948: _CSR_name[1479:1492],
+ 2949: _CSR_name[1492:1505],
+ 2950: _CSR_name[1505:1518],
+ 2951: _CSR_name[1518:1531],
+ 2952: _CSR_name[1531:1544],
+ 2953: _CSR_name[1544:1557],
+ 2954: _CSR_name[1557:1571],
+ 2955: _CSR_name[1571:1585],
+ 2956: _CSR_name[1585:1599],
+ 2957: _CSR_name[1599:1613],
+ 2958: _CSR_name[1613:1627],
+ 2959: _CSR_name[1627:1641],
+ 2960: _CSR_name[1641:1655],
+ 2961: _CSR_name[1655:1669],
+ 2962: _CSR_name[1669:1683],
+ 2963: _CSR_name[1683:1697],
+ 2964: _CSR_name[1697:1711],
+ 2965: _CSR_name[1711:1725],
+ 2966: _CSR_name[1725:1739],
+ 2967: _CSR_name[1739:1753],
+ 2968: _CSR_name[1753:1767],
+ 2969: _CSR_name[1767:1781],
+ 2970: _CSR_name[1781:1795],
+ 2971: _CSR_name[1795:1809],
+ 2972: _CSR_name[1809:1823],
+ 2973: _CSR_name[1823:1837],
+ 2974: _CSR_name[1837:1851],
+ 2975: _CSR_name[1851:1865],
+ 3072: _CSR_name[1865:1870],
+ 3073: _CSR_name[1870:1874],
+ 3074: _CSR_name[1874:1881],
+ 3075: _CSR_name[1881:1892],
+ 3076: _CSR_name[1892:1903],
+ 3077: _CSR_name[1903:1914],
+ 3078: _CSR_name[1914:1925],
+ 3079: _CSR_name[1925:1936],
+ 3080: _CSR_name[1936:1947],
+ 3081: _CSR_name[1947:1958],
+ 3082: _CSR_name[1958:1970],
+ 3083: _CSR_name[1970:1982],
+ 3084: _CSR_name[1982:1994],
+ 3085: _CSR_name[1994:2006],
+ 3086: _CSR_name[2006:2018],
+ 3087: _CSR_name[2018:2030],
+ 3088: _CSR_name[2030:2042],
+ 3089: _CSR_name[2042:2054],
+ 3090: _CSR_name[2054:2066],
+ 3091: _CSR_name[2066:2078],
+ 3092: _CSR_name[2078:2090],
+ 3093: _CSR_name[2090:2102],
+ 3094: _CSR_name[2102:2114],
+ 3095: _CSR_name[2114:2126],
+ 3096: _CSR_name[2126:2138],
+ 3097: _CSR_name[2138:2150],
+ 3098: _CSR_name[2150:2162],
+ 3099: _CSR_name[2162:2174],
+ 3100: _CSR_name[2174:2186],
+ 3101: _CSR_name[2186:2198],
+ 3102: _CSR_name[2198:2210],
+ 3103: _CSR_name[2210:2222],
+ 3104: _CSR_name[2222:2224],
+ 3105: _CSR_name[2224:2229],
+ 3106: _CSR_name[2229:2234],
+ 3200: _CSR_name[2234:2240],
+ 3201: _CSR_name[2240:2245],
+ 3202: _CSR_name[2245:2253],
+ 3203: _CSR_name[2253:2265],
+ 3204: _CSR_name[2265:2277],
+ 3205: _CSR_name[2277:2289],
+ 3206: _CSR_name[2289:2301],
+ 3207: _CSR_name[2301:2313],
+ 3208: _CSR_name[2313:2325],
+ 3209: _CSR_name[2325:2337],
+ 3210: _CSR_name[2337:2350],
+ 3211: _CSR_name[2350:2363],
+ 3212: _CSR_name[2363:2376],
+ 3213: _CSR_name[2376:2389],
+ 3214: _CSR_name[2389:2402],
+ 3215: _CSR_name[2402:2415],
+ 3216: _CSR_name[2415:2428],
+ 3217: _CSR_name[2428:2441],
+ 3218: _CSR_name[2441:2454],
+ 3219: _CSR_name[2454:2467],
+ 3220: _CSR_name[2467:2480],
+ 3221: _CSR_name[2480:2493],
+ 3222: _CSR_name[2493:2506],
+ 3223: _CSR_name[2506:2519],
+ 3224: _CSR_name[2519:2532],
+ 3225: _CSR_name[2532:2545],
+ 3226: _CSR_name[2545:2558],
+ 3227: _CSR_name[2558:2571],
+ 3228: _CSR_name[2571:2584],
+ 3229: _CSR_name[2584:2597],
+ 3230: _CSR_name[2597:2610],
+ 3231: _CSR_name[2610:2623],
+ 3602: _CSR_name[2623:2628],
+ 3857: _CSR_name[2628:2637],
+ 3858: _CSR_name[2637:2644],
+ 3859: _CSR_name[2644:2650],
+ 3860: _CSR_name[2650:2657],
+ 3861: _CSR_name[2657:2665],
+}
+
+func (i CSR) String() string {
+ if str, ok := _CSR_map[i]; ok {
+ return str
+ }
+ return "CSR(" + strconv.FormatInt(int64(i), 10) + ")"
+}
--- /dev/null
+// Code generated by riscv64spec riscv-opcodes
+// DO NOT EDIT
+
+// Copyright 2024 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package riscv64asm
+
+const (
+ _ Op = iota
+ ADD
+ ADDI
+ ADDIW
+ ADDW
+ ADD_UW
+ AMOADD_D
+ AMOADD_D_AQ
+ AMOADD_D_AQRL
+ AMOADD_D_RL
+ AMOADD_W
+ AMOADD_W_AQ
+ AMOADD_W_AQRL
+ AMOADD_W_RL
+ AMOAND_D
+ AMOAND_D_AQ
+ AMOAND_D_AQRL
+ AMOAND_D_RL
+ AMOAND_W
+ AMOAND_W_AQ
+ AMOAND_W_AQRL
+ AMOAND_W_RL
+ AMOMAXU_D
+ AMOMAXU_D_AQ
+ AMOMAXU_D_AQRL
+ AMOMAXU_D_RL
+ AMOMAXU_W
+ AMOMAXU_W_AQ
+ AMOMAXU_W_AQRL
+ AMOMAXU_W_RL
+ AMOMAX_D
+ AMOMAX_D_AQ
+ AMOMAX_D_AQRL
+ AMOMAX_D_RL
+ AMOMAX_W
+ AMOMAX_W_AQ
+ AMOMAX_W_AQRL
+ AMOMAX_W_RL
+ AMOMINU_D
+ AMOMINU_D_AQ
+ AMOMINU_D_AQRL
+ AMOMINU_D_RL
+ AMOMINU_W
+ AMOMINU_W_AQ
+ AMOMINU_W_AQRL
+ AMOMINU_W_RL
+ AMOMIN_D
+ AMOMIN_D_AQ
+ AMOMIN_D_AQRL
+ AMOMIN_D_RL
+ AMOMIN_W
+ AMOMIN_W_AQ
+ AMOMIN_W_AQRL
+ AMOMIN_W_RL
+ AMOOR_D
+ AMOOR_D_AQ
+ AMOOR_D_AQRL
+ AMOOR_D_RL
+ AMOOR_W
+ AMOOR_W_AQ
+ AMOOR_W_AQRL
+ AMOOR_W_RL
+ AMOSWAP_D
+ AMOSWAP_D_AQ
+ AMOSWAP_D_AQRL
+ AMOSWAP_D_RL
+ AMOSWAP_W
+ AMOSWAP_W_AQ
+ AMOSWAP_W_AQRL
+ AMOSWAP_W_RL
+ AMOXOR_D
+ AMOXOR_D_AQ
+ AMOXOR_D_AQRL
+ AMOXOR_D_RL
+ AMOXOR_W
+ AMOXOR_W_AQ
+ AMOXOR_W_AQRL
+ AMOXOR_W_RL
+ AND
+ ANDI
+ ANDN
+ AUIPC
+ BCLR
+ BCLRI
+ BEQ
+ BEXT
+ BEXTI
+ BGE
+ BGEU
+ BINV
+ BINVI
+ BLT
+ BLTU
+ BNE
+ BSET
+ BSETI
+ CLZ
+ CLZW
+ CPOP
+ CPOPW
+ CSRRC
+ CSRRCI
+ CSRRS
+ CSRRSI
+ CSRRW
+ CSRRWI
+ CTZ
+ CTZW
+ C_ADD
+ C_ADDI
+ C_ADDI16SP
+ C_ADDI4SPN
+ C_ADDIW
+ C_ADDW
+ C_AND
+ C_ANDI
+ C_BEQZ
+ C_BNEZ
+ C_EBREAK
+ C_FLD
+ C_FLDSP
+ C_FSD
+ C_FSDSP
+ C_J
+ C_JALR
+ C_JR
+ C_LD
+ C_LDSP
+ C_LI
+ C_LUI
+ C_LW
+ C_LWSP
+ C_MV
+ C_NOP
+ C_OR
+ C_SD
+ C_SDSP
+ C_SLLI
+ C_SRAI
+ C_SRLI
+ C_SUB
+ C_SUBW
+ C_SW
+ C_SWSP
+ C_UNIMP
+ C_XOR
+ DIV
+ DIVU
+ DIVUW
+ DIVW
+ EBREAK
+ ECALL
+ FADD_D
+ FADD_H
+ FADD_Q
+ FADD_S
+ FCLASS_D
+ FCLASS_H
+ FCLASS_Q
+ FCLASS_S
+ FCVT_D_L
+ FCVT_D_LU
+ FCVT_D_Q
+ FCVT_D_S
+ FCVT_D_W
+ FCVT_D_WU
+ FCVT_H_L
+ FCVT_H_LU
+ FCVT_H_S
+ FCVT_H_W
+ FCVT_H_WU
+ FCVT_LU_D
+ FCVT_LU_H
+ FCVT_LU_Q
+ FCVT_LU_S
+ FCVT_L_D
+ FCVT_L_H
+ FCVT_L_Q
+ FCVT_L_S
+ FCVT_Q_D
+ FCVT_Q_L
+ FCVT_Q_LU
+ FCVT_Q_S
+ FCVT_Q_W
+ FCVT_Q_WU
+ FCVT_S_D
+ FCVT_S_H
+ FCVT_S_L
+ FCVT_S_LU
+ FCVT_S_Q
+ FCVT_S_W
+ FCVT_S_WU
+ FCVT_WU_D
+ FCVT_WU_H
+ FCVT_WU_Q
+ FCVT_WU_S
+ FCVT_W_D
+ FCVT_W_H
+ FCVT_W_Q
+ FCVT_W_S
+ FDIV_D
+ FDIV_H
+ FDIV_Q
+ FDIV_S
+ FENCE
+ FENCE_I
+ FEQ_D
+ FEQ_H
+ FEQ_Q
+ FEQ_S
+ FLD
+ FLE_D
+ FLE_H
+ FLE_Q
+ FLE_S
+ FLH
+ FLQ
+ FLT_D
+ FLT_H
+ FLT_Q
+ FLT_S
+ FLW
+ FMADD_D
+ FMADD_H
+ FMADD_Q
+ FMADD_S
+ FMAX_D
+ FMAX_H
+ FMAX_Q
+ FMAX_S
+ FMIN_D
+ FMIN_H
+ FMIN_Q
+ FMIN_S
+ FMSUB_D
+ FMSUB_H
+ FMSUB_Q
+ FMSUB_S
+ FMUL_D
+ FMUL_H
+ FMUL_Q
+ FMUL_S
+ FMV_D_X
+ FMV_H_X
+ FMV_W_X
+ FMV_X_D
+ FMV_X_H
+ FMV_X_W
+ FNMADD_D
+ FNMADD_H
+ FNMADD_Q
+ FNMADD_S
+ FNMSUB_D
+ FNMSUB_H
+ FNMSUB_Q
+ FNMSUB_S
+ FSD
+ FSGNJN_D
+ FSGNJN_H
+ FSGNJN_Q
+ FSGNJN_S
+ FSGNJX_D
+ FSGNJX_H
+ FSGNJX_Q
+ FSGNJX_S
+ FSGNJ_D
+ FSGNJ_H
+ FSGNJ_Q
+ FSGNJ_S
+ FSH
+ FSQ
+ FSQRT_D
+ FSQRT_H
+ FSQRT_Q
+ FSQRT_S
+ FSUB_D
+ FSUB_H
+ FSUB_Q
+ FSUB_S
+ FSW
+ JAL
+ JALR
+ LB
+ LBU
+ LD
+ LH
+ LHU
+ LR_D
+ LR_D_AQ
+ LR_D_AQRL
+ LR_D_RL
+ LR_W
+ LR_W_AQ
+ LR_W_AQRL
+ LR_W_RL
+ LUI
+ LW
+ LWU
+ MAX
+ MAXU
+ MIN
+ MINU
+ MUL
+ MULH
+ MULHSU
+ MULHU
+ MULW
+ OR
+ ORC_B
+ ORI
+ ORN
+ REM
+ REMU
+ REMUW
+ REMW
+ REV8
+ ROL
+ ROLW
+ ROR
+ RORI
+ RORIW
+ RORW
+ SB
+ SC_D
+ SC_D_AQ
+ SC_D_AQRL
+ SC_D_RL
+ SC_W
+ SC_W_AQ
+ SC_W_AQRL
+ SC_W_RL
+ SD
+ SEXT_B
+ SEXT_H
+ SH
+ SH1ADD
+ SH1ADD_UW
+ SH2ADD
+ SH2ADD_UW
+ SH3ADD
+ SH3ADD_UW
+ SLL
+ SLLI
+ SLLIW
+ SLLI_UW
+ SLLW
+ SLT
+ SLTI
+ SLTIU
+ SLTU
+ SRA
+ SRAI
+ SRAIW
+ SRAW
+ SRL
+ SRLI
+ SRLIW
+ SRLW
+ SUB
+ SUBW
+ SW
+ XNOR
+ XOR
+ XORI
+ ZEXT_H
+)
+
+var opstr = [...]string{
+ ADD: "ADD",
+ ADDI: "ADDI",
+ ADDIW: "ADDIW",
+ ADDW: "ADDW",
+ ADD_UW: "ADD.UW",
+ AMOADD_D: "AMOADD.D",
+ AMOADD_D_AQ: "AMOADD.D.AQ",
+ AMOADD_D_AQRL: "AMOADD.D.AQRL",
+ AMOADD_D_RL: "AMOADD.D.RL",
+ AMOADD_W: "AMOADD.W",
+ AMOADD_W_AQ: "AMOADD.W.AQ",
+ AMOADD_W_AQRL: "AMOADD.W.AQRL",
+ AMOADD_W_RL: "AMOADD.W.RL",
+ AMOAND_D: "AMOAND.D",
+ AMOAND_D_AQ: "AMOAND.D.AQ",
+ AMOAND_D_AQRL: "AMOAND.D.AQRL",
+ AMOAND_D_RL: "AMOAND.D.RL",
+ AMOAND_W: "AMOAND.W",
+ AMOAND_W_AQ: "AMOAND.W.AQ",
+ AMOAND_W_AQRL: "AMOAND.W.AQRL",
+ AMOAND_W_RL: "AMOAND.W.RL",
+ AMOMAXU_D: "AMOMAXU.D",
+ AMOMAXU_D_AQ: "AMOMAXU.D.AQ",
+ AMOMAXU_D_AQRL: "AMOMAXU.D.AQRL",
+ AMOMAXU_D_RL: "AMOMAXU.D.RL",
+ AMOMAXU_W: "AMOMAXU.W",
+ AMOMAXU_W_AQ: "AMOMAXU.W.AQ",
+ AMOMAXU_W_AQRL: "AMOMAXU.W.AQRL",
+ AMOMAXU_W_RL: "AMOMAXU.W.RL",
+ AMOMAX_D: "AMOMAX.D",
+ AMOMAX_D_AQ: "AMOMAX.D.AQ",
+ AMOMAX_D_AQRL: "AMOMAX.D.AQRL",
+ AMOMAX_D_RL: "AMOMAX.D.RL",
+ AMOMAX_W: "AMOMAX.W",
+ AMOMAX_W_AQ: "AMOMAX.W.AQ",
+ AMOMAX_W_AQRL: "AMOMAX.W.AQRL",
+ AMOMAX_W_RL: "AMOMAX.W.RL",
+ AMOMINU_D: "AMOMINU.D",
+ AMOMINU_D_AQ: "AMOMINU.D.AQ",
+ AMOMINU_D_AQRL: "AMOMINU.D.AQRL",
+ AMOMINU_D_RL: "AMOMINU.D.RL",
+ AMOMINU_W: "AMOMINU.W",
+ AMOMINU_W_AQ: "AMOMINU.W.AQ",
+ AMOMINU_W_AQRL: "AMOMINU.W.AQRL",
+ AMOMINU_W_RL: "AMOMINU.W.RL",
+ AMOMIN_D: "AMOMIN.D",
+ AMOMIN_D_AQ: "AMOMIN.D.AQ",
+ AMOMIN_D_AQRL: "AMOMIN.D.AQRL",
+ AMOMIN_D_RL: "AMOMIN.D.RL",
+ AMOMIN_W: "AMOMIN.W",
+ AMOMIN_W_AQ: "AMOMIN.W.AQ",
+ AMOMIN_W_AQRL: "AMOMIN.W.AQRL",
+ AMOMIN_W_RL: "AMOMIN.W.RL",
+ AMOOR_D: "AMOOR.D",
+ AMOOR_D_AQ: "AMOOR.D.AQ",
+ AMOOR_D_AQRL: "AMOOR.D.AQRL",
+ AMOOR_D_RL: "AMOOR.D.RL",
+ AMOOR_W: "AMOOR.W",
+ AMOOR_W_AQ: "AMOOR.W.AQ",
+ AMOOR_W_AQRL: "AMOOR.W.AQRL",
+ AMOOR_W_RL: "AMOOR.W.RL",
+ AMOSWAP_D: "AMOSWAP.D",
+ AMOSWAP_D_AQ: "AMOSWAP.D.AQ",
+ AMOSWAP_D_AQRL: "AMOSWAP.D.AQRL",
+ AMOSWAP_D_RL: "AMOSWAP.D.RL",
+ AMOSWAP_W: "AMOSWAP.W",
+ AMOSWAP_W_AQ: "AMOSWAP.W.AQ",
+ AMOSWAP_W_AQRL: "AMOSWAP.W.AQRL",
+ AMOSWAP_W_RL: "AMOSWAP.W.RL",
+ AMOXOR_D: "AMOXOR.D",
+ AMOXOR_D_AQ: "AMOXOR.D.AQ",
+ AMOXOR_D_AQRL: "AMOXOR.D.AQRL",
+ AMOXOR_D_RL: "AMOXOR.D.RL",
+ AMOXOR_W: "AMOXOR.W",
+ AMOXOR_W_AQ: "AMOXOR.W.AQ",
+ AMOXOR_W_AQRL: "AMOXOR.W.AQRL",
+ AMOXOR_W_RL: "AMOXOR.W.RL",
+ AND: "AND",
+ ANDI: "ANDI",
+ ANDN: "ANDN",
+ AUIPC: "AUIPC",
+ BCLR: "BCLR",
+ BCLRI: "BCLRI",
+ BEQ: "BEQ",
+ BEXT: "BEXT",
+ BEXTI: "BEXTI",
+ BGE: "BGE",
+ BGEU: "BGEU",
+ BINV: "BINV",
+ BINVI: "BINVI",
+ BLT: "BLT",
+ BLTU: "BLTU",
+ BNE: "BNE",
+ BSET: "BSET",
+ BSETI: "BSETI",
+ CLZ: "CLZ",
+ CLZW: "CLZW",
+ CPOP: "CPOP",
+ CPOPW: "CPOPW",
+ CSRRC: "CSRRC",
+ CSRRCI: "CSRRCI",
+ CSRRS: "CSRRS",
+ CSRRSI: "CSRRSI",
+ CSRRW: "CSRRW",
+ CSRRWI: "CSRRWI",
+ CTZ: "CTZ",
+ CTZW: "CTZW",
+ C_ADD: "C.ADD",
+ C_ADDI: "C.ADDI",
+ C_ADDI16SP: "C.ADDI16SP",
+ C_ADDI4SPN: "C.ADDI4SPN",
+ C_ADDIW: "C.ADDIW",
+ C_ADDW: "C.ADDW",
+ C_AND: "C.AND",
+ C_ANDI: "C.ANDI",
+ C_BEQZ: "C.BEQZ",
+ C_BNEZ: "C.BNEZ",
+ C_EBREAK: "C.EBREAK",
+ C_FLD: "C.FLD",
+ C_FLDSP: "C.FLDSP",
+ C_FSD: "C.FSD",
+ C_FSDSP: "C.FSDSP",
+ C_J: "C.J",
+ C_JALR: "C.JALR",
+ C_JR: "C.JR",
+ C_LD: "C.LD",
+ C_LDSP: "C.LDSP",
+ C_LI: "C.LI",
+ C_LUI: "C.LUI",
+ C_LW: "C.LW",
+ C_LWSP: "C.LWSP",
+ C_MV: "C.MV",
+ C_NOP: "C.NOP",
+ C_OR: "C.OR",
+ C_SD: "C.SD",
+ C_SDSP: "C.SDSP",
+ C_SLLI: "C.SLLI",
+ C_SRAI: "C.SRAI",
+ C_SRLI: "C.SRLI",
+ C_SUB: "C.SUB",
+ C_SUBW: "C.SUBW",
+ C_SW: "C.SW",
+ C_SWSP: "C.SWSP",
+ C_UNIMP: "C.UNIMP",
+ C_XOR: "C.XOR",
+ DIV: "DIV",
+ DIVU: "DIVU",
+ DIVUW: "DIVUW",
+ DIVW: "DIVW",
+ EBREAK: "EBREAK",
+ ECALL: "ECALL",
+ FADD_D: "FADD.D",
+ FADD_H: "FADD.H",
+ FADD_Q: "FADD.Q",
+ FADD_S: "FADD.S",
+ FCLASS_D: "FCLASS.D",
+ FCLASS_H: "FCLASS.H",
+ FCLASS_Q: "FCLASS.Q",
+ FCLASS_S: "FCLASS.S",
+ FCVT_D_L: "FCVT.D.L",
+ FCVT_D_LU: "FCVT.D.LU",
+ FCVT_D_Q: "FCVT.D.Q",
+ FCVT_D_S: "FCVT.D.S",
+ FCVT_D_W: "FCVT.D.W",
+ FCVT_D_WU: "FCVT.D.WU",
+ FCVT_H_L: "FCVT.H.L",
+ FCVT_H_LU: "FCVT.H.LU",
+ FCVT_H_S: "FCVT.H.S",
+ FCVT_H_W: "FCVT.H.W",
+ FCVT_H_WU: "FCVT.H.WU",
+ FCVT_LU_D: "FCVT.LU.D",
+ FCVT_LU_H: "FCVT.LU.H",
+ FCVT_LU_Q: "FCVT.LU.Q",
+ FCVT_LU_S: "FCVT.LU.S",
+ FCVT_L_D: "FCVT.L.D",
+ FCVT_L_H: "FCVT.L.H",
+ FCVT_L_Q: "FCVT.L.Q",
+ FCVT_L_S: "FCVT.L.S",
+ FCVT_Q_D: "FCVT.Q.D",
+ FCVT_Q_L: "FCVT.Q.L",
+ FCVT_Q_LU: "FCVT.Q.LU",
+ FCVT_Q_S: "FCVT.Q.S",
+ FCVT_Q_W: "FCVT.Q.W",
+ FCVT_Q_WU: "FCVT.Q.WU",
+ FCVT_S_D: "FCVT.S.D",
+ FCVT_S_H: "FCVT.S.H",
+ FCVT_S_L: "FCVT.S.L",
+ FCVT_S_LU: "FCVT.S.LU",
+ FCVT_S_Q: "FCVT.S.Q",
+ FCVT_S_W: "FCVT.S.W",
+ FCVT_S_WU: "FCVT.S.WU",
+ FCVT_WU_D: "FCVT.WU.D",
+ FCVT_WU_H: "FCVT.WU.H",
+ FCVT_WU_Q: "FCVT.WU.Q",
+ FCVT_WU_S: "FCVT.WU.S",
+ FCVT_W_D: "FCVT.W.D",
+ FCVT_W_H: "FCVT.W.H",
+ FCVT_W_Q: "FCVT.W.Q",
+ FCVT_W_S: "FCVT.W.S",
+ FDIV_D: "FDIV.D",
+ FDIV_H: "FDIV.H",
+ FDIV_Q: "FDIV.Q",
+ FDIV_S: "FDIV.S",
+ FENCE: "FENCE",
+ FENCE_I: "FENCE.I",
+ FEQ_D: "FEQ.D",
+ FEQ_H: "FEQ.H",
+ FEQ_Q: "FEQ.Q",
+ FEQ_S: "FEQ.S",
+ FLD: "FLD",
+ FLE_D: "FLE.D",
+ FLE_H: "FLE.H",
+ FLE_Q: "FLE.Q",
+ FLE_S: "FLE.S",
+ FLH: "FLH",
+ FLQ: "FLQ",
+ FLT_D: "FLT.D",
+ FLT_H: "FLT.H",
+ FLT_Q: "FLT.Q",
+ FLT_S: "FLT.S",
+ FLW: "FLW",
+ FMADD_D: "FMADD.D",
+ FMADD_H: "FMADD.H",
+ FMADD_Q: "FMADD.Q",
+ FMADD_S: "FMADD.S",
+ FMAX_D: "FMAX.D",
+ FMAX_H: "FMAX.H",
+ FMAX_Q: "FMAX.Q",
+ FMAX_S: "FMAX.S",
+ FMIN_D: "FMIN.D",
+ FMIN_H: "FMIN.H",
+ FMIN_Q: "FMIN.Q",
+ FMIN_S: "FMIN.S",
+ FMSUB_D: "FMSUB.D",
+ FMSUB_H: "FMSUB.H",
+ FMSUB_Q: "FMSUB.Q",
+ FMSUB_S: "FMSUB.S",
+ FMUL_D: "FMUL.D",
+ FMUL_H: "FMUL.H",
+ FMUL_Q: "FMUL.Q",
+ FMUL_S: "FMUL.S",
+ FMV_D_X: "FMV.D.X",
+ FMV_H_X: "FMV.H.X",
+ FMV_W_X: "FMV.W.X",
+ FMV_X_D: "FMV.X.D",
+ FMV_X_H: "FMV.X.H",
+ FMV_X_W: "FMV.X.W",
+ FNMADD_D: "FNMADD.D",
+ FNMADD_H: "FNMADD.H",
+ FNMADD_Q: "FNMADD.Q",
+ FNMADD_S: "FNMADD.S",
+ FNMSUB_D: "FNMSUB.D",
+ FNMSUB_H: "FNMSUB.H",
+ FNMSUB_Q: "FNMSUB.Q",
+ FNMSUB_S: "FNMSUB.S",
+ FSD: "FSD",
+ FSGNJN_D: "FSGNJN.D",
+ FSGNJN_H: "FSGNJN.H",
+ FSGNJN_Q: "FSGNJN.Q",
+ FSGNJN_S: "FSGNJN.S",
+ FSGNJX_D: "FSGNJX.D",
+ FSGNJX_H: "FSGNJX.H",
+ FSGNJX_Q: "FSGNJX.Q",
+ FSGNJX_S: "FSGNJX.S",
+ FSGNJ_D: "FSGNJ.D",
+ FSGNJ_H: "FSGNJ.H",
+ FSGNJ_Q: "FSGNJ.Q",
+ FSGNJ_S: "FSGNJ.S",
+ FSH: "FSH",
+ FSQ: "FSQ",
+ FSQRT_D: "FSQRT.D",
+ FSQRT_H: "FSQRT.H",
+ FSQRT_Q: "FSQRT.Q",
+ FSQRT_S: "FSQRT.S",
+ FSUB_D: "FSUB.D",
+ FSUB_H: "FSUB.H",
+ FSUB_Q: "FSUB.Q",
+ FSUB_S: "FSUB.S",
+ FSW: "FSW",
+ JAL: "JAL",
+ JALR: "JALR",
+ LB: "LB",
+ LBU: "LBU",
+ LD: "LD",
+ LH: "LH",
+ LHU: "LHU",
+ LR_D: "LR.D",
+ LR_D_AQ: "LR.D.AQ",
+ LR_D_AQRL: "LR.D.AQRL",
+ LR_D_RL: "LR.D.RL",
+ LR_W: "LR.W",
+ LR_W_AQ: "LR.W.AQ",
+ LR_W_AQRL: "LR.W.AQRL",
+ LR_W_RL: "LR.W.RL",
+ LUI: "LUI",
+ LW: "LW",
+ LWU: "LWU",
+ MAX: "MAX",
+ MAXU: "MAXU",
+ MIN: "MIN",
+ MINU: "MINU",
+ MUL: "MUL",
+ MULH: "MULH",
+ MULHSU: "MULHSU",
+ MULHU: "MULHU",
+ MULW: "MULW",
+ OR: "OR",
+ ORC_B: "ORC.B",
+ ORI: "ORI",
+ ORN: "ORN",
+ REM: "REM",
+ REMU: "REMU",
+ REMUW: "REMUW",
+ REMW: "REMW",
+ REV8: "REV8",
+ ROL: "ROL",
+ ROLW: "ROLW",
+ ROR: "ROR",
+ RORI: "RORI",
+ RORIW: "RORIW",
+ RORW: "RORW",
+ SB: "SB",
+ SC_D: "SC.D",
+ SC_D_AQ: "SC.D.AQ",
+ SC_D_AQRL: "SC.D.AQRL",
+ SC_D_RL: "SC.D.RL",
+ SC_W: "SC.W",
+ SC_W_AQ: "SC.W.AQ",
+ SC_W_AQRL: "SC.W.AQRL",
+ SC_W_RL: "SC.W.RL",
+ SD: "SD",
+ SEXT_B: "SEXT.B",
+ SEXT_H: "SEXT.H",
+ SH: "SH",
+ SH1ADD: "SH1ADD",
+ SH1ADD_UW: "SH1ADD.UW",
+ SH2ADD: "SH2ADD",
+ SH2ADD_UW: "SH2ADD.UW",
+ SH3ADD: "SH3ADD",
+ SH3ADD_UW: "SH3ADD.UW",
+ SLL: "SLL",
+ SLLI: "SLLI",
+ SLLIW: "SLLIW",
+ SLLI_UW: "SLLI.UW",
+ SLLW: "SLLW",
+ SLT: "SLT",
+ SLTI: "SLTI",
+ SLTIU: "SLTIU",
+ SLTU: "SLTU",
+ SRA: "SRA",
+ SRAI: "SRAI",
+ SRAIW: "SRAIW",
+ SRAW: "SRAW",
+ SRL: "SRL",
+ SRLI: "SRLI",
+ SRLIW: "SRLIW",
+ SRLW: "SRLW",
+ SUB: "SUB",
+ SUBW: "SUBW",
+ SW: "SW",
+ XNOR: "XNOR",
+ XOR: "XOR",
+ XORI: "XORI",
+ ZEXT_H: "ZEXT.H",
+}
+
+var instFormats = [...]instFormat{
+ // ADD rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00000033, op: ADD, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ADDI rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00000013, op: ADDI, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // ADDIW rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x0000001b, op: ADDIW, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // ADDW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0000003b, op: ADDW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ADD.UW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0800003b, op: ADD_UW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // AMOADD.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0000302f, op: AMOADD_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0400302f, op: AMOADD_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0600302f, op: AMOADD_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0200302f, op: AMOADD_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0000202f, op: AMOADD_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0400202f, op: AMOADD_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0600202f, op: AMOADD_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOADD.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0200202f, op: AMOADD_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6000302f, op: AMOAND_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6400302f, op: AMOAND_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6600302f, op: AMOAND_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6200302f, op: AMOAND_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6000202f, op: AMOAND_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6400202f, op: AMOAND_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6600202f, op: AMOAND_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOAND.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x6200202f, op: AMOAND_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe000302f, op: AMOMAXU_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe400302f, op: AMOMAXU_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe600302f, op: AMOMAXU_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe200302f, op: AMOMAXU_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe000202f, op: AMOMAXU_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe400202f, op: AMOMAXU_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe600202f, op: AMOMAXU_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAXU.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xe200202f, op: AMOMAXU_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa000302f, op: AMOMAX_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa400302f, op: AMOMAX_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa600302f, op: AMOMAX_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa200302f, op: AMOMAX_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa000202f, op: AMOMAX_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa400202f, op: AMOMAX_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa600202f, op: AMOMAX_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMAX.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xa200202f, op: AMOMAX_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc000302f, op: AMOMINU_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc400302f, op: AMOMINU_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc600302f, op: AMOMINU_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc200302f, op: AMOMINU_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc000202f, op: AMOMINU_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc400202f, op: AMOMINU_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc600202f, op: AMOMINU_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMINU.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0xc200202f, op: AMOMINU_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8000302f, op: AMOMIN_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8400302f, op: AMOMIN_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8600302f, op: AMOMIN_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8200302f, op: AMOMIN_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8000202f, op: AMOMIN_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8400202f, op: AMOMIN_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8600202f, op: AMOMIN_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOMIN.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x8200202f, op: AMOMIN_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4000302f, op: AMOOR_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4400302f, op: AMOOR_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4600302f, op: AMOOR_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4200302f, op: AMOOR_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4000202f, op: AMOOR_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4400202f, op: AMOOR_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4600202f, op: AMOOR_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOOR.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x4200202f, op: AMOOR_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0800302f, op: AMOSWAP_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0c00302f, op: AMOSWAP_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0e00302f, op: AMOSWAP_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0a00302f, op: AMOSWAP_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0800202f, op: AMOSWAP_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0c00202f, op: AMOSWAP_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0e00202f, op: AMOSWAP_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOSWAP.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x0a00202f, op: AMOSWAP_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2000302f, op: AMOXOR_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2400302f, op: AMOXOR_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2600302f, op: AMOXOR_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2200302f, op: AMOXOR_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2000202f, op: AMOXOR_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2400202f, op: AMOXOR_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2600202f, op: AMOXOR_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AMOXOR.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x2200202f, op: AMOXOR_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // AND rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00007033, op: AND, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ANDI rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00007013, op: ANDI, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // ANDN rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x40007033, op: ANDN, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // AUIPC rd, imm20
+ {mask: 0x0000007f, value: 0x00000017, op: AUIPC, args: argTypeList{arg_rd, arg_imm20}},
+ // BCLR rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x48001033, op: BCLR, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // BCLRI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x48001013, op: BCLRI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // BEQ rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00000063, op: BEQ, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BEXT rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x48005033, op: BEXT, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // BEXTI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x48005013, op: BEXTI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // BGE rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00005063, op: BGE, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BGEU rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00007063, op: BGEU, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BINV rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x68001033, op: BINV, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // BINVI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x68001013, op: BINVI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // BLT rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00004063, op: BLT, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BLTU rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00006063, op: BLTU, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BNE rs1, rs2, bimm12
+ {mask: 0x0000707f, value: 0x00001063, op: BNE, args: argTypeList{arg_rs1, arg_rs2, arg_bimm12}},
+ // BSET rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x28001033, op: BSET, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // BSETI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x28001013, op: BSETI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // CLZ rd, rs1
+ {mask: 0xfff0707f, value: 0x60001013, op: CLZ, args: argTypeList{arg_rd, arg_rs1}},
+ // CLZW rd, rs1
+ {mask: 0xfff0707f, value: 0x6000101b, op: CLZW, args: argTypeList{arg_rd, arg_rs1}},
+ // CPOP rd, rs1
+ {mask: 0xfff0707f, value: 0x60201013, op: CPOP, args: argTypeList{arg_rd, arg_rs1}},
+ // CPOPW rd, rs1
+ {mask: 0xfff0707f, value: 0x6020101b, op: CPOPW, args: argTypeList{arg_rd, arg_rs1}},
+ // CSRRC rd, csr, rs1
+ {mask: 0x0000707f, value: 0x00003073, op: CSRRC, args: argTypeList{arg_rd, arg_csr, arg_rs1}},
+ // CSRRCI rd, csr, zimm
+ {mask: 0x0000707f, value: 0x00007073, op: CSRRCI, args: argTypeList{arg_rd, arg_csr, arg_zimm}},
+ // CSRRS rd, csr, rs1
+ {mask: 0x0000707f, value: 0x00002073, op: CSRRS, args: argTypeList{arg_rd, arg_csr, arg_rs1}},
+ // CSRRSI rd, csr, zimm
+ {mask: 0x0000707f, value: 0x00006073, op: CSRRSI, args: argTypeList{arg_rd, arg_csr, arg_zimm}},
+ // CSRRW rd, csr, rs1
+ {mask: 0x0000707f, value: 0x00001073, op: CSRRW, args: argTypeList{arg_rd, arg_csr, arg_rs1}},
+ // CSRRWI rd, csr, zimm
+ {mask: 0x0000707f, value: 0x00005073, op: CSRRWI, args: argTypeList{arg_rd, arg_csr, arg_zimm}},
+ // CTZ rd, rs1
+ {mask: 0xfff0707f, value: 0x60101013, op: CTZ, args: argTypeList{arg_rd, arg_rs1}},
+ // CTZW rd, rs1
+ {mask: 0xfff0707f, value: 0x6010101b, op: CTZW, args: argTypeList{arg_rd, arg_rs1}},
+ // C.ADD rd_rs1_n0, c_rs2_n0
+ {mask: 0x0000f003, value: 0x00009002, op: C_ADD, args: argTypeList{arg_rd_rs1_n0, arg_c_rs2_n0}},
+ // C.ADDI rd_rs1_n0, c_nzimm6
+ {mask: 0x0000e003, value: 0x00000001, op: C_ADDI, args: argTypeList{arg_rd_rs1_n0, arg_c_nzimm6}},
+ // C.ADDI16SP c_nzimm10
+ {mask: 0x0000ef83, value: 0x00006101, op: C_ADDI16SP, args: argTypeList{arg_c_nzimm10}},
+ // C.ADDI4SPN rd_p, c_nzuimm10
+ {mask: 0x0000e003, value: 0x00000000, op: C_ADDI4SPN, args: argTypeList{arg_rd_p, arg_c_nzuimm10}},
+ // C.ADDIW rd_rs1_n0, c_imm6
+ {mask: 0x0000e003, value: 0x00002001, op: C_ADDIW, args: argTypeList{arg_rd_rs1_n0, arg_c_imm6}},
+ // C.ADDW rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00009c21, op: C_ADDW, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // C.AND rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00008c61, op: C_AND, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // C.ANDI rd_rs1_p, c_imm6
+ {mask: 0x0000ec03, value: 0x00008801, op: C_ANDI, args: argTypeList{arg_rd_rs1_p, arg_c_imm6}},
+ // C.BEQZ rs1_p, c_bimm9
+ {mask: 0x0000e003, value: 0x0000c001, op: C_BEQZ, args: argTypeList{arg_rs1_p, arg_c_bimm9}},
+ // C.BNEZ rs1_p, c_bimm9
+ {mask: 0x0000e003, value: 0x0000e001, op: C_BNEZ, args: argTypeList{arg_rs1_p, arg_c_bimm9}},
+ // C.EBREAK
+ {mask: 0x0000ffff, value: 0x00009002, op: C_EBREAK, args: argTypeList{}},
+ // C.FLD fd_p, rs1_p, c_uimm8
+ {mask: 0x0000e003, value: 0x00002000, op: C_FLD, args: argTypeList{arg_fd_p, arg_rs1_p, arg_c_uimm8}},
+ // C.FLDSP fd, c_uimm9sp
+ {mask: 0x0000e003, value: 0x00002002, op: C_FLDSP, args: argTypeList{arg_fd, arg_c_uimm9sp}},
+ // C.FSD rs1_p, fs2_p, c_uimm8
+ {mask: 0x0000e003, value: 0x0000a000, op: C_FSD, args: argTypeList{arg_rs1_p, arg_fs2_p, arg_c_uimm8}},
+ // C.FSDSP c_fs2, c_uimm9sp_s
+ {mask: 0x0000e003, value: 0x0000a002, op: C_FSDSP, args: argTypeList{arg_c_fs2, arg_c_uimm9sp_s}},
+ // C.J c_imm12
+ {mask: 0x0000e003, value: 0x0000a001, op: C_J, args: argTypeList{arg_c_imm12}},
+ // C.JALR c_rs1_n0
+ {mask: 0x0000f07f, value: 0x00009002, op: C_JALR, args: argTypeList{arg_c_rs1_n0}},
+ // C.JR rs1_n0
+ {mask: 0x0000f07f, value: 0x00008002, op: C_JR, args: argTypeList{arg_rs1_n0}},
+ // C.LD rd_p, rs1_p, c_uimm8
+ {mask: 0x0000e003, value: 0x00006000, op: C_LD, args: argTypeList{arg_rd_p, arg_rs1_p, arg_c_uimm8}},
+ // C.LDSP rd_n0, c_uimm9sp
+ {mask: 0x0000e003, value: 0x00006002, op: C_LDSP, args: argTypeList{arg_rd_n0, arg_c_uimm9sp}},
+ // C.LI rd_n0, c_imm6
+ {mask: 0x0000e003, value: 0x00004001, op: C_LI, args: argTypeList{arg_rd_n0, arg_c_imm6}},
+ // C.LUI rd_n2, c_nzimm18
+ {mask: 0x0000e003, value: 0x00006001, op: C_LUI, args: argTypeList{arg_rd_n2, arg_c_nzimm18}},
+ // C.LW rd_p, rs1_p, c_uimm7
+ {mask: 0x0000e003, value: 0x00004000, op: C_LW, args: argTypeList{arg_rd_p, arg_rs1_p, arg_c_uimm7}},
+ // C.LWSP rd_n0, c_uimm8sp
+ {mask: 0x0000e003, value: 0x00004002, op: C_LWSP, args: argTypeList{arg_rd_n0, arg_c_uimm8sp}},
+ // C.MV rd_n0, c_rs2_n0
+ {mask: 0x0000f003, value: 0x00008002, op: C_MV, args: argTypeList{arg_rd_n0, arg_c_rs2_n0}},
+ // C.NOP c_nzimm6
+ {mask: 0x0000ef83, value: 0x00000001, op: C_NOP, args: argTypeList{arg_c_nzimm6}},
+ // C.OR rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00008c41, op: C_OR, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // C.SD rs1_p, rs2_p, c_uimm8
+ {mask: 0x0000e003, value: 0x0000e000, op: C_SD, args: argTypeList{arg_rs1_p, arg_rs2_p, arg_c_uimm8}},
+ // C.SDSP c_rs2, c_uimm9sp_s
+ {mask: 0x0000e003, value: 0x0000e002, op: C_SDSP, args: argTypeList{arg_c_rs2, arg_c_uimm9sp_s}},
+ // C.SLLI rd_rs1_n0, c_nzuimm6
+ {mask: 0x0000e003, value: 0x00000002, op: C_SLLI, args: argTypeList{arg_rd_rs1_n0, arg_c_nzuimm6}},
+ // C.SRAI rd_rs1_p, c_nzuimm6
+ {mask: 0x0000ec03, value: 0x00008401, op: C_SRAI, args: argTypeList{arg_rd_rs1_p, arg_c_nzuimm6}},
+ // C.SRLI rd_rs1_p, c_nzuimm6
+ {mask: 0x0000ec03, value: 0x00008001, op: C_SRLI, args: argTypeList{arg_rd_rs1_p, arg_c_nzuimm6}},
+ // C.SUB rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00008c01, op: C_SUB, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // C.SUBW rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00009c01, op: C_SUBW, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // C.SW rs1_p, rs2_p, c_uimm7
+ {mask: 0x0000e003, value: 0x0000c000, op: C_SW, args: argTypeList{arg_rs1_p, arg_rs2_p, arg_c_uimm7}},
+ // C.SWSP c_rs2, c_uimm8sp_s
+ {mask: 0x0000e003, value: 0x0000c002, op: C_SWSP, args: argTypeList{arg_c_rs2, arg_c_uimm8sp_s}},
+ // C.UNIMP
+ {mask: 0x0000ffff, value: 0x00000000, op: C_UNIMP, args: argTypeList{}},
+ // C.XOR rd_rs1_p, rs2_p
+ {mask: 0x0000fc63, value: 0x00008c21, op: C_XOR, args: argTypeList{arg_rd_rs1_p, arg_rs2_p}},
+ // DIV rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02004033, op: DIV, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // DIVU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02005033, op: DIVU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // DIVUW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0200503b, op: DIVUW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // DIVW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0200403b, op: DIVW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // EBREAK
+ {mask: 0xffffffff, value: 0x00100073, op: EBREAK, args: argTypeList{}},
+ // ECALL
+ {mask: 0xffffffff, value: 0x00000073, op: ECALL, args: argTypeList{}},
+ // FADD.D fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x02000053, op: FADD_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FADD.H fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x04000053, op: FADD_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FADD.Q fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x06000053, op: FADD_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FADD.S fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x00000053, op: FADD_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FCLASS.D rd, fs1
+ {mask: 0xfff0707f, value: 0xe2001053, op: FCLASS_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FCLASS.H rd, fs1
+ {mask: 0xfff0707f, value: 0xe4001053, op: FCLASS_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FCLASS.Q rd, fs1
+ {mask: 0xfff0707f, value: 0xe6001053, op: FCLASS_Q, args: argTypeList{arg_rd, arg_fs1}},
+ // FCLASS.S rd, fs1
+ {mask: 0xfff0707f, value: 0xe0001053, op: FCLASS_S, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.D.L fd, rs1
+ {mask: 0xfff0007f, value: 0xd2200053, op: FCVT_D_L, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.D.LU fd, rs1
+ {mask: 0xfff0007f, value: 0xd2300053, op: FCVT_D_LU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.D.Q fd, fs1
+ {mask: 0xfff0007f, value: 0x42300053, op: FCVT_D_Q, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.D.S fd, fs1
+ {mask: 0xfff0007f, value: 0x42000053, op: FCVT_D_S, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.D.W fd, rs1
+ {mask: 0xfff0007f, value: 0xd2000053, op: FCVT_D_W, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.D.WU fd, rs1
+ {mask: 0xfff0007f, value: 0xd2100053, op: FCVT_D_WU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.H.L fd, rs1
+ {mask: 0xfff0007f, value: 0xd4200053, op: FCVT_H_L, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.H.LU fd, rs1
+ {mask: 0xfff0007f, value: 0xd4300053, op: FCVT_H_LU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.H.S fd, fs1
+ {mask: 0xfff0007f, value: 0x44000053, op: FCVT_H_S, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.H.W fd, rs1
+ {mask: 0xfff0007f, value: 0xd4000053, op: FCVT_H_W, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.H.WU fd, rs1
+ {mask: 0xfff0007f, value: 0xd4100053, op: FCVT_H_WU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.LU.D rd, fs1
+ {mask: 0xfff0007f, value: 0xc2300053, op: FCVT_LU_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.LU.H rd, fs1
+ {mask: 0xfff0007f, value: 0xc4300053, op: FCVT_LU_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.LU.Q rd, fs1
+ {mask: 0xfff0007f, value: 0xc6300053, op: FCVT_LU_Q, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.LU.S rd, fs1
+ {mask: 0xfff0007f, value: 0xc0300053, op: FCVT_LU_S, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.L.D rd, fs1
+ {mask: 0xfff0007f, value: 0xc2200053, op: FCVT_L_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.L.H rd, fs1
+ {mask: 0xfff0007f, value: 0xc4200053, op: FCVT_L_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.L.Q rd, fs1
+ {mask: 0xfff0007f, value: 0xc6200053, op: FCVT_L_Q, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.L.S rd, fs1
+ {mask: 0xfff0007f, value: 0xc0200053, op: FCVT_L_S, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.Q.D fd, fs1
+ {mask: 0xfff0007f, value: 0x46100053, op: FCVT_Q_D, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.Q.L fd, rs1
+ {mask: 0xfff0007f, value: 0xd6200053, op: FCVT_Q_L, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.Q.LU fd, rs1
+ {mask: 0xfff0007f, value: 0xd6300053, op: FCVT_Q_LU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.Q.S fd, fs1
+ {mask: 0xfff0007f, value: 0x46000053, op: FCVT_Q_S, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.Q.W fd, rs1
+ {mask: 0xfff0007f, value: 0xd6000053, op: FCVT_Q_W, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.Q.WU fd, rs1
+ {mask: 0xfff0007f, value: 0xd6100053, op: FCVT_Q_WU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.S.D fd, fs1
+ {mask: 0xfff0007f, value: 0x40100053, op: FCVT_S_D, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.S.H fd, fs1
+ {mask: 0xfff0007f, value: 0x40200053, op: FCVT_S_H, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.S.L fd, rs1
+ {mask: 0xfff0007f, value: 0xd0200053, op: FCVT_S_L, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.S.LU fd, rs1
+ {mask: 0xfff0007f, value: 0xd0300053, op: FCVT_S_LU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.S.Q fd, fs1
+ {mask: 0xfff0007f, value: 0x40300053, op: FCVT_S_Q, args: argTypeList{arg_fd, arg_fs1}},
+ // FCVT.S.W fd, rs1
+ {mask: 0xfff0007f, value: 0xd0000053, op: FCVT_S_W, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.S.WU fd, rs1
+ {mask: 0xfff0007f, value: 0xd0100053, op: FCVT_S_WU, args: argTypeList{arg_fd, arg_rs1}},
+ // FCVT.WU.D rd, fs1
+ {mask: 0xfff0007f, value: 0xc2100053, op: FCVT_WU_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.WU.H rd, fs1
+ {mask: 0xfff0007f, value: 0xc4100053, op: FCVT_WU_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.WU.Q rd, fs1
+ {mask: 0xfff0007f, value: 0xc6100053, op: FCVT_WU_Q, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.WU.S rd, fs1
+ {mask: 0xfff0007f, value: 0xc0100053, op: FCVT_WU_S, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.W.D rd, fs1
+ {mask: 0xfff0007f, value: 0xc2000053, op: FCVT_W_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.W.H rd, fs1
+ {mask: 0xfff0007f, value: 0xc4000053, op: FCVT_W_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.W.Q rd, fs1
+ {mask: 0xfff0007f, value: 0xc6000053, op: FCVT_W_Q, args: argTypeList{arg_rd, arg_fs1}},
+ // FCVT.W.S rd, fs1
+ {mask: 0xfff0007f, value: 0xc0000053, op: FCVT_W_S, args: argTypeList{arg_rd, arg_fs1}},
+ // FDIV.D fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x1a000053, op: FDIV_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FDIV.H fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x1c000053, op: FDIV_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FDIV.Q fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x1e000053, op: FDIV_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FDIV.S fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x18000053, op: FDIV_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FENCE pred, succ
+ {mask: 0x0000707f, value: 0x0000000f, op: FENCE, args: argTypeList{arg_pred, arg_succ}},
+ // FENCE.I
+ {mask: 0x0000707f, value: 0x0000100f, op: FENCE_I, args: argTypeList{}},
+ // FEQ.D rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa2002053, op: FEQ_D, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FEQ.H rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa4002053, op: FEQ_H, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FEQ.Q rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa6002053, op: FEQ_Q, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FEQ.S rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa0002053, op: FEQ_S, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLD fd, rs1_mem
+ {mask: 0x0000707f, value: 0x00003007, op: FLD, args: argTypeList{arg_fd, arg_rs1_mem}},
+ // FLE.D rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa2000053, op: FLE_D, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLE.H rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa4000053, op: FLE_H, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLE.Q rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa6000053, op: FLE_Q, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLE.S rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa0000053, op: FLE_S, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLH fd, rs1_mem
+ {mask: 0x0000707f, value: 0x00001007, op: FLH, args: argTypeList{arg_fd, arg_rs1_mem}},
+ // FLQ fd, rs1_mem
+ {mask: 0x0000707f, value: 0x00004007, op: FLQ, args: argTypeList{arg_fd, arg_rs1_mem}},
+ // FLT.D rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa2001053, op: FLT_D, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLT.H rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa4001053, op: FLT_H, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLT.Q rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa6001053, op: FLT_Q, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLT.S rd, fs1, fs2
+ {mask: 0xfe00707f, value: 0xa0001053, op: FLT_S, args: argTypeList{arg_rd, arg_fs1, arg_fs2}},
+ // FLW fd, rs1_mem
+ {mask: 0x0000707f, value: 0x00002007, op: FLW, args: argTypeList{arg_fd, arg_rs1_mem}},
+ // FMADD.D fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x02000043, op: FMADD_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMADD.H fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x04000043, op: FMADD_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMADD.Q fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x06000043, op: FMADD_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMADD.S fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x00000043, op: FMADD_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMAX.D fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2a001053, op: FMAX_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMAX.H fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2c001053, op: FMAX_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMAX.Q fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2e001053, op: FMAX_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMAX.S fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x28001053, op: FMAX_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMIN.D fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2a000053, op: FMIN_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMIN.H fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2c000053, op: FMIN_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMIN.Q fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x2e000053, op: FMIN_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMIN.S fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x28000053, op: FMIN_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMSUB.D fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x02000047, op: FMSUB_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMSUB.H fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x04000047, op: FMSUB_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMSUB.Q fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x06000047, op: FMSUB_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMSUB.S fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x00000047, op: FMSUB_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FMUL.D fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x12000053, op: FMUL_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMUL.H fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x14000053, op: FMUL_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMUL.Q fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x16000053, op: FMUL_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMUL.S fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x10000053, op: FMUL_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FMV.D.X fd, rs1
+ {mask: 0xfff0707f, value: 0xf2000053, op: FMV_D_X, args: argTypeList{arg_fd, arg_rs1}},
+ // FMV.H.X fd, rs1
+ {mask: 0xfff0707f, value: 0xf4000053, op: FMV_H_X, args: argTypeList{arg_fd, arg_rs1}},
+ // FMV.W.X fd, rs1
+ {mask: 0xfff0707f, value: 0xf0000053, op: FMV_W_X, args: argTypeList{arg_fd, arg_rs1}},
+ // FMV.X.D rd, fs1
+ {mask: 0xfff0707f, value: 0xe2000053, op: FMV_X_D, args: argTypeList{arg_rd, arg_fs1}},
+ // FMV.X.H rd, fs1
+ {mask: 0xfff0707f, value: 0xe4000053, op: FMV_X_H, args: argTypeList{arg_rd, arg_fs1}},
+ // FMV.X.W rd, fs1
+ {mask: 0xfff0707f, value: 0xe0000053, op: FMV_X_W, args: argTypeList{arg_rd, arg_fs1}},
+ // FNMADD.D fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0200004f, op: FNMADD_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMADD.H fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0400004f, op: FNMADD_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMADD.Q fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0600004f, op: FNMADD_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMADD.S fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0000004f, op: FNMADD_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMSUB.D fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0200004b, op: FNMSUB_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMSUB.H fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0400004b, op: FNMSUB_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMSUB.Q fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0600004b, op: FNMSUB_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FNMSUB.S fd, fs1, fs2, fs3
+ {mask: 0x0600007f, value: 0x0000004b, op: FNMSUB_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2, arg_fs3}},
+ // FSD fs2, rs1_store
+ {mask: 0x0000707f, value: 0x00003027, op: FSD, args: argTypeList{arg_fs2, arg_rs1_store}},
+ // FSGNJN.D fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x22001053, op: FSGNJN_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJN.H fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x24001053, op: FSGNJN_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJN.Q fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x26001053, op: FSGNJN_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJN.S fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x20001053, op: FSGNJN_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJX.D fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x22002053, op: FSGNJX_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJX.H fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x24002053, op: FSGNJX_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJX.Q fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x26002053, op: FSGNJX_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJX.S fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x20002053, op: FSGNJX_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJ.D fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x22000053, op: FSGNJ_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJ.H fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x24000053, op: FSGNJ_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJ.Q fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x26000053, op: FSGNJ_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSGNJ.S fd, fs1, fs2
+ {mask: 0xfe00707f, value: 0x20000053, op: FSGNJ_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSH fs2, rs1_store
+ {mask: 0x0000707f, value: 0x00001027, op: FSH, args: argTypeList{arg_fs2, arg_rs1_store}},
+ // FSQ fs2, rs1_store
+ {mask: 0x0000707f, value: 0x00004027, op: FSQ, args: argTypeList{arg_fs2, arg_rs1_store}},
+ // FSQRT.D fd, fs1
+ {mask: 0xfff0007f, value: 0x5a000053, op: FSQRT_D, args: argTypeList{arg_fd, arg_fs1}},
+ // FSQRT.H fd, fs1
+ {mask: 0xfff0007f, value: 0x5c000053, op: FSQRT_H, args: argTypeList{arg_fd, arg_fs1}},
+ // FSQRT.Q fd, fs1
+ {mask: 0xfff0007f, value: 0x5e000053, op: FSQRT_Q, args: argTypeList{arg_fd, arg_fs1}},
+ // FSQRT.S fd, fs1
+ {mask: 0xfff0007f, value: 0x58000053, op: FSQRT_S, args: argTypeList{arg_fd, arg_fs1}},
+ // FSUB.D fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x0a000053, op: FSUB_D, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSUB.H fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x0c000053, op: FSUB_H, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSUB.Q fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x0e000053, op: FSUB_Q, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSUB.S fd, fs1, fs2
+ {mask: 0xfe00007f, value: 0x08000053, op: FSUB_S, args: argTypeList{arg_fd, arg_fs1, arg_fs2}},
+ // FSW fs2, rs1_store
+ {mask: 0x0000707f, value: 0x00002027, op: FSW, args: argTypeList{arg_fs2, arg_rs1_store}},
+ // JAL rd, jimm20
+ {mask: 0x0000007f, value: 0x0000006f, op: JAL, args: argTypeList{arg_rd, arg_jimm20}},
+ // JALR rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00000067, op: JALR, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LB rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00000003, op: LB, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LBU rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00004003, op: LBU, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LD rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00003003, op: LD, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LH rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00001003, op: LH, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LHU rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00005003, op: LHU, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LR.D rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1000302f, op: LR_D, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.D.AQ rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1400302f, op: LR_D_AQ, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.D.AQRL rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1600302f, op: LR_D_AQRL, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.D.RL rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1200302f, op: LR_D_RL, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.W rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1000202f, op: LR_W, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.W.AQ rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1400202f, op: LR_W_AQ, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.W.AQRL rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1600202f, op: LR_W_AQRL, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LR.W.RL rd, rs1_amo
+ {mask: 0xfff0707f, value: 0x1200202f, op: LR_W_RL, args: argTypeList{arg_rd, arg_rs1_amo}},
+ // LUI rd, imm20
+ {mask: 0x0000007f, value: 0x00000037, op: LUI, args: argTypeList{arg_rd, arg_imm20}},
+ // LW rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00002003, op: LW, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // LWU rd, rs1_mem
+ {mask: 0x0000707f, value: 0x00006003, op: LWU, args: argTypeList{arg_rd, arg_rs1_mem}},
+ // MAX rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0a006033, op: MAX, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MAXU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0a007033, op: MAXU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MIN rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0a004033, op: MIN, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MINU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0a005033, op: MINU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MUL rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02000033, op: MUL, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MULH rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02001033, op: MULH, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MULHSU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02002033, op: MULHSU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MULHU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02003033, op: MULHU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // MULW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0200003b, op: MULW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // OR rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00006033, op: OR, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ORC.B rd, rs1
+ {mask: 0xfff0707f, value: 0x28705013, op: ORC_B, args: argTypeList{arg_rd, arg_rs1}},
+ // ORI rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00006013, op: ORI, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // ORN rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x40006033, op: ORN, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // REM rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02006033, op: REM, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // REMU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x02007033, op: REMU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // REMUW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0200703b, op: REMUW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // REMW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0200603b, op: REMW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // REV8 rd, rs1
+ {mask: 0xfff0707f, value: 0x6b805013, op: REV8, args: argTypeList{arg_rd, arg_rs1}},
+ // ROL rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x60001033, op: ROL, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ROLW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x6000103b, op: ROLW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // ROR rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x60005033, op: ROR, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // RORI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x60005013, op: RORI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // RORIW rd, rs1, shamt5
+ {mask: 0xfe00707f, value: 0x6000501b, op: RORIW, args: argTypeList{arg_rd, arg_rs1, arg_shamt5}},
+ // RORW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x6000503b, op: RORW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SB rs2, rs1_store
+ {mask: 0x0000707f, value: 0x00000023, op: SB, args: argTypeList{arg_rs2, arg_rs1_store}},
+ // SC.D rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1800302f, op: SC_D, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.D.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1c00302f, op: SC_D_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.D.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1e00302f, op: SC_D_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.D.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1a00302f, op: SC_D_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.W rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1800202f, op: SC_W, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.W.AQ rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1c00202f, op: SC_W_AQ, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.W.AQRL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1e00202f, op: SC_W_AQRL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SC.W.RL rd, rs2, rs1_amo
+ {mask: 0xfe00707f, value: 0x1a00202f, op: SC_W_RL, args: argTypeList{arg_rd, arg_rs2, arg_rs1_amo}},
+ // SD rs2, rs1_store
+ {mask: 0x0000707f, value: 0x00003023, op: SD, args: argTypeList{arg_rs2, arg_rs1_store}},
+ // SEXT.B rd, rs1
+ {mask: 0xfff0707f, value: 0x60401013, op: SEXT_B, args: argTypeList{arg_rd, arg_rs1}},
+ // SEXT.H rd, rs1
+ {mask: 0xfff0707f, value: 0x60501013, op: SEXT_H, args: argTypeList{arg_rd, arg_rs1}},
+ // SH rs2, rs1_store
+ {mask: 0x0000707f, value: 0x00001023, op: SH, args: argTypeList{arg_rs2, arg_rs1_store}},
+ // SH1ADD rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x20002033, op: SH1ADD, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SH1ADD.UW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x2000203b, op: SH1ADD_UW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SH2ADD rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x20004033, op: SH2ADD, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SH2ADD.UW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x2000403b, op: SH2ADD_UW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SH3ADD rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x20006033, op: SH3ADD, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SH3ADD.UW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x2000603b, op: SH3ADD_UW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SLL rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00001033, op: SLL, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SLLI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x00001013, op: SLLI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // SLLIW rd, rs1, shamt5
+ {mask: 0xfe00707f, value: 0x0000101b, op: SLLIW, args: argTypeList{arg_rd, arg_rs1, arg_shamt5}},
+ // SLLI.UW rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x0800101b, op: SLLI_UW, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // SLLW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0000103b, op: SLLW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SLT rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00002033, op: SLT, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SLTI rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00002013, op: SLTI, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // SLTIU rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00003013, op: SLTIU, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // SLTU rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00003033, op: SLTU, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SRA rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x40005033, op: SRA, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SRAI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x40005013, op: SRAI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // SRAIW rd, rs1, shamt5
+ {mask: 0xfe00707f, value: 0x4000501b, op: SRAIW, args: argTypeList{arg_rd, arg_rs1, arg_shamt5}},
+ // SRAW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x4000503b, op: SRAW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SRL rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00005033, op: SRL, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SRLI rd, rs1, shamt6
+ {mask: 0xfc00707f, value: 0x00005013, op: SRLI, args: argTypeList{arg_rd, arg_rs1, arg_shamt6}},
+ // SRLIW rd, rs1, shamt5
+ {mask: 0xfe00707f, value: 0x0000501b, op: SRLIW, args: argTypeList{arg_rd, arg_rs1, arg_shamt5}},
+ // SRLW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x0000503b, op: SRLW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SUB rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x40000033, op: SUB, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SUBW rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x4000003b, op: SUBW, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // SW rs2, rs1_store
+ {mask: 0x0000707f, value: 0x00002023, op: SW, args: argTypeList{arg_rs2, arg_rs1_store}},
+ // XNOR rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x40004033, op: XNOR, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // XOR rd, rs1, rs2
+ {mask: 0xfe00707f, value: 0x00004033, op: XOR, args: argTypeList{arg_rd, arg_rs1, arg_rs2}},
+ // XORI rd, rs1, imm12
+ {mask: 0x0000707f, value: 0x00004013, op: XORI, args: argTypeList{arg_rd, arg_rs1, arg_imm12}},
+ // ZEXT.H rd, rs1
+ {mask: 0xfff0707f, value: 0x0800403b, op: ZEXT_H, args: argTypeList{arg_rd, arg_rs1}},
+}