| Index: src/ia32/deoptimizer-ia32.cc
|
| diff --git a/src/ia32/deoptimizer-ia32.cc b/src/ia32/deoptimizer-ia32.cc
|
| index 6af2445f453e79e6bbf9eb22440234972810dfac..505cd4fc1c4763e0ae0379832c28025ab8c5566e 100644
|
| --- a/src/ia32/deoptimizer-ia32.cc
|
| +++ b/src/ia32/deoptimizer-ia32.cc
|
| @@ -566,15 +566,11 @@ void Deoptimizer::EntryGenerator::Generate() {
|
| // Get the bailout id from the stack.
|
| __ mov(ebx, Operand(esp, kSavedRegistersAreaSize));
|
|
|
| - // Get the address of the location in the code object if possible
|
| + // Get the address of the location in the code object
|
| // and compute the fp-to-sp delta in register edx.
|
| - if (type() == EAGER || type() == SOFT) {
|
| - __ Set(ecx, Immediate(0));
|
| - __ lea(edx, Operand(esp, kSavedRegistersAreaSize + 1 * kPointerSize));
|
| - } else {
|
| - __ mov(ecx, Operand(esp, kSavedRegistersAreaSize + 1 * kPointerSize));
|
| - __ lea(edx, Operand(esp, kSavedRegistersAreaSize + 2 * kPointerSize));
|
| - }
|
| + __ mov(ecx, Operand(esp, kSavedRegistersAreaSize + 1 * kPointerSize));
|
| + __ lea(edx, Operand(esp, kSavedRegistersAreaSize + 2 * kPointerSize));
|
| +
|
| __ sub(edx, ebp);
|
| __ neg(edx);
|
|
|
| @@ -620,12 +616,8 @@ void Deoptimizer::EntryGenerator::Generate() {
|
| // and check that the generated code never deoptimizes with unbalanced stack.
|
| __ fnclex();
|
|
|
| - // Remove the bailout id and the double registers from the stack.
|
| - if (type() == EAGER || type() == SOFT) {
|
| - __ add(esp, Immediate(kDoubleRegsSize + kPointerSize));
|
| - } else {
|
| - __ add(esp, Immediate(kDoubleRegsSize + 2 * kPointerSize));
|
| - }
|
| + // Remove the bailout id, return address and the double registers.
|
| + __ add(esp, Immediate(kDoubleRegsSize + 2 * kPointerSize));
|
|
|
| // Compute a pointer to the unwinding limit in register ecx; that is
|
| // the first stack slot not part of the input frame.
|
|
|