// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8.ir.regalloc; import static com.android.tools.r8.dex.Constants.U16BIT_MAX; public class LiveIntervalsUse implements Comparable { private final int position; private final int limit; public LiveIntervalsUse(int position, int limit) { this.position = position; this.limit = limit; } public int getPosition() { return position; } public int getLimit() { return limit; } @Override public int hashCode() { return position + limit * 7; } @Override public boolean equals(Object other) { if (!(other instanceof LiveIntervalsUse)) { return false; } LiveIntervalsUse o = (LiveIntervalsUse) other; return o.position == position && o.limit == limit; } @Override public int compareTo(LiveIntervalsUse o) { if (o.position != position) { return position - o.position; } return limit - o.limit; } public boolean hasConstraint() { return limit < U16BIT_MAX; } }