summaryrefslogtreecommitdiff
path: root/src/cpu/minor/execute.cc
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@gmail.com>2015-04-03 11:42:10 -0500
committerNikos Nikoleris <nikos.nikoleris@gmail.com>2015-04-03 11:42:10 -0500
commit305e29b98ef369bcf5574a0a462f43c0bbc7ba5b (patch)
treee2699c1127421c8b8c86b7ebd37706919daa881e /src/cpu/minor/execute.cc
parent333988a73e06cb4067f113b7043ab68dd0e86c9d (diff)
downloadgem5-305e29b98ef369bcf5574a0a462f43c0bbc7ba5b.tar.xz
cpu: fix system total instructions accounting
The totalInstructions counter is only incremented when the whole instruction is commited and not on every microop. It was incorrectly reset in atomic and timing cpus. Committed by: Nilay Vaish <nilay@cs.wisc.edu>"
Diffstat (limited to 'src/cpu/minor/execute.cc')
-rw-r--r--src/cpu/minor/execute.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cpu/minor/execute.cc b/src/cpu/minor/execute.cc
index f7b773377..706fdf010 100644
--- a/src/cpu/minor/execute.cc
+++ b/src/cpu/minor/execute.cc
@@ -840,15 +840,15 @@ Execute::doInstCommitAccounting(MinorDynInstPtr inst)
thread->numInst++;
thread->numInsts++;
cpu.stats.numInsts++;
+ cpu.system->totalNumInsts++;
+
+ /* Act on events related to instruction counts */
+ cpu.comInstEventQueue[inst->id.threadId]->serviceEvents(thread->numInst);
+ cpu.system->instEventQueue.serviceEvents(cpu.system->totalNumInsts);
}
thread->numOp++;
thread->numOps++;
cpu.stats.numOps++;
- cpu.system->totalNumInsts++;
-
- /* Act on events related to instruction counts */
- cpu.comInstEventQueue[inst->id.threadId]->serviceEvents(thread->numInst);
- cpu.system->instEventQueue.serviceEvents(cpu.system->totalNumInsts);
/* Set the CP SeqNum to the numOps commit number */
if (inst->traceData)