1 /* Automatically generated by parse-opcodes */
2 switch((insn
.bits
>> 0x0) & 0x7f)
6 #include "insns/c_addi.h"
11 switch((insn
.bits
>> 0x7) & 0x7)
35 #include "insns/lbu.h"
40 #include "insns/lhu.h"
45 #include "insns/lwu.h"
50 throw trap_illegal_instruction
;
57 switch((insn
.bits
>> 0x7) & 0x7)
61 #include "insns/flw.h"
66 #include "insns/fld.h"
71 throw trap_illegal_instruction
;
78 switch((insn
.bits
>> 0x7) & 0x7)
82 if((insn
.bits
& 0x1ffff) == 0x280b)
84 #include "insns/sbseg_v.h"
87 if((insn
.bits
& 0x1ffff) == 0x100b)
89 #include "insns/lbst_v.h"
92 if((insn
.bits
& 0x1ffff) == 0x180b)
94 #include "insns/sbst_v.h"
97 if((insn
.bits
& 0x3fffff) == 0xb)
99 #include "insns/lb_v.h"
102 if((insn
.bits
& 0x1ffff) == 0x200b)
104 #include "insns/lbseg_v.h"
107 if((insn
.bits
& 0x3fffff) == 0x1000b)
109 #include "insns/mov_vv.h"
112 if((insn
.bits
& 0x3fffff) == 0x1800b)
114 #include "insns/fmov_vv.h"
117 if((insn
.bits
& 0x3fffff) == 0x80b)
119 #include "insns/sb_v.h"
122 throw trap_illegal_instruction
;
126 if((insn
.bits
& 0x1ffff) == 0x208b)
128 #include "insns/lhseg_v.h"
131 if((insn
.bits
& 0x1ffff) == 0x108b)
133 #include "insns/lhst_v.h"
136 if((insn
.bits
& 0x3fffff) == 0x1008b)
138 #include "insns/mov_sv.h"
141 if((insn
.bits
& 0x3fffff) == 0x1808b)
143 #include "insns/fmov_sv.h"
146 if((insn
.bits
& 0x3fffff) == 0x8b)
148 #include "insns/lh_v.h"
151 if((insn
.bits
& 0x3fffff) == 0x88b)
153 #include "insns/sh_v.h"
156 if((insn
.bits
& 0x1ffff) == 0x288b)
158 #include "insns/shseg_v.h"
161 if((insn
.bits
& 0x1ffff) == 0x188b)
163 #include "insns/shst_v.h"
166 throw trap_illegal_instruction
;
170 if((insn
.bits
& 0x3fffff) == 0x10b)
172 #include "insns/lw_v.h"
175 if((insn
.bits
& 0x1ffff) == 0x1810b)
177 #include "insns/fmov_su.h"
180 if((insn
.bits
& 0x1ffff) == 0x290b)
182 #include "insns/swseg_v.h"
185 if((insn
.bits
& 0x1ffff) == 0x1010b)
187 #include "insns/mov_su.h"
190 if((insn
.bits
& 0x1ffff) == 0x1d0b)
192 #include "insns/fswst_v.h"
195 if((insn
.bits
& 0x1ffff) == 0x190b)
197 #include "insns/swst_v.h"
200 if((insn
.bits
& 0x3fffff) == 0xd0b)
202 #include "insns/fsw_v.h"
205 if((insn
.bits
& 0x1ffff) == 0x250b)
207 #include "insns/flwseg_v.h"
210 if((insn
.bits
& 0x3fffff) == 0x50b)
212 #include "insns/flw_v.h"
215 if((insn
.bits
& 0x3fffff) == 0x90b)
217 #include "insns/sw_v.h"
220 if((insn
.bits
& 0x1ffff) == 0x150b)
222 #include "insns/flwst_v.h"
225 if((insn
.bits
& 0x1ffff) == 0x210b)
227 #include "insns/lwseg_v.h"
230 if((insn
.bits
& 0x1ffff) == 0x2d0b)
232 #include "insns/fswseg_v.h"
235 if((insn
.bits
& 0x1ffff) == 0x110b)
237 #include "insns/lwst_v.h"
240 throw trap_illegal_instruction
;
244 if((insn
.bits
& 0x1ffff) == 0x218b)
246 #include "insns/ldseg_v.h"
249 if((insn
.bits
& 0x3fffff) == 0x58b)
251 #include "insns/fld_v.h"
254 if((insn
.bits
& 0x3fffff) == 0x18b)
256 #include "insns/ld_v.h"
259 if((insn
.bits
& 0x3fffff) == 0xd8b)
261 #include "insns/fsd_v.h"
264 if((insn
.bits
& 0x1ffff) == 0x2d8b)
266 #include "insns/fsdseg_v.h"
269 if((insn
.bits
& 0x1ffff) == 0x1d8b)
271 #include "insns/fsdst_v.h"
274 if((insn
.bits
& 0x1ffff) == 0x118b)
276 #include "insns/ldst_v.h"
279 if((insn
.bits
& 0x1ffff) == 0x258b)
281 #include "insns/fldseg_v.h"
284 if((insn
.bits
& 0x1ffff) == 0x1018b)
286 #include "insns/mov_us.h"
289 if((insn
.bits
& 0x1ffff) == 0x158b)
291 #include "insns/fldst_v.h"
294 if((insn
.bits
& 0x1ffff) == 0x298b)
296 #include "insns/sdseg_v.h"
299 if((insn
.bits
& 0x1ffff) == 0x1818b)
301 #include "insns/fmov_us.h"
304 if((insn
.bits
& 0x3fffff) == 0x98b)
306 #include "insns/sd_v.h"
309 if((insn
.bits
& 0x1ffff) == 0x198b)
311 #include "insns/sdst_v.h"
314 throw trap_illegal_instruction
;
318 if((insn
.bits
& 0x3fffff) == 0x20b)
320 #include "insns/lbu_v.h"
323 if((insn
.bits
& 0x1ffff) == 0x220b)
325 #include "insns/lbuseg_v.h"
328 if((insn
.bits
& 0x1ffff) == 0x120b)
330 #include "insns/lbust_v.h"
333 throw trap_illegal_instruction
;
337 if((insn
.bits
& 0x1ffff) == 0x128b)
339 #include "insns/lhust_v.h"
342 if((insn
.bits
& 0x3fffff) == 0x28b)
344 #include "insns/lhu_v.h"
347 if((insn
.bits
& 0x1ffff) == 0x228b)
349 #include "insns/lhuseg_v.h"
352 throw trap_illegal_instruction
;
356 if((insn
.bits
& 0x1ffff) == 0x230b)
358 #include "insns/lwuseg_v.h"
361 if((insn
.bits
& 0x3fffff) == 0x30b)
363 #include "insns/lwu_v.h"
366 if((insn
.bits
& 0x1ffff) == 0x130b)
368 #include "insns/lwust_v.h"
371 throw trap_illegal_instruction
;
375 throw trap_illegal_instruction
;
382 switch((insn
.bits
>> 0x7) & 0x7)
386 if((insn
.bits
& 0xfff) == 0x80f)
388 #include "insns/sbsegst_v.h"
391 if((insn
.bits
& 0xfff) == 0xf)
393 #include "insns/lbsegst_v.h"
396 throw trap_illegal_instruction
;
400 if((insn
.bits
& 0xfff) == 0x88f)
402 #include "insns/shsegst_v.h"
405 if((insn
.bits
& 0xfff) == 0x8f)
407 #include "insns/lhsegst_v.h"
410 throw trap_illegal_instruction
;
414 if((insn
.bits
& 0xfff) == 0xd0f)
416 #include "insns/fswsegst_v.h"
419 if((insn
.bits
& 0xfff) == 0x50f)
421 #include "insns/flwsegst_v.h"
424 if((insn
.bits
& 0xfff) == 0x10f)
426 #include "insns/lwsegst_v.h"
429 if((insn
.bits
& 0xfff) == 0x90f)
431 #include "insns/swsegst_v.h"
434 throw trap_illegal_instruction
;
438 if((insn
.bits
& 0xfff) == 0x18f)
440 #include "insns/ldsegst_v.h"
443 if((insn
.bits
& 0xfff) == 0x98f)
445 #include "insns/sdsegst_v.h"
448 if((insn
.bits
& 0xfff) == 0x58f)
450 #include "insns/fldsegst_v.h"
453 if((insn
.bits
& 0xfff) == 0xd8f)
455 #include "insns/fsdsegst_v.h"
458 throw trap_illegal_instruction
;
462 if((insn
.bits
& 0xfff) == 0x20f)
464 #include "insns/lbusegst_v.h"
467 throw trap_illegal_instruction
;
471 if((insn
.bits
& 0xfff) == 0x28f)
473 #include "insns/lhusegst_v.h"
476 throw trap_illegal_instruction
;
480 if((insn
.bits
& 0xfff) == 0x30f)
482 #include "insns/lwusegst_v.h"
485 throw trap_illegal_instruction
;
489 throw trap_illegal_instruction
;
496 switch((insn
.bits
>> 0x7) & 0x7)
500 #include "insns/addi.h"
505 if((insn
.bits
& 0x3f03ff) == 0x93)
507 #include "insns/slli.h"
510 throw trap_illegal_instruction
;
514 #include "insns/slti.h"
519 #include "insns/sltiu.h"
524 #include "insns/xori.h"
529 if((insn
.bits
& 0x3f03ff) == 0x293)
531 #include "insns/srli.h"
534 if((insn
.bits
& 0x3f03ff) == 0x10293)
536 #include "insns/srai.h"
539 throw trap_illegal_instruction
;
543 #include "insns/ori.h"
548 #include "insns/andi.h"
553 throw trap_illegal_instruction
;
560 switch((insn
.bits
>> 0x7) & 0x7)
564 #include "insns/addiw.h"
569 if((insn
.bits
& 0x3f83ff) == 0x9b)
571 #include "insns/slliw.h"
574 throw trap_illegal_instruction
;
578 if((insn
.bits
& 0x3f83ff) == 0x29b)
580 #include "insns/srliw.h"
583 if((insn
.bits
& 0x3f83ff) == 0x1029b)
585 #include "insns/sraiw.h"
588 throw trap_illegal_instruction
;
592 throw trap_illegal_instruction
;
599 #include "insns/c_addi.h"
604 switch((insn
.bits
>> 0x7) & 0x7)
608 #include "insns/sb.h"
613 #include "insns/sh.h"
618 #include "insns/sw.h"
623 #include "insns/sd.h"
628 throw trap_illegal_instruction
;
635 switch((insn
.bits
>> 0x7) & 0x7)
639 #include "insns/fsw.h"
644 #include "insns/fsd.h"
649 throw trap_illegal_instruction
;
656 switch((insn
.bits
>> 0x7) & 0x7)
660 if((insn
.bits
& 0x1ffff) == 0x192b)
662 #include "insns/amominu_w.h"
665 if((insn
.bits
& 0x1ffff) == 0x92b)
667 #include "insns/amoand_w.h"
670 if((insn
.bits
& 0x1ffff) == 0x1d2b)
672 #include "insns/amomaxu_w.h"
675 if((insn
.bits
& 0x1ffff) == 0x152b)
677 #include "insns/amomax_w.h"
680 if((insn
.bits
& 0x1ffff) == 0x12b)
682 #include "insns/amoadd_w.h"
685 if((insn
.bits
& 0x1ffff) == 0xd2b)
687 #include "insns/amoor_w.h"
690 if((insn
.bits
& 0x1ffff) == 0x112b)
692 #include "insns/amomin_w.h"
695 if((insn
.bits
& 0x1ffff) == 0x52b)
697 #include "insns/amoswap_w.h"
700 throw trap_illegal_instruction
;
704 if((insn
.bits
& 0x1ffff) == 0x19ab)
706 #include "insns/amominu_d.h"
709 if((insn
.bits
& 0x1ffff) == 0x9ab)
711 #include "insns/amoand_d.h"
714 if((insn
.bits
& 0x1ffff) == 0x1dab)
716 #include "insns/amomaxu_d.h"
719 if((insn
.bits
& 0x1ffff) == 0x1ab)
721 #include "insns/amoadd_d.h"
724 if((insn
.bits
& 0x1ffff) == 0x15ab)
726 #include "insns/amomax_d.h"
729 if((insn
.bits
& 0x1ffff) == 0xdab)
731 #include "insns/amoor_d.h"
734 if((insn
.bits
& 0x1ffff) == 0x5ab)
736 #include "insns/amoswap_d.h"
739 if((insn
.bits
& 0x1ffff) == 0x11ab)
741 #include "insns/amomin_d.h"
744 throw trap_illegal_instruction
;
748 throw trap_illegal_instruction
;
755 switch((insn
.bits
>> 0x7) & 0x7)
759 #include "insns/fence_i.h"
764 #include "insns/fence.h"
769 #include "insns/fence_l_v.h"
774 #include "insns/fence_g_v.h"
779 #include "insns/fence_l_cv.h"
784 #include "insns/fence_g_cv.h"
789 throw trap_illegal_instruction
;
796 switch((insn
.bits
>> 0x7) & 0x7)
800 if((insn
.bits
& 0x1ffff) == 0x33)
802 #include "insns/add.h"
805 if((insn
.bits
& 0x1ffff) == 0x433)
807 #include "insns/mul.h"
810 if((insn
.bits
& 0x1ffff) == 0x10033)
812 #include "insns/sub.h"
815 throw trap_illegal_instruction
;
819 if((insn
.bits
& 0x1ffff) == 0xb3)
821 #include "insns/sll.h"
824 if((insn
.bits
& 0x1ffff) == 0x4b3)
826 #include "insns/mulh.h"
829 throw trap_illegal_instruction
;
833 if((insn
.bits
& 0x1ffff) == 0x533)
835 #include "insns/mulhsu.h"
838 if((insn
.bits
& 0x1ffff) == 0x133)
840 #include "insns/slt.h"
843 throw trap_illegal_instruction
;
847 if((insn
.bits
& 0x1ffff) == 0x1b3)
849 #include "insns/sltu.h"
852 if((insn
.bits
& 0x1ffff) == 0x5b3)
854 #include "insns/mulhu.h"
857 throw trap_illegal_instruction
;
861 if((insn
.bits
& 0x1ffff) == 0x633)
863 #include "insns/div.h"
866 if((insn
.bits
& 0x1ffff) == 0x233)
868 #include "insns/xor.h"
871 throw trap_illegal_instruction
;
875 if((insn
.bits
& 0x1ffff) == 0x102b3)
877 #include "insns/sra.h"
880 if((insn
.bits
& 0x1ffff) == 0x2b3)
882 #include "insns/srl.h"
885 if((insn
.bits
& 0x1ffff) == 0x6b3)
887 #include "insns/divu.h"
890 throw trap_illegal_instruction
;
894 if((insn
.bits
& 0x1ffff) == 0x733)
896 #include "insns/rem.h"
899 if((insn
.bits
& 0x1ffff) == 0x333)
901 #include "insns/or.h"
904 throw trap_illegal_instruction
;
908 if((insn
.bits
& 0x1ffff) == 0x7b3)
910 #include "insns/remu.h"
913 if((insn
.bits
& 0x1ffff) == 0x3b3)
915 #include "insns/and.h"
918 throw trap_illegal_instruction
;
922 throw trap_illegal_instruction
;
929 #include "insns/lui.h"
934 switch((insn
.bits
>> 0x7) & 0x7)
938 if((insn
.bits
& 0x1ffff) == 0x43b)
940 #include "insns/mulw.h"
943 if((insn
.bits
& 0x1ffff) == 0x3b)
945 #include "insns/addw.h"
948 if((insn
.bits
& 0x1ffff) == 0x1003b)
950 #include "insns/subw.h"
953 throw trap_illegal_instruction
;
957 if((insn
.bits
& 0x1ffff) == 0xbb)
959 #include "insns/sllw.h"
962 throw trap_illegal_instruction
;
966 if((insn
.bits
& 0x1ffff) == 0x63b)
968 #include "insns/divw.h"
971 throw trap_illegal_instruction
;
975 if((insn
.bits
& 0x1ffff) == 0x6bb)
977 #include "insns/divuw.h"
980 if((insn
.bits
& 0x1ffff) == 0x2bb)
982 #include "insns/srlw.h"
985 if((insn
.bits
& 0x1ffff) == 0x102bb)
987 #include "insns/sraw.h"
990 throw trap_illegal_instruction
;
994 if((insn
.bits
& 0x1ffff) == 0x73b)
996 #include "insns/remw.h"
999 throw trap_illegal_instruction
;
1003 if((insn
.bits
& 0x1ffff) == 0x7bb)
1005 #include "insns/remuw.h"
1008 throw trap_illegal_instruction
;
1012 throw trap_illegal_instruction
;
1019 #include "insns/c_addi.h"
1024 switch((insn
.bits
>> 0x7) & 0x7)
1028 #include "insns/fmadd_s.h"
1033 #include "insns/fmadd_d.h"
1038 #include "insns/fmadd_s.h"
1043 #include "insns/fmadd_d.h"
1048 throw trap_illegal_instruction
;
1055 switch((insn
.bits
>> 0x7) & 0x7)
1059 #include "insns/fmsub_s.h"
1064 #include "insns/fmsub_d.h"
1069 #include "insns/fmsub_s.h"
1074 #include "insns/fmsub_d.h"
1079 throw trap_illegal_instruction
;
1086 switch((insn
.bits
>> 0x7) & 0x7)
1090 #include "insns/fnmsub_s.h"
1095 #include "insns/fnmsub_d.h"
1100 #include "insns/fnmsub_s.h"
1105 #include "insns/fnmsub_d.h"
1110 throw trap_illegal_instruction
;
1117 switch((insn
.bits
>> 0x7) & 0x7)
1121 #include "insns/fnmadd_s.h"
1126 #include "insns/fnmadd_d.h"
1131 #include "insns/fnmadd_s.h"
1136 #include "insns/fnmadd_d.h"
1141 throw trap_illegal_instruction
;
1148 switch((insn
.bits
>> 0x7) & 0x7)
1152 if((insn
.bits
& 0x3ff1ff) == 0x9053)
1154 #include "insns/fcvt_lu_s.h"
1157 if((insn
.bits
& 0x1ffff) == 0x18053)
1159 #include "insns/fmin_s.h"
1162 if((insn
.bits
& 0x3ff1ff) == 0x11053)
1164 #include "insns/fcvt_s_d.h"
1167 if((insn
.bits
& 0x3ff1ff) == 0xe053)
1169 #include "insns/fcvt_s_w.h"
1172 if((insn
.bits
& 0x7c1ffff) == 0x1c053)
1174 #include "insns/mftx_s.h"
1177 if((insn
.bits
& 0x3ff1ff) == 0x8053)
1179 #include "insns/fcvt_l_s.h"
1182 if((insn
.bits
& 0x1ffff) == 0x17053)
1184 #include "insns/fle_s.h"
1187 if((insn
.bits
& 0x7ffffff) == 0x1d053)
1189 #include "insns/mffsr.h"
1192 if((insn
.bits
& 0x1f1ff) == 0x3053)
1194 #include "insns/fdiv_s.h"
1197 if((insn
.bits
& 0x3fffff) == 0x1f053)
1199 #include "insns/mtfsr.h"
1202 if((insn
.bits
& 0x3ff1ff) == 0xd053)
1204 #include "insns/fcvt_s_lu.h"
1207 if((insn
.bits
& 0x1f1ff) == 0x2053)
1209 #include "insns/fmul_s.h"
1212 if((insn
.bits
& 0x1ffff) == 0x16053)
1214 #include "insns/flt_s.h"
1217 if((insn
.bits
& 0x1ffff) == 0x15053)
1219 #include "insns/feq_s.h"
1222 if((insn
.bits
& 0x1ffff) == 0x7053)
1224 #include "insns/fsgnjx_s.h"
1227 if((insn
.bits
& 0x1ffff) == 0x19053)
1229 #include "insns/fmax_s.h"
1232 if((insn
.bits
& 0x3ff1ff) == 0xb053)
1234 #include "insns/fcvt_wu_s.h"
1237 if((insn
.bits
& 0x3ff1ff) == 0xa053)
1239 #include "insns/fcvt_w_s.h"
1242 if((insn
.bits
& 0x3fffff) == 0x1e053)
1244 #include "insns/mxtf_s.h"
1247 if((insn
.bits
& 0x1f1ff) == 0x1053)
1249 #include "insns/fsub_s.h"
1252 if((insn
.bits
& 0x1ffff) == 0x5053)
1254 #include "insns/fsgnj_s.h"
1257 if((insn
.bits
& 0x3ff1ff) == 0xf053)
1259 #include "insns/fcvt_s_wu.h"
1262 if((insn
.bits
& 0x3ff1ff) == 0xc053)
1264 #include "insns/fcvt_s_l.h"
1267 if((insn
.bits
& 0x3ff1ff) == 0x4053)
1269 #include "insns/fsqrt_s.h"
1272 if((insn
.bits
& 0x1ffff) == 0x6053)
1274 #include "insns/fsgnjn_s.h"
1277 if((insn
.bits
& 0x1f1ff) == 0x53)
1279 #include "insns/fadd_s.h"
1282 throw trap_illegal_instruction
;
1286 if((insn
.bits
& 0x1ffff) == 0x180d3)
1288 #include "insns/fmin_d.h"
1291 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
1293 #include "insns/fcvt_d_l.h"
1296 if((insn
.bits
& 0x3fffff) == 0xe0d3)
1298 #include "insns/fcvt_d_w.h"
1301 if((insn
.bits
& 0x3fffff) == 0x100d3)
1303 #include "insns/fcvt_d_s.h"
1306 if((insn
.bits
& 0x1ffff) == 0x190d3)
1308 #include "insns/fmax_d.h"
1311 if((insn
.bits
& 0x7c1ffff) == 0x1c0d3)
1313 #include "insns/mftx_d.h"
1316 if((insn
.bits
& 0x1ffff) == 0x170d3)
1318 #include "insns/fle_d.h"
1321 if((insn
.bits
& 0x1ffff) == 0x160d3)
1323 #include "insns/flt_d.h"
1326 if((insn
.bits
& 0x1f1ff) == 0x20d3)
1328 #include "insns/fmul_d.h"
1331 if((insn
.bits
& 0x1ffff) == 0x70d3)
1333 #include "insns/fsgnjx_d.h"
1336 if((insn
.bits
& 0x1ffff) == 0x150d3)
1338 #include "insns/feq_d.h"
1341 if((insn
.bits
& 0x3fffff) == 0xf0d3)
1343 #include "insns/fcvt_d_wu.h"
1346 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
1348 #include "insns/fcvt_wu_d.h"
1351 if((insn
.bits
& 0x1ffff) == 0x60d3)
1353 #include "insns/fsgnjn_d.h"
1356 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
1358 #include "insns/fcvt_d_lu.h"
1361 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
1363 #include "insns/fcvt_w_d.h"
1366 if((insn
.bits
& 0x3fffff) == 0x1e0d3)
1368 #include "insns/mxtf_d.h"
1371 if((insn
.bits
& 0x1ffff) == 0x50d3)
1373 #include "insns/fsgnj_d.h"
1376 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
1378 #include "insns/fcvt_l_d.h"
1381 if((insn
.bits
& 0x1f1ff) == 0xd3)
1383 #include "insns/fadd_d.h"
1386 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
1388 #include "insns/fcvt_lu_d.h"
1391 if((insn
.bits
& 0x1f1ff) == 0x10d3)
1393 #include "insns/fsub_d.h"
1396 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
1398 #include "insns/fsqrt_d.h"
1401 if((insn
.bits
& 0x1f1ff) == 0x30d3)
1403 #include "insns/fdiv_d.h"
1406 throw trap_illegal_instruction
;
1410 if((insn
.bits
& 0x3ff1ff) == 0x9053)
1412 #include "insns/fcvt_lu_s.h"
1415 if((insn
.bits
& 0x3ff1ff) == 0x11053)
1417 #include "insns/fcvt_s_d.h"
1420 if((insn
.bits
& 0x3ff1ff) == 0xe053)
1422 #include "insns/fcvt_s_w.h"
1425 if((insn
.bits
& 0x3ff1ff) == 0x8053)
1427 #include "insns/fcvt_l_s.h"
1430 if((insn
.bits
& 0x1f1ff) == 0x3053)
1432 #include "insns/fdiv_s.h"
1435 if((insn
.bits
& 0x3ff1ff) == 0xd053)
1437 #include "insns/fcvt_s_lu.h"
1440 if((insn
.bits
& 0x1f1ff) == 0x2053)
1442 #include "insns/fmul_s.h"
1445 if((insn
.bits
& 0x3ff1ff) == 0xb053)
1447 #include "insns/fcvt_wu_s.h"
1450 if((insn
.bits
& 0x3ff1ff) == 0xa053)
1452 #include "insns/fcvt_w_s.h"
1455 if((insn
.bits
& 0x1f1ff) == 0x1053)
1457 #include "insns/fsub_s.h"
1460 if((insn
.bits
& 0x3ff1ff) == 0xf053)
1462 #include "insns/fcvt_s_wu.h"
1465 if((insn
.bits
& 0x3ff1ff) == 0xc053)
1467 #include "insns/fcvt_s_l.h"
1470 if((insn
.bits
& 0x3ff1ff) == 0x4053)
1472 #include "insns/fsqrt_s.h"
1475 if((insn
.bits
& 0x1f1ff) == 0x53)
1477 #include "insns/fadd_s.h"
1480 throw trap_illegal_instruction
;
1484 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
1486 #include "insns/fcvt_d_l.h"
1489 if((insn
.bits
& 0x1f1ff) == 0x20d3)
1491 #include "insns/fmul_d.h"
1494 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
1496 #include "insns/fcvt_wu_d.h"
1499 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
1501 #include "insns/fcvt_d_lu.h"
1504 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
1506 #include "insns/fcvt_w_d.h"
1509 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
1511 #include "insns/fcvt_l_d.h"
1514 if((insn
.bits
& 0x1f1ff) == 0xd3)
1516 #include "insns/fadd_d.h"
1519 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
1521 #include "insns/fcvt_lu_d.h"
1524 if((insn
.bits
& 0x1f1ff) == 0x10d3)
1526 #include "insns/fsub_d.h"
1529 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
1531 #include "insns/fsqrt_d.h"
1534 if((insn
.bits
& 0x1f1ff) == 0x30d3)
1536 #include "insns/fdiv_d.h"
1539 throw trap_illegal_instruction
;
1543 throw trap_illegal_instruction
;
1550 #include "insns/c_addi.h"
1555 switch((insn
.bits
>> 0x7) & 0x7)
1559 #include "insns/beq.h"
1564 #include "insns/bne.h"
1569 #include "insns/blt.h"
1574 #include "insns/bge.h"
1579 #include "insns/bltu.h"
1584 #include "insns/bgeu.h"
1589 throw trap_illegal_instruction
;
1596 #include "insns/j.h"
1601 switch((insn
.bits
>> 0x7) & 0x7)
1605 #include "insns/jalr_c.h"
1610 #include "insns/jalr_r.h"
1615 #include "insns/jalr_j.h"
1620 if((insn
.bits
& 0x7ffffff) == 0x26b)
1622 #include "insns/rdnpc.h"
1625 throw trap_illegal_instruction
;
1629 throw trap_illegal_instruction
;
1636 #include "insns/jal.h"
1641 switch((insn
.bits
>> 0x7) & 0x7)
1645 #include "insns/vcfgivl.h"
1650 if((insn
.bits
& 0x3fffff) == 0xf3)
1652 #include "insns/setvl.h"
1655 throw trap_illegal_instruction
;
1659 if((insn
.bits
& 0xf80003ff) == 0x173)
1661 #include "insns/vf.h"
1664 throw trap_illegal_instruction
;
1668 throw trap_illegal_instruction
;
1675 switch((insn
.bits
>> 0x7) & 0x7)
1679 if((insn
.bits
& 0xffffffff) == 0x77)
1681 #include "insns/syscall.h"
1684 throw trap_illegal_instruction
;
1688 if((insn
.bits
& 0xffffffff) == 0xf7)
1690 #include "insns/break.h"
1693 throw trap_illegal_instruction
;
1697 if((insn
.bits
& 0xffffffff) == 0x177)
1699 #include "insns/stop.h"
1702 throw trap_illegal_instruction
;
1706 if((insn
.bits
& 0x7ffffff) == 0x1f7)
1708 #include "insns/utidx.h"
1711 throw trap_illegal_instruction
;
1715 throw trap_illegal_instruction
;
1722 switch((insn
.bits
>> 0x7) & 0x7)
1726 if((insn
.bits
& 0x7ffffff) == 0x7b)
1728 #include "insns/ei.h"
1731 throw trap_illegal_instruction
;
1735 if((insn
.bits
& 0x7ffffff) == 0xfb)
1737 #include "insns/di.h"
1740 throw trap_illegal_instruction
;
1744 if((insn
.bits
& 0x7c1ffff) == 0x17b)
1746 #include "insns/mfpcr.h"
1749 throw trap_illegal_instruction
;
1753 if((insn
.bits
& 0xf801ffff) == 0x1fb)
1755 #include "insns/mtpcr.h"
1758 throw trap_illegal_instruction
;
1762 if((insn
.bits
& 0xffffffff) == 0x27b)
1764 #include "insns/eret.h"
1767 throw trap_illegal_instruction
;
1771 throw trap_illegal_instruction
;
1778 throw trap_illegal_instruction
;