aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2020-06-17 19:46:35 -0700
committerGitHub <noreply@github.com>2020-06-17 19:46:35 -0700
commit958dcdc6fe6ed648444b622bbe667d6d477549ec (patch)
tree8745c00b0c05272def4578f74c81365f8278ed94
parent960274cda20af7303fdf8109e27d9720395ae21f (diff)
parent5d8dcb02f36515fb576a05627bfa9597acdd6013 (diff)
downloadspike-958dcdc6fe6ed648444b622bbe667d6d477549ec.zip
spike-958dcdc6fe6ed648444b622bbe667d6d477549ec.tar.gz
spike-958dcdc6fe6ed648444b622bbe667d6d477549ec.tar.bz2
Merge pull request #491 from chihminchao/rvv-fix-2020-06-18
Rvv fix 2020 06 18
-rw-r--r--riscv/execute.cc4
-rw-r--r--riscv/insns/vl1r_v.h2
-rw-r--r--riscv/insns/vs1r_v.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/riscv/execute.cc b/riscv/execute.cc
index e5513d8..7e89cd1 100644
--- a/riscv/execute.cc
+++ b/riscv/execute.cc
@@ -109,8 +109,8 @@ static void commit_log_print_insn(processor_t *p, reg_t pc, insn_t insn)
if (!show_vec && (is_vreg || is_vec)) {
fprintf(log_file, " e%ld %s%ld l%ld",
p->VU.vsew,
- p->VU.vflmul < 0 ? "mf" : "m",
- p->VU.vflmul < 0 ? (reg_t)(1 / p->VU.vflmul) : (reg_t)p->VU.vflmul,
+ p->VU.vflmul < 1 ? "mf" : "m",
+ p->VU.vflmul < 1 ? (reg_t)(1 / p->VU.vflmul) : (reg_t)p->VU.vflmul,
p->VU.vl);
show_vec = true;
}
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);
}