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:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user