| 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();
|
|
|