diff options
Diffstat (limited to 'src/cpu/o3/iew_impl.hh')
-rw-r--r-- | src/cpu/o3/iew_impl.hh | 11 |
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 { |