summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resource.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2011-01-07 21:50:29 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2011-01-07 21:50:29 -0800
commit214cc0fafce09dbee6aedafa5e1148476cc6463f (patch)
tree250a3cdd7414ee507cc2e5389329349046d3c76f /src/cpu/inorder/resource.cc
parentd650f4138eaa68c856d0879e39a78f66d205b017 (diff)
downloadgem5-214cc0fafce09dbee6aedafa5e1148476cc6463f.tar.xz
inorder: get rid of references to mainEventQueue.
Events need to be scheduled on the queue assigned to the SimObject, not on the global queue (which should be going away). Also cleaned up a number of redundant expressions that made the code unnecessarily verbose.
Diffstat (limited to 'src/cpu/inorder/resource.cc')
-rw-r--r--src/cpu/inorder/resource.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cpu/inorder/resource.cc b/src/cpu/inorder/resource.cc
index 8cc8f9fe1..4eab89687 100644
--- a/src/cpu/inorder/resource.cc
+++ b/src/cpu/inorder/resource.cc
@@ -498,3 +498,15 @@ ResourceEvent::description()
return desc.c_str();
}
+
+void
+ResourceEvent::scheduleEvent(int delay)
+{
+ InOrderCPU *cpu = resource->cpu;
+ Tick when = curTick + resource->ticks(delay);
+
+ if (squashed())
+ cpu->reschedule(this, when);
+ else if (!scheduled())
+ cpu->schedule(this, when);
+}