| Index: src/lithium.h
|
| diff --git a/src/lithium.h b/src/lithium.h
|
| index d0d1b23e7287c71e42ce4e5a4f7f222f2f59d3c1..923a1594c9d1b07603190c94565985a1d9a335a2 100644
|
| --- a/src/lithium.h
|
| +++ b/src/lithium.h
|
| @@ -471,6 +471,7 @@ class LEnvironment: public ZoneObject {
|
| pc_offset_(-1),
|
| values_(value_count, zone),
|
| is_tagged_(value_count, zone),
|
| + is_uint32_(value_count, zone),
|
| spilled_registers_(NULL),
|
| spilled_double_registers_(NULL),
|
| outer_(outer),
|
| @@ -491,17 +492,28 @@ class LEnvironment: public ZoneObject {
|
| const ZoneList<LOperand*>* values() const { return &values_; }
|
| LEnvironment* outer() const { return outer_; }
|
|
|
| - void AddValue(LOperand* operand, Representation representation) {
|
| + void AddValue(LOperand* operand,
|
| + Representation representation,
|
| + bool is_uint32) {
|
| values_.Add(operand, zone());
|
| if (representation.IsTagged()) {
|
| + ASSERT(!is_uint32);
|
| is_tagged_.Add(values_.length() - 1);
|
| }
|
| +
|
| + if (is_uint32) {
|
| + is_uint32_.Add(values_.length() - 1);
|
| + }
|
| }
|
|
|
| bool HasTaggedValueAt(int index) const {
|
| return is_tagged_.Contains(index);
|
| }
|
|
|
| + bool HasUint32ValueAt(int index) const {
|
| + return is_uint32_.Contains(index);
|
| + }
|
| +
|
| void Register(int deoptimization_index,
|
| int translation_index,
|
| int pc_offset) {
|
| @@ -535,6 +547,7 @@ class LEnvironment: public ZoneObject {
|
| int pc_offset_;
|
| ZoneList<LOperand*> values_;
|
| BitVector is_tagged_;
|
| + BitVector 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
|
|
|