| Index: runtime/vm/assembler_ia32.cc
|
| diff --git a/runtime/vm/assembler_ia32.cc b/runtime/vm/assembler_ia32.cc
|
| index 956b07b8a35babcdc05db42f11e2069813e5d8d3..6627cd649251cd813b286b9aeb8eaf3ddd8351a4 100644
|
| --- a/runtime/vm/assembler_ia32.cc
|
| +++ b/runtime/vm/assembler_ia32.cc
|
| @@ -1546,10 +1546,6 @@ static const intptr_t kNumberOfVolatileXmmRegisters =
|
| kNumberOfXmmRegisters - 1;
|
|
|
|
|
| -static const intptr_t kNumberOfVolatileRegisters =
|
| - kNumberOfVolatileCpuRegisters + kNumberOfVolatileXmmRegisters;
|
| -
|
| -
|
| void Assembler::EnterCallRuntimeFrame(intptr_t frame_space) {
|
| enter(Immediate(0));
|
|
|
| @@ -1577,7 +1573,10 @@ void Assembler::LeaveCallRuntimeFrame() {
|
| // ESP might have been modified to reserve space for arguments
|
| // and ensure proper alignment of the stack frame.
|
| // We need to restore it before restoring registers.
|
| - leal(ESP, Address(EBP, -kNumberOfVolatileRegisters * kWordSize));
|
| + const intptr_t kPushedRegistersSize =
|
| + kNumberOfVolatileCpuRegisters * kWordSize +
|
| + kNumberOfVolatileXmmRegisters * kDoubleSize;
|
| + leal(ESP, Address(EBP, -kPushedRegistersSize));
|
|
|
| // Restore all XMM registers except XMM0
|
| // XMM registers have the lowest register number at the lowest address.
|
|
|