643a644,646
> Fault new_interrupt = cpu->getInterrupts();
> assert(new_interrupt != NoFault);
>
741,753d743
< #if ISA_HAS_DELAY_SLOT
< InstSeqNum bdelay_done_seq_num = squashed_inst;
< bool squash_bdelay_slot = fromIEW->squashDelaySlot[tid];
< bool branchMispredict = fromIEW->branchMispredict[tid];
<
< // Squashing/not squashing the branch delay slot only makes
< // sense when you're squashing from a branch, ie from a branch
< // mispredict.
< if (branchMispredict && !squash_bdelay_slot) {
< bdelay_done_seq_num++;
< }
< #endif
<
756,758d745
< #if ISA_HAS_DELAY_SLOT
< bdelay_done_seq_num--;
< #endif
765,769d751
< #if ISA_HAS_DELAY_SLOT
< rob->squash(bdelay_done_seq_num, tid);
< toIEW->commitInfo[tid].squashDelaySlot = squash_bdelay_slot;
< toIEW->commitInfo[tid].bdelayDoneSeqNum = bdelay_done_seq_num;
< #else
771,772d752
< toIEW->commitInfo[tid].squashDelaySlot = true;
< #endif
809,812d788
< } else {
< #if ISA_HAS_DELAY_SLOT
< skidInsert();
< #endif
1164d1139
< #if ISA_HAS_DELAY_SLOT
1166,1174d1140
< int insts_to_process = std::min((int)renameWidth,
< (int)(fromRename->size + skidBuffer.size()));
< int rename_idx = 0;
<
< DPRINTF(Commit, "%i insts available to process. Rename Insts:%i "
< "SkidBuffer Insts:%i\n", insts_to_process, fromRename->size,
< skidBuffer.size());
< #else
< // Read any renamed instructions and place them into the ROB.
1176d1141
< #endif
1178d1142
<
1182,1192d1145
< #if ISA_HAS_DELAY_SLOT
< // Get insts from skidBuffer or from Rename
< if (skidBuffer.size() > 0) {
< DPRINTF(Commit, "Grabbing skidbuffer inst.\n");
< inst = skidBuffer.front();
< skidBuffer.pop();
< } else {
< DPRINTF(Commit, "Grabbing rename inst.\n");
< inst = fromRename->insts[rename_idx++];
< }
< #else
1194d1146
< #endif
1216,1239d1167
<
< #if ISA_HAS_DELAY_SLOT
< if (rename_idx < fromRename->size) {
< DPRINTF(Commit,"Placing Rename Insts into skidBuffer.\n");
<
< for (;
< rename_idx < fromRename->size;
< rename_idx++) {
< DynInstPtr inst = fromRename->insts[rename_idx];
<
< if (!inst->isSquashed()) {
< DPRINTF(Commit, "Inserting PC %#x [sn:%i] [tid:%i] into ",
< "skidBuffer.\n", inst->readPC(), inst->seqNum,
< inst->threadNumber);
< skidBuffer.push(inst);
< } else {
< DPRINTF(Commit, "Instruction PC %#x [sn:%i] [tid:%i] was "
< "squashed, skipping.\n",
< inst->readPC(), inst->seqNum, inst->threadNumber);
< }
< }
< }
< #endif
<