| Index: src/jump-target.cc
|
| ===================================================================
|
| --- src/jump-target.cc (revision 1589)
|
| +++ src/jump-target.cc (working copy)
|
| @@ -272,11 +272,15 @@
|
|
|
| // Set the copied flags in the frame to be exact. This assumes that
|
| // the backing store of copies is always lower in the frame.
|
| + // Set the register counts and indices.
|
| for (int i = 0; i < length; i++) {
|
| + FrameElement current = entry_frame_->elements_[i];
|
| entry_frame_->elements_[i].clear_copied();
|
| - if (entry_frame_->elements_[i].is_copy()) {
|
| - int index = entry_frame_->elements_[i].index();
|
| - entry_frame_->elements_[index].set_copied();
|
| + if (current.is_copy()) {
|
| + entry_frame_->elements_[current.index()].set_copied();
|
| + } else if (current.is_register()) {
|
| + entry_frame_->frame_registers_.Use(current.reg());
|
| + entry_frame_->register_locations_[current.reg().code()] = i;
|
| }
|
| }
|
|
|
| @@ -292,11 +296,6 @@
|
| stack_pointer--;
|
| }
|
| entry_frame_->stack_pointer_ = stack_pointer;
|
| -
|
| - // Unuse the reserved registers---they do not actually appear in
|
| - // the entry frame.
|
| - RegisterAllocator::UnuseReserved(&frame_registers);
|
| - entry_frame_->frame_registers_ = frame_registers;
|
| }
|
|
|
|
|
|
|