1 #include "insn_includes.h"
3 reg_t
processor_t::opcode_func_003(insn_t insn
, reg_t pc
)
5 reg_t npc
= pc
+ insn_length(0x00000003);
10 reg_t
processor_t::opcode_func_00d(insn_t insn
, reg_t pc
)
12 reg_t npc
= pc
+ insn_length(0x0000000d);
13 #include "insns/c_sw.h"
17 reg_t
processor_t::opcode_func_017(insn_t insn
, reg_t pc
)
19 throw trap_illegal_instruction
;
22 reg_t
processor_t::opcode_func_021(insn_t insn
, reg_t pc
)
24 reg_t npc
= pc
+ insn_length(0x00000001);
25 #include "insns/c_addi.h"
29 reg_t
processor_t::opcode_func_02b(insn_t insn
, reg_t pc
)
31 throw trap_illegal_instruction
;
34 reg_t
processor_t::opcode_func_035(insn_t insn
, reg_t pc
)
36 reg_t npc
= pc
+ insn_length(0x00000015);
37 #include "insns/c_fld.h"
41 reg_t
processor_t::opcode_func_03f(insn_t insn
, reg_t pc
)
43 throw trap_illegal_instruction
;
46 reg_t
processor_t::opcode_func_049(insn_t insn
, reg_t pc
)
48 reg_t npc
= pc
+ insn_length(0x00000009);
49 #include "insns/c_ld.h"
53 reg_t
processor_t::opcode_func_053(insn_t insn
, reg_t pc
)
55 if((insn
.bits
& 0x3ff1ff) == 0x9053)
57 reg_t npc
= pc
+ insn_length(0x00009053);
58 #include "insns/fcvt_lu_s.h"
61 if((insn
.bits
& 0x1ffff) == 0x18053)
63 reg_t npc
= pc
+ insn_length(0x00018053);
64 #include "insns/fmin_s.h"
67 if((insn
.bits
& 0x3ff1ff) == 0x11053)
69 reg_t npc
= pc
+ insn_length(0x00011053);
70 #include "insns/fcvt_s_d.h"
73 if((insn
.bits
& 0x3ff1ff) == 0xe053)
75 reg_t npc
= pc
+ insn_length(0x0000e053);
76 #include "insns/fcvt_s_w.h"
79 if((insn
.bits
& 0x7c1ffff) == 0x1c053)
81 reg_t npc
= pc
+ insn_length(0x0001c053);
82 #include "insns/mftx_s.h"
85 if((insn
.bits
& 0x3ff1ff) == 0x8053)
87 reg_t npc
= pc
+ insn_length(0x00008053);
88 #include "insns/fcvt_l_s.h"
91 if((insn
.bits
& 0x1ffff) == 0x17053)
93 reg_t npc
= pc
+ insn_length(0x00017053);
94 #include "insns/fle_s.h"
97 if((insn
.bits
& 0x7ffffff) == 0x1d053)
99 reg_t npc
= pc
+ insn_length(0x0001d053);
100 #include "insns/mffsr.h"
103 if((insn
.bits
& 0x1f1ff) == 0x3053)
105 reg_t npc
= pc
+ insn_length(0x00003053);
106 #include "insns/fdiv_s.h"
109 if((insn
.bits
& 0x3fffff) == 0x1f053)
111 reg_t npc
= pc
+ insn_length(0x0001f053);
112 #include "insns/mtfsr.h"
115 if((insn
.bits
& 0x3ff1ff) == 0xd053)
117 reg_t npc
= pc
+ insn_length(0x0000d053);
118 #include "insns/fcvt_s_lu.h"
121 if((insn
.bits
& 0x1f1ff) == 0x2053)
123 reg_t npc
= pc
+ insn_length(0x00002053);
124 #include "insns/fmul_s.h"
127 if((insn
.bits
& 0x1ffff) == 0x16053)
129 reg_t npc
= pc
+ insn_length(0x00016053);
130 #include "insns/flt_s.h"
133 if((insn
.bits
& 0x1ffff) == 0x15053)
135 reg_t npc
= pc
+ insn_length(0x00015053);
136 #include "insns/feq_s.h"
139 if((insn
.bits
& 0x1ffff) == 0x7053)
141 reg_t npc
= pc
+ insn_length(0x00007053);
142 #include "insns/fsgnjx_s.h"
145 if((insn
.bits
& 0x1ffff) == 0x19053)
147 reg_t npc
= pc
+ insn_length(0x00019053);
148 #include "insns/fmax_s.h"
151 if((insn
.bits
& 0x3ff1ff) == 0xb053)
153 reg_t npc
= pc
+ insn_length(0x0000b053);
154 #include "insns/fcvt_wu_s.h"
157 if((insn
.bits
& 0x3fffff) == 0x1e053)
159 reg_t npc
= pc
+ insn_length(0x0001e053);
160 #include "insns/mxtf_s.h"
163 if((insn
.bits
& 0x1f1ff) == 0x1053)
165 reg_t npc
= pc
+ insn_length(0x00001053);
166 #include "insns/fsub_s.h"
169 if((insn
.bits
& 0x1ffff) == 0x5053)
171 reg_t npc
= pc
+ insn_length(0x00005053);
172 #include "insns/fsgnj_s.h"
175 if((insn
.bits
& 0x3ff1ff) == 0xf053)
177 reg_t npc
= pc
+ insn_length(0x0000f053);
178 #include "insns/fcvt_s_wu.h"
181 if((insn
.bits
& 0x3ff1ff) == 0xc053)
183 reg_t npc
= pc
+ insn_length(0x0000c053);
184 #include "insns/fcvt_s_l.h"
187 if((insn
.bits
& 0x3ff1ff) == 0xa053)
189 reg_t npc
= pc
+ insn_length(0x0000a053);
190 #include "insns/fcvt_w_s.h"
193 if((insn
.bits
& 0x3ff1ff) == 0x4053)
195 reg_t npc
= pc
+ insn_length(0x00004053);
196 #include "insns/fsqrt_s.h"
199 if((insn
.bits
& 0x1ffff) == 0x6053)
201 reg_t npc
= pc
+ insn_length(0x00006053);
202 #include "insns/fsgnjn_s.h"
205 if((insn
.bits
& 0x1f1ff) == 0x53)
207 reg_t npc
= pc
+ insn_length(0x00000053);
208 #include "insns/fadd_s.h"
211 throw trap_illegal_instruction
;
214 reg_t
processor_t::opcode_func_05d(insn_t insn
, reg_t pc
)
216 reg_t npc
= pc
+ insn_length(0x0000001d);
217 #include "insns/c_addiw.h"
221 reg_t
processor_t::opcode_func_067(insn_t insn
, reg_t pc
)
223 reg_t npc
= pc
+ insn_length(0x00000067);
228 reg_t
processor_t::opcode_func_071(insn_t insn
, reg_t pc
)
230 reg_t npc
= pc
+ insn_length(0x00000011);
231 #include "insns/c_bne.h"
235 reg_t
processor_t::opcode_func_07b(insn_t insn
, reg_t pc
)
237 if((insn
.bits
& 0x7ffffff) == 0x7b)
239 reg_t npc
= pc
+ insn_length(0x0000007b);
240 #include "insns/ei.h"
243 throw trap_illegal_instruction
;
246 reg_t
processor_t::opcode_func_085(insn_t insn
, reg_t pc
)
248 reg_t npc
= pc
+ insn_length(0x00000005);
249 #include "insns/c_lwsp.h"
253 reg_t
processor_t::opcode_func_08f(insn_t insn
, reg_t pc
)
255 if((insn
.bits
& 0xfff) == 0x88f)
257 reg_t npc
= pc
+ insn_length(0x0000088f);
258 #include "insns/vssegsth.h"
261 if((insn
.bits
& 0x1ffff) == 0x108f)
263 reg_t npc
= pc
+ insn_length(0x0000108f);
264 #include "insns/vssth.h"
267 if((insn
.bits
& 0x3fffff) == 0x8f)
269 reg_t npc
= pc
+ insn_length(0x0000008f);
270 #include "insns/vsh.h"
273 if((insn
.bits
& 0x1ffff) == 0x208f)
275 reg_t npc
= pc
+ insn_length(0x0000208f);
276 #include "insns/vssegh.h"
279 throw trap_illegal_instruction
;
282 reg_t
processor_t::opcode_func_099(insn_t insn
, reg_t pc
)
284 if((insn
.bits
& 0x1c1f) == 0x19)
286 reg_t npc
= pc
+ insn_length(0x00000019);
287 #include "insns/c_slli.h"
290 if((insn
.bits
& 0x1c1f) == 0x819)
292 reg_t npc
= pc
+ insn_length(0x00000819);
293 #include "insns/c_srli.h"
296 if((insn
.bits
& 0x1c1f) == 0x1419)
298 reg_t npc
= pc
+ insn_length(0x00001419);
299 #include "insns/c_srai32.h"
302 if((insn
.bits
& 0x1c1f) == 0x1819)
304 reg_t npc
= pc
+ insn_length(0x00001819);
305 #include "insns/c_slliw.h"
308 if((insn
.bits
& 0x1c1f) == 0xc19)
310 reg_t npc
= pc
+ insn_length(0x00000c19);
311 #include "insns/c_srli32.h"
314 if((insn
.bits
& 0x1c1f) == 0x1019)
316 reg_t npc
= pc
+ insn_length(0x00001019);
317 #include "insns/c_srai.h"
320 if((insn
.bits
& 0x1c1f) == 0x419)
322 reg_t npc
= pc
+ insn_length(0x00000419);
323 #include "insns/c_slli32.h"
326 throw trap_illegal_instruction
;
329 reg_t
processor_t::opcode_func_0a3(insn_t insn
, reg_t pc
)
331 reg_t npc
= pc
+ insn_length(0x000000a3);
332 #include "insns/sh.h"
336 reg_t
processor_t::opcode_func_0ad(insn_t insn
, reg_t pc
)
338 reg_t npc
= pc
+ insn_length(0x0000000d);
339 #include "insns/c_sw.h"
343 reg_t
processor_t::opcode_func_0b7(insn_t insn
, reg_t pc
)
345 reg_t npc
= pc
+ insn_length(0x00000037);
346 #include "insns/lui.h"
350 reg_t
processor_t::opcode_func_0c1(insn_t insn
, reg_t pc
)
352 reg_t npc
= pc
+ insn_length(0x00000001);
353 #include "insns/c_addi.h"
357 reg_t
processor_t::opcode_func_0cb(insn_t insn
, reg_t pc
)
359 reg_t npc
= pc
+ insn_length(0x000000cb);
360 #include "insns/fnmsub_d.h"
364 reg_t
processor_t::opcode_func_0d5(insn_t insn
, reg_t pc
)
366 reg_t npc
= pc
+ insn_length(0x00000015);
367 #include "insns/c_fld.h"
371 reg_t
processor_t::opcode_func_0df(insn_t insn
, reg_t pc
)
373 throw trap_illegal_instruction
;
376 reg_t
processor_t::opcode_func_0e9(insn_t insn
, reg_t pc
)
378 reg_t npc
= pc
+ insn_length(0x00000009);
379 #include "insns/c_ld.h"
383 reg_t
processor_t::opcode_func_0f3(insn_t insn
, reg_t pc
)
385 reg_t npc
= pc
+ insn_length(0x000000f3);
386 #include "insns/vvcfgivl.h"
390 reg_t
processor_t::opcode_func_0fd(insn_t insn
, reg_t pc
)
392 reg_t npc
= pc
+ insn_length(0x0000001d);
393 #include "insns/c_addiw.h"
397 reg_t
processor_t::opcode_func_107(insn_t insn
, reg_t pc
)
399 reg_t npc
= pc
+ insn_length(0x00000107);
400 #include "insns/flw.h"
404 reg_t
processor_t::opcode_func_111(insn_t insn
, reg_t pc
)
406 reg_t npc
= pc
+ insn_length(0x00000011);
407 #include "insns/c_bne.h"
411 reg_t
processor_t::opcode_func_11b(insn_t insn
, reg_t pc
)
413 throw trap_illegal_instruction
;
416 reg_t
processor_t::opcode_func_125(insn_t insn
, reg_t pc
)
418 reg_t npc
= pc
+ insn_length(0x00000005);
419 #include "insns/c_lwsp.h"
423 reg_t
processor_t::opcode_func_12f(insn_t insn
, reg_t pc
)
425 reg_t npc
= pc
+ insn_length(0x0000012f);
426 #include "insns/fence.h"
430 reg_t
processor_t::opcode_func_139(insn_t insn
, reg_t pc
)
432 if((insn
.bits
& 0x1c1f) == 0x19)
434 reg_t npc
= pc
+ insn_length(0x00000019);
435 #include "insns/c_slli.h"
438 if((insn
.bits
& 0x1c1f) == 0x819)
440 reg_t npc
= pc
+ insn_length(0x00000819);
441 #include "insns/c_srli.h"
444 if((insn
.bits
& 0x1c1f) == 0x1419)
446 reg_t npc
= pc
+ insn_length(0x00001419);
447 #include "insns/c_srai32.h"
450 if((insn
.bits
& 0x1c1f) == 0x1819)
452 reg_t npc
= pc
+ insn_length(0x00001819);
453 #include "insns/c_slliw.h"
456 if((insn
.bits
& 0x1c1f) == 0xc19)
458 reg_t npc
= pc
+ insn_length(0x00000c19);
459 #include "insns/c_srli32.h"
462 if((insn
.bits
& 0x1c1f) == 0x1019)
464 reg_t npc
= pc
+ insn_length(0x00001019);
465 #include "insns/c_srai.h"
468 if((insn
.bits
& 0x1c1f) == 0x419)
470 reg_t npc
= pc
+ insn_length(0x00000419);
471 #include "insns/c_slli32.h"
474 throw trap_illegal_instruction
;
477 reg_t
processor_t::opcode_func_143(insn_t insn
, reg_t pc
)
479 throw trap_illegal_instruction
;
482 reg_t
processor_t::opcode_func_14d(insn_t insn
, reg_t pc
)
484 reg_t npc
= pc
+ insn_length(0x0000000d);
485 #include "insns/c_sw.h"
489 reg_t
processor_t::opcode_func_157(insn_t insn
, reg_t pc
)
491 throw trap_illegal_instruction
;
494 reg_t
processor_t::opcode_func_161(insn_t insn
, reg_t pc
)
496 reg_t npc
= pc
+ insn_length(0x00000001);
497 #include "insns/c_addi.h"
501 reg_t
processor_t::opcode_func_16b(insn_t insn
, reg_t pc
)
503 reg_t npc
= pc
+ insn_length(0x0000016b);
504 #include "insns/jalr_j.h"
508 reg_t
processor_t::opcode_func_175(insn_t insn
, reg_t pc
)
510 reg_t npc
= pc
+ insn_length(0x00000015);
511 #include "insns/c_fld.h"
515 reg_t
processor_t::opcode_func_17f(insn_t insn
, reg_t pc
)
517 throw trap_illegal_instruction
;
520 reg_t
processor_t::opcode_func_189(insn_t insn
, reg_t pc
)
522 reg_t npc
= pc
+ insn_length(0x00000009);
523 #include "insns/c_ld.h"
527 reg_t
processor_t::opcode_func_193(insn_t insn
, reg_t pc
)
529 reg_t npc
= pc
+ insn_length(0x00000193);
530 #include "insns/sltiu.h"
534 reg_t
processor_t::opcode_func_19d(insn_t insn
, reg_t pc
)
536 reg_t npc
= pc
+ insn_length(0x0000001d);
537 #include "insns/c_addiw.h"
541 reg_t
processor_t::opcode_func_1a7(insn_t insn
, reg_t pc
)
543 reg_t npc
= pc
+ insn_length(0x000001a7);
544 #include "insns/fsd.h"
548 reg_t
processor_t::opcode_func_1b1(insn_t insn
, reg_t pc
)
550 reg_t npc
= pc
+ insn_length(0x00000011);
551 #include "insns/c_bne.h"
555 reg_t
processor_t::opcode_func_1bb(insn_t insn
, reg_t pc
)
557 throw trap_illegal_instruction
;
560 reg_t
processor_t::opcode_func_1c5(insn_t insn
, reg_t pc
)
562 reg_t npc
= pc
+ insn_length(0x00000005);
563 #include "insns/c_lwsp.h"
567 reg_t
processor_t::opcode_func_1cf(insn_t insn
, reg_t pc
)
569 throw trap_illegal_instruction
;
572 reg_t
processor_t::opcode_func_1d9(insn_t insn
, reg_t pc
)
574 if((insn
.bits
& 0x1c1f) == 0x19)
576 reg_t npc
= pc
+ insn_length(0x00000019);
577 #include "insns/c_slli.h"
580 if((insn
.bits
& 0x1c1f) == 0x819)
582 reg_t npc
= pc
+ insn_length(0x00000819);
583 #include "insns/c_srli.h"
586 if((insn
.bits
& 0x1c1f) == 0x1419)
588 reg_t npc
= pc
+ insn_length(0x00001419);
589 #include "insns/c_srai32.h"
592 if((insn
.bits
& 0x1c1f) == 0x1819)
594 reg_t npc
= pc
+ insn_length(0x00001819);
595 #include "insns/c_slliw.h"
598 if((insn
.bits
& 0x1c1f) == 0xc19)
600 reg_t npc
= pc
+ insn_length(0x00000c19);
601 #include "insns/c_srli32.h"
604 if((insn
.bits
& 0x1c1f) == 0x1019)
606 reg_t npc
= pc
+ insn_length(0x00001019);
607 #include "insns/c_srai.h"
610 if((insn
.bits
& 0x1c1f) == 0x419)
612 reg_t npc
= pc
+ insn_length(0x00000419);
613 #include "insns/c_slli32.h"
616 throw trap_illegal_instruction
;
619 reg_t
processor_t::opcode_func_1e3(insn_t insn
, reg_t pc
)
621 throw trap_illegal_instruction
;
624 reg_t
processor_t::opcode_func_1ed(insn_t insn
, reg_t pc
)
626 reg_t npc
= pc
+ insn_length(0x0000000d);
627 #include "insns/c_sw.h"
631 reg_t
processor_t::opcode_func_1f7(insn_t insn
, reg_t pc
)
633 if((insn
.bits
& 0x7ffffff) == 0x1f7)
635 reg_t npc
= pc
+ insn_length(0x000001f7);
636 #include "insns/utidx.h"
639 throw trap_illegal_instruction
;
642 reg_t
processor_t::opcode_func_201(insn_t insn
, reg_t pc
)
644 reg_t npc
= pc
+ insn_length(0x00000001);
645 #include "insns/c_addi.h"
649 reg_t
processor_t::opcode_func_20b(insn_t insn
, reg_t pc
)
651 if((insn
.bits
& 0x1ffff) == 0x120b)
653 reg_t npc
= pc
+ insn_length(0x0000120b);
654 #include "insns/vlstbu.h"
657 if((insn
.bits
& 0x1ffff) == 0x220b)
659 reg_t npc
= pc
+ insn_length(0x0000220b);
660 #include "insns/vlsegbu.h"
663 if((insn
.bits
& 0xfff) == 0xa0b)
665 reg_t npc
= pc
+ insn_length(0x00000a0b);
666 #include "insns/vlsegstbu.h"
669 if((insn
.bits
& 0x3fffff) == 0x20b)
671 reg_t npc
= pc
+ insn_length(0x0000020b);
672 #include "insns/vlbu.h"
675 throw trap_illegal_instruction
;
678 reg_t
processor_t::opcode_func_215(insn_t insn
, reg_t pc
)
680 reg_t npc
= pc
+ insn_length(0x00000015);
681 #include "insns/c_fld.h"
685 reg_t
processor_t::opcode_func_21f(insn_t insn
, reg_t pc
)
687 throw trap_illegal_instruction
;
690 reg_t
processor_t::opcode_func_229(insn_t insn
, reg_t pc
)
692 reg_t npc
= pc
+ insn_length(0x00000009);
693 #include "insns/c_ld.h"
697 reg_t
processor_t::opcode_func_233(insn_t insn
, reg_t pc
)
699 if((insn
.bits
& 0x1ffff) == 0x633)
701 reg_t npc
= pc
+ insn_length(0x00000633);
702 #include "insns/div.h"
705 if((insn
.bits
& 0x1ffff) == 0x233)
707 reg_t npc
= pc
+ insn_length(0x00000233);
708 #include "insns/xor.h"
711 throw trap_illegal_instruction
;
714 reg_t
processor_t::opcode_func_23d(insn_t insn
, reg_t pc
)
716 reg_t npc
= pc
+ insn_length(0x0000001d);
717 #include "insns/c_addiw.h"
721 reg_t
processor_t::opcode_func_247(insn_t insn
, reg_t pc
)
723 reg_t npc
= pc
+ insn_length(0x00000047);
724 #include "insns/fmsub_s.h"
728 reg_t
processor_t::opcode_func_251(insn_t insn
, reg_t pc
)
730 reg_t npc
= pc
+ insn_length(0x00000011);
731 #include "insns/c_bne.h"
735 reg_t
processor_t::opcode_func_25b(insn_t insn
, reg_t pc
)
737 throw trap_illegal_instruction
;
740 reg_t
processor_t::opcode_func_265(insn_t insn
, reg_t pc
)
742 reg_t npc
= pc
+ insn_length(0x00000005);
743 #include "insns/c_lwsp.h"
747 reg_t
processor_t::opcode_func_26f(insn_t insn
, reg_t pc
)
749 reg_t npc
= pc
+ insn_length(0x0000006f);
750 #include "insns/jal.h"
754 reg_t
processor_t::opcode_func_279(insn_t insn
, reg_t pc
)
756 if((insn
.bits
& 0x1c1f) == 0x19)
758 reg_t npc
= pc
+ insn_length(0x00000019);
759 #include "insns/c_slli.h"
762 if((insn
.bits
& 0x1c1f) == 0x819)
764 reg_t npc
= pc
+ insn_length(0x00000819);
765 #include "insns/c_srli.h"
768 if((insn
.bits
& 0x1c1f) == 0x1419)
770 reg_t npc
= pc
+ insn_length(0x00001419);
771 #include "insns/c_srai32.h"
774 if((insn
.bits
& 0x1c1f) == 0x1819)
776 reg_t npc
= pc
+ insn_length(0x00001819);
777 #include "insns/c_slliw.h"
780 if((insn
.bits
& 0x1c1f) == 0xc19)
782 reg_t npc
= pc
+ insn_length(0x00000c19);
783 #include "insns/c_srli32.h"
786 if((insn
.bits
& 0x1c1f) == 0x1019)
788 reg_t npc
= pc
+ insn_length(0x00001019);
789 #include "insns/c_srai.h"
792 if((insn
.bits
& 0x1c1f) == 0x419)
794 reg_t npc
= pc
+ insn_length(0x00000419);
795 #include "insns/c_slli32.h"
798 throw trap_illegal_instruction
;
801 reg_t
processor_t::opcode_func_283(insn_t insn
, reg_t pc
)
803 reg_t npc
= pc
+ insn_length(0x00000283);
804 #include "insns/lhu.h"
808 reg_t
processor_t::opcode_func_28d(insn_t insn
, reg_t pc
)
810 reg_t npc
= pc
+ insn_length(0x0000000d);
811 #include "insns/c_sw.h"
815 reg_t
processor_t::opcode_func_297(insn_t insn
, reg_t pc
)
817 throw trap_illegal_instruction
;
820 reg_t
processor_t::opcode_func_2a1(insn_t insn
, reg_t pc
)
822 reg_t npc
= pc
+ insn_length(0x00000001);
823 #include "insns/c_addi.h"
827 reg_t
processor_t::opcode_func_2ab(insn_t insn
, reg_t pc
)
829 throw trap_illegal_instruction
;
832 reg_t
processor_t::opcode_func_2b5(insn_t insn
, reg_t pc
)
834 reg_t npc
= pc
+ insn_length(0x00000015);
835 #include "insns/c_fld.h"
839 reg_t
processor_t::opcode_func_2bf(insn_t insn
, reg_t pc
)
841 throw trap_illegal_instruction
;
844 reg_t
processor_t::opcode_func_2c9(insn_t insn
, reg_t pc
)
846 reg_t npc
= pc
+ insn_length(0x00000009);
847 #include "insns/c_ld.h"
851 reg_t
processor_t::opcode_func_2d3(insn_t insn
, reg_t pc
)
853 if((insn
.bits
& 0x3ff1ff) == 0xc0d3)
855 reg_t npc
= pc
+ insn_length(0x0000c0d3);
856 #include "insns/fcvt_d_l.h"
859 if((insn
.bits
& 0x3ff1ff) == 0xe0d3)
861 reg_t npc
= pc
+ insn_length(0x0000e0d3);
862 #include "insns/fcvt_d_w.h"
865 if((insn
.bits
& 0x3ff1ff) == 0x100d3)
867 reg_t npc
= pc
+ insn_length(0x000100d3);
868 #include "insns/fcvt_d_s.h"
871 if((insn
.bits
& 0x1f1ff) == 0x20d3)
873 reg_t npc
= pc
+ insn_length(0x000020d3);
874 #include "insns/fmul_d.h"
877 if((insn
.bits
& 0x3ff1ff) == 0xf0d3)
879 reg_t npc
= pc
+ insn_length(0x0000f0d3);
880 #include "insns/fcvt_d_wu.h"
883 if((insn
.bits
& 0x3ff1ff) == 0xb0d3)
885 reg_t npc
= pc
+ insn_length(0x0000b0d3);
886 #include "insns/fcvt_wu_d.h"
889 if((insn
.bits
& 0x3ff1ff) == 0xd0d3)
891 reg_t npc
= pc
+ insn_length(0x0000d0d3);
892 #include "insns/fcvt_d_lu.h"
895 if((insn
.bits
& 0x3ff1ff) == 0xa0d3)
897 reg_t npc
= pc
+ insn_length(0x0000a0d3);
898 #include "insns/fcvt_w_d.h"
901 if((insn
.bits
& 0x3ff1ff) == 0x80d3)
903 reg_t npc
= pc
+ insn_length(0x000080d3);
904 #include "insns/fcvt_l_d.h"
907 if((insn
.bits
& 0x1f1ff) == 0xd3)
909 reg_t npc
= pc
+ insn_length(0x000000d3);
910 #include "insns/fadd_d.h"
913 if((insn
.bits
& 0x3ff1ff) == 0x90d3)
915 reg_t npc
= pc
+ insn_length(0x000090d3);
916 #include "insns/fcvt_lu_d.h"
919 if((insn
.bits
& 0x1f1ff) == 0x10d3)
921 reg_t npc
= pc
+ insn_length(0x000010d3);
922 #include "insns/fsub_d.h"
925 if((insn
.bits
& 0x3ff1ff) == 0x40d3)
927 reg_t npc
= pc
+ insn_length(0x000040d3);
928 #include "insns/fsqrt_d.h"
931 if((insn
.bits
& 0x1f1ff) == 0x30d3)
933 reg_t npc
= pc
+ insn_length(0x000030d3);
934 #include "insns/fdiv_d.h"
937 throw trap_illegal_instruction
;
940 reg_t
processor_t::opcode_func_2dd(insn_t insn
, reg_t pc
)
942 reg_t npc
= pc
+ insn_length(0x0000001d);
943 #include "insns/c_addiw.h"
947 reg_t
processor_t::opcode_func_2e7(insn_t insn
, reg_t pc
)
949 reg_t npc
= pc
+ insn_length(0x00000067);
954 reg_t
processor_t::opcode_func_2f1(insn_t insn
, reg_t pc
)
956 reg_t npc
= pc
+ insn_length(0x00000011);
957 #include "insns/c_bne.h"
961 reg_t
processor_t::opcode_func_2fb(insn_t insn
, reg_t pc
)
963 if((insn
.bits
& 0xffffffff) == 0x2fb)
965 reg_t npc
= pc
+ insn_length(0x000002fb);
966 #include "insns/cflush.h"
969 throw trap_illegal_instruction
;
972 reg_t
processor_t::opcode_func_305(insn_t insn
, reg_t pc
)
974 reg_t npc
= pc
+ insn_length(0x00000005);
975 #include "insns/c_lwsp.h"
979 reg_t
processor_t::opcode_func_30f(insn_t insn
, reg_t pc
)
981 throw trap_illegal_instruction
;
984 reg_t
processor_t::opcode_func_319(insn_t insn
, reg_t pc
)
986 if((insn
.bits
& 0x1c1f) == 0x19)
988 reg_t npc
= pc
+ insn_length(0x00000019);
989 #include "insns/c_slli.h"
992 if((insn
.bits
& 0x1c1f) == 0x819)
994 reg_t npc
= pc
+ insn_length(0x00000819);
995 #include "insns/c_srli.h"
998 if((insn
.bits
& 0x1c1f) == 0x1419)
1000 reg_t npc
= pc
+ insn_length(0x00001419);
1001 #include "insns/c_srai32.h"
1004 if((insn
.bits
& 0x1c1f) == 0x1819)
1006 reg_t npc
= pc
+ insn_length(0x00001819);
1007 #include "insns/c_slliw.h"
1010 if((insn
.bits
& 0x1c1f) == 0xc19)
1012 reg_t npc
= pc
+ insn_length(0x00000c19);
1013 #include "insns/c_srli32.h"
1016 if((insn
.bits
& 0x1c1f) == 0x1019)
1018 reg_t npc
= pc
+ insn_length(0x00001019);
1019 #include "insns/c_srai.h"
1022 if((insn
.bits
& 0x1c1f) == 0x419)
1024 reg_t npc
= pc
+ insn_length(0x00000419);
1025 #include "insns/c_slli32.h"
1028 throw trap_illegal_instruction
;
1031 reg_t
processor_t::opcode_func_323(insn_t insn
, reg_t pc
)
1033 throw trap_illegal_instruction
;
1036 reg_t
processor_t::opcode_func_32d(insn_t insn
, reg_t pc
)
1038 reg_t npc
= pc
+ insn_length(0x0000000d);
1039 #include "insns/c_sw.h"
1043 reg_t
processor_t::opcode_func_337(insn_t insn
, reg_t pc
)
1045 reg_t npc
= pc
+ insn_length(0x00000037);
1046 #include "insns/lui.h"
1050 reg_t
processor_t::opcode_func_341(insn_t insn
, reg_t pc
)
1052 reg_t npc
= pc
+ insn_length(0x00000001);
1053 #include "insns/c_addi.h"
1057 reg_t
processor_t::opcode_func_34b(insn_t insn
, reg_t pc
)
1059 throw trap_illegal_instruction
;
1062 reg_t
processor_t::opcode_func_355(insn_t insn
, reg_t pc
)
1064 reg_t npc
= pc
+ insn_length(0x00000015);
1065 #include "insns/c_fld.h"
1069 reg_t
processor_t::opcode_func_35f(insn_t insn
, reg_t pc
)
1071 throw trap_illegal_instruction
;
1074 reg_t
processor_t::opcode_func_369(insn_t insn
, reg_t pc
)
1076 reg_t npc
= pc
+ insn_length(0x00000009);
1077 #include "insns/c_ld.h"
1081 reg_t
processor_t::opcode_func_373(insn_t insn
, reg_t pc
)
1083 throw trap_illegal_instruction
;
1086 reg_t
processor_t::opcode_func_37d(insn_t insn
, reg_t pc
)
1088 reg_t npc
= pc
+ insn_length(0x0000001d);
1089 #include "insns/c_addiw.h"
1093 reg_t
processor_t::opcode_func_387(insn_t insn
, reg_t pc
)
1095 throw trap_illegal_instruction
;
1098 reg_t
processor_t::opcode_func_391(insn_t insn
, reg_t pc
)
1100 reg_t npc
= pc
+ insn_length(0x00000011);
1101 #include "insns/c_bne.h"
1105 reg_t
processor_t::opcode_func_39b(insn_t insn
, reg_t pc
)
1107 throw trap_illegal_instruction
;
1110 reg_t
processor_t::opcode_func_3a5(insn_t insn
, reg_t pc
)
1112 reg_t npc
= pc
+ insn_length(0x00000005);
1113 #include "insns/c_lwsp.h"
1117 reg_t
processor_t::opcode_func_3af(insn_t insn
, reg_t pc
)
1119 reg_t npc
= pc
+ insn_length(0x000003af);
1120 #include "insns/fence_g_cv.h"
1124 reg_t
processor_t::opcode_func_3b9(insn_t insn
, reg_t pc
)
1126 if((insn
.bits
& 0x1c1f) == 0x19)
1128 reg_t npc
= pc
+ insn_length(0x00000019);
1129 #include "insns/c_slli.h"
1132 if((insn
.bits
& 0x1c1f) == 0x819)
1134 reg_t npc
= pc
+ insn_length(0x00000819);
1135 #include "insns/c_srli.h"
1138 if((insn
.bits
& 0x1c1f) == 0x1419)
1140 reg_t npc
= pc
+ insn_length(0x00001419);
1141 #include "insns/c_srai32.h"
1144 if((insn
.bits
& 0x1c1f) == 0x1819)
1146 reg_t npc
= pc
+ insn_length(0x00001819);
1147 #include "insns/c_slliw.h"
1150 if((insn
.bits
& 0x1c1f) == 0xc19)
1152 reg_t npc
= pc
+ insn_length(0x00000c19);
1153 #include "insns/c_srli32.h"
1156 if((insn
.bits
& 0x1c1f) == 0x1019)
1158 reg_t npc
= pc
+ insn_length(0x00001019);
1159 #include "insns/c_srai.h"
1162 if((insn
.bits
& 0x1c1f) == 0x419)
1164 reg_t npc
= pc
+ insn_length(0x00000419);
1165 #include "insns/c_slli32.h"
1168 throw trap_illegal_instruction
;
1171 reg_t
processor_t::opcode_func_3c3(insn_t insn
, reg_t pc
)
1173 throw trap_illegal_instruction
;
1176 reg_t
processor_t::opcode_func_3cd(insn_t insn
, reg_t pc
)
1178 reg_t npc
= pc
+ insn_length(0x0000000d);
1179 #include "insns/c_sw.h"
1183 reg_t
processor_t::opcode_func_3d7(insn_t insn
, reg_t pc
)
1185 throw trap_illegal_instruction
;
1188 reg_t
processor_t::opcode_func_3e1(insn_t insn
, reg_t pc
)
1190 reg_t npc
= pc
+ insn_length(0x00000001);
1191 #include "insns/c_addi.h"
1195 reg_t
processor_t::opcode_func_3eb(insn_t insn
, reg_t pc
)
1197 throw trap_illegal_instruction
;
1200 reg_t
processor_t::opcode_func_3f5(insn_t insn
, reg_t pc
)
1202 reg_t npc
= pc
+ insn_length(0x00000015);
1203 #include "insns/c_fld.h"
1207 reg_t
processor_t::opcode_func_3ff(insn_t insn
, reg_t pc
)
1209 throw trap_illegal_instruction
;