diff options
Diffstat (limited to 'riscv/execute.h')
-rw-r--r-- | riscv/execute.h | 635 |
1 files changed, 635 insertions, 0 deletions
diff --git a/riscv/execute.h b/riscv/execute.h new file mode 100644 index 0000000..66ce0e0 --- /dev/null +++ b/riscv/execute.h @@ -0,0 +1,635 @@ +/* Automatically generated by parse-opcodes */ +switch(opcode) +{ + case 0: + { + switch(funct) + { + case 0: + { + #include "insns/unimp.h" + } + break; + case 1: + { + #include "insns/sll.h" + } + break; + case 2: + { + #include "insns/srl.h" + } + break; + case 3: + { + #include "insns/sra.h" + } + break; + case 5: + { + #include "insns/sllv.h" + } + break; + case 6: + { + #include "insns/srlv.h" + } + break; + case 7: + { + #include "insns/srav.h" + } + break; + case 9: + { + #include "insns/jalr.h" + } + break; + case 10: + { + #include "insns/movz.h" + } + break; + case 11: + { + #include "insns/movn.h" + } + break; + case 12: + { + #include "insns/syscall.h" + } + break; + case 13: + { + #include "insns/break.h" + } + break; + case 14: + { + #include "insns/rdhwr.h" + } + break; + case 15: + { + #include "insns/sync.h" + } + break; + case 17: + { + #include "insns/dsll.h" + } + break; + case 18: + { + #include "insns/dsrl.h" + } + break; + case 19: + { + #include "insns/dsra.h" + } + break; + case 21: + { + #include "insns/dsllv.h" + } + break; + case 22: + { + #include "insns/dsrlv.h" + } + break; + case 23: + { + #include "insns/dsrav.h" + } + break; + case 25: + { + #include "insns/dsll32.h" + } + break; + case 26: + { + #include "insns/dsrl32.h" + } + break; + case 27: + { + #include "insns/dsra32.h" + } + break; + case 32: + { + #include "insns/add.h" + } + break; + case 33: + { + #include "insns/sub.h" + } + break; + case 34: + { + #include "insns/slt.h" + } + break; + case 35: + { + #include "insns/sltu.h" + } + break; + case 36: + { + #include "insns/and.h" + } + break; + case 37: + { + #include "insns/or.h" + } + break; + case 38: + { + #include "insns/xor.h" + } + break; + case 39: + { + #include "insns/nor.h" + } + break; + case 40: + { + #include "insns/mul.h" + } + break; + case 48: + { + #include "insns/dadd.h" + } + break; + case 49: + { + #include "insns/dsub.h" + } + break; + case 56: + { + #include "insns/dmul.h" + } + break; + default: + { + #include "insns/unimp.h" + } + break; + } + } + break; + case 1: + { + #include "insns/synci.h" + } + break; + case 2: + { + #include "insns/j.h" + } + break; + case 3: + { + #include "insns/jal.h" + } + break; + case 4: + { + #include "insns/beq.h" + } + break; + case 5: + { + #include "insns/bne.h" + } + break; + case 8: + { + #include "insns/addi.h" + } + break; + case 10: + { + #include "insns/slti.h" + } + break; + case 11: + { + #include "insns/sltiu.h" + } + break; + case 12: + { + #include "insns/andi.h" + } + break; + case 13: + { + #include "insns/ori.h" + } + break; + case 14: + { + #include "insns/xori.h" + } + break; + case 15: + { + #include "insns/lui.h" + } + break; + case 16: + { + switch(funct) + { + case 0: + { + #include "insns/ei.h" + } + break; + case 1: + { + #include "insns/di.h" + } + break; + case 2: + { + #include "insns/eret.h" + } + break; + case 24: + { + #include "insns/mfc0.h" + } + break; + case 25: + { + #include "insns/dmfc0.h" + } + break; + case 28: + { + #include "insns/mtc0.h" + } + break; + case 29: + { + #include "insns/dmtc0.h" + } + break; + default: + { + #include "insns/unimp.h" + } + break; + } + } + break; + case 17: + { + switch(funct) + { + case 0: + { + #include "insns/add_fmt.h" + } + break; + case 1: + { + #include "insns/sub_fmt.h" + } + break; + case 2: + { + #include "insns/mul_fmt.h" + } + break; + case 3: + { + #include "insns/div_fmt.h" + } + break; + case 4: + { + #include "insns/sqrt_fmt.h" + } + break; + case 5: + { + #include "insns/abs_fmt.h" + } + break; + case 6: + { + #include "insns/mov_fmt.h" + } + break; + case 7: + { + #include "insns/neg_fmt.h" + } + break; + case 8: + { + #include "insns/round_l_fmt.h" + } + break; + case 9: + { + #include "insns/trunc_l_fmt.h" + } + break; + case 10: + { + #include "insns/ceil_l_fmt.h" + } + break; + case 11: + { + #include "insns/floor_l_fmt.h" + } + break; + case 12: + { + #include "insns/round_w_fmt.h" + } + break; + case 13: + { + #include "insns/trunc_w_fmt.h" + } + break; + case 14: + { + #include "insns/ceil_w_fmt.h" + } + break; + case 15: + { + #include "insns/floor_w_fmt.h" + } + break; + case 24: + { + #include "insns/mfc1.h" + } + break; + case 25: + { + #include "insns/dmfc1.h" + } + break; + case 26: + { + #include "insns/cfc1.h" + } + break; + case 27: + { + #include "insns/mfhc1.h" + } + break; + case 28: + { + #include "insns/mtc1.h" + } + break; + case 29: + { + #include "insns/dmtc1.h" + } + break; + case 30: + { + #include "insns/ctc1.h" + } + break; + case 31: + { + #include "insns/mthc1.h" + } + break; + case 32: + { + #include "insns/cvt_s_fmt.h" + } + break; + case 33: + { + #include "insns/cvt_d_fmt.h" + } + break; + case 36: + { + #include "insns/cvt_w_fmt.h" + } + break; + case 37: + { + #include "insns/cvt_l_fmt.h" + } + break; + case 48: + { + #include "insns/c_f_fmt.h" + } + break; + case 49: + { + #include "insns/c_un_fmt.h" + } + break; + case 50: + { + #include "insns/c_eq_fmt.h" + } + break; + case 51: + { + #include "insns/c_ueq_fmt.h" + } + break; + case 52: + { + #include "insns/c_olt_fmt.h" + } + break; + case 53: + { + #include "insns/c_ult_fmt.h" + } + break; + case 54: + { + #include "insns/c_ole_fmt.h" + } + break; + case 55: + { + #include "insns/c_ule_fmt.h" + } + break; + case 56: + { + #include "insns/c_sf_fmt.h" + } + break; + case 57: + { + #include "insns/c_ngle_fmt.h" + } + break; + case 58: + { + #include "insns/c_seq_fmt.h" + } + break; + case 59: + { + #include "insns/c_ngl_fmt.h" + } + break; + case 60: + { + #include "insns/c_lt_fmt.h" + } + break; + case 61: + { + #include "insns/c_nge_fmt.h" + } + break; + case 62: + { + #include "insns/c_le_fmt.h" + } + break; + case 63: + { + #include "insns/c_ngt_fmt.h" + } + break; + default: + { + #include "insns/unimp.h" + } + break; + } + } + break; + case 20: + { + #include "insns/blt.h" + } + break; + case 21: + { + #include "insns/bltu.h" + } + break; + case 22: + { + #include "insns/ble.h" + } + break; + case 23: + { + #include "insns/bleu.h" + } + break; + case 24: + { + #include "insns/daddi.h" + } + break; + case 32: + { + #include "insns/lb.h" + } + break; + case 33: + { + #include "insns/lh.h" + } + break; + case 35: + { + #include "insns/lw.h" + } + break; + case 36: + { + #include "insns/lbu.h" + } + break; + case 37: + { + #include "insns/lhu.h" + } + break; + case 39: + { + #include "insns/lwu.h" + } + break; + case 40: + { + #include "insns/sb.h" + } + break; + case 41: + { + #include "insns/sh.h" + } + break; + case 43: + { + #include "insns/sw.h" + } + break; + case 49: + { + #include "insns/l_s.h" + } + break; + case 53: + { + #include "insns/l_d.h" + } + break; + case 55: + { + #include "insns/ld.h" + } + break; + case 57: + { + #include "insns/s_s.h" + } + break; + case 61: + { + #include "insns/s_d.h" + } + break; + case 63: + { + #include "insns/sd.h" + } + break; + default: + { + #include "insns/unimp.h" + } + break; + } |