public class com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin implements org.graalvm.compiler.nodes.graphbuilderconf.ClassInitializationPlugin
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin
super_class: java.lang.Object
{
private final com.oracle.svm.hosted.SVMHost host;
descriptor: Lcom/oracle/svm/hosted/SVMHost;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(com.oracle.svm.hosted.SVMHost);
descriptor: (Lcom/oracle/svm/hosted/SVMHost;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.host:Lcom/oracle/svm/hosted/SVMHost;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/phases/SubstrateClassInitializationPlugin;
0 3 1 host Lcom/oracle/svm/hosted/SVMHost;
MethodParameters:
Name Flags
host
public boolean supportsLazyInitialization(jdk.vm.ci.meta.ConstantPool);
descriptor: (Ljdk/vm/ci/meta/ConstantPool;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/phases/SubstrateClassInitializationPlugin;
0 1 1 cp Ljdk/vm/ci/meta/ConstantPool;
MethodParameters:
Name Flags
cp
public void loadReferencedType(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ConstantPool, int, int);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ConstantPool;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
iload 3
iload 4
invokeinterface jdk.vm.ci.meta.ConstantPool.loadReferencedType:(II)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/phases/SubstrateClassInitializationPlugin;
0 2 1 builder Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 2 2 constantPool Ljdk/vm/ci/meta/ConstantPool;
0 2 3 cpi I
0 2 4 bytecode I
MethodParameters:
Name Flags
builder
constantPool
cpi
bytecode
public boolean apply(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaType, java.util.function.Supplier<org.graalvm.compiler.nodes.FrameState>, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/util/function/Supplier;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 2
invokestatic com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.needsRuntimeInitialization:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 5
1: aload 1
aload 0
getfield com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.host:Lcom/oracle/svm/hosted/SVMHost;
aload 2
invokevirtual com.oracle.svm.hosted.SVMHost.dynamicHub:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/core/hub/DynamicHub;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
invokestatic com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.emitEnsureClassInitialized:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/JavaConstant;)V
2: aload 4
ifnull 4
3: aload 4
iconst_0
aconst_null
aastore
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/phases/SubstrateClassInitializationPlugin;
0 6 1 builder Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 6 2 type Ljdk/vm/ci/meta/ResolvedJavaType;
0 6 3 frameState Ljava/util/function/Supplier<Lorg/graalvm/compiler/nodes/FrameState;>;
0 6 4 classInit [Lorg/graalvm/compiler/nodes/ValueNode;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/util/function/Supplier<Lorg/graalvm/compiler/nodes/FrameState;>;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
MethodParameters:
Name Flags
builder
type
frameState
classInit
public static void emitEnsureClassInitialized(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.JavaConstant);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/JavaConstant;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0
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 2
start local 2 1: aload 0
new com.oracle.svm.core.classinitialization.EnsureClassInitializedNode
dup
aload 2
invokespecial com.oracle.svm.core.classinitialization.EnsureClassInitializedNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 builder Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 3 1 hubConstant Ljdk/vm/ci/meta/JavaConstant;
1 3 2 hub Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
builder
hubConstant
static boolean needsRuntimeInitialization(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 1
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isInitialized:()Z
ifne 1
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 declaringClass Ljdk/vm/ci/meta/ResolvedJavaType;
0 2 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
declaringClass
type
}
SourceFile: "SubstrateClassInitializationPlugin.java"