From 25ce77db5f0dbfe6064eb0553591f1b956bad24a Mon Sep 17 00:00:00 2001 From: bd Date: Tue, 1 Apr 2025 15:57:14 -0400 Subject: Fix a lot of pipeline bugs --- inc/wb.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'inc/wb.h') diff --git a/inc/wb.h b/inc/wb.h index 62cef17..c4755ea 100644 --- a/inc/wb.h +++ b/inc/wb.h @@ -14,9 +14,27 @@ class WB : public Stage */ WB(Stage *next); using Stage::advance; - + private: void advance_helper() override; + /** + * Performs the actual work of storing into a register. + */ + void write_handler(); + /** + * Performs the actual work of processing a jump instruction. + */ + void jump_handler(); + /** + * @return true if the current instruction is an R or I type and is not a + * STORE. + */ + bool should_write(); + /** + * @return true if the current instruction is a J type and is not a push. + * STORE. + */ + bool should_jump(); }; #endif /* WB_H_INCLUDED */ -- cgit v1.2.3