public final class ReadRegisterNode extends FixedWithNextNode implements LIRLowerable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected boolean |
directUse
When true, subsequent uses of this node use the fixed register; when false, the value is
moved into a new virtual register so that the fixed register is not seen by uses.
|
protected boolean |
incoming
When true, this node is also an implicit definition of the value for the register allocator,
i.e., the register is an implicit incoming value; when false, the register must be defined in
the same method or must be an register excluded from register allocation.
|
protected Register |
register
The fixed register to access.
|
static NodeClass<ReadRegisterNode> |
TYPE |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
ReadRegisterNode(Register register,
boolean directUse,
boolean incoming) |
ReadRegisterNode(Register register,
Kind kind,
boolean directUse,
boolean incoming) |
Modifier and Type | Method and Description |
---|---|
void |
generate(NodeLIRBuilderTool generator) |
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity . |
asNode, next, setNext
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
public static final NodeClass<ReadRegisterNode> TYPE
protected final boolean directUse
protected final boolean incoming
public ReadRegisterNode(Register register, Kind kind, boolean directUse, boolean incoming)
public ReadRegisterNode(Register register, boolean directUse, boolean incoming)
public void generate(NodeLIRBuilderTool generator)
generate
in interface LIRLowerable