public class com.oracle.svm.hosted.annotation.AnnotationSupport extends com.oracle.svm.hosted.annotation.CustomSubstitution<com.oracle.svm.hosted.annotation.AnnotationSubstitutionType>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.annotation.AnnotationSupport
super_class: com.oracle.svm.hosted.annotation.CustomSubstitution
{
public static final java.lang.Class<?> constantAnnotationMarkerInterface;
descriptor: Ljava/lang/Class;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private final org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
descriptor: Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.ResolvedJavaType javaLangAnnotationAnnotation;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.ResolvedJavaType javaLangReflectProxy;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.ResolvedJavaType constantAnnotationMarkerOriginalType;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.ResolvedJavaType constantAnnotationMarkerSubstitutionType;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, 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 Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
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 com.oracle.svm.hosted.annotation.AnnotationSupport.$assertionsDisabled:Z
3: ldc Ljava/lang/Override;
putstatic com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerInterface:Ljava/lang/Class;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial com.oracle.svm.hosted.annotation.CustomSubstitution.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
1: aload 0
aload 2
putfield com.oracle.svm.hosted.annotation.AnnotationSupport.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
2: aload 0
aload 1
ldc Ljava/lang/annotation/Annotation;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
putfield com.oracle.svm.hosted.annotation.AnnotationSupport.javaLangAnnotationAnnotation:Ljdk/vm/ci/meta/ResolvedJavaType;
3: aload 0
aload 1
ldc Ljava/lang/reflect/Proxy;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
putfield com.oracle.svm.hosted.annotation.AnnotationSupport.javaLangReflectProxy:Ljdk/vm/ci/meta/ResolvedJavaType;
4: aload 0
aload 1
getstatic com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerInterface:Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
putfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerOriginalType:Ljdk/vm/ci/meta/ResolvedJavaType;
5: aload 0
new com.oracle.svm.hosted.annotation.ConstantAnnotationMarkerSubstitutionType
dup
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerOriginalType:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 0
invokespecial com.oracle.svm.hosted.annotation.ConstantAnnotationMarkerSubstitutionType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Lcom/oracle/graal/pointsto/infrastructure/SubstitutionProcessor;)V
putfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerSubstitutionType:Ljdk/vm/ci/meta/ResolvedJavaType;
6: invokestatic com.oracle.svm.core.jdk.AnnotationSupportConfig.initialize:()V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 8 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 8 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
MethodParameters:
Name Flags
metaAccess
snippetReflection
private boolean isConstantAnnotationType(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.javaLangAnnotationAnnotation:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 3
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.javaLangReflectProxy:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 3
1: aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerOriginalType:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 4 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaType lookup(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.isConstantAnnotationType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 2
1: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.getSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerOriginalType:Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerSubstitutionType:Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 5 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
ifeq 2
1: aload 1
checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
getfield com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.original:Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerSubstitutionType:Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerOriginalType:Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 5 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaField lookup(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.isConstantAnnotationType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 2
1: new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
dup
new java.lang.StringBuilder
dup
ldc "Field of annotation proxy is not accessible: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 3 1 field Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
field
public jdk.vm.ci.meta.ResolvedJavaMethod lookup(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.isConstantAnnotationType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 6
1: aload 0
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.getSubstitution:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;
astore 2
start local 2 2: aload 2
aload 1
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.getSubstitutionMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lcom/oracle/svm/hosted/annotation/CustomSubstitutionMethod;
checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod
astore 3
start local 3 3: getstatic com.oracle.svm.hosted.annotation.AnnotationSupport.$assertionsDisabled:Z
ifne 5
aload 3
ifnull 4
aload 3
getfield com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod.original:Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 5
StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSubstitutionType com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod
StackMap stack:
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 7 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
2 6 2 declaringClass Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;
3 6 3 result Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
MethodParameters:
Name Flags
method
public jdk.vm.ci.meta.ResolvedJavaMethod resolve(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod
ifeq 2
1: aload 1
checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod
getfield com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod.original:Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 3 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
private synchronized com.oracle.svm.hosted.annotation.AnnotationSubstitutionType getSubstitution(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSupport.getSubstitutionType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/hosted/annotation/CustomSubstitutionType;
checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
astore 2
start local 2 1: aload 2
ifnonnull 30
2: new com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
dup
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokespecial com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)V
astore 2
3: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 22
StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSupport jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.annotation.AnnotationSubstitutionType top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 3
invokestatic com.oracle.svm.hosted.annotation.AnnotationSupport.canonicalMethodName:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
astore 8
start local 8 6: aload 8
ldc "equals"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
7: new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationEqualsMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationEqualsMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 8: goto 20
end local 7 StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSupport jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.annotation.AnnotationSubstitutionType jdk.vm.ci.meta.ResolvedJavaMethod int int jdk.vm.ci.meta.ResolvedJavaMethod[] top java.lang.String
StackMap stack:
9: aload 8
ldc "hashCode"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
10: new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationHashCodeMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationHashCodeMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 11: goto 20
end local 7 StackMap locals:
StackMap stack:
12: aload 8
ldc "toString"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationToStringMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationToStringMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 14: goto 20
end local 7 StackMap locals:
StackMap stack:
15: aload 8
ldc "annotationType"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAnnotationTypeMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAnnotationTypeMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 17: goto 20
end local 7 18: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAccessorMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAccessorMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 19: aload 2
new com.oracle.svm.hosted.annotation.AnnotationSubstitutionField
dup
aload 2
aload 3
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.snippetReflection:Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
invokespecial com.oracle.svm.hosted.annotation.AnnotationSubstitutionField.<init>:(Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/MetaAccessProvider;)V
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.addSubstitutionField:(Lcom/oracle/svm/hosted/annotation/CustomSubstitutionField;)V
20: StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSupport jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.annotation.AnnotationSubstitutionType jdk.vm.ci.meta.ResolvedJavaMethod int int jdk.vm.ci.meta.ResolvedJavaMethod[] com.oracle.svm.hosted.annotation.AnnotationSubstitutionMethod java.lang.String
StackMap stack:
aload 2
aload 3
aload 7
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.addSubstitutionMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/hosted/annotation/CustomSubstitutionMethod;)V
end local 8 end local 7 end local 3 21: iinc 4 1
StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSupport jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.annotation.AnnotationSubstitutionType top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
22: iload 4
iload 5
if_icmplt 4
23: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredConstructors:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 28
StackMap locals:
StackMap stack:
24: aload 6
iload 4
aaload
astore 3
start local 3 25: new com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationConstructorMethod
dup
aload 3
invokespecial com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationConstructorMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 26: aload 2
aload 3
aload 7
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.addSubstitutionMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/hosted/annotation/CustomSubstitutionMethod;)V
end local 7 end local 3 27: iinc 4 1
StackMap locals:
StackMap stack:
28: iload 4
iload 5
if_icmplt 24
29: aload 0
getfield com.oracle.svm.hosted.annotation.AnnotationSupport.typeSubstitutions:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
30: StackMap locals: com.oracle.svm.hosted.annotation.AnnotationSupport jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/oracle/svm/hosted/annotation/AnnotationSupport;
0 31 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
1 31 2 result Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;
5 21 3 originalMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
8 9 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
11 12 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
14 15 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
17 18 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
19 21 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
6 21 8 methodName Ljava/lang/String;
25 27 3 originalMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
26 27 7 substitutionMethod Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionMethod;
MethodParameters:
Name Flags
type
static boolean isClassType(jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 3
1: aload 0
aload 1
ldc Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 2
aload 0
aload 1
ldc [Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljdk/vm/ci/meta/JavaType;
0 4 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
MethodParameters:
Name Flags
type
metaAccess
private static org.graalvm.compiler.nodes.ValueNode unpackAttribute(com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.svm.hosted.phases.HostedGraphKit, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 0
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic com.oracle.svm.hosted.annotation.AnnotationSupport.isClassType:(Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
ifeq 2
1: aload 0
aload 1
aload 3
aload 2
invokestatic com.oracle.svm.hosted.annotation.AnnotationSupport.unpackClassAttribute:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
areturn
2: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 3 1 kit Lcom/oracle/svm/hosted/phases/HostedGraphKit;
0 3 2 attribute Lorg/graalvm/compiler/nodes/ValueNode;
0 3 3 attributeType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
providers
kit
attribute
attributeType
private static org.graalvm.compiler.nodes.ValueNode unpackClassAttribute(com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.svm.hosted.phases.HostedGraphKit, jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
astore 4
start local 4 1: aload 0
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lsun/reflect/annotation/TypeNotPresentExceptionProxy;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 5
start local 5 2: aload 1
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 5
invokestatic org.graalvm.compiler.core.common.type.TypeReference.createTrusted:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
astore 6
start local 6 3: aload 1
aload 6
aload 4
invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.create:(Lorg/graalvm/compiler/core/common/type/TypeReference;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.LogicNode
astore 7
start local 7 4: aload 1
aload 7
ldc 0.010000000000000009
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.startIf:(Lorg/graalvm/compiler/nodes/LogicNode;D)Lorg/graalvm/compiler/nodes/IfNode;
pop
5: aload 1
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.thenPart:()V
6: aload 1
aload 4
aload 6
iconst_1
invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;Z)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createPiNode:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PiNode;
astore 8
start local 8 7: aload 1
ldc Lsun/reflect/annotation/TypeNotPresentExceptionProxy;
ldc "generateException"
iconst_0
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.findMethod:(Ljava/lang/Class;Ljava/lang/String;Z)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 9
start local 9 8: aload 1
getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Virtual:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
aload 9
iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 8
aastore
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createJavaCallWithExceptionAndUnwind:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 9: aload 1
new org.graalvm.compiler.nodes.UnwindNode
dup
aload 10
invokespecial org.graalvm.compiler.nodes.UnwindNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
10: aload 1
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.elsePart:()V
11: aload 1
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 2
invokestatic org.graalvm.compiler.core.common.type.TypeReference.createTrusted:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
astore 11
start local 11 12: aload 1
aload 4
aload 11
iconst_1
invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;Z)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createPiNode:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/nodes/PiNode;
astore 4
13: aload 1
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.endIf:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
pop
14: aload 4
areturn
end local 11 end local 10 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 15 0 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 15 1 kit Lcom/oracle/svm/hosted/phases/HostedGraphKit;
0 15 2 attributeType Ljdk/vm/ci/meta/ResolvedJavaType;
0 15 3 inputAttribute Lorg/graalvm/compiler/nodes/ValueNode;
1 15 4 attribute Lorg/graalvm/compiler/nodes/ValueNode;
2 15 5 exceptionProxyType Ljdk/vm/ci/meta/ResolvedJavaType;
3 15 6 exceptionProxyTypeRef Lorg/graalvm/compiler/core/common/type/TypeReference;
4 15 7 condition Lorg/graalvm/compiler/nodes/LogicNode;
7 15 8 casted Lorg/graalvm/compiler/nodes/PiNode;
8 15 9 generateExceptionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
9 15 10 exception Lorg/graalvm/compiler/nodes/ValueNode;
12 15 11 resultTypeRef Lorg/graalvm/compiler/core/common/type/TypeReference;
MethodParameters:
Name Flags
providers
kit
attributeType
inputAttribute
private static jdk.vm.ci.meta.ResolvedJavaType findAnnotationInterfaceType(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.hosted.analysis.Inflation.toWrappedType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
instanceof com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
invokestatic com.oracle.svm.core.util.VMError.guarantee:(Z)V
1: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInterfaces:()[Ljdk/vm/ci/meta/ResolvedJavaType;
astore 1
start local 1 2: aload 1
arraylength
iconst_1
if_icmpne 3
iconst_1
goto 4
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType[]
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Unexpected number of interfaces for annotation proxy class."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
5: aload 1
iconst_0
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 annotationType Ljdk/vm/ci/meta/ResolvedJavaType;
2 6 1 interfaces [Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
annotationType
static jdk.vm.ci.meta.ResolvedJavaType findAnnotationInterfaceTypeForMarkedAnnotationType(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInterfaces:()[Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 1: aload 2
arraylength
iconst_2
if_icmpne 2
iconst_1
goto 3
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType[]
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "Unexpected number of interfaces for annotation proxy class."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
4: aload 2
iconst_1
aaload
aload 1
getstatic com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerInterface:Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokestatic com.oracle.svm.core.util.VMError.guarantee:(Z)V
5: aload 2
iconst_0
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 annotationType Ljdk/vm/ci/meta/ResolvedJavaType;
0 6 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
1 6 2 interfaces [Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
annotationType
metaAccess
static java.lang.Class<?> findAnnotationInterfaceTypeForMarkedAnnotationType(java.lang.Class<? extends java.lang.reflect.Proxy>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
astore 1
start local 1 1: aload 1
arraylength
iconst_2
if_icmpne 2
iconst_1
goto 3
StackMap locals: java.lang.Class[]
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "Unexpected number of interfaces for annotation proxy class."
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
4: aload 1
iconst_1
aaload
getstatic com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerInterface:Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokestatic com.oracle.svm.core.util.VMError.guarantee:(Z)V
5: aload 1
iconst_0
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 clazz Ljava/lang/Class<+Ljava/lang/reflect/Proxy;>;
1 6 1 interfaces [Ljava/lang/Class;
Signature: (Ljava/lang/Class<+Ljava/lang/reflect/Proxy;>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
clazz
static boolean isAnnotationMarkerInterface(jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic com.oracle.svm.hosted.annotation.AnnotationSupport.constantAnnotationMarkerInterface:Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljdk/vm/ci/meta/ResolvedJavaType;
0 1 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
MethodParameters:
Name Flags
type
metaAccess
}
Signature: Lcom/oracle/svm/hosted/annotation/CustomSubstitution<Lcom/oracle/svm/hosted/annotation/AnnotationSubstitutionType;>;
SourceFile: "AnnotationSupport.java"
NestMembers:
com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAccessorMethod com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAnnotationTypeMethod com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationConstructorMethod com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationEqualsMethod com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationHashCodeMethod com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationToStringMethod
InnerClasses:
AnnotationAccessorMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAccessorMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
AnnotationAnnotationTypeMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationAnnotationTypeMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
AnnotationConstructorMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationConstructorMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
AnnotationEqualsMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationEqualsMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
AnnotationHashCodeMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationHashCodeMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
AnnotationToStringMethod = com.oracle.svm.hosted.annotation.AnnotationSupport$AnnotationToStringMethod of com.oracle.svm.hosted.annotation.AnnotationSupport
public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode