| Index: src/mips/assembler-mips-inl.h | 
| diff --git a/src/mips/assembler-mips-inl.h b/src/mips/assembler-mips-inl.h | 
| index 215c0efd886a9e782036dcafd5d3001e0ad76e5d..c843cc8663e61db90fc3e123b642c556ed98da08 100644 | 
| --- a/src/mips/assembler-mips-inl.h | 
| +++ b/src/mips/assembler-mips-inl.h | 
| @@ -121,8 +121,17 @@ Address RelocInfo::target_address_address() { | 
| // place, ready to be patched with the target. After jump optimization, | 
| // that is the address of the instruction that follows J/JAL/JR/JALR | 
| // instruction. | 
| -  return reinterpret_cast<Address>( | 
| -    pc_ + Assembler::kInstructionsFor32BitConstant * Assembler::kInstrSize); | 
| +  if (IsMipsArchVariant(kMips32r6)) { | 
| +    // On R6 we don't move to the end of the instructions to be patched, but one | 
| +    // instruction before, because if these instructions are at the end of the | 
| +    // code object it can cause errors in the deserializer. | 
| +    return reinterpret_cast<Address>( | 
| +        pc_ + | 
| +        (Assembler::kInstructionsFor32BitConstant - 1) * Assembler::kInstrSize); | 
| +  } else { | 
| +    return reinterpret_cast<Address>( | 
| +        pc_ + Assembler::kInstructionsFor32BitConstant * Assembler::kInstrSize); | 
| +  } | 
| } | 
|  | 
|  | 
|  |