Index: src/x64/deoptimizer-x64.cc |
diff --git a/src/x64/deoptimizer-x64.cc b/src/x64/deoptimizer-x64.cc |
index ae180ec59b4b5078919a5f8f2659a3de1c5ad7b2..ff9beba586ccaa79cf42b962d7f6a4eede878e97 100644 |
--- a/src/x64/deoptimizer-x64.cc |
+++ b/src/x64/deoptimizer-x64.cc |
@@ -156,7 +156,7 @@ void Deoptimizer::EntryGenerator::Generate() { |
__ push(r); |
} |
- const int kSavedRegistersAreaSize = kNumberOfRegisters * kPointerSize + |
+ const int kSavedRegistersAreaSize = kNumberOfRegisters * kRegisterSize + |
kDoubleRegsSize; |
// We use this to keep the value of the fifth argument temporarily. |
@@ -169,9 +169,9 @@ void Deoptimizer::EntryGenerator::Generate() { |
// Get the address of the location in the code object |
// and compute the fp-to-sp delta in register arg5. |
- __ movq(arg_reg_4, |
- Operand(rsp, kSavedRegistersAreaSize + 1 * kPointerSize)); |
- __ lea(arg5, Operand(rsp, kSavedRegistersAreaSize + 2 * kPointerSize)); |
+ __ movq(arg_reg_4, Operand(rsp, kSavedRegistersAreaSize + 1 * kRegisterSize)); |
+ __ lea(arg5, Operand(rsp, kSavedRegistersAreaSize + 1 * kRegisterSize + |
+ kPCOnStackSize)); |
__ subq(arg5, rbp); |
__ neg(arg5); |
@@ -215,7 +215,7 @@ void Deoptimizer::EntryGenerator::Generate() { |
} |
// Remove the bailout id and return address from the stack. |
- __ addq(rsp, Immediate(2 * kPointerSize)); |
+ __ addq(rsp, Immediate(1 * kRegisterSize + kPCOnStackSize)); |
// Compute a pointer to the unwinding limit in register rcx; that is |
// the first stack slot not part of the input frame. |