1 #include "insn_includes.h"
3 reg_t
processor_t::opcode_func_009(insn_t insn
, reg_t pc
)
5 reg_t npc
= pc
+ insn_length(0x00000009);
6 #include "insns/c_ld.h"
10 reg_t
processor_t::opcode_func_013(insn_t insn
, reg_t pc
)
12 reg_t npc
= pc
+ insn_length(0x00000013);
13 #include "insns/addi.h"
17 reg_t
processor_t::opcode_func_01d(insn_t insn
, reg_t pc
)
19 reg_t npc
= pc
+ insn_length(0x0000001d);
20 #include "insns/c_addiw.h"
24 reg_t
processor_t::opcode_func_027(insn_t insn
, reg_t pc
)
26 throw trap_illegal_instruction
;
29 reg_t
processor_t::opcode_func_031(insn_t insn
, reg_t pc
)
31 reg_t npc
= pc
+ insn_length(0x00000011);
32 #include "insns/c_bne.h"
36 reg_t
processor_t::opcode_func_03b(insn_t insn
, reg_t pc
)
38 if((insn
.bits
& 0x1ffff) == 0x43b)
40 reg_t npc
= pc
+ insn_length(0x0000043b);
41 #include "insns/mulw.h"
44 if((insn
.bits
& 0x1ffff) == 0x3b)
46 reg_t npc
= pc
+ insn_length(0x0000003b);
47 #include "insns/addw.h"
50 if((insn
.bits
& 0x1ffff) == 0x1003b)
52 reg_t npc
= pc
+ insn_length(0x0001003b);
53 #include "insns/subw.h"
56 throw trap_illegal_instruction
;
59 reg_t
processor_t::opcode_func_045(insn_t insn
, reg_t pc
)
61 reg_t npc
= pc
+ insn_length(0x00000005);
62 #include "insns/c_lwsp.h"
66 reg_t
processor_t::opcode_func_04f(insn_t insn
, reg_t pc
)
68 reg_t npc
= pc
+ insn_length(0x0000004f);
69 #include "insns/fnmadd_s.h"
73 reg_t
processor_t::opcode_func_059(insn_t insn
, reg_t pc
)
75 if((insn
.bits
& 0x1c1f) == 0x19)
77 reg_t npc
= pc
+ insn_length(0x00000019);
78 #include "insns/c_slli.h"
81 if((insn
.bits
& 0x1c1f) == 0x819)
83 reg_t npc
= pc
+ insn_length(0x00000819);
84 #include "insns/c_srli.h"
87 if((insn
.bits
& 0x1c1f) == 0x1419)
89 reg_t npc
= pc
+ insn_length(0x00001419);
90 #include "insns/c_srai32.h"
93 if((insn
.bits
& 0x1c1f) == 0x1819)
95 reg_t npc
= pc
+ insn_length(0x00001819);
96 #include "insns/c_slliw.h"
99 if((insn
.bits
& 0x1c1f) == 0xc19)
101 reg_t npc
= pc
+ insn_length(0x00000c19);
102 #include "insns/c_srli32.h"
105 if((insn
.bits
& 0x1c1f) == 0x1019)
107 reg_t npc
= pc
+ insn_length(0x00001019);
108 #include "insns/c_srai.h"
111 if((insn
.bits
& 0x1c1f) == 0x419)
113 reg_t npc
= pc
+ insn_length(0x00000419);
114 #include "insns/c_slli32.h"
117 throw trap_illegal_instruction
;
120 reg_t
processor_t::opcode_func_063(insn_t insn
, reg_t pc
)
122 reg_t npc
= pc
+ insn_length(0x00000063);
123 #include "insns/beq.h"
127 reg_t
processor_t::opcode_func_06d(insn_t insn
, reg_t pc
)
129 reg_t npc
= pc
+ insn_length(0x0000000d);
130 #include "insns/c_sw.h"
134 reg_t
processor_t::opcode_func_077(insn_t insn
, reg_t pc
)
136 if((insn
.bits
& 0xffffffff) == 0x77)
138 reg_t npc
= pc
+ insn_length(0x00000077);
139 #include "insns/syscall.h"
142 throw trap_illegal_instruction
;
145 reg_t
processor_t::opcode_func_081(insn_t insn
, reg_t pc
)
147 reg_t npc
= pc
+ insn_length(0x00000001);
148 #include "insns/c_addi.h"
152 reg_t
processor_t::opcode_func_08b(insn_t insn
, reg_t pc
)
154 if((insn
.bits
& 0x3fffff) == 0x8b)
156 reg_t npc
= pc
+ insn_length(0x0000008b);
157 #include "insns/vlh.h"
160 if((insn
.bits
& 0x1ffff) == 0x108b)
162 reg_t npc
= pc
+ insn_length(0x0000108b);
163 #include "insns/vlsth.h"
166 if((insn
.bits
& 0xfff) == 0x88b)
168 reg_t npc
= pc
+ insn_length(0x0000088b);
169 #include "insns/vlsegsth.h"
172 if((insn
.bits
& 0x1ffff) == 0x208b)
174 reg_t npc
= pc
+ insn_length(0x0000208b);
175 #include "insns/vlsegh.h"
178 throw trap_illegal_instruction
;
181 reg_t
processor_t::opcode_func_095(insn_t insn
, reg_t pc
)
183 reg_t npc
= pc
+ insn_length(0x00000015);
184 #include "insns/c_fld.h"
188 reg_t
processor_t::opcode_func_09f(insn_t insn
, reg_t pc
)
190 throw trap_illegal_instruction
;
193 reg_t
processor_t::opcode_func_0a9(insn_t insn
, reg_t pc
)
195 reg_t npc
= pc
+ insn_length(0x00000009);
196 #include "insns/c_ld.h"
200 reg_t
processor_t::opcode_func_0b3(insn_t insn
, reg_t pc
)
202 if((insn
.bits
& 0x1ffff) == 0xb3)
204 reg_t npc
= pc
+ insn_length(0x000000b3);
205 #include "insns/sll.h"
208 if((insn
.bits
& 0x1ffff) == 0x4b3)
210 reg_t npc
= pc
+ insn_length(0x000004b3);
211 #include "insns/mulh.h"
214 throw trap_illegal_instruction
;
217 reg_t
processor_t::opcode_func_0bd(insn_t insn
, reg_t pc
)
219 reg_t npc
= pc
+ insn_length(0x0000001d);
220 #include "insns/c_addiw.h"
224 reg_t
processor_t::opcode_func_0c7(insn_t insn
, reg_t pc
)
226 reg_t npc
= pc
+ insn_length(0x000000c7);
227 #include "insns/fmsub_d.h"
231 reg_t
processor_t::opcode_func_0d1(insn_t insn
, reg_t pc
)
233 reg_t npc
= pc
+ insn_length(0x00000011);
234 #include "insns/c_bne.h"
238 reg_t
processor_t::opcode_func_0db(insn_t insn
, reg_t pc
)
240 throw trap_illegal_instruction
;
243 reg_t
processor_t::opcode_func_0e5(insn_t insn
, reg_t pc
)
245 reg_t npc
= pc
+ insn_length(0x00000005);
246 #include "insns/c_lwsp.h"
250 reg_t
processor_t::opcode_func_0ef(insn_t insn
, reg_t pc
)
252 reg_t npc
= pc
+ insn_length(0x0000006f);
253 #include "insns/jal.h"
257 reg_t
processor_t::opcode_func_0f9(insn_t insn
, reg_t pc
)
259 if((insn
.bits
& 0x1c1f) == 0x19)
261 reg_t npc
= pc
+ insn_length(0x00000019);
262 #include "insns/c_slli.h"
265 if((insn
.bits
& 0x1c1f) == 0x819)
267 reg_t npc
= pc
+ insn_length(0x00000819);
268 #include "insns/c_srli.h"
271 if((insn
.bits
& 0x1c1f) == 0x1419)
273 reg_t npc
= pc
+ insn_length(0x00001419);
274 #include "insns/c_srai32.h"
277 if((insn
.bits
& 0x1c1f) == 0x1819)
279 reg_t npc
= pc
+ insn_length(0x00001819);
280 #include "insns/c_slliw.h"
283 if((insn
.bits
& 0x1c1f) == 0xc19)
285 reg_t npc
= pc
+ insn_length(0x00000c19);
286 #include "insns/c_srli32.h"
289 if((insn
.bits
& 0x1c1f) == 0x1019)
291 reg_t npc
= pc
+ insn_length(0x00001019);
292 #include "insns/c_srai.h"
295 if((insn
.bits
& 0x1c1f) == 0x419)
297 reg_t npc
= pc
+ insn_length(0x00000419);
298 #include "insns/c_slli32.h"
301 throw trap_illegal_instruction
;
304 reg_t
processor_t::opcode_func_103(insn_t insn
, reg_t pc
)
306 reg_t npc
= pc
+ insn_length(0x00000103);
307 #include "insns/lw.h"
311 reg_t
processor_t::opcode_func_10d(insn_t insn
, reg_t pc
)
313 reg_t npc
= pc
+ insn_length(0x0000000d);
314 #include "insns/c_sw.h"
318 reg_t
processor_t::opcode_func_117(insn_t insn
, reg_t pc
)
320 throw trap_illegal_instruction
;
323 reg_t
processor_t::opcode_func_121(insn_t insn
, reg_t pc
)
325 reg_t npc
= pc
+ insn_length(0x00000001);
326 #include "insns/c_addi.h"
330 reg_t
processor_t::opcode_func_12b(insn_t insn
, reg_t pc
)
332 if((insn
.bits
& 0x1ffff) == 0x192b)
334 reg_t npc
= pc
+ insn_length(0x0000192b);
335 #include "insns/amominu_w.h"
338 if((insn
.bits
& 0x1ffff) == 0x92b)
340 reg_t npc
= pc
+ insn_length(0x0000092b);
341 #include "insns/amoand_w.h"
344 if((insn
.bits
& 0x1ffff) == 0x1d2b)
346 reg_t npc
= pc
+ insn_length(0x00001d2b);
347 #include "insns/amomaxu_w.h"
350 if((insn
.bits
& 0x1ffff) == 0x152b)
352 reg_t npc
= pc
+ insn_length(0x0000152b);
353 #include "insns/amomax_w.h"
356 if((insn
.bits
& 0x1ffff) == 0x12b)
358 reg_t npc
= pc
+ insn_length(0x0000012b);
359 #include "insns/amoadd_w.h"
362 if((insn
.bits
& 0x1ffff) == 0xd2b)
364 reg_t npc
= pc
+ insn_length(0x00000d2b);
365 #include "insns/amoor_w.h"
368 if((insn
.bits
& 0x1ffff) == 0x112b)
370 reg_t npc
= pc
+ insn_length(0x0000112b);
371 #include "insns/amomin_w.h"
374 if((insn
.bits
& 0x1ffff) == 0x52b)
376 reg_t npc
= pc
+ insn_length(0x0000052b);
377 #include "insns/amoswap_w.h"
380 throw trap_illegal_instruction
;
383 reg_t
processor_t::opcode_func_135(insn_t insn
, reg_t pc
)
385 reg_t npc
= pc
+ insn_length(0x00000015);
386 #include "insns/c_fld.h"
390 reg_t
processor_t::opcode_func_13f(insn_t insn
, reg_t pc
)
392 throw trap_illegal_instruction
;
395 reg_t
processor_t::opcode_func_149(insn_t insn
, reg_t pc
)
397 reg_t npc
= pc
+ insn_length(0x00000009);
398 #include "insns/c_ld.h"
402 reg_t
processor_t::opcode_func_153(insn_t insn
, reg_t pc
)
404 throw trap_illegal_instruction
;
407 reg_t
processor_t::opcode_func_15d(insn_t insn
, reg_t pc
)
409 reg_t npc
= pc
+ insn_length(0x0000001d);
410 #include "insns/c_addiw.h"
414 reg_t
processor_t::opcode_func_167(insn_t insn
, reg_t pc
)
416 reg_t npc
= pc
+ insn_length(0x00000067);
421 reg_t
processor_t::opcode_func_171(insn_t insn
, reg_t pc
)
423 reg_t npc
= pc
+ insn_length(0x00000011);
424 #include "insns/c_bne.h"
428 reg_t
processor_t::opcode_func_17b(insn_t insn
, reg_t pc
)
430 if((insn
.bits
& 0x7c1ffff) == 0x17b)
432 reg_t npc
= pc
+ insn_length(0x0000017b);
433 #include "insns/mfpcr.h"
436 throw trap_illegal_instruction
;
439 reg_t
processor_t::opcode_func_185(insn_t insn
, reg_t pc
)
441 reg_t npc
= pc
+ insn_length(0x00000005);
442 #include "insns/c_lwsp.h"
446 reg_t
processor_t::opcode_func_18f(insn_t insn
, reg_t pc
)
448 if((insn
.bits
& 0xfff) == 0x98f)
450 reg_t npc
= pc
+ insn_length(0x0000098f);
451 #include "insns/vssegstd.h"
454 if((insn
.bits
& 0xfff) == 0xd8f)
456 reg_t npc
= pc
+ insn_length(0x00000d8f);
457 #include "insns/vfssegstd.h"
460 if((insn
.bits
& 0x1ffff) == 0x118f)
462 reg_t npc
= pc
+ insn_length(0x0000118f);
463 #include "insns/vsstd.h"
466 if((insn
.bits
& 0x1ffff) == 0x218f)
468 reg_t npc
= pc
+ insn_length(0x0000218f);
469 #include "insns/vssegd.h"
472 if((insn
.bits
& 0x1ffff) == 0x158f)
474 reg_t npc
= pc
+ insn_length(0x0000158f);
475 #include "insns/vfsstd.h"
478 if((insn
.bits
& 0x3fffff) == 0x18f)
480 reg_t npc
= pc
+ insn_length(0x0000018f);
481 #include "insns/vsd.h"
484 if((insn
.bits
& 0x3fffff) == 0x58f)
486 reg_t npc
= pc
+ insn_length(0x0000058f);
487 #include "insns/vfsd.h"
490 if((insn
.bits
& 0x1ffff) == 0x258f)
492 reg_t npc
= pc
+ insn_length(0x0000258f);
493 #include "insns/vfssegd.h"
496 throw trap_illegal_instruction
;
499 reg_t
processor_t::opcode_func_199(insn_t insn
, reg_t pc
)
501 if((insn
.bits
& 0x1c1f) == 0x19)
503 reg_t npc
= pc
+ insn_length(0x00000019);
504 #include "insns/c_slli.h"
507 if((insn
.bits
& 0x1c1f) == 0x819)
509 reg_t npc
= pc
+ insn_length(0x00000819);
510 #include "insns/c_srli.h"
513 if((insn
.bits
& 0x1c1f) == 0x1419)
515 reg_t npc
= pc
+ insn_length(0x00001419);
516 #include "insns/c_srai32.h"
519 if((insn
.bits
& 0x1c1f) == 0x1819)
521 reg_t npc
= pc
+ insn_length(0x00001819);
522 #include "insns/c_slliw.h"
525 if((insn
.bits
& 0x1c1f) == 0xc19)
527 reg_t npc
= pc
+ insn_length(0x00000c19);
528 #include "insns/c_srli32.h"
531 if((insn
.bits
& 0x1c1f) == 0x1019)
533 reg_t npc
= pc
+ insn_length(0x00001019);
534 #include "insns/c_srai.h"
537 if((insn
.bits
& 0x1c1f) == 0x419)
539 reg_t npc
= pc
+ insn_length(0x00000419);
540 #include "insns/c_slli32.h"
543 throw trap_illegal_instruction
;
546 reg_t
processor_t::opcode_func_1a3(insn_t insn
, reg_t pc
)
548 reg_t npc
= pc
+ insn_length(0x000001a3);
549 #include "insns/sd.h"
553 reg_t
processor_t::opcode_func_1ad(insn_t insn
, reg_t pc
)
555 reg_t npc
= pc
+ insn_length(0x0000000d);
556 #include "insns/c_sw.h"
560 reg_t
processor_t::opcode_func_1b7(insn_t insn
, reg_t pc
)
562 reg_t npc
= pc
+ insn_length(0x00000037);
563 #include "insns/lui.h"
567 reg_t
processor_t::opcode_func_1c1(insn_t insn
, reg_t pc
)
569 reg_t npc
= pc
+ insn_length(0x00000001);
570 #include "insns/c_addi.h"
574 reg_t
processor_t::opcode_func_1cb(insn_t insn
, reg_t pc
)
576 throw trap_illegal_instruction
;
579 reg_t
processor_t::opcode_func_1d5(insn_t insn
, reg_t pc
)
581 reg_t npc
= pc
+ insn_length(0x00000015);
582 #include "insns/c_fld.h"
586 reg_t
processor_t::opcode_func_1df(insn_t insn
, reg_t pc
)
588 throw trap_illegal_instruction
;
591 reg_t
processor_t::opcode_func_1e9(insn_t insn
, reg_t pc
)
593 reg_t npc
= pc
+ insn_length(0x00000009);
594 #include "insns/c_ld.h"
598 reg_t
processor_t::opcode_func_1f3(insn_t insn
, reg_t pc
)
600 reg_t npc
= pc
+ insn_length(0x000001f3);
601 #include "insns/vtcfgivl.h"
605 reg_t
processor_t::opcode_func_1fd(insn_t insn
, reg_t pc
)
607 reg_t npc
= pc
+ insn_length(0x0000001d);
608 #include "insns/c_addiw.h"
612 reg_t
processor_t::opcode_func_207(insn_t insn
, reg_t pc
)
614 throw trap_illegal_instruction
;
617 reg_t
processor_t::opcode_func_211(insn_t insn
, reg_t pc
)
619 reg_t npc
= pc
+ insn_length(0x00000011);
620 #include "insns/c_bne.h"
624 reg_t
processor_t::opcode_func_21b(insn_t insn
, reg_t pc
)
626 throw trap_illegal_instruction
;
629 reg_t
processor_t::opcode_func_225(insn_t insn
, reg_t pc
)
631 reg_t npc
= pc
+ insn_length(0x00000005);
632 #include "insns/c_lwsp.h"
636 reg_t
processor_t::opcode_func_22f(insn_t insn
, reg_t pc
)
638 reg_t npc
= pc
+ insn_length(0x0000022f);
639 #include "insns/fence_l_v.h"
643 reg_t
processor_t::opcode_func_239(insn_t insn
, reg_t pc
)
645 if((insn
.bits
& 0x1c1f) == 0x19)
647 reg_t npc
= pc
+ insn_length(0x00000019);
648 #include "insns/c_slli.h"
651 if((insn
.bits
& 0x1c1f) == 0x819)
653 reg_t npc
= pc
+ insn_length(0x00000819);
654 #include "insns/c_srli.h"
657 if((insn
.bits
& 0x1c1f) == 0x1419)
659 reg_t npc
= pc
+ insn_length(0x00001419);
660 #include "insns/c_srai32.h"
663 if((insn
.bits
& 0x1c1f) == 0x1819)
665 reg_t npc
= pc
+ insn_length(0x00001819);
666 #include "insns/c_slliw.h"
669 if((insn
.bits
& 0x1c1f) == 0xc19)
671 reg_t npc
= pc
+ insn_length(0x00000c19);
672 #include "insns/c_srli32.h"
675 if((insn
.bits
& 0x1c1f) == 0x1019)
677 reg_t npc
= pc
+ insn_length(0x00001019);
678 #include "insns/c_srai.h"
681 if((insn
.bits
& 0x1c1f) == 0x419)
683 reg_t npc
= pc
+ insn_length(0x00000419);
684 #include "insns/c_slli32.h"
687 throw trap_illegal_instruction
;
690 reg_t
processor_t::opcode_func_243(insn_t insn
, reg_t pc
)
692 reg_t npc
= pc
+ insn_length(0x00000043);
693 #include "insns/fmadd_s.h"
697 reg_t
processor_t::opcode_func_24d(insn_t insn
, reg_t pc
)
699 reg_t npc
= pc
+ insn_length(0x0000000d);
700 #include "insns/c_sw.h"
704 reg_t
processor_t::opcode_func_257(insn_t insn
, reg_t pc
)
706 throw trap_illegal_instruction
;
709 reg_t
processor_t::opcode_func_261(insn_t insn
, reg_t pc
)
711 reg_t npc
= pc
+ insn_length(0x00000001);
712 #include "insns/c_addi.h"
716 reg_t
processor_t::opcode_func_26b(insn_t insn
, reg_t pc
)
718 if((insn
.bits
& 0x7ffffff) == 0x26b)
720 reg_t npc
= pc
+ insn_length(0x0000026b);
721 #include "insns/rdnpc.h"
724 throw trap_illegal_instruction
;
727 reg_t
processor_t::opcode_func_275(insn_t insn
, reg_t pc
)
729 reg_t npc
= pc
+ insn_length(0x00000015);
730 #include "insns/c_fld.h"
734 reg_t
processor_t::opcode_func_27f(insn_t insn
, reg_t pc
)
736 throw trap_illegal_instruction
;
739 reg_t
processor_t::opcode_func_289(insn_t insn
, reg_t pc
)
741 reg_t npc
= pc
+ insn_length(0x00000009);
742 #include "insns/c_ld.h"
746 reg_t
processor_t::opcode_func_293(insn_t insn
, reg_t pc
)
748 if((insn
.bits
& 0x3f03ff) == 0x293)
750 reg_t npc
= pc
+ insn_length(0x00000293);
751 #include "insns/srli.h"
754 if((insn
.bits
& 0x3f03ff) == 0x10293)
756 reg_t npc
= pc
+ insn_length(0x00010293);
757 #include "insns/srai.h"
760 throw trap_illegal_instruction
;
763 reg_t
processor_t::opcode_func_29d(insn_t insn
, reg_t pc
)
765 reg_t npc
= pc
+ insn_length(0x0000001d);
766 #include "insns/c_addiw.h"
770 reg_t
processor_t::opcode_func_2a7(insn_t insn
, reg_t pc
)
772 throw trap_illegal_instruction
;
775 reg_t
processor_t::opcode_func_2b1(insn_t insn
, reg_t pc
)
777 reg_t npc
= pc
+ insn_length(0x00000011);
778 #include "insns/c_bne.h"
782 reg_t
processor_t::opcode_func_2bb(insn_t insn
, reg_t pc
)
784 if((insn
.bits
& 0x1ffff) == 0x6bb)
786 reg_t npc
= pc
+ insn_length(0x000006bb);
787 #include "insns/divuw.h"
790 if((insn
.bits
& 0x1ffff) == 0x2bb)
792 reg_t npc
= pc
+ insn_length(0x000002bb);
793 #include "insns/srlw.h"
796 if((insn
.bits
& 0x1ffff) == 0x102bb)
798 reg_t npc
= pc
+ insn_length(0x000102bb);
799 #include "insns/sraw.h"
802 throw trap_illegal_instruction
;
805 reg_t
processor_t::opcode_func_2c5(insn_t insn
, reg_t pc
)
807 reg_t npc
= pc
+ insn_length(0x00000005);
808 #include "insns/c_lwsp.h"
812 reg_t
processor_t::opcode_func_2cf(insn_t insn
, reg_t pc
)
814 reg_t npc
= pc
+ insn_length(0x000000cf);
815 #include "insns/fnmadd_d.h"
819 reg_t
processor_t::opcode_func_2d9(insn_t insn
, reg_t pc
)
821 if((insn
.bits
& 0x1c1f) == 0x19)
823 reg_t npc
= pc
+ insn_length(0x00000019);
824 #include "insns/c_slli.h"
827 if((insn
.bits
& 0x1c1f) == 0x819)
829 reg_t npc
= pc
+ insn_length(0x00000819);
830 #include "insns/c_srli.h"
833 if((insn
.bits
& 0x1c1f) == 0x1419)
835 reg_t npc
= pc
+ insn_length(0x00001419);
836 #include "insns/c_srai32.h"
839 if((insn
.bits
& 0x1c1f) == 0x1819)
841 reg_t npc
= pc
+ insn_length(0x00001819);
842 #include "insns/c_slliw.h"
845 if((insn
.bits
& 0x1c1f) == 0xc19)
847 reg_t npc
= pc
+ insn_length(0x00000c19);
848 #include "insns/c_srli32.h"
851 if((insn
.bits
& 0x1c1f) == 0x1019)
853 reg_t npc
= pc
+ insn_length(0x00001019);
854 #include "insns/c_srai.h"
857 if((insn
.bits
& 0x1c1f) == 0x419)
859 reg_t npc
= pc
+ insn_length(0x00000419);
860 #include "insns/c_slli32.h"
863 throw trap_illegal_instruction
;
866 reg_t
processor_t::opcode_func_2e3(insn_t insn
, reg_t pc
)
868 reg_t npc
= pc
+ insn_length(0x000002e3);
869 #include "insns/bge.h"
873 reg_t
processor_t::opcode_func_2ed(insn_t insn
, reg_t pc
)
875 reg_t npc
= pc
+ insn_length(0x0000000d);
876 #include "insns/c_sw.h"
880 reg_t
processor_t::opcode_func_2f7(insn_t insn
, reg_t pc
)
882 if((insn
.bits
& 0x1ffff) == 0x6f7)
884 reg_t npc
= pc
+ insn_length(0x000006f7);
885 #include "insns/movn.h"
888 if((insn
.bits
& 0x1ffff) == 0x2f7)
890 reg_t npc
= pc
+ insn_length(0x000002f7);
891 #include "insns/movz.h"
894 if((insn
.bits
& 0x1ffff) == 0xef7)
896 reg_t npc
= pc
+ insn_length(0x00000ef7);
897 #include "insns/fmovn.h"
900 if((insn
.bits
& 0x1ffff) == 0xaf7)
902 reg_t npc
= pc
+ insn_length(0x00000af7);
903 #include "insns/fmovz.h"
906 throw trap_illegal_instruction
;
909 reg_t
processor_t::opcode_func_301(insn_t insn
, reg_t pc
)
911 reg_t npc
= pc
+ insn_length(0x00000001);
912 #include "insns/c_addi.h"
916 reg_t
processor_t::opcode_func_30b(insn_t insn
, reg_t pc
)
918 if((insn
.bits
& 0xfff) == 0xb0b)
920 reg_t npc
= pc
+ insn_length(0x00000b0b);
921 #include "insns/vlsegstwu.h"
924 if((insn
.bits
& 0x3fffff) == 0x30b)
926 reg_t npc
= pc
+ insn_length(0x0000030b);
927 #include "insns/vlwu.h"
930 if((insn
.bits
& 0x1ffff) == 0x130b)
932 reg_t npc
= pc
+ insn_length(0x0000130b);
933 #include "insns/vlstwu.h"
936 if((insn
.bits
& 0x1ffff) == 0x230b)
938 reg_t npc
= pc
+ insn_length(0x0000230b);
939 #include "insns/vlsegwu.h"
942 throw trap_illegal_instruction
;
945 reg_t
processor_t::opcode_func_315(insn_t insn
, reg_t pc
)
947 reg_t npc
= pc
+ insn_length(0x00000015);
948 #include "insns/c_fld.h"
952 reg_t
processor_t::opcode_func_31f(insn_t insn
, reg_t pc
)
954 throw trap_illegal_instruction
;
957 reg_t
processor_t::opcode_func_329(insn_t insn
, reg_t pc
)
959 reg_t npc
= pc
+ insn_length(0x00000009);
960 #include "insns/c_ld.h"
964 reg_t
processor_t::opcode_func_333(insn_t insn
, reg_t pc
)
966 if((insn
.bits
& 0x1ffff) == 0x733)
968 reg_t npc
= pc
+ insn_length(0x00000733);
969 #include "insns/rem.h"
972 if((insn
.bits
& 0x1ffff) == 0x333)
974 reg_t npc
= pc
+ insn_length(0x00000333);
975 #include "insns/or.h"
978 throw trap_illegal_instruction
;
981 reg_t
processor_t::opcode_func_33d(insn_t insn
, reg_t pc
)
983 reg_t npc
= pc
+ insn_length(0x0000001d);
984 #include "insns/c_addiw.h"
988 reg_t
processor_t::opcode_func_347(insn_t insn
, reg_t pc
)
990 throw trap_illegal_instruction
;
993 reg_t
processor_t::opcode_func_351(insn_t insn
, reg_t pc
)
995 reg_t npc
= pc
+ insn_length(0x00000011);
996 #include "insns/c_bne.h"
1000 reg_t
processor_t::opcode_func_35b(insn_t insn
, reg_t pc
)
1002 throw trap_illegal_instruction
;
1005 reg_t
processor_t::opcode_func_365(insn_t insn
, reg_t pc
)
1007 reg_t npc
= pc
+ insn_length(0x00000005);
1008 #include "insns/c_lwsp.h"
1012 reg_t
processor_t::opcode_func_36f(insn_t insn
, reg_t pc
)
1014 reg_t npc
= pc
+ insn_length(0x0000006f);
1015 #include "insns/jal.h"
1019 reg_t
processor_t::opcode_func_379(insn_t insn
, reg_t pc
)
1021 if((insn
.bits
& 0x1c1f) == 0x19)
1023 reg_t npc
= pc
+ insn_length(0x00000019);
1024 #include "insns/c_slli.h"
1027 if((insn
.bits
& 0x1c1f) == 0x819)
1029 reg_t npc
= pc
+ insn_length(0x00000819);
1030 #include "insns/c_srli.h"
1033 if((insn
.bits
& 0x1c1f) == 0x1419)
1035 reg_t npc
= pc
+ insn_length(0x00001419);
1036 #include "insns/c_srai32.h"
1039 if((insn
.bits
& 0x1c1f) == 0x1819)
1041 reg_t npc
= pc
+ insn_length(0x00001819);
1042 #include "insns/c_slliw.h"
1045 if((insn
.bits
& 0x1c1f) == 0xc19)
1047 reg_t npc
= pc
+ insn_length(0x00000c19);
1048 #include "insns/c_srli32.h"
1051 if((insn
.bits
& 0x1c1f) == 0x1019)
1053 reg_t npc
= pc
+ insn_length(0x00001019);
1054 #include "insns/c_srai.h"
1057 if((insn
.bits
& 0x1c1f) == 0x419)
1059 reg_t npc
= pc
+ insn_length(0x00000419);
1060 #include "insns/c_slli32.h"
1063 throw trap_illegal_instruction
;
1066 reg_t
processor_t::opcode_func_383(insn_t insn
, reg_t pc
)
1068 throw trap_illegal_instruction
;
1071 reg_t
processor_t::opcode_func_38d(insn_t insn
, reg_t pc
)
1073 reg_t npc
= pc
+ insn_length(0x0000000d);
1074 #include "insns/c_sw.h"
1078 reg_t
processor_t::opcode_func_397(insn_t insn
, reg_t pc
)
1080 throw trap_illegal_instruction
;
1083 reg_t
processor_t::opcode_func_3a1(insn_t insn
, reg_t pc
)
1085 reg_t npc
= pc
+ insn_length(0x00000001);
1086 #include "insns/c_addi.h"
1090 reg_t
processor_t::opcode_func_3ab(insn_t insn
, reg_t pc
)
1092 throw trap_illegal_instruction
;
1095 reg_t
processor_t::opcode_func_3b5(insn_t insn
, reg_t pc
)
1097 reg_t npc
= pc
+ insn_length(0x00000015);
1098 #include "insns/c_fld.h"
1102 reg_t
processor_t::opcode_func_3bf(insn_t insn
, reg_t pc
)
1104 throw trap_illegal_instruction
;
1107 reg_t
processor_t::opcode_func_3c9(insn_t insn
, reg_t pc
)
1109 reg_t npc
= pc
+ insn_length(0x00000009);
1110 #include "insns/c_ld.h"
1114 reg_t
processor_t::opcode_func_3d3(insn_t insn
, reg_t pc
)
1116 throw trap_illegal_instruction
;
1119 reg_t
processor_t::opcode_func_3dd(insn_t insn
, reg_t pc
)
1121 reg_t npc
= pc
+ insn_length(0x0000001d);
1122 #include "insns/c_addiw.h"
1126 reg_t
processor_t::opcode_func_3e7(insn_t insn
, reg_t pc
)
1128 reg_t npc
= pc
+ insn_length(0x00000067);
1129 #include "insns/j.h"
1133 reg_t
processor_t::opcode_func_3f1(insn_t insn
, reg_t pc
)
1135 reg_t npc
= pc
+ insn_length(0x00000011);
1136 #include "insns/c_bne.h"
1140 reg_t
processor_t::opcode_func_3fb(insn_t insn
, reg_t pc
)
1142 throw trap_illegal_instruction
;