public class org.graalvm.compiler.hotspot.stubs.ForeignCallStub extends org.graalvm.compiler.hotspot.stubs.Stub
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.stubs.ForeignCallStub
super_class: org.graalvm.compiler.hotspot.stubs.Stub
{
private final jdk.vm.ci.hotspot.HotSpotJVMCIRuntime jvmciRuntime;
descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage target;
descriptor: Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final boolean prependThread;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
public void <init>(org.graalvm.compiler.options.OptionValues, jdk.vm.ci.hotspot.HotSpotJVMCIRuntime, org.graalvm.compiler.hotspot.meta.HotSpotProviders, long, org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, boolean, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition, boolean, jdk.internal.vm.compiler.word.LocationIdentity[]);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;JLorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;ZLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Z[Ljdk/internal/vm/compiler/word/LocationIdentity;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=16, locals=13, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 0
aload 1
aload 3
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 6
lconst_0
1: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.PRESERVES_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
aload 8
iload 9
aload 10
2: invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.create:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/code/CallingConvention$Type;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Z[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokespecial org.graalvm.compiler.hotspot.stubs.Stub.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
3: aload 0
aload 2
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.jvmciRuntime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
4: aload 0
iload 7
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
5: aload 0
aload 6
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createTargetParameters:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class;
astore 11
start local 11 6: new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
dup
new java.lang.StringBuilder
dup
aload 6
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":C"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
aload 11
invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
astore 12
start local 12 7: aload 0
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
aload 3
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 12
lload 4
8: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.DESTROYS_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
aload 8
iload 9
aload 10
9: invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.create:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/code/CallingConvention$Type;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Z[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
10: return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 11 1 options Lorg/graalvm/compiler/options/OptionValues;
0 11 2 runtime Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
0 11 3 providers Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
0 11 4 address J
0 11 6 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
0 11 7 prependThread Z
0 11 8 transition Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
0 11 9 reexecutable Z
0 11 10 killedLocations [Ljdk/internal/vm/compiler/word/LocationIdentity;
6 11 11 targetParameterTypes [Ljava/lang/Class;
7 11 12 targetSig Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
MethodParameters:
Name Flags
options
runtime
providers
address
descriptor
prependThread
transition
reexecutable
killedLocations
public org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage getTargetLinkage();
descriptor: ()Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
private java.lang.Class<?>[] createTargetParameters(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getArgumentTypes:()[Ljava/lang/Class;
astore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
ifeq 6
2: aload 2
arraylength
iconst_1
iadd
anewarray java.lang.Class
astore 3
start local 3 3: aload 2
iconst_0
aload 3
iconst_1
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 3
iconst_0
ldc Lorg/graalvm/compiler/word/Word;
aastore
5: aload 3
areturn
end local 3 6: StackMap locals: java.lang.Class[]
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 7 1 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
1 7 2 parameters [Ljava/lang/Class;
3 6 3 newParameters [Ljava/lang/Class;
Signature: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
descriptor
protected jdk.vm.ci.meta.ResolvedJavaMethod getInstalledCodeOwner();
descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
protected java.lang.Object debugScopeContext();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1
dup
aload 0
aload 0
invokespecial org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1.<init>:(Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
protected org.graalvm.compiler.nodes.StructuredGraph getGraph(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.common.CompilationIdentifier);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/common/CompilationIdentifier;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
astore 3
start local 3 1: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getArgumentTypes:()[Ljava/lang/Class;
astore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getOutgoingCallingConvention:()Ljdk/vm/ci/code/CallingConvention;
invokevirtual jdk.vm.ci.code.CallingConvention.getReturn:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.core.common.LIRKind.isValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 3
iconst_0
goto 4
StackMap locals: org.graalvm.compiler.word.WordTypes java.lang.Class[]
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
ldc "getGraph"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/graalvm/compiler/debug/DebugContext;
aastore
dup
iconst_1
ldc Lorg/graalvm/compiler/core/common/CompilationIdentifier;
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 6
start local 6 6: new org.graalvm.compiler.replacements.GraphKit
dup
aload 1
aload 6
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
aload 3
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
aload 2
aload 0
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.toString:()Ljava/lang/String;
invokespecial org.graalvm.compiler.replacements.GraphKit.<init>:(Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;Lorg/graalvm/compiler/core/common/CompilationIdentifier;Ljava/lang/String;)V
astore 7
start local 7 7: aload 7
invokevirtual org.graalvm.compiler.replacements.GraphKit.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 8
start local 8 8: aload 0
aload 7
aload 4
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createParameters:(Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class;)[Lorg/graalvm/compiler/nodes/ParameterNode;
astore 9
start local 9 9: aload 7
new org.graalvm.compiler.replacements.nodes.ReadRegisterNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getRegisters:()Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
aload 3
invokevirtual org.graalvm.compiler.word.WordTypes.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
iconst_1
iconst_0
invokespecial org.graalvm.compiler.replacements.nodes.ReadRegisterNode.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/JavaKind;ZZ)V
invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.replacements.nodes.ReadRegisterNode
astore 10
start local 10 10: aload 0
aload 7
aload 9
aload 10
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createTargetCall:(Lorg/graalvm/compiler/replacements/GraphKit;[Lorg/graalvm/compiler/nodes/ParameterNode;Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;)Lorg/graalvm/compiler/hotspot/nodes/StubForeignCallNode;
astore 11
start local 11 11: aload 7
ldc Lorg/graalvm/compiler/hotspot/stubs/StubUtil;
ldc "handlePendingException"
iconst_2
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 10
aastore
dup
iconst_1
iload 5
aload 8
invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
aastore
invokevirtual org.graalvm.compiler.replacements.GraphKit.createInvoke:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
pop
12: iload 5
ifeq 15
13: aload 7
ldc Lorg/graalvm/compiler/hotspot/replacements/HotSpotReplacementsUtil;
ldc "getAndClearObjectResult"
iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 10
aastore
invokevirtual org.graalvm.compiler.replacements.GraphKit.createInvoke:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
astore 12
start local 12 14: aload 7
ldc Lorg/graalvm/compiler/hotspot/stubs/StubUtil;
ldc "verifyObject"
iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 12
aastore
invokevirtual org.graalvm.compiler.replacements.GraphKit.createInvoke:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
astore 11
end local 12 15: StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 7
16: new org.graalvm.compiler.nodes.ReturnNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 17
aconst_null
goto 18
StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
StackMap stack: org.graalvm.compiler.replacements.GraphKit new 16 new 16
17: aload 11
StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
StackMap stack: org.graalvm.compiler.replacements.GraphKit new 16 new 16 org.graalvm.compiler.nodes.ValueNode
18: invokespecial org.graalvm.compiler.nodes.ReturnNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
19: aload 1
iconst_3
aload 8
ldc "Initial stub graph"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
20: aload 7
ldc "Foreign call stub."
ldc "Backend"
invokevirtual org.graalvm.compiler.replacements.GraphKit.inlineInvokes:(Ljava/lang/String;Ljava/lang/String;)V
21: new org.graalvm.compiler.phases.common.RemoveValueProxyPhase
dup
invokespecial org.graalvm.compiler.phases.common.RemoveValueProxyPhase.<init>:()V
aload 8
invokevirtual org.graalvm.compiler.phases.common.RemoveValueProxyPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
22: aload 1
iconst_3
aload 8
ldc "Stub graph before compilation"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
23: aload 8
24: areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 25: StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int
StackMap stack: java.lang.Exception
astore 6
start local 6 26: aload 6
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
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 27 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 27 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 27 2 compilationId Lorg/graalvm/compiler/core/common/CompilationIdentifier;
1 27 3 wordTypes Lorg/graalvm/compiler/word/WordTypes;
2 27 4 args [Ljava/lang/Class;
5 27 5 isObjectResult Z
6 25 6 thisMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
7 25 7 kit Lorg/graalvm/compiler/replacements/GraphKit;
8 25 8 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
9 25 9 params [Lorg/graalvm/compiler/nodes/ParameterNode;
10 25 10 thread Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
11 25 11 result Lorg/graalvm/compiler/nodes/ValueNode;
14 15 12 object Lorg/graalvm/compiler/nodes/InvokeNode;
26 27 6 e Ljava/lang/Exception;
Exception table:
from to target type
5 24 25 Class java.lang.Exception
MethodParameters:
Name Flags
debug
compilationId
private org.graalvm.compiler.nodes.ParameterNode[] createParameters(org.graalvm.compiler.replacements.GraphKit, java.lang.Class<?>[]);
descriptor: (Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class;)[Lorg/graalvm/compiler/nodes/ParameterNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
anewarray org.graalvm.compiler.nodes.ParameterNode
astore 3
start local 3 1: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 9
4: StackMap locals: org.graalvm.compiler.nodes.ParameterNode[] jdk.vm.ci.meta.ResolvedJavaType int
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
iload 5
aaload
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.resolve:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 6
start local 6 5: aload 1
invokevirtual org.graalvm.compiler.replacements.GraphKit.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 6
iconst_0
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forDeclaredType:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/JavaType;Z)Lorg/graalvm/compiler/core/common/type/StampPair;
astore 7
start local 7 6: aload 1
new org.graalvm.compiler.nodes.ParameterNode
dup
iload 5
aload 7
invokespecial org.graalvm.compiler.nodes.ParameterNode.<init>:(ILorg/graalvm/compiler/core/common/type/StampPair;)V
invokevirtual org.graalvm.compiler.replacements.GraphKit.unique:(Lorg/graalvm/compiler/nodes/calc/FloatingNode;)Lorg/graalvm/compiler/nodes/calc/FloatingNode;
checkcast org.graalvm.compiler.nodes.ParameterNode
astore 8
start local 8 7: aload 3
iload 5
aload 8
aastore
end local 8 end local 7 end local 6 8: iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
aload 2
arraylength
if_icmplt 4
end local 5 10: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 11 1 kit Lorg/graalvm/compiler/replacements/GraphKit;
0 11 2 args [Ljava/lang/Class;
1 11 3 params [Lorg/graalvm/compiler/nodes/ParameterNode;
2 11 4 accessingClass Ljdk/vm/ci/meta/ResolvedJavaType;
3 10 5 i I
5 8 6 type Ljdk/vm/ci/meta/ResolvedJavaType;
6 8 7 stamp Lorg/graalvm/compiler/core/common/type/StampPair;
7 8 8 param Lorg/graalvm/compiler/nodes/ParameterNode;
Signature: (Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class<*>;)[Lorg/graalvm/compiler/nodes/ParameterNode;
MethodParameters:
Name Flags
kit
args
private org.graalvm.compiler.hotspot.nodes.StubForeignCallNode createTargetCall(org.graalvm.compiler.replacements.GraphKit, org.graalvm.compiler.nodes.ParameterNode[], org.graalvm.compiler.replacements.nodes.ReadRegisterNode);
descriptor: (Lorg/graalvm/compiler/replacements/GraphKit;[Lorg/graalvm/compiler/nodes/ParameterNode;Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;)Lorg/graalvm/compiler/hotspot/nodes/StubForeignCallNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
invokestatic jdk.vm.ci.meta.JavaKind.fromJavaClass:(Ljava/lang/Class;)Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 1: aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
ifeq 6
2: iconst_1
aload 2
arraylength
iadd
anewarray org.graalvm.compiler.nodes.ValueNode
astore 5
start local 5 3: aload 5
iconst_0
aload 3
aastore
4: aload 2
iconst_0
aload 5
iconst_1
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 1
new org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 4
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 5
invokespecial org.graalvm.compiler.hotspot.nodes.StubForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
areturn
end local 5 6: StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aload 1
new org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
dup
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 4
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 2
invokespecial org.graalvm.compiler.hotspot.nodes.StubForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 7 1 kit Lorg/graalvm/compiler/replacements/GraphKit;
0 7 2 params [Lorg/graalvm/compiler/nodes/ParameterNode;
0 7 3 thread Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
1 7 4 stamp Lorg/graalvm/compiler/core/common/type/Stamp;
3 6 5 targetArguments [Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
kit
params
thread
}
SourceFile: "ForeignCallStub.java"
NestMembers:
org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1 org.graalvm.compiler.hotspot.stubs.ForeignCallStub$DebugScopeContext
InnerClasses:
public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
public final RegisterEffect = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
public final Transition = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1
private DebugScopeContext = org.graalvm.compiler.hotspot.stubs.ForeignCallStub$DebugScopeContext of org.graalvm.compiler.hotspot.stubs.ForeignCallStub
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration