| OLD | NEW | 
|---|
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 265                                           FrameElement::NOT_SYNCED); | 265                                           FrameElement::NOT_SYNCED); | 
| 266       } | 266       } | 
| 267     } else { | 267     } else { | 
| 268       // The element is already determined. | 268       // The element is already determined. | 
| 269       entry_frame_->elements_[i] = *elements[i]; | 269       entry_frame_->elements_[i] = *elements[i]; | 
| 270     } | 270     } | 
| 271   } | 271   } | 
| 272 | 272 | 
| 273   // Set the copied flags in the frame to be exact.  This assumes that | 273   // Set the copied flags in the frame to be exact.  This assumes that | 
| 274   // the backing store of copies is always lower in the frame. | 274   // the backing store of copies is always lower in the frame. | 
| 275   // Set the register counts and indices. | 275   // Set the register locations to their index in the frame. | 
| 276   for (int i = 0; i < length; i++) { | 276   for (int i = 0; i < length; i++) { | 
| 277     FrameElement current = entry_frame_->elements_[i]; | 277     FrameElement current = entry_frame_->elements_[i]; | 
| 278     entry_frame_->elements_[i].clear_copied(); | 278     entry_frame_->elements_[i].clear_copied(); | 
| 279     if (current.is_copy()) { | 279     if (current.is_copy()) { | 
| 280       entry_frame_->elements_[current.index()].set_copied(); | 280       entry_frame_->elements_[current.index()].set_copied(); | 
| 281     } else if (current.is_register()) { | 281     } else if (current.is_register()) { | 
| 282       entry_frame_->frame_registers_.Use(current.reg()); |  | 
| 283       entry_frame_->register_locations_[current.reg().code()] = i; | 282       entry_frame_->register_locations_[current.reg().code()] = i; | 
| 284     } | 283     } | 
| 285   } | 284   } | 
| 286 | 285 | 
| 287   // Fill in the other fields of the entry frame. | 286   // Fill in the other fields of the entry frame. | 
| 288   entry_frame_->local_count_ = initial_frame->local_count_; | 287   entry_frame_->local_count_ = initial_frame->local_count_; | 
| 289   entry_frame_->frame_pointer_ = initial_frame->frame_pointer_; | 288   entry_frame_->frame_pointer_ = initial_frame->frame_pointer_; | 
| 290 | 289 | 
| 291   // The stack pointer is at the highest synced element or the base of | 290   // The stack pointer is at the highest synced element or the base of | 
| 292   // the expression stack. | 291   // the expression stack. | 
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 642   temp.CopyTo(this); | 641   temp.CopyTo(this); | 
| 643   temp.Reset();  // So the destructor does not deallocate virtual frames. | 642   temp.Reset();  // So the destructor does not deallocate virtual frames. | 
| 644 | 643 | 
| 645 #ifdef DEBUG | 644 #ifdef DEBUG | 
| 646   is_shadowing_ = false; | 645   is_shadowing_ = false; | 
| 647 #endif | 646 #endif | 
| 648 } | 647 } | 
| 649 | 648 | 
| 650 | 649 | 
| 651 } }  // namespace v8::internal | 650 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|