summaryrefslogtreecommitdiff
path: root/src/sim/if.cc
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-18 00:03:56 -0400
committerbd <bdunahu@operationnull.com>2025-04-18 00:03:56 -0400
commit360e6cbffb3d2c1279ae7c3a02c2850f5523eeb2 (patch)
tree5bc5c848ca6b5326480c7b0760087db79c8653f1 /src/sim/if.cc
parent12a8ceb7b7046652264c98a2d0de2dd4fd7c5cd4 (diff)
Keep track of squashed instructions in DTO object
Diffstat (limited to 'src/sim/if.cc')
-rw-r--r--src/sim/if.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/sim/if.cc b/src/sim/if.cc
index bab2608..6494912 100644
--- a/src/sim/if.cc
+++ b/src/sim/if.cc
@@ -12,8 +12,9 @@ InstrDTO *IF::advance(Response p)
this->advance_helper();
if (this->curr_instr != nullptr && p == WAIT) {
- // mutual consent
- ++this->pc;
+ // don't increment PC if the PC was just set by wb
+ if (this->curr_instr->is_squashed() != 1)
+ ++this->pc;
r = new InstrDTO(*this->curr_instr);
delete curr_instr;
curr_instr = nullptr;