diff -r 471fd67f583a -r c94e467c4de8 src/cpu/o3/cpu.cc --- a/src/cpu/o3/cpu.cc Sun Jul 03 15:46:00 2011 -0700 +++ b/src/cpu/o3/cpu.cc Sun Jul 03 16:13:19 2011 -0700 @@ -1536,18 +1536,20 @@ FullO3CPU::cleanUpRemovedInsts() { while (!removeList.empty()) { - DPRINTF(O3CPU, "Removing instruction, " - "[tid:%i] [sn:%lli] PC %s\n", - (*removeList.front())->threadNumber, - (*removeList.front())->seqNum, - (*removeList.front())->pcState()); + DynInstPtr front = *removeList.front(); + if (front->isTranslationDelayed()) { + //Translation isn't done with this instruction yet. + break; + } + DPRINTF(O3CPU, "Removing instruction, [tid:%i] [sn:%lli] PC %s\n", + front->threadNumber, front->seqNum, front->pcState()); instList.erase(removeList.front()); removeList.pop(); } - removeInstsThisCycle = false; + removeInstsThisCycle = !removeList.empty(); } /* template