| Index: src/mips/macro-assembler-mips.cc
 | 
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
 | 
| index cb336f3b0b9262b3c2d12628bec9ec9679a43799..cdfbae39c2a27242f7745cc9cd5d039d11060428 100644
 | 
| --- a/src/mips/macro-assembler-mips.cc
 | 
| +++ b/src/mips/macro-assembler-mips.cc
 | 
| @@ -4526,15 +4526,15 @@ void MacroAssembler::Prologue(PrologueFrameMode frame_mode) {
 | 
|        // Pre-age the code.
 | 
|        Code* stub = Code::GetPreAgedCodeAgeStub(isolate());
 | 
|        nop(Assembler::CODE_AGE_MARKER_NOP);
 | 
| -      // Save the function's original return address
 | 
| -      // (it will be clobbered by Call(t9)).
 | 
| -      mov(at, ra);
 | 
| -      // Load the stub address to t9 and call it.
 | 
| +      // Load the stub address to t9 and call it,
 | 
| +      // GetCodeAgeAndParity() extracts the stub address from this instruction.
 | 
|        li(t9,
 | 
| -         Operand(reinterpret_cast<uint32_t>(stub->instruction_start())));
 | 
| -      Call(t9);
 | 
| -      // Record the stub address in the empty space for GetCodeAgeAndParity().
 | 
| -      emit_code_stub_address(stub);
 | 
| +         Operand(reinterpret_cast<uint32_t>(stub->instruction_start())),
 | 
| +         CONSTANT_SIZE);
 | 
| +      nop();  // Prevent jalr to jal optimization.
 | 
| +      jalr(t9, a0);
 | 
| +      nop();  // Branch delay slot nop.
 | 
| +      nop();  // Pad the empty space.
 | 
|      } else {
 | 
|        Push(ra, fp, cp, a1);
 | 
|        nop(Assembler::CODE_AGE_SEQUENCE_NOP);
 | 
| 
 |