aboutsummaryrefslogtreecommitdiff
path: root/riscv/execute.cc
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-05-21 21:29:43 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-05-22 00:19:53 -0700
commit316ae3888dae19bbb27d4dbd719d1bc0fb39a9e0 (patch)
tree00fda0ae87b08c02db27595cc8d9f3725a914568 /riscv/execute.cc
parent68f33575886a491784b4bf46a3d0b0a249b9809d (diff)
downloadspike-316ae3888dae19bbb27d4dbd719d1bc0fb39a9e0.zip
spike-316ae3888dae19bbb27d4dbd719d1bc0fb39a9e0.tar.gz
spike-316ae3888dae19bbb27d4dbd719d1bc0fb39a9e0.tar.bz2
rvv: remove remove vlmul
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Diffstat (limited to 'riscv/execute.cc')
-rw-r--r--riscv/execute.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/riscv/execute.cc b/riscv/execute.cc
index 5cd29b7..2ed7546 100644
--- a/riscv/execute.cc
+++ b/riscv/execute.cc
@@ -107,7 +107,10 @@ 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 m%ld l%ld", p->VU.vsew, p->VU.vlmul, p->VU.vl);
+ if (p->VU.vflmul < 0)
+ fprintf(log_file, " e%ld mf%ld l%ld", p->VU.vsew, (reg_t)(1.0/p->VU.vflmul), p->VU.vl);
+ else
+ fprintf(log_file, " e%ld m%ld l%ld", p->VU.vsew, (reg_t)p->VU.vflmul, p->VU.vl);
show_vec = true;
}
@@ -253,10 +256,9 @@ void processor_t::step(size_t n)
#if 1
if (debug && !state.serialized) {
prev_reg_state_t *saved = prev_state;
- float vlmul = VU.fractional_lmul? VU.vflmul : VU.vlmul;
if (saved->VU.setvl_count != VU.setvl_count) {
fprintf(stderr, "vconfig <- sew=%lu vlmul=%.3f vlmax=%lu vl=%lu vta=%ld vma=%ld\n",
- VU.vsew, vlmul, VU.vlmax, VU.vl, VU.vta, VU.vma);
+ VU.vsew, VU.vflmul, VU.vlmax, VU.vl, VU.vta, VU.vma);
saved->VU.setvl_count = VU.setvl_count;
}
for (int i=0; i<NXPR; ++i) {
@@ -283,7 +285,7 @@ void processor_t::step(size_t n)
for (reg_t i=0; i<NVPR; ++i) {
if (!VU.reg_referenced[i]) continue;
fprintf(stderr, "vconfig <- sew=%lu vlmul=%.3f eew=%lu emul=%.3f vlmax=%lu vl=%lu\n",
- VU.vsew, vlmul, VU.veew, VU.vemul, VU.vlmax, VU.vl);
+ VU.vsew, VU.vflmul, VU.veew, VU.vemul, VU.vlmax, VU.vl);
for (reg_t j=0; j<VU.VLEN/32; ++j) {
uint32_t &old = saved->VU.elt<uint32_t>(i, j);
uint32_t now = VU.elt<uint32_t>(i, j);