2ec169af751172bdcecef1036a52123fe152cf88
1 #include "insn_includes.h"
3 reg_t
processor_t::opcode_func_001(insn_t insn
, reg_t pc
)
5 reg_t npc
= pc
+ insn_length(0x00000001);
6 #include "insns/c_addi.h"
10 reg_t
processor_t::opcode_func_00b(insn_t insn
, reg_t pc
)
12 if((insn
.bits
& 0x3fffff) == 0xb)
14 reg_t npc
= pc
+ insn_length(0x0000000b);
15 #include "insns/vlb.h"
18 if((insn
.bits
& 0x1ffff) == 0x100b)
20 reg_t npc
= pc
+ insn_length(0x0000100b);
21 #include "insns/vlstb.h"
24 if((insn
.bits
& 0xfff) == 0x80b)
26 reg_t npc
= pc
+ insn_length(0x0000080b);
27 #include "insns/vlsegstb.h"
30 if((insn
.bits
& 0x1ffff) == 0x200b)
32 reg_t npc
= pc
+ insn_length(0x0000200b);
33 #include "insns/vlsegb.h"
36 throw trap_illegal_instruction
;
39 reg_t
processor_t::opcode_func_015(insn_t insn
, reg_t pc
)
41 reg_t npc
= pc
+ insn_length(0x00000015);
42 #include "insns/c_fld.h"
46 reg_t
processor_t::opcode_func_01f(insn_t insn
, reg_t pc
)
48 throw trap_illegal_instruction
;
51 reg_t
processor_t::opcode_func_029(insn_t insn
, reg_t pc
)
53 reg_t npc
= pc
+ insn_length(0x00000009);
54 #include "insns/c_ld.h"
58 reg_t
processor_t::opcode_func_033(insn_t insn
, reg_t pc
)
60 if((insn
.bits
& 0x1ffff) == 0x33)
62 reg_t npc
= pc
+ insn_length(0x00000033);
63 #include "insns/add.h"
66 if((insn
.bits
& 0x1ffff) == 0x433)
68 reg_t npc
= pc
+ insn_length(0x00000433);
69 #include "insns/mul.h"
72 if((insn
.bits
& 0x1ffff) == 0x10033)
74 reg_t npc
= pc
+ insn_length(0x00010033);
75 #include "insns/sub.h"
78 throw trap_illegal_instruction
;
81 reg_t
processor_t::opcode_func_03d(insn_t insn
, reg_t pc
)
83 reg_t npc
= pc
+ insn_length(0x0000001d);
84 #include "insns/c_addiw.h"
88 reg_t
processor_t::opcode_func_047(insn_t insn
, reg_t pc
)
90 reg_t npc
= pc
+ insn_length(0x00000047);
91 #include "insns/fmsub_s.h"
95 reg_t
processor_t::opcode_func_051(insn_t insn
, reg_t pc
)
97 reg_t npc
= pc
+ insn_length(0x00000011);
98 #include "insns/c_bne.h"
102 reg_t
processor_t::opcode_func_05b(insn_t insn
, reg_t pc
)
104 throw trap_illegal_instruction
;
107 reg_t
processor_t::opcode_func_065(insn_t insn
, reg_t pc
)
109 reg_t npc
= pc
+ insn_length(0x00000005);
110 #include "insns/c_lwsp.h"
114 reg_t
processor_t::opcode_func_06f(insn_t insn
, reg_t pc
)
116 reg_t npc
= pc
+ insn_length(0x0000006f);
117 #include "insns/jal.h"
121 reg_t
processor_t::opcode_func_079(insn_t insn
, reg_t pc
)
123 if((insn
.bits
& 0x1c1f) == 0x19)
125 reg_t npc
= pc
+ insn_length(0x00000019);
126 #include "insns/c_slli.h"
129 if((insn
.bits
& 0x1c1f) == 0x819)
131 reg_t npc
= pc
+ insn_length(0x00000819);
132 #include "insns/c_srli.h"
135 if((insn
.bits
& 0x1c1f) == 0x1419)
137 reg_t npc
= pc
+ insn_length(0x00001419);
138 #include "insns/c_srai32.h"
141 if((insn
.bits
& 0x1c1f) == 0x1819)
143 reg_t npc
= pc
+ insn_length(0x00001819);
144 #include "insns/c_slliw.h"
147 if((insn
.bits
& 0x1c1f) == 0xc19)
149 reg_t npc
= pc
+ insn_length(0x00000c19);
150 #include "insns/c_srli32.h"
153 if((insn
.bits
& 0x1c1f) == 0x1019)
155 reg_t npc
= pc
+ insn_length(0x00001019);
156 #include "insns/c_srai.h"
159 if((insn
.bits
& 0x1c1f) == 0x419)
161 reg_t npc
= pc
+ insn_length(0x00000419);
162 #include "insns/c_slli32.h"
165 throw trap_illegal_instruction
;
168 reg_t
processor_t::opcode_func_083(insn_t insn
, reg_t pc
)
170 reg_t npc
= pc
+ insn_length(0x00000083);
171 #include "insns/lh.h"
175 reg_t
processor_t::opcode_func_08d(insn_t insn
, reg_t pc
)
177 reg_t npc
= pc
+ insn_length(0x0000000d);
178 #include "insns/c_sw.h"
182 reg_t
processor_t::opcode_func_097(insn_t insn
, reg_t pc
)
184 throw trap_illegal_instruction
;
187 reg_t
processor_t::opcode_func_0a1(insn_t insn
, reg_t pc
)
189 reg_t npc
= pc
+ insn_length(0x00000001);
190 #include "insns/c_addi.h"
194 reg_t
processor_t::opcode_func_0ab(insn_t insn
, reg_t pc
)
196 throw trap_illegal_instruction
;
199 reg_t
processor_t::opcode_func_0b5(insn_t insn
, reg_t pc
)
201 reg_t npc
= pc
+ insn_length(0x00000015);
202 #include "insns/c_fld.h"
206 reg_t
processor_t::opcode_func_0bf(insn_t insn
, reg_t pc
)
208 throw trap_illegal_instruction
;
211 reg_t
processor_t::opcode_func_0c9(insn_t insn
, reg_t pc
)
213 reg_t npc
= pc
+ insn_length(0x00000009);
214 #include "insns/c_ld.h"
218 reg_t
processor_t::opcode_func_0d3(insn_t insn
, reg_t pc
)
220 if((insn
.bits
& 0x1ffff) == 0x180d3)
222 reg_t npc
= pc
+ insn_length(0x000180d3);
223 #include "insns/fmin_d.h"
226 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
228 reg_t npc
= pc
+ insn_length(0x0000c0d3);
229 #include "insns/fcvt_d_l.h"
232 if((insn
.bits
& 0x3ff1ff) == 0xe0d3)
234 reg_t npc
= pc
+ insn_length(0x0000e0d3);
235 #include "insns/fcvt_d_w.h"
238 if((insn
.bits
& 0x3ff1ff) == 0x100d3)
240 reg_t npc
= pc
+ insn_length(0x000100d3);
241 #include "insns/fcvt_d_s.h"
244 if((insn
.bits
& 0x1ffff) == 0x190d3)
246 reg_t npc
= pc
+ insn_length(0x000190d3);
247 #include "insns/fmax_d.h"
250 if((insn
.bits
& 0x7c1ffff) == 0x1c0d3)
252 reg_t npc
= pc
+ insn_length(0x0001c0d3);
253 #include "insns/mftx_d.h"
256 if((insn
.bits
& 0x1ffff) == 0x170d3)
258 reg_t npc
= pc
+ insn_length(0x000170d3);
259 #include "insns/fle_d.h"
262 if((insn
.bits
& 0x1ffff) == 0x160d3)
264 reg_t npc
= pc
+ insn_length(0x000160d3);
265 #include "insns/flt_d.h"
268 if((insn
.bits
& 0x1f1ff) == 0x20d3)
270 reg_t npc
= pc
+ insn_length(0x000020d3);
271 #include "insns/fmul_d.h"
274 if((insn
.bits
& 0x1ffff) == 0x70d3)
276 reg_t npc
= pc
+ insn_length(0x000070d3);
277 #include "insns/fsgnjx_d.h"
280 if((insn
.bits
& 0x1ffff) == 0x150d3)
282 reg_t npc
= pc
+ insn_length(0x000150d3);
283 #include "insns/feq_d.h"
286 if((insn
.bits
& 0x3ff1ff) == 0xf0d3)
288 reg_t npc
= pc
+ insn_length(0x0000f0d3);
289 #include "insns/fcvt_d_wu.h"
292 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
294 reg_t npc
= pc
+ insn_length(0x0000b0d3);
295 #include "insns/fcvt_wu_d.h"
298 if((insn
.bits
& 0x1ffff) == 0x60d3)
300 reg_t npc
= pc
+ insn_length(0x000060d3);
301 #include "insns/fsgnjn_d.h"
304 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
306 reg_t npc
= pc
+ insn_length(0x0000d0d3);
307 #include "insns/fcvt_d_lu.h"
310 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
312 reg_t npc
= pc
+ insn_length(0x0000a0d3);
313 #include "insns/fcvt_w_d.h"
316 if((insn
.bits
& 0x3fffff) == 0x1e0d3)
318 reg_t npc
= pc
+ insn_length(0x0001e0d3);
319 #include "insns/mxtf_d.h"
322 if((insn
.bits
& 0x1ffff) == 0x50d3)
324 reg_t npc
= pc
+ insn_length(0x000050d3);
325 #include "insns/fsgnj_d.h"
328 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
330 reg_t npc
= pc
+ insn_length(0x000080d3);
331 #include "insns/fcvt_l_d.h"
334 if((insn
.bits
& 0x1f1ff) == 0xd3)
336 reg_t npc
= pc
+ insn_length(0x000000d3);
337 #include "insns/fadd_d.h"
340 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
342 reg_t npc
= pc
+ insn_length(0x000090d3);
343 #include "insns/fcvt_lu_d.h"
346 if((insn
.bits
& 0x1f1ff) == 0x10d3)
348 reg_t npc
= pc
+ insn_length(0x000010d3);
349 #include "insns/fsub_d.h"
352 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
354 reg_t npc
= pc
+ insn_length(0x000040d3);
355 #include "insns/fsqrt_d.h"
358 if((insn
.bits
& 0x1f1ff) == 0x30d3)
360 reg_t npc
= pc
+ insn_length(0x000030d3);
361 #include "insns/fdiv_d.h"
364 throw trap_illegal_instruction
;
367 reg_t
processor_t::opcode_func_0dd(insn_t insn
, reg_t pc
)
369 reg_t npc
= pc
+ insn_length(0x0000001d);
370 #include "insns/c_addiw.h"
374 reg_t
processor_t::opcode_func_0e7(insn_t insn
, reg_t pc
)
376 reg_t npc
= pc
+ insn_length(0x00000067);
381 reg_t
processor_t::opcode_func_0f1(insn_t insn
, reg_t pc
)
383 reg_t npc
= pc
+ insn_length(0x00000011);
384 #include "insns/c_bne.h"
388 reg_t
processor_t::opcode_func_0fb(insn_t insn
, reg_t pc
)
390 if((insn
.bits
& 0x7ffffff) == 0xfb)
392 reg_t npc
= pc
+ insn_length(0x000000fb);
393 #include "insns/di.h"
396 throw trap_illegal_instruction
;
399 reg_t
processor_t::opcode_func_105(insn_t insn
, reg_t pc
)
401 reg_t npc
= pc
+ insn_length(0x00000005);
402 #include "insns/c_lwsp.h"
406 reg_t
processor_t::opcode_func_10f(insn_t insn
, reg_t pc
)
408 if((insn
.bits
& 0x1ffff) == 0x150f)
410 reg_t npc
= pc
+ insn_length(0x0000150f);
411 #include "insns/vfsstw.h"
414 if((insn
.bits
& 0xfff) == 0x90f)
416 reg_t npc
= pc
+ insn_length(0x0000090f);
417 #include "insns/vssegstw.h"
420 if((insn
.bits
& 0x3fffff) == 0x10f)
422 reg_t npc
= pc
+ insn_length(0x0000010f);
423 #include "insns/vsw.h"
426 if((insn
.bits
& 0x1ffff) == 0x110f)
428 reg_t npc
= pc
+ insn_length(0x0000110f);
429 #include "insns/vsstw.h"
432 if((insn
.bits
& 0xfff) == 0xd0f)
434 reg_t npc
= pc
+ insn_length(0x00000d0f);
435 #include "insns/vfssegstw.h"
438 if((insn
.bits
& 0x1ffff) == 0x210f)
440 reg_t npc
= pc
+ insn_length(0x0000210f);
441 #include "insns/vssegw.h"
444 if((insn
.bits
& 0x3fffff) == 0x50f)
446 reg_t npc
= pc
+ insn_length(0x0000050f);
447 #include "insns/vfsw.h"
450 if((insn
.bits
& 0x1ffff) == 0x250f)
452 reg_t npc
= pc
+ insn_length(0x0000250f);
453 #include "insns/vfssegw.h"
456 throw trap_illegal_instruction
;
459 reg_t
processor_t::opcode_func_119(insn_t insn
, reg_t pc
)
461 if((insn
.bits
& 0x1c1f) == 0x19)
463 reg_t npc
= pc
+ insn_length(0x00000019);
464 #include "insns/c_slli.h"
467 if((insn
.bits
& 0x1c1f) == 0x819)
469 reg_t npc
= pc
+ insn_length(0x00000819);
470 #include "insns/c_srli.h"
473 if((insn
.bits
& 0x1c1f) == 0x1419)
475 reg_t npc
= pc
+ insn_length(0x00001419);
476 #include "insns/c_srai32.h"
479 if((insn
.bits
& 0x1c1f) == 0x1819)
481 reg_t npc
= pc
+ insn_length(0x00001819);
482 #include "insns/c_slliw.h"
485 if((insn
.bits
& 0x1c1f) == 0xc19)
487 reg_t npc
= pc
+ insn_length(0x00000c19);
488 #include "insns/c_srli32.h"
491 if((insn
.bits
& 0x1c1f) == 0x1019)
493 reg_t npc
= pc
+ insn_length(0x00001019);
494 #include "insns/c_srai.h"
497 if((insn
.bits
& 0x1c1f) == 0x419)
499 reg_t npc
= pc
+ insn_length(0x00000419);
500 #include "insns/c_slli32.h"
503 throw trap_illegal_instruction
;
506 reg_t
processor_t::opcode_func_123(insn_t insn
, reg_t pc
)
508 reg_t npc
= pc
+ insn_length(0x00000123);
509 #include "insns/sw.h"
513 reg_t
processor_t::opcode_func_12d(insn_t insn
, reg_t pc
)
515 reg_t npc
= pc
+ insn_length(0x0000000d);
516 #include "insns/c_sw.h"
520 reg_t
processor_t::opcode_func_137(insn_t insn
, reg_t pc
)
522 reg_t npc
= pc
+ insn_length(0x00000037);
523 #include "insns/lui.h"
527 reg_t
processor_t::opcode_func_141(insn_t insn
, reg_t pc
)
529 reg_t npc
= pc
+ insn_length(0x00000001);
530 #include "insns/c_addi.h"
534 reg_t
processor_t::opcode_func_14b(insn_t insn
, reg_t pc
)
536 throw trap_illegal_instruction
;
539 reg_t
processor_t::opcode_func_155(insn_t insn
, reg_t pc
)
541 reg_t npc
= pc
+ insn_length(0x00000015);
542 #include "insns/c_fld.h"
546 reg_t
processor_t::opcode_func_15f(insn_t insn
, reg_t pc
)
548 throw trap_illegal_instruction
;
551 reg_t
processor_t::opcode_func_169(insn_t insn
, reg_t pc
)
553 reg_t npc
= pc
+ insn_length(0x00000009);
554 #include "insns/c_ld.h"
558 reg_t
processor_t::opcode_func_173(insn_t insn
, reg_t pc
)
560 if((insn
.bits
& 0x1ffff) == 0x1173)
562 reg_t npc
= pc
+ insn_length(0x00001173);
563 #include "insns/vfmst.h"
566 if((insn
.bits
& 0x1ffff) == 0x1973)
568 reg_t npc
= pc
+ insn_length(0x00001973);
569 #include "insns/vfmts.h"
572 if((insn
.bits
& 0x3fffff) == 0x973)
574 reg_t npc
= pc
+ insn_length(0x00000973);
575 #include "insns/vfmsv.h"
578 if((insn
.bits
& 0x3fffff) == 0x173)
580 reg_t npc
= pc
+ insn_length(0x00000173);
581 #include "insns/vfmvv.h"
584 throw trap_illegal_instruction
;
587 reg_t
processor_t::opcode_func_17d(insn_t insn
, reg_t pc
)
589 reg_t npc
= pc
+ insn_length(0x0000001d);
590 #include "insns/c_addiw.h"
594 reg_t
processor_t::opcode_func_187(insn_t insn
, reg_t pc
)
596 reg_t npc
= pc
+ insn_length(0x00000187);
597 #include "insns/fld.h"
601 reg_t
processor_t::opcode_func_191(insn_t insn
, reg_t pc
)
603 reg_t npc
= pc
+ insn_length(0x00000011);
604 #include "insns/c_bne.h"
608 reg_t
processor_t::opcode_func_19b(insn_t insn
, reg_t pc
)
610 throw trap_illegal_instruction
;
613 reg_t
processor_t::opcode_func_1a5(insn_t insn
, reg_t pc
)
615 reg_t npc
= pc
+ insn_length(0x00000005);
616 #include "insns/c_lwsp.h"
620 reg_t
processor_t::opcode_func_1af(insn_t insn
, reg_t pc
)
622 throw trap_illegal_instruction
;
625 reg_t
processor_t::opcode_func_1b9(insn_t insn
, reg_t pc
)
627 if((insn
.bits
& 0x1c1f) == 0x19)
629 reg_t npc
= pc
+ insn_length(0x00000019);
630 #include "insns/c_slli.h"
633 if((insn
.bits
& 0x1c1f) == 0x819)
635 reg_t npc
= pc
+ insn_length(0x00000819);
636 #include "insns/c_srli.h"
639 if((insn
.bits
& 0x1c1f) == 0x1419)
641 reg_t npc
= pc
+ insn_length(0x00001419);
642 #include "insns/c_srai32.h"
645 if((insn
.bits
& 0x1c1f) == 0x1819)
647 reg_t npc
= pc
+ insn_length(0x00001819);
648 #include "insns/c_slliw.h"
651 if((insn
.bits
& 0x1c1f) == 0xc19)
653 reg_t npc
= pc
+ insn_length(0x00000c19);
654 #include "insns/c_srli32.h"
657 if((insn
.bits
& 0x1c1f) == 0x1019)
659 reg_t npc
= pc
+ insn_length(0x00001019);
660 #include "insns/c_srai.h"
663 if((insn
.bits
& 0x1c1f) == 0x419)
665 reg_t npc
= pc
+ insn_length(0x00000419);
666 #include "insns/c_slli32.h"
669 throw trap_illegal_instruction
;
672 reg_t
processor_t::opcode_func_1c3(insn_t insn
, reg_t pc
)
674 throw trap_illegal_instruction
;
677 reg_t
processor_t::opcode_func_1cd(insn_t insn
, reg_t pc
)
679 reg_t npc
= pc
+ insn_length(0x0000000d);
680 #include "insns/c_sw.h"
684 reg_t
processor_t::opcode_func_1d7(insn_t insn
, reg_t pc
)
686 throw trap_illegal_instruction
;
689 reg_t
processor_t::opcode_func_1e1(insn_t insn
, reg_t pc
)
691 reg_t npc
= pc
+ insn_length(0x00000001);
692 #include "insns/c_addi.h"
696 reg_t
processor_t::opcode_func_1eb(insn_t insn
, reg_t pc
)
698 throw trap_illegal_instruction
;
701 reg_t
processor_t::opcode_func_1f5(insn_t insn
, reg_t pc
)
703 reg_t npc
= pc
+ insn_length(0x00000015);
704 #include "insns/c_fld.h"
708 reg_t
processor_t::opcode_func_1ff(insn_t insn
, reg_t pc
)
710 throw trap_illegal_instruction
;
713 reg_t
processor_t::opcode_func_209(insn_t insn
, reg_t pc
)
715 reg_t npc
= pc
+ insn_length(0x00000009);
716 #include "insns/c_ld.h"
720 reg_t
processor_t::opcode_func_213(insn_t insn
, reg_t pc
)
722 reg_t npc
= pc
+ insn_length(0x00000213);
723 #include "insns/xori.h"
727 reg_t
processor_t::opcode_func_21d(insn_t insn
, reg_t pc
)
729 reg_t npc
= pc
+ insn_length(0x0000001d);
730 #include "insns/c_addiw.h"
734 reg_t
processor_t::opcode_func_227(insn_t insn
, reg_t pc
)
736 throw trap_illegal_instruction
;
739 reg_t
processor_t::opcode_func_231(insn_t insn
, reg_t pc
)
741 reg_t npc
= pc
+ insn_length(0x00000011);
742 #include "insns/c_bne.h"
746 reg_t
processor_t::opcode_func_23b(insn_t insn
, reg_t pc
)
748 if((insn
.bits
& 0x1ffff) == 0x63b)
750 reg_t npc
= pc
+ insn_length(0x0000063b);
751 #include "insns/divw.h"
754 throw trap_illegal_instruction
;
757 reg_t
processor_t::opcode_func_245(insn_t insn
, reg_t pc
)
759 reg_t npc
= pc
+ insn_length(0x00000005);
760 #include "insns/c_lwsp.h"
764 reg_t
processor_t::opcode_func_24f(insn_t insn
, reg_t pc
)
766 reg_t npc
= pc
+ insn_length(0x0000004f);
767 #include "insns/fnmadd_s.h"
771 reg_t
processor_t::opcode_func_259(insn_t insn
, reg_t pc
)
773 if((insn
.bits
& 0x1c1f) == 0x19)
775 reg_t npc
= pc
+ insn_length(0x00000019);
776 #include "insns/c_slli.h"
779 if((insn
.bits
& 0x1c1f) == 0x819)
781 reg_t npc
= pc
+ insn_length(0x00000819);
782 #include "insns/c_srli.h"
785 if((insn
.bits
& 0x1c1f) == 0x1419)
787 reg_t npc
= pc
+ insn_length(0x00001419);
788 #include "insns/c_srai32.h"
791 if((insn
.bits
& 0x1c1f) == 0x1819)
793 reg_t npc
= pc
+ insn_length(0x00001819);
794 #include "insns/c_slliw.h"
797 if((insn
.bits
& 0x1c1f) == 0xc19)
799 reg_t npc
= pc
+ insn_length(0x00000c19);
800 #include "insns/c_srli32.h"
803 if((insn
.bits
& 0x1c1f) == 0x1019)
805 reg_t npc
= pc
+ insn_length(0x00001019);
806 #include "insns/c_srai.h"
809 if((insn
.bits
& 0x1c1f) == 0x419)
811 reg_t npc
= pc
+ insn_length(0x00000419);
812 #include "insns/c_slli32.h"
815 throw trap_illegal_instruction
;
818 reg_t
processor_t::opcode_func_263(insn_t insn
, reg_t pc
)
820 reg_t npc
= pc
+ insn_length(0x00000263);
821 #include "insns/blt.h"
825 reg_t
processor_t::opcode_func_26d(insn_t insn
, reg_t pc
)
827 reg_t npc
= pc
+ insn_length(0x0000000d);
828 #include "insns/c_sw.h"
832 reg_t
processor_t::opcode_func_277(insn_t insn
, reg_t pc
)
834 if((insn
.bits
& 0x7ffffff) == 0x277)
836 reg_t npc
= pc
+ insn_length(0x00000277);
837 #include "insns/rdcycle.h"
840 if((insn
.bits
& 0x7ffffff) == 0xa77)
842 reg_t npc
= pc
+ insn_length(0x00000a77);
843 #include "insns/rdinstret.h"
846 if((insn
.bits
& 0x7ffffff) == 0x677)
848 reg_t npc
= pc
+ insn_length(0x00000677);
849 #include "insns/rdtime.h"
852 throw trap_illegal_instruction
;
855 reg_t
processor_t::opcode_func_281(insn_t insn
, reg_t pc
)
857 reg_t npc
= pc
+ insn_length(0x00000001);
858 #include "insns/c_addi.h"
862 reg_t
processor_t::opcode_func_28b(insn_t insn
, reg_t pc
)
864 if((insn
.bits
& 0x1ffff) == 0x128b)
866 reg_t npc
= pc
+ insn_length(0x0000128b);
867 #include "insns/vlsthu.h"
870 if((insn
.bits
& 0xfff) == 0xa8b)
872 reg_t npc
= pc
+ insn_length(0x00000a8b);
873 #include "insns/vlsegsthu.h"
876 if((insn
.bits
& 0x3fffff) == 0x28b)
878 reg_t npc
= pc
+ insn_length(0x0000028b);
879 #include "insns/vlhu.h"
882 if((insn
.bits
& 0x1ffff) == 0x228b)
884 reg_t npc
= pc
+ insn_length(0x0000228b);
885 #include "insns/vlseghu.h"
888 throw trap_illegal_instruction
;
891 reg_t
processor_t::opcode_func_295(insn_t insn
, reg_t pc
)
893 reg_t npc
= pc
+ insn_length(0x00000015);
894 #include "insns/c_fld.h"
898 reg_t
processor_t::opcode_func_29f(insn_t insn
, reg_t pc
)
900 throw trap_illegal_instruction
;
903 reg_t
processor_t::opcode_func_2a9(insn_t insn
, reg_t pc
)
905 reg_t npc
= pc
+ insn_length(0x00000009);
906 #include "insns/c_ld.h"
910 reg_t
processor_t::opcode_func_2b3(insn_t insn
, reg_t pc
)
912 if((insn
.bits
& 0x1ffff) == 0x102b3)
914 reg_t npc
= pc
+ insn_length(0x000102b3);
915 #include "insns/sra.h"
918 if((insn
.bits
& 0x1ffff) == 0x2b3)
920 reg_t npc
= pc
+ insn_length(0x000002b3);
921 #include "insns/srl.h"
924 if((insn
.bits
& 0x1ffff) == 0x6b3)
926 reg_t npc
= pc
+ insn_length(0x000006b3);
927 #include "insns/divu.h"
930 throw trap_illegal_instruction
;
933 reg_t
processor_t::opcode_func_2bd(insn_t insn
, reg_t pc
)
935 reg_t npc
= pc
+ insn_length(0x0000001d);
936 #include "insns/c_addiw.h"
940 reg_t
processor_t::opcode_func_2c7(insn_t insn
, reg_t pc
)
942 reg_t npc
= pc
+ insn_length(0x000000c7);
943 #include "insns/fmsub_d.h"
947 reg_t
processor_t::opcode_func_2d1(insn_t insn
, reg_t pc
)
949 reg_t npc
= pc
+ insn_length(0x00000011);
950 #include "insns/c_bne.h"
954 reg_t
processor_t::opcode_func_2db(insn_t insn
, reg_t pc
)
956 throw trap_illegal_instruction
;
959 reg_t
processor_t::opcode_func_2e5(insn_t insn
, reg_t pc
)
961 reg_t npc
= pc
+ insn_length(0x00000005);
962 #include "insns/c_lwsp.h"
966 reg_t
processor_t::opcode_func_2ef(insn_t insn
, reg_t pc
)
968 reg_t npc
= pc
+ insn_length(0x0000006f);
969 #include "insns/jal.h"
973 reg_t
processor_t::opcode_func_2f9(insn_t insn
, reg_t pc
)
975 if((insn
.bits
& 0x1c1f) == 0x19)
977 reg_t npc
= pc
+ insn_length(0x00000019);
978 #include "insns/c_slli.h"
981 if((insn
.bits
& 0x1c1f) == 0x819)
983 reg_t npc
= pc
+ insn_length(0x00000819);
984 #include "insns/c_srli.h"
987 if((insn
.bits
& 0x1c1f) == 0x1419)
989 reg_t npc
= pc
+ insn_length(0x00001419);
990 #include "insns/c_srai32.h"
993 if((insn
.bits
& 0x1c1f) == 0x1819)
995 reg_t npc
= pc
+ insn_length(0x00001819);
996 #include "insns/c_slliw.h"
999 if((insn
.bits
& 0x1c1f) == 0xc19)
1001 reg_t npc
= pc
+ insn_length(0x00000c19);
1002 #include "insns/c_srli32.h"
1005 if((insn
.bits
& 0x1c1f) == 0x1019)
1007 reg_t npc
= pc
+ insn_length(0x00001019);
1008 #include "insns/c_srai.h"
1011 if((insn
.bits
& 0x1c1f) == 0x419)
1013 reg_t npc
= pc
+ insn_length(0x00000419);
1014 #include "insns/c_slli32.h"
1017 throw trap_illegal_instruction
;
1020 reg_t
processor_t::opcode_func_303(insn_t insn
, reg_t pc
)
1022 reg_t npc
= pc
+ insn_length(0x00000303);
1023 #include "insns/lwu.h"
1027 reg_t
processor_t::opcode_func_30d(insn_t insn
, reg_t pc
)
1029 reg_t npc
= pc
+ insn_length(0x0000000d);
1030 #include "insns/c_sw.h"
1034 reg_t
processor_t::opcode_func_317(insn_t insn
, reg_t pc
)
1036 throw trap_illegal_instruction
;
1039 reg_t
processor_t::opcode_func_321(insn_t insn
, reg_t pc
)
1041 reg_t npc
= pc
+ insn_length(0x00000001);
1042 #include "insns/c_addi.h"
1046 reg_t
processor_t::opcode_func_32b(insn_t insn
, reg_t pc
)
1048 throw trap_illegal_instruction
;
1051 reg_t
processor_t::opcode_func_335(insn_t insn
, reg_t pc
)
1053 reg_t npc
= pc
+ insn_length(0x00000015);
1054 #include "insns/c_fld.h"
1058 reg_t
processor_t::opcode_func_33f(insn_t insn
, reg_t pc
)
1060 throw trap_illegal_instruction
;
1063 reg_t
processor_t::opcode_func_349(insn_t insn
, reg_t pc
)
1065 reg_t npc
= pc
+ insn_length(0x00000009);
1066 #include "insns/c_ld.h"
1070 reg_t
processor_t::opcode_func_353(insn_t insn
, reg_t pc
)
1072 throw trap_illegal_instruction
;
1075 reg_t
processor_t::opcode_func_35d(insn_t insn
, reg_t pc
)
1077 reg_t npc
= pc
+ insn_length(0x0000001d);
1078 #include "insns/c_addiw.h"
1082 reg_t
processor_t::opcode_func_367(insn_t insn
, reg_t pc
)
1084 reg_t npc
= pc
+ insn_length(0x00000067);
1085 #include "insns/j.h"
1089 reg_t
processor_t::opcode_func_371(insn_t insn
, reg_t pc
)
1091 reg_t npc
= pc
+ insn_length(0x00000011);
1092 #include "insns/c_bne.h"
1096 reg_t
processor_t::opcode_func_37b(insn_t insn
, reg_t pc
)
1098 throw trap_illegal_instruction
;
1101 reg_t
processor_t::opcode_func_385(insn_t insn
, reg_t pc
)
1103 reg_t npc
= pc
+ insn_length(0x00000005);
1104 #include "insns/c_lwsp.h"
1108 reg_t
processor_t::opcode_func_38f(insn_t insn
, reg_t pc
)
1110 throw trap_illegal_instruction
;
1113 reg_t
processor_t::opcode_func_399(insn_t insn
, reg_t pc
)
1115 if((insn
.bits
& 0x1c1f) == 0x19)
1117 reg_t npc
= pc
+ insn_length(0x00000019);
1118 #include "insns/c_slli.h"
1121 if((insn
.bits
& 0x1c1f) == 0x819)
1123 reg_t npc
= pc
+ insn_length(0x00000819);
1124 #include "insns/c_srli.h"
1127 if((insn
.bits
& 0x1c1f) == 0x1419)
1129 reg_t npc
= pc
+ insn_length(0x00001419);
1130 #include "insns/c_srai32.h"
1133 if((insn
.bits
& 0x1c1f) == 0x1819)
1135 reg_t npc
= pc
+ insn_length(0x00001819);
1136 #include "insns/c_slliw.h"
1139 if((insn
.bits
& 0x1c1f) == 0xc19)
1141 reg_t npc
= pc
+ insn_length(0x00000c19);
1142 #include "insns/c_srli32.h"
1145 if((insn
.bits
& 0x1c1f) == 0x1019)
1147 reg_t npc
= pc
+ insn_length(0x00001019);
1148 #include "insns/c_srai.h"
1151 if((insn
.bits
& 0x1c1f) == 0x419)
1153 reg_t npc
= pc
+ insn_length(0x00000419);
1154 #include "insns/c_slli32.h"
1157 throw trap_illegal_instruction
;
1160 reg_t
processor_t::opcode_func_3a3(insn_t insn
, reg_t pc
)
1162 throw trap_illegal_instruction
;
1165 reg_t
processor_t::opcode_func_3ad(insn_t insn
, reg_t pc
)
1167 reg_t npc
= pc
+ insn_length(0x0000000d);
1168 #include "insns/c_sw.h"
1172 reg_t
processor_t::opcode_func_3b7(insn_t insn
, reg_t pc
)
1174 reg_t npc
= pc
+ insn_length(0x00000037);
1175 #include "insns/lui.h"
1179 reg_t
processor_t::opcode_func_3c1(insn_t insn
, reg_t pc
)
1181 reg_t npc
= pc
+ insn_length(0x00000001);
1182 #include "insns/c_addi.h"
1186 reg_t
processor_t::opcode_func_3cb(insn_t insn
, reg_t pc
)
1188 throw trap_illegal_instruction
;
1191 reg_t
processor_t::opcode_func_3d5(insn_t insn
, reg_t pc
)
1193 reg_t npc
= pc
+ insn_length(0x00000015);
1194 #include "insns/c_fld.h"
1198 reg_t
processor_t::opcode_func_3df(insn_t insn
, reg_t pc
)
1200 throw trap_illegal_instruction
;
1203 reg_t
processor_t::opcode_func_3e9(insn_t insn
, reg_t pc
)
1205 reg_t npc
= pc
+ insn_length(0x00000009);
1206 #include "insns/c_ld.h"
1210 reg_t
processor_t::opcode_func_3f3(insn_t insn
, reg_t pc
)
1212 if((insn
.bits
& 0xf80003ff) == 0x3f3)
1214 reg_t npc
= pc
+ insn_length(0x000003f3);
1215 #include "insns/vf.h"
1218 throw trap_illegal_instruction
;
1221 reg_t
processor_t::opcode_func_3fd(insn_t insn
, reg_t pc
)
1223 reg_t npc
= pc
+ insn_length(0x0000001d);
1224 #include "insns/c_addiw.h"