class com.oracle.svm.hosted.c.CGlobalDataFeature$1 implements org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.hosted.c.CGlobalDataFeature$1
super_class: java.lang.Object
{
final com.oracle.svm.hosted.c.CGlobalDataFeature this$0;
descriptor: Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.svm.hosted.c.CGlobalDataFeature);
descriptor: (Lcom/oracle/svm/hosted/c/CGlobalDataFeature;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.svm.hosted.c.CGlobalDataFeature$1 this
0: .line 125
aload 0 /* this */
aload 1
putfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.svm.hosted.c.CGlobalDataFeature$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/CGlobalDataFeature$1;
MethodParameters:
Name Flags
this$0 final
public boolean apply(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=27, args_size=4
start local 0 // com.oracle.svm.hosted.c.CGlobalDataFeature$1 this
start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext builderContext
start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
0: .line 128
aload 3 /* receiver */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 4 /* cGlobalDataNode */
start local 4 // org.graalvm.compiler.nodes.ValueNode cGlobalDataNode
1: .line 129
aload 4 /* cGlobalDataNode */
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 6
2: .line 130
aload 4 /* cGlobalDataNode */
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
checkcast com.oracle.svm.core.c.CGlobalDataImpl
astore 5 /* data */
start local 5 // com.oracle.svm.core.c.CGlobalDataImpl data
3: .line 131
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.map:Ljava/util/Map;
aload 5 /* data */
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.graal.code.CGlobalDataInfo
astore 6 /* info */
start local 6 // com.oracle.svm.core.graal.code.CGlobalDataInfo info
4: .line 132
aload 1 /* builderContext */
aload 2 /* targetMethod */
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
new com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode
dup
aload 6 /* info */
invokespecial com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.<init>:(Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
end local 6 // com.oracle.svm.core.graal.code.CGlobalDataInfo info
end local 5 // com.oracle.svm.core.c.CGlobalDataImpl data
5: .line 133
goto 50
6: .line 134
StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.nonConstantRegistryJavaConstant:Ljdk/vm/ci/meta/JavaConstant;
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 5 /* nonConstantRegistryNode */
start local 5 // org.graalvm.compiler.nodes.ConstantNode nonConstantRegistryNode
7: .line 136
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.getCGlobalDataInfoMethod:Ljava/lang/reflect/Method;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 6 /* getCGlobalDataInfoResolvedMethod */
start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod getCGlobalDataInfoResolvedMethod
8: .line 137
aload 1 /* builderContext */
getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Virtual:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
aload 6 /* getCGlobalDataInfoResolvedMethod */
9: .line 138
iconst_2
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 5 /* nonConstantRegistryNode */
aastore
dup
iconst_1
aload 4 /* cGlobalDataNode */
aastore
iconst_0
10: .line 137
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.handleReplacedInvoke:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/Invoke;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 7 /* cGlobalDataInfo */
start local 7 // org.graalvm.compiler.nodes.ValueNode cGlobalDataInfo
11: .line 139
aload 1 /* builderContext */
aload 7 /* cGlobalDataInfo */
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.pop:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
12: .line 141
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 8 /* resolvedJavaType */
start local 8 // jdk.vm.ci.meta.ResolvedJavaType resolvedJavaType
13: .line 142
aload 8 /* resolvedJavaType */
instanceof com.oracle.graal.pointsto.meta.AnalysisType
ifeq 15
14: .line 143
aload 8 /* resolvedJavaType */
checkcast com.oracle.graal.pointsto.meta.AnalysisType
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
15: .line 146
StackMap locals: com.oracle.svm.hosted.c.CGlobalDataFeature$1 org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ConstantNode jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.offsetField:Ljava/lang/reflect/Field;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 9 /* offset */
start local 9 // jdk.vm.ci.meta.ResolvedJavaField offset
16: .line 147
aload 1 /* builderContext */
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 7 /* cGlobalDataInfo */
aload 9 /* offset */
invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.create:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10 /* offsetFieldNode */
start local 10 // org.graalvm.compiler.nodes.ValueNode offsetFieldNode
17: .line 149
aload 1 /* builderContext */
new com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode
dup
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.cGlobalDataBaseAddress:Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;
invokespecial com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.<init>:(Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode
astore 11 /* cGlobalDataBaseAddressNode */
start local 11 // com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode cGlobalDataBaseAddressNode
18: .line 151
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
19: .line 152
aload 10 /* offsetFieldNode */
aload 11 /* cGlobalDataBaseAddressNode */
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.SignExtendNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;ILorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
20: .line 151
astore 12 /* cGlobalDataInfoOffsetWidened */
start local 12 // org.graalvm.compiler.nodes.ValueNode cGlobalDataInfoOffsetWidened
21: .line 153
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
dup
aload 11 /* cGlobalDataBaseAddressNode */
aload 12 /* cGlobalDataInfoOffsetWidened */
invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
astore 13 /* cGlobalDataAddress */
start local 13 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode cGlobalDataAddress
22: .line 156
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0 /* this */
getfield com.oracle.svm.hosted.c.CGlobalDataFeature$1.this$0:Lcom/oracle/svm/hosted/c/CGlobalDataFeature;
getfield com.oracle.svm.hosted.c.CGlobalDataFeature.isSymbolReferenceField:Ljava/lang/reflect/Field;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 14 /* isSymbolReference */
start local 14 // jdk.vm.ci.meta.ResolvedJavaField isSymbolReference
23: .line 157
aload 1 /* builderContext */
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 7 /* cGlobalDataInfo */
aload 14 /* isSymbolReference */
invokestatic org.graalvm.compiler.nodes.java.LoadFieldNode.create:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaField;)Lorg/graalvm/compiler/nodes/java/LoadFieldNode;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 15 /* isSymbolReferenceNode */
start local 15 // org.graalvm.compiler.nodes.ValueNode isSymbolReferenceNode
24: .line 158
aload 15 /* isSymbolReferenceNode */
iconst_0
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.IntegerEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/LogicNode;
astore 16 /* logicNode */
start local 16 // org.graalvm.compiler.nodes.LogicNode logicNode
25: .line 160
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.calc.AddNode
dup
aload 13 /* cGlobalDataAddress */
invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 13 /* cGlobalDataAddress */
invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.calc.AddNode
astore 17 /* calculatedAddress */
start local 17 // org.graalvm.compiler.nodes.calc.AddNode calculatedAddress
26: .line 161
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.memory.ReadNode
dup
27: .line 162
aload 13 /* cGlobalDataAddress */
28: .line 163
getstatic org.graalvm.compiler.nodes.NamedLocationIdentity.ANY_LOCATION:Lorg/graalvm/word/LocationIdentity;
29: .line 164
aload 11 /* cGlobalDataBaseAddressNode */
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
30: .line 165
getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
invokespecial org.graalvm.compiler.nodes.memory.ReadNode.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/word/LocationIdentity;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;)V
31: .line 161
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.memory.ReadNode
astore 18 /* cGlobalDataValue */
start local 18 // org.graalvm.compiler.nodes.memory.ReadNode cGlobalDataValue
32: .line 167
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.BeginNode
dup
invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 19 /* trueBegin */
start local 19 // org.graalvm.compiler.nodes.AbstractBeginNode trueBegin
33: .line 168
aload 19 /* trueBegin */
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 20 /* predecessor */
start local 20 // org.graalvm.compiler.nodes.FixedWithNextNode predecessor
34: .line 169
aload 20 /* predecessor */
aconst_null
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
35: .line 170
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.BeginNode
dup
invokespecial org.graalvm.compiler.nodes.BeginNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 21 /* falseBegin */
start local 21 // org.graalvm.compiler.nodes.AbstractBeginNode falseBegin
36: .line 171
aload 19 /* trueBegin */
aconst_null
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
37: .line 172
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.IfNode
dup
aload 16 /* logicNode */
aload 19 /* trueBegin */
aload 21 /* falseBegin */
ldc 0.0010000000000000009
invokespecial org.graalvm.compiler.nodes.IfNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;D)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.IfNode
astore 22 /* ifNode */
start local 22 // org.graalvm.compiler.nodes.IfNode ifNode
38: .line 173
aload 21 /* falseBegin */
aconst_null
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
39: .line 174
aload 20 /* predecessor */
aload 22 /* ifNode */
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
40: .line 176
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.EndNode
astore 23 /* thenEnd */
start local 23 // org.graalvm.compiler.nodes.EndNode thenEnd
41: .line 177
aload 19 /* trueBegin */
aload 23 /* thenEnd */
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
42: .line 178
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.EndNode
astore 24 /* elseEnd */
start local 24 // org.graalvm.compiler.nodes.EndNode elseEnd
43: .line 179
aload 21 /* falseBegin */
aload 24 /* elseEnd */
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
44: .line 180
aload 1 /* builderContext */
new org.graalvm.compiler.nodes.MergeNode
dup
invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 25 /* merge */
start local 25 // org.graalvm.compiler.nodes.AbstractMergeNode merge
45: .line 181
aload 25 /* merge */
aload 23 /* thenEnd */
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
46: .line 182
aload 25 /* merge */
aload 24 /* elseEnd */
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
47: .line 184
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 11 /* cGlobalDataBaseAddressNode */
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 25 /* merge */
iconst_2
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 17 /* calculatedAddress */
aastore
dup
iconst_1
aload 18 /* cGlobalDataValue */
aastore
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;[Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 26 /* phiNode */
start local 26 // org.graalvm.compiler.nodes.ValuePhiNode phiNode
48: .line 185
aload 1 /* builderContext */
aload 2 /* targetMethod */
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
aload 1 /* builderContext */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 26 /* phiNode */
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.push:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)V
49: .line 186
aload 1 /* builderContext */
aload 25 /* merge */
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.setStateAfter:(Lorg/graalvm/compiler/nodes/StateSplit;)V
end local 26 // org.graalvm.compiler.nodes.ValuePhiNode phiNode
end local 25 // org.graalvm.compiler.nodes.AbstractMergeNode merge
end local 24 // org.graalvm.compiler.nodes.EndNode elseEnd
end local 23 // org.graalvm.compiler.nodes.EndNode thenEnd
end local 22 // org.graalvm.compiler.nodes.IfNode ifNode
end local 21 // org.graalvm.compiler.nodes.AbstractBeginNode falseBegin
end local 20 // org.graalvm.compiler.nodes.FixedWithNextNode predecessor
end local 19 // org.graalvm.compiler.nodes.AbstractBeginNode trueBegin
end local 18 // org.graalvm.compiler.nodes.memory.ReadNode cGlobalDataValue
end local 17 // org.graalvm.compiler.nodes.calc.AddNode calculatedAddress
end local 16 // org.graalvm.compiler.nodes.LogicNode logicNode
end local 15 // org.graalvm.compiler.nodes.ValueNode isSymbolReferenceNode
end local 14 // jdk.vm.ci.meta.ResolvedJavaField isSymbolReference
end local 13 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode cGlobalDataAddress
end local 12 // org.graalvm.compiler.nodes.ValueNode cGlobalDataInfoOffsetWidened
end local 11 // com.oracle.svm.core.graal.nodes.CGlobalDataLoadAddressNode cGlobalDataBaseAddressNode
end local 10 // org.graalvm.compiler.nodes.ValueNode offsetFieldNode
end local 9 // jdk.vm.ci.meta.ResolvedJavaField offset
end local 8 // jdk.vm.ci.meta.ResolvedJavaType resolvedJavaType
end local 7 // org.graalvm.compiler.nodes.ValueNode cGlobalDataInfo
end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod getCGlobalDataInfoResolvedMethod
end local 5 // org.graalvm.compiler.nodes.ConstantNode nonConstantRegistryNode
50: .line 188
StackMap locals: com.oracle.svm.hosted.c.CGlobalDataFeature$1 org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver org.graalvm.compiler.nodes.ValueNode
StackMap stack:
iconst_1
ireturn
end local 4 // org.graalvm.compiler.nodes.ValueNode cGlobalDataNode
end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext builderContext
end local 0 // com.oracle.svm.hosted.c.CGlobalDataFeature$1 this
LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lcom/oracle/svm/hosted/c/CGlobalDataFeature$1;
0 51 1 builderContext Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 51 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 51 3 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
1 51 4 cGlobalDataNode Lorg/graalvm/compiler/nodes/ValueNode;
3 5 5 data Lcom/oracle/svm/core/c/CGlobalDataImpl<*>;
4 5 6 info Lcom/oracle/svm/core/graal/code/CGlobalDataInfo;
7 50 5 nonConstantRegistryNode Lorg/graalvm/compiler/nodes/ConstantNode;
8 50 6 getCGlobalDataInfoResolvedMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
11 50 7 cGlobalDataInfo Lorg/graalvm/compiler/nodes/ValueNode;
13 50 8 resolvedJavaType Ljdk/vm/ci/meta/ResolvedJavaType;
16 50 9 offset Ljdk/vm/ci/meta/ResolvedJavaField;
17 50 10 offsetFieldNode Lorg/graalvm/compiler/nodes/ValueNode;
18 50 11 cGlobalDataBaseAddressNode Lcom/oracle/svm/core/graal/nodes/CGlobalDataLoadAddressNode;
21 50 12 cGlobalDataInfoOffsetWidened Lorg/graalvm/compiler/nodes/ValueNode;
22 50 13 cGlobalDataAddress Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
23 50 14 isSymbolReference Ljdk/vm/ci/meta/ResolvedJavaField;
24 50 15 isSymbolReferenceNode Lorg/graalvm/compiler/nodes/ValueNode;
25 50 16 logicNode Lorg/graalvm/compiler/nodes/LogicNode;
26 50 17 calculatedAddress Lorg/graalvm/compiler/nodes/calc/AddNode;
32 50 18 cGlobalDataValue Lorg/graalvm/compiler/nodes/memory/ReadNode;
33 50 19 trueBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
34 50 20 predecessor Lorg/graalvm/compiler/nodes/FixedWithNextNode;
36 50 21 falseBegin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
38 50 22 ifNode Lorg/graalvm/compiler/nodes/IfNode;
41 50 23 thenEnd Lorg/graalvm/compiler/nodes/EndNode;
43 50 24 elseEnd Lorg/graalvm/compiler/nodes/EndNode;
45 50 25 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
48 50 26 phiNode Lorg/graalvm/compiler/nodes/ValuePhiNode;
MethodParameters:
Name Flags
builderContext
targetMethod
receiver
}
SourceFile: "CGlobalDataFeature.java"
EnclosingMethod: com.oracle.svm.hosted.c.CGlobalDataFeature.registerInvocationPlugins:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;ZZ)V
NestHost: com.oracle.svm.hosted.c.CGlobalDataFeature
InnerClasses:
com.oracle.svm.hosted.c.CGlobalDataFeature$1
public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
public final BarrierType = org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType of org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess