aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-08-16 22:01:29 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-08-27 21:03:47 -0700
commitbfc2bead78ce8237aa48f403808f1699b9190862 (patch)
tree98402f080a159fdc20b28ebb00bfa09e077d20ed
parent5f76a0d1fa68bb80560cb890405c42041f744e89 (diff)
downloadspike-bfc2bead78ce8237aa48f403808f1699b9190862.zip
spike-bfc2bead78ce8237aa48f403808f1699b9190862.tar.gz
spike-bfc2bead78ce8237aa48f403808f1699b9190862.tar.bz2
rvv: remove quad instructions
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
-rw-r--r--riscv/encoding.h12
-rw-r--r--riscv/insns/vqmacc_vv.h5
-rw-r--r--riscv/insns/vqmacc_vx.h5
-rw-r--r--riscv/insns/vqmaccsu_vv.h5
-rw-r--r--riscv/insns/vqmaccsu_vx.h5
-rw-r--r--riscv/insns/vqmaccu_vv.h5
-rw-r--r--riscv/insns/vqmaccu_vx.h5
-rw-r--r--riscv/insns/vqmaccus_vx.h5
-rw-r--r--riscv/processor.cc5
-rw-r--r--riscv/processor.h1
-rw-r--r--riscv/riscv.mk.in7
-rw-r--r--spike_main/disasm.cc4
12 files changed, 0 insertions, 64 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index bc7dc87..380b660 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -1414,14 +1414,6 @@
#define MASK_VNCLIPU_WX 0xfc00707f
#define MATCH_VNCLIP_WX 0xbc004057
#define MASK_VNCLIP_WX 0xfc00707f
-#define MATCH_VQMACCU_VX 0xf0004057
-#define MASK_VQMACCU_VX 0xfc00707f
-#define MATCH_VQMACC_VX 0xf4004057
-#define MASK_VQMACC_VX 0xfc00707f
-#define MATCH_VQMACCUS_VX 0xf8004057
-#define MASK_VQMACCUS_VX 0xfc00707f
-#define MATCH_VQMACCSU_VX 0xfc004057
-#define MASK_VQMACCSU_VX 0xfc00707f
#define MATCH_VADD_VV 0x57
#define MASK_VADD_VV 0xfc00707f
#define MATCH_VSUB_VV 0x8000057
@@ -2710,10 +2702,6 @@ DECLARE_INSN(vnsrl_wx, MATCH_VNSRL_WX, MASK_VNSRL_WX)
DECLARE_INSN(vnsra_wx, MATCH_VNSRA_WX, MASK_VNSRA_WX)
DECLARE_INSN(vnclipu_wx, MATCH_VNCLIPU_WX, MASK_VNCLIPU_WX)
DECLARE_INSN(vnclip_wx, MATCH_VNCLIP_WX, MASK_VNCLIP_WX)
-DECLARE_INSN(vqmaccu_vx, MATCH_VQMACCU_VX, MASK_VQMACCU_VX)
-DECLARE_INSN(vqmacc_vx, MATCH_VQMACC_VX, MASK_VQMACC_VX)
-DECLARE_INSN(vqmaccus_vx, MATCH_VQMACCUS_VX, MASK_VQMACCUS_VX)
-DECLARE_INSN(vqmaccsu_vx, MATCH_VQMACCSU_VX, MASK_VQMACCSU_VX)
DECLARE_INSN(vadd_vv, MATCH_VADD_VV, MASK_VADD_VV)
DECLARE_INSN(vsub_vv, MATCH_VSUB_VV, MASK_VSUB_VV)
DECLARE_INSN(vminu_vv, MATCH_VMINU_VV, MASK_VMINU_VV)
diff --git a/riscv/insns/vqmacc_vv.h b/riscv/insns/vqmacc_vv.h
deleted file mode 100644
index 3557b25..0000000
--- a/riscv/insns/vqmacc_vv.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqsmacc.vv vd, vs2, vs1
-VI_VV_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN(vs2, vs1, vd_w, *, +, int);
-})
diff --git a/riscv/insns/vqmacc_vx.h b/riscv/insns/vqmacc_vx.h
deleted file mode 100644
index 83fd544..0000000
--- a/riscv/insns/vqmacc_vx.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmacc.vx vd, vs2, rs1
-VI_VX_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN(vs2, rs1, vd_w, *, +, int);
-})
diff --git a/riscv/insns/vqmaccsu_vv.h b/riscv/insns/vqmaccsu_vv.h
deleted file mode 100644
index 41bf9ad..0000000
--- a/riscv/insns/vqmaccsu_vv.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmaccsu.vx vd, vs2, rs1
-VI_VV_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN_MIX(vs2, vs1, vd_w, *, +, int, uint, int);
-})
diff --git a/riscv/insns/vqmaccsu_vx.h b/riscv/insns/vqmaccsu_vx.h
deleted file mode 100644
index 147d2ee..0000000
--- a/riscv/insns/vqmaccsu_vx.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmaccsu.vx vd, vs2, rs1
-VI_VX_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN_MIX(vs2, rs1, vd_w, *, +, int, uint, int);
-})
diff --git a/riscv/insns/vqmaccu_vv.h b/riscv/insns/vqmaccu_vv.h
deleted file mode 100644
index d4559b1..0000000
--- a/riscv/insns/vqmaccu_vv.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmaccu.vv vd, vs2, vs1
-VI_VV_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN(vs2, vs1, vd_w, *, +, uint);
-})
diff --git a/riscv/insns/vqmaccu_vx.h b/riscv/insns/vqmaccu_vx.h
deleted file mode 100644
index b8a3484..0000000
--- a/riscv/insns/vqmaccu_vx.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmaccu.vx vd, vs2, rs1
-VI_VX_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN(vs2, rs1, vd_w, *, +, uint);
-})
diff --git a/riscv/insns/vqmaccus_vx.h b/riscv/insns/vqmaccus_vx.h
deleted file mode 100644
index 59ea589..0000000
--- a/riscv/insns/vqmaccus_vx.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// vqmaccus.vx vd, vs2, rs1
-VI_VX_LOOP_QUAD
-({
- VI_QUAD_OP_AND_ASSIGN_MIX(vs2, rs1, vd_w, *, +, int, int, uint);
-})
diff --git a/riscv/processor.cc b/riscv/processor.cc
index d309f94..15d8f8e 100644
--- a/riscv/processor.cc
+++ b/riscv/processor.cc
@@ -264,8 +264,6 @@ void processor_t::parse_isa_string(const char* str)
auto ext_str = std::string(ext, end - ext);
if (ext_str == "zfh") {
extension_table[EXT_ZFH] = true;
- } else if (ext_str == "zvqmac") {
- extension_table[EXT_ZVQMAC] = true;
} else {
sprintf(error_msg, "unsupported extension '%s'", ext_str.c_str());
bad_isa_string(str, error_msg);
@@ -291,9 +289,6 @@ void processor_t::parse_isa_string(const char* str)
if (supports_extension('Q') && !supports_extension('D'))
bad_isa_string(str, "'Q' extension requires 'D'");
-
- if (supports_extension(EXT_ZVQMAC) && !supports_extension('V'))
- bad_isa_string(str, "'Zvqmac' extension requires 'V'");
}
void state_t::reset(reg_t max_isa)
diff --git a/riscv/processor.h b/riscv/processor.h
index 5d7baeb..3575a5d 100644
--- a/riscv/processor.h
+++ b/riscv/processor.h
@@ -247,7 +247,6 @@ typedef enum {
// 65('A') ~ 90('Z') is reserved for standard isa in misa
EXT_ZFH = 0,
EXT_ZVEDIV,
- EXT_ZVQMAC,
} isa_extension_t;
// Count number of contiguous 1 bits starting from the LSB.
diff --git a/riscv/riscv.mk.in b/riscv/riscv.mk.in
index 6a86158..da50b94 100644
--- a/riscv/riscv.mk.in
+++ b/riscv/riscv.mk.in
@@ -450,13 +450,6 @@ riscv_insn_ext_v_alu_int = \
vor_vi \
vor_vv \
vor_vx \
- vqmacc_vv \
- vqmacc_vx \
- vqmaccsu_vv \
- vqmaccsu_vx \
- vqmaccu_vv \
- vqmaccu_vx \
- vqmaccus_vx \
vredand_vs \
vredmax_vs \
vredmaxu_vs \
diff --git a/spike_main/disasm.cc b/spike_main/disasm.cc
index af913d8..2736e80 100644
--- a/spike_main/disasm.cc
+++ b/spike_main/disasm.cc
@@ -950,10 +950,6 @@ disassembler_t::disassembler_t(int xlen)
DISASM_OPIV_S___INSN(vwredsum, 1);
DISASM_OPIV_V___INSN(vdotu, 0);
DISASM_OPIV_V___INSN(vdot, 1);
- DISASM_OPIV_VX__INSN(vqmaccu, 0);
- DISASM_OPIV_VX__INSN(vqmacc, 1);
- DISASM_OPIV__X__INSN(vqmaccus, 1);
- DISASM_OPIV_VX__INSN(vqmaccsu, 0);
//OPMVV/OPMVX
//0b00_0000