aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave.Wen <dave.wen@sifive.com>2020-05-18 01:23:17 -0700
committerDave.Wen <dave.wen@sifive.com>2020-05-18 01:23:17 -0700
commitab6fd59262bc8593bf4dd26175cbe0d818fbda17 (patch)
tree0c79d61d62e9eab67d4e6ee29b4c37b149fb4156
parenta2fd1be698c2ff2fe067ea301b4f5c8173ff09a3 (diff)
downloadspike-ab6fd59262bc8593bf4dd26175cbe0d818fbda17.zip
spike-ab6fd59262bc8593bf4dd26175cbe0d818fbda17.tar.gz
spike-ab6fd59262bc8593bf4dd26175cbe0d818fbda17.tar.bz2
rvv: MLEN=1 overlapping
-rw-r--r--riscv/decode.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/riscv/decode.h b/riscv/decode.h
index b90f3ec..f730bf0 100644
--- a/riscv/decode.h
+++ b/riscv/decode.h
@@ -428,7 +428,7 @@ static inline bool is_overlapped(const int astart, const int asize,
require(P.VU.vsew * 2 <= P.VU.ELEN); \
require((insn.rs2() & (P.VU.vlmul * 2 - 1)) == 0); \
require((insn.rd() & (P.VU.vlmul - 1)) == 0); \
- if (insn.v_vm() == 0 && P.VU.vlmul > 1) \
+ if (insn.v_vm() == 0) \
require(insn.rd() != 0);
#define VI_WIDE_CHECK_COMMON \
@@ -448,7 +448,7 @@ static inline bool is_overlapped(const int astart, const int asize,
VI_CHECK_ST_INDEX; \
if (insn.v_nf() > 0) \
require(!is_overlapped(insn.rd(), P.VU.vlmul, insn.rs2(), P.VU.vlmul)); \
- if (insn.v_vm() == 0 && (insn.v_nf() > 0 || P.VU.vlmul > 1)) \
+ if (insn.v_vm() == 0) \
require(insn.rd() != 0); \
#define VI_CHECK_MSS(is_vs1) \
@@ -479,7 +479,7 @@ static inline bool is_overlapped(const int astart, const int asize,
#define VI_CHECK_SXX \
VI_CHECK_STORE_SXX; \
- if (insn.v_vm() == 0 && (insn.v_nf() > 0 || P.VU.vlmul > 1)) \
+ if (insn.v_vm() == 0) \
require(insn.rd() != 0); \
#define VI_CHECK_DSS(is_vs1) \
@@ -531,7 +531,7 @@ static inline bool is_overlapped(const int astart, const int asize,
#define VI_CHECK_SLIDE(is_over) \
require((insn.rs2() & (P.VU.vlmul - 1)) == 0); \
require((insn.rd() & (P.VU.vlmul - 1)) == 0); \
- if (insn.v_vm() == 0 && P.VU.vlmul > 1) \
+ if (insn.v_vm() == 0) \
require(insn.rd() != 0); \
if (is_over) \
require(insn.rd() != insn.rs2()); \