diff -r 24cfe67c0749 -r 1cb43a0d4ec6 src/cpu/o3/commit_impl.hh --- a/src/cpu/o3/commit_impl.hh Mon Mar 03 14:44:57 2014 +0100 +++ b/src/cpu/o3/commit_impl.hh Tue Mar 04 15:22:59 2014 -0500 @@ -561,7 +561,7 @@ // then use one older sequence number. // Hopefully this doesn't mess things up. Basically I want to squash // all instructions of this thread. - InstSeqNum squashed_inst = rob->isEmpty() ? + InstSeqNum squashed_inst = rob->isEmpty(tid) ? lastCommitedSeqNum[tid] : rob->readHeadInst(tid)->seqNum - 1; // All younger instructions will be squashed. Set the sequence diff -r 24cfe67c0749 -r 1cb43a0d4ec6 src/cpu/o3/cpu.cc --- a/src/cpu/o3/cpu.cc Mon Mar 03 14:44:57 2014 +0100 +++ b/src/cpu/o3/cpu.cc Tue Mar 04 15:22:59 2014 -0500 @@ -1640,7 +1640,7 @@ if (instList.empty()) { return; - } else if (rob.isEmpty(/*tid*/)) { + } else if (rob.isEmpty(tid)) { DPRINTF(O3CPU, "ROB is empty, squashing all insts.\n"); end_it = instList.begin(); rob_empty = true; diff -r 24cfe67c0749 -r 1cb43a0d4ec6 src/cpu/o3/iew_impl.hh --- a/src/cpu/o3/iew_impl.hh Mon Mar 03 14:44:57 2014 +0100 +++ b/src/cpu/o3/iew_impl.hh Tue Mar 04 15:22:59 2014 -0500 @@ -1598,7 +1598,7 @@ toRename->iewInfo[tid].usedIQ = true; toRename->iewInfo[tid].freeIQEntries = - instQueue.numFreeEntries(); + instQueue.numFreeEntries(tid); toRename->iewInfo[tid].usedLSQ = true; toRename->iewInfo[tid].freeLSQEntries = ldstQueue.numFreeEntries(tid); diff -r 24cfe67c0749 -r 1cb43a0d4ec6 src/cpu/o3/rob_impl.hh --- a/src/cpu/o3/rob_impl.hh Mon Mar 03 14:44:57 2014 +0100 +++ b/src/cpu/o3/rob_impl.hh Tue Mar 04 15:22:59 2014 -0500 @@ -486,7 +486,7 @@ void ROB::squash(InstSeqNum squash_num, ThreadID tid) { - if (isEmpty()) { + if (isEmpty(tid)) { DPRINTF(ROB, "Does not need to squash due to being empty " "[sn:%i]\n", squash_num);