public abstract class org.graalvm.compiler.nodes.extended.UnsafeAccessNode extends org.graalvm.compiler.nodes.FixedWithNextNode implements org.graalvm.compiler.graph.spi.Canonicalizable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.graalvm.compiler.nodes.extended.UnsafeAccessNode
super_class: org.graalvm.compiler.nodes.FixedWithNextNode
{
public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.extended.UnsafeAccessNode> TYPE;
descriptor: Lorg/graalvm/compiler/graph/NodeClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;>;
org.graalvm.compiler.nodes.ValueNode object;
descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Input()
org.graalvm.compiler.nodes.ValueNode offset;
descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0000)
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$Input()
protected final jdk.vm.ci.meta.JavaKind accessKind;
descriptor: Ljdk/vm/ci/meta/JavaKind;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.graalvm.word.LocationIdentity locationIdentity;
descriptor: Lorg/graalvm/word/LocationIdentity;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final boolean forceAnyLocation;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
putstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.extended.UnsafeAccessNode>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, org.graalvm.word.LocationIdentity, );
descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/word/LocationIdentity;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
invokespecial org.graalvm.compiler.nodes.FixedWithNextNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
1: aload 0
iload 7
putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.forceAnyLocation:Z
2: getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
ifne 3
aload 5
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.nodes.extended.UnsafeAccessNode org.graalvm.compiler.graph.NodeClass org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind org.graalvm.word.LocationIdentity int
StackMap stack:
getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
ifne 4
aload 6
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
5: aload 0
aload 4
putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:Lorg/graalvm/compiler/nodes/ValueNode;
6: aload 0
aload 5
putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:Ljdk/vm/ci/meta/JavaKind;
7: aload 0
aload 6
putfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.locationIdentity:Lorg/graalvm/word/LocationIdentity;
8: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
0 9 1 c Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;>;
0 9 2 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 9 3 object Lorg/graalvm/compiler/nodes/ValueNode;
0 9 4 offset Lorg/graalvm/compiler/nodes/ValueNode;
0 9 5 accessKind Ljdk/vm/ci/meta/JavaKind;
0 9 6 locationIdentity Lorg/graalvm/word/LocationIdentity;
0 9 7 forceAnyLocation Z
Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/word/LocationIdentity;Z)V
MethodParameters:
Name Flags
c
stamp
object
offset
accessKind
locationIdentity
forceAnyLocation
public org.graalvm.word.LocationIdentity getLocationIdentity();
descriptor: ()Lorg/graalvm/word/LocationIdentity;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.locationIdentity:Lorg/graalvm/word/LocationIdentity;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
public boolean isAnyLocationForced();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.forceAnyLocation:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
public org.graalvm.compiler.nodes.ValueNode object();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
public org.graalvm.compiler.nodes.ValueNode offset();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
public jdk.vm.ci.meta.JavaKind accessKind();
descriptor: ()Ljdk/vm/ci/meta/JavaKind;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:Ljdk/vm/ci/meta/JavaKind;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool);
descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.isAnyLocationForced:()Z
ifne 14
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.getLocationIdentity:()Lorg/graalvm/word/LocationIdentity;
invokevirtual org.graalvm.word.LocationIdentity.isAny:()Z
ifeq 14
1: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 9
2: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lstore 2
start local 2 3: aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
start local 4 4: aload 4
ifnull 9
5: aload 4
lload 2
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.findInstanceFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 5
start local 5 6: aload 5
ifnull 9
aload 5
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.accessKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpne 9
7: getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
ifne 8
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
ifeq 8
new java.lang.AssertionError
dup
ldc "cannot add more precise memory location after floating read phase"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
8: StackMap locals: long jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 5
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.cloneAsFieldAccess:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 5 end local 4 end local 2 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 10: aload 2
ifnull 14
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 14
11: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/word/LocationIdentity;
astore 3
start local 3 12: getstatic org.graalvm.compiler.nodes.extended.UnsafeAccessNode.$assertionsDisabled:Z
ifne 13
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFloatingReadPhase:()Z
ifeq 13
new java.lang.AssertionError
dup
ldc "cannot add more precise memory location after floating read phase"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType org.graalvm.word.LocationIdentity
StackMap stack:
aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.offset:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.extended.UnsafeAccessNode.cloneAsArrayAccess:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 3 end local 2 14: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/nodes/extended/UnsafeAccessNode;
0 15 1 tool Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
3 9 2 constantOffset J
4 9 4 receiverType Ljdk/vm/ci/meta/ResolvedJavaType;
6 9 5 field Ljdk/vm/ci/meta/ResolvedJavaField;
10 14 2 receiverType Ljdk/vm/ci/meta/ResolvedJavaType;
12 14 3 identity Lorg/graalvm/word/LocationIdentity;
MethodParameters:
Name Flags
tool
protected abstract org.graalvm.compiler.nodes.ValueNode cloneAsFieldAccess(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
assumptions
field
protected abstract org.graalvm.compiler.nodes.ValueNode cloneAsArrayAccess(org.graalvm.compiler.nodes.ValueNode, org.graalvm.word.LocationIdentity);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
location
identity
}
SourceFile: "UnsafeAccessNode.java"
InnerClasses:
public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
RuntimeVisibleAnnotations:
org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_2:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1:Lorg/graalvm/compiler/nodeinfo/NodeSize;)