aboutsummaryrefslogtreecommitdiff
path: root/riscv/processor.h
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2019-04-15 21:04:20 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2019-04-15 21:04:20 -0700
commitb97e4fb1a7ab774ca8f340a9d7eb30a4455b387f (patch)
treeb2e894e49c6e663edf57a402f71cd7affd45f27b /riscv/processor.h
parent6db96b82734ff74f616aea6cbbb80b3a787223c3 (diff)
downloadspike-b97e4fb1a7ab774ca8f340a9d7eb30a4455b387f.zip
spike-b97e4fb1a7ab774ca8f340a9d7eb30a4455b387f.tar.gz
spike-b97e4fb1a7ab774ca8f340a9d7eb30a4455b387f.tar.bz2
Revert "Revert "rvv: restore reg_reference keeping""
revert wrong revert This reverts commit ffda9507ae644cc7700608b12d3facd2849e4cad.
Diffstat (limited to 'riscv/processor.h')
-rw-r--r--riscv/processor.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/riscv/processor.h b/riscv/processor.h
index b290c18..e47fc09 100644
--- a/riscv/processor.h
+++ b/riscv/processor.h
@@ -166,6 +166,9 @@ struct vectorUnit_t {
T& elt(reg_t vReg, reg_t n){
// this still needs to be adjusted for SLEN != VLEN
assert(vsew!=0);
+ reg_t elts_per_reg = (VLEN >> 3) / (sizeof(T));
+ vReg += n / elts_per_reg;
+ n = n % elts_per_reg;
reg_referenced[vReg] = 1;
#if 0
if (((vReg & reg_mask) != vReg) || (n >= vlmax)){