summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/cpu.cc
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:37 -0400
committerKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:37 -0400
commit89d0f95bf02489ab8fed382af2f104c4788b8db6 (patch)
treee0ae62c3c28b5c902bcf5320b81393486335c5d7 /src/cpu/inorder/cpu.cc
parent479195d4cf5d52138a1dc3cf1e5ffe588c6e924f (diff)
downloadgem5-89d0f95bf02489ab8fed382af2f104c4788b8db6.tar.xz
inorder: branch predictor update
only update BTB on a taken branch and update branch predictor w/pcstate from instruction --- only pay attention to branch predictor updates if the the inst. is in fact a branch
Diffstat (limited to 'src/cpu/inorder/cpu.cc')
-rw-r--r--src/cpu/inorder/cpu.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc
index 03c44ea86..75e9e06d9 100644
--- a/src/cpu/inorder/cpu.cc
+++ b/src/cpu/inorder/cpu.cc
@@ -506,6 +506,9 @@ InOrderCPU::createBackEndSked(DynInstPtr inst)
W.needs(RegManager, UseDefUnit::WriteDestReg, idx);
}
+ if (inst->isControl())
+ W.needs(BPred, BranchPredictor::UpdatePredictor);
+
// Insert Back Schedule into our cache of
// resource schedules
addToSkedCache(inst, res_sked);