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