| Index: src/mips/simulator-mips.h
|
| diff --git a/src/mips/simulator-mips.h b/src/mips/simulator-mips.h
|
| index ba625f45babbd98262b43237c1d8cee3afa2875f..1e729398760e2c099f90f9bc3b05a9d4ff154ed0 100644
|
| --- a/src/mips/simulator-mips.h
|
| +++ b/src/mips/simulator-mips.h
|
| @@ -309,6 +309,14 @@ class Simulator {
|
| void InstructionDecode(Instruction* instr);
|
| // Execute one instruction placed in a branch delay slot.
|
| void BranchDelayInstructionDecode(Instruction* instr) {
|
| + if (instr->InstructionBits() == nopInstr) {
|
| + // Short-cut generic nop instructions. They are always valid and they
|
| + // never change the simulator state.
|
| + set_register(pc, reinterpret_cast<int32_t>(instr) +
|
| + Instruction::kInstrSize);
|
| + return;
|
| + }
|
| +
|
| if (instr->IsForbiddenInBranchDelay()) {
|
| V8_Fatal(__FILE__, __LINE__,
|
| "Eror:Unexpected %i opcode in a branch delay slot.",
|
|
|