public class org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates extends org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates
super_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
{
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyGenericSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyExactSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyExactStubCallSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyCheckcastSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyNativeSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo checkcastArraycopyWithSlowPathWork;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo genericArraycopyWithSlowPathWork;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo exactArraycopyWithSlowPathWork;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.vm.ci.meta.ResolvedJavaMethod originalArraycopy;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters counters;
descriptor: Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean expandArraycopyLoop;
descriptor: Z
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/replacements/arraycopy/ArrayCopySnippets;
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.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets, org.graalvm.compiler.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.replacements.SnippetCounter$Group$Factory, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 2
aload 3
aload 5
aload 6
aload 7
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
1: aload 0
new org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters
dup
aload 4
invokespecial org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;)V
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.counters:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
2: aload 0
aload 0
aload 1
ldc "arraycopyGenericSnippet"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyGenericSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
3: aload 0
aload 0
aload 1
ldc "arraycopyExactSnippet"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
4: aload 0
aload 0
aload 1
ldc "arraycopyExactStubCallSnippet"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactStubCallSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
5: aload 0
aload 0
aload 1
ldc "arraycopyCheckcastSnippet"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyCheckcastSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
6: aload 0
aload 0
aconst_null
ldc "arraycopyNativeSnippet"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyNativeSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
7: aload 0
aload 0
aload 1
ldc "checkcastArraycopyWithSlowPathWork"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.checkcastArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
8: aload 0
aload 0
aload 1
ldc "genericArraycopyWithSlowPathWork"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.genericArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
9: aload 0
aload 0
aload 1
ldc "exactArraycopyWithSlowPathWork"
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.exactArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
10: return
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 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 11 1 receiver Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;
0 11 2 options Lorg/graalvm/compiler/options/OptionValues;
0 11 3 factories Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
0 11 4 factory Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;
0 11 5 providers Lorg/graalvm/compiler/phases/util/Providers;
0 11 6 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 11 7 target Ljdk/vm/ci/code/TargetDescription;
Signature: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
MethodParameters:
Name Flags
receiver
options
factories
factory
providers
snippetReflection
target
protected org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo snippet(org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets, java.lang.String);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;
aload 2
aload 0
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 1
iconst_1
anewarray jdk.internal.vm.compiler.word.LocationIdentity
dup
iconst_0
invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
aastore
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/Object;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 3
start local 3 1: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 2 1 receiver Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets;
0 2 2 methodName Ljava/lang/String;
1 2 3 info Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
MethodParameters:
Name Flags
receiver
methodName
public void lower(org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.selectComponentKind:(Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)Ljdk/vm/ci/meta/JavaKind;
astore 3
start local 3 1: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 6
start local 6 2: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 7
start local 7 3: aload 6
invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.canBeArray:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 4
aload 7
invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.canBeArray:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 7
4: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind top top jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyNativeSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 5: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.UNDEFINED_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 6: goto 40
end local 5 end local 4 7: StackMap locals:
StackMap stack:
aload 6
ifnonnull 8
aconst_null
goto 9
StackMap locals:
StackMap stack:
8: aload 6
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaType
9: astore 8
start local 8 10: aload 7
ifnonnull 11
aconst_null
goto 12
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
11: aload 7
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaType
12: astore 9
start local 9 13: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.isExact:()Z
ifeq 17
14: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactStubCallSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 15: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.NO_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 16: goto 40
end local 5 end local 4 StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
17: aload 8
ifnonnull 21
aload 9
ifnonnull 21
18: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyGenericSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 19: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.NO_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 20: goto 40
end local 5 end local 4 StackMap locals:
StackMap stack:
21: aload 8
ifnull 30
aload 9
ifnull 30
22: aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
ifne 26
aload 9
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
ifne 26
23: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyCheckcastSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 24: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.NO_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 25: goto 40
end local 5 end local 4 26: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 27
aload 8
aload 9
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 27
new java.lang.AssertionError
dup
ldc "must be handled by arraycopy.isExact()"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyNativeSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 28: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.UNDEFINED_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 29: goto 40
end local 5 end local 4 30: StackMap locals:
StackMap stack:
aload 8
ifnull 31
aload 8
goto 32
StackMap locals:
StackMap stack:
31: aload 9
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaType
32: astore 10
start local 10 33: aload 10
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
ifeq 38
34: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactStubCallSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 35: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.HUB_BASED_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
start local 5 36: aload 10
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
astore 3
37: goto 40
end local 5 end local 4 38: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyCheckcastSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 39: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.LAYOUT_HELPER_BASED_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
astore 5
end local 10 end local 9 end local 8 start local 5 40: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.expandArraycopyLoop:Z
ifeq 42
aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactStubCallSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 42
41: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
42: StackMap locals:
StackMap stack:
new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
dup
aload 4
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
astore 8
start local 8 43: aload 8
ldc "src"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
44: aload 8
ldc "srcPos"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getSourcePosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
45: aload 8
ldc "dest"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
46: aload 8
ldc "destPos"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getDestinationPosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
47: aload 8
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
48: aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyNativeSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpeq 51
49: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 50
aload 5
getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck.UNDEFINED_ARRAY_TYPE_CHECK:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
if_acmpne 50
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
50: StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments
StackMap stack:
aload 8
ldc "arrayTypeCheck"
aload 5
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
51: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyNode.killsAnyLocation:()Z
ifeq 52
invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
goto 53
StackMap locals:
StackMap stack:
52: aload 3
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
StackMap locals:
StackMap stack: jdk.internal.vm.compiler.word.LocationIdentity
53: astore 9
start local 9 54: aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactStubCallSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpeq 55
aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 61
55: StackMap locals: java.lang.Object
StackMap stack:
getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 56
aload 3
ifnonnull 56
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
56: StackMap locals:
StackMap stack:
aload 8
ldc "workSnippet"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.exactArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
57: aload 8
ldc "elementKind"
aload 3
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
58: aload 8
ldc "locationIdentity"
aload 9
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
59: aload 8
ldc "elementKindCounter"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.counters:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCounters:Ljava/util/EnumMap;
aload 3
invokevirtual java.util.EnumMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
60: aload 8
ldc "elementKindCopiedCounter"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.counters:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
aload 3
invokevirtual java.util.EnumMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
61: StackMap locals:
StackMap stack:
aload 8
ldc "counters"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.counters:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
62: aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyCheckcastSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 65
63: aload 8
ldc "workSnippet"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.checkcastArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
64: aload 8
ldc "elementKind"
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
65: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyGenericSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 68
66: aload 8
ldc "workSnippet"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.genericArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
67: aload 8
ldc "elementKind"
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
68: StackMap locals:
StackMap stack:
aload 0
aload 8
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.instantiate:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)V
69: return
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 70 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 70 1 arraycopy Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyNode;
0 70 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 70 3 elementKind Ljdk/vm/ci/meta/JavaKind;
5 7 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
15 17 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
19 21 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
24 26 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
28 30 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
35 38 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
39 70 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
6 7 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
16 17 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
20 21 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
25 26 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
29 30 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
36 38 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
40 70 5 arrayTypeCheck Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$ArrayCopyTypeCheck;
2 70 6 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
3 70 7 destType Ljdk/vm/ci/meta/ResolvedJavaType;
10 40 8 srcComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
13 40 9 destComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
33 40 10 nonNullComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
43 70 8 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
54 70 9 locationIdentity Ljava/lang/Object;
MethodParameters:
Name Flags
arraycopy
tool
public void lower(org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyWithDelayedLoweringNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getSnippet:()Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.exactArraycopyWithSlowPathWork:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.expandArraycopyLoop:Z
ifeq 4
2: aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areDeoptsFixed:()Z
ifne 6
3: return
4: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtDeopts:()Z
ifne 6
5: return
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getSnippet:()Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 7: new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
dup
aload 4
aload 3
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
astore 5
start local 5 8: aload 5
ldc "src"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
9: aload 5
ldc "srcPos"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getSourcePosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
10: aload 5
ldc "dest"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
11: aload 5
ldc "destPos"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getDestinationPosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
12: aload 5
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
13: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getElementKind:()Ljdk/vm/ci/meta/JavaKind;
astore 6
start local 6 14: aload 5
ldc "elementKind"
aload 6
ifnonnull 15
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
goto 16
StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$Arguments jdk.vm.ci.meta.JavaKind
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String
15: aload 6
StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$Arguments jdk.vm.ci.meta.JavaKind
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String jdk.vm.ci.meta.JavaKind
16: invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
17: aload 6
ifnonnull 18
invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
goto 19
StackMap locals:
StackMap stack:
18: aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.getElementKind:()Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
StackMap locals:
StackMap stack: jdk.internal.vm.compiler.word.LocationIdentity
19: astore 7
start local 7 20: aload 5
ldc "arrayLocation"
aload 7
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
21: aload 5
ldc "counters"
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.counters:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Counters;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
22: aload 0
aload 5
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.instantiate:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)V
23: return
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 24 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 24 1 arraycopy Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyWithDelayedLoweringNode;
0 24 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 24 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
7 24 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
8 24 5 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
14 24 6 elementKind Ljdk/vm/ci/meta/JavaKind;
20 24 7 locationIdentity Ljava/lang/Object;
MethodParameters:
Name Flags
arraycopy
tool
private static boolean canBeArray(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isJavaLangObject:()Z
ifne 1
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public static jdk.vm.ci.meta.JavaKind selectComponentKind(org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode);
descriptor: (Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)Ljdk/vm/ci/meta/JavaKind;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 2: aload 1
ifnull 3
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 3
aload 2
ifnull 3
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifne 4
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.isExact:()Z
ifne 8
7: aconst_null
areturn
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 arraycopy Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;
1 9 1 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
2 9 2 destType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
arraycopy
private void instantiate(org.graalvm.compiler.replacements.SnippetTemplate$Arguments, org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode);
descriptor: (Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 0
aload 2
aload 1
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.template:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
astore 4
start local 4 2: aload 4
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
aload 1
iconst_0
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Z)Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap;
astore 5
start local 5 3: aload 5
invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.getKeys:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 7
goto 27
StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.SnippetTemplate jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 6
start local 6 5: aload 6
instanceof org.graalvm.compiler.nodes.InvokeNode
ifeq 20
6: aload 5
aload 6
invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.InvokeNode
astore 8
start local 8 7: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 8
aload 8
invokevirtual org.graalvm.compiler.nodes.InvokeNode.asNode:()Lorg/graalvm/compiler/nodes/FixedWithNextNode;
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 3
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.SnippetTemplate jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.InvokeNode
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.nodes.InvokeNode.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
astore 9
start local 9 9: aload 9
invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 11
10: new org.graalvm.compiler.debug.GraalError
dup
ldc "unexpected invoke %s in snippet"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
11: StackMap locals: org.graalvm.compiler.nodes.CallTargetNode
StackMap stack:
aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getBci:()I
invokevirtual org.graalvm.compiler.nodes.InvokeNode.replaceBci:(I)V
12: aload 8
aconst_null
invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
13: aload 8
aconst_null
invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
14: aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 17
15: aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
16: goto 27
17: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 18
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 18
new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
18: StackMap locals:
StackMap stack:
aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
end local 9 end local 8 19: goto 27
StackMap locals:
StackMap stack:
20: aload 6
instanceof org.graalvm.compiler.nodes.InvokeWithExceptionNode
ifeq 22
21: new org.graalvm.compiler.debug.GraalError
dup
ldc "unexpected invoke with exception %s in snippet"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
22: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode
ifeq 27
23: aload 5
aload 6
invokeinterface jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode
astore 8
start local 8 24: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 25
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 25
new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
25: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode
StackMap stack:
getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 26
aload 8
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
if_acmpeq 26
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
26: StackMap locals:
StackMap stack:
aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getBci:()I
invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyWithDelayedLoweringNode.setBci:(I)V
end local 8 end local 6 27: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.replacements.SnippetTemplate jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
28: aload 2
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
29: return
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 30 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 30 1 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
0 30 2 arraycopy Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;
1 30 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 30 4 template Lorg/graalvm/compiler/replacements/SnippetTemplate;
3 30 5 replacements Ljdk/internal/vm/compiler/collections/UnmodifiableEconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
5 27 6 originalNode Lorg/graalvm/compiler/graph/Node;
7 19 8 invoke Lorg/graalvm/compiler/nodes/InvokeNode;
9 19 9 call Lorg/graalvm/compiler/nodes/CallTargetNode;
24 27 8 slowPath Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyWithDelayedLoweringNode;
MethodParameters:
Name Flags
args
arraycopy
private jdk.vm.ci.meta.ResolvedJavaMethod originalArraycopy();
descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
ifnonnull 5
1: aload 0
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc Ljava/lang/System;
ldc "arraycopy"
invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.findMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
2: goto 5
StackMap locals:
StackMap stack: java.lang.SecurityException
3: astore 1
start local 1 4: new org.graalvm.compiler.debug.GraalError
dup
aload 1
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
4 5 1 e Ljava/lang/SecurityException;
Exception table:
from to target type
1 2 3 Class java.lang.SecurityException
Exceptions:
throws org.graalvm.compiler.debug.GraalError
public void setExpandArraycopyLoop(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates.expandArraycopyLoop:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets$Templates;
0 2 1 b Z
MethodParameters:
Name Flags
b
}
SourceFile: "ArrayCopySnippets.java"
NestHost: org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets
InnerClasses:
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
public Group = org.graalvm.compiler.replacements.SnippetCounter$Group of org.graalvm.compiler.replacements.SnippetCounter
public abstract Factory = org.graalvm.compiler.replacements.SnippetCounter$Group$Factory of org.graalvm.compiler.replacements.SnippetCounter$Group
public abstract AbstractTemplates = org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates of org.graalvm.compiler.replacements.SnippetTemplate
public Arguments = org.graalvm.compiler.replacements.SnippetTemplate$Arguments of org.graalvm.compiler.replacements.SnippetTemplate
public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
public abstract UsageReplacer = org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer of org.graalvm.compiler.replacements.SnippetTemplate
private final ArrayCopyTypeCheck = org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$ArrayCopyTypeCheck of org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets
Counters = org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Counters of org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets
public Templates = org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets$Templates of org.graalvm.compiler.replacements.arraycopy.ArrayCopySnippets