diff options
author | Korey Sewell <ksewell@umich.edu> | 2009-05-12 15:01:16 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2009-05-12 15:01:16 -0400 |
commit | 3a057bdbb10a265fb36f7827cd06142ad1624530 (patch) | |
tree | b46e844fd6006561a0033aaefe8790b02c50752b /src/cpu/inorder/cpu.cc | |
parent | f1c97e830b2bf9d1fb457050f97dfd4ec9312932 (diff) | |
download | gem5-3a057bdbb10a265fb36f7827cd06142ad1624530.tar.xz |
inorder-tlb: squash insts in TLB correctly
TLB had a bug where if it was stalled and waiting , it would not squash all instructions older than squashed instruction correctly
* * *
Diffstat (limited to 'src/cpu/inorder/cpu.cc')
-rw-r--r-- | src/cpu/inorder/cpu.cc | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc index 51f763112..c522fc238 100644 --- a/src/cpu/inorder/cpu.cc +++ b/src/cpu/inorder/cpu.cc @@ -80,6 +80,22 @@ InOrderCPU::CPUEvent::CPUEvent(InOrderCPU *_cpu, CPUEventType e_type, setEvent(e_type, fault, _tid, _vpe); } + +std::string InOrderCPU::eventNames[NumCPUEvents] = +{ + "ActivateThread", + "DeallocateThread", + "SuspendThread", + "DisableThreads", + "EnableThreads", + "DisableVPEs", + "EnableVPEs", + "Trap", + "InstGraduated", + "SquashAll", + "UpdatePCs" +}; + void InOrderCPU::CPUEvent::process() { @@ -486,8 +502,8 @@ InOrderCPU::scheduleCpuEvent(CPUEventType c_event, Fault fault, CPUEvent *cpu_event = new CPUEvent(this, c_event, fault, tid, vpe); if (delay >= 0) { - DPRINTF(InOrderCPU, "Scheduling CPU Event Type #%i for cycle %i.\n", - c_event, curTick + delay); + DPRINTF(InOrderCPU, "Scheduling CPU Event Type #%s for cycle %i.\n", + eventNames[c_event], curTick + delay); mainEventQueue.schedule(cpu_event,curTick + delay); } else { cpu_event->process(); |