| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 82b80a2b802d685c5c8ba400bf9a1bb58da7b3ba..c9fc0e33508092b2f92d9df053d63fd0d7f8c075 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -2256,12 +2256,18 @@ void LCodeGen::DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr,
|
| Register temp = ToRegister(instr->TempAt(0));
|
| ASSERT(temp.is(r4));
|
| __ LoadHeapObject(InstanceofStub::right(), instr->function());
|
| - static const int kAdditionalDelta = 4;
|
| + static const int kAdditionalDelta = 5;
|
| int delta = masm_->InstructionsGeneratedSince(map_check) + kAdditionalDelta;
|
| Label before_push_delta;
|
| __ bind(&before_push_delta);
|
| __ BlockConstPoolFor(kAdditionalDelta);
|
| __ mov(temp, Operand(delta * kPointerSize));
|
| + // The mov above can generate one or two instructions. The delta was computed
|
| + // for two instructions, so we need to pad here in case of one instruction.
|
| + if (masm_->InstructionsGeneratedSince(&before_push_delta) != 2) {
|
| + ASSERT_EQ(1, masm_->InstructionsGeneratedSince(&before_push_delta));
|
| + __ nop();
|
| + }
|
| __ StoreToSafepointRegisterSlot(temp, temp);
|
| CallCodeGeneric(stub.GetCode(),
|
| RelocInfo::CODE_TARGET,
|
|
|