summaryrefslogtreecommitdiff
path: root/src/sim/dum.cc
diff options
context:
space:
mode:
authorSiddarth Suresh <155843085+SiddarthSuresh98@users.noreply.github.com>2025-03-30 19:34:17 -0400
committerGitHub <noreply@github.com>2025-03-30 19:34:17 -0400
commit12a9e93f913c0057f2ef32f5894931c8b4bd3a85 (patch)
tree88669ed2be55b4f455ef4ac56263a01dd5f70a40 /src/sim/dum.cc
parenteedf9686eb60f2008e7766cc9a5d3e037b9dae64 (diff)
parent36dabe6183af98b2e3f6d0316436dc3affc3d986 (diff)
Merge pull request #41 from bdunahu/bdunahu
Add mock stage, proper decode tests changes look good
Diffstat (limited to 'src/sim/dum.cc')
-rw-r--r--src/sim/dum.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/sim/dum.cc b/src/sim/dum.cc
new file mode 100644
index 0000000..dd16660
--- /dev/null
+++ b/src/sim/dum.cc
@@ -0,0 +1,31 @@
+#include "dum.h"
+#include "accessor.h"
+#include "instrDTO.h"
+#include "response.h"
+#include "stage.h"
+#include "utils.h"
+
+DUM::DUM(Stage *stage) : Stage(stage) { this->id = IDLE; }
+
+InstrDTO *DUM::advance(Response p)
+{
+ InstrDTO *r = curr_instr;
+
+ this->advance_helper();
+ if (this->status == OK && p == OK) {
+ this->curr_instr->set_time_of(this->id, this->clock_cycle);
+ r = new InstrDTO(*this->curr_instr);
+ delete curr_instr;
+ curr_instr = nullptr;
+ }
+
+ return r;
+}
+
+void DUM::advance_helper() {}
+
+void DUM::set_curr_instr(InstrDTO *d)
+{
+ this->curr_instr = d;
+ this->status = OK;
+}