aboutsummaryrefslogtreecommitdiff
path: root/riscv/decode.h
diff options
context:
space:
mode:
authorDave.Wen <dave.wen@sifive.com>2020-05-17 20:23:05 -0700
committerDave.Wen <dave.wen@sifive.com>2020-05-17 20:23:20 -0700
commita2fd1be698c2ff2fe067ea301b4f5c8173ff09a3 (patch)
treeaeb656b4308e8e4846c149c2f00cffb22325cd35 /riscv/decode.h
parent425ad2f1420c124ffc505b508f780c38c82edcb5 (diff)
downloadspike-a2fd1be698c2ff2fe067ea301b4f5c8173ff09a3.zip
spike-a2fd1be698c2ff2fe067ea301b4f5c8173ff09a3.tar.gz
spike-a2fd1be698c2ff2fe067ea301b4f5c8173ff09a3.tar.bz2
rvv: mlen=1 WIP
Diffstat (limited to 'riscv/decode.h')
-rw-r--r--riscv/decode.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/riscv/decode.h b/riscv/decode.h
index 9d6b7be..b90f3ec 100644
--- a/riscv/decode.h
+++ b/riscv/decode.h
@@ -462,19 +462,20 @@ static inline bool is_overlapped(const int astart, const int asize,
}
#define VI_CHECK_SSS(is_vs1) \
+ if (insn.v_vm() == 0) \
+ require(insn.rd() != 0); \
if (P.VU.vlmul > 1) { \
require((insn.rd() & (P.VU.vlmul - 1)) == 0); \
require((insn.rs2() & (P.VU.vlmul - 1)) == 0); \
if (is_vs1) { \
require((insn.rs1() & (P.VU.vlmul - 1)) == 0); \
} \
- if (insn.v_vm() == 0) \
- require(insn.rd() != 0); \
}
#define VI_CHECK_STORE_SXX \
require_vector; \
- require((insn.rd() & (P.VU.vlmul - 1)) == 0);
+ if (insn.v_vm() == 0) \
+ require(insn.rd() != 0);
#define VI_CHECK_SXX \
VI_CHECK_STORE_SXX; \