Index: src/x64/macro-assembler-x64.h |
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h |
index 61abc206e108ec2f85e0ff83393eb778c58dde79..acc8f8b540fdacde79aadea749302e05b714ac56 100644 |
--- a/src/x64/macro-assembler-x64.h |
+++ b/src/x64/macro-assembler-x64.h |
@@ -720,6 +720,14 @@ class MacroAssembler: public Assembler { |
} |
void Push(Smi* smi); |
+ |
+ // Save away a 64-bit integer on the stack as two 32-bit integers |
+ // masquerading as smis so that the garbage collector skips visiting them. |
+ void PushInt64AsTwoSmis(Register src, Register scratch = kScratchRegister); |
+ // Reconstruct a 64-bit integer from two 32-bit integers masquerading as |
+ // smis on the top of stack. |
+ void PopInt64AsTwoSmis(Register dst, Register scratch = kScratchRegister); |
+ |
void Test(const Operand& dst, Smi* source); |