inorder: replace schedEvent() code with reschedule().
There were several copies of similar functions that looked like they all replicated reschedule(), so I replaced them with direct calls. Keeping this separate from the previous cset since there may be some subtle functional differences if the code ever reschedules an event that is scheduled but not squashed (though none were detected in the regressions).
This commit is contained in:
parent
214cc0fafc
commit
d60c293bbc
4 changed files with 9 additions and 26 deletions
|
@ -157,12 +157,8 @@ InOrderCPU::CPUEvent::description()
|
|||
void
|
||||
InOrderCPU::CPUEvent::scheduleEvent(int delay)
|
||||
{
|
||||
Tick when = cpu->nextCycle(curTick + cpu->ticks(delay));
|
||||
|
||||
if (squashed())
|
||||
cpu->reschedule(this, when);
|
||||
else if (!scheduled())
|
||||
cpu->schedule(this, when);
|
||||
assert(!scheduled() || squashed());
|
||||
cpu->reschedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)), true);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -156,12 +156,8 @@ class InOrderCPU : public BaseCPU
|
|||
/** Schedule tick event, regardless of its current state. */
|
||||
void scheduleTickEvent(int delay)
|
||||
{
|
||||
Tick when = nextCycle(curTick + ticks(delay));
|
||||
|
||||
if (tickEvent.squashed())
|
||||
reschedule(&tickEvent, when);
|
||||
else if (!tickEvent.scheduled())
|
||||
schedule(&tickEvent, when);
|
||||
assert(!tickEvent.scheduled() || tickEvent.squashed());
|
||||
reschedule(&tickEvent, nextCycle(curTick + ticks(delay)), true);
|
||||
}
|
||||
|
||||
/** Unschedule tick event, regardless of its current state. */
|
||||
|
|
|
@ -502,11 +502,7 @@ ResourceEvent::description()
|
|||
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);
|
||||
assert(!scheduled() || squashed());
|
||||
resource->cpu->reschedule(this,
|
||||
curTick + resource->ticks(delay), true);
|
||||
}
|
||||
|
|
|
@ -541,13 +541,8 @@ void
|
|||
ResourcePool::ResPoolEvent::scheduleEvent(int delay)
|
||||
{
|
||||
InOrderCPU *cpu = resPool->cpu;
|
||||
Tick when = cpu->nextCycle(curTick + cpu->ticks(delay));
|
||||
|
||||
if (squashed()) {
|
||||
cpu->reschedule(this, when);
|
||||
} else if (!scheduled()) {
|
||||
cpu->schedule(this, when);
|
||||
}
|
||||
assert(!scheduled() || squashed());
|
||||
cpu->reschedule(this, cpu->nextCycle(curTick + cpu->ticks(delay)), true);
|
||||
}
|
||||
|
||||
/** Unschedule resource event, regardless of its current state. */
|
||||
|
|
Loading…
Reference in a new issue