Index: src/virtual-frame-ia32.h |
=================================================================== |
--- src/virtual-frame-ia32.h (revision 1589) |
+++ src/virtual-frame-ia32.h (working copy) |
@@ -337,6 +337,10 @@ |
// used in the frame. |
RegisterFile frame_registers_; |
+ // The index of the register frame element using each register, or |
+ // kIllegalIndex if a register is not on the frame. |
+ int register_locations_[kNumRegisters]; |
+ |
// The index of the first parameter. The receiver lies below the first |
// parameter. |
int param0_index() const { return 1; } |
@@ -372,12 +376,13 @@ |
} |
// Record an occurrence of a register in the virtual frame. This has the |
- // effect of incrementing both the register's frame-internal reference |
- // count and its external reference count. |
- void Use(Register reg); |
+ // effect of incrementing the register's external reference count and |
+ // of updating the index of the register's location in the frame. |
+ void Use(Register reg, int index); |
// Record that a register reference has been dropped from the frame. This |
- // decrements both the register's internal and external reference counts. |
+ // decrements the register's external reference count and invalidates the |
+ // index of the register's location in the frame. |
void Unuse(Register reg); |
// Spill the element at a particular index---write it to memory if |