Index: src/x64/debug-x64.cc |
diff --git a/src/x64/debug-x64.cc b/src/x64/debug-x64.cc |
index e6bc92950a9c43f984c9b87e275eb9e35c75fab6..c8e1c96d9689da2ee3543154cd30c3c754c913b9 100644 |
--- a/src/x64/debug-x64.cc |
+++ b/src/x64/debug-x64.cc |
@@ -123,14 +123,8 @@ static void Generate_DebugBreakCallHelper(MacroAssembler* masm, |
if ((object_regs & (1 << r)) != 0) { |
__ push(reg); |
} |
- // Store the 64-bit value as two smis. |
if ((non_object_regs & (1 << r)) != 0) { |
- __ movq(kScratchRegister, reg); |
- __ Integer32ToSmi(reg, reg); |
- __ push(reg); |
- __ sar(kScratchRegister, Immediate(32)); |
- __ Integer32ToSmi(kScratchRegister, kScratchRegister); |
- __ push(kScratchRegister); |
+ __ PushInt64AsTwoSmis(reg); |
} |
} |
@@ -155,12 +149,7 @@ static void Generate_DebugBreakCallHelper(MacroAssembler* masm, |
} |
// Reconstruct the 64-bit value from two smis. |
if ((non_object_regs & (1 << r)) != 0) { |
- __ pop(kScratchRegister); |
- __ SmiToInteger32(kScratchRegister, kScratchRegister); |
- __ shl(kScratchRegister, Immediate(32)); |
- __ pop(reg); |
- __ SmiToInteger32(reg, reg); |
- __ or_(reg, kScratchRegister); |
+ __ PopInt64AsTwoSmis(reg); |
} |
} |