diff options
author | Yunsup Lee <yunsup@cs.berkeley.edu> | 2011-04-05 00:50:52 -0700 |
---|---|---|
committer | Yunsup Lee <yunsup@cs.berkeley.edu> | 2011-04-05 00:50:52 -0700 |
commit | 5eb059390c2425959a6d7025fa782db82942135c (patch) | |
tree | 40a1a1fca911d02e318c97e85594f6fa25538e9d | |
parent | 3706ca66d3e0dd6ddd45c632bd0c6e305ab01987 (diff) | |
download | pk-5eb059390c2425959a6d7025fa782db82942135c.zip pk-5eb059390c2425959a6d7025fa782db82942135c.tar.gz pk-5eb059390c2425959a6d7025fa782db82942135c.tar.bz2 |
[opcodes,pk,sim,xcc] fix vector mem instruction format, add vector seg mem instructions
-rw-r--r-- | pk/riscv-opc.h | 148 |
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 |