diff options
author | Steve Reinhardt <steve.reinhardt@amd.com> | 2011-01-07 21:50:29 -0800 |
---|---|---|
committer | Steve Reinhardt <steve.reinhardt@amd.com> | 2011-01-07 21:50:29 -0800 |
commit | 214cc0fafce09dbee6aedafa5e1148476cc6463f (patch) | |
tree | 250a3cdd7414ee507cc2e5389329349046d3c76f /src/cpu/inorder/resource.cc | |
parent | d650f4138eaa68c856d0879e39a78f66d205b017 (diff) | |
download | gem5-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.cc | 12 |
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); +} |