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.HotSpotJVMCIRuntimeProvider jvmciRuntime;
descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
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>(jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider, org.graalvm.compiler.hotspot.meta.HotSpotProviders, long, org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, boolean, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition, boolean, org.graalvm.compiler.core.common.LocationIdentity[]);
descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;JLorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;ZLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Z[Lorg/graalvm/compiler/core/common/LocationIdentity;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=15, locals=12, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
aload 2
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 5
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 7
iload 8
aload 9
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[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
invokespecial org.graalvm.compiler.hotspot.stubs.Stub.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
3: aload 0
aload 1
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.jvmciRuntime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
4: aload 0
iload 6
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
5: aload 0
aload 5
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createTargetParameters:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class;
astore 10
start local 10 6: new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
dup
new java.lang.StringBuilder
dup
aload 5
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 5
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
aload 10
invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
astore 11
start local 11 7: aload 0
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
aload 2
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
aload 11
lload 3
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 7
iload 8
aload 9
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[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
10: return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 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 runtime Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
0 11 2 providers Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
0 11 3 address J
0 11 5 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
0 11 6 prependThread Z
0 11 7 transition Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
0 11 8 reexecutable Z
0 11 9 killedLocations [Lorg/graalvm/compiler/core/common/LocationIdentity;
6 11 10 targetParameterTypes [Ljava/lang/Class;
7 11 11 targetSig Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
MethodParameters:
Name Flags
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.core.common.CompilationIdentifier);
descriptor: (Lorg/graalvm/compiler/core/common/CompilationIdentifier;)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=11, args_size=2
start local 0 start local 1 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 2
start local 2 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 3
start local 3 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 4
start local 4 5: new org.graalvm.compiler.nodes.StructuredGraph
dup
aload 0
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.toString:()Ljava/lang/String;
aconst_null
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.NO:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
aload 1
invokespecial org.graalvm.compiler.nodes.StructuredGraph.<init>:(Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;Lorg/graalvm/compiler/core/common/CompilationIdentifier;)V
astore 5
start local 5 6: aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.disableUnsafeAccessTracking:()V
7: new org.graalvm.compiler.replacements.GraphKit
dup
aload 5
aload 0
getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
aload 2
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;
invokespecial org.graalvm.compiler.replacements.GraphKit.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)V
astore 6
start local 6 8: aload 0
aload 6
aload 3
invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createParameters:(Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class;)[Lorg/graalvm/compiler/nodes/ParameterNode;
astore 7
start local 7 9: aload 6
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 2
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 8
start local 8 10: aload 0
aload 6
aload 7
aload 8
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 9
start local 9 11: aload 6
ldc Lorg/graalvm/compiler/hotspot/stubs/StubUtil;
ldc "handlePendingException"
iconst_2
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 8
aastore
dup
iconst_1
iload 4
aload 5
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 4
ifeq 15
13: aload 6
ldc Lorg/graalvm/compiler/hotspot/replacements/HotSpotReplacementsUtil;
ldc "getAndClearObjectResult"
iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 8
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 10
start local 10 14: aload 6
ldc Lorg/graalvm/compiler/hotspot/stubs/StubUtil;
ldc "verifyObject"
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 9
end local 10 15: StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 6
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.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.GraphKit 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 9
StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.GraphKit 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: iconst_2
invokestatic org.graalvm.compiler.debug.Debug.isDumpEnabled:(I)Z
ifeq 21
20: iconst_2
aload 5
ldc "Initial stub graph"
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.replacements.GraphKit.inlineInvokes:()V
22: iconst_2
invokestatic org.graalvm.compiler.debug.Debug.isDumpEnabled:(I)Z
ifeq 24
23: iconst_2
aload 5
ldc "Stub graph before compilation"
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
aload 5
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 25 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 25 1 compilationId Lorg/graalvm/compiler/core/common/CompilationIdentifier;
1 25 2 wordTypes Lorg/graalvm/compiler/word/WordTypes;
2 25 3 args [Ljava/lang/Class;
5 25 4 isObjectResult Z
6 25 5 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
8 25 6 kit Lorg/graalvm/compiler/replacements/GraphKit;
9 25 7 params [Lorg/graalvm/compiler/nodes/ParameterNode;
10 25 8 thread Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
11 25 9 result Lorg/graalvm/compiler/nodes/ValueNode;
14 15 10 object Lorg/graalvm/compiler/nodes/InvokeNode;
MethodParameters:
Name Flags
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=6, locals=5, 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.prependThread:Z
ifeq 5
1: iconst_1
aload 2
arraylength
iadd
anewarray org.graalvm.compiler.nodes.ValueNode
astore 4
start local 4 2: aload 4
iconst_0
aload 3
aastore
3: aload 2
iconst_0
aload 4
iconst_1
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: 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 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 4
invokespecial org.graalvm.compiler.hotspot.nodes.StubForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;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 5: StackMap locals:
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 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/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 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
0 6 1 kit Lorg/graalvm/compiler/replacements/GraphKit;
0 6 2 params [Lorg/graalvm/compiler/nodes/ParameterNode;
0 6 3 thread Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
2 5 4 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 final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration