public class com.oracle.svm.hosted.snippets.ReflectionPlugins
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.snippets.ReflectionPlugins
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/snippets/ReflectionPlugins;
public static void registerInvocationPlugins(com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, com.oracle.svm.hosted.SVMHost, boolean, boolean);
descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 6
ifeq 3
iload 5
ifeq 3
1: ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
ifne 3
2: ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
dup
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.<init>:()V
invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
iload 6
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.registerClassPlugins:(Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
4: return
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 5 0 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 5 1 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 5 2 annotationSubstitutions Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 5 3 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
0 5 4 hostVM Lcom/oracle/svm/hosted/SVMHost;
0 5 5 analysis Z
0 5 6 hosted Z
MethodParameters:
Name Flags
imageClassLoader
snippetReflection
annotationSubstitutions
plugins
hostVM
analysis
hosted
private static void registerClassPlugins(com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, com.oracle.svm.hosted.SVMHost, boolean, boolean);
descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=12, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 3
ldc Ljava/lang/Class;
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
astore 7
start local 7 1: aload 7
ldc "forName"
ldc Ljava/lang/String;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$1
dup
aload 4
aload 0
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$1.<init>:(Lcom/oracle/svm/hosted/SVMHost;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
2: aload 7
ldc "forName"
ldc Ljava/lang/String;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
ldc Ljava/lang/ClassLoader;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$2
dup
aload 4
aload 0
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$2.<init>:(Lcom/oracle/svm/hosted/SVMHost;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
3: aload 7
ldc "getDeclaredField"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Ljava/lang/String;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$3
dup
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$3.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
4: aload 7
ldc "getField"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Ljava/lang/String;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$4
dup
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$4.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
5: aload 7
ldc "getDeclaredMethod"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Ljava/lang/String;
ldc [Ljava/lang/Class;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$5
dup
aload 2
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$5.<init>:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
6: aload 7
ldc "getMethod"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Ljava/lang/String;
ldc [Ljava/lang/Class;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$6
dup
aload 2
aload 1
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$6.<init>:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
7: aload 7
ldc "getDeclaredConstructor"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc [Ljava/lang/Class;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$7
dup
aload 1
aload 2
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$7.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
8: aload 7
ldc "getConstructor"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc [Ljava/lang/Class;
new com.oracle.svm.hosted.snippets.ReflectionPlugins$8
dup
aload 1
aload 2
iload 5
iload 6
invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$8.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZ)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
9: 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 10 0 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 10 1 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 10 2 annotationSubstitutions Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 10 3 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
0 10 4 hostVM Lcom/oracle/svm/hosted/SVMHost;
0 10 5 analysis Z
0 10 6 hosted Z
1 10 7 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
MethodParameters:
Name Flags
imageClassLoader
snippetReflection
annotationSubstitutions
plugins
hostVM
analysis
hosted
private static boolean processForName(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, com.oracle.svm.hosted.SVMHost, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lcom/oracle/svm/hosted/SVMHost;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=15, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 17
aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 17
1: aload 6
ldc Ljava/lang/String;
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 2: aload 5
aload 9
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 10
start local 10 3: aload 10
ifnonnull 5
4: aload 0
aload 2
iload 7
iload 8
aload 9
ldc Ljava/lang/ClassNotFoundException;
aload 9
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
ireturn
5: StackMap locals: java.lang.String java.lang.Class
StackMap stack:
iload 7
iload 8
aload 0
aload 10
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
astore 11
start local 11 6: aload 11
ifnonnull 8
7: iconst_0
ireturn
8: StackMap locals: java.lang.Class
StackMap stack:
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 10
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 12
start local 12 9: aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 12
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.asJavaClass:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaConstant;
astore 13
start local 13 10: aload 0
aload 2
aload 13
aload 9
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
11: aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
ifeq 12
iconst_1
goto 13
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.JavaConstant
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 14
start local 14 14: iload 14
ifeq 16
aload 1
invokevirtual com.oracle.svm.hosted.SVMHost.getClassInitializationSupport:()Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
aload 10
invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.shouldInitializeAtRuntime:(Ljava/lang/Class;)Z
ifeq 16
15: aload 0
aload 13
invokestatic com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.emitEnsureClassInitialized:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/JavaConstant;)V
16: StackMap locals: int
StackMap stack:
iconst_1
ireturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 17: StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.ImageClassLoader org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int
StackMap stack:
iconst_0
ireturn
end local 8 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 18 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 18 1 host Lcom/oracle/svm/hosted/SVMHost;
0 18 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 18 3 name Lorg/graalvm/compiler/nodes/ValueNode;
0 18 4 initialize Lorg/graalvm/compiler/nodes/ValueNode;
0 18 5 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 18 6 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 18 7 analysis Z
0 18 8 hosted Z
2 17 9 className Ljava/lang/String;
3 17 10 clazz Ljava/lang/Class<*>;
6 17 11 intrinsic Ljava/lang/Class<*>;
9 17 12 type Ljdk/vm/ci/meta/ResolvedJavaType;
10 17 13 hub Ljdk/vm/ci/meta/JavaConstant;
14 17 14 doInitialize Z
MethodParameters:
Name Flags
b
host
targetMethod
name
initialize
imageClassLoader
snippetReflection
analysis
hosted
private static boolean processGetField(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.api.replacements.SnippetReflectionProvider, boolean, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=12, 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 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
ifeq 11
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 11
1: aload 0
aload 2
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
astore 8
start local 8 2: aload 4
ldc Ljava/lang/String;
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 3: new java.lang.StringBuilder
dup
aload 8
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
start local 10 4: iload 5
ifeq 5
aload 8
aload 9
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
goto 6
StackMap locals: java.lang.Class java.lang.String java.lang.String
StackMap stack:
5: aload 8
aload 9
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
StackMap locals:
StackMap stack: java.lang.reflect.Field
6: astore 11
start local 11 7: aload 0
aload 1
aload 4
iload 6
iload 7
aload 11
aload 10
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
8: ireturn
end local 11 9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
start local 11 10: aload 0
aload 1
iload 6
iload 7
aload 10
aload 11
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 11
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
ireturn
end local 11 end local 10 end local 9 end local 8 11: StackMap locals:
StackMap stack:
iconst_0
ireturn
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 12 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 12 1 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 12 2 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 12 3 name Lorg/graalvm/compiler/nodes/ValueNode;
0 12 4 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 12 5 declared Z
0 12 6 analysis Z
0 12 7 hosted Z
2 11 8 clazz Ljava/lang/Class<*>;
3 11 9 fieldName Ljava/lang/String;
4 11 10 target Ljava/lang/String;
7 9 11 field Ljava/lang/reflect/Field;
10 11 11 e Ljava/lang/Throwable;
Exception table:
from to target type
4 8 9 Class java.lang.NoSuchFieldException
4 8 9 Class java.lang.LinkageError
MethodParameters:
Name Flags
b
targetMethod
receiver
name
snippetReflection
declared
analysis
hosted
private static boolean processGetMethod(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.ValueNode, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=15, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
ifeq 13
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 13
1: aload 5
aload 6
aload 4
iconst_1
invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.extractClassArray:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Z)[Ljava/lang/Class;
astore 10
start local 10 2: aload 10
ifnull 13
3: aload 0
aload 2
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
astore 11
start local 11 4: aload 6
ldc Ljava/lang/String;
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
checkcast java.lang.String
astore 12
start local 12 5: new java.lang.StringBuilder
dup
aload 11
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Class.getTypeName()Ljava/lang/String; (5)
(Ljava/lang/Class;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
ldc ", "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 13
start local 13 6: iload 7
ifeq 7
aload 11
aload 12
aload 10
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
goto 8
StackMap locals: 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.ValueNode com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int int java.lang.Class[] java.lang.Class java.lang.String java.lang.String
StackMap stack:
7: aload 11
aload 12
aload 10
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
StackMap locals:
StackMap stack: java.lang.reflect.Method
8: astore 14
start local 14 9: aload 0
aload 1
aload 6
iload 8
iload 9
aload 14
aload 13
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
10: ireturn
end local 14 11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
start local 14 12: aload 0
aload 1
iload 8
iload 9
aload 13
aload 14
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 14
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
ireturn
end local 14 end local 13 end local 12 end local 11 end local 10 13: StackMap locals: 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.ValueNode com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int int
StackMap stack:
iconst_0
ireturn
end local 9 end local 8 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 14 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 14 1 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 14 2 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 14 3 name Lorg/graalvm/compiler/nodes/ValueNode;
0 14 4 parameterTypes Lorg/graalvm/compiler/nodes/ValueNode;
0 14 5 annotationSubstitutions Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 14 6 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 14 7 declared Z
0 14 8 analysis Z
0 14 9 hosted Z
2 13 10 paramTypes [Ljava/lang/Class;
4 13 11 clazz Ljava/lang/Class<*>;
5 13 12 methodName Ljava/lang/String;
6 13 13 target Ljava/lang/String;
9 11 14 method Ljava/lang/reflect/Method;
12 13 14 e Ljava/lang/Throwable;
Exception table:
from to target type
6 10 11 Class java.lang.NoSuchMethodException
6 10 11 Class java.lang.LinkageError
MethodParameters:
Name Flags
b
targetMethod
receiver
name
parameterTypes
annotationSubstitutions
snippetReflection
declared
analysis
hosted
private static boolean processGetConstructor(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.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, boolean, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZZ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=13, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
ifeq 12
1: aload 5
aload 4
aload 3
iconst_1
invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.extractClassArray:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Z)[Ljava/lang/Class;
astore 9
start local 9 2: aload 9
ifnull 12
3: aload 0
aload 2
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
astore 10
start local 10 4: new java.lang.StringBuilder
dup
aload 10
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".<init>("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Class.getTypeName()Ljava/lang/String; (5)
(Ljava/lang/Class;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
ldc ", "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 11
start local 11 5: iload 6
ifeq 6
aload 10
aload 9
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
goto 7
StackMap locals: java.lang.Class[] java.lang.Class java.lang.String
StackMap stack:
6: aload 10
aload 9
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
StackMap locals:
StackMap stack: java.lang.reflect.Constructor
7: astore 12
start local 12 8: aload 0
aload 1
aload 4
iload 7
iload 8
aload 12
aload 11
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
9: ireturn
end local 12 10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
start local 12 11: aload 0
aload 1
iload 7
iload 8
aload 11
aload 12
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 12
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
ireturn
end local 12 end local 11 end local 10 end local 9 12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 8 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 13 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 13 1 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 13 2 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 13 3 parameterTypes Lorg/graalvm/compiler/nodes/ValueNode;
0 13 4 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 13 5 annotationSubstitutions Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 13 6 declared Z
0 13 7 analysis Z
0 13 8 hosted Z
2 12 9 paramTypes [Ljava/lang/Class;
4 12 10 clazz Ljava/lang/Class<*>;
5 12 11 target Ljava/lang/String;
8 10 12 constructor Ljava/lang/reflect/Constructor<*>;
11 12 12 e Ljava/lang/Throwable;
Exception table:
from to target type
5 9 10 Class java.lang.NoSuchMethodException
5 9 10 Class java.lang.LinkageError
MethodParameters:
Name Flags
b
targetMethod
receiver
parameterTypes
snippetReflection
annotationSubstitutions
declared
analysis
hosted
private static java.lang.Class<?> getReceiverClass(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.asJavaType:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 1: invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
aload 2
invokestatic com.oracle.graal.pointsto.infrastructure.OriginalClassProvider.getJavaClass:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 2 1 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
1 2 2 javaType Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
b
receiver
private static <T> T getIntrinsic(boolean, boolean, org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, );
descriptor: (ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifne 2
1: aload 3
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.bciCanBeDuplicated:()Z
ifeq 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
iload 0
ifeq 8
5: aload 3
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.isDeleted:(Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
ifeq 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
aload 3
invokevirtual com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.add:(Ljava/util/List;Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
invokevirtual com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.get:(Ljava/util/List;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 analysis Z
0 9 1 hosted Z
0 9 2 context Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 9 3 element TT;
Signature: <T:Ljava/lang/Object;>(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;TT;)TT;
MethodParameters:
Name Flags
analysis
hosted
context
element
private static <T> boolean isDeleted(T, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
instanceof java.lang.reflect.Executable
ifeq 4
2: aload 1
aload 0
checkcast java.lang.reflect.Executable
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
3: goto 9
StackMap locals: java.lang.reflect.AnnotatedElement
StackMap stack:
4: aload 0
instanceof java.lang.reflect.Field
ifeq 9
5: aload 1
aload 0
checkcast java.lang.reflect.Field
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 2
6: goto 9
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.DeletedElementException
7: pop
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
aload 2
ifnull 11
aload 2
ldc Lcom/oracle/svm/core/annotate/Delete;
invokeinterface java.lang.reflect.AnnotatedElement.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 11
10: iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 element TT;
0 12 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
1 12 2 annotated Ljava/lang/reflect/AnnotatedElement;
Exception table:
from to target type
1 6 7 Class com.oracle.svm.hosted.substitute.DeletedElementException
Signature: <T:Ljava/lang/Object;>(TT;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
MethodParameters:
Name Flags
element
metaAccess
private static <T> boolean pushConstant(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean, T, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 3
iload 4
aload 0
aload 5
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 1: aload 7
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 1
aload 2
aload 7
invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
aload 6
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
4: iconst_1
ireturn
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 5 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 5 1 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 5 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 5 3 analysis Z
0 5 4 hosted Z
0 5 5 element TT;
0 5 6 targetElement Ljava/lang/String;
1 5 7 intrinsic TT;
Signature: <T:Ljava/lang/Object;>(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZTT;Ljava/lang/String;)Z
MethodParameters:
Name Flags
b
targetMethod
snippetReflection
analysis
hosted
element
targetElement
private static void pushConstant(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.JavaConstant, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
aload 2
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;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
1: aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 1
aload 3
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.traceConstant:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 3 1 reflectionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 3 2 constant Ljdk/vm/ci/meta/JavaConstant;
0 3 3 targetElement Ljava/lang/String;
MethodParameters:
Name Flags
b
reflectionMethod
constant
targetElement
private static boolean throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, boolean, boolean, java.lang.String, java.lang.Class<? extends java.lang.Throwable>, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 5
aastore
dup
iconst_1
ldc Ljava/lang/String;
aastore
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwExceptionMethod:([Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 7
start local 7 1: iload 2
iload 3
aload 0
aload 7
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 8
start local 8 2: aload 8
ifnonnull 4
3: iconst_0
ireturn
4: StackMap locals: java.lang.reflect.Method java.lang.reflect.Method
StackMap stack:
aload 0
aload 1
aload 4
aload 7
aload 6
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/String;)V
5: iconst_1
ireturn
end local 8 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 6 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 6 1 reflectionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 2 analysis Z
0 6 3 hosted Z
0 6 4 targetElement Ljava/lang/String;
0 6 5 exceptionClass Ljava/lang/Class<+Ljava/lang/Throwable;>;
0 6 6 originalMessage Ljava/lang/String;
1 6 7 exceptionMethod Ljava/lang/reflect/Method;
2 6 8 intrinsic Ljava/lang/reflect/Method;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class<+Ljava/lang/Throwable;>;Ljava/lang/String;)Z
MethodParameters:
Name Flags
b
reflectionMethod
analysis
hosted
targetElement
exceptionClass
originalMessage
private static void throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String, java.lang.reflect.Method, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ". This exception was synthesized during native image building from a call to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " with constant arguments."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 3: aload 0
aload 3
aload 5
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/reflect/Method;Ljava/lang/String;)V
4: aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 1
aload 2
aload 3
invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.traceException:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;)V
5: return
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 6 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 6 1 reflectionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 2 targetElement Ljava/lang/String;
0 6 3 exceptionMethod Ljava/lang/reflect/Method;
0 6 4 originalMessage Ljava/lang/String;
3 6 5 message Ljava/lang/String;
MethodParameters:
Name Flags
b
reflectionMethod
targetElement
exceptionMethod
originalMessage
private static void traceConstant(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.snippets.ReflectionPlugins$Options.ReflectionPluginTracing:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Call to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " reached in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc " for target "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " was reduced to a constant."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 contextMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 5 1 reflectionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 5 2 targetElement Ljava/lang/String;
MethodParameters:
Name Flags
contextMethod
reflectionMethod
targetElement
private static void traceException(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String, java.lang.reflect.Method);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.hosted.snippets.ReflectionPlugins$Options.ReflectionPluginTracing:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 5
1: aload 3
invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
iconst_0
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 4
start local 4 2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Call to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " reached in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc " for target "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " was reduced to a \"throw new "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "(...)\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 4 5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 contextMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 1 reflectionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 2 targetElement Ljava/lang/String;
0 6 3 exceptionMethod Ljava/lang/reflect/Method;
2 5 4 exception Ljava/lang/String;
MethodParameters:
Name Flags
contextMethod
reflectionMethod
targetElement
exceptionMethod
}
SourceFile: "ReflectionPlugins.java"
NestMembers:
com.oracle.svm.hosted.snippets.ReflectionPlugins$1 com.oracle.svm.hosted.snippets.ReflectionPlugins$2 com.oracle.svm.hosted.snippets.ReflectionPlugins$3 com.oracle.svm.hosted.snippets.ReflectionPlugins$4 com.oracle.svm.hosted.snippets.ReflectionPlugins$5 com.oracle.svm.hosted.snippets.ReflectionPlugins$6 com.oracle.svm.hosted.snippets.ReflectionPlugins$7 com.oracle.svm.hosted.snippets.ReflectionPlugins$8 com.oracle.svm.hosted.snippets.ReflectionPlugins$Options com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
InnerClasses:
com.oracle.svm.hosted.snippets.ReflectionPlugins$1
com.oracle.svm.hosted.snippets.ReflectionPlugins$2
com.oracle.svm.hosted.snippets.ReflectionPlugins$3
com.oracle.svm.hosted.snippets.ReflectionPlugins$4
com.oracle.svm.hosted.snippets.ReflectionPlugins$5
com.oracle.svm.hosted.snippets.ReflectionPlugins$6
com.oracle.svm.hosted.snippets.ReflectionPlugins$7
com.oracle.svm.hosted.snippets.ReflectionPlugins$8
Options = com.oracle.svm.hosted.snippets.ReflectionPlugins$Options of com.oracle.svm.hosted.snippets.ReflectionPlugins
public ReflectionPluginRegistry = com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry of com.oracle.svm.hosted.snippets.ReflectionPlugins
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins