cpu: commit probe notification on every microop or macroop

The ppCommit should notify the attached listener every time the cpu commits
a microop or non microcoded insturction. The listener can then decide
whether it will process only the last microop (eg. SimPoint probe).

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
This commit is contained in:
Nikos Nikoleris
2015-01-20 14:15:27 -06:00
parent 3cb9c361e2
commit a35283ac65
2 changed files with 4 additions and 4 deletions

View File

@@ -580,10 +580,7 @@ AtomicSimpleCPU::tick()
// keep an instruction count
if (fault == NoFault) {
countInst();
if (!curStaticInst->isMicroop() ||
curStaticInst->isLastMicroop()) {
ppCommit->notify(std::make_pair(thread, curStaticInst));
}
ppCommit->notify(std::make_pair(thread, curStaticInst));
}
else if (traceData && !DTRACE(ExecFaulting)) {
delete traceData;

View File

@@ -79,6 +79,9 @@ SimPoint::profile(const std::pair<SimpleThread*, StaticInstPtr>& p)
SimpleThread* thread = p.first;
const StaticInstPtr &inst = p.second;
if (inst->isMicroop() && !inst->isLastMicroop())
return;
if (!currentBBVInstCount)
currentBBV.first = thread->pcState().instAddr();