summaryrefslogtreecommitdiff
path: root/src/cpu/pred/2bit_local.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/pred/2bit_local.cc')
-rw-r--r--src/cpu/pred/2bit_local.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cpu/pred/2bit_local.cc b/src/cpu/pred/2bit_local.cc
index 9e1c781c5..6f821e94c 100644
--- a/src/cpu/pred/2bit_local.cc
+++ b/src/cpu/pred/2bit_local.cc
@@ -123,6 +123,12 @@ LocalBP::update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,
assert(bp_history == NULL);
unsigned local_predictor_idx;
+ // No state to restore, and we do not update on the wrong
+ // path.
+ if (squashed) {
+ return;
+ }
+
// Update the local predictor.
local_predictor_idx = getLocalIndex(branch_addr);