blob: c5a7bbb870e6f883826d3564f5101af530b5d40b [file] [log] [blame]
// 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.code;
// Value that has a fixed register allocated. These are used for inserting spill, restore, and phi
// moves in the spilling register allocator.
public class FixedRegisterValue extends Value {
private final int register;
public FixedRegisterValue(MoveType type, int register) {
// Set local info to null since these values are never representatives of live-ranges.
super(-1, type, null);
setNeedsRegister(true);
this.register = register;
}
public int getRegister() {
return register;
}
@Override
public boolean isFixedRegisterValue() {
return true;
}
@Override
public FixedRegisterValue asFixedRegisterValue() {
return this;
}
@Override
public boolean isConstant() {
return false;
}
@Override
public String toString() {
return "r" + register;
}
}