public final class DirectObjectStoreNode extends FixedWithNextNode implements Lowerable
UnsafeStoreNode
in that it is not a
StateSplit
and does not include a write barrier. Note that contrary to the sound of the
name this node can be used for storing any kind.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected int |
displacement |
protected LocationIdentity |
locationIdentity |
(package private) ValueNode |
object |
(package private) ValueNode |
offset |
protected Kind |
storeKind |
static NodeClass<DirectObjectStoreNode> |
TYPE |
(package private) ValueNode |
value |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
DirectObjectStoreNode(ValueNode object,
int displacement,
ValueNode offset,
ValueNode value,
LocationIdentity locationIdentity,
Kind storeKind) |
Modifier and Type | Method and Description |
---|---|
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
static void |
storeBoolean(Object obj,
int displacement,
long offset,
boolean value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeByte(Object obj,
int displacement,
long offset,
byte value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeChar(Object obj,
int displacement,
long offset,
char value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeDouble(Object obj,
int displacement,
long offset,
double value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeFloat(Object obj,
int displacement,
long offset,
float value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeInt(Object obj,
int displacement,
long offset,
int value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeLong(Object obj,
int displacement,
long offset,
long value,
LocationIdentity locationIdenity,
Kind storeKind) |
static void |
storeObject(Object obj,
int displacement,
long offset,
Object value,
LocationIdentity locationIdentity,
Kind storeKind) |
static void |
storeShort(Object obj,
int displacement,
long offset,
short value,
LocationIdentity locationIdenity,
Kind storeKind) |
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<DirectObjectStoreNode> TYPE
protected final int displacement
protected final LocationIdentity locationIdentity
public DirectObjectStoreNode(ValueNode object, int displacement, ValueNode offset, ValueNode value, LocationIdentity locationIdentity, Kind storeKind)
public static void storeObject(Object obj, int displacement, long offset, Object value, LocationIdentity locationIdentity, Kind storeKind)
public static void storeBoolean(Object obj, int displacement, long offset, boolean value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeByte(Object obj, int displacement, long offset, byte value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeChar(Object obj, int displacement, long offset, char value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeShort(Object obj, int displacement, long offset, short value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeInt(Object obj, int displacement, long offset, int value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeLong(Object obj, int displacement, long offset, long value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeFloat(Object obj, int displacement, long offset, float value, LocationIdentity locationIdenity, Kind storeKind)
public static void storeDouble(Object obj, int displacement, long offset, double value, LocationIdentity locationIdenity, Kind storeKind)
public void lower(LoweringTool tool)
Lowerable