public class org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl extends jdk.vm.ci.hotspot.HotSpotForeignCallTarget implements org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
super_class: jdk.vm.ci.hotspot.HotSpotForeignCallTarget
{
protected final org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor descriptor;
descriptor: Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private org.graalvm.compiler.hotspot.stubs.Stub stub;
descriptor: Lorg/graalvm/compiler/hotspot/stubs/Stub;
flags: (0x0002) ACC_PRIVATE
private final jdk.vm.ci.code.CallingConvention outgoingCallingConvention;
descriptor: Ljdk/vm/ci/code/CallingConvention;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.CallingConvention incomingCallingConvention;
descriptor: Ljdk/vm/ci/code/CallingConvention;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect effect;
descriptor: Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.vm.ci.meta.Value[] temporaries;
descriptor: [Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
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 Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
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 org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public static org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage create(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.word.WordTypes, org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider, org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor, long, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect, jdk.vm.ci.code.CallingConvention$Type, jdk.vm.ci.code.CallingConvention$Type);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/code/CallingConvention$Type;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=13, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 7 start local 8 start local 9 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 8
invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.createCallingConvention:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Ljdk/vm/ci/code/ValueKindFactory;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljdk/vm/ci/code/CallingConvention$Type;)Ljdk/vm/ci/code/CallingConvention;
astore 10
start local 10 1: aload 9
ifnonnull 2
aconst_null
goto 3
StackMap locals: jdk.vm.ci.code.CallingConvention
StackMap stack:
2: aload 0
aload 1
aload 2
aload 3
aload 4
aload 9
invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.createCallingConvention:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Ljdk/vm/ci/code/ValueKindFactory;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljdk/vm/ci/code/CallingConvention$Type;)Ljdk/vm/ci/code/CallingConvention;
StackMap locals:
StackMap stack: jdk.vm.ci.code.CallingConvention
3: astore 11
start local 11 4: new org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
dup
aload 4
lload 5
aload 7
aload 10
aload 11
invokespecial org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;)V
astore 12
start local 12 5: aload 8
getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
if_acmpne 7
6: aload 12
aload 3
invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProvider.getNativeABICallerSaveRegisters:()[Ljdk/vm/ci/meta/Value;
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
7: StackMap locals: jdk.vm.ci.code.CallingConvention org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
StackMap stack:
aload 12
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 8 0 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 8 1 codeCache Ljdk/vm/ci/code/CodeCacheProvider;
0 8 2 wordTypes Lorg/graalvm/compiler/word/WordTypes;
0 8 3 foreignCalls Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
0 8 4 descriptor Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
0 8 5 address J
0 8 7 effect Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
0 8 8 outgoingCcType Ljdk/vm/ci/code/CallingConvention$Type;
0 8 9 incomingCcType Ljdk/vm/ci/code/CallingConvention$Type;
1 8 10 outgoingCc Ljdk/vm/ci/code/CallingConvention;
4 8 11 incomingCc Ljdk/vm/ci/code/CallingConvention;
5 8 12 linkage Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
MethodParameters:
Name Flags
metaAccess
codeCache
wordTypes
foreignCalls
descriptor
address
effect
outgoingCcType
incomingCcType
public static jdk.vm.ci.code.CallingConvention createCallingConvention(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.code.CodeCacheProvider, org.graalvm.compiler.word.WordTypes, jdk.vm.ci.code.ValueKindFactory<?>, org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, jdk.vm.ci.code.CallingConvention$Type);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Ljdk/vm/ci/code/ValueKindFactory;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljdk/vm/ci/code/CallingConvention$Type;)Ljdk/vm/ci/code/CallingConvention;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 1
aload 5
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getArgumentTypes:()[Ljava/lang/Class;
astore 6
start local 6 2: aload 6
arraylength
anewarray jdk.vm.ci.meta.JavaType
astore 7
start local 7 3: iconst_0
istore 8
start local 8 4: goto 7
5: StackMap locals: java.lang.Class[] jdk.vm.ci.meta.JavaType[] int
StackMap stack:
aload 7
iload 8
aload 6
iload 8
aaload
aload 0
aload 2
invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.asJavaType:(Ljava/lang/Class;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/word/WordTypes;)Ljdk/vm/ci/meta/JavaType;
aastore
6: iinc 8 1
StackMap locals:
StackMap stack:
7: iload 8
aload 7
arraylength
if_icmplt 5
end local 8 8: aload 4
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
aload 0
aload 2
invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.asJavaType:(Ljava/lang/Class;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/word/WordTypes;)Ljdk/vm/ci/meta/JavaType;
astore 8
start local 8 9: aload 1
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
astore 9
start local 9 10: aload 9
aload 5
aload 8
aload 7
aload 3
invokeinterface jdk.vm.ci.code.RegisterConfig.getCallingConvention:(Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/meta/JavaType;[Ljdk/vm/ci/meta/JavaType;Ljdk/vm/ci/code/ValueKindFactory;)Ljdk/vm/ci/code/CallingConvention;
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 11 0 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 11 1 codeCache Ljdk/vm/ci/code/CodeCacheProvider;
0 11 2 wordTypes Lorg/graalvm/compiler/word/WordTypes;
0 11 3 valueKindFactory Ljdk/vm/ci/code/ValueKindFactory<*>;
0 11 4 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
0 11 5 ccType Ljdk/vm/ci/code/CallingConvention$Type;
2 11 6 argumentTypes [Ljava/lang/Class;
3 11 7 parameterTypes [Ljdk/vm/ci/meta/JavaType;
4 8 8 i I
9 11 8 returnType Ljdk/vm/ci/meta/JavaType;
10 11 9 regConfig Ljdk/vm/ci/code/RegisterConfig;
Signature: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Ljdk/vm/ci/code/ValueKindFactory<*>;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljdk/vm/ci/code/CallingConvention$Type;)Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
metaAccess
codeCache
wordTypes
valueKindFactory
descriptor
ccType
private static jdk.vm.ci.meta.JavaType asJavaType(java.lang.Class<?>, jdk.vm.ci.meta.MetaAccessProvider, org.graalvm.compiler.word.WordTypes);
descriptor: (Ljava/lang/Class;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/word/WordTypes;)Ljdk/vm/ci/meta/JavaType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 1: aload 2
aload 3
invokevirtual org.graalvm.compiler.word.WordTypes.isWord:(Ljdk/vm/ci/meta/JavaType;)Z
ifeq 3
2: aload 1
aload 2
invokevirtual org.graalvm.compiler.word.WordTypes.getWordKind:()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;
astore 3
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class<*>;
0 4 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 4 2 wordTypes Lorg/graalvm/compiler/word/WordTypes;
1 4 3 javaType Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Ljava/lang/Class<*>;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/word/WordTypes;)Ljdk/vm/ci/meta/JavaType;
MethodParameters:
Name Flags
type
metaAccess
wordTypes
public void <init>(org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor, long, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect, jdk.vm.ci.code.CallingConvention, jdk.vm.ci.code.CallingConvention);
descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention;Ljdk/vm/ci/code/CallingConvention;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 0: aload 0
lload 2
invokespecial jdk.vm.ci.hotspot.HotSpotForeignCallTarget.<init>:(J)V
1: aload 0
getstatic jdk.vm.ci.meta.AllocatableValue.NONE:[Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
2: aload 0
aload 1
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
3: aload 0
lload 2
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
4: aload 0
aload 4
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.effect:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
5: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 6
aload 5
ifnonnull 6
new java.lang.AssertionError
dup
ldc "only incomingCallingConvention can be null"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor long org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect jdk.vm.ci.code.CallingConvention jdk.vm.ci.code.CallingConvention
StackMap stack:
aload 0
aload 5
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.outgoingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
7: aload 0
aload 6
ifnull 8
aload 6
goto 9
StackMap locals:
StackMap stack: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
8: aload 5
StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor long org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect jdk.vm.ci.code.CallingConvention jdk.vm.ci.code.CallingConvention
StackMap stack: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl jdk.vm.ci.code.CallingConvention
9: putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.incomingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
10: return
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
0 11 1 descriptor Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
0 11 2 address J
0 11 4 effect Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
0 11 5 outgoingCallingConvention Ljdk/vm/ci/code/CallingConvention;
0 11 6 incomingCallingConvention Ljdk/vm/ci/code/CallingConvention;
MethodParameters:
Name Flags
descriptor
address
effect
outgoingCallingConvention
incomingCallingConvention
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
ifnonnull 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor.toString:()Ljava/lang/String;
goto 2
StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
StackMap stack: new 0 new 0
1: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
invokevirtual org.graalvm.compiler.hotspot.stubs.Stub.toString:()Ljava/lang/String;
StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl
StackMap stack: new 0 new 0 java.lang.String
2: invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 3: aload 1
ldc "@0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.outgoingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.incomingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
ifnull 13
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
arraylength
ifeq 13
5: aload 1
ldc "; temps="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: ldc ""
astore 2
start local 2 7: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 12
StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl java.lang.StringBuilder java.lang.String top int int jdk.vm.ci.meta.Value[]
StackMap stack:
8: aload 6
iload 4
aaload
astore 3
start local 3 9: aload 1
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
10: ldc ","
astore 2
end local 3 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 5
if_icmplt 8
end local 2 13: StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl java.lang.StringBuilder
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
3 14 1 sb Ljava/lang/StringBuilder;
7 13 2 sep Ljava/lang/String;
9 11 3 op Ljdk/vm/ci/meta/Value;
public org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect getEffect();
descriptor: ()Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.effect:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public jdk.vm.ci.code.CallingConvention getOutgoingCallingConvention();
descriptor: ()Ljdk/vm/ci/code/CallingConvention;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.outgoingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public jdk.vm.ci.code.CallingConvention getIncomingCallingConvention();
descriptor: ()Ljdk/vm/ci/code/CallingConvention;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.incomingCallingConvention:Ljdk/vm/ci/code/CallingConvention;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public jdk.vm.ci.meta.Value[] getTemporaries();
descriptor: ()[Ljdk/vm/ci/meta/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
arraylength
ifne 2
1: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
invokevirtual jdk.vm.ci.meta.Value[].clone:()Ljava/lang/Object;
checkcast jdk.vm.ci.meta.Value[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public long getMaxCallTargetOffset();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getMaxCallTargetOffset:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor getDescriptor();
descriptor: ()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public void setCompiledStub(org.graalvm.compiler.hotspot.stubs.Stub);
descriptor: (Lorg/graalvm/compiler/hotspot/stubs/Stub;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
lconst_0
lcmp
ifeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "cannot set stub for linkage that already has an address: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
0 3 1 stub Lorg/graalvm/compiler/hotspot/stubs/Stub;
MethodParameters:
Name Flags
stub
public boolean isCompiledStub();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
lconst_0
lcmp
ifeq 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
ifnonnull 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public org.graalvm.compiler.hotspot.stubs.Stub getStub();
descriptor: ()Lorg/graalvm/compiler/hotspot/stubs/Stub;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.checkStubCondition:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
private boolean checkStubCondition();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
ifnonnull 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "linkage without an address must be a stub - forgot to register a Stub associated with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public void finalizeAddress(org.graalvm.compiler.core.target.Backend);
descriptor: (Lorg/graalvm/compiler/core/target/Backend;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
lconst_0
lcmp
ifne 13
1: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.checkStubCondition:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
aload 1
invokevirtual org.graalvm.compiler.hotspot.stubs.Stub.getCode:(Lorg/graalvm/compiler/core/target/Backend;)Ljdk/vm/ci/code/InstalledCode;
astore 2
start local 2 3: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
invokevirtual org.graalvm.compiler.hotspot.stubs.Stub.getDestroyedCallerRegisters:()Ljdk/internal/vm/compiler/collections/EconomicSet;
astore 3
start local 3 4: aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.isEmpty:()Z
ifne 12
5: aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.size:()I
anewarray jdk.vm.ci.meta.AllocatableValue
astore 4
start local 4 6: iconst_0
istore 5
start local 5 7: aload 3
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.iterator:()Ljava/util/Iterator;
astore 7
goto 10
StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl org.graalvm.compiler.core.target.Backend jdk.vm.ci.code.InstalledCode jdk.internal.vm.compiler.collections.EconomicSet jdk.vm.ci.meta.AllocatableValue[] int top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 6
start local 6 9: aload 4
iload 5
iinc 5 1
aload 6
invokevirtual jdk.vm.ci.code.Register.asValue:()Ljdk/vm/ci/code/RegisterValue;
aastore
end local 6 10: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: aload 0
aload 4
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.temporaries:[Ljdk/vm/ci/meta/Value;
end local 5 end local 4 12: StackMap locals: org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl org.graalvm.compiler.core.target.Backend jdk.vm.ci.code.InstalledCode jdk.internal.vm.compiler.collections.EconomicSet
StackMap stack:
aload 0
aload 2
invokevirtual jdk.vm.ci.code.InstalledCode.getStart:()J
putfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
end local 3 end local 2 13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
0 14 1 backend Lorg/graalvm/compiler/core/target/Backend;
3 13 2 code Ljdk/vm/ci/code/InstalledCode;
4 13 3 destroyedRegisters Ljdk/internal/vm/compiler/collections/EconomicSet<Ljdk/vm/ci/code/Register;>;
6 12 4 temporaryLocations [Ljdk/vm/ci/meta/AllocatableValue;
7 12 5 i I
9 10 6 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
backend
public long getAddress();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
lconst_0
lcmp
ifne 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "address not yet finalized: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.address:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public boolean destroysRegisters();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.effect:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.DESTROYS_ALL_CALLER_SAVE_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public boolean needsDebugInfo();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor.canDeoptimize:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public boolean mayContainFP();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor.getTransition:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
getstatic org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor$Transition.LEAF_NO_VZERO:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public boolean needsJavaFrameAnchor();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor.getTransition:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
getstatic org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor$Transition.SAFEPOINT:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
if_acmpeq 1
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.descriptor:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor.getTransition:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
getstatic org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor$Transition.STACK_INSPECTABLE_LEAF:Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor$Transition;
if_acmpne 4
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
ifnull 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public java.lang.String getSymbol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.stub:Lorg/graalvm/compiler/hotspot/stubs/Stub;
invokevirtual org.graalvm.compiler.hotspot.stubs.Stub.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public boolean needsClearUpperVectorRegisters();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.isCompiledStub:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.mayContainFP:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl;
public org.graalvm.compiler.core.common.spi.ForeignCallDescriptor getDescriptor();
descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.getDescriptor:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "HotSpotForeignCallLinkageImpl.java"
InnerClasses:
public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
public final RegisterEffect = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
public final Transition = org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor$Transition of org.graalvm.compiler.hotspot.meta.HotSpotForeignCallDescriptor