Sync encoding in opcodes
authorStephen Twigg <sdtwigg@eecs.berkeley.edu>
Thu, 3 Apr 2014 23:52:48 +0000 (16:52 -0700)
committerStephen Twigg <sdtwigg@eecs.berkeley.edu>
Thu, 3 Apr 2014 23:52:48 +0000 (16:52 -0700)
hwacha/opcodes_hwacha_ut.h
riscv/encoding.h

index f0f01dddcdc5e3ee17b4522c69ec5b99eafb930b..6a8c326186c4bd585f6059e8e1f9848bcd8f1f08 100644 (file)
-DECLARE_INSN(ut_movn, 0x2007077, 0xfe00707f)
-DECLARE_INSN(ut_movz, 0x7077, 0xfe00707f)
-DECLARE_INSN(ut_fmovn, 0x6007077, 0xfe00707f)
-DECLARE_INSN(ut_fmovz, 0x4007077, 0xfe00707f)
-DECLARE_INSN(ut_stop, 0x5077, 0xffffffff)
-DECLARE_INSN(ut_utidx, 0x6077, 0xfffff07f)
-DECLARE_INSN(ut_fmv_s_x, 0xf0000053, 0xfff0707f)
-DECLARE_INSN(ut_amoxor_w, 0x2000202f, 0xf800707f)
-DECLARE_INSN(ut_remuw, 0x200703b, 0xfe00707f)
-DECLARE_INSN(ut_fmin_d, 0xc2000053, 0xfe00707f)
-DECLARE_INSN(ut_amomax_d, 0xa000302f, 0xf800707f)
-DECLARE_INSN(ut_fmin_s, 0xc0000053, 0xfe00707f)
-DECLARE_INSN(ut_slliw, 0x101b, 0xfe00707f)
-DECLARE_INSN(ut_lb, 0x3, 0x707f)
-DECLARE_INSN(ut_fcvt_s_wu, 0x78000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_d_l, 0x62000053, 0xfff0007f)
-DECLARE_INSN(ut_lh, 0x1003, 0x707f)
-DECLARE_INSN(ut_fcvt_d_w, 0x72000053, 0xfff0007f)
-DECLARE_INSN(ut_lw, 0x2003, 0x707f)
 DECLARE_INSN(ut_add, 0x33, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_d_s, 0x82000053, 0xfff0007f)
-DECLARE_INSN(ut_fmax_d, 0xca000053, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_s_d, 0x88000053, 0xfff0007f)
-DECLARE_INSN(ut_fadd_d, 0x2000053, 0xfe00007f)
-DECLARE_INSN(ut_sltiu, 0x3013, 0x707f)
-DECLARE_INSN(ut_fcvt_s_w, 0x70000053, 0xfff0007f)
-DECLARE_INSN(ut_mul, 0x2000033, 0xfe00707f)
-DECLARE_INSN(ut_amominu_d, 0xc000302f, 0xf800707f)
-DECLARE_INSN(ut_srli, 0x5013, 0xfc00707f)
-DECLARE_INSN(ut_amominu_w, 0xc000202f, 0xf800707f)
-DECLARE_INSN(ut_divuw, 0x200503b, 0xfe00707f)
-DECLARE_INSN(ut_mulw, 0x200003b, 0xfe00707f)
-DECLARE_INSN(ut_srlw, 0x503b, 0xfe00707f)
-DECLARE_INSN(ut_div, 0x2004033, 0xfe00707f)
-DECLARE_INSN(ut_fdiv_d, 0x1a000053, 0xfe00007f)
-DECLARE_INSN(ut_fence, 0xf, 0x707f)
-DECLARE_INSN(ut_fnmsub_s, 0x4b, 0x600007f)
-DECLARE_INSN(ut_fcvt_l_s, 0x40000053, 0xfff0007f)
-DECLARE_INSN(ut_fle_s, 0xb8000053, 0xfe00707f)
-DECLARE_INSN(ut_fdiv_s, 0x18000053, 0xfe00007f)
-DECLARE_INSN(ut_fle_d, 0xba000053, 0xfe00707f)
-DECLARE_INSN(ut_fnmsub_d, 0x200004b, 0x600007f)
-DECLARE_INSN(ut_addw, 0x3b, 0xfe00707f)
-DECLARE_INSN(ut_sll, 0x1033, 0xfe00707f)
-DECLARE_INSN(ut_xor, 0x4033, 0xfe00707f)
-DECLARE_INSN(ut_sub, 0x40000033, 0xfe00707f)
-DECLARE_INSN(ut_rem, 0x2006033, 0xfe00707f)
-DECLARE_INSN(ut_srliw, 0x501b, 0xfe00707f)
-DECLARE_INSN(ut_lui, 0x37, 0x7f)
-DECLARE_INSN(ut_fcvt_s_lu, 0x68000053, 0xfff0007f)
 DECLARE_INSN(ut_addi, 0x13, 0x707f)
-DECLARE_INSN(ut_mulh, 0x2001033, 0xfe00707f)
-DECLARE_INSN(ut_fmul_s, 0x10000053, 0xfe00007f)
-DECLARE_INSN(ut_srai, 0x40005013, 0xfc00707f)
-DECLARE_INSN(ut_amoand_d, 0x6000302f, 0xf800707f)
-DECLARE_INSN(ut_flt_d, 0xb2000053, 0xfe00707f)
-DECLARE_INSN(ut_sraw, 0x4000503b, 0xfe00707f)
-DECLARE_INSN(ut_fmul_d, 0x12000053, 0xfe00007f)
-DECLARE_INSN(ut_ld, 0x3003, 0x707f)
-DECLARE_INSN(ut_ori, 0x6013, 0x707f)
-DECLARE_INSN(ut_flt_s, 0xb0000053, 0xfe00707f)
 DECLARE_INSN(ut_addiw, 0x1b, 0x707f)
+DECLARE_INSN(ut_addw, 0x3b, 0xfe00707f)
+DECLARE_INSN(ut_amoadd_d, 0x302f, 0xf800707f)
+DECLARE_INSN(ut_amoadd_w, 0x202f, 0xf800707f)
+DECLARE_INSN(ut_amoand_d, 0x6000302f, 0xf800707f)
 DECLARE_INSN(ut_amoand_w, 0x6000202f, 0xf800707f)
-DECLARE_INSN(ut_feq_s, 0xa8000053, 0xfe00707f)
-DECLARE_INSN(ut_fsgnjx_d, 0x3a000053, 0xfe00707f)
-DECLARE_INSN(ut_sra, 0x40005033, 0xfe00707f)
-DECLARE_INSN(ut_sraiw, 0x4000501b, 0xfe00707f)
-DECLARE_INSN(ut_srl, 0x5033, 0xfe00707f)
-DECLARE_INSN(ut_fsub_d, 0xa000053, 0xfe00007f)
-DECLARE_INSN(ut_fsgnjx_s, 0x38000053, 0xfe00707f)
-DECLARE_INSN(ut_feq_d, 0xaa000053, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_d_wu, 0x7a000053, 0xfff0007f)
-DECLARE_INSN(ut_or, 0x6033, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_wu_d, 0x5a000053, 0xfff0007f)
-DECLARE_INSN(ut_subw, 0x4000003b, 0xfe00707f)
-DECLARE_INSN(ut_fmax_s, 0xc8000053, 0xfe00707f)
+DECLARE_INSN(ut_amomax_d, 0xa000302f, 0xf800707f)
 DECLARE_INSN(ut_amomaxu_d, 0xe000302f, 0xf800707f)
-DECLARE_INSN(ut_xori, 0x4013, 0x707f)
-DECLARE_INSN(ut_amoxor_d, 0x2000302f, 0xf800707f)
 DECLARE_INSN(ut_amomaxu_w, 0xe000202f, 0xf800707f)
