| Index: src/compiler/register-allocator.h
|
| diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
|
| index b3b75fd57ef63d66ca28f6110e0b29519983c858..6437cebc485b8421473bf84a55c907365a77ecce 100644
|
| --- a/src/compiler/register-allocator.h
|
| +++ b/src/compiler/register-allocator.h
|
| @@ -672,6 +672,7 @@ class SpillRange final : public ZoneObject {
|
| int ByteWidth() const;
|
| bool IsEmpty() const { return live_ranges_.empty(); }
|
| bool TryMerge(SpillRange* other);
|
| + bool HasSlot() const { return assigned_slot_ != kUnassignedSlot; }
|
|
|
| void set_assigned_slot(int index) {
|
| DCHECK_EQ(kUnassignedSlot, assigned_slot_);
|
| @@ -738,6 +739,8 @@ class RegisterAllocationData final : public ZoneObject {
|
| InstructionOperand* operand;
|
| };
|
| typedef ZoneVector<DelayedReference> DelayedReferences;
|
| + typedef ZoneVector<std::pair<TopLevelLiveRange*, int>>
|
| + RangesWithPreassignedSlots;
|
|
|
| RegisterAllocationData(const RegisterConfiguration* config,
|
| Zone* allocation_zone, Frame* frame,
|
| @@ -804,6 +807,10 @@ class RegisterAllocationData final : public ZoneObject {
|
| PhiMapValue* GetPhiMapValueFor(int virtual_register);
|
| bool IsBlockBoundary(LifetimePosition pos) const;
|
|
|
| + RangesWithPreassignedSlots& preassigned_slot_ranges() {
|
| + return preassigned_slot_ranges_;
|
| + }
|
| +
|
| void Print(const InstructionSequence* instructionSequence);
|
| void Print(const Instruction* instruction);
|
| void Print(const LiveRange* range, bool with_children = false);
|
| @@ -832,6 +839,7 @@ class RegisterAllocationData final : public ZoneObject {
|
| BitVector* assigned_registers_;
|
| BitVector* assigned_double_registers_;
|
| int virtual_register_count_;
|
| + RangesWithPreassignedSlots preassigned_slot_ranges_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RegisterAllocationData);
|
| };
|
|
|