483a484
> int instSize = sizeof(TheISA::MachInst);
485,486c486,488
< (inst->readNextNPC() != (inst->readPC() + 2 * sizeof(TheISA::MachInst)) &&
< inst->readNextNPC() != (inst->readPC() + 3 * sizeof(TheISA::MachInst)));
---
> !(inst->readNextPC() + instSize == inst->readNextNPC() &&
> (inst->readNextPC() == inst->readPC() + instSize ||
> inst->readNextPC() == inst->readPC() + 2 * instSize));
492,493c494,495
< bool squashDelaySlot =
< (inst->readNextPC() != inst->readPC() + sizeof(TheISA::MachInst));
---
> bool squashDelaySlot = true;
> // (inst->readNextPC() != inst->readPC() + sizeof(TheISA::MachInst));
500c502
< if (squashDelaySlot)
---
> if (squashDelaySlot) {
502c504,505
< else
---
> toCommit->nextNPC[tid] = inst->readNextNPC();
> } else
524a528,530
> #if ISA_HAS_DELAY_SLOT
> toCommit->nextNPC[tid] = inst->readNextNPC();
> #endif
540a547,549
> #if ISA_HAS_DELAY_SLOT
> toCommit->nextNPC[tid] = inst->readNextNPC();
> #endif
1344a1354
> DPRINTF(IEW, "Predicted target was %#x.\n", inst->predPC);
1355c1365
< if (inst->predTaken()) {
---
> if (inst->readPredTaken()) {