| Index: src/arm/builtins-arm.cc
 | 
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
 | 
| index 7ebef530f3ef787d8724d9d1fcfe05607e5d0345..2638033cdee6ca9477f63e528394fe17eec6e1ca 100644
 | 
| --- a/src/arm/builtins-arm.cc
 | 
| +++ b/src/arm/builtins-arm.cc
 | 
| @@ -1166,6 +1166,8 @@ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
 | 
|    __ ldr(r1, FieldMemOperand(r0, Code::kDeoptimizationDataOffset));
 | 
|  
 | 
|    { ConstantPoolUnavailableScope constant_pool_unavailable(masm);
 | 
| +    __ add(r0, r0, Operand(Code::kHeaderSize - kHeapObjectTag));  // Code start
 | 
| +
 | 
|      if (FLAG_enable_embedded_constant_pool) {
 | 
|        __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r0);
 | 
|      }
 | 
| @@ -1175,10 +1177,8 @@ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
 | 
|      __ ldr(r1, FieldMemOperand(r1, FixedArray::OffsetOfElementAt(
 | 
|          DeoptimizationInputData::kOsrPcOffsetIndex)));
 | 
|  
 | 
| -    // Compute the target address = code_obj + header_size + osr_offset
 | 
| -    // <entry_addr> = <code_obj> + #header_size + <osr_offset>
 | 
| -    __ add(r0, r0, Operand::SmiUntag(r1));
 | 
| -    __ add(lr, r0, Operand(Code::kHeaderSize - kHeapObjectTag));
 | 
| +    // Compute the target address = code start + osr_offset
 | 
| +    __ add(lr, r0, Operand::SmiUntag(r1));
 | 
|  
 | 
|      // And "return" to the OSR entry point of the function.
 | 
|      __ Ret();
 | 
| 
 |