1 /* Automatically generated by parse-opcodes */
2 switch((insn
.bits
>> 0x0) & 0x7f)
6 #include "insns/c_li.h"
11 #include "insns/c_addi.h"
16 if((insn
.bits
& 0x801f) == 0x2)
18 #include "insns/c_move.h"
21 if((insn
.bits
& 0x801f) == 0x8002)
23 #include "insns/c_j.h"
26 throw_illegal_instruction
;
31 if((insn
.bits
& 0x3ff) == 0x3)
36 if((insn
.bits
& 0x3ff) == 0x83)
41 if((insn
.bits
& 0x3ff) == 0x103)
46 if((insn
.bits
& 0x3ff) == 0x183)
51 if((insn
.bits
& 0x3ff) == 0x303)
53 #include "insns/lwu.h"
56 if((insn
.bits
& 0x3ff) == 0x203)
58 #include "insns/lbu.h"
61 if((insn
.bits
& 0x3ff) == 0x283)
63 #include "insns/lhu.h"
66 throw_illegal_instruction
;
71 #include "insns/c_ldsp.h"
76 #include "insns/c_lwsp.h"
81 #include "insns/c_sdsp.h"
86 if((insn
.bits
& 0x3ff) == 0x107)
88 #include "insns/flw.h"
91 if((insn
.bits
& 0x3ff) == 0x187)
93 #include "insns/fld.h"
96 throw_illegal_instruction
;
101 #include "insns/c_swsp.h"
106 #include "insns/c_ld.h"
111 #include "insns/c_lw.h"
116 if((insn
.bits
& 0x1ffff) == 0x128b)
118 #include "insns/vlsthu.h"
121 if((insn
.bits
& 0xfff) == 0xb0b)
123 #include "insns/vlsegstwu.h"
126 if((insn
.bits
& 0x3fffff) == 0x30b)
128 #include "insns/vlwu.h"
131 if((insn
.bits
& 0x3fffff) == 0x8b)
133 #include "insns/vlh.h"
136 if((insn
.bits
& 0x1ffff) == 0x158b)
138 #include "insns/vflstd.h"
141 if((insn
.bits
& 0x3fffff) == 0xb)
143 #include "insns/vlb.h"
146 if((insn
.bits
& 0x3fffff) == 0x18b)
148 #include "insns/vld.h"
151 if((insn
.bits
& 0x1ffff) == 0x150b)
153 #include "insns/vflstw.h"
156 if((insn
.bits
& 0x3fffff) == 0x10b)
158 #include "insns/vlw.h"
161 if((insn
.bits
& 0x1ffff) == 0x120b)
163 #include "insns/vlstbu.h"
166 if((insn
.bits
& 0x1ffff) == 0x220b)
168 #include "insns/vlsegbu.h"
171 if((insn
.bits
& 0xfff) == 0xa8b)
173 #include "insns/vlsegsthu.h"
176 if((insn
.bits
& 0x1ffff) == 0x110b)
178 #include "insns/vlstw.h"
181 if((insn
.bits
& 0x1ffff) == 0x108b)
183 #include "insns/vlsth.h"
186 if((insn
.bits
& 0x1ffff) == 0x100b)
188 #include "insns/vlstb.h"
191 if((insn
.bits
& 0x1ffff) == 0x118b)
193 #include "insns/vlstd.h"
196 if((insn
.bits
& 0xfff) == 0xa0b)
198 #include "insns/vlsegstbu.h"
201 if((insn
.bits
& 0x3fffff) == 0x28b)
203 #include "insns/vlhu.h"
206 if((insn
.bits
& 0xfff) == 0x90b)
208 #include "insns/vlsegstw.h"
211 if((insn
.bits
& 0x1ffff) == 0x130b)
213 #include "insns/vlstwu.h"
216 if((insn
.bits
& 0xfff) == 0x80b)
218 #include "insns/vlsegstb.h"
221 if((insn
.bits
& 0xfff) == 0x98b)
223 #include "insns/vlsegstd.h"
226 if((insn
.bits
& 0x1ffff) == 0x258b)
228 #include "insns/vflsegd.h"
231 if((insn
.bits
& 0x1ffff) == 0x250b)
233 #include "insns/vflsegw.h"
236 if((insn
.bits
& 0xfff) == 0x88b)
238 #include "insns/vlsegsth.h"
241 if((insn
.bits
& 0xfff) == 0xd0b)
243 #include "insns/vflsegstw.h"
246 if((insn
.bits
& 0xfff) == 0xd8b)
248 #include "insns/vflsegstd.h"
251 if((insn
.bits
& 0x3fffff) == 0x58b)
253 #include "insns/vfld.h"
256 if((insn
.bits
& 0x1ffff) == 0x230b)
258 #include "insns/vlsegwu.h"
261 if((insn
.bits
& 0x3fffff) == 0x50b)
263 #include "insns/vflw.h"
266 if((insn
.bits
& 0x1ffff) == 0x200b)
268 #include "insns/vlsegb.h"
271 if((insn
.bits
& 0x1ffff) == 0x218b)
273 #include "insns/vlsegd.h"
276 if((insn
.bits
& 0x1ffff) == 0x208b)
278 #include "insns/vlsegh.h"
281 if((insn
.bits
& 0x1ffff) == 0x210b)
283 #include "insns/vlsegw.h"
286 if((insn
.bits
& 0x3fffff) == 0x20b)
288 #include "insns/vlbu.h"
291 if((insn
.bits
& 0x1ffff) == 0x228b)
293 #include "insns/vlseghu.h"
296 throw_illegal_instruction
;
301 #include "insns/c_sd.h"
306 #include "insns/c_sw.h"
311 if((insn
.bits
& 0x1ffff) == 0x150f)
313 #include "insns/vfsstw.h"
316 if((insn
.bits
& 0xfff) == 0x90f)
318 #include "insns/vssegstw.h"
321 if((insn
.bits
& 0xfff) == 0x98f)
323 #include "insns/vssegstd.h"
326 if((insn
.bits
& 0xfff) == 0x80f)
328 #include "insns/vssegstb.h"
331 if((insn
.bits
& 0xfff) == 0x88f)
333 #include "insns/vssegsth.h"
336 if((insn
.bits
& 0x3fffff) == 0x10f)
338 #include "insns/vsw.h"
341 if((insn
.bits
& 0xfff) == 0xd8f)
343 #include "insns/vfssegstd.h"
346 if((insn
.bits
& 0x3fffff) == 0xf)
348 #include "insns/vsb.h"
351 if((insn
.bits
& 0x1ffff) == 0x110f)
353 #include "insns/vsstw.h"
356 if((insn
.bits
& 0x1ffff) == 0x108f)
358 #include "insns/vssth.h"
361 if((insn
.bits
& 0x1ffff) == 0x100f)
363 #include "insns/vsstb.h"
366 if((insn
.bits
& 0x1ffff) == 0x118f)
368 #include "insns/vsstd.h"
371 if((insn
.bits
& 0x1ffff) == 0x218f)
373 #include "insns/vssegd.h"
376 if((insn
.bits
& 0x1ffff) == 0x158f)
378 #include "insns/vfsstd.h"
381 if((insn
.bits
& 0xfff) == 0xd0f)
383 #include "insns/vfssegstw.h"
386 if((insn
.bits
& 0x1ffff) == 0x210f)
388 #include "insns/vssegw.h"
391 if((insn
.bits
& 0x3fffff) == 0x18f)
393 #include "insns/vsd.h"
396 if((insn
.bits
& 0x3fffff) == 0x8f)
398 #include "insns/vsh.h"
401 if((insn
.bits
& 0x1ffff) == 0x208f)
403 #include "insns/vssegh.h"
406 if((insn
.bits
& 0x3fffff) == 0x50f)
408 #include "insns/vfsw.h"
411 if((insn
.bits
& 0x3fffff) == 0x58f)
413 #include "insns/vfsd.h"
416 if((insn
.bits
& 0x1ffff) == 0x250f)
418 #include "insns/vfssegw.h"
421 if((insn
.bits
& 0x1ffff) == 0x200f)
423 #include "insns/vssegb.h"
426 if((insn
.bits
& 0x1ffff) == 0x258f)
428 #include "insns/vfssegd.h"
431 throw_illegal_instruction
;
436 #include "insns/c_beq.h"
441 #include "insns/c_bne.h"
446 if((insn
.bits
& 0x801f) == 0x12)
448 #include "insns/c_lw0.h"
451 if((insn
.bits
& 0x801f) == 0x8012)
453 #include "insns/c_ld0.h"
456 throw_illegal_instruction
;
461 if((insn
.bits
& 0x3ff) == 0x193)
463 #include "insns/sltiu.h"
466 if((insn
.bits
& 0x3f03ff) == 0x293)
468 #include "insns/srli.h"
471 if((insn
.bits
& 0x3ff) == 0x13)
473 #include "insns/addi.h"
476 if((insn
.bits
& 0x3f03ff) == 0x10293)
478 #include "insns/srai.h"
481 if((insn
.bits
& 0x3ff) == 0x313)
483 #include "insns/ori.h"
486 if((insn
.bits
& 0x3ff) == 0x213)
488 #include "insns/xori.h"
491 if((insn
.bits
& 0x3ff) == 0x393)
493 #include "insns/andi.h"
496 if((insn
.bits
& 0x3ff) == 0x113)
498 #include "insns/slti.h"
501 if((insn
.bits
& 0x3f03ff) == 0x93)
503 #include "insns/slli.h"
506 throw_illegal_instruction
;
511 #include "insns/c_flw.h"
516 #include "insns/c_fld.h"
521 #include "insns/c_fsw.h"
526 #include "insns/c_fsd.h"
531 if((insn
.bits
& 0x1c1f) == 0x19)
533 #include "insns/c_slli.h"
536 if((insn
.bits
& 0x1c1f) == 0x819)
538 #include "insns/c_srli.h"
541 if((insn
.bits
& 0x1c1f) == 0x1419)
543 #include "insns/c_srai32.h"
546 if((insn
.bits
& 0x1c1f) == 0x1819)
548 #include "insns/c_slliw.h"
551 if((insn
.bits
& 0x1c1f) == 0xc19)
553 #include "insns/c_srli32.h"
556 if((insn
.bits
& 0x1c1f) == 0x1019)
558 #include "insns/c_srai.h"
561 if((insn
.bits
& 0x1c1f) == 0x419)
563 #include "insns/c_slli32.h"
566 throw_illegal_instruction
;
571 if((insn
.bits
& 0x801f) == 0x801a)
573 #include "insns/c_sub.h"
576 if((insn
.bits
& 0x801f) == 0x1a)
578 #include "insns/c_add.h"
581 throw_illegal_instruction
;
586 if((insn
.bits
& 0x3f83ff) == 0x9b)
588 #include "insns/slliw.h"
591 if((insn
.bits
& 0x3f83ff) == 0x29b)
593 #include "insns/srliw.h"
596 if((insn
.bits
& 0x3ff) == 0x1b)
598 #include "insns/addiw.h"
601 if((insn
.bits
& 0x3f83ff) == 0x1029b)
603 #include "insns/sraiw.h"
606 throw_illegal_instruction
;
611 if((insn
.bits
& 0x31f) == 0x1c)
613 #include "insns/c_add3.h"
616 if((insn
.bits
& 0x31f) == 0x21c)
618 #include "insns/c_or3.h"
621 if((insn
.bits
& 0x31f) == 0x31c)
623 #include "insns/c_and3.h"
626 if((insn
.bits
& 0x31f) == 0x11c)
628 #include "insns/c_sub3.h"
631 throw_illegal_instruction
;
636 #include "insns/c_addiw.h"
641 #include "insns/c_li.h"
646 #include "insns/c_addi.h"
651 if((insn
.bits
& 0x801f) == 0x2)
653 #include "insns/c_move.h"
656 if((insn
.bits
& 0x801f) == 0x8002)
658 #include "insns/c_j.h"
661 throw_illegal_instruction
;
666 if((insn
.bits
& 0x3ff) == 0x123)
668 #include "insns/sw.h"
671 if((insn
.bits
& 0x3ff) == 0xa3)
673 #include "insns/sh.h"
676 if((insn
.bits
& 0x3ff) == 0x23)
678 #include "insns/sb.h"
681 if((insn
.bits
& 0x3ff) == 0x1a3)
683 #include "insns/sd.h"
686 throw_illegal_instruction
;
691 #include "insns/c_ldsp.h"
696 #include "insns/c_lwsp.h"
701 #include "insns/c_sdsp.h"
706 if((insn
.bits
& 0x3ff) == 0x1a7)
708 #include "insns/fsd.h"
711 if((insn
.bits
& 0x3ff) == 0x127)
713 #include "insns/fsw.h"
716 throw_illegal_instruction
;
721 #include "insns/c_swsp.h"
726 #include "insns/c_ld.h"
731 #include "insns/c_lw.h"
736 if((insn
.bits
& 0x1ffff) == 0x19ab)
738 #include "insns/amominu_d.h"
741 if((insn
.bits
& 0x1ffff) == 0x192b)
743 #include "insns/amominu_w.h"
746 if((insn
.bits
& 0x1ffff) == 0x9ab)
748 #include "insns/amoand_d.h"
751 if((insn
.bits
& 0x1ffff) == 0x92b)
753 #include "insns/amoand_w.h"
756 if((insn
.bits
& 0x1ffff) == 0x1dab)
758 #include "insns/amomaxu_d.h"
761 if((insn
.bits
& 0x1ffff) == 0x1d2b)
763 #include "insns/amomaxu_w.h"
766 if((insn
.bits
& 0x1ffff) == 0x1ab)
768 #include "insns/amoadd_d.h"
771 if((insn
.bits
& 0x1ffff) == 0x152b)
773 #include "insns/amomax_w.h"
776 if((insn
.bits
& 0x1ffff) == 0x12b)
778 #include "insns/amoadd_w.h"
781 if((insn
.bits
& 0x1ffff) == 0x15ab)
783 #include "insns/amomax_d.h"
786 if((insn
.bits
& 0x1ffff) == 0xdab)
788 #include "insns/amoor_d.h"
791 if((insn
.bits
& 0x1ffff) == 0xd2b)
793 #include "insns/amoor_w.h"
796 if((insn
.bits
& 0x1ffff) == 0x112b)
798 #include "insns/amomin_w.h"
801 if((insn
.bits
& 0x1ffff) == 0x5ab)
803 #include "insns/amoswap_d.h"
806 if((insn
.bits
& 0x1ffff) == 0x11ab)
808 #include "insns/amomin_d.h"
811 if((insn
.bits
& 0x1ffff) == 0x52b)
813 #include "insns/amoswap_w.h"
816 throw_illegal_instruction
;
821 #include "insns/c_sd.h"
826 #include "insns/c_sw.h"
831 if((insn
.bits
& 0x3ff) == 0x32f)
833 #include "insns/fence_l_cv.h"
836 if((insn
.bits
& 0x3ff) == 0x2af)
838 #include "insns/fence_g_v.h"
841 if((insn
.bits
& 0x3ff) == 0x12f)
843 #include "insns/fence.h"
846 if((insn
.bits
& 0x3ff) == 0xaf)
848 #include "insns/fence_i.h"
851 if((insn
.bits
& 0x3ff) == 0x3af)
853 #include "insns/fence_g_cv.h"
856 if((insn
.bits
& 0x3ff) == 0x22f)
858 #include "insns/fence_l_v.h"
861 throw_illegal_instruction
;
866 #include "insns/c_beq.h"
871 #include "insns/c_bne.h"
876 if((insn
.bits
& 0x801f) == 0x12)
878 #include "insns/c_lw0.h"
881 if((insn
.bits
& 0x801f) == 0x8012)
883 #include "insns/c_ld0.h"
886 throw_illegal_instruction
;
891 if((insn
.bits
& 0x1ffff) == 0x33)
893 #include "insns/add.h"
896 if((insn
.bits
& 0x1ffff) == 0x433)
898 #include "insns/mul.h"
901 if((insn
.bits
& 0x1ffff) == 0x633)
903 #include "insns/div.h"
906 if((insn
.bits
& 0x1ffff) == 0xb3)
908 #include "insns/sll.h"
911 if((insn
.bits
& 0x1ffff) == 0x233)
913 #include "insns/xor.h"
916 if((insn
.bits
& 0x1ffff) == 0x10033)
918 #include "insns/sub.h"
921 if((insn
.bits
& 0x1ffff) == 0x733)
923 #include "insns/rem.h"
926 if((insn
.bits
& 0x1ffff) == 0x4b3)
928 #include "insns/mulh.h"
931 if((insn
.bits
& 0x1ffff) == 0x102b3)
933 #include "insns/sra.h"
936 if((insn
.bits
& 0x1ffff) == 0x2b3)
938 #include "insns/srl.h"
941 if((insn
.bits
& 0x1ffff) == 0x333)
943 #include "insns/or.h"
946 if((insn
.bits
& 0x1ffff) == 0x533)
948 #include "insns/mulhsu.h"
951 if((insn
.bits
& 0x1ffff) == 0x133)
953 #include "insns/slt.h"
956 if((insn
.bits
& 0x1ffff) == 0x7b3)
958 #include "insns/remu.h"
961 if((insn
.bits
& 0x1ffff) == 0x1b3)
963 #include "insns/sltu.h"
966 if((insn
.bits
& 0x1ffff) == 0x3b3)
968 #include "insns/and.h"
971 if((insn
.bits
& 0x1ffff) == 0x5b3)
973 #include "insns/mulhu.h"
976 if((insn
.bits
& 0x1ffff) == 0x6b3)
978 #include "insns/divu.h"
981 throw_illegal_instruction
;
986 #include "insns/c_flw.h"
991 #include "insns/c_fld.h"
996 #include "insns/c_fsw.h"
1001 #include "insns/lui.h"
1006 #include "insns/c_fsd.h"
1011 if((insn
.bits
& 0x1c1f) == 0x19)
1013 #include "insns/c_slli.h"
1016 if((insn
.bits
& 0x1c1f) == 0x819)
1018 #include "insns/c_srli.h"
1021 if((insn
.bits
& 0x1c1f) == 0x1419)
1023 #include "insns/c_srai32.h"
1026 if((insn
.bits
& 0x1c1f) == 0x1819)
1028 #include "insns/c_slliw.h"
1031 if((insn
.bits
& 0x1c1f) == 0xc19)
1033 #include "insns/c_srli32.h"
1036 if((insn
.bits
& 0x1c1f) == 0x1019)
1038 #include "insns/c_srai.h"
1041 if((insn
.bits
& 0x1c1f) == 0x419)
1043 #include "insns/c_slli32.h"
1046 throw_illegal_instruction
;
1051 if((insn
.bits
& 0x801f) == 0x801a)
1053 #include "insns/c_sub.h"
1056 if((insn
.bits
& 0x801f) == 0x1a)
1058 #include "insns/c_add.h"
1061 throw_illegal_instruction
;
1066 if((insn
.bits
& 0x1ffff) == 0x7bb)
1068 #include "insns/remuw.h"
1071 if((insn
.bits
& 0x1ffff) == 0x6bb)
1073 #include "insns/divuw.h"
1076 if((insn
.bits
& 0x1ffff) == 0x43b)
1078 #include "insns/mulw.h"
1081 if((insn
.bits
& 0x1ffff) == 0x2bb)
1083 #include "insns/srlw.h"
1086 if((insn
.bits
& 0x1ffff) == 0x3b)
1088 #include "insns/addw.h"
1091 if((insn
.bits
& 0x1ffff) == 0x102bb)
1093 #include "insns/sraw.h"
1096 if((insn
.bits
& 0x1ffff) == 0x1003b)
1098 #include "insns/subw.h"
1101 if((insn
.bits
& 0x1ffff) == 0xbb)
1103 #include "insns/sllw.h"
1106 if((insn
.bits
& 0x1ffff) == 0x73b)
1108 #include "insns/remw.h"
1111 if((insn
.bits
& 0x1ffff) == 0x63b)
1113 #include "insns/divw.h"
1116 throw_illegal_instruction
;
1121 if((insn
.bits
& 0x31f) == 0x1c)
1123 #include "insns/c_add3.h"
1126 if((insn
.bits
& 0x31f) == 0x21c)
1128 #include "insns/c_or3.h"
1131 if((insn
.bits
& 0x31f) == 0x31c)
1133 #include "insns/c_and3.h"
1136 if((insn
.bits
& 0x31f) == 0x11c)
1138 #include "insns/c_sub3.h"
1141 throw_illegal_instruction
;
1146 #include "insns/c_addiw.h"
1151 #include "insns/c_li.h"
1156 #include "insns/c_addi.h"
1161 if((insn
.bits
& 0x801f) == 0x2)
1163 #include "insns/c_move.h"
1166 if((insn
.bits
& 0x801f) == 0x8002)
1168 #include "insns/c_j.h"
1171 throw_illegal_instruction
;
1176 if((insn
.bits
& 0x1ff) == 0x43)
1178 #include "insns/fmadd_s.h"
1181 if((insn
.bits
& 0x1ff) == 0xc3)
1183 #include "insns/fmadd_d.h"
1186 throw_illegal_instruction
;
1191 #include "insns/c_ldsp.h"
1196 #include "insns/c_lwsp.h"
1201 #include "insns/c_sdsp.h"
1206 if((insn
.bits
& 0x1ff) == 0x47)
1208 #include "insns/fmsub_s.h"
1211 if((insn
.bits
& 0x1ff) == 0xc7)
1213 #include "insns/fmsub_d.h"
1216 throw_illegal_instruction
;
1221 #include "insns/c_swsp.h"
1226 #include "insns/c_ld.h"
1231 #include "insns/c_lw.h"
1236 if((insn
.bits
& 0x1ff) == 0x4b)
1238 #include "insns/fnmsub_s.h"
1241 if((insn
.bits
& 0x1ff) == 0xcb)
1243 #include "insns/fnmsub_d.h"
1246 throw_illegal_instruction
;
1251 #include "insns/c_sd.h"
1256 #include "insns/c_sw.h"
1261 if((insn
.bits
& 0x1ff) == 0x4f)
1263 #include "insns/fnmadd_s.h"
1266 if((insn
.bits
& 0x1ff) == 0xcf)
1268 #include "insns/fnmadd_d.h"
1271 throw_illegal_instruction
;
1276 #include "insns/c_beq.h"
1281 #include "insns/c_bne.h"
1286 if((insn
.bits
& 0x801f) == 0x12)
1288 #include "insns/c_lw0.h"
1291 if((insn
.bits
& 0x801f) == 0x8012)
1293 #include "insns/c_ld0.h"
1296 throw_illegal_instruction
;
1301 if((insn
.bits
& 0x1ffff) == 0x180d3)
1303 #include "insns/fmin_d.h"
1306 if((insn
.bits
& 0x3ff1ff) == 0x9053)
1308 #include "insns/fcvt_lu_s.h"
1311 if((insn
.bits
& 0x1ffff) == 0x18053)
1313 #include "insns/fmin_s.h"
1316 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
1318 #include "insns/fcvt_d_l.h"
1321 if((insn
.bits
& 0x3ff1ff) == 0xe0d3)
1323 #include "insns/fcvt_d_w.h"
1326 if((insn
.bits
& 0x3ff1ff) == 0x100d3)
1328 #include "insns/fcvt_d_s.h"
1331 if((insn
.bits
& 0x1ffff) == 0x190d3)
1333 #include "insns/fmax_d.h"
1336 if((insn
.bits
& 0x3ff1ff) == 0x11053)
1338 #include "insns/fcvt_s_d.h"
1341 if((insn
.bits
& 0x3ff1ff) == 0xe053)
1343 #include "insns/fcvt_s_w.h"
1346 if((insn
.bits
& 0x7c1ffff) == 0x1c0d3)
1348 #include "insns/mftx_d.h"
1351 if((insn
.bits
& 0x7c1ffff) == 0x1c053)
1353 #include "insns/mftx_s.h"
1356 if((insn
.bits
& 0x3ff1ff) == 0x8053)
1358 #include "insns/fcvt_l_s.h"
1361 if((insn
.bits
& 0x1ffff) == 0x17053)
1363 #include "insns/fle_s.h"
1366 if((insn
.bits
& 0x7ffffff) == 0x1d053)
1368 #include "insns/mffsr.h"
1371 if((insn
.bits
& 0x1f1ff) == 0x3053)
1373 #include "insns/fdiv_s.h"
1376 if((insn
.bits
& 0x1ffff) == 0x170d3)
1378 #include "insns/fle_d.h"
1381 if((insn
.bits
& 0x3fffff) == 0x1f053)
1383 #include "insns/mtfsr.h"
1386 if((insn
.bits
& 0x3ff1ff) == 0xd053)
1388 #include "insns/fcvt_s_lu.h"
1391 if((insn
.bits
& 0x1f1ff) == 0x2053)
1393 #include "insns/fmul_s.h"
1396 if((insn
.bits
& 0x1ffff) == 0x160d3)
1398 #include "insns/flt_d.h"
1401 if((insn
.bits
& 0x1f1ff) == 0x20d3)
1403 #include "insns/fmul_d.h"
1406 if((insn
.bits
& 0x1ffff) == 0x16053)
1408 #include "insns/flt_s.h"
1411 if((insn
.bits
& 0x1ffff) == 0x15053)
1413 #include "insns/feq_s.h"
1416 if((insn
.bits
& 0x1ffff) == 0x70d3)
1418 #include "insns/fsgnjx_d.h"
1421 if((insn
.bits
& 0x1ffff) == 0x7053)
1423 #include "insns/fsgnjx_s.h"
1426 if((insn
.bits
& 0x1ffff) == 0x150d3)
1428 #include "insns/feq_d.h"
1431 if((insn
.bits
& 0x3ff1ff) == 0xf0d3)
1433 #include "insns/fcvt_d_wu.h"
1436 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
1438 #include "insns/fcvt_wu_d.h"
1441 if((insn
.bits
& 0x1ffff) == 0x19053)
1443 #include "insns/fmax_s.h"
1446 if((insn
.bits
& 0x3ff1ff) == 0xb053)
1448 #include "insns/fcvt_wu_s.h"
1451 if((insn
.bits
& 0x1ffff) == 0x60d3)
1453 #include "insns/fsgnjn_d.h"
1456 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
1458 #include "insns/fcvt_d_lu.h"
1461 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
1463 #include "insns/fcvt_w_d.h"
1466 if((insn
.bits
& 0x3fffff) == 0x1e0d3)
1468 #include "insns/mxtf_d.h"
1471 if((insn
.bits
& 0x3fffff) == 0x1e053)
1473 #include "insns/mxtf_s.h"
1476 if((insn
.bits
& 0x1f1ff) == 0x1053)
1478 #include "insns/fsub_s.h"
1481 if((insn
.bits
& 0x1ffff) == 0x5053)
1483 #include "insns/fsgnj_s.h"
1486 if((insn
.bits
& 0x1ffff) == 0x50d3)
1488 #include "insns/fsgnj_d.h"
1491 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
1493 #include "insns/fcvt_l_d.h"
1496 if((insn
.bits
& 0x1f1ff) == 0xd3)
1498 #include "insns/fadd_d.h"
1501 if((insn
.bits
& 0x3ff1ff) == 0xf053)
1503 #include "insns/fcvt_s_wu.h"
1506 if((insn
.bits
& 0x3ff1ff) == 0xc053)
1508 #include "insns/fcvt_s_l.h"
1511 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
1513 #include "insns/fcvt_lu_d.h"
1516 if((insn
.bits
& 0x1f1ff) == 0x10d3)
1518 #include "insns/fsub_d.h"
1521 if((insn
.bits
& 0x3ff1ff) == 0xa053)
1523 #include "insns/fcvt_w_s.h"
1526 if((insn
.bits
& 0x3ff1ff) == 0x4053)
1528 #include "insns/fsqrt_s.h"
1531 if((insn
.bits
& 0x1ffff) == 0x6053)
1533 #include "insns/fsgnjn_s.h"
1536 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
1538 #include "insns/fsqrt_d.h"
1541 if((insn
.bits
& 0x1f1ff) == 0x30d3)
1543 #include "insns/fdiv_d.h"
1546 if((insn
.bits
& 0x1f1ff) == 0x53)
1548 #include "insns/fadd_s.h"
1551 throw_illegal_instruction
;
1556 #include "insns/c_flw.h"
1561 #include "insns/c_fld.h"
1566 #include "insns/c_fsw.h"
1571 #include "insns/c_fsd.h"
1576 if((insn
.bits
& 0x1c1f) == 0x19)
1578 #include "insns/c_slli.h"
1581 if((insn
.bits
& 0x1c1f) == 0x819)
1583 #include "insns/c_srli.h"
1586 if((insn
.bits
& 0x1c1f) == 0x1419)
1588 #include "insns/c_srai32.h"
1591 if((insn
.bits
& 0x1c1f) == 0x1819)
1593 #include "insns/c_slliw.h"
1596 if((insn
.bits
& 0x1c1f) == 0xc19)
1598 #include "insns/c_srli32.h"
1601 if((insn
.bits
& 0x1c1f) == 0x1019)
1603 #include "insns/c_srai.h"
1606 if((insn
.bits
& 0x1c1f) == 0x419)
1608 #include "insns/c_slli32.h"
1611 throw_illegal_instruction
;
1616 if((insn
.bits
& 0x801f) == 0x801a)
1618 #include "insns/c_sub.h"
1621 if((insn
.bits
& 0x801f) == 0x1a)
1623 #include "insns/c_add.h"
1626 throw_illegal_instruction
;
1631 if((insn
.bits
& 0x31f) == 0x1c)
1633 #include "insns/c_add3.h"
1636 if((insn
.bits
& 0x31f) == 0x21c)
1638 #include "insns/c_or3.h"
1641 if((insn
.bits
& 0x31f) == 0x31c)
1643 #include "insns/c_and3.h"
1646 if((insn
.bits
& 0x31f) == 0x11c)
1648 #include "insns/c_sub3.h"
1651 throw_illegal_instruction
;
1656 #include "insns/c_addiw.h"
1661 #include "insns/c_li.h"
1666 #include "insns/c_addi.h"
1671 if((insn
.bits
& 0x801f) == 0x2)
1673 #include "insns/c_move.h"
1676 if((insn
.bits
& 0x801f) == 0x8002)
1678 #include "insns/c_j.h"
1681 throw_illegal_instruction
;
1686 if((insn
.bits
& 0x3ff) == 0x363)
1688 #include "insns/bltu.h"
1691 if((insn
.bits
& 0x3ff) == 0xe3)
1693 #include "insns/bne.h"
1696 if((insn
.bits
& 0x3ff) == 0x3e3)
1698 #include "insns/bgeu.h"
1701 if((insn
.bits
& 0x3ff) == 0x263)
1703 #include "insns/blt.h"
1706 if((insn
.bits
& 0x3ff) == 0x2e3)
1708 #include "insns/bge.h"
1711 if((insn
.bits
& 0x3ff) == 0x63)
1713 #include "insns/beq.h"
1716 throw_illegal_instruction
;
1721 #include "insns/c_ldsp.h"
1726 #include "insns/c_lwsp.h"
1731 #include "insns/c_sdsp.h"
1736 #include "insns/j.h"
1741 #include "insns/c_swsp.h"
1746 #include "insns/c_ld.h"
1751 #include "insns/c_lw.h"
1756 if((insn
.bits
& 0x3ff) == 0x6b)
1758 #include "insns/jalr_c.h"
1761 if((insn
.bits
& 0x3ff) == 0x16b)
1763 #include "insns/jalr_j.h"
1766 if((insn
.bits
& 0x3ff) == 0xeb)
1768 #include "insns/jalr_r.h"
1771 if((insn
.bits
& 0x7ffffff) == 0x26b)
1773 #include "insns/rdnpc.h"
1776 throw_illegal_instruction
;
1781 #include "insns/c_sd.h"
1786 #include "insns/c_sw.h"
1791 #include "insns/jal.h"
1796 #include "insns/c_beq.h"
1801 #include "insns/c_bne.h"
1806 if((insn
.bits
& 0x801f) == 0x12)
1808 #include "insns/c_lw0.h"
1811 if((insn
.bits
& 0x801f) == 0x8012)
1813 #include "insns/c_ld0.h"
1816 throw_illegal_instruction
;
1821 if((insn
.bits
& 0x3ff) == 0xf3)
1823 #include "insns/vvcfgivl.h"
1826 if((insn
.bits
& 0x3fffff) == 0x2f3)
1828 #include "insns/vsetvl.h"
1831 if((insn
.bits
& 0x1ffff) == 0x1173)
1833 #include "insns/vfmst.h"
1836 if((insn
.bits
& 0x1ffff) == 0x1973)
1838 #include "insns/vfmts.h"
1841 if((insn
.bits
& 0x3fffff) == 0x973)
1843 #include "insns/vfmsv.h"
1846 if((insn
.bits
& 0x1ffff) == 0x1873)
1848 #include "insns/vmts.h"
1851 if((insn
.bits
& 0x3fffff) == 0x73)
1853 #include "insns/vmvv.h"
1856 if((insn
.bits
& 0x3ff) == 0x1f3)
1858 #include "insns/vtcfgivl.h"
1861 if((insn
.bits
& 0xf80003ff) == 0x3f3)
1863 #include "insns/vf.h"
1866 if((insn
.bits
& 0x3fffff) == 0x173)
1868 #include "insns/vfmvv.h"
1871 if((insn
.bits
& 0x3fffff) == 0x873)
1873 #include "insns/vmsv.h"
1876 if((insn
.bits
& 0x1ffff) == 0x1073)
1878 #include "insns/vmst.h"
1881 throw_illegal_instruction
;
1886 #include "insns/c_flw.h"
1891 #include "insns/c_fld.h"
1896 #include "insns/c_fsw.h"
1901 if((insn
.bits
& 0x1ffff) == 0x6f7)
1903 #include "insns/movn.h"
1906 if((insn
.bits
& 0x1ffff) == 0x2f7)
1908 #include "insns/movz.h"
1911 if((insn
.bits
& 0x7ffffff) == 0x277)
1913 #include "insns/rdcycle.h"
1916 if((insn
.bits
& 0xffffffff) == 0x177)
1918 #include "insns/stop.h"
1921 if((insn
.bits
& 0xffffffff) == 0xf7)
1923 #include "insns/break.h"
1926 if((insn
.bits
& 0x7ffffff) == 0x1f7)
1928 #include "insns/utidx.h"
1931 if((insn
.bits
& 0x7ffffff) == 0xa77)
1933 #include "insns/rdinstret.h"
1936 if((insn
.bits
& 0x7ffffff) == 0x677)
1938 #include "insns/rdtime.h"
1941 if((insn
.bits
& 0x1ffff) == 0xef7)
1943 #include "insns/fmovn.h"
1946 if((insn
.bits
& 0x1ffff) == 0xaf7)
1948 #include "insns/fmovz.h"
1951 if((insn
.bits
& 0xffffffff) == 0x77)
1953 #include "insns/syscall.h"
1956 throw_illegal_instruction
;
1961 #include "insns/c_fsd.h"
1966 if((insn
.bits
& 0x1c1f) == 0x19)
1968 #include "insns/c_slli.h"
1971 if((insn
.bits
& 0x1c1f) == 0x819)
1973 #include "insns/c_srli.h"
1976 if((insn
.bits
& 0x1c1f) == 0x1419)
1978 #include "insns/c_srai32.h"
1981 if((insn
.bits
& 0x1c1f) == 0x1819)
1983 #include "insns/c_slliw.h"
1986 if((insn
.bits
& 0x1c1f) == 0xc19)
1988 #include "insns/c_srli32.h"
1991 if((insn
.bits
& 0x1c1f) == 0x1019)
1993 #include "insns/c_srai.h"
1996 if((insn
.bits
& 0x1c1f) == 0x419)
1998 #include "insns/c_slli32.h"
2001 throw_illegal_instruction
;
2006 if((insn
.bits
& 0x801f) == 0x801a)
2008 #include "insns/c_sub.h"
2011 if((insn
.bits
& 0x801f) == 0x1a)
2013 #include "insns/c_add.h"
2016 throw_illegal_instruction
;
2021 if((insn
.bits
& 0x7c1ffff) == 0x17b)
2023 #include "insns/mfpcr.h"
2026 if((insn
.bits
& 0x7ffffff) == 0xfb)
2028 #include "insns/di.h"
2031 if((insn
.bits
& 0xf801ffff) == 0x1fb)
2033 #include "insns/mtpcr.h"
2036 if((insn
.bits
& 0xffffffff) == 0x2fb)
2038 #include "insns/cflush.h"
2041 if((insn
.bits
& 0x7ffffff) == 0x7b)
2043 #include "insns/ei.h"
2046 if((insn
.bits
& 0xffffffff) == 0x27b)
2048 #include "insns/eret.h"
2051 throw_illegal_instruction
;
2056 if((insn
.bits
& 0x31f) == 0x1c)
2058 #include "insns/c_add3.h"
2061 if((insn
.bits
& 0x31f) == 0x21c)
2063 #include "insns/c_or3.h"
2066 if((insn
.bits
& 0x31f) == 0x31c)
2068 #include "insns/c_and3.h"
2071 if((insn
.bits
& 0x31f) == 0x11c)
2073 #include "insns/c_sub3.h"
2076 throw_illegal_instruction
;
2081 #include "insns/c_addiw.h"
2086 throw_illegal_instruction
;