summaryrefslogtreecommitdiff
path: root/src/cpu/pred/bpred_unit.cc
diff options
context:
space:
mode:
authorMitch Hayenga <mitch.hayenga@arm.com>2016-04-05 11:44:27 -0500
committerMitch Hayenga <mitch.hayenga@arm.com>2016-04-05 11:44:27 -0500
commit7bc52af7716168baa5deb28bb88475ddbba5d62a (patch)
tree23cf6a6c94e8386b2c64c210a4a9e6962234faf8 /src/cpu/pred/bpred_unit.cc
parentf902c0218ae3a8df558f1427302fbf0931b8f7d7 (diff)
downloadgem5-7bc52af7716168baa5deb28bb88475ddbba5d62a.tar.xz
cpu: Fix BTB threading oversight
The extant BTB code doesn't hash on the thread id but does check the thread id for 'btb hits'. This results in 1-thread of a multi-threaded workload taking a BTB entry, and all other threads missing for the same branch missing.
Diffstat (limited to 'src/cpu/pred/bpred_unit.cc')
-rw-r--r--src/cpu/pred/bpred_unit.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cpu/pred/bpred_unit.cc b/src/cpu/pred/bpred_unit.cc
index 8bb84f836..c38927c8d 100644
--- a/src/cpu/pred/bpred_unit.cc
+++ b/src/cpu/pred/bpred_unit.cc
@@ -59,7 +59,8 @@ BPredUnit::BPredUnit(const Params *params)
predHist(numThreads),
BTB(params->BTBEntries,
params->BTBTagSize,
- params->instShiftAmt),
+ params->instShiftAmt,
+ params->numThreads),
RAS(numThreads),
instShiftAmt(params->instShiftAmt)
{