Index: src/x64/macro-assembler-x64.cc |
=================================================================== |
--- src/x64/macro-assembler-x64.cc (revision 15866) |
+++ src/x64/macro-assembler-x64.cc (working copy) |
@@ -3507,7 +3507,7 @@ |
// Optionally save all XMM registers. |
if (save_doubles) { |
int space = XMMRegister::kMaxNumRegisters * kDoubleSize + |
- arg_stack_space * kPointerSize; |
+ arg_stack_space * kRegisterSize; |
haitao.feng
2013/07/25 11:40:50
Explained in the code-stubs-x64.cc for calling con
|
subq(rsp, Immediate(space)); |
int offset = -2 * kPointerSize; |
for (int i = 0; i < XMMRegister::NumAllocatableRegisters(); i++) { |
@@ -3515,7 +3515,7 @@ |
movsd(Operand(rbp, offset - ((i + 1) * kDoubleSize)), reg); |
} |
} else if (arg_stack_space > 0) { |
- subq(rsp, Immediate(arg_stack_space * kPointerSize)); |
+ subq(rsp, Immediate(arg_stack_space * kRegisterSize)); |
} |
// Get the required frame alignment for the OS. |
@@ -3560,7 +3560,7 @@ |
} |
} |
// Get the return address from the stack and restore the frame pointer. |
- movq(rcx, Operand(rbp, 1 * kPointerSize)); |
+ movq(rcx, Operand(rbp, 1 * kFPOnStackSize)); |
movq(rbp, Operand(rbp, 0 * kPointerSize)); |
// Drop everything up to and including the arguments and the receiver |
@@ -4375,7 +4375,7 @@ |
ASSERT(IsPowerOf2(frame_alignment)); |
int argument_slots_on_stack = |
ArgumentStackSlotsForCFunctionCall(num_arguments); |
- subq(rsp, Immediate((argument_slots_on_stack + 1) * kPointerSize)); |
+ subq(rsp, Immediate((argument_slots_on_stack + 1) * kRegisterSize)); |
and_(rsp, Immediate(-frame_alignment)); |
movq(Operand(rsp, argument_slots_on_stack * kPointerSize), kScratchRegister); |
} |
@@ -4400,7 +4400,7 @@ |
ASSERT(num_arguments >= 0); |
int argument_slots_on_stack = |
ArgumentStackSlotsForCFunctionCall(num_arguments); |
- movq(rsp, Operand(rsp, argument_slots_on_stack * kPointerSize)); |
+ movq(rsp, Operand(rsp, argument_slots_on_stack * kRegisterSize)); |
} |