summaryrefslogtreecommitdiff
path: root/src/cpu/o3/iew_impl.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/iew_impl.hh')
-rw-r--r--src/cpu/o3/iew_impl.hh11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cpu/o3/iew_impl.hh b/src/cpu/o3/iew_impl.hh
index 6c5c57fb7..9cfbb3cfc 100644
--- a/src/cpu/o3/iew_impl.hh
+++ b/src/cpu/o3/iew_impl.hh
@@ -113,6 +113,14 @@ DefaultIEW<Impl>::name() const
template <class Impl>
void
+DefaultIEW<Impl>::regProbePoints()
+{
+ ppDispatch = new ProbePointArg<DynInstPtr>(cpu->getProbeManager(), "Dispatch");
+ ppMispredict = new ProbePointArg<DynInstPtr>(cpu->getProbeManager(), "Mispredict");
+}
+
+template <class Impl>
+void
DefaultIEW<Impl>::regStats()
{
using namespace Stats;
@@ -1158,6 +1166,7 @@ DefaultIEW<Impl>::dispatchInsts(ThreadID tid)
#if TRACING_ON
inst->dispatchTick = curTick() - inst->fetchTick;
#endif
+ ppDispatch->notify(inst);
}
if (!insts_to_dispatch.empty()) {
@@ -1357,6 +1366,8 @@ DefaultIEW<Impl>::executeInsts()
// If incorrect, then signal the ROB that it must be squashed.
squashDueToBranch(inst, tid);
+ ppMispredict->notify(inst);
+
if (inst->readPredTaken()) {
predictedTakenIncorrect++;
} else {