public class com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin implements org.graalvm.compiler.nodes.graphbuilderconf.NodePlugin
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
super_class: java.lang.Object
{
private final boolean analysis;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.phases.util.Providers parsingProviders;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.phases.util.Providers universeProviders;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse;
descriptor: Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.hosted.meta.HostedUniverse hUniverse;
descriptor: Lcom/oracle/svm/hosted/meta/HostedUniverse;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.nodes.graphbuilderconf.ClassInitializationPlugin classInitializationPlugin;
descriptor: Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry intrinsificationRegistry;
descriptor: Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.ResolvedJavaType methodHandleType;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> methodHandleInvokeMethodNames;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.lang.Class<?> varHandleClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private final jdk.vm.ci.meta.ResolvedJavaType varHandleType;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.reflect.Field varHandleVFormField;
descriptor: Ljava/lang/reflect/Field;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.reflect.Method varFormInitMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.lang.reflect.Method unsupportedFeatureMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.List<org.graalvm.collections.Pair<java.lang.String, java.util.List<java.lang.String>>> IGNORE_FILTER;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/util/VMError;
ldc "unsupportedFeature"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putstatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.unsupportedFeatureMethod:Ljava/lang/reflect/Method;
1: iconst_2
anewarray org.graalvm.collections.Pair
dup
iconst_0
2: ldc "java.lang.invoke.MethodHandles"
iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "dropArguments"
aastore
dup
iconst_1
ldc "filterReturnValue"
aastore
dup
iconst_2
ldc "foldArguments"
aastore
dup
iconst_3
ldc "insertArguments"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic org.graalvm.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/collections/Pair;
aastore
dup
iconst_1
3: ldc "java.lang.invoke.Invokers"
ldc "spreadInvoker"
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokestatic org.graalvm.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/collections/Pair;
aastore
4: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
putstatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.IGNORE_FILTER:Ljava/util/List;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(boolean, org.graalvm.compiler.phases.util.Providers, com.oracle.graal.pointsto.meta.AnalysisUniverse, com.oracle.svm.hosted.meta.HostedUniverse);
descriptor: (ZLorg/graalvm/compiler/phases/util/Providers;Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;Lcom/oracle/svm/hosted/meta/HostedUniverse;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.analysis:Z
2: aload 0
aload 3
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
3: aload 0
aload 4
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
4: aload 0
aload 2
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.universeProviders:Lorg/graalvm/compiler/phases/util/Providers;
5: invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalProviders:()Lorg/graalvm/compiler/phases/util/Providers;
astore 5
start local 5 6: aload 0
new org.graalvm.compiler.phases.util.Providers
dup
aload 5
invokespecial org.graalvm.compiler.phases.util.Providers.<init>:(Lorg/graalvm/compiler/phases/util/Providers;)V
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesMetaAccessExtensionProvider
dup
aload 0
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesMetaAccessExtensionProvider.<init>:(Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;)V
invokevirtual org.graalvm.compiler.phases.util.Providers.copyWith:(Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
7: aload 0
new com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin
dup
aload 3
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.hostVM:()Lcom/oracle/graal/pointsto/api/HostVM;
checkcast com.oracle.svm.hosted.SVMHost
invokespecial com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.<init>:(Lcom/oracle/svm/hosted/SVMHost;)V
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.classInitializationPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;
8: iload 1
ifeq 12
9: aload 0
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry
dup
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry.<init>:()V
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.intrinsificationRegistry:Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
10: ldc Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.intrinsificationRegistry:Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
11: goto 13
12: StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin int org.graalvm.compiler.phases.util.Providers com.oracle.graal.pointsto.meta.AnalysisUniverse com.oracle.svm.hosted.meta.HostedUniverse org.graalvm.compiler.phases.util.Providers
StackMap stack:
aload 0
ldc Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.intrinsificationRegistry:Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
13: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.universeProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Ljava/lang/invoke/MethodHandle;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.methodHandleType:Ljdk/vm/ci/meta/ResolvedJavaType;
14: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.methodHandleInvokeMethodNames:Ljava/util/Set;
15: invokestatic com.oracle.svm.hosted.NativeImageOptions.areMethodHandlesSupported:()Z
ifne 17
16: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.methodHandleInvokeMethodNames:Ljava/util/Set;
bipush 7
anewarray java.lang.String
dup
iconst_0
ldc "invokeExact"
aastore
dup
iconst_1
ldc "invoke"
aastore
dup
iconst_2
ldc "invokeBasic"
aastore
dup
iconst_3
ldc "linkToVirtual"
aastore
dup
iconst_4
ldc "linkToStatic"
aastore
dup
iconst_5
ldc "linkToSpecial"
aastore
dup
bipush 6
ldc "linkToInterface"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
17: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
bipush 11
if_icmplt 26
18: aload 0
ldc "java.lang.invoke.VarHandle"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleClass:Ljava/lang/Class;
19: aload 0
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.universeProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleClass:Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleType:Ljdk/vm/ci/meta/ResolvedJavaType;
20: aload 0
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleClass:Ljava/lang/Class;
ldc "vform"
invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleVFormField:Ljava/lang/reflect/Field;
21: ldc "java.lang.invoke.VarForm"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 6
start local 6 22: aload 0
aload 6
ldc "getMethodType_V"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varFormInitMethod:Ljava/lang/reflect/Method;
end local 6 23: goto 30
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
24: astore 6
start local 6 25: aload 6
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 6 26: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleClass:Ljava/lang/Class;
27: aload 0
aconst_null
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleType:Ljdk/vm/ci/meta/ResolvedJavaType;
28: aload 0
aconst_null
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleVFormField:Ljava/lang/reflect/Field;
29: aload 0
aconst_null
putfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varFormInitMethod:Ljava/lang/reflect/Method;
30: StackMap locals:
StackMap stack:
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 31 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 31 1 analysis Z
0 31 2 providers Lorg/graalvm/compiler/phases/util/Providers;
0 31 3 aUniverse Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
0 31 4 hUniverse Lcom/oracle/svm/hosted/meta/HostedUniverse;
6 31 5 originalProviders Lorg/graalvm/compiler/phases/util/Providers;
22 23 6 varFormClass Ljava/lang/Class<*>;
25 26 6 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
18 23 24 Class java.lang.ClassNotFoundException
MethodParameters:
Name Flags
analysis
providers
aUniverse
hUniverse
public boolean handleInvoke(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;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getInvokeKind:()Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
invokevirtual org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.isDirect:()Z
ifeq 5
aload 3
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hasMethodHandleArgument:([Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifne 1
aload 0
aload 2
aload 3
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.isVarHandleMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 5
StackMap locals:
StackMap stack:
1: aload 2
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.ignoreMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ifne 5
2: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.bciCanBeDuplicated:()Z
ifeq 4
3: aload 1
aload 2
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.reportUnsupportedFeature:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ireturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.universeProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
aload 2
aload 3
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.processInvokeWithMethodHandle:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/spi/Replacements;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
ireturn
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.methodHandleType:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.methodHandleInvokeMethodNames:Ljava/util/Set;
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 7
6: aload 1
aload 2
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.reportUnsupportedFeature:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 8 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 8 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 8 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
b
method
args
private static boolean hasMethodHandleArgument(org.graalvm.compiler.nodes.ValueNode[]);
descriptor: ([Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: org.graalvm.compiler.nodes.ValueNode[] top int int org.graalvm.compiler.nodes.ValueNode[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 4
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 4
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
instanceof java.lang.invoke.MethodHandle
ifeq 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 args [Lorg/graalvm/compiler/nodes/ValueNode;
2 4 1 argument Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
args
private boolean isVarHandleMethod(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
ldc "java.lang.invoke.VarHandleGuards"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
1: aload 2
arraylength
iconst_1
if_icmplt 2
aload 2
iconst_0
aaload
invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
ifeq 2
aload 0
aload 2
iconst_0
aaload
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.isVarHandle:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifne 3
2: StackMap locals:
StackMap stack:
new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
dup
ldc "VarHandle object must be a compile time constant"
invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
astore 3
start local 3 4: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleVFormField:Ljava/lang/reflect/Field;
aload 3
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 5: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varFormInitMethod:Ljava/lang/reflect/Method;
aload 4
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 end local 3 6: goto 9
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
7: astore 3
start local 3 8: aload 3
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 9: StackMap locals:
StackMap stack:
iconst_1
ireturn
10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 11 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 11 2 args [Lorg/graalvm/compiler/nodes/ValueNode;
4 6 3 varHandle Ljava/lang/Object;
5 6 4 varForm Ljava/lang/Object;
8 9 3 ex Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
3 6 7 Class java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
method
args
private boolean isVarHandle(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.varHandleType:Ljdk/vm/ci/meta/ResolvedJavaType;
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.universeProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 1 1 arg Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
arg
private static boolean ignoreMethod(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
astore 1
start local 1 1: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
astore 2
start local 2 2: getstatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.IGNORE_FILTER:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.collections.Pair
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast java.lang.String
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 3
invokevirtual org.graalvm.collections.Pair.getRight:()Ljava/lang/Object;
checkcast java.util.List
aload 2
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 8 1 className Ljava/lang/String;
2 8 2 methodName Ljava/lang/String;
4 6 3 ignored Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
MethodParameters:
Name Flags
method
private static void registerInvocationPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, org.graalvm.compiler.nodes.spi.Replacements);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/nodes/spi/Replacements;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 0
ldc "java.lang.invoke.DirectMethodHandle"
aload 1
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/String;Lorg/graalvm/compiler/nodes/spi/Replacements;)V
astore 2
start local 2 1: aload 2
ldc "ensureInitialized"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$1
dup
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$1.<init>:()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: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 0
ldc "java.lang.invoke.Invokers"
aload 1
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/String;Lorg/graalvm/compiler/nodes/spi/Replacements;)V
astore 2
3: aload 2
ldc "maybeCustomize"
ldc Ljava/lang/invoke/MethodHandle;
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$2
dup
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$2.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.registerOptional1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
4: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 0
ldc Ljava/util/Objects;
aload 1
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/spi/Replacements;)V
astore 2
5: aload 2
ldc "requireNonNull"
ldc Ljava/lang/Object;
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$3
dup
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$3.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 plugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
0 7 1 replacements Lorg/graalvm/compiler/nodes/spi/Replacements;
1 7 2 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
MethodParameters:
Name Flags
plugins
replacements
private boolean processInvokeWithMethodHandle(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.spi.Replacements, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/spi/Replacements;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=18, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.analysis:Z
ifne 2
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.intrinsificationRegistry:Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry.get:(Ljava/util/List;)Ljava/lang/Object;
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
if_acmpeq 2
1: aload 1
aload 3
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.reportUnsupportedFeature:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
ireturn
2: StackMap locals:
StackMap stack:
new org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
dup
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
invokeinterface org.graalvm.compiler.nodes.spi.Replacements.getGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)V
astore 5
start local 5 3: aload 5
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
aload 2
invokestatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.registerInvocationPlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lorg/graalvm/compiler/nodes/spi/Replacements;)V
4: aload 5
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesParameterPlugin
dup
aload 0
aload 4
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesParameterPlugin.<init>:(Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;[Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.prependParameterPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ParameterPlugin;)V
5: aload 5
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.clearInlineInvokePlugins:()V
6: aload 5
new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesInlineInvokePlugin
dup
aload 0
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesInlineInvokePlugin.<init>:(Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.prependInlineInvokePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin;)V
7: aload 5
new org.graalvm.compiler.replacements.MethodHandlePlugin
dup
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.getMethodHandleAccess:()Ljdk/vm/ci/meta/MethodHandleAccessProvider;
iconst_0
invokespecial org.graalvm.compiler.replacements.MethodHandlePlugin.<init>:(Ljdk/vm/ci/meta/MethodHandleAccessProvider;Z)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.prependNodePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/NodePlugin;)V
8: invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
astore 6
start local 6 9: new org.graalvm.compiler.word.WordOperationPlugin
dup
aload 6
new com.oracle.svm.core.graal.word.SubstrateWordTypes
dup
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
invokespecial com.oracle.svm.core.graal.word.SubstrateWordTypes.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)V
invokespecial org.graalvm.compiler.word.WordOperationPlugin.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/word/WordTypes;)V
astore 7
start local 7 10: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendInlineInvokePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin;)V
11: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendTypePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/TypePlugin;)V
12: aload 5
new com.oracle.svm.core.graal.phases.TrustedInterfaceTypePlugin
dup
invokespecial com.oracle.svm.core.graal.phases.TrustedInterfaceTypePlugin.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendTypePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/TypePlugin;)V
13: aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.appendNodePlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/NodePlugin;)V
14: aload 5
new com.oracle.svm.hosted.phases.NoClassInitializationPlugin
dup
invokespecial com.oracle.svm.hosted.phases.NoClassInitializationPlugin.<init>:()V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.setClassInitializationPlugin:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;)V
15: aload 5
invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getSnippetDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
astore 8
start local 8 16: new org.graalvm.compiler.java.GraphBuilderPhase$Instance
dup
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
aload 8
getstatic org.graalvm.compiler.phases.OptimisticOptimizations.NONE:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
aconst_null
invokespecial org.graalvm.compiler.java.GraphBuilderPhase$Instance.<init>:(Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;Lorg/graalvm/compiler/phases/OptimisticOptimizations;Lorg/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext;)V
astore 9
start local 9 17: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 10
start local 10 18: new org.graalvm.compiler.nodes.StructuredGraph$Builder
dup
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
aload 10
invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)V
aload 3
invokestatic com.oracle.svm.hosted.NativeImageUtil.toOriginal:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 11
start local 11 19: aconst_null
astore 12
aconst_null
astore 13
20: aload 10
ldc "IntrinsifyMethodHandles"
aload 11
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 14
start local 14 21: aload 9
aload 11
invokevirtual org.graalvm.compiler.java.GraphBuilderPhase$Instance.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
22: invokestatic org.graalvm.compiler.phases.common.CanonicalizerPhase.create:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
aload 11
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.parsingProviders:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
23: aload 10
iconst_3
aload 11
ldc "Intrinisfication graph before transplant"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
24: new org.graalvm.compiler.graph.NodeMap
dup
aload 11
invokespecial org.graalvm.compiler.graph.NodeMap.<init>:(Lorg/graalvm/compiler/graph/Graph;)V
astore 15
start local 15 25: aload 11
getstatic org.graalvm.compiler.nodes.ParameterNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 17
goto 28
StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.spi.Replacements jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.word.WordOperationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.java.GraphBuilderPhase$Instance org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.graph.NodeMap top java.util.Iterator
StackMap stack:
26: aload 17
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ParameterNode
astore 16
start local 16 27: aload 15
aload 16
aload 4
aload 16
invokevirtual org.graalvm.compiler.nodes.ParameterNode.index:()I
aaload
invokevirtual org.graalvm.compiler.graph.NodeMap.put:(Lorg/graalvm/compiler/graph/Node;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 16 28: StackMap locals:
StackMap stack:
aload 17
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
29: new com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter
dup
aload 0
aload 1
aload 3
aload 15
invokespecial com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter.<init>:(Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/graph/NodeMap;)V
astore 16
start local 16 30: aload 16
aload 11
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter.graph:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
31: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.analysis:Z
ifeq 33
32: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.intrinsificationRegistry:Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry;
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry.add:(Ljava/util/List;Ljava/lang/Object;)V
33: StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.spi.Replacements jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.word.WordOperationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.java.GraphBuilderPhase$Instance org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.graph.NodeMap com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter
StackMap stack:
aload 14
ifnull 34
aload 14
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
34: StackMap locals:
StackMap stack:
iconst_1
ireturn
35: StackMap locals:
StackMap stack: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException
astore 17
start local 17 36: aload 17
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException.handled:Z
37: aload 14
ifnull 38
aload 14
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
38: StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.spi.Replacements jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.word.WordOperationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.java.GraphBuilderPhase$Instance org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.graph.NodeMap com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException
StackMap stack: int
ireturn
end local 17 end local 16 end local 15 StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.spi.Replacements jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.word.WordOperationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.java.GraphBuilderPhase$Instance org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
39: astore 12
40: aload 14
ifnull 41
aload 14
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 14 StackMap locals:
StackMap stack:
41: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
42: astore 13
aload 12
ifnonnull 43
aload 13
astore 12
goto 44
StackMap locals:
StackMap stack:
43: aload 12
aload 13
if_acmpeq 44
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
44: aload 12
athrow
StackMap locals: com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext org.graalvm.compiler.nodes.spi.Replacements jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.word.WordOperationPlugin org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.java.GraphBuilderPhase$Instance org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.StructuredGraph
StackMap stack: java.lang.Throwable
45: astore 12
start local 12 46: aload 10
aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 12 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 47 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 47 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 47 2 replacements Lorg/graalvm/compiler/nodes/spi/Replacements;
0 47 3 methodHandleMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 47 4 methodHandleArguments [Lorg/graalvm/compiler/nodes/ValueNode;
3 47 5 graphBuilderPlugins Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
9 47 6 originalSnippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
10 47 7 wordOperationPlugin Lorg/graalvm/compiler/word/WordOperationPlugin;
16 47 8 graphBuilderConfig Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
17 47 9 graphBuilder Lorg/graalvm/compiler/java/GraphBuilderPhase$Instance;
18 47 10 debug Lorg/graalvm/compiler/debug/DebugContext;
19 47 11 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
21 41 14 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
25 39 15 transplanted Lorg/graalvm/compiler/graph/NodeMap<Lorg/graalvm/compiler/graph/Node;>;
27 28 16 oParam Lorg/graalvm/compiler/nodes/ParameterNode;
30 39 16 transplanter Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$Transplanter;
36 39 17 ex Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException;
46 47 12 ex Ljava/lang/Throwable;
Exception table:
from to target type
30 33 35 Class com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException
21 33 39 any
35 37 39 any
20 34 42 any
35 38 42 any
39 42 42 any
19 34 45 Class java.lang.Throwable
35 38 45 Class java.lang.Throwable
39 45 45 Class java.lang.Throwable
MethodParameters:
Name Flags
b
replacements
methodHandleMethod
methodHandleArguments
private static boolean reportUnsupportedFeature(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "Invoke with MethodHandle argument could not be reduced to at most a single call or single field access. The method handle must be a compile time constant, e.g., be loaded from a `static final` field. Method that contains the method handle invocation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: 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;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 3: invokestatic com.oracle.svm.hosted.NativeImageOptions.areMethodHandlesSupported:()Z
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: java.lang.String
StackMap stack:
getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime: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 12
6: aload 0
checkcast org.graalvm.compiler.java.BytecodeParser
invokevirtual org.graalvm.compiler.java.BytecodeParser.getFrameStateBuilder:()Lorg/graalvm/compiler/java/FrameStateBuilder;
invokevirtual org.graalvm.compiler.java.FrameStateBuilder.clearStack:()V
7: aload 0
getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Static:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
getstatic com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.unsupportedFeatureMethod:Ljava/lang/reflect/Method;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
8: iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 2
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
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;
aastore
iconst_0
9: invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.handleReplacedInvoke:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/Invoke;
pop
10: aload 0
new com.oracle.svm.core.graal.nodes.DeadEndNode
dup
invokespecial com.oracle.svm.core.graal.nodes.DeadEndNode.<init>:()V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
new com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc "To enable method handles that do not require LambdaForm interpretation (e.g. because of a call to MethodHandle.bindTo()) or to diagnose the issue, you can add the option "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
ldc "+"
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: ldc ". The error is then reported at run time when the invoke is executed and the method handle has to be interpreted."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 17 1 methodHandleMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
3 17 2 message Ljava/lang/String;
MethodParameters:
Name Flags
b
methodHandleMethod
private void maybeEmitClassInitialization(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, boolean, jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;ZLjdk/vm/ci/meta/ResolvedJavaType;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 2
1: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.classInitializationPlugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;
aload 1
aload 3
aload 1
invokedynamic get(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;)Ljava/util/function/Supplier;
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;
com/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin.lambda$0(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;)Lorg/graalvm/compiler/nodes/FrameState; (6)
()Lorg/graalvm/compiler/nodes/FrameState;
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.ClassInitializationPlugin.apply:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/util/function/Supplier;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 3 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 3 2 isStatic Z
0 3 3 declaringClass Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
b
isStatic
declaringClass
private jdk.vm.ci.meta.ResolvedJavaMethod lookup(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
ifnull 3
2: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
aload 2
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/svm/hosted/meta/HostedMethod;
astore 2
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 4 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 4 2 result Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
private jdk.vm.ci.meta.ResolvedJavaField lookup(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaType;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
1: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaField;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
astore 2
start local 2 2: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
ifnull 4
3: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
aload 2
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.lookup:(Ljdk/vm/ci/meta/JavaField;)Lcom/oracle/svm/hosted/meta/HostedField;
astore 2
4: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 5 1 field Ljdk/vm/ci/meta/ResolvedJavaField;
2 5 2 result Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
field
private jdk.vm.ci.meta.ResolvedJavaType lookup(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaType;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
ifnull 3
2: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
aload 2
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.lookup:(Ljdk/vm/ci/meta/JavaType;)Lcom/oracle/svm/hosted/meta/HostedType;
astore 2
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 4 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
1 4 2 result Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
private jdk.vm.ci.meta.ResolvedJavaType optionalLookup(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.optionalLookup:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
astore 2
start local 2 1: aload 2
ifnull 3
aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
ifnull 3
2: aload 0
getfield com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin.hUniverse:Lcom/oracle/svm/hosted/meta/HostedUniverse;
aload 2
invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.optionalLookup:(Ljdk/vm/ci/meta/JavaType;)Lcom/oracle/svm/hosted/meta/HostedType;
astore 2
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 4 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
1 4 2 result Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
private jdk.vm.ci.meta.JavaConstant lookup(jdk.vm.ci.meta.JavaConstant);
descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
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.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 1 1 constant Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
constant
private jdk.vm.ci.meta.JavaConstant toOriginal(jdk.vm.ci.meta.JavaConstant);
descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
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.phases.IntrinsifyMethodHandlesInvocationPlugin.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.toHosted:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/phases/IntrinsifyMethodHandlesInvocationPlugin;
0 1 1 constant Ljdk/vm/ci/meta/JavaConstant;
MethodParameters:
Name Flags
constant
private static org.graalvm.compiler.nodes.FrameState lambda$0(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;)Lorg/graalvm/compiler/nodes/FrameState;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=6, locals=1, args_size=1
0: aload 0
checkcast org.graalvm.compiler.java.BytecodeParser
invokevirtual org.graalvm.compiler.java.BytecodeParser.getFrameStateBuilder:()Lorg/graalvm/compiler/java/FrameStateBuilder;
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.bci:()I
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getNonIntrinsicAncestor:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
checkcast org.graalvm.compiler.java.BytecodeParser
iconst_0
aconst_null
aconst_null
invokevirtual org.graalvm.compiler.java.FrameStateBuilder.create:(ILorg/graalvm/compiler/java/BytecodeParser;Z[Ljdk/vm/ci/meta/JavaKind;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/FrameState;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "IntrinsifyMethodHandlesInvocationPlugin.java"
NestMembers:
com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$1 com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$2 com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$3 com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesInlineInvokePlugin com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesMetaAccessExtensionProvider com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesParameterPlugin com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter
InnerClasses:
com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$1
com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$2
com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$3
AbortTransplantException = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$AbortTransplantException of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
public IntrinsificationRegistry = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$IntrinsificationRegistry of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
MethodHandlesInlineInvokePlugin = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesInlineInvokePlugin of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
MethodHandlesMetaAccessExtensionProvider = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesMetaAccessExtensionProvider of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
MethodHandlesParameterPlugin = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$MethodHandlesParameterPlugin of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
Transplanter = com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin$Transplanter of com.oracle.svm.hosted.phases.IntrinsifyMethodHandlesInvocationPlugin
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public Instance = org.graalvm.compiler.java.GraphBuilderPhase$Instance of org.graalvm.compiler.java.GraphBuilderPhase
public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
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