aboutsummaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorrbuchner <ryan.buchner@arilinc.com>2024-03-11 22:51:10 -0700
committerrbuchner <ryan.buchner@arilinc.com>2024-03-11 22:51:12 -0700
commita9831b437729b2c5a46faf868c7c5c30ab842ca3 (patch)
tree90bc2f0f738a6c0b64ee524ad4dffa9e5b192d9c /riscv
parent002d2733ce31c2e3c06afff4f9df755f61099443 (diff)
downloadspike-a9831b437729b2c5a46faf868c7c5c30ab842ca3.zip
spike-a9831b437729b2c5a46faf868c7c5c30ab842ca3.tar.gz
spike-a9831b437729b2c5a46faf868c7c5c30ab842ca3.tar.bz2
Update vcompress.vm to not write vstart with 0 upon completion
Vmcompress.vm requires vstart==0, so writing vstart with 0 is redundant. To do this, spin off VI_LOOP_END_BASE from VI_LOOP_END. VI_LOOP_END will contain VI_LOOP_END_BASE as well as a write of 0 to vstart. See #1623 for full discussion.
Diffstat (limited to 'riscv')
-rw-r--r--riscv/insns/vcompress_vm.h2
-rw-r--r--riscv/v_ext_macros.h5
2 files changed, 5 insertions, 2 deletions
diff --git a/riscv/insns/vcompress_vm.h b/riscv/insns/vcompress_vm.h
index 7195345..d35b8ba 100644
--- a/riscv/insns/vcompress_vm.h
+++ b/riscv/insns/vcompress_vm.h
@@ -30,4 +30,4 @@ VI_GENERAL_LOOP_BASE
++pos;
}
-VI_LOOP_END;
+VI_LOOP_END_BASE;
diff --git a/riscv/v_ext_macros.h b/riscv/v_ext_macros.h
index b198d54..42d723a 100644
--- a/riscv/v_ext_macros.h
+++ b/riscv/v_ext_macros.h
@@ -215,8 +215,11 @@ static inline bool is_overlapped_widen(const int astart, int asize,
VI_GENERAL_LOOP_BASE \
VI_LOOP_ELEMENT_SKIP();
+#define VI_LOOP_END_BASE \
+ }
+
#define VI_LOOP_END \
- } \
+ VI_LOOP_END_BASE \
P.VU.vstart->write(0);
#define VI_LOOP_REDUCTION_END(x) \