| Index: src/arm/virtual-frame-arm.cc
 | 
| ===================================================================
 | 
| --- src/arm/virtual-frame-arm.cc	(revision 4501)
 | 
| +++ src/arm/virtual-frame-arm.cc	(working copy)
 | 
| @@ -268,6 +268,7 @@
 | 
|  
 | 
|  
 | 
|  void VirtualFrame::CallRuntime(Runtime::Function* f, int arg_count) {
 | 
| +  ASSERT(SpilledScope::is_spilled());
 | 
|    Forget(arg_count);
 | 
|    ASSERT(cgen()->HasValidEntryRegisters());
 | 
|    __ CallRuntime(f, arg_count);
 | 
| @@ -396,6 +397,32 @@
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void VirtualFrame::SpillAllButCopyTOSToR0() {
 | 
| +  switch (top_of_stack_state_) {
 | 
| +    case NO_TOS_REGISTERS:
 | 
| +      __ ldr(r0, MemOperand(sp, 0));
 | 
| +      break;
 | 
| +    case R0_TOS:
 | 
| +      __ push(r0);
 | 
| +      break;
 | 
| +    case R1_TOS:
 | 
| +      __ push(r1);
 | 
| +      __ mov(r0, r1);
 | 
| +      break;
 | 
| +    case R0_R1_TOS:
 | 
| +      __ Push(r1, r0);
 | 
| +      break;
 | 
| +    case R1_R0_TOS:
 | 
| +      __ Push(r0, r1);
 | 
| +      __ mov(r0, r1);
 | 
| +      break;
 | 
| +    default:
 | 
| +      UNREACHABLE();
 | 
| +  }
 | 
| +  top_of_stack_state_ = NO_TOS_REGISTERS;
 | 
| +}
 | 
| +
 | 
| +
 | 
|  Register VirtualFrame::Peek() {
 | 
|    AssertIsNotSpilled();
 | 
|    if (top_of_stack_state_ == NO_TOS_REGISTERS) {
 | 
| 
 |