aboutsummaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-06-17 10:35:30 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-06-17 19:19:50 -0700
commit5d8dcb02f36515fb576a05627bfa9597acdd6013 (patch)
tree8745c00b0c05272def4578f74c81365f8278ed94 /riscv
parent23461637db6c7add002112bca4c430e613522f88 (diff)
downloadspike-5d8dcb02f36515fb576a05627bfa9597acdd6013.zip
spike-5d8dcb02f36515fb576a05627bfa9597acdd6013.tar.gz
spike-5d8dcb02f36515fb576a05627bfa9597acdd6013.tar.bz2
rvv: make v[sl]1r respect vstart
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Diffstat (limited to 'riscv')
-rw-r--r--riscv/insns/vl1r_v.h2
-rw-r--r--riscv/insns/vs1r_v.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/riscv/insns/vl1r_v.h b/riscv/insns/vl1r_v.h
index 61e8765..9289634 100644
--- a/riscv/insns/vl1r_v.h
+++ b/riscv/insns/vl1r_v.h
@@ -2,7 +2,7 @@
require_vector_novtype(true);
const reg_t baseAddr = RS1;
const reg_t vd = insn.rd();
-for (reg_t i = 0; i < P.VU.vlenb; ++i) {
+for (reg_t i = P.VU.vstart; i < P.VU.vlenb; ++i) {
auto val = MMU.load_uint8(baseAddr + i);
P.VU.elt<uint8_t>(vd, i, true) = val;
}
diff --git a/riscv/insns/vs1r_v.h b/riscv/insns/vs1r_v.h
index 20dcece..5ccbd5f 100644
--- a/riscv/insns/vs1r_v.h
+++ b/riscv/insns/vs1r_v.h
@@ -2,7 +2,7 @@
require_vector_novtype(true);
const reg_t baseAddr = RS1;
const reg_t vs3 = insn.rd();
-for (reg_t i = 0; i < P.VU.vlenb; ++i) {
+for (reg_t i = P.VU.vstart; i < P.VU.vlenb; ++i) {
auto val = P.VU.elt<uint8_t>(vs3, i);
MMU.store_uint8(baseAddr + i, val);
}