From 360e6cbffb3d2c1279ae7c3a02c2850f5523eeb2 Mon Sep 17 00:00:00 2001 From: bd Date: Fri, 18 Apr 2025 00:03:56 -0400 Subject: Keep track of squashed instructions in DTO object --- src/sim/if.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/sim/if.cc') 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; -- cgit v1.2.3