aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-02-20 00:15:14 -0800
committerChih-Min Chao <chihmin.chao@sifive.com>2020-02-20 01:50:36 -0800
commit192225712c1e2bda558b733c5d3aa5b46df7cc76 (patch)
tree7ed0bd86ce31581e2b94ad1e3e5eab2684129605
parent035a6790538c97489c194fce2df3899ae8484f83 (diff)
downloadriscv-isa-sim-192225712c1e2bda558b733c5d3aa5b46df7cc76.zip
riscv-isa-sim-192225712c1e2bda558b733c5d3aa5b46df7cc76.tar.gz
riscv-isa-sim-192225712c1e2bda558b733c5d3aa5b46df7cc76.tar.bz2
rvv: only check segment overlapping in index load
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
-rw-r--r--riscv/decode.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/riscv/decode.h b/riscv/decode.h
index 1372b9a..ee07577 100644
--- a/riscv/decode.h
+++ b/riscv/decode.h
@@ -419,13 +419,11 @@ static inline bool is_overlapped(const int astart, const int asize,
require_vector; \
require((insn.rd() & (P.VU.vlmul - 1)) == 0); \
require((insn.rs2() & (P.VU.vlmul - 1)) == 0); \
- 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)) \
- require(insn.rd() != 0); \
#define VI_CHECK_LD_INDEX \
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)) \
require(insn.rd() != 0); \