public final class org.graalvm.compiler.core.test.InterfaceMethodHandleTest extends org.graalvm.compiler.core.test.GraalCompilerTest
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.core.test.InterfaceMethodHandleTest
super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
private static final java.lang.invoke.MethodHandle INTERFACE_HANDLE_M;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle INTERFACE_HANDLE_M2;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String BASENAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.graalvm.compiler.core.test.InterfaceMethodHandleTest$AsmLoader loader;
descriptor: Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$AsmLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: ldc "()I"
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic java.lang.invoke.MethodType.fromMethodDescriptorString:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/invoke/MethodType;
astore 0
start local 0 1: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
ldc "m"
aload 0
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.INTERFACE_HANDLE_M:Ljava/lang/invoke/MethodHandle;
2: ldc "(IIIIIIIIII)I"
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic java.lang.invoke.MethodType.fromMethodDescriptorString:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/invoke/MethodType;
astore 1
start local 1 3: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
ldc "m2"
aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.INTERFACE_HANDLE_M2:Ljava/lang/invoke/MethodHandle;
end local 1 end local 0 4: goto 7
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
5: astore 0
start local 0 6: new java.lang.RuntimeException
dup
ldc "unable to initialize method handle"
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 7: StackMap locals:
StackMap stack:
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.BASENAME:Ljava/lang/String;
8: new java.lang.StringBuilder
dup
getstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.BASENAME:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_B"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.NAME:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
1 4 0 type Ljava/lang/invoke/MethodType;
3 4 1 type2 Ljava/lang/invoke/MethodType;
6 7 0 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 4 5 Class java.lang.IllegalAccessException
0 4 5 Class java.lang.NoSuchMethodException
public static java.lang.Object invokeInterfaceHandle(org.graalvm.compiler.core.test.InterfaceMethodHandleTest$I);
descriptor: (Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.INTERFACE_HANDLE_M:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.invokeExact:(Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
o
public void testInvokeInterface01();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
RuntimeInvisibleAnnotations:
Test()
public void testInvokeInterface02();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
Exceptions:
throws java.lang.Exception
RuntimeInvisibleAnnotations:
Test()
public static java.lang.Object invokeInterfaceHandle2(org.graalvm.compiler.core.test.InterfaceMethodHandleTest$I, int, int, int, int, int, int, int, int, int, int);
descriptor: (Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;IIIIIIIIII)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=12, locals=11, args_size=11
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 start local 10 0: getstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.INTERFACE_HANDLE_M2:Ljava/lang/invoke/MethodHandle;
aload 0
iload 1
iload 2
iload 3
iload 4
iload 5
iload 6
iload 7
iload 8
iload 9
iload 10
invokevirtual java.lang.invoke.MethodHandle.invokeExact:(Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;IIIIIIIIII)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
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 1 0 o Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$I;
0 1 1 a I
0 1 2 b I
0 1 3 c I
0 1 4 d I
0 1 5 e I
0 1 6 f I
0 1 7 g I
0 1 8 h I
0 1 9 i I
0 1 10 j I
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
o
a
b
c
d
e
f
g
h
i
j
protected jdk.vm.ci.code.InstalledCode addMethod(org.graalvm.compiler.debug.DebugContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.code.CompilationResult);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;)Ljdk/vm/ci/code/InstalledCode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 0
invokevirtual org.graalvm.compiler.core.test.InterfaceMethodHandleTest.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$M2Thrower;
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 2
1: aload 0
invokevirtual org.graalvm.compiler.core.test.InterfaceMethodHandleTest.getBackend:()Lorg/graalvm/compiler/core/target/Backend;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.core.target.Backend.createDefaultInstalledCode:(Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;)Ljdk/vm/ci/code/InstalledCode;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.addMethod:(Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;)Ljdk/vm/ci/code/InstalledCode;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
0 3 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 3 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 3 3 compResult Lorg/graalvm/compiler/code/CompilationResult;
MethodParameters:
Name Flags
debug
method
compResult
public void testInvokeInterface03();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
Exceptions:
throws java.lang.Throwable
RuntimeInvisibleAnnotations:
Test()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
1: aload 0
getstatic org.graalvm.compiler.core.test.InterfaceMethodHandleTest.JAVA_BASE:Ljava/lang/Class;
ldc "jdk.internal.org.objectweb.asm"
invokevirtual org.graalvm.compiler.core.test.InterfaceMethodHandleTest.exportPackage:(Ljava/lang/Class;Ljava/lang/String;)V
2: aload 0
new org.graalvm.compiler.core.test.InterfaceMethodHandleTest$AsmLoader
dup
ldc Lorg/graalvm/compiler/core/test/UnbalancedMonitorsTest;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokespecial org.graalvm.compiler.core.test.InterfaceMethodHandleTest$AsmLoader.<init>:(Ljava/lang/ClassLoader;)V
putfield org.graalvm.compiler.core.test.InterfaceMethodHandleTest.loader:Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest$AsmLoader;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/core/test/InterfaceMethodHandleTest;
}
SourceFile: "InterfaceMethodHandleTest.java"
NestMembers:
org.graalvm.compiler.core.test.InterfaceMethodHandleTest$A org.graalvm.compiler.core.test.InterfaceMethodHandleTest$AsmLoader org.graalvm.compiler.core.test.InterfaceMethodHandleTest$Gen org.graalvm.compiler.core.test.InterfaceMethodHandleTest$I org.graalvm.compiler.core.test.InterfaceMethodHandleTest$M2Thrower
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
A = org.graalvm.compiler.core.test.InterfaceMethodHandleTest$A of org.graalvm.compiler.core.test.InterfaceMethodHandleTest
public AsmLoader = org.graalvm.compiler.core.test.InterfaceMethodHandleTest$AsmLoader of org.graalvm.compiler.core.test.InterfaceMethodHandleTest
Gen = org.graalvm.compiler.core.test.InterfaceMethodHandleTest$Gen of org.graalvm.compiler.core.test.InterfaceMethodHandleTest
public abstract I = org.graalvm.compiler.core.test.InterfaceMethodHandleTest$I of org.graalvm.compiler.core.test.InterfaceMethodHandleTest
M2Thrower = org.graalvm.compiler.core.test.InterfaceMethodHandleTest$M2Thrower of org.graalvm.compiler.core.test.InterfaceMethodHandleTest