aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-04-24 16:35:13 -0700
committerAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-04-24 16:35:13 -0700
commit98d050a8f48eba092a38e2d1f16635100fe9092f (patch)
tree59a654ed1e6ba5afe95be345151a72e553ae10a3
parenta7259c6221b0e619f7a6d212e919f07e7f5b9c7d (diff)
downloadpk-98d050a8f48eba092a38e2d1f16635100fe9092f.zip
pk-98d050a8f48eba092a38e2d1f16635100fe9092f.tar.gz
pk-98d050a8f48eba092a38e2d1f16635100fe9092f.tar.bz2
[xcc,sim,opcodes] added more RVC instructions
-rw-r--r--pk/riscv-opc.h42
1 files 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