Index: vm/locations.h |
=================================================================== |
--- vm/locations.h (revision 7955) |
+++ vm/locations.h (working copy) |
@@ -97,14 +97,19 @@ |
// Specification of locations for inputs and output. |
class LocationSummary : public ZoneAllocated { |
public: |
- explicit LocationSummary(intptr_t count) |
- : input_locations_(count), output_location_() { |
- for (intptr_t i = 0; i < count; i++) { |
+ LocationSummary(intptr_t input_count, intptr_t temp_count) |
+ : input_locations_(input_count), |
+ temp_locations_(temp_count), |
+ output_location_() { |
+ for (intptr_t i = 0; i < input_count; i++) { |
input_locations_.Add(Location()); |
} |
+ for (intptr_t i = 0; i < temp_count; i++) { |
+ temp_locations_.Add(Location()); |
+ } |
} |
- intptr_t count() const { |
+ intptr_t input_count() const { |
return input_locations_.length(); |
} |
@@ -116,6 +121,18 @@ |
input_locations_[index] = loc; |
} |
+ intptr_t temp_count() const { |
+ return temp_locations_.length(); |
+ } |
+ |
+ Location temp(intptr_t index) const { |
+ return temp_locations_[index]; |
+ } |
+ |
+ void set_temp(intptr_t index, Location loc) { |
+ temp_locations_[index] = loc; |
+ } |
+ |
Location out() const { |
return output_location_; |
} |
@@ -130,6 +147,7 @@ |
private: |
// TODO(vegorov): replace with ZoneArray. |
GrowableArray<Location> input_locations_; |
+ GrowableArray<Location> temp_locations_; |
Location output_location_; |
}; |