aboutsummaryrefslogtreecommitdiff
path: root/pk/riscv-opc.h
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2011-04-05 00:50:52 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2011-04-05 00:50:52 -0700
commit5eb059390c2425959a6d7025fa782db82942135c (patch)
tree40a1a1fca911d02e318c97e85594f6fa25538e9d /pk/riscv-opc.h
parent3706ca66d3e0dd6ddd45c632bd0c6e305ab01987 (diff)
downloadpk-5eb059390c2425959a6d7025fa782db82942135c.zip
pk-5eb059390c2425959a6d7025fa782db82942135c.tar.gz
pk-5eb059390c2425959a6d7025fa782db82942135c.tar.bz2
[opcodes,pk,sim,xcc] fix vector mem instruction format, add vector seg mem instructions
Diffstat (limited to 'pk/riscv-opc.h')
-rw-r--r--pk/riscv-opc.h148
1 files changed, 110 insertions, 38 deletions
diff --git a/pk/riscv-opc.h b/pk/riscv-opc.h
index b4e693b..8101c8e 100644
--- a/pk/riscv-opc.h
+++ b/pk/riscv-opc.h
@@ -1,10 +1,14 @@
/* Automatically generated by parse-opcodes */
+#define MATCH_LWUSEG_V 0x230b
+#define MASK_LWUSEG_V 0x1ffff
#define MATCH_REMUW 0x7bb
#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_LBUSEGST_V 0x20f
+#define MASK_LBUSEGST_V 0xfff
#define MATCH_LWU_V 0x30b
#define MASK_LWU_V 0x3fffff
#define MATCH_BLTU 0x363
@@ -19,6 +23,10 @@
#define MASK_SLLIW 0x3f83ff
#define MATCH_LB 0x3
#define MASK_LB 0x3ff
+#define MATCH_FMOV_SU 0x1810b
+#define MASK_FMOV_SU 0x1ffff
+#define MATCH_SWSEG_V 0x290b
+#define MASK_SWSEG_V 0x1ffff
#define MATCH_FCVT_D_L 0xc0d3
#define MASK_FCVT_D_L 0x3ff1ff
#define MATCH_LH 0x83
@@ -35,8 +43,12 @@
#define MASK_FENCE_G_V 0x3ff
#define MATCH_MFPCR 0x17b
#define MASK_MFPCR 0x7c1ffff
+#define MATCH_LHUSEG_V 0x228b
+#define MASK_LHUSEG_V 0x1ffff
#define MATCH_FMAX_D 0x190d3
#define MASK_FMAX_D 0x1ffff
+#define MATCH_SBSEG_V 0x280b
+#define MASK_SBSEG_V 0x1ffff
#define MATCH_BNE 0xe3
#define MASK_BNE 0x3ff
#define MATCH_MTPCR 0x1fb
@@ -55,24 +67,32 @@
#define MASK_STOP 0xffffffff
#define MATCH_BREAK 0xf7
#define MASK_BREAK 0xffffffff
-#define MATCH_LBST_V 0x80b
+#define MATCH_LBST_V 0x100b
#define MASK_LBST_V 0x1ffff
#define MATCH_FCVT_S_W 0xe053
#define MASK_FCVT_S_W 0x3ff1ff
+#define MATCH_LDSEG_V 0x218b
+#define MASK_LDSEG_V 0x1ffff
#define MATCH_MUL 0x433
#define MASK_MUL 0x1ffff
-#define MATCH_SBST_V 0xc0b
-#define MASK_SBST_V 0xf8000fff
-#define MATCH_FLD_V 0x18f
+#define MATCH_SBST_V 0x180b
+#define MASK_SBST_V 0x1ffff
+#define MATCH_FLD_V 0x58b
#define MASK_FLD_V 0x3fffff
+#define MATCH_LHSEG_V 0x208b
+#define MASK_LHSEG_V 0x1ffff
#define MATCH_AMOMINU_D 0x19ab
#define MASK_AMOMINU_D 0x1ffff
-#define MATCH_LHST_V 0x88b
+#define MATCH_LBUSEG_V 0x220b
+#define MASK_LBUSEG_V 0x1ffff
+#define MATCH_LHST_V 0x108b
#define MASK_LHST_V 0x1ffff
#define MATCH_UTIDX 0x1f7
#define MASK_UTIDX 0xffffffff
#define MATCH_SRLI 0x293
#define MASK_SRLI 0x3f03ff
+#define MATCH_LDSEGST_V 0x18f
+#define MASK_LDSEGST_V 0xfff
#define MATCH_AMOMINU_W 0x192b
#define MASK_AMOMINU_W 0x1ffff
#define MATCH_DIVUW 0x6bb
@@ -93,12 +113,16 @@
#define MASK_EI 0x7ffffff
#define MATCH_FENCE 0x12f
#define MASK_FENCE 0x3ff
-#define MATCH_LHUST_V 0xa8b
+#define MATCH_LHUST_V 0x128b
#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_MOV_SV 0x1008b
+#define MASK_MOV_SV 0x3fffff
+#define MATCH_MOV_SU 0x1010b
+#define MASK_MOV_SU 0x1ffff
#define MATCH_FLE_S 0x17053
#define MASK_FLE_S 0x1ffff
#define MATCH_LD_V 0x18b
@@ -107,8 +131,8 @@
#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_FSWST_V 0x1d0b
+#define MASK_FSWST_V 0x1ffff
#define MATCH_FLE_D 0x170d3
#define MASK_FLE_D 0x1ffff
#define MATCH_FENCE_I 0xaf
@@ -119,8 +143,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_FSD_V 0xd8b
+#define MASK_FSD_V 0x3fffff
#define MATCH_XOR 0x233
#define MASK_XOR 0x1ffff
#define MATCH_SUB 0x10033
@@ -137,6 +161,8 @@
#define MASK_SRLIW 0x3f83ff
#define MATCH_LUI 0x37
#define MASK_LUI 0x7f
+#define MATCH_FMOV_SV 0x1808b
+#define MASK_FMOV_SV 0x3fffff
#define MATCH_FCVT_S_LU 0xd053
#define MASK_FCVT_S_LU 0x3ff1ff
#define MATCH_ADDI 0x13
@@ -147,12 +173,16 @@
#define MASK_FMUL_S 0x1f1ff
#define MATCH_VCFGIVL 0x73
#define MASK_VCFGIVL 0x3ff
+#define MATCH_FSDSEG_V 0x2d8b
+#define MASK_FSDSEG_V 0x1ffff
#define MATCH_SRAI 0x10293
#define MASK_SRAI 0x3f03ff
#define MATCH_AMOAND_D 0x9ab
#define MASK_AMOAND_D 0x1ffff
#define MATCH_FLT_D 0x160d3
#define MASK_FLT_D 0x1ffff
+#define MATCH_SDSEGST_V 0x98f
+#define MASK_SDSEGST_V 0xfff
#define MATCH_SRAW 0x102bb
#define MASK_SRAW 0x1ffff
#define MATCH_FMUL_D 0x20d3
@@ -161,16 +191,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_SWST_V 0x190b
+#define MASK_SWST_V 0x1ffff
#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_FSDST_V 0x1d8b
+#define MASK_FSDST_V 0x1ffff
#define MATCH_FEQ_S 0x15053
#define MASK_FEQ_S 0x1ffff
#define MATCH_FSGNJX_D 0x70d3
@@ -181,14 +211,18 @@
#define MASK_BGE 0x3ff
#define MATCH_LB_V 0xb
#define MASK_LB_V 0x3fffff
+#define MATCH_LWUSEGST_V 0x30f
+#define MASK_LWUSEGST_V 0xfff
#define MATCH_SRAIW 0x1029b
#define MASK_SRAIW 0x3f83ff
-#define MATCH_LDST_V 0x98b
+#define MATCH_LDST_V 0x118b
#define MASK_LDST_V 0x1ffff
#define MATCH_SRL 0x2b3
#define MASK_SRL 0x1ffff
#define MATCH_FSGNJX_S 0x7053
#define MASK_FSGNJX_S 0x1ffff
+#define MATCH_FLDSEG_V 0x258b
+#define MASK_FLDSEG_V 0x1ffff
#define MATCH_FEQ_D 0x150d3
#define MASK_FEQ_D 0x1ffff
#define MATCH_FCVT_D_WU 0xf0d3
@@ -219,10 +253,12 @@
#define MASK_FCVT_WU_S 0x3ff1ff
#define MATCH_LHU_V 0x28b
#define MASK_LHU_V 0x3fffff
+#define MATCH_MOV_US 0x1018b
+#define MASK_MOV_US 0x1ffff
#define MATCH_ANDI 0x393
#define MASK_ANDI 0x3ff
-#define MATCH_FSW_V 0x50f
-#define MASK_FSW_V 0xf83e0fff
+#define MATCH_FSW_V 0xd0b
+#define MASK_FSW_V 0x3fffff
#define MATCH_FSGNJN_D 0x60d3
#define MASK_FSGNJN_D 0x1ffff
#define MATCH_FNMADD_S 0x4f
@@ -231,20 +267,28 @@
#define MASK_JAL 0x7f
#define MATCH_LWU 0x303
#define MASK_LWU 0x3ff
-#define MATCH_FLDST_V 0x98f
+#define MATCH_FLDST_V 0x158b
#define MASK_FLDST_V 0x1ffff
#define MATCH_FNMADD_D 0xcf
#define MASK_FNMADD_D 0x1ff
#define MATCH_FENCE_G_CV 0x3af
#define MASK_FENCE_G_CV 0x3ff
+#define MATCH_SBSEGST_V 0x80f
+#define MASK_SBSEGST_V 0xfff
#define MATCH_AMOADD_D 0x1ab
#define MASK_AMOADD_D 0x1ffff
+#define MATCH_FLWSEG_V 0x250b
+#define MASK_FLWSEG_V 0x1ffff
+#define MATCH_LBSEG_V 0x200b
+#define MASK_LBSEG_V 0x1ffff
#define MATCH_AMOMAX_W 0x152b
#define MASK_AMOMAX_W 0x1ffff
-#define MATCH_FLW_V 0x10f
+#define MATCH_FLW_V 0x50b
#define MASK_FLW_V 0x3fffff
#define MATCH_FCVT_W_S 0xa053
#define MASK_FCVT_W_S 0x3ff1ff
+#define MATCH_FLDSEGST_V 0x58f
+#define MASK_FLDSEGST_V 0xfff
#define MATCH_MULHSU 0x533
#define MASK_MULHSU 0x1ffff
#define MATCH_AMOADD_W 0x12b
@@ -253,11 +297,17 @@
#define MASK_FCVT_D_LU 0x3ff1ff
#define MATCH_AMOMAX_D 0x15ab
#define MASK_AMOMAX_D 0x1ffff
+#define MATCH_LHUSEGST_V 0x28f
+#define MASK_LHUSEGST_V 0xfff
#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 MATCH_SW_V 0x90b
+#define MASK_SW_V 0x3fffff
+#define MATCH_SDSEG_V 0x298b
+#define MASK_SDSEG_V 0x1ffff
+#define MATCH_LBSEGST_V 0xf
+#define MASK_LBSEGST_V 0xfff
+#define MATCH_LWUST_V 0x130b
#define MASK_LWUST_V 0x1ffff
#define MATCH_SLT 0x133
#define MASK_SLT 0x1ffff
@@ -277,7 +327,9 @@
#define MASK_REMW 0x1ffff
#define MATCH_SLTU 0x1b3
#define MASK_SLTU 0x1ffff
-#define MATCH_FLWST_V 0x90f
+#define MATCH_FSDSEGST_V 0xd8f
+#define MASK_FSDSEGST_V 0xfff
+#define MATCH_FLWST_V 0x150b
#define MASK_FLWST_V 0x1ffff
#define MATCH_SLLI 0x93
#define MASK_SLLI 0x3f03ff
@@ -293,22 +345,32 @@
#define MASK_FSUB_S 0x1f1ff
#define MATCH_AND 0x3b3
#define MASK_AND 0x1ffff
+#define MATCH_FSWSEGST_V 0xd0f
+#define MASK_FSWSEGST_V 0xfff
#define MATCH_LBU 0x203
#define MASK_LBU 0x3ff
-#define MATCH_SH_V 0x48b
-#define MASK_SH_V 0xf83e0fff
+#define MATCH_SH_V 0x88b
+#define MASK_SH_V 0x3fffff
#define MATCH_VF 0x173
-#define MASK_VF 0xffc003ff
+#define MASK_VF 0xf80003ff
#define MATCH_SYSCALL 0x77
#define MASK_SYSCALL 0xffffffff
#define MATCH_FSGNJ_S 0x5053
#define MASK_FSGNJ_S 0x1ffff
+#define MATCH_SHSEGST_V 0x88f
+#define MASK_SHSEGST_V 0xfff
+#define MATCH_FLWSEGST_V 0x50f
+#define MASK_FLWSEGST_V 0xfff
+#define MATCH_LWSEG_V 0x210b
+#define MASK_LWSEG_V 0x1ffff
#define MATCH_FSGNJ_D 0x50d3
#define MASK_FSGNJ_D 0x1ffff
#define MATCH_MULHU 0x5b3
#define MASK_MULHU 0x1ffff
#define MATCH_FCVT_L_D 0x80d3
#define MASK_FCVT_L_D 0x3ff1ff
+#define MATCH_FSWSEG_V 0x2d0b
+#define MASK_FSWSEG_V 0x1ffff
#define MATCH_SETVL 0xf3
#define MASK_SETVL 0x3fffff
#define MATCH_FADD_D 0xd3
@@ -319,6 +381,10 @@
#define MASK_RDNPC 0x7ffffff
#define MATCH_FCVT_S_L 0xc053
#define MASK_FCVT_S_L 0x3ff1ff
+#define MATCH_SHSEG_V 0x288b
+#define MASK_SHSEG_V 0x1ffff
+#define MATCH_FMOV_US 0x1818b
+#define MASK_FMOV_US 0x1ffff
#define MATCH_FCVT_LU_D 0x90d3
#define MASK_FCVT_LU_D 0x3ff1ff
#define MATCH_UNIMP 0x0
@@ -327,7 +393,7 @@
#define MASK_FSUB_D 0x1f1ff
#define MATCH_FMADD_S 0x43
#define MASK_FMADD_S 0x1ff
-#define MATCH_LBUST_V 0xa0b
+#define MATCH_LBUST_V 0x120b
#define MASK_LBUST_V 0x1ffff
#define MATCH_FSQRT_S 0x4053
#define MASK_FSQRT_S 0x3ff1ff
@@ -335,6 +401,8 @@
#define MASK_AMOMIN_W 0x1ffff
#define MATCH_FSGNJN_S 0x6053
#define MASK_FSGNJN_S 0x1ffff
+#define MATCH_LWSEGST_V 0x10f
+#define MASK_LWSEGST_V 0xfff
#define MATCH_AMOSWAP_D 0x5ab
#define MASK_AMOSWAP_D 0x1ffff
#define MATCH_FENCE_L_V 0x22f
@@ -345,8 +413,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_SD_V 0x98b
+#define MASK_SD_V 0x3fffff
#define MATCH_DIVW 0x63b
#define MASK_DIVW 0x1ffff
#define MATCH_AMOMIN_D 0x11ab
@@ -355,26 +423,30 @@
#define MASK_DIVU 0x1ffff
#define MATCH_AMOSWAP_W 0x52b
#define MASK_AMOSWAP_W 0x1ffff
-#define MATCH_MOV_VV 0x1f3
+#define MATCH_SWSEGST_V 0x90f
+#define MASK_SWSEGST_V 0xfff
+#define MATCH_MOV_VV 0x1000b
#define MASK_MOV_VV 0x3fffff
-#define MATCH_LWST_V 0x90b
+#define MATCH_LWST_V 0x110b
#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_SDST_V 0x198b
+#define MASK_SDST_V 0x1ffff
#define MATCH_FSD 0x1a7
#define MASK_FSD 0x3ff
-#define MATCH_FMOV_VV 0x273
+#define MATCH_FMOV_VV 0x1800b
#define MASK_FMOV_VV 0x3fffff
+#define MATCH_LHSEGST_V 0x8f
+#define MASK_LHSEGST_V 0xfff
#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_SHST_V 0x188b
+#define MASK_SHST_V 0x1ffff
+#define MATCH_SB_V 0x80b
+#define MASK_SB_V 0x3fffff
#define MATCH_LHU 0x283
#define MASK_LHU 0x3ff
#define MATCH_SH 0xa3