| Index: src/virtual-frame-ia32.cc
|
| ===================================================================
|
| --- src/virtual-frame-ia32.cc (revision 1041)
|
| +++ src/virtual-frame-ia32.cc (working copy)
|
| @@ -308,9 +308,12 @@
|
| // with the frame. We simply save the current frame and restore it at the
|
| // end of this function. We should find a better way to deal with this.
|
| VirtualFrame* original_frame = cgen_->frame();
|
| + RegisterFile non_frame_registers;
|
| + non_frame_registers.Use(esi);
|
| + non_frame_registers.Use(ebp);
|
| + non_frame_registers.Use(esp);
|
| + cgen_->SetFrame(this, &non_frame_registers);
|
| ASSERT(cgen_->HasValidEntryRegisters());
|
| - cgen_->SetFrame(this);
|
| - ASSERT(cgen_->HasValidEntryRegisters());
|
|
|
| // Remove constants from the frame and ensure that no registers are
|
| // multiply referenced within the frame. Allocate elements to their new
|
| @@ -383,8 +386,7 @@
|
|
|
| delete[] new_elements;
|
| ASSERT(cgen_->HasValidEntryRegisters());
|
| - cgen_->SetFrame(original_frame);
|
| - ASSERT(cgen_->HasValidEntryRegisters());
|
| + cgen_->SetFrame(original_frame, &non_frame_registers);
|
| }
|
|
|
|
|
|
|