public class com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider implements org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider
super_class: java.lang.Object
{
private final java.util.Map<org.graalvm.compiler.core.common.spi.ForeignCallSignature, com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage> foreignCalls;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;>;
protected org.graalvm.compiler.replacements.arraycopy.ArrayCopyLookup arrayCopyLookup;
descriptor: Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
flags: (0x0004) ACC_PROTECTED
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.foreignCalls:Ljava/util/Map;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
public java.util.Map<org.graalvm.compiler.core.common.spi.ForeignCallSignature, com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage> getForeignCalls();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.foreignCalls:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
Signature: ()Ljava/util/Map<Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;>;
public void register(org.graalvm.compiler.phases.util.Providers, com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor[]);
descriptor: (Lorg/graalvm/compiler/phases/util/Providers;[Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider org.graalvm.compiler.phases.util.Providers com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor[] top int int com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: new com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage
dup
aload 1
aload 3
invokespecial com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;)V
astore 7
start local 7 3: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.foreignCalls:Ljava/util/Map;
aload 3
invokevirtual com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor.getSignature:()Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 1
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 7 1 providers Lorg/graalvm/compiler/phases/util/Providers;
0 7 2 descriptors [Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
2 4 3 descriptor Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
3 4 7 linkage Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;
MethodParameters:
Name Flags
providers
descriptors
public com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage lookupForeignCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.foreignCalls:Ljava/util/Map;
aload 1
invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getSignature:()Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.StringBuilder
dup
ldc "missing implementation for runtime call: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals: com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 4 1 descriptor Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
1 4 2 callTarget Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;
MethodParameters:
Name Flags
descriptor
public org.graalvm.compiler.core.common.spi.ForeignCallDescriptor getDescriptor(org.graalvm.compiler.core.common.spi.ForeignCallSignature);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.foreignCalls:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.svm.core.graal.meta.SubstrateForeignCallLinkage.getDescriptor:()Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 2 1 signature Lorg/graalvm/compiler/core/common/spi/ForeignCallSignature;
1 2 2 linkage Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;
MethodParameters:
Name Flags
signature
public org.graalvm.compiler.core.common.LIRKind getValueKind(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc Lcom/oracle/svm/core/SubstrateTargetDescription;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.core.SubstrateTargetDescription
getfield com.oracle.svm.core.SubstrateTargetDescription.arch:Ljdk/vm/ci/code/Architecture;
aload 1
invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 1 1 javaKind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
javaKind
public void registerArrayCopyForeignCallsDelegate(org.graalvm.compiler.replacements.arraycopy.ArrayCopyLookup);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.arrayCopyLookup:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 2 1 arraycopyForeignCalls Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
MethodParameters:
Name Flags
arraycopyForeignCalls
public org.graalvm.compiler.core.common.spi.ForeignCallDescriptor lookupCheckcastArraycopyDescriptor(boolean);
descriptor: (Z)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.arrayCopyLookup:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
ifnull 2
1: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.arrayCopyLookup:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
iload 1
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopyLookup.lookupCheckcastArraycopyDescriptor:(Z)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
areturn
2: StackMap locals:
StackMap stack:
ldc "Fast checkcast ArrayCopy not supported yet."
invokestatic com.oracle.svm.core.util.VMError.unsupportedFeature:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 3 1 uninit Z
MethodParameters:
Name Flags
uninit
public org.graalvm.compiler.core.common.spi.ForeignCallDescriptor lookupArraycopyDescriptor(jdk.vm.ci.meta.JavaKind, boolean, boolean, boolean, org.graalvm.word.LocationIdentity);
descriptor: (Ljdk/vm/ci/meta/JavaKind;ZZZLorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.arrayCopyLookup:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
ifnull 2
1: aload 0
getfield com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.arrayCopyLookup:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyLookup;
aload 1
iload 2
iload 3
iload 4
aload 5
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopyLookup.lookupArraycopyDescriptor:(Ljdk/vm/ci/meta/JavaKind;ZZZLorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
areturn
2: StackMap locals:
StackMap stack:
ldc "Fast ArrayCopy not supported yet."
invokestatic com.oracle.svm.core.util.VMError.unsupportedFeature:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
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 3 0 this Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallsProvider;
0 3 1 kind Ljdk/vm/ci/meta/JavaKind;
0 3 2 aligned Z
0 3 3 disjoint Z
0 3 4 uninit Z
0 3 5 killedLocation Lorg/graalvm/word/LocationIdentity;
MethodParameters:
Name Flags
kind
aligned
disjoint
uninit
killedLocation
public jdk.vm.ci.meta.ValueKind getValueKind(jdk.vm.ci.meta.JavaKind);
descriptor: (Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ValueKind;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.getValueKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.graalvm.compiler.core.common.spi.ForeignCallLinkage lookupForeignCall(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)Lorg/graalvm/compiler/core/common/spi/ForeignCallLinkage;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.lookupForeignCall:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)Lcom/oracle/svm/core/graal/meta/SubstrateForeignCallLinkage;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "SubstrateForeignCallsProvider.java"
InnerClasses:
public SubstrateForeignCallDescriptor = com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor of com.oracle.svm.core.snippets.SnippetRuntime