1 /* Automatically generated by parse-opcodes */
2 switch((insn
.bits
>> 0x0) & 0x7f)
6 #include "insns/c_addi.h"
11 #include "insns/c_li.h"
16 switch((insn
.bits
>> 0x7) & 0x7)
20 if((insn
.bits
& 0x801f) == 0x2)
22 #include "insns/c_move.h"
25 if((insn
.bits
& 0x801f) == 0x8002)
27 #include "insns/c_j.h"
30 throw trap_illegal_instruction
;
34 if((insn
.bits
& 0x801f) == 0x2)
36 #include "insns/c_move.h"
39 if((insn
.bits
& 0x801f) == 0x8002)
41 #include "insns/c_j.h"
44 throw trap_illegal_instruction
;
48 if((insn
.bits
& 0x801f) == 0x2)
50 #include "insns/c_move.h"
53 if((insn
.bits
& 0x801f) == 0x8002)
55 #include "insns/c_j.h"
58 throw trap_illegal_instruction
;
62 if((insn
.bits
& 0x801f) == 0x2)
64 #include "insns/c_move.h"
67 if((insn
.bits
& 0x801f) == 0x8002)
69 #include "insns/c_j.h"
72 throw trap_illegal_instruction
;
76 if((insn
.bits
& 0x801f) == 0x2)
78 #include "insns/c_move.h"
81 if((insn
.bits
& 0x801f) == 0x8002)
83 #include "insns/c_j.h"
86 throw trap_illegal_instruction
;
90 if((insn
.bits
& 0x801f) == 0x2)
92 #include "insns/c_move.h"
95 if((insn
.bits
& 0x801f) == 0x8002)
97 #include "insns/c_j.h"
100 throw trap_illegal_instruction
;
104 if((insn
.bits
& 0x801f) == 0x2)
106 #include "insns/c_move.h"
109 if((insn
.bits
& 0x801f) == 0x8002)
111 #include "insns/c_j.h"
114 throw trap_illegal_instruction
;
118 if((insn
.bits
& 0x801f) == 0x2)
120 #include "insns/c_move.h"
123 if((insn
.bits
& 0x801f) == 0x8002)
125 #include "insns/c_j.h"
128 throw trap_illegal_instruction
;
132 throw trap_illegal_instruction
;
139 switch((insn
.bits
>> 0x7) & 0x7)
143 #include "insns/lb.h"
148 #include "insns/lh.h"
153 #include "insns/lw.h"
158 #include "insns/ld.h"
163 #include "insns/lbu.h"
168 #include "insns/lhu.h"
173 #include "insns/lwu.h"
178 throw trap_illegal_instruction
;
185 switch((insn
.bits
>> 0x7) & 0x7)
189 #include "insns/flw.h"
194 #include "insns/fld.h"
199 throw trap_illegal_instruction
;
206 switch((insn
.bits
>> 0x7) & 0x7)
210 if((insn
.bits
& 0x1ffff) == 0x280b)
212 #include "insns/sbseg_v.h"
215 if((insn
.bits
& 0x1ffff) == 0x100b)
217 #include "insns/lbst_v.h"
220 if((insn
.bits
& 0x1ffff) == 0x180b)
222 #include "insns/sbst_v.h"
225 if((insn
.bits
& 0x3fffff) == 0xb)
227 #include "insns/lb_v.h"
230 if((insn
.bits
& 0x1ffff) == 0x200b)
232 #include "insns/lbseg_v.h"
235 if((insn
.bits
& 0x3fffff) == 0x1000b)
237 #include "insns/mov_vv.h"
240 if((insn
.bits
& 0x3fffff) == 0x1800b)
242 #include "insns/fmov_vv.h"
245 if((insn
.bits
& 0x3fffff) == 0x80b)
247 #include "insns/sb_v.h"
250 throw trap_illegal_instruction
;
254 if((insn
.bits
& 0x1ffff) == 0x208b)
256 #include "insns/lhseg_v.h"
259 if((insn
.bits
& 0x1ffff) == 0x108b)
261 #include "insns/lhst_v.h"
264 if((insn
.bits
& 0x3fffff) == 0x1008b)
266 #include "insns/mov_sv.h"
269 if((insn
.bits
& 0x3fffff) == 0x1808b)
271 #include "insns/fmov_sv.h"
274 if((insn
.bits
& 0x3fffff) == 0x8b)
276 #include "insns/lh_v.h"
279 if((insn
.bits
& 0x3fffff) == 0x88b)
281 #include "insns/sh_v.h"
284 if((insn
.bits
& 0x1ffff) == 0x288b)
286 #include "insns/shseg_v.h"
289 if((insn
.bits
& 0x1ffff) == 0x188b)
291 #include "insns/shst_v.h"
294 throw trap_illegal_instruction
;
298 if((insn
.bits
& 0x3fffff) == 0x10b)
300 #include "insns/lw_v.h"
303 if((insn
.bits
& 0x1ffff) == 0x1810b)
305 #include "insns/fmov_su.h"
308 if((insn
.bits
& 0x1ffff) == 0x290b)
310 #include "insns/swseg_v.h"
313 if((insn
.bits
& 0x1ffff) == 0x1010b)
315 #include "insns/mov_su.h"
318 if((insn
.bits
& 0x1ffff) == 0x1d0b)
320 #include "insns/fswst_v.h"
323 if((insn
.bits
& 0x1ffff) == 0x190b)
325 #include "insns/swst_v.h"
328 if((insn
.bits
& 0x3fffff) == 0xd0b)
330 #include "insns/fsw_v.h"
333 if((insn
.bits
& 0x1ffff) == 0x250b)
335 #include "insns/flwseg_v.h"
338 if((insn
.bits
& 0x3fffff) == 0x50b)
340 #include "insns/flw_v.h"
343 if((insn
.bits
& 0x3fffff) == 0x90b)
345 #include "insns/sw_v.h"
348 if((insn
.bits
& 0x1ffff) == 0x150b)
350 #include "insns/flwst_v.h"
353 if((insn
.bits
& 0x1ffff) == 0x210b)
355 #include "insns/lwseg_v.h"
358 if((insn
.bits
& 0x1ffff) == 0x2d0b)
360 #include "insns/fswseg_v.h"
363 if((insn
.bits
& 0x1ffff) == 0x110b)
365 #include "insns/lwst_v.h"
368 throw trap_illegal_instruction
;
372 if((insn
.bits
& 0x1ffff) == 0x218b)
374 #include "insns/ldseg_v.h"
377 if((insn
.bits
& 0x3fffff) == 0x58b)
379 #include "insns/fld_v.h"
382 if((insn
.bits
& 0x3fffff) == 0x18b)
384 #include "insns/ld_v.h"
387 if((insn
.bits
& 0x3fffff) == 0xd8b)
389 #include "insns/fsd_v.h"
392 if((insn
.bits
& 0x1ffff) == 0x2d8b)
394 #include "insns/fsdseg_v.h"
397 if((insn
.bits
& 0x1ffff) == 0x1d8b)
399 #include "insns/fsdst_v.h"
402 if((insn
.bits
& 0x1ffff) == 0x118b)
404 #include "insns/ldst_v.h"
407 if((insn
.bits
& 0x1ffff) == 0x258b)
409 #include "insns/fldseg_v.h"
412 if((insn
.bits
& 0x1ffff) == 0x1018b)
414 #include "insns/mov_us.h"
417 if((insn
.bits
& 0x1ffff) == 0x158b)
419 #include "insns/fldst_v.h"
422 if((insn
.bits
& 0x1ffff) == 0x298b)
424 #include "insns/sdseg_v.h"
427 if((insn
.bits
& 0x1ffff) == 0x1818b)
429 #include "insns/fmov_us.h"
432 if((insn
.bits
& 0x3fffff) == 0x98b)
434 #include "insns/sd_v.h"
437 if((insn
.bits
& 0x1ffff) == 0x198b)
439 #include "insns/sdst_v.h"
442 throw trap_illegal_instruction
;
446 if((insn
.bits
& 0x3fffff) == 0x20b)
448 #include "insns/lbu_v.h"
451 if((insn
.bits
& 0x1ffff) == 0x220b)
453 #include "insns/lbuseg_v.h"
456 if((insn
.bits
& 0x1ffff) == 0x120b)
458 #include "insns/lbust_v.h"
461 throw trap_illegal_instruction
;
465 if((insn
.bits
& 0x1ffff) == 0x128b)
467 #include "insns/lhust_v.h"
470 if((insn
.bits
& 0x3fffff) == 0x28b)
472 #include "insns/lhu_v.h"
475 if((insn
.bits
& 0x1ffff) == 0x228b)
477 #include "insns/lhuseg_v.h"
480 throw trap_illegal_instruction
;
484 if((insn
.bits
& 0x1ffff) == 0x230b)
486 #include "insns/lwuseg_v.h"
489 if((insn
.bits
& 0x3fffff) == 0x30b)
491 #include "insns/lwu_v.h"
494 if((insn
.bits
& 0x1ffff) == 0x130b)
496 #include "insns/lwust_v.h"
499 throw trap_illegal_instruction
;
503 throw trap_illegal_instruction
;
510 switch((insn
.bits
>> 0x7) & 0x7)
514 if((insn
.bits
& 0xfff) == 0x80f)
516 #include "insns/sbsegst_v.h"
519 if((insn
.bits
& 0xfff) == 0xf)
521 #include "insns/lbsegst_v.h"
524 throw trap_illegal_instruction
;
528 if((insn
.bits
& 0xfff) == 0x88f)
530 #include "insns/shsegst_v.h"
533 if((insn
.bits
& 0xfff) == 0x8f)
535 #include "insns/lhsegst_v.h"
538 throw trap_illegal_instruction
;
542 if((insn
.bits
& 0xfff) == 0xd0f)
544 #include "insns/fswsegst_v.h"
547 if((insn
.bits
& 0xfff) == 0x50f)
549 #include "insns/flwsegst_v.h"
552 if((insn
.bits
& 0xfff) == 0x10f)
554 #include "insns/lwsegst_v.h"
557 if((insn
.bits
& 0xfff) == 0x90f)
559 #include "insns/swsegst_v.h"
562 throw trap_illegal_instruction
;
566 if((insn
.bits
& 0xfff) == 0x18f)
568 #include "insns/ldsegst_v.h"
571 if((insn
.bits
& 0xfff) == 0x98f)
573 #include "insns/sdsegst_v.h"
576 if((insn
.bits
& 0xfff) == 0x58f)
578 #include "insns/fldsegst_v.h"
581 if((insn
.bits
& 0xfff) == 0xd8f)
583 #include "insns/fsdsegst_v.h"
586 throw trap_illegal_instruction
;
590 if((insn
.bits
& 0xfff) == 0x20f)
592 #include "insns/lbusegst_v.h"
595 throw trap_illegal_instruction
;
599 if((insn
.bits
& 0xfff) == 0x28f)
601 #include "insns/lhusegst_v.h"
604 throw trap_illegal_instruction
;
608 if((insn
.bits
& 0xfff) == 0x30f)
610 #include "insns/lwusegst_v.h"
613 throw trap_illegal_instruction
;
617 throw trap_illegal_instruction
;
624 switch((insn
.bits
>> 0x7) & 0x7)
628 #include "insns/addi.h"
633 if((insn
.bits
& 0x3f03ff) == 0x93)
635 #include "insns/slli.h"
638 throw trap_illegal_instruction
;
642 #include "insns/slti.h"
647 #include "insns/sltiu.h"
652 #include "insns/xori.h"
657 if((insn
.bits
& 0x3f03ff) == 0x293)
659 #include "insns/srli.h"
662 if((insn
.bits
& 0x3f03ff) == 0x10293)
664 #include "insns/srai.h"
667 throw trap_illegal_instruction
;
671 #include "insns/ori.h"
676 #include "insns/andi.h"
681 throw trap_illegal_instruction
;
688 switch((insn
.bits
>> 0x7) & 0x7)
692 #include "insns/addiw.h"
697 if((insn
.bits
& 0x3f83ff) == 0x9b)
699 #include "insns/slliw.h"
702 throw trap_illegal_instruction
;
706 if((insn
.bits
& 0x3f83ff) == 0x29b)
708 #include "insns/srliw.h"
711 if((insn
.bits
& 0x3f83ff) == 0x1029b)
713 #include "insns/sraiw.h"
716 throw trap_illegal_instruction
;
720 throw trap_illegal_instruction
;
727 #include "insns/c_addi.h"
732 #include "insns/c_li.h"
737 switch((insn
.bits
>> 0x7) & 0x7)
741 if((insn
.bits
& 0x801f) == 0x2)
743 #include "insns/c_move.h"
746 if((insn
.bits
& 0x801f) == 0x8002)
748 #include "insns/c_j.h"
751 throw trap_illegal_instruction
;
755 if((insn
.bits
& 0x801f) == 0x2)
757 #include "insns/c_move.h"
760 if((insn
.bits
& 0x801f) == 0x8002)
762 #include "insns/c_j.h"
765 throw trap_illegal_instruction
;
769 if((insn
.bits
& 0x801f) == 0x2)
771 #include "insns/c_move.h"
774 if((insn
.bits
& 0x801f) == 0x8002)
776 #include "insns/c_j.h"
779 throw trap_illegal_instruction
;
783 if((insn
.bits
& 0x801f) == 0x2)
785 #include "insns/c_move.h"
788 if((insn
.bits
& 0x801f) == 0x8002)
790 #include "insns/c_j.h"
793 throw trap_illegal_instruction
;
797 if((insn
.bits
& 0x801f) == 0x2)
799 #include "insns/c_move.h"
802 if((insn
.bits
& 0x801f) == 0x8002)
804 #include "insns/c_j.h"
807 throw trap_illegal_instruction
;
811 if((insn
.bits
& 0x801f) == 0x2)
813 #include "insns/c_move.h"
816 if((insn
.bits
& 0x801f) == 0x8002)
818 #include "insns/c_j.h"
821 throw trap_illegal_instruction
;
825 if((insn
.bits
& 0x801f) == 0x2)
827 #include "insns/c_move.h"
830 if((insn
.bits
& 0x801f) == 0x8002)
832 #include "insns/c_j.h"
835 throw trap_illegal_instruction
;
839 if((insn
.bits
& 0x801f) == 0x2)
841 #include "insns/c_move.h"
844 if((insn
.bits
& 0x801f) == 0x8002)
846 #include "insns/c_j.h"
849 throw trap_illegal_instruction
;
853 throw trap_illegal_instruction
;
860 switch((insn
.bits
>> 0x7) & 0x7)
864 #include "insns/sb.h"
869 #include "insns/sh.h"
874 #include "insns/sw.h"
879 #include "insns/sd.h"
884 throw trap_illegal_instruction
;
891 switch((insn
.bits
>> 0x7) & 0x7)
895 #include "insns/fsw.h"
900 #include "insns/fsd.h"
905 throw trap_illegal_instruction
;
912 switch((insn
.bits
>> 0x7) & 0x7)
916 if((insn
.bits
& 0x1ffff) == 0x192b)
918 #include "insns/amominu_w.h"
921 if((insn
.bits
& 0x1ffff) == 0x92b)
923 #include "insns/amoand_w.h"
926 if((insn
.bits
& 0x1ffff) == 0x1d2b)
928 #include "insns/amomaxu_w.h"
931 if((insn
.bits
& 0x1ffff) == 0x152b)
933 #include "insns/amomax_w.h"
936 if((insn
.bits
& 0x1ffff) == 0x12b)
938 #include "insns/amoadd_w.h"
941 if((insn
.bits
& 0x1ffff) == 0xd2b)
943 #include "insns/amoor_w.h"
946 if((insn
.bits
& 0x1ffff) == 0x112b)
948 #include "insns/amomin_w.h"
951 if((insn
.bits
& 0x1ffff) == 0x52b)
953 #include "insns/amoswap_w.h"
956 throw trap_illegal_instruction
;
960 if((insn
.bits
& 0x1ffff) == 0x19ab)
962 #include "insns/amominu_d.h"
965 if((insn
.bits
& 0x1ffff) == 0x9ab)
967 #include "insns/amoand_d.h"
970 if((insn
.bits
& 0x1ffff) == 0x1dab)
972 #include "insns/amomaxu_d.h"
975 if((insn
.bits
& 0x1ffff) == 0x1ab)
977 #include "insns/amoadd_d.h"
980 if((insn
.bits
& 0x1ffff) == 0x15ab)
982 #include "insns/amomax_d.h"
985 if((insn
.bits
& 0x1ffff) == 0xdab)
987 #include "insns/amoor_d.h"
990 if((insn
.bits
& 0x1ffff) == 0x5ab)
992 #include "insns/amoswap_d.h"
995 if((insn
.bits
& 0x1ffff) == 0x11ab)
997 #include "insns/amomin_d.h"
1000 throw trap_illegal_instruction
;
1004 throw trap_illegal_instruction
;
1011 switch((insn
.bits
>> 0x7) & 0x7)
1015 #include "insns/fence_i.h"
1020 #include "insns/fence.h"
1025 #include "insns/fence_l_v.h"
1030 #include "insns/fence_g_v.h"
1035 #include "insns/fence_l_cv.h"
1040 #include "insns/fence_g_cv.h"
1045 throw trap_illegal_instruction
;
1052 switch((insn
.bits
>> 0x7) & 0x7)
1056 if((insn
.bits
& 0x1ffff) == 0x33)
1058 #include "insns/add.h"
1061 if((insn
.bits
& 0x1ffff) == 0x433)
1063 #include "insns/mul.h"
1066 if((insn
.bits
& 0x1ffff) == 0x10033)
1068 #include "insns/sub.h"
1071 throw trap_illegal_instruction
;
1075 if((insn
.bits
& 0x1ffff) == 0xb3)
1077 #include "insns/sll.h"
1080 if((insn
.bits
& 0x1ffff) == 0x4b3)
1082 #include "insns/mulh.h"
1085 throw trap_illegal_instruction
;
1089 if((insn
.bits
& 0x1ffff) == 0x533)
1091 #include "insns/mulhsu.h"
1094 if((insn
.bits
& 0x1ffff) == 0x133)
1096 #include "insns/slt.h"
1099 throw trap_illegal_instruction
;
1103 if((insn
.bits
& 0x1ffff) == 0x1b3)
1105 #include "insns/sltu.h"
1108 if((insn
.bits
& 0x1ffff) == 0x5b3)
1110 #include "insns/mulhu.h"
1113 throw trap_illegal_instruction
;
1117 if((insn
.bits
& 0x1ffff) == 0x633)
1119 #include "insns/div.h"
1122 if((insn
.bits
& 0x1ffff) == 0x233)
1124 #include "insns/xor.h"
1127 throw trap_illegal_instruction
;
1131 if((insn
.bits
& 0x1ffff) == 0x102b3)
1133 #include "insns/sra.h"
1136 if((insn
.bits
& 0x1ffff) == 0x2b3)
1138 #include "insns/srl.h"
1141 if((insn
.bits
& 0x1ffff) == 0x6b3)
1143 #include "insns/divu.h"
1146 throw trap_illegal_instruction
;
1150 if((insn
.bits
& 0x1ffff) == 0x733)
1152 #include "insns/rem.h"
1155 if((insn
.bits
& 0x1ffff) == 0x333)
1157 #include "insns/or.h"
1160 throw trap_illegal_instruction
;
1164 if((insn
.bits
& 0x1ffff) == 0x7b3)
1166 #include "insns/remu.h"
1169 if((insn
.bits
& 0x1ffff) == 0x3b3)
1171 #include "insns/and.h"
1174 throw trap_illegal_instruction
;
1178 throw trap_illegal_instruction
;
1185 #include "insns/lui.h"
1190 switch((insn
.bits
>> 0x7) & 0x7)
1194 if((insn
.bits
& 0x1ffff) == 0x43b)
1196 #include "insns/mulw.h"
1199 if((insn
.bits
& 0x1ffff) == 0x3b)
1201 #include "insns/addw.h"
1204 if((insn
.bits
& 0x1ffff) == 0x1003b)
1206 #include "insns/subw.h"
1209 throw trap_illegal_instruction
;
1213 if((insn
.bits
& 0x1ffff) == 0xbb)
1215 #include "insns/sllw.h"
1218 throw trap_illegal_instruction
;
1222 if((insn
.bits
& 0x1ffff) == 0x63b)
1224 #include "insns/divw.h"
1227 throw trap_illegal_instruction
;
1231 if((insn
.bits
& 0x1ffff) == 0x6bb)
1233 #include "insns/divuw.h"
1236 if((insn
.bits
& 0x1ffff) == 0x2bb)
1238 #include "insns/srlw.h"
1241 if((insn
.bits
& 0x1ffff) == 0x102bb)
1243 #include "insns/sraw.h"
1246 throw trap_illegal_instruction
;
1250 if((insn
.bits
& 0x1ffff) == 0x73b)
1252 #include "insns/remw.h"
1255 throw trap_illegal_instruction
;
1259 if((insn
.bits
& 0x1ffff) == 0x7bb)
1261 #include "insns/remuw.h"
1264 throw trap_illegal_instruction
;
1268 throw trap_illegal_instruction
;
1275 #include "insns/c_addi.h"
1280 #include "insns/c_li.h"
1285 switch((insn
.bits
>> 0x7) & 0x7)
1289 if((insn
.bits
& 0x801f) == 0x2)
1291 #include "insns/c_move.h"
1294 if((insn
.bits
& 0x801f) == 0x8002)
1296 #include "insns/c_j.h"
1299 throw trap_illegal_instruction
;
1303 if((insn
.bits
& 0x801f) == 0x2)
1305 #include "insns/c_move.h"
1308 if((insn
.bits
& 0x801f) == 0x8002)
1310 #include "insns/c_j.h"
1313 throw trap_illegal_instruction
;
1317 if((insn
.bits
& 0x801f) == 0x2)
1319 #include "insns/c_move.h"
1322 if((insn
.bits
& 0x801f) == 0x8002)
1324 #include "insns/c_j.h"
1327 throw trap_illegal_instruction
;
1331 if((insn
.bits
& 0x801f) == 0x2)
1333 #include "insns/c_move.h"
1336 if((insn
.bits
& 0x801f) == 0x8002)
1338 #include "insns/c_j.h"
1341 throw trap_illegal_instruction
;
1345 if((insn
.bits
& 0x801f) == 0x2)
1347 #include "insns/c_move.h"
1350 if((insn
.bits
& 0x801f) == 0x8002)
1352 #include "insns/c_j.h"
1355 throw trap_illegal_instruction
;
1359 if((insn
.bits
& 0x801f) == 0x2)
1361 #include "insns/c_move.h"
1364 if((insn
.bits
& 0x801f) == 0x8002)
1366 #include "insns/c_j.h"
1369 throw trap_illegal_instruction
;
1373 if((insn
.bits
& 0x801f) == 0x2)
1375 #include "insns/c_move.h"
1378 if((insn
.bits
& 0x801f) == 0x8002)
1380 #include "insns/c_j.h"
1383 throw trap_illegal_instruction
;
1387 if((insn
.bits
& 0x801f) == 0x2)
1389 #include "insns/c_move.h"
1392 if((insn
.bits
& 0x801f) == 0x8002)
1394 #include "insns/c_j.h"
1397 throw trap_illegal_instruction
;
1401 throw trap_illegal_instruction
;
1408 switch((insn
.bits
>> 0x7) & 0x7)
1412 #include "insns/fmadd_s.h"
1417 #include "insns/fmadd_d.h"
1422 #include "insns/fmadd_s.h"
1427 #include "insns/fmadd_d.h"
1432 throw trap_illegal_instruction
;
1439 switch((insn
.bits
>> 0x7) & 0x7)
1443 #include "insns/fmsub_s.h"
1448 #include "insns/fmsub_d.h"
1453 #include "insns/fmsub_s.h"
1458 #include "insns/fmsub_d.h"
1463 throw trap_illegal_instruction
;
1470 switch((insn
.bits
>> 0x7) & 0x7)
1474 #include "insns/fnmsub_s.h"
1479 #include "insns/fnmsub_d.h"
1484 #include "insns/fnmsub_s.h"
1489 #include "insns/fnmsub_d.h"
1494 throw trap_illegal_instruction
;
1501 switch((insn
.bits
>> 0x7) & 0x7)
1505 #include "insns/fnmadd_s.h"
1510 #include "insns/fnmadd_d.h"
1515 #include "insns/fnmadd_s.h"
1520 #include "insns/fnmadd_d.h"
1525 throw trap_illegal_instruction
;
1532 switch((insn
.bits
>> 0x7) & 0x7)
1536 if((insn
.bits
& 0x3ff1ff) == 0x9053)
1538 #include "insns/fcvt_lu_s.h"
1541 if((insn
.bits
& 0x1ffff) == 0x18053)
1543 #include "insns/fmin_s.h"
1546 if((insn
.bits
& 0x3ff1ff) == 0x11053)
1548 #include "insns/fcvt_s_d.h"
1551 if((insn
.bits
& 0x3ff1ff) == 0xe053)
1553 #include "insns/fcvt_s_w.h"
1556 if((insn
.bits
& 0x7c1ffff) == 0x1c053)
1558 #include "insns/mftx_s.h"
1561 if((insn
.bits
& 0x3ff1ff) == 0x8053)
1563 #include "insns/fcvt_l_s.h"
1566 if((insn
.bits
& 0x1ffff) == 0x17053)
1568 #include "insns/fle_s.h"
1571 if((insn
.bits
& 0x7ffffff) == 0x1d053)
1573 #include "insns/mffsr.h"
1576 if((insn
.bits
& 0x1f1ff) == 0x3053)
1578 #include "insns/fdiv_s.h"
1581 if((insn
.bits
& 0x3fffff) == 0x1f053)
1583 #include "insns/mtfsr.h"
1586 if((insn
.bits
& 0x3ff1ff) == 0xd053)
1588 #include "insns/fcvt_s_lu.h"
1591 if((insn
.bits
& 0x1f1ff) == 0x2053)
1593 #include "insns/fmul_s.h"
1596 if((insn
.bits
& 0x1ffff) == 0x16053)
1598 #include "insns/flt_s.h"
1601 if((insn
.bits
& 0x1ffff) == 0x15053)
1603 #include "insns/feq_s.h"
1606 if((insn
.bits
& 0x1ffff) == 0x7053)
1608 #include "insns/fsgnjx_s.h"
1611 if((insn
.bits
& 0x1ffff) == 0x19053)
1613 #include "insns/fmax_s.h"
1616 if((insn
.bits
& 0x3ff1ff) == 0xb053)
1618 #include "insns/fcvt_wu_s.h"
1621 if((insn
.bits
& 0x3ff1ff) == 0xa053)
1623 #include "insns/fcvt_w_s.h"
1626 if((insn
.bits
& 0x3fffff) == 0x1e053)
1628 #include "insns/mxtf_s.h"
1631 if((insn
.bits
& 0x1f1ff) == 0x1053)
1633 #include "insns/fsub_s.h"
1636 if((insn
.bits
& 0x1ffff) == 0x5053)
1638 #include "insns/fsgnj_s.h"
1641 if((insn
.bits
& 0x3ff1ff) == 0xf053)
1643 #include "insns/fcvt_s_wu.h"
1646 if((insn
.bits
& 0x3ff1ff) == 0xc053)
1648 #include "insns/fcvt_s_l.h"
1651 if((insn
.bits
& 0x3ff1ff) == 0x4053)
1653 #include "insns/fsqrt_s.h"
1656 if((insn
.bits
& 0x1ffff) == 0x6053)
1658 #include "insns/fsgnjn_s.h"
1661 if((insn
.bits
& 0x1f1ff) == 0x53)
1663 #include "insns/fadd_s.h"
1666 throw trap_illegal_instruction
;
1670 if((insn
.bits
& 0x1ffff) == 0x180d3)
1672 #include "insns/fmin_d.h"
1675 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
1677 #include "insns/fcvt_d_l.h"
1680 if((insn
.bits
& 0x3fffff) == 0xe0d3)
1682 #include "insns/fcvt_d_w.h"
1685 if((insn
.bits
& 0x3fffff) == 0x100d3)
1687 #include "insns/fcvt_d_s.h"
1690 if((insn
.bits
& 0x1ffff) == 0x190d3)
1692 #include "insns/fmax_d.h"
1695 if((insn
.bits
& 0x7c1ffff) == 0x1c0d3)
1697 #include "insns/mftx_d.h"
1700 if((insn
.bits
& 0x1ffff) == 0x170d3)
1702 #include "insns/fle_d.h"
1705 if((insn
.bits
& 0x1ffff) == 0x160d3)
1707 #include "insns/flt_d.h"
1710 if((insn
.bits
& 0x1f1ff) == 0x20d3)
1712 #include "insns/fmul_d.h"
1715 if((insn
.bits
& 0x1ffff) == 0x70d3)
1717 #include "insns/fsgnjx_d.h"
1720 if((insn
.bits
& 0x1ffff) == 0x150d3)
1722 #include "insns/feq_d.h"
1725 if((insn
.bits
& 0x3fffff) == 0xf0d3)
1727 #include "insns/fcvt_d_wu.h"
1730 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
1732 #include "insns/fcvt_wu_d.h"
1735 if((insn
.bits
& 0x1ffff) == 0x60d3)
1737 #include "insns/fsgnjn_d.h"
1740 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
1742 #include "insns/fcvt_d_lu.h"
1745 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
1747 #include "insns/fcvt_w_d.h"
1750 if((insn
.bits
& 0x3fffff) == 0x1e0d3)
1752 #include "insns/mxtf_d.h"
1755 if((insn
.bits
& 0x1ffff) == 0x50d3)
1757 #include "insns/fsgnj_d.h"
1760 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
1762 #include "insns/fcvt_l_d.h"
1765 if((insn
.bits
& 0x1f1ff) == 0xd3)
1767 #include "insns/fadd_d.h"
1770 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
1772 #include "insns/fcvt_lu_d.h"
1775 if((insn
.bits
& 0x1f1ff) == 0x10d3)
1777 #include "insns/fsub_d.h"
1780 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
1782 #include "insns/fsqrt_d.h"
1785 if((insn
.bits
& 0x1f1ff) == 0x30d3)
1787 #include "insns/fdiv_d.h"
1790 throw trap_illegal_instruction
;
1794 if((insn
.bits
& 0x3ff1ff) == 0x9053)
1796 #include "insns/fcvt_lu_s.h"
1799 if((insn
.bits
& 0x3ff1ff) == 0x11053)
1801 #include "insns/fcvt_s_d.h"
1804 if((insn
.bits
& 0x3ff1ff) == 0xe053)
1806 #include "insns/fcvt_s_w.h"
1809 if((insn
.bits
& 0x3ff1ff) == 0x8053)
1811 #include "insns/fcvt_l_s.h"
1814 if((insn
.bits
& 0x1f1ff) == 0x3053)
1816 #include "insns/fdiv_s.h"
1819 if((insn
.bits
& 0x3ff1ff) == 0xd053)
1821 #include "insns/fcvt_s_lu.h"
1824 if((insn
.bits
& 0x1f1ff) == 0x2053)
1826 #include "insns/fmul_s.h"
1829 if((insn
.bits
& 0x3ff1ff) == 0xb053)
1831 #include "insns/fcvt_wu_s.h"
1834 if((insn
.bits
& 0x3ff1ff) == 0xa053)
1836 #include "insns/fcvt_w_s.h"
1839 if((insn
.bits
& 0x1f1ff) == 0x1053)
1841 #include "insns/fsub_s.h"
1844 if((insn
.bits
& 0x3ff1ff) == 0xf053)
1846 #include "insns/fcvt_s_wu.h"
1849 if((insn
.bits
& 0x3ff1ff) == 0xc053)
1851 #include "insns/fcvt_s_l.h"
1854 if((insn
.bits
& 0x3ff1ff) == 0x4053)
1856 #include "insns/fsqrt_s.h"
1859 if((insn
.bits
& 0x1f1ff) == 0x53)
1861 #include "insns/fadd_s.h"
1864 throw trap_illegal_instruction
;
1868 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
1870 #include "insns/fcvt_d_l.h"
1873 if((insn
.bits
& 0x1f1ff) == 0x20d3)
1875 #include "insns/fmul_d.h"
1878 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
1880 #include "insns/fcvt_wu_d.h"
1883 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
1885 #include "insns/fcvt_d_lu.h"
1888 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
1890 #include "insns/fcvt_w_d.h"
1893 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
1895 #include "insns/fcvt_l_d.h"
1898 if((insn
.bits
& 0x1f1ff) == 0xd3)
1900 #include "insns/fadd_d.h"
1903 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
1905 #include "insns/fcvt_lu_d.h"
1908 if((insn
.bits
& 0x1f1ff) == 0x10d3)
1910 #include "insns/fsub_d.h"
1913 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
1915 #include "insns/fsqrt_d.h"
1918 if((insn
.bits
& 0x1f1ff) == 0x30d3)
1920 #include "insns/fdiv_d.h"
1923 throw trap_illegal_instruction
;
1927 throw trap_illegal_instruction
;
1934 #include "insns/c_addi.h"
1939 #include "insns/c_li.h"
1944 switch((insn
.bits
>> 0x7) & 0x7)
1948 if((insn
.bits
& 0x801f) == 0x2)
1950 #include "insns/c_move.h"
1953 if((insn
.bits
& 0x801f) == 0x8002)
1955 #include "insns/c_j.h"
1958 throw trap_illegal_instruction
;
1962 if((insn
.bits
& 0x801f) == 0x2)
1964 #include "insns/c_move.h"
1967 if((insn
.bits
& 0x801f) == 0x8002)
1969 #include "insns/c_j.h"
1972 throw trap_illegal_instruction
;
1976 if((insn
.bits
& 0x801f) == 0x2)
1978 #include "insns/c_move.h"
1981 if((insn
.bits
& 0x801f) == 0x8002)
1983 #include "insns/c_j.h"
1986 throw trap_illegal_instruction
;
1990 if((insn
.bits
& 0x801f) == 0x2)
1992 #include "insns/c_move.h"
1995 if((insn
.bits
& 0x801f) == 0x8002)
1997 #include "insns/c_j.h"
2000 throw trap_illegal_instruction
;
2004 if((insn
.bits
& 0x801f) == 0x2)
2006 #include "insns/c_move.h"
2009 if((insn
.bits
& 0x801f) == 0x8002)
2011 #include "insns/c_j.h"
2014 throw trap_illegal_instruction
;
2018 if((insn
.bits
& 0x801f) == 0x2)
2020 #include "insns/c_move.h"
2023 if((insn
.bits
& 0x801f) == 0x8002)
2025 #include "insns/c_j.h"
2028 throw trap_illegal_instruction
;
2032 if((insn
.bits
& 0x801f) == 0x2)
2034 #include "insns/c_move.h"
2037 if((insn
.bits
& 0x801f) == 0x8002)
2039 #include "insns/c_j.h"
2042 throw trap_illegal_instruction
;
2046 if((insn
.bits
& 0x801f) == 0x2)
2048 #include "insns/c_move.h"
2051 if((insn
.bits
& 0x801f) == 0x8002)
2053 #include "insns/c_j.h"
2056 throw trap_illegal_instruction
;
2060 throw trap_illegal_instruction
;
2067 switch((insn
.bits
>> 0x7) & 0x7)
2071 #include "insns/beq.h"
2076 #include "insns/bne.h"
2081 #include "insns/blt.h"
2086 #include "insns/bge.h"
2091 #include "insns/bltu.h"
2096 #include "insns/bgeu.h"
2101 throw trap_illegal_instruction
;
2108 #include "insns/j.h"
2113 switch((insn
.bits
>> 0x7) & 0x7)
2117 #include "insns/jalr_c.h"
2122 #include "insns/jalr_r.h"
2127 #include "insns/jalr_j.h"
2132 if((insn
.bits
& 0x7ffffff) == 0x26b)
2134 #include "insns/rdnpc.h"
2137 throw trap_illegal_instruction
;
2141 throw trap_illegal_instruction
;
2148 #include "insns/jal.h"
2153 switch((insn
.bits
>> 0x7) & 0x7)
2157 #include "insns/vcfgivl.h"
2162 if((insn
.bits
& 0x3fffff) == 0xf3)
2164 #include "insns/setvl.h"
2167 throw trap_illegal_instruction
;
2171 if((insn
.bits
& 0xf80003ff) == 0x173)
2173 #include "insns/vf.h"
2176 throw trap_illegal_instruction
;
2180 throw trap_illegal_instruction
;
2187 switch((insn
.bits
>> 0x7) & 0x7)
2191 if((insn
.bits
& 0xffffffff) == 0x77)
2193 #include "insns/syscall.h"
2196 throw trap_illegal_instruction
;
2200 if((insn
.bits
& 0xffffffff) == 0xf7)
2202 #include "insns/break.h"
2205 throw trap_illegal_instruction
;
2209 if((insn
.bits
& 0xffffffff) == 0x177)
2211 #include "insns/stop.h"
2214 throw trap_illegal_instruction
;
2218 if((insn
.bits
& 0x7ffffff) == 0x1f7)
2220 #include "insns/utidx.h"
2223 throw trap_illegal_instruction
;
2227 throw trap_illegal_instruction
;
2234 switch((insn
.bits
>> 0x7) & 0x7)
2238 if((insn
.bits
& 0x7ffffff) == 0x7b)
2240 #include "insns/ei.h"
2243 throw trap_illegal_instruction
;
2247 if((insn
.bits
& 0x7ffffff) == 0xfb)
2249 #include "insns/di.h"
2252 throw trap_illegal_instruction
;
2256 if((insn
.bits
& 0x7c1ffff) == 0x17b)
2258 #include "insns/mfpcr.h"
2261 throw trap_illegal_instruction
;
2265 if((insn
.bits
& 0xf801ffff) == 0x1fb)
2267 #include "insns/mtpcr.h"
2270 throw trap_illegal_instruction
;
2274 if((insn
.bits
& 0xffffffff) == 0x27b)
2276 #include "insns/eret.h"
2279 throw trap_illegal_instruction
;
2283 throw trap_illegal_instruction
;
2290 throw trap_illegal_instruction
;