Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 39e239a1cbf9ad82910ef1ee7ca659ea694ea027..515a0d0e32cf16c8dc0be5b5ba758e5d5a827268 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -148,13 +148,18 @@ bool LCodeGen::GeneratePrologue() { |
info()->set_prologue_offset(masm_->pc_offset()); |
- // The following three instructions must remain together and unmodified for |
- // code aging to work properly. |
- __ stm(db_w, sp, r1.bit() | cp.bit() | fp.bit() | lr.bit()); |
- // Add unused load of ip to ensure prologue sequence is identical for |
- // full-codegen and lithium-codegen. |
- __ LoadRoot(ip, Heap::kUndefinedValueRootIndex); |
- __ add(fp, sp, Operand(2 * kPointerSize)); // Adjust FP to point to saved FP. |
+ { |
+ PredictableCodeSizeScope predictible_code_size_scope( |
+ masm_, kNoCodeAgeSequenceLength * Assembler::kInstrSize); |
+ // The following three instructions must remain together and unmodified |
+ // for code aging to work properly. |
+ __ stm(db_w, sp, r1.bit() | cp.bit() | fp.bit() | lr.bit()); |
+ // Load undefined value here, so the value is ready for the loop |
+ // below. |
+ __ LoadRoot(ip, Heap::kUndefinedValueRootIndex); |
+ // Adjust FP to point to saved FP. |
+ __ add(fp, sp, Operand(2 * kPointerSize)); |
+ } |
// Reserve space for the stack slots needed by the code. |
int slots = GetStackSlotCount(); |