-DECLARE_INSN(ut_fcvt_wu_s, 0x58000053, 0xfff0007f)
-DECLARE_INSN(ut_andi, 0x7013, 0x707f)
-DECLARE_INSN(ut_fmv_x_s, 0xe0000053, 0xfff0707f)
-DECLARE_INSN(ut_fsgnjn_d, 0x32000053, 0xfe00707f)
-DECLARE_INSN(ut_fnmadd_s, 0x4f, 0x600007f)
-DECLARE_INSN(ut_lwu, 0x6003, 0x707f)
-DECLARE_INSN(ut_fmv_x_d, 0xe2000053, 0xfff0707f)
-DECLARE_INSN(ut_fnmadd_d, 0x200004f, 0x600007f)
-DECLARE_INSN(ut_amoadd_d, 0x302f, 0xf800707f)
-DECLARE_INSN(ut_fcvt_w_s, 0x50000053, 0xfff0007f)
-DECLARE_INSN(ut_mulhsu, 0x2002033, 0xfe00707f)
-DECLARE_INSN(ut_amoadd_w, 0x202f, 0xf800707f)
-DECLARE_INSN(ut_fcvt_d_lu, 0x6a000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_w_d, 0x52000053, 0xfff0007f)
-DECLARE_INSN(ut_slt, 0x2033, 0xfe00707f)
-DECLARE_INSN(ut_sllw, 0x103b, 0xfe00707f)
+DECLARE_INSN(ut_amomax_w, 0xa000202f, 0xf800707f)
+DECLARE_INSN(ut_amomin_d, 0x8000302f, 0xf800707f)
+DECLARE_INSN(ut_amominu_d, 0xc000302f, 0xf800707f)
+DECLARE_INSN(ut_amominu_w, 0xc000202f, 0xf800707f)
+DECLARE_INSN(ut_amomin_w, 0x8000202f, 0xf800707f)
 DECLARE_INSN(ut_amoor_d, 0x4000302f, 0xf800707f)
-DECLARE_INSN(ut_slti, 0x2013, 0x707f)
-DECLARE_INSN(ut_remu, 0x2007033, 0xfe00707f)
-DECLARE_INSN(ut_flw, 0x2007, 0x707f)
-DECLARE_INSN(ut_remw, 0x200603b, 0xfe00707f)
-DECLARE_INSN(ut_sltu, 0x3033, 0xfe00707f)
-DECLARE_INSN(ut_slli, 0x1013, 0xfc00707f)
 DECLARE_INSN(ut_amoor_w, 0x4000202f, 0xf800707f)
-DECLARE_INSN(ut_fld, 0x3007, 0x707f)
-DECLARE_INSN(ut_fsub_s, 0x8000053, 0xfe00007f)
+DECLARE_INSN(ut_amoswap_d, 0x800302f, 0xf800707f)
+DECLARE_INSN(ut_amoswap_w, 0x800202f, 0xf800707f)
+DECLARE_INSN(ut_amoxor_d, 0x2000302f, 0xf800707f)
+DECLARE_INSN(ut_amoxor_w, 0x2000202f, 0xf800707f)
 DECLARE_INSN(ut_and, 0x7033, 0xfe00707f)
-DECLARE_INSN(ut_fmv_d_x, 0xf2000053, 0xfff0707f)
-DECLARE_INSN(ut_lbu, 0x4003, 0x707f)
-DECLARE_INSN(ut_fsgnj_s, 0x28000053, 0xfe00707f)
-DECLARE_INSN(ut_amomax_w, 0xa000202f, 0xf800707f)
-DECLARE_INSN(ut_fsgnj_d, 0x2a000053, 0xfe00707f)
-DECLARE_INSN(ut_mulhu, 0x2003033, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_l_d, 0x42000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_lu_s, 0x48000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_s_l, 0x60000053, 0xfff0007f)
+DECLARE_INSN(ut_andi, 0x7013, 0x707f)
 DECLARE_INSN(ut_auipc, 0x17, 0x7f)
