public final class AMD64CalcStringAttributesNode extends FixedWithNextNode implements LIRLowerable, MemoryAccess
AMD64CalcStringAttributesOp for details.AMD64CalcStringAttributesOpNode.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable| Modifier and Type | Field and Description |
|---|---|
protected ValueNode |
array |
protected ValueNode |
length |
protected ValueNode |
offset |
protected FrameState |
stateBefore |
static NodeClass<AMD64CalcStringAttributesNode> |
TYPE |
nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
|
AMD64CalcStringAttributesNode(AMD64CalcStringAttributesOp.Op op,
boolean assumeValid,
org.graalvm.word.LocationIdentity locationIdentity,
ValueNode array,
ValueNode offset,
ValueNode length) |
protected |
AMD64CalcStringAttributesNode(AMD64CalcStringAttributesOp.Op op,
boolean assumeValid,
ValueNode array,
ValueNode offset,
ValueNode length)
This constructor is used by the
NodeIntrinsic plugins below, which in turn are used
only in AMD64CalcStringAttributesStub, which is why we are using
LocationIdentity.any() here. |
| Modifier and Type | Method and Description |
|---|---|
static int |
bmpInternal(Object array,
long offset,
int length) |
void |
generate(NodeLIRBuilderTool gen) |
ValueNode |
getArray() |
MemoryKill |
getLastLocationAccess() |
ValueNode |
getLength() |
org.graalvm.word.LocationIdentity |
getLocationIdentity() |
ValueNode |
getOffset() |
AMD64CalcStringAttributesOp.Op |
getOp() |
boolean |
isAssumeValid() |
static int |
latin1Internal(Object array,
long offset,
int length) |
void |
setLastLocationAccess(MemoryKill lla) |
static long |
utf16Internal(boolean assumeValid,
Object array,
long offset,
int length) |
static int |
utf32Internal(Object array,
long offset,
int length) |
static long |
utf8Internal(boolean assumeValid,
Object array,
long offset,
int length) |
asFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceafterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasNodeasFixedNodepublic static final NodeClass<AMD64CalcStringAttributesNode> TYPE
protected ValueNode array
protected ValueNode offset
protected ValueNode length
protected FrameState stateBefore
protected AMD64CalcStringAttributesNode(AMD64CalcStringAttributesOp.Op op, boolean assumeValid, ValueNode array, ValueNode offset, ValueNode length)
NodeIntrinsic plugins below, which in turn are used
only in AMD64CalcStringAttributesStub, which is why we are using
LocationIdentity.any() here. The nodes calling the stubs are using more fine-grained
location identities, but are calling the same stubs (after
assembly generation).public AMD64CalcStringAttributesNode(AMD64CalcStringAttributesOp.Op op, boolean assumeValid, org.graalvm.word.LocationIdentity locationIdentity, ValueNode array, ValueNode offset, ValueNode length)
public AMD64CalcStringAttributesOp.Op getOp()
public boolean isAssumeValid()
public ValueNode getArray()
public ValueNode getOffset()
public ValueNode getLength()
public org.graalvm.word.LocationIdentity getLocationIdentity()
getLocationIdentity in interface MemoryAccesspublic MemoryKill getLastLocationAccess()
getLastLocationAccess in interface MemoryAccesspublic void setLastLocationAccess(MemoryKill lla)
setLastLocationAccess in interface MemoryAccesslla - the MemoryKill that represents the last kill of the
LocationIdentity returned by MemoryAccess.getLocationIdentity()public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic static int latin1Internal(Object array, long offset, int length)
public static int bmpInternal(Object array, long offset, int length)
public static long utf8Internal(boolean assumeValid,
Object array,
long offset,
int length)
public static long utf16Internal(boolean assumeValid,
Object array,
long offset,
int length)
public static int utf32Internal(Object array, long offset, int length)