| 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.
|
|
|