public class org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest extends org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest
super_class: org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest
{
static final java.lang.invoke.MethodHandle objToStringMH;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: aconst_null
astore 0
start local 0 1: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Ljava/lang/Object;
ldc "toString"
ldc Ljava/lang/String;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 0
2: goto 4
StackMap locals: java.lang.invoke.MethodHandle
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
aload 0
putstatic org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.objToStringMH:Ljava/lang/invoke/MethodHandle;
end local 0 5: return
LocalVariableTable:
Start End Slot Name Signature
1 5 0 mh Ljava/lang/invoke/MethodHandle;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
protected org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins getDefaultGraphBuilderPlugins();
descriptor: ()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.hotspot.test.HotSpotGraalCompilerTest.getDefaultGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
astore 1
start local 1 1: aload 1
new org.graalvm.compiler.hotspot.meta.HotSpotAOTClassInitializationPlugin
dup
invokespecial org.graalvm.compiler.hotspot.meta.HotSpotAOTClassInitializationPlugin.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.setClassInitializationPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;)V
2: aload 1
new org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest$1
dup
aload 0
invokespecial org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest$1.<init>:(Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.setInvokeDynamicPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvokeDynamicPlugin;)V
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
1 4 1 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
protected org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo bytecodeParserShouldInlineInvoke(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_NO_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
0 1 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 1 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 1 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
b
method
args
private void test(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.NO:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
new org.graalvm.compiler.options.OptionValues
dup
invokestatic org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionKey;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;[Ljava/lang/Object;)V
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.parseEager:(Ljava/lang/String;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 1: new org.graalvm.compiler.phases.tiers.MidTierContext
dup
aload 0
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
aload 0
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.getTargetProvider:()Lorg/graalvm/compiler/phases/tiers/TargetProvider;
getstatic org.graalvm.compiler.phases.OptimisticOptimizations.ALL:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getProfilingInfo:()Ljdk/vm/ci/meta/ProfilingInfo;
invokespecial org.graalvm.compiler.phases.tiers.MidTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/tiers/TargetProvider;Lorg/graalvm/compiler/phases/OptimisticOptimizations;Ljdk/vm/ci/meta/ProfilingInfo;)V
astore 5
start local 5 2: aload 0
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
astore 6
start local 6 3: iload 2
i2l
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicConstantNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
4: lconst_0
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicStubCall;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: aload 0
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
astore 7
start local 7 6: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 6
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 4
aload 7
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
7: new org.graalvm.compiler.phases.common.GuardLoweringPhase
dup
invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
8: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 6
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.MID_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 4
aload 7
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
9: new org.graalvm.compiler.phases.common.FrameStateAssignmentPhase
dup
invokespecial org.graalvm.compiler.phases.common.FrameStateAssignmentPhase.<init>:()V
aload 4
invokevirtual org.graalvm.compiler.phases.common.FrameStateAssignmentPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
10: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 6
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.LOW_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 4
aload 7
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
11: lconst_0
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicConstantNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
12: iload 3
i2l
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicStubCall;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
13: 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 14 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
0 14 1 name Ljava/lang/String;
0 14 2 expectedResolves I
0 14 3 expectedStubCalls I
1 14 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 14 5 midTierContext Lorg/graalvm/compiler/phases/tiers/MidTierContext;
3 14 6 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
6 14 7 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
MethodParameters:
Name Flags
name
expectedResolves
expectedStubCalls
public static java.util.function.IntPredicate invokeDynamic1();
descriptor: ()Ljava/util/function/IntPredicate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokedynamic test()Ljava/util/function/IntPredicate;
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:
(I)Z
org/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest.lambda$0(I)Z (6)
(I)Z
astore 0
start local 0 1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 2 0 i Ljava/util/function/IntPredicate;
public static java.security.PrivilegedAction<java.lang.Integer> invokeDynamic2(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/PrivilegedAction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Ljava/lang/String;)Ljava/security/PrivilegedAction;
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;
java/lang/String.length()I (5)
()Ljava/lang/Integer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/security/PrivilegedAction<Ljava/lang/Integer;>;
MethodParameters:
Name Flags
s
public static java.lang.String invokeHandle1(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.objToStringMH:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.invokeExact:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o Ljava/lang/Object;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
o
public void test1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "invokeDynamic1"
iconst_1
iconst_1
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.test:(Ljava/lang/String;II)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void test2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "invokeDynamic2"
iconst_1
iconst_1
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.test:(Ljava/lang/String;II)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void test3();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc "invokeHandle1"
iconst_1
iconst_1
invokevirtual org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest.test:(Ljava/lang/String;II)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private static boolean lambda$0(int);
descriptor: (I)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
if_icmple 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 v I
}
SourceFile: "HotSpotInvokeDynamicPluginTest.java"
NestMembers:
org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest$1
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
org.graalvm.compiler.hotspot.test.HotSpotInvokeDynamicPluginTest$1
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
public final InlineInfo = org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo of org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
public final StandardLoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool