From d99deff8ea296fd28b48da08aba577a1e7dfc01b Mon Sep 17 00:00:00 2001 From: Mitch Hayenga Date: Tue, 5 Apr 2016 12:20:19 -0500 Subject: cpu: Implement per-thread GHRs Branch predictors that use GHRs should index them on a per-thread basis. This makes that so. This is a re-spin of fb51231 after the revert (bd1c6789). --- src/cpu/pred/2bit_local.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/cpu/pred/2bit_local.cc') diff --git a/src/cpu/pred/2bit_local.cc b/src/cpu/pred/2bit_local.cc index 36ca1593e..9e1c781c5 100644 --- a/src/cpu/pred/2bit_local.cc +++ b/src/cpu/pred/2bit_local.cc @@ -78,7 +78,7 @@ LocalBP::reset() } void -LocalBP::btbUpdate(Addr branch_addr, void * &bp_history) +LocalBP::btbUpdate(ThreadID tid, Addr branch_addr, void * &bp_history) { // Place holder for a function that is called to update predictor history when // a BTB entry is invalid or not found. @@ -86,7 +86,7 @@ LocalBP::btbUpdate(Addr branch_addr, void * &bp_history) bool -LocalBP::lookup(Addr branch_addr, void * &bp_history) +LocalBP::lookup(ThreadID tid, Addr branch_addr, void * &bp_history) { bool taken; uint8_t counter_val; @@ -117,7 +117,8 @@ LocalBP::lookup(Addr branch_addr, void * &bp_history) } void -LocalBP::update(Addr branch_addr, bool taken, void *bp_history, bool squashed) +LocalBP::update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history, + bool squashed) { assert(bp_history == NULL); unsigned local_predictor_idx; @@ -152,7 +153,7 @@ LocalBP::getLocalIndex(Addr &branch_addr) } void -LocalBP::uncondBranch(Addr pc, void *&bp_history) +LocalBP::uncondBranch(ThreadID tid, Addr pc, void *&bp_history) { } -- cgit v1.2.3