aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2011-04-04 01:16:10 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2011-04-04 02:10:14 -0700
commit3cfe170bfa95adc42b1fd1db6a2835c6efaaef5d (patch)
tree84030e8e0b06caa5de7dffded1414d4833440541
parentae7b2fd1908de02780d49158fd56cc871f88730e (diff)
downloadpk-3cfe170bfa95adc42b1fd1db6a2835c6efaaef5d.zip
pk-3cfe170bfa95adc42b1fd1db6a2835c6efaaef5d.tar.gz
pk-3cfe170bfa95adc42b1fd1db6a2835c6efaaef5d.tar.bz2
[opcodes,pk,sim,xcc] add vector mem instructions
-rw-r--r--pk/riscv-opc.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/pk/riscv-opc.h b/pk/riscv-opc.h
index 22262d7..461d699 100644
--- a/pk/riscv-opc.h
+++ b/pk/riscv-opc.h
@@ -3,6 +3,10 @@
#define MASK_REMUW 0x1ffff
#define MATCH_FMIN_D 0x180d3
#define MASK_FMIN_D 0x1ffff
+#define MATCH_LW_V 0x10b
+#define MASK_LW_V 0x3fffff
+#define MATCH_LWU_V 0x30b
+#define MASK_LWU_V 0x3fffff
#define MATCH_BLTU 0x363
#define MASK_BLTU 0x3ff
#define MATCH_FCVT_LU_S 0x9053
@@ -39,6 +43,8 @@
#define MASK_MTPCR 0xf801ffff
#define MATCH_FCVT_S_D 0x11053
#define MASK_FCVT_S_D 0x3ff1ff
+#define MATCH_LBU_V 0x20b
+#define MASK_LBU_V 0x3fffff
#define MATCH_BGEU 0x3e3
#define MASK_BGEU 0x3ff
#define MATCH_DI 0xfb
@@ -49,12 +55,20 @@
#define MASK_STOP 0xffffffff
#define MATCH_BREAK 0xf7
#define MASK_BREAK 0xffffffff
+#define MATCH_LBST_V 0x80b
+#define MASK_LBST_V 0x1ffff
#define MATCH_FCVT_S_W 0xe053
#define MASK_FCVT_S_W 0x3ff1ff
#define MATCH_MUL 0x433
#define MASK_MUL 0x1ffff
+#define MATCH_SBST_V 0xc0b
+#define MASK_SBST_V 0xf8000fff
+#define MATCH_FLD_V 0x18f
+#define MASK_FLD_V 0x3fffff
#define MATCH_AMOMINU_D 0x19ab
#define MASK_AMOMINU_D 0x1ffff
+#define MATCH_LHST_V 0x88b
+#define MASK_LHST_V 0x1ffff
#define MATCH_UTIDX 0x1f7
#define MASK_UTIDX 0xffffffff
#define MATCH_SRLI 0x293
@@ -79,16 +93,22 @@
#define MASK_EI 0x7ffffff
#define MATCH_FENCE 0x12f
#define MASK_FENCE 0x3ff
+#define MATCH_LHUST_V 0xa8b
+#define MASK_LHUST_V 0x1ffff
#define MATCH_FNMSUB_S 0x4b
#define MASK_FNMSUB_S 0x1ff
#define MATCH_FCVT_L_S 0x8053
#define MASK_FCVT_L_S 0x3ff1ff
#define MATCH_FLE_S 0x17053
#define MASK_FLE_S 0x1ffff
+#define MATCH_LD_V 0x18b
+#define MASK_LD_V 0x3fffff
#define MATCH_MFFSR 0x1d053
#define MASK_MFFSR 0x7ffffff
#define MATCH_FDIV_S 0x3053
#define MASK_FDIV_S 0x1f1ff
+#define MATCH_FSWST_V 0xd0f
+#define MASK_FSWST_V 0xf8000fff
#define MATCH_FLE_D 0x170d3
#define MASK_FLE_D 0x1ffff
#define MATCH_FENCE_I 0xaf
@@ -99,6 +119,8 @@
#define MASK_ADDW 0x1ffff
#define MATCH_SLL 0xb3
#define MASK_SLL 0x1ffff
+#define MATCH_FSD_V 0x58f
+#define MASK_FSD_V 0xf83e0fff
#define MATCH_XOR 0x233
#define MASK_XOR 0x1ffff
#define MATCH_SUB 0x10033
@@ -137,12 +159,16 @@
#define MASK_LD 0x3ff
#define MATCH_ORI 0x313
#define MASK_ORI 0x3ff
+#define MATCH_SWST_V 0xd0b
+#define MASK_SWST_V 0xf8000fff
#define MATCH_FLT_S 0x16053
#define MASK_FLT_S 0x1ffff
#define MATCH_ADDIW 0x1b
#define MASK_ADDIW 0x3ff
#define MATCH_AMOAND_W 0x92b
#define MASK_AMOAND_W 0x1ffff
+#define MATCH_FSDST_V 0xd8f
+#define MASK_FSDST_V 0xf8000fff
#define MATCH_FEQ_S 0x15053
#define MASK_FEQ_S 0x1ffff
#define MATCH_FSGNJX_D 0x70d3
@@ -151,8 +177,12 @@
#define MASK_SRA 0x1ffff
#define MATCH_BGE 0x2e3
#define MASK_BGE 0x3ff
+#define MATCH_LB_V 0xb
+#define MASK_LB_V 0x3fffff
#define MATCH_SRAIW 0x1029b
#define MASK_SRAIW 0x3f83ff
+#define MATCH_LDST_V 0x98b
+#define MASK_LDST_V 0x1ffff
#define MATCH_SRL 0x2b3
#define MASK_SRL 0x1ffff
#define MATCH_FSGNJX_S 0x7053
@@ -175,6 +205,8 @@
#define MASK_AMOMAXU_D 0x1ffff
#define MATCH_JALR_J 0x16b
#define MASK_JALR_J 0x3ff
+#define MATCH_LH_V 0x8b
+#define MASK_LH_V 0x3fffff
#define MATCH_XORI 0x213
#define MASK_XORI 0x3ff
#define MATCH_JALR_R 0xeb
@@ -183,8 +215,12 @@
#define MASK_AMOMAXU_W 0x1ffff
#define MATCH_FCVT_WU_S 0xb053
#define MASK_FCVT_WU_S 0x3ff1ff
+#define MATCH_LHU_V 0x28b
+#define MASK_LHU_V 0x3fffff
#define MATCH_ANDI 0x393
#define MASK_ANDI 0x3ff
+#define MATCH_FSW_V 0x50f
+#define MASK_FSW_V 0xf83e0fff
#define MATCH_FSGNJN_D 0x60d3
#define MASK_FSGNJN_D 0x1ffff
#define MATCH_FNMADD_S 0x4f
@@ -193,6 +229,8 @@
#define MASK_JAL 0x7f
#define MATCH_LWU 0x303
#define MASK_LWU 0x3ff
+#define MATCH_FLDST_V 0x98f
+#define MASK_FLDST_V 0x1ffff
#define MATCH_FNMADD_D 0xcf
#define MASK_FNMADD_D 0x1ff
#define MATCH_FENCE_G_CV 0x3af
@@ -201,6 +239,8 @@
#define MASK_AMOADD_D 0x1ffff
#define MATCH_AMOMAX_W 0x152b
#define MASK_AMOMAX_W 0x1ffff
+#define MATCH_FLW_V 0x10f
+#define MASK_FLW_V 0x3fffff
#define MATCH_FCVT_W_S 0xa053
#define MASK_FCVT_W_S 0x3ff1ff
#define MATCH_MULHSU 0x533
@@ -213,6 +253,10 @@
#define MASK_AMOMAX_D 0x1ffff
#define MATCH_FCVT_W_D 0xa0d3
#define MASK_FCVT_W_D 0x3ff1ff
+#define MATCH_SW_V 0x50b
+#define MASK_SW_V 0xf83e0fff
+#define MATCH_LWUST_V 0xb0b
+#define MASK_LWUST_V 0x1ffff
#define MATCH_SLT 0x133
#define MASK_SLT 0x1ffff
#define MATCH_MXTF_D 0x1e0d3
@@ -231,6 +275,8 @@
#define MASK_REMW 0x1ffff
#define MATCH_SLTU 0x1b3
#define MASK_SLTU 0x1ffff
+#define MATCH_FLWST_V 0x90f
+#define MASK_FLWST_V 0x1ffff
#define MATCH_SLLI 0x93
#define MASK_SLLI 0x3f03ff
#define MATCH_AMOOR_W 0xd2b
@@ -247,6 +293,8 @@
#define MASK_AND 0x1ffff
#define MATCH_LBU 0x203
#define MASK_LBU 0x3ff
+#define MATCH_SH_V 0x48b
+#define MASK_SH_V 0xf83e0fff
#define MATCH_SYSCALL 0x77
#define MASK_SYSCALL 0xffffffff
#define MATCH_FSGNJ_S 0x5053
@@ -273,6 +321,8 @@
#define MASK_FSUB_D 0x1f1ff
#define MATCH_FMADD_S 0x43
#define MASK_FMADD_S 0x1ff
+#define MATCH_LBUST_V 0xa0b
+#define MASK_LBUST_V 0x1ffff
#define MATCH_FSQRT_S 0x4053
#define MASK_FSQRT_S 0x3ff1ff
#define MATCH_AMOMIN_W 0x112b
@@ -289,6 +339,8 @@
#define MASK_FDIV_D 0x1f1ff
#define MATCH_FMADD_D 0xc3
#define MASK_FMADD_D 0x1ff
+#define MATCH_SD_V 0x58b
+#define MASK_SD_V 0xf83e0fff
#define MATCH_DIVW 0x63b
#define MASK_DIVW 0x1ffff
#define MATCH_AMOMIN_D 0x11ab
@@ -297,14 +349,22 @@
#define MASK_DIVU 0x1ffff
#define MATCH_AMOSWAP_W 0x52b
#define MASK_AMOSWAP_W 0x1ffff
+#define MATCH_LWST_V 0x90b
+#define MASK_LWST_V 0x1ffff
#define MATCH_FADD_S 0x53
#define MASK_FADD_S 0x1f1ff
+#define MATCH_SDST_V 0xd8b
+#define MASK_SDST_V 0xf8000fff
#define MATCH_FSD 0x1a7
#define MASK_FSD 0x3ff
#define MATCH_SW 0x123
#define MASK_SW 0x3ff
#define MATCH_FMSUB_S 0x47
#define MASK_FMSUB_S 0x1ff
+#define MATCH_SHST_V 0xc8b
+#define MASK_SHST_V 0xf8000fff
+#define MATCH_SB_V 0x40b
+#define MASK_SB_V 0xf83e0fff
#define MATCH_LHU 0x283
#define MASK_LHU 0x3ff
#define MATCH_SH 0xa3