| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 76c8443e7c30cc422154eab202c61dba16e5941e..98649b1273f8a55d8dad284bd3e85b5a03ce46c0 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -2210,12 +2210,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,
|
|
|