| Index: src/arm/full-codegen-arm.cc
 | 
| diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc
 | 
| index be8228377aecbad5f0a6cd63db55b9a37f53e3d4..03d50676fb652e30a00e4f374c8af786e791de96 100644
 | 
| --- a/src/arm/full-codegen-arm.cc
 | 
| +++ b/src/arm/full-codegen-arm.cc
 | 
| @@ -149,12 +149,15 @@ void FullCodeGenerator::Generate() {
 | 
|    // function calls.
 | 
|    if (!info->is_classic_mode() || info->is_native()) {
 | 
|      Label ok;
 | 
| +    Label begin;
 | 
| +    __ bind(&begin);
 | 
|      __ cmp(r5, Operand(0));
 | 
|      __ b(eq, &ok);
 | 
|      int receiver_offset = info->scope()->num_parameters() * kPointerSize;
 | 
|      __ LoadRoot(r2, Heap::kUndefinedValueRootIndex);
 | 
|      __ str(r2, MemOperand(sp, receiver_offset));
 | 
|      __ bind(&ok);
 | 
| +    ASSERT_EQ(kSizeOfFullCodegenStrictModePrologue, ok.pos() - begin.pos());
 | 
|    }
 | 
|  
 | 
|    // Open a frame scope to indicate that there is a frame on the stack.  The
 | 
| @@ -164,12 +167,12 @@ void FullCodeGenerator::Generate() {
 | 
|  
 | 
|    int locals_count = info->scope()->num_stack_slots();
 | 
|  
 | 
| -  __ Push(lr, fp, cp, r1);
 | 
| -  if (locals_count > 0) {
 | 
| -    // Load undefined value here, so the value is ready for the loop
 | 
| -    // below.
 | 
| -    __ LoadRoot(ip, Heap::kUndefinedValueRootIndex);
 | 
| -  }
 | 
| +  // The following four 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 caller's fp.
 | 
|    __ add(fp, sp, Operand(2 * kPointerSize));
 | 
|  
 | 
| 
 |