| Index: src/virtual-frame-ia32.cc
|
| ===================================================================
|
| --- src/virtual-frame-ia32.cc (revision 970)
|
| +++ src/virtual-frame-ia32.cc (working copy)
|
| @@ -475,6 +475,12 @@
|
| } else {
|
| // Source is constant.
|
| __ Set(target.reg(), Immediate(source.handle()));
|
| + if (target.is_synced()) {
|
| + if (i > stack_pointer_) {
|
| + SyncRange(stack_pointer_ + 1, i);
|
| + }
|
| + SyncElementAt(i);
|
| + }
|
| }
|
| Use(target.reg());
|
| elements_[i] = target;
|
| @@ -624,12 +630,13 @@
|
|
|
| cgen_->allocator()->Unuse(temp);
|
| } else {
|
| - // For constants and registers, add a copy of the element to the
|
| - // top of the frame.
|
| + // For constants and registers, add an (unsynced) copy of the element to
|
| + // the top of the frame.
|
| ASSERT(element.is_register() || element.is_constant());
|
| if (element.is_register()) {
|
| Use(element.reg());
|
| }
|
| + element.clear_sync();
|
| elements_.Add(element);
|
| }
|
| }
|
|
|