| Index: src/lithium.h
|
| diff --git a/src/lithium.h b/src/lithium.h
|
| index 170e5c89bcee9e7cfa510753d005d668114c0c26..ab34453beff6015a37dc9a00afc02e4251f93414 100644
|
| --- a/src/lithium.h
|
| +++ b/src/lithium.h
|
| @@ -527,6 +527,7 @@ class LEnvironment: public ZoneObject {
|
| deoptimization_index_(Safepoint::kNoDeoptimizationIndex),
|
| translation_index_(-1),
|
| ast_id_(ast_id),
|
| + translation_size_(value_count),
|
| parameter_count_(parameter_count),
|
| pc_offset_(-1),
|
| values_(value_count, zone),
|
| @@ -544,6 +545,7 @@ class LEnvironment: public ZoneObject {
|
| int deoptimization_index() const { return deoptimization_index_; }
|
| int translation_index() const { return translation_index_; }
|
| BailoutId ast_id() const { return ast_id_; }
|
| + int translation_size() const { return translation_size_; }
|
| int parameter_count() const { return parameter_count_; }
|
| int pc_offset() const { return pc_offset_; }
|
| LOperand** spilled_registers() const { return spilled_registers_; }
|
| @@ -553,6 +555,7 @@ class LEnvironment: public ZoneObject {
|
| const ZoneList<LOperand*>* values() const { return &values_; }
|
| LEnvironment* outer() const { return outer_; }
|
| HEnterInlined* entry() { return entry_; }
|
| + Zone* zone() const { return zone_; }
|
|
|
| void AddValue(LOperand* operand,
|
| Representation representation,
|
| @@ -560,11 +563,11 @@ class LEnvironment: public ZoneObject {
|
| values_.Add(operand, zone());
|
| if (representation.IsSmiOrTagged()) {
|
| ASSERT(!is_uint32);
|
| - is_tagged_.Add(values_.length() - 1);
|
| + is_tagged_.Add(values_.length() - 1, zone());
|
| }
|
|
|
| if (is_uint32) {
|
| - is_uint32_.Add(values_.length() - 1);
|
| + is_uint32_.Add(values_.length() - 1, zone());
|
| }
|
| }
|
|
|
| @@ -596,8 +599,6 @@ class LEnvironment: public ZoneObject {
|
|
|
| void PrintTo(StringStream* stream);
|
|
|
| - Zone* zone() const { return zone_; }
|
| -
|
| private:
|
| Handle<JSFunction> closure_;
|
| FrameType frame_type_;
|
| @@ -605,11 +606,15 @@ class LEnvironment: public ZoneObject {
|
| int deoptimization_index_;
|
| int translation_index_;
|
| BailoutId ast_id_;
|
| + int translation_size_;
|
| int parameter_count_;
|
| int pc_offset_;
|
| +
|
| + // Value array: [parameters] [locals] [expression stack] [de-materialized].
|
| + // |>--------- translation_size ---------<|
|
| ZoneList<LOperand*> values_;
|
| - BitVector is_tagged_;
|
| - BitVector is_uint32_;
|
| + GrowableBitVector is_tagged_;
|
| + GrowableBitVector is_uint32_;
|
|
|
| // Allocation index indexed arrays of spill slot operands for registers
|
| // that are also in spill slots at an OSR entry. NULL for environments
|
| @@ -619,7 +624,6 @@ class LEnvironment: public ZoneObject {
|
|
|
| LEnvironment* outer_;
|
| HEnterInlined* entry_;
|
| -
|
| Zone* zone_;
|
| };
|
|
|
|
|