public class org.graalvm.compiler.hotspot.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.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates
super_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
{
private jdk.vm.ci.meta.ResolvedJavaMethod originalArraycopy;
descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo checkcastArraycopyWorkSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 arraycopySlowPathIntrinsicSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyUnrolledIntrinsicSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyExactIntrinsicSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyZeroLengthIntrinsicSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyPredictedExactIntrinsicSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyPredictedObjectWorkSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo arraycopyUnrolledWorkSnippet;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/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.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.hotspot.meta.HotSpotProviders, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
aload 2
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
1: aload 0
aload 0
ldc "checkcastArraycopyWork"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.checkcastArraycopyWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
2: aload 0
aload 0
ldc "arraycopyGeneric"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyGenericSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
3: aload 0
aload 0
ldc "arraycopySlowPathIntrinsic"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopySlowPathIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
4: aload 0
aload 0
ldc "arraycopyUnrolledIntrinsic"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
5: aload 0
aload 0
ldc "arraycopyExactIntrinsic"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
6: aload 0
aload 0
ldc "arraycopyZeroLengthIntrinsic"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyZeroLengthIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
7: aload 0
aload 0
ldc "arraycopyPredictedExactIntrinsic"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
8: aload 0
aload 0
ldc "arraycopyPredictedObjectWork"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedObjectWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
9: aload 0
aload 0
ldc "arraycopyUnrolledWork"
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 11 1 providers Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
0 11 2 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
providers
target
private jdk.vm.ci.meta.ResolvedJavaMethod originalArraycopy();
descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
ifnonnull 6
1: ldc Ljava/lang/System;
ldc "arraycopy"
iconst_5
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
ldc Ljava/lang/Object;
aastore
dup
iconst_3
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_4
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 1
start local 1 2: goto 5
end local 1 StackMap locals:
StackMap stack: java.lang.Exception
3: astore 2
start local 2 4: new org.graalvm.compiler.debug.GraalError
dup
aload 2
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 start local 1 5: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 0
aload 0
getfield org.graalvm.compiler.hotspot.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 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
2 3 1 method Ljava/lang/reflect/Method;
5 6 1 method Ljava/lang/reflect/Method;
4 5 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.NoSuchMethodException
1 2 3 Class java.lang.SecurityException
Exceptions:
throws org.graalvm.compiler.debug.GraalError
protected org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo snippet(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ldc Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets;
aload 1
iconst_1
anewarray org.graalvm.compiler.core.common.LocationIdentity
dup
iconst_0
invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
aastore
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 2
start local 2 1: aload 2
aload 0
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.originalArraycopy:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.setOriginalMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 3 1 methodName Ljava/lang/String;
1 3 2 info Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
MethodParameters:
Name Flags
methodName
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=1, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.selectComponentKind:(Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;Z)Ljdk/vm/ci/meta/JavaKind;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arraycopy Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;
MethodParameters:
Name Flags
arraycopy
public static jdk.vm.ci.meta.JavaKind selectComponentKind(org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode, boolean);
descriptor: (Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;Z)Ljdk/vm/ci/meta/JavaKind;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 1: aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 3
start local 3 2: aload 2
ifnull 3
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 3
aload 3
ifnull 3
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifne 9
3: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
iload 1
ifne 8
4: aload 2
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.getComponentKind:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaKind;
astore 4
start local 4 5: aload 4
ifnull 7
6: aload 4
areturn
7: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 3
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.getComponentKind:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaKind;
areturn
end local 4 8: StackMap locals:
StackMap stack:
aconst_null
areturn
9: StackMap locals:
StackMap stack:
iload 1
ifeq 14
10: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 2
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 12
11: aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.isExact:()Z
ifne 14
13: aconst_null
areturn
14: StackMap locals:
StackMap stack:
aload 2
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 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 arraycopy Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;
0 15 1 exact Z
1 15 2 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
2 15 3 destType Ljdk/vm/ci/meta/ResolvedJavaType;
5 8 4 component Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
arraycopy
exact
private static jdk.vm.ci.meta.JavaKind getComponentKind(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaKind;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifeq 2
1: aload 0
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
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
private static boolean shouldUnroll(org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 1
aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
bipush 8
if_icmpgt 1
aload 0
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
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 length Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
length
public void lower(org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.selectComponentKind:(Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)Ljdk/vm/ci/meta/JavaKind;
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aconst_null
astore 5
start local 5 3: aconst_null
astore 6
start local 6 4: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 7
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
lconst_0
lcmp
ifne 7
5: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyZeroLengthIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
6: goto 39
StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object
StackMap stack:
7: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.isExact:()Z
ifeq 12
8: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
9: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.shouldUnroll:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
ifeq 39
10: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
11: goto 39
12: StackMap locals:
StackMap stack:
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 26
13: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 14: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 8
start local 8 15: aload 7
ifnonnull 16
aconst_null
goto 17
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
16: aload 7
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaType
17: astore 9
start local 9 18: aload 8
ifnonnull 19
aconst_null
goto 20
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
19: aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaType
20: astore 10
start local 10 21: aload 9
ifnull 26
aload 10
ifnull 26
aload 9
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
ifne 26
aload 10
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
ifne 26
22: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopySlowPathIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
23: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.checkcastArraycopyWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 5
24: invokestatic org.graalvm.compiler.core.common.LocationIdentity.any:()Lorg/graalvm/compiler/core/common/LocationIdentity;
astore 6
25: aconst_null
astore 3
end local 10 end local 9 end local 8 end local 7 26: StackMap locals:
StackMap stack:
aload 3
ifnonnull 37
aload 4
ifnonnull 37
27: aload 1
iconst_0
invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.selectComponentKind:(Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;Z)Ljdk/vm/ci/meta/JavaKind;
astore 7
start local 7 28: aload 7
ifnull 37
29: aload 7
astore 3
30: aload 7
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 36
31: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopySlowPathIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
32: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedObjectWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 5
33: aload 7
astore 6
34: aconst_null
astore 3
35: goto 37
36: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
end local 7 37: StackMap locals:
StackMap stack:
aload 4
ifnonnull 39
38: aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyGenericSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
39: StackMap locals:
StackMap stack:
new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
dup
aload 4
aload 1
invokevirtual org.graalvm.compiler.hotspot.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 7
start local 7 40: aload 7
ldc "src"
aload 1
invokevirtual org.graalvm.compiler.hotspot.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
41: aload 7
ldc "srcPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.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
42: aload 7
ldc "dest"
aload 1
invokevirtual org.graalvm.compiler.hotspot.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
43: aload 7
ldc "destPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.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
44: aload 7
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.hotspot.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
45: aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 51
46: aload 7
ldc "unrolledLength"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
47: aload 7
ldc "elementKind"
aload 3
ifnull 48
aload 3
goto 49
StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object org.graalvm.compiler.replacements.SnippetTemplate$Arguments
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String
48: getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object org.graalvm.compiler.replacements.SnippetTemplate$Arguments
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String jdk.vm.ci.meta.JavaKind
49: invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
50: goto 71
StackMap locals:
StackMap stack:
51: aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopySlowPathIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 66
52: aconst_null
astore 8
start local 8 53: aload 6
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedObjectWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 57
54: aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
ldc [Ljava/lang/Object;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
astore 9
start local 9 55: invokestatic org.graalvm.compiler.hotspot.nodes.type.KlassPointerStamp.klassNonNull:()Lorg/graalvm/compiler/hotspot/nodes/type/KlassPointerStamp;
aload 9
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.klass:()Ljdk/vm/ci/meta/Constant;
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 8
end local 9 56: goto 58
57: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
invokestatic org.graalvm.compiler.hotspot.nodes.type.KlassPointerStamp.klassAlwaysNull:()Lorg/graalvm/compiler/hotspot/nodes/type/KlassPointerStamp;
getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 8
58: StackMap locals:
StackMap stack:
aload 7
ldc "predictedKlass"
aload 8
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
59: aload 7
ldc "elementKind"
aload 3
ifnull 60
aload 3
goto 61
StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.ValueNode
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String
60: getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyNode org.graalvm.compiler.nodes.spi.LoweringTool jdk.vm.ci.meta.JavaKind org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo java.lang.Object org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.ValueNode
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$Arguments java.lang.String jdk.vm.ci.meta.JavaKind
61: invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
62: aload 7
ldc "slowPath"
aload 5
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
63: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 64
aload 6
ifnonnull 64
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
64: StackMap locals:
StackMap stack:
aload 7
ldc "slowPathArgument"
aload 6
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
end local 8 65: goto 71
StackMap locals:
StackMap stack:
66: aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpeq 67
aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedExactIntrinsicSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 71
67: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 68
aload 3
ifnonnull 68
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
68: StackMap locals:
StackMap stack:
aload 7
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
69: aload 7
ldc "counter"
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.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
70: aload 7
ldc "copiedCounter"
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.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
71: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.instantiate:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)V
72: 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 73 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 73 1 arraycopy Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyNode;
0 73 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 73 3 componentKind Ljdk/vm/ci/meta/JavaKind;
2 73 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
3 73 5 slowPathSnippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
4 73 6 slowPathArgument Ljava/lang/Object;
14 26 7 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
15 26 8 destType Ljdk/vm/ci/meta/ResolvedJavaType;
18 26 9 srcComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
21 26 10 destComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
28 37 7 predictedKind Ljdk/vm/ci/meta/JavaKind;
40 73 7 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
53 65 8 predictedKlass Lorg/graalvm/compiler/nodes/ValueNode;
55 56 9 arrayClass Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
MethodParameters:
Name Flags
arraycopy
tool
public void lower(org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySlowPathNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: 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 3
2: return
3: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.getSnippet:()Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 4: 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 5: aload 5
ldc "nonNullSrc"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.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
6: aload 5
ldc "srcPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.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
7: aload 5
ldc "nonNullDest"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.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
8: aload 5
ldc "destPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.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
9: aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 13
10: aload 5
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.getArgument:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
11: aload 5
ldc "elementKind"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.getElementKind:()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
12: goto 14
13: StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo org.graalvm.compiler.replacements.SnippetTemplate$Arguments
StackMap stack:
aload 5
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.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
14: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyPredictedObjectWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
if_acmpne 18
15: aload 5
ldc "objectArrayKlass"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.getPredictedKlass:()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
16: aload 5
ldc "counter"
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCounters:Ljava/util/EnumMap;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
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
17: aload 5
ldc "copiedCounter"
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets.arraycopyCallCopiedCounters:Ljava/util/EnumMap;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
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
18: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.instantiate:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;)V
19: 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 20 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 20 1 arraycopy Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySlowPathNode;
0 20 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 20 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 20 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
5 20 5 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
MethodParameters:
Name Flags
arraycopy
tool
public void lower(org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyUnrollNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: 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 3
2: return
3: StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
StackMap stack:
aload 0
getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.arraycopyUnrolledWorkSnippet:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
astore 4
start local 4 4: 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 5: aload 5
ldc "nonNullSrc"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.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
6: aload 5
ldc "srcPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.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
7: aload 5
ldc "nonNullDest"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.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
8: aload 5
ldc "destPos"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.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
9: aload 5
ldc "length"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.getUnrollLength:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
10: aload 5
ldc "elementKind"
aload 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyUnrollNode.getElementKind:()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
11: aload 0
aload 5
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
aload 0
getfield org.graalvm.compiler.hotspot.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 1
getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
aload 5
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;)Ljava/util/Map;
pop
12: 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 13 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 13 1 arraycopy Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyUnrollNode;
0 13 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 13 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 13 4 snippetInfo Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
5 13 5 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
MethodParameters:
Name Flags
arraycopy
tool
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=11, 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 1
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.template:(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.hotspot.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
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;)Ljava/util/Map;
astore 5
start local 5 3: aload 5
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 24
StackMap locals: org.graalvm.compiler.hotspot.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 java.util.Map 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.Invoke
ifeq 19
6: aload 5
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.Invoke
astore 8
start local 8 7: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 8
aload 8
invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.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.hotspot.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 java.util.Map org.graalvm.compiler.graph.Node java.util.Iterator org.graalvm.compiler.nodes.Invoke
StackMap stack:
aload 8
invokeinterface org.graalvm.compiler.nodes.Invoke.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.hotspot.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 3
new org.graalvm.compiler.nodes.InvokeNode
dup
aload 8
invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getBci:()I
invokespecial org.graalvm.compiler.nodes.InvokeNode.<init>:(Lorg/graalvm/compiler/nodes/CallTargetNode;I)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.InvokeNode
astore 10
start local 10 12: aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateDuring:()Lorg/graalvm/compiler/nodes/FrameState;
ifnull 15
13: aload 10
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
14: goto 17
15: StackMap locals: org.graalvm.compiler.nodes.InvokeNode
StackMap stack:
getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 16
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 10
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
17: StackMap locals:
StackMap stack:
aload 3
aload 8
invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.InvokeNode
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
end local 10 end local 9 end local 8 18: goto 24
StackMap locals:
StackMap stack:
19: aload 6
instanceof org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode
ifeq 24
20: aload 5
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode
astore 8
start local 8 21: getstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates.$assertionsDisabled:Z
ifne 22
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode
StackMap stack:
aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
23: aload 8
aload 2
invokevirtual org.graalvm.compiler.replacements.nodes.BasicArrayCopyNode.getBci:()I
invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySlowPathNode.setBci:(I)V
end local 8 end local 6 24: StackMap locals: org.graalvm.compiler.hotspot.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 java.util.Map top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
25: 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 26 0 this Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets$Templates;
0 26 1 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
0 26 2 arraycopy Lorg/graalvm/compiler/replacements/nodes/BasicArrayCopyNode;
1 26 3 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 26 4 template Lorg/graalvm/compiler/replacements/SnippetTemplate;
3 26 5 replacements Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;>;
5 24 6 originalNode Lorg/graalvm/compiler/graph/Node;
7 18 8 invoke Lorg/graalvm/compiler/nodes/Invoke;
9 18 9 call Lorg/graalvm/compiler/nodes/CallTargetNode;
12 18 10 newInvoke Lorg/graalvm/compiler/nodes/InvokeNode;
21 24 8 slowPath Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySlowPathNode;
MethodParameters:
Name Flags
args
arraycopy
}
SourceFile: "ArrayCopySnippets.java"
NestHost: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets
InnerClasses:
public Templates = org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets$Templates of org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopySnippets
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 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