| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 4be6d264a8f69d16cebe90c1a986703e2ccb0615..e9ba5eec7212d297400f31291dc5d62f2c308686 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -2472,12 +2472,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,
|
|
|