From 98d050a8f48eba092a38e2d1f16635100fe9092f Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 24 Apr 2011 16:35:13 -0700 Subject: [xcc,sim,opcodes] added more RVC instructions --- pk/riscv-opc.h | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/pk/riscv-opc.h b/pk/riscv-opc.h index 1e288cc..35f8a0e 100644 --- a/pk/riscv-opc.h +++ b/pk/riscv-opc.h @@ -21,6 +21,8 @@ #define MASK_FENCE_L_CV 0x3ff #define MATCH_FMIN_S 0x18053 #define MASK_FMIN_S 0x1ffff +#define MATCH_C_LW0 0x12 +#define MASK_C_LW0 0x801f #define MATCH_SLLIW 0x9b #define MASK_SLLIW 0x3f83ff #define MATCH_LB 0x3 @@ -45,6 +47,8 @@ #define MASK_FENCE_G_V 0x3ff #define MATCH_MFPCR 0x17b #define MASK_MFPCR 0x7c1ffff +#define MATCH_C_FSD 0x18 +#define MASK_C_FSD 0x1f #define MATCH_FMAX_D 0x190d3 #define MASK_FMAX_D 0x1ffff #define MATCH_SBSEG_V 0x280b @@ -61,18 +65,22 @@ #define MASK_LBU_V 0x3fffff #define MATCH_BGEU 0x3e3 #define MASK_BGEU 0x3ff -#define MATCH_C_LI 0x1 +#define MATCH_C_LI 0x0 #define MASK_C_LI 0x1f #define MATCH_DI 0xfb #define MASK_DI 0x7ffffff #define MATCH_SLTIU 0x193 #define MASK_SLTIU 0x3ff +#define MATCH_C_ADD 0x1a +#define MASK_C_ADD 0x801f #define MATCH_C_SWSP 0x8 #define MASK_C_SWSP 0x1f #define MATCH_C_LD 0x9 #define MASK_C_LD 0x1f #define MATCH_STOP 0x177 #define MASK_STOP 0xffffffff +#define MATCH_C_SLLI 0x19 +#define MASK_C_SLLI 0x1c1f #define MATCH_BREAK 0xf7 #define MASK_BREAK 0xffffffff #define MATCH_LBST_V 0x100b @@ -103,8 +111,12 @@ #define MASK_UTIDX 0x7ffffff #define MATCH_SRLI 0x293 #define MASK_SRLI 0x3f03ff +#define MATCH_C_SRLI 0x819 +#define MASK_C_SRLI 0x1c1f #define MATCH_C_LDSP 0x4 #define MASK_C_LDSP 0x1f +#define MATCH_C_FLW 0x14 +#define MASK_C_FLW 0x1f #define MATCH_LDSEGST_V 0x18f #define MASK_LDSEGST_V 0xfff #define MATCH_AMOMINU_W 0x192b @@ -179,6 +191,8 @@ #define MASK_FMOV_SV 0x3fffff #define MATCH_FCVT_S_LU 0xd053 #define MASK_FCVT_S_LU 0x3ff1ff +#define MATCH_C_SRAI32 0x1419 +#define MASK_C_SRAI32 0x1c1f #define MATCH_ADDI 0x13 #define MASK_ADDI 0x3ff #define MATCH_MULH 0x4b3 @@ -227,6 +241,8 @@ #define MASK_BGE 0x3ff #define MATCH_LB_V 0xb #define MASK_LB_V 0x3fffff +#define MATCH_C_ADD3 0x1c +#define MASK_C_ADD3 0x31f #define MATCH_LWUSEGST_V 0x30f #define MASK_LWUSEGST_V 0xfff #define MATCH_SRAIW 0x1029b @@ -259,6 +275,8 @@ #define MASK_JALR_J 0x3ff #define MATCH_LH_V 0x8b #define MASK_LH_V 0x3fffff +#define MATCH_C_FLD 0x15 +#define MASK_C_FLD 0x1f #define MATCH_XORI 0x213 #define MASK_XORI 0x3ff #define MATCH_JALR_R 0xeb @@ -275,6 +293,8 @@ #define MASK_ANDI 0x3ff #define MATCH_FSW_V 0xd0b #define MASK_FSW_V 0x3fffff +#define MATCH_C_SRLI32 0xc19 +#define MASK_C_SRLI32 0x1c1f #define MATCH_FSGNJN_D 0x60d3 #define MASK_FSGNJN_D 0x1ffff #define MATCH_FNMADD_S 0x4f @@ -307,6 +327,8 @@ #define MASK_C_MOVE 0x801f #define MATCH_FCVT_W_S 0xa053 #define MASK_FCVT_W_S 0x3ff1ff +#define MATCH_C_FSW 0x16 +#define MASK_C_FSW 0x1f #define MATCH_FLDSEGST_V 0x58f #define MASK_FLDSEGST_V 0xfff #define MATCH_MULHSU 0x533 @@ -327,10 +349,16 @@ #define MASK_SW_V 0x3fffff #define MATCH_SDSEG_V 0x298b #define MASK_SDSEG_V 0x1ffff +#define MATCH_C_OR3 0x21c +#define MASK_C_OR3 0x31f +#define MATCH_C_AND3 0x31c +#define MASK_C_AND3 0x31f #define MATCH_LBSEGST_V 0xf #define MASK_LBSEGST_V 0xfff #define MATCH_LWUST_V 0x130b #define MASK_LWUST_V 0x1ffff +#define MATCH_C_SLLIW 0x1819 +#define MASK_C_SLLIW 0x1c1f #define MATCH_SLT 0x133 #define MASK_SLT 0x1ffff #define MATCH_MXTF_D 0x1e0d3 @@ -381,7 +409,7 @@ #define MASK_SYSCALL 0xffffffff #define MATCH_FSGNJ_S 0x5053 #define MASK_FSGNJ_S 0x1ffff -#define MATCH_C_ADDI 0x0 +#define MATCH_C_ADDI 0x1 #define MASK_C_ADDI 0x1f #define MATCH_SHSEGST_V 0x88f #define MASK_SHSEGST_V 0xfff @@ -389,8 +417,14 @@ #define MASK_FLWSEGST_V 0xfff #define MATCH_LWSEG_V 0x210b #define MASK_LWSEG_V 0x1ffff +#define MATCH_C_SUB3 0x11c +#define MASK_C_SUB3 0x31f +#define MATCH_C_LD0 0x8012 +#define MASK_C_LD0 0x801f #define MATCH_FSGNJ_D 0x50d3 #define MASK_FSGNJ_D 0x1ffff +#define MATCH_C_SUB 0x801a +#define MASK_C_SUB 0x801f #define MATCH_MULHU 0x5b3 #define MASK_MULHU 0x1ffff #define MATCH_FCVT_L_D 0x80d3 @@ -423,10 +457,14 @@ #define MASK_LBUST_V 0x1ffff #define MATCH_FSQRT_S 0x4053 #define MASK_FSQRT_S 0x3ff1ff +#define MATCH_C_SRAI 0x1019 +#define MASK_C_SRAI 0x1c1f #define MATCH_AMOMIN_W 0x112b #define MASK_AMOMIN_W 0x1ffff #define MATCH_FSGNJN_S 0x6053 #define MASK_FSGNJN_S 0x1ffff +#define MATCH_C_SLLI32 0x419 +#define MASK_C_SLLI32 0x1c1f #define MATCH_LWSEGST_V 0x10f #define MASK_LWSEGST_V 0xfff #define MATCH_AMOSWAP_D 0x5ab -- cgit v1.1