Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 326cc4e9c2c267b5793ee99cc8f5ae6ec8418593..53edf45acc3cd72cbbcbb8fd06cebb49e5e0b59f 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -2471,6 +2471,7 @@ void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) { |
// We use Factory::the_hole_value() on purpose instead of loading from the |
// root array to force relocation to be able to later patch with |
// the cached map. |
+ ScopedPredictableCodeSize predictable(masm_); |
Handle<JSGlobalPropertyCell> cell = |
factory()->NewJSGlobalPropertyCell(factory()->the_hole_value()); |
__ mov(ip, Operand(Handle<Object>(cell))); |
@@ -2532,6 +2533,9 @@ void LCodeGen::DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, |
ASSERT(temp.is(r4)); |
__ LoadHeapObject(InstanceofStub::right(), instr->function()); |
static const int kAdditionalDelta = 5; |
+ // Make sure that code size is predicable, since we use specific constants |
+ // offsets in the code to find embedded values.. |
+ ScopedPredictableCodeSize predictable(masm_); |
int delta = masm_->InstructionsGeneratedSince(map_check) + kAdditionalDelta; |
Label before_push_delta; |
__ bind(&before_push_delta); |
@@ -5551,6 +5555,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) { |
__ cmp(sp, Operand(ip)); |
__ b(hs, &done); |
StackCheckStub stub; |
+ ScopedPredictableCodeSize predictable_code_size(masm_); |
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
EnsureSpaceForLazyDeopt(); |
__ bind(&done); |