| Index: src/codegen-ia32.cc
|
| ===================================================================
|
| --- src/codegen-ia32.cc (revision 1019)
|
| +++ src/codegen-ia32.cc (working copy)
|
| @@ -544,14 +544,17 @@
|
| void CodeGenerator::UnloadReference(Reference* ref) {
|
| // Pop a reference from the stack while preserving TOS.
|
| Comment cmnt(masm_, "[ UnloadReference");
|
| + Result top(this);
|
| int size = ref->size();
|
| if (size == 1) {
|
| - frame_->EmitPop(eax);
|
| - __ mov(frame_->Top(), eax);
|
| + top = frame_->Pop();
|
| + // Replace Drop(), Push() sequence with ReplaceTop().
|
| + frame_->Drop();
|
| + frame_->Push(&top);
|
| } else if (size > 1) {
|
| - frame_->EmitPop(eax);
|
| + top = frame_->Pop();
|
| frame_->Drop(size);
|
| - frame_->EmitPush(eax);
|
| + frame_->Push(&top);
|
| }
|
| }
|
|
|
|
|