-DECLARE_INSN(ut_fcvt_lu_d, 0x4a000053, 0xfff0007f)
-DECLARE_INSN(ut_fmadd_s, 0x43, 0x600007f)
-DECLARE_INSN(ut_fsqrt_s, 0x20000053, 0xfff0007f)
-DECLARE_INSN(ut_amomin_w, 0x8000202f, 0xf800707f)
-DECLARE_INSN(ut_fsgnjn_s, 0x30000053, 0xfe00707f)
-DECLARE_INSN(ut_amoswap_d, 0x800302f, 0xf800707f)
-DECLARE_INSN(ut_fsqrt_d, 0x22000053, 0xfff0007f)
-DECLARE_INSN(ut_fmadd_d, 0x2000043, 0x600007f)
-DECLARE_INSN(ut_divw, 0x200403b, 0xfe00707f)
-DECLARE_INSN(ut_amomin_d, 0x8000302f, 0xf800707f)
+DECLARE_INSN(ut_div, 0x2004033, 0xfe00707f)
 DECLARE_INSN(ut_divu, 0x2005033, 0xfe00707f)
-DECLARE_INSN(ut_amoswap_w, 0x800202f, 0xf800707f)
+DECLARE_INSN(ut_divuw, 0x200503b, 0xfe00707f)
+DECLARE_INSN(ut_divw, 0x200403b, 0xfe00707f)
+DECLARE_INSN(ut_fadd_d, 0x2000053, 0xfe00007f)
+DECLARE_INSN(ut_fadd_h, 0x4000053, 0xfe00007f)
 DECLARE_INSN(ut_fadd_s, 0x53, 0xfe00007f)
-DECLARE_INSN(ut_fsd, 0x3027, 0x707f)
-DECLARE_INSN(ut_sw, 0x2023, 0x707f)
-DECLARE_INSN(ut_fmsub_s, 0x47, 0x600007f)
-DECLARE_INSN(ut_lhu, 0x5003, 0x707f)
-DECLARE_INSN(ut_sh, 0x1023, 0x707f)
-DECLARE_INSN(ut_fsw, 0x2027, 0x707f)
-DECLARE_INSN(ut_sb, 0x23, 0x707f)
-DECLARE_INSN(ut_fmsub_d, 0x2000047, 0x600007f)
-DECLARE_INSN(ut_sd, 0x3023, 0x707f)
-
+DECLARE_INSN(ut_fclass_d, 0xe2001053, 0xfff0707f)
+DECLARE_INSN(ut_fclass_s, 0xe0001053, 0xfff0707f)
+DECLARE_INSN(ut_fcvt_d_h, 0x8c000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_d_l, 0xd2200053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_d_lu, 0xd2300053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_d_s, 0x42000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_d_w, 0xd2000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_d_wu, 0xd2100053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_h_d, 0x92000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_h_l, 0x64000053, 0xfff0007f)
 DECLARE_INSN(ut_fcvt_h_lu, 0x6c000053, 0xfff0007f)
-DECLARE_INSN(ut_fmin_h, 0xc4000053, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_wu_h, 0x5c000053, 0xfff0007f)
-DECLARE_INSN(ut_fdiv_h, 0x1c000053, 0xfe00007f)
-DECLARE_INSN(ut_fcvt_h_wu, 0x7c000053, 0xfff0007f)
-DECLARE_INSN(ut_fsgnj_h, 0x2c000053, 0xfe00707f)
-DECLARE_INSN(ut_fnmsub_h, 0x400004b, 0x600007f)
-DECLARE_INSN(ut_fle_h, 0xbc000053, 0xfe00707f)
-DECLARE_INSN(ut_fcvt_l_h, 0x44000053, 0xfff0007f)
-DECLARE_INSN(ut_fnmadd_h, 0x400004f, 0x600007f)
 DECLARE_INSN(ut_fcvt_h_s, 0x90000053, 0xfff0007f)
 DECLARE_INSN(ut_fcvt_h_w, 0x74000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_d_h, 0x8c000053, 0xfff0007f)
-DECLARE_INSN(ut_fmax_h, 0xcc000053, 0xfe00707f)
+DECLARE_INSN(ut_fcvt_h_wu, 0x7c000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_l_d, 0xc2200053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_l_h, 0x44000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_l_s, 0xc0200053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_lu_d, 0xc2300053, 0xfff0007f)
 DECLARE_INSN(ut_fcvt_lu_h, 0x4c000053, 0xfff0007f)
-DECLARE_INSN(ut_fcvt_h_l, 0x64000053, 0xfff0007f)
-DECLARE_INSN(ut_fmv_x_h, 0xe4000053, 0xfff0707f)
-DECLARE_INSN(ut_fcvt_h_d, 0x92000053, 0xfff0007f)
-DECLARE_INSN(ut_flt_h, 0xb4000053, 0xfe00707f)
-DECLARE_INSN(ut_fadd_h, 0x4000053, 0xfe00007f)
+DECLARE_INSN(ut_fcvt_lu_s, 0xc0300053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_s_d, 0x40100053, 0xfff0007f)
 DECLARE_INSN(ut_fcvt_s_h, 0x84000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_s_l, 0xd0200053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_s_lu, 0xd0300053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_s_w, 0xd0000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_s_wu, 0xd0100053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_w_d, 0xc2000053, 0xfff0007f)
 DECLARE_INSN(ut_fcvt_w_h, 0x54000053, 0xfff0007f)
-DECLARE_INSN(ut_fmul_h, 0x14000053, 0xfe00007f)
-DECLARE_INSN(ut_fmadd_h, 0x4000043, 0x600007f)
-DECLARE_INSN(ut_fsqrt_h, 0x24000053, 0xfff0007f)
-DECLARE_INSN(ut_fsgnjn_h, 0x34000053, 0xfe00707f)
-DECLARE_INSN(ut_fsub_h, 0xc000053, 0xfe00007f)
-DECLARE_INSN(ut_fsh, 0x1027, 0x707f)
-DECLARE_INSN(ut_fsgnjx_h, 0x3c000053, 0xfe00707f)
+DECLARE_INSN(ut_fcvt_w_s, 0xc0000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_wu_d, 0xc2100053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_wu_h, 0x5c000053, 0xfff0007f)
+DECLARE_INSN(ut_fcvt_wu_s, 0xc0100053, 0xfff0007f)
+DECLARE_INSN(ut_fdiv_d, 0x1a000053, 0xfe00007f)
+DECLARE_INSN(ut_fdiv_h, 0x1c000053, 0xfe00007f)
+DECLARE_INSN(ut_fdiv_s, 0x18000053, 0xfe00007f)
+DECLARE_INSN(ut_fence, 0xf, 0x707f)
+DECLARE_INSN(ut_feq_d, 0xa2002053, 0xfe00707f)
+DECLARE_INSN(ut_feq_h, 0xac000053, 0xfe00707f)
+DECLARE_INSN(ut_feq_s, 0xa0002053, 0xfe00707f)
+DECLARE_INSN(ut_fld, 0x3007, 0x707f)
+DECLARE_INSN(ut_fle_d, 0xa2000053, 0xfe00707f)
+DECLARE_INSN(ut_fle_h, 0xbc000053, 0xfe00707f)
+DECLARE_INSN(ut_fle_s, 0xa0000053, 0xfe00707f)
 DECLARE_INSN(ut_flh, 0x1007, 0x707f)
+DECLARE_INSN(ut_flt_d, 0xa2001053, 0xfe00707f)
+DECLARE_INSN(ut_flt_h, 0xb4000053, 0xfe00707f)
+DECLARE_INSN(ut_flt_s, 0xa0001053, 0xfe00707f)
+DECLARE_INSN(ut_flw, 0x2007, 0x707f)
+DECLARE_INSN(ut_fmadd_d, 0x2000043, 0x600007f)
+DECLARE_INSN(ut_fmadd_h, 0x4000043, 0x600007f)
+DECLARE_INSN(ut_fmadd_s, 0x43, 0x600007f)
+DECLARE_INSN(ut_fmax_d, 0x2a001053, 0xfe00707f)
+DECLARE_INSN(ut_fmax_h, 0xcc000053, 0xfe00707f)
+DECLARE_INSN(ut_fmax_s, 0x28001053, 0xfe00707f)
+DECLARE_INSN(ut_fmin_d, 0x2a000053, 0xfe00707f)
+DECLARE_INSN(ut_fmin_h, 0xc4000053, 0xfe00707f)
+DECLARE_INSN(ut_fmin_s, 0x28000053, 0xfe00707f)
+DECLARE_INSN(ut_fmovn, 0x6007077, 0xfe00707f)
+DECLARE_INSN(ut_fmovz, 0x4007077, 0xfe00707f)
+DECLARE_INSN(ut_fmsub_d, 0x2000047, 0x600007f)
 DECLARE_INSN(ut_fmsub_h, 0x4000047, 0x600007f)
-DECLARE_INSN(ut_feq_h, 0xac000053, 0xfe00707f)
+DECLARE_INSN(ut_fmsub_s, 0x47, 0x600007f)
+DECLARE_INSN(ut_fmul_d, 0x12000053, 0xfe00007f)
+DECLARE_INSN(ut_fmul_h, 0x14000053, 0xfe00007f)
+DECLARE_INSN(ut_fmul_s, 0x10000053, 0xfe00007f)
+DECLARE_INSN(ut_fmv_d_x, 0xf2000053, 0xfff0707f)
 DECLARE_INSN(ut_fmv_h_x, 0xf4000053, 0xfff0707f)
+DECLARE_INSN(ut_fmv_s_x, 0xf0000053, 0xfff0707f)
+DECLARE_INSN(ut_fmv_x_d, 0xe2000053, 0xfff0707f)
+DECLARE_INSN(ut_fmv_x_h, 0xe4000053, 0xfff0707f)
+DECLARE_INSN(ut_fmv_x_s, 0xe0000053, 0xfff0707f)
+DECLARE_INSN(ut_fnmadd_d, 0x200004f, 0x600007f)
+DECLARE_INSN(ut_fnmadd_h, 0x400004f, 0x600007f)
+DECLARE_INSN(ut_fnmadd_s, 0x4f, 0x600007f)
+DECLARE_INSN(ut_fnmsub_d, 0x200004b, 0x600007f)
+DECLARE_INSN(ut_fnmsub_h, 0x400004b, 0x600007f)
+DECLARE_INSN(ut_fnmsub_s, 0x4b, 0x600007f)
+DECLARE_INSN(ut_fsd, 0x3027, 0x707f)
+DECLARE_INSN(ut_fsgnj_d, 0x22000053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnj_h, 0x2c000053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjn_d, 0x22001053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjn_h, 0x34000053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjn_s, 0x20001053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnj_s, 0x20000053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjx_d, 0x22002053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjx_h, 0x3c000053, 0xfe00707f)
+DECLARE_INSN(ut_fsgnjx_s, 0x20002053, 0xfe00707f)
+DECLARE_INSN(ut_fsh, 0x1027, 0x707f)
+DECLARE_INSN(ut_fsqrt_d, 0x5a000053, 0xfff0007f)
+DECLARE_INSN(ut_fsqrt_h, 0x24000053, 0xfff0007f)
+DECLARE_INSN(ut_fsqrt_s, 0x58000053, 0xfff0007f)
+DECLARE_INSN(ut_fsub_d, 0xa000053, 0xfe00007f)
+DECLARE_INSN(ut_fsub_h, 0xc000053, 0xfe00007f)
+DECLARE_INSN(ut_fsub_s, 0x8000053, 0xfe00007f)
+DECLARE_INSN(ut_fsw, 0x2027, 0x707f)
+DECLARE_INSN(ut_lb, 0x3, 0x707f)
+DECLARE_INSN(ut_lbu, 0x4003, 0x707f)
+DECLARE_INSN(ut_ld, 0x3003, 0x707f)
+DECLARE_INSN(ut_lh, 0x1003, 0x707f)
+DECLARE_INSN(ut_lhu, 0x5003, 0x707f)
+DECLARE_INSN(ut_lui, 0x37, 0x7f)
+DECLARE_INSN(ut_lw, 0x2003, 0x707f)
+DECLARE_INSN(ut_lwu, 0x6003, 0x707f)
+DECLARE_INSN(ut_movn, 0x2007077, 0xfe00707f)
+DECLARE_INSN(ut_movz, 0x7077, 0xfe00707f)
+DECLARE_INSN(ut_mul, 0x2000033, 0xfe00707f)
+DECLARE_INSN(ut_mulh, 0x2001033, 0xfe00707f)
+DECLARE_INSN(ut_mulhsu, 0x2002033, 0xfe00707f)
+DECLARE_INSN(ut_mulhu, 0x2003033, 0xfe00707f)
+DECLARE_INSN(ut_mulw, 0x200003b, 0xfe00707f)
+DECLARE_INSN(ut_or, 0x6033, 0xfe00707f)
+DECLARE_INSN(ut_ori, 0x6013, 0x707f)
+DECLARE_INSN(ut_rem, 0x2006033, 0xfe00707f)
+DECLARE_INSN(ut_remu, 0x2007033, 0xfe00707f)
+DECLARE_INSN(ut_remuw, 0x200703b, 0xfe00707f)
+DECLARE_INSN(ut_remw, 0x200603b, 0xfe00707f)
+DECLARE_INSN(ut_sb, 0x23, 0x707f)
+DECLARE_INSN(ut_sd, 0x3023, 0x707f)
+DECLARE_INSN(ut_sh, 0x1023, 0x707f)
+DECLARE_INSN(ut_sll, 0x1033, 0xfe00707f)
+DECLARE_INSN(ut_slli, 0x1013, 0xfc00707f)
+DECLARE_INSN(ut_slliw, 0x101b, 0xfe00707f)
+DECLARE_INSN(ut_sllw, 0x103b, 0xfe00707f)
+DECLARE_INSN(ut_slt, 0x2033, 0xfe00707f)
+DECLARE_INSN(ut_slti, 0x2013, 0x707f)
+DECLARE_INSN(ut_sltiu, 0x3013, 0x707f)
+DECLARE_INSN(ut_sltu, 0x3033, 0xfe00707f)
+DECLARE_INSN(ut_sra, 0x40005033, 0xfe00707f)
+DECLARE_INSN(ut_srai, 0x40005013, 0xfc00707f)
+DECLARE_INSN(ut_sraiw, 0x4000501b, 0xfe00707f)
+DECLARE_INSN(ut_sraw, 0x4000503b, 0xfe00707f)
+DECLARE_INSN(ut_srl, 0x5033, 0xfe00707f)
+DECLARE_INSN(ut_srli, 0x5013, 0xfc00707f)
+DECLARE_INSN(ut_srliw, 0x501b, 0xfe00707f)
+DECLARE_INSN(ut_srlw, 0x503b, 0xfe00707f)
+DECLARE_INSN(ut_stop, 0x5077, 0xffffffff)
+DECLARE_INSN(ut_sub, 0x40000033, 0xfe00707f)
+DECLARE_INSN(ut_subw, 0x4000003b, 0xfe00707f)
+DECLARE_INSN(ut_sw, 0x2023, 0x707f)
+DECLARE_INSN(ut_utidx, 0x6077, 0xfffff07f)
+DECLARE_INSN(ut_xor, 0x4033, 0xfe00707f)
+DECLARE_INSN(ut_xori, 0x4013, 0x707f)
index 55306997d3b5c318b82e16f4e637642a7d889601..089a8a99ea85a19175dcfaf431d2e3687f2d1ded 100644 (file)
 #define CSR_FFLAGS 0x1
 #define CSR_FRM 0x2
 #define CSR_FCSR 0x3
+#define CSR_STATS 0xc0
 #define CSR_SUP0 0x500
 #define CSR_SUP1 0x501
 #define CSR_EPC 0x502
 #define CSR_FATC 0x50d
 #define CSR_SEND_IPI 0x50e
 #define CSR_CLEAR_IPI 0x50f
-#define CSR_STATS 0x51c
 #define CSR_RESET 0x51d
 #define CSR_TOHOST 0x51e
 #define CSR_FROMHOST 0x51f
 #define CSR_UARCH13 0xccd
 #define CSR_UARCH14 0xcce
 #define CSR_UARCH15 0xccf
+#define CSR_COUNTH 0x586
+#define CSR_CYCLEH 0xc80
+#define CSR_TIMEH 0xc81
+#define CSR_INSTRETH 0xc82
 #define CAUSE_MISALIGNED_FETCH 0x0
 #define CAUSE_FAULT_FETCH 0x1
 #define CAUSE_ILLEGAL_INSTRUCTION 0x2
@@ -629,6 +633,7 @@ DECLARE_INSN(sd, MATCH_SD, MASK_SD)
 DECLARE_CSR(fflags, CSR_FFLAGS)
 DECLARE_CSR(frm, CSR_FRM)
 DECLARE_CSR(fcsr, CSR_FCSR)
+DECLARE_CSR(stats, CSR_STATS)
 DECLARE_CSR(sup0, CSR_SUP0)
 DECLARE_CSR(sup1, CSR_SUP1)
 DECLARE_CSR(epc, CSR_EPC)
@@ -645,7 +650,6 @@ DECLARE_CSR(impl, CSR_IMPL)
 DECLARE_CSR(fatc, CSR_FATC)
 DECLARE_CSR(send_ipi, CSR_SEND_IPI)
 DECLARE_CSR(clear_ipi, CSR_CLEAR_IPI)
-DECLARE_CSR(stats, CSR_STATS)
 DECLARE_CSR(reset, CSR_RESET)
 DECLARE_CSR(tohost, CSR_TOHOST)
 DECLARE_CSR(fromhost, CSR_FROMHOST)
@@ -668,11 +672,16 @@ DECLARE_CSR(uarch12, CSR_UARCH12)
 DECLARE_CSR(uarch13, CSR_UARCH13)
 DECLARE_CSR(uarch14, CSR_UARCH14)
 DECLARE_CSR(uarch15, CSR_UARCH15)
+DECLARE_CSR(counth, CSR_COUNTH)
+DECLARE_CSR(cycleh, CSR_CYCLEH)
+DECLARE_CSR(timeh, CSR_TIMEH)
+DECLARE_CSR(instreth, CSR_INSTRETH)
 #endif
 #ifdef DECLARE_CAUSE
 DECLARE_CAUSE("fflags", CAUSE_FFLAGS)
 DECLARE_CAUSE("frm", CAUSE_FRM)
 DECLARE_CAUSE("fcsr", CAUSE_FCSR)
+DECLARE_CAUSE("stats", CAUSE_STATS)
 DECLARE_CAUSE("sup0", CAUSE_SUP0)
 DECLARE_CAUSE("sup1", CAUSE_SUP1)
 DECLARE_CAUSE("epc", CAUSE_EPC)
@@ -689,7 +698,6 @@ DECLARE_CAUSE("impl", CAUSE_IMPL)
 DECLARE_CAUSE("fatc", CAUSE_FATC)
 DECLARE_CAUSE("send_ipi", CAUSE_SEND_IPI)
 DECLARE_CAUSE("clear_ipi", CAUSE_CLEAR_IPI)
-DECLARE_CAUSE("stats", CAUSE_STATS)
 DECLARE_CAUSE("reset", CAUSE_RESET)
 DECLARE_CAUSE("tohost", CAUSE_TOHOST)
 DECLARE_CAUSE("fromhost", CAUSE_FROMHOST)
@@ -712,4 +720,8 @@ DECLARE_CAUSE("uarch12", CAUSE_UARCH12)
 DECLARE_CAUSE("uarch13", CAUSE_UARCH13)
 DECLARE_CAUSE("uarch14", CAUSE_UARCH14)
 DECLARE_CAUSE("uarch15", CAUSE_UARCH15)
+DECLARE_CAUSE("counth", CAUSE_COUNTH)
+DECLARE_CAUSE("cycleh", CAUSE_CYCLEH)
+DECLARE_CAUSE("timeh", CAUSE_TIMEH)
+DECLARE_CAUSE("instreth", CAUSE_INSTRETH)
 #endif