public abstract class com.oracle.svm.hosted.code.CCallStubMethod extends com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.svm.hosted.code.CCallStubMethod
super_class: com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
{
private static final jdk.vm.ci.meta.JavaKind cEnumKind;
descriptor: Ljdk/vm/ci/meta/JavaKind;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected final int newThreadStatus;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/code/CCallStubMethod;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.hosted.code.CCallStubMethod.$assertionsDisabled:Z
3: getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
putstatic com.oracle.svm.hosted.code.CCallStubMethod.cEnumKind:Ljdk/vm/ci/meta/JavaKind;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.vm.ci.meta.ResolvedJavaMethod, int);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial com.oracle.svm.hosted.annotation.CustomSubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
1: aload 0
iload 2
putfield com.oracle.svm.hosted.code.CCallStubMethod.newThreadStatus:I
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/code/CCallStubMethod;
0 3 1 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 3 2 newThreadStatus I
MethodParameters:
Name Flags
original
newThreadStatus
protected abstract java.lang.String getCorrespondingAnnotationName();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public org.graalvm.compiler.nodes.StructuredGraph buildGraph(org.graalvm.compiler.debug.DebugContext, jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/graal/pointsto/infrastructure/GraphProvider$Purpose;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: invokestatic com.oracle.svm.hosted.code.CEntryPointCallStubSupport.singleton:()Lcom/oracle/svm/hosted/code/CEntryPointCallStubSupport;
invokevirtual com.oracle.svm.hosted.code.CEntryPointCallStubSupport.getNativeLibraries:()Lcom/oracle/svm/hosted/c/NativeLibraries;
astore 5
start local 5 1: aload 2
instanceof com.oracle.svm.core.meta.SharedMethod
ifeq 2
aload 2
checkcast com.oracle.svm.core.meta.SharedMethod
invokeinterface com.oracle.svm.core.meta.SharedMethod.isDeoptTarget:()Z
ifeq 2
iconst_1
goto 3
StackMap locals: com.oracle.svm.hosted.c.NativeLibraries
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 6
start local 6 4: new com.oracle.svm.hosted.phases.HostedGraphKit
dup
aload 1
aload 3
aload 2
invokespecial com.oracle.svm.hosted.phases.HostedGraphKit.<init>:(Lorg/graalvm/compiler/debug/DebugContext;Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 5: aload 7
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getFrameState:()Lorg/graalvm/compiler/java/FrameStateBuilder;
astore 8
start local 8 6: aload 7
aload 0
aload 2
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getParameterTypesForLoad:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)[Ljdk/vm/ci/meta/JavaType;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.loadArguments:([Ljdk/vm/ci/meta/JavaType;)Ljava/util/List;
astore 9
start local 9 7: aload 0
aload 7
aload 3
aload 9
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.createTargetAddressNode:(Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 8: aload 0
aload 3
aload 5
aload 7
aload 2
9: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.getReturnType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.toParameterTypes:()[Ljdk/vm/ci/meta/JavaType;
aload 9
10: invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.adaptSignatureAndConvertArguments:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljava/util/List;)Ljdk/vm/ci/meta/Signature;
astore 11
start local 11 11: aload 8
invokevirtual org.graalvm.compiler.java.FrameStateBuilder.clearLocals:()V
12: aload 7
aload 10
aload 9
aload 11
aload 0
getfield com.oracle.svm.hosted.code.CCallStubMethod.newThreadStatus:I
iload 6
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createCFunctionCall:(Lorg/graalvm/compiler/nodes/ValueNode;Ljava/util/List;Ljdk/vm/ci/meta/Signature;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
astore 12
start local 12 13: aload 0
aload 2
aload 3
aload 5
aload 7
aload 12
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.adaptReturnValue:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 12
14: aload 7
aload 12
aload 11
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createReturn:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
15: aload 7
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.finalizeGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
areturn
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 16 0 this Lcom/oracle/svm/hosted/code/CCallStubMethod;
0 16 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 16 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 16 3 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 16 4 purpose Lcom/oracle/graal/pointsto/infrastructure/GraphProvider$Purpose;
1 16 5 nativeLibraries Lcom/oracle/svm/hosted/c/NativeLibraries;
4 16 6 deoptimizationTarget Z
5 16 7 kit Lcom/oracle/svm/hosted/phases/HostedGraphKit;
6 16 8 state Lorg/graalvm/compiler/java/FrameStateBuilder;
7 16 9 arguments Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
8 16 10 callAddress Lorg/graalvm/compiler/nodes/ValueNode;
11 16 11 signature Ljdk/vm/ci/meta/Signature;
13 16 12 returnValue Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
debug
method
providers
purpose
protected abstract org.graalvm.compiler.nodes.ValueNode createTargetAddressNode(com.oracle.svm.hosted.phases.HostedGraphKit, com.oracle.graal.pointsto.meta.HostedProviders, java.util.List<org.graalvm.compiler.nodes.ValueNode>);
descriptor: (Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljava/util/List;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;)Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
kit
providers
arguments
protected static boolean isPrimitiveOrWord(com.oracle.graal.pointsto.meta.HostedProviders, jdk.vm.ci.meta.JavaType);
descriptor: (Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/JavaType;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.vm.ci.meta.JavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
ifne 1
aload 0
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getWordTypes:()Lorg/graalvm/compiler/word/WordTypes;
aload 1
invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 2 1 type Ljdk/vm/ci/meta/JavaType;
MethodParameters:
Name Flags
providers
type
protected jdk.vm.ci.meta.JavaType[] getParameterTypesForLoad(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)[Ljdk/vm/ci/meta/JavaType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.toParameterTypes:(Ljdk/vm/ci/meta/JavaType;)[Ljdk/vm/ci/meta/JavaType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/code/CCallStubMethod;
0 1 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
protected jdk.vm.ci.meta.Signature adaptSignatureAndConvertArguments(com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.svm.hosted.c.NativeLibraries, com.oracle.svm.hosted.phases.HostedGraphKit, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.JavaType, jdk.vm.ci.meta.JavaType[], java.util.List<org.graalvm.compiler.nodes.ValueNode>);
descriptor: (Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljava/util/List;)Ljdk/vm/ci/meta/Signature;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=18, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 1
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
astore 8
start local 8 1: iconst_0
istore 9
start local 9 2: goto 31
3: StackMap locals: jdk.vm.ci.meta.MetaAccessProvider int
StackMap stack:
aload 1
aload 6
iload 9
aaload
invokestatic com.oracle.svm.hosted.code.CCallStubMethod.isPrimitiveOrWord:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/JavaType;)Z
ifne 30
4: aload 2
aload 6
iload 9
aaload
checkcast jdk.vm.ci.meta.ResolvedJavaType
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
astore 10
start local 10 5: aload 10
instanceof com.oracle.svm.hosted.c.info.EnumInfo
ifeq 27
6: aload 7
iload 9
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 11
start local 11 7: aload 3
new org.graalvm.compiler.nodes.calc.IsNullNode
dup
aload 11
invokespecial org.graalvm.compiler.nodes.calc.IsNullNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.unique:(Lorg/graalvm/compiler/nodes/calc/FloatingNode;)Lorg/graalvm/compiler/nodes/calc/FloatingNode;
checkcast org.graalvm.compiler.nodes.calc.IsNullNode
astore 12
start local 12 8: aload 3
aload 12
ldc 0.0010000000000000009
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.startIf:(Lorg/graalvm/compiler/nodes/LogicNode;D)Lorg/graalvm/compiler/nodes/IfNode;
pop
9: aload 3
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.thenPart:()V
10: aload 8
ldc Ljava/lang/RuntimeException;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 13
start local 13 11: aload 3
new org.graalvm.compiler.nodes.java.NewInstanceNode
dup
aload 13
iconst_1
invokespecial org.graalvm.compiler.nodes.java.NewInstanceNode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Z)V
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.nodes.java.NewInstanceNode
astore 14
start local 14 12: aload 13
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredConstructors:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
13: aload 8
invokedynamic test(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljava/util/function/Predicate;
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;)Z
com/oracle/svm/hosted/code/CCallStubMethod.lambda$0(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z (6)
(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
14: invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
15: invokeinterface java.util.stream.Stream.iterator:()Ljava/util/Iterator;
16: astore 15
start local 15 17: aload 3
aload 3
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
ldc "null return value cannot be converted to a C enum value"
invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.forString:(Ljava/lang/String;)Ljdk/vm/ci/meta/JavaConstant;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createConstant:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 16
start local 16 18: aload 3
getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Special:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
iconst_2
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 14
aastore
dup
iconst_1
aload 16
aastore
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createJavaCallWithExceptionAndUnwind:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
19: getstatic com.oracle.svm.hosted.code.CCallStubMethod.$assertionsDisabled:Z
ifne 20
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals: com.oracle.svm.hosted.code.CCallStubMethod com.oracle.graal.pointsto.meta.HostedProviders com.oracle.svm.hosted.c.NativeLibraries com.oracle.svm.hosted.phases.HostedGraphKit jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] java.util.List jdk.vm.ci.meta.MetaAccessProvider int com.oracle.svm.hosted.c.info.ElementInfo org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.IsNullNode jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.java.NewInstanceNode java.util.Iterator org.graalvm.compiler.nodes.ConstantNode
StackMap stack:
aload 3
new org.graalvm.compiler.nodes.UnwindNode
dup
aload 14
invokespecial org.graalvm.compiler.nodes.UnwindNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
21: aload 3
invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.endIf:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
pop
22: new com.oracle.svm.hosted.phases.CInterfaceEnumTool
dup
aload 8
aload 1
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
invokespecial com.oracle.svm.hosted.phases.CInterfaceEnumTool.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
astore 17
start local 17 23: aload 17
aload 3
aload 10
checkcast com.oracle.svm.hosted.c.info.EnumInfo
getstatic com.oracle.svm.hosted.code.CCallStubMethod.cEnumKind:Ljdk/vm/ci/meta/JavaKind;
aload 11
invokevirtual com.oracle.svm.hosted.phases.CInterfaceEnumTool.createEnumValueInvoke:(Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lcom/oracle/svm/hosted/c/info/EnumInfo;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 11
24: aload 7
iload 9
aload 11
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
25: aload 6
iload 9
aload 8
getstatic com.oracle.svm.hosted.code.CCallStubMethod.cEnumKind:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.toJavaClass:()Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
aastore
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 26: goto 30
27: StackMap locals: com.oracle.svm.hosted.code.CCallStubMethod com.oracle.graal.pointsto.meta.HostedProviders com.oracle.svm.hosted.c.NativeLibraries com.oracle.svm.hosted.phases.HostedGraphKit jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.JavaType jdk.vm.ci.meta.JavaType[] java.util.List jdk.vm.ci.meta.MetaAccessProvider int com.oracle.svm.hosted.c.info.ElementInfo
StackMap stack:
ldc "@%s parameter types are restricted to primitive types, word types and enumerations (@%s): %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
28: aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getCorrespondingAnnotationName:()Ljava/lang/String;
aastore
dup
iconst_1
ldc Lorg/graalvm/nativeimage/c/constant/CEnum;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aastore
29: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 10 30: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
31: iload 9
aload 6
arraylength
if_icmplt 3
end local 9 32: aload 1
aload 5
invokestatic com.oracle.svm.hosted.code.CCallStubMethod.isPrimitiveOrWord:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/JavaType;)Z
ifeq 33
aload 5
goto 34
StackMap locals:
StackMap stack:
33: aload 1
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getWordTypes:()Lorg/graalvm/compiler/word/WordTypes;
invokevirtual org.graalvm.compiler.word.WordTypes.getWordImplType:()Ljdk/vm/ci/meta/ResolvedJavaType;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.JavaType
34: astore 9
start local 9 35: new com.oracle.svm.hosted.code.SimpleSignature
dup
aload 6
aload 9
invokespecial com.oracle.svm.hosted.code.SimpleSignature.<init>:([Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/meta/JavaType;)V
areturn
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 36 0 this Lcom/oracle/svm/hosted/code/CCallStubMethod;
0 36 1 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 36 2 nativeLibraries Lcom/oracle/svm/hosted/c/NativeLibraries;
0 36 3 kit Lcom/oracle/svm/hosted/phases/HostedGraphKit;
0 36 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 36 5 returnType Ljdk/vm/ci/meta/JavaType;
0 36 6 parameterTypes [Ljdk/vm/ci/meta/JavaType;
0 36 7 arguments Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;
1 36 8 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
2 32 9 i I
5 30 10 typeInfo Lcom/oracle/svm/hosted/c/info/ElementInfo;
7 26 11 argumentValue Lorg/graalvm/compiler/nodes/ValueNode;
8 26 12 isNull Lorg/graalvm/compiler/nodes/calc/IsNullNode;
11 26 13 enumExceptionType Ljdk/vm/ci/meta/ResolvedJavaType;
12 26 14 enumException Lorg/graalvm/compiler/nodes/java/NewInstanceNode;
17 26 15 enumExceptionCtor Ljava/util/Iterator<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
18 26 16 enumExceptionMessage Lorg/graalvm/compiler/nodes/ConstantNode;
23 26 17 tool Lcom/oracle/svm/hosted/phases/CInterfaceEnumTool;
35 36 9 actualReturnType Ljdk/vm/ci/meta/JavaType;
Signature: (Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljava/util/List<Lorg/graalvm/compiler/nodes/ValueNode;>;)Ljdk/vm/ci/meta/Signature;
MethodParameters:
Name Flags
providers
nativeLibraries
kit
method
returnType
parameterTypes
arguments
private org.graalvm.compiler.nodes.ValueNode adaptReturnValue(jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.svm.hosted.c.NativeLibraries, com.oracle.svm.hosted.phases.HostedGraphKit, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
astore 6
start local 6 1: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.getReturnType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
astore 7
start local 7 2: aload 2
aload 7
invokestatic com.oracle.svm.hosted.code.CCallStubMethod.isPrimitiveOrWord:(Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/JavaType;)Z
ifeq 4
3: aload 6
areturn
4: StackMap locals: org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaType
StackMap stack:
aload 3
aload 7
checkcast jdk.vm.ci.meta.ResolvedJavaType
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
astore 8
start local 8 5: aload 8
instanceof com.oracle.svm.hosted.c.info.EnumInfo
ifeq 16
6: aload 8
invokevirtual com.oracle.svm.hosted.c.info.ElementInfo.getChildren:()Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
ldc Lcom/oracle/svm/hosted/c/info/EnumLookupInfo;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
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;)Z
java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
(Lcom/oracle/svm/hosted/c/info/ElementInfo;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
7: ldc "Enum class %s needs a method that is annotated with @%s because it is used as the return type of a method annotated with @%s: %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
8: aload 7
aastore
dup
iconst_1
9: ldc Lorg/graalvm/nativeimage/c/constant/CEnumLookup;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
10: aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getCorrespondingAnnotationName:()Ljava/lang/String;
aastore
dup
iconst_3
11: aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aastore
12: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
13: new com.oracle.svm.hosted.phases.CInterfaceEnumTool
dup
aload 2
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
invokespecial com.oracle.svm.hosted.phases.CInterfaceEnumTool.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
astore 10
start local 10 14: aload 10
aload 4
aload 7
checkcast jdk.vm.ci.meta.ResolvedJavaType
aload 8
checkcast com.oracle.svm.hosted.c.info.EnumInfo
getstatic com.oracle.svm.hosted.code.CCallStubMethod.cEnumKind:Ljdk/vm/ci/meta/JavaKind;
aload 6
invokevirtual com.oracle.svm.hosted.phases.CInterfaceEnumTool.createEnumLookupInvoke:(Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaType;Lcom/oracle/svm/hosted/c/info/EnumInfo;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
end local 10 15: goto 19
16: StackMap locals: com.oracle.svm.hosted.c.info.ElementInfo
StackMap stack:
ldc "Return types of methods annotated with @%s are restricted to primitive types, word types and enumerations (@%s): %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
17: aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getCorrespondingAnnotationName:()Ljava/lang/String;
aastore
dup
iconst_1
ldc Lorg/graalvm/nativeimage/c/constant/CEnum;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
invokevirtual com.oracle.svm.hosted.code.CCallStubMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aastore
18: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
19: StackMap locals:
StackMap stack:
aload 6
areturn
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 20 0 this Lcom/oracle/svm/hosted/code/CCallStubMethod;
0 20 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 20 2 providers Lcom/oracle/graal/pointsto/meta/HostedProviders;
0 20 3 nativeLibraries Lcom/oracle/svm/hosted/c/NativeLibraries;
0 20 4 kit Lcom/oracle/svm/hosted/phases/HostedGraphKit;
0 20 5 invokeValue Lorg/graalvm/compiler/nodes/ValueNode;
1 20 6 returnValue Lorg/graalvm/compiler/nodes/ValueNode;
2 20 7 declaredReturnType Ljdk/vm/ci/meta/JavaType;
5 20 8 typeInfo Lcom/oracle/svm/hosted/c/info/ElementInfo;
14 15 10 tool Lcom/oracle/svm/hosted/phases/CInterfaceEnumTool;
MethodParameters:
Name Flags
method
providers
nativeLibraries
kit
invokeValue
private static boolean lambda$0(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
iconst_0
invokeinterface jdk.vm.ci.meta.Signature.getParameterCount:(Z)I
iconst_1
if_icmpne 1
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
iconst_0
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.getParameterType:(ILjdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
aload 0
ldc Ljava/lang/String;
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 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 c Ljdk/vm/ci/meta/ResolvedJavaMethod;
}
SourceFile: "CCallStubMethod.java"
InnerClasses:
public final Purpose = com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose of com.oracle.graal.pointsto.infrastructure.GraphProvider
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode