summaryrefslogtreecommitdiff
path: root/src/sim/ticked_object.cc
diff options
context:
space:
mode:
authorSean Wilson <spwilson2@wisc.edu>2017-06-27 13:07:51 -0500
committerSean Wilson <spwilson2@wisc.edu>2017-07-12 20:07:05 +0000
commit55f70760de9cf9d16905372d885b7925722721a8 (patch)
tree1c80dc85a693aa06172602866c5bd641caee6407 /src/sim/ticked_object.cc
parent1b7bf4ed75b55fdfc55d901775c837377268b661 (diff)
downloadgem5-55f70760de9cf9d16905372d885b7925722721a8.tar.xz
sim, gdb: Refactor some Event subclasses into lambdas
Change-Id: If3e4329204f27eda96b50ec6ac279ebc6ef23d99 Signed-off-by: Sean Wilson <spwilson2@wisc.edu> Reviewed-on: https://gem5-review.googlesource.com/3921 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/sim/ticked_object.cc')
-rw-r--r--src/sim/ticked_object.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/sim/ticked_object.cc b/src/sim/ticked_object.cc
index a9f3aceb7..1a04dc14f 100644
--- a/src/sim/ticked_object.cc
+++ b/src/sim/ticked_object.cc
@@ -46,7 +46,7 @@ Ticked::Ticked(ClockedObject &object_,
Stats::Scalar *imported_num_cycles,
Event::Priority priority) :
object(object_),
- event(*this, priority),
+ event([this]{ processClockEvent(); }, name(), false, priority),
running(false),
lastStopped(0),
/* Allocate numCycles if an external stat wasn't passed in */
@@ -56,6 +56,16 @@ Ticked::Ticked(ClockedObject &object_,
{ }
void
+Ticked::processClockEvent() {
+ ++tickCycles;
+ ++numCycles;
+ countCycles(Cycles(1));
+ evaluate();
+ if (running)
+ object.schedule(event, object.clockEdge(Cycles(1)));
+}
+
+void
Ticked::regStats()
{
if (numCyclesLocal) {