public final class DirectStoreNode extends FixedWithNextNode implements LIRLowerable
UnsafeStoreNode
in that it is not a
StateSplit
and takes a computed address instead of an object.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected ValueNode |
address |
protected Kind |
kind |
static NodeClass<DirectStoreNode> |
TYPE |
protected ValueNode |
value |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
DirectStoreNode(ValueNode address,
ValueNode value,
Kind kind) |
Modifier and Type | Method and Description |
---|---|
void |
generate(NodeLIRBuilderTool gen) |
protected ValueNode |
getAddress() |
protected ValueNode |
getValue() |
static void |
storeBoolean(long address,
boolean value,
Kind kind) |
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, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
public static final NodeClass<DirectStoreNode> TYPE
public DirectStoreNode(ValueNode address, ValueNode value, Kind kind)
public void generate(NodeLIRBuilderTool gen)
generate
in interface LIRLowerable
protected ValueNode getAddress()
public static void storeBoolean(long address, boolean value, Kind kind)