summaryrefslogtreecommitdiff
path: root/inc/wb.h
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-05-10 22:28:01 -0400
committerbd <bdunahu@operationnull.com>2025-05-10 22:28:01 -0400
commit6f4e9e0b914c3e68691a5d884cbad0b5813fcf18 (patch)
tree44205b454c11a2d98711cd3226b4828e12a8479a /inc/wb.h
parent2269a338f9e5ad7a29bef5ff73bbb4d72489a92e (diff)
Fix bug where too many vector elements were written back
Diffstat (limited to 'inc/wb.h')
-rw-r--r--inc/wb.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/inc/wb.h b/inc/wb.h
index d3a1b93..35c9240 100644
--- a/inc/wb.h
+++ b/inc/wb.h
@@ -24,8 +24,8 @@
class WB : public Stage
{
public:
- using Stage::Stage;
using Stage::advance;
+ using Stage::Stage;
private:
void advance_helper() override;
@@ -47,6 +47,13 @@ class WB : public Stage
* STORE.
*/
bool should_jump();
+ /**
+ * @return the vector register to be stored, obtained by copying the
+ * unfilled elements in the destination register to the source. This is
+ * required to ensure what is written back only changes VECTOR_LENGTH number
+ * of elements.
+ */
+ std::array<signed int, V_R_LIMIT> copy_extra_vector_elements();
};
#endif /* WB_H_INCLUDED */