| Index: src/fast-codegen.h
 | 
| diff --git a/src/fast-codegen.h b/src/fast-codegen.h
 | 
| index ee2e1d345ecfc913b9fd1b121b4c897042e5e9db..9b262a739315da71876300610abd25d21ef86130 100644
 | 
| --- a/src/fast-codegen.h
 | 
| +++ b/src/fast-codegen.h
 | 
| @@ -56,14 +56,21 @@ class FastCodeGenerator: public AstVisitor {
 | 
|  
 | 
|   private:
 | 
|    int SlotOffset(Slot* slot);
 | 
| -
 | 
|    void Move(Expression::Context destination, Register source);
 | 
| -  void Move(Expression::Context destination, Slot* source);
 | 
| +  void Move(Expression::Context destination, Slot* source, Register scratch);
 | 
|    void Move(Expression::Context destination, Literal* source);
 | 
| +  void Move(Slot* dst, Register source, Register scratch1, Register scratch2);
 | 
| +  void Move(Register dst, Slot* source);
 | 
| +
 | 
| +  // Templated to allow for Operand on intel and MemOperand on ARM.
 | 
| +  template <typename MemoryLocation>
 | 
| +  MemoryLocation CreateSlotOperand(Slot* slot, Register scratch);
 | 
|  
 | 
|    // Drop the TOS, and store source to destination.
 | 
|    // If destination is TOS, just overwrite TOS with source.
 | 
| -  void DropAndMove(Expression::Context destination, Register source);
 | 
| +  void DropAndMove(Expression::Context destination,
 | 
| +                   Register source,
 | 
| +                   int drop_count = 1);
 | 
|  
 | 
|    // Test the JavaScript value in source as if in a test context, compile
 | 
|    // control flow to a pair of labels.
 | 
| 
 |