public interface org.graalvm.compiler.replacements.arraycopy.ArrayCopy extends org.graalvm.compiler.nodes.spi.Virtualizable, org.graalvm.compiler.nodes.memory.SingleMemoryKill, org.graalvm.compiler.nodes.memory.MemoryAccess, org.graalvm.compiler.nodes.spi.Lowerable, org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring
minor version: 0
major version: 59
flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
this_class: org.graalvm.compiler.replacements.arraycopy.ArrayCopy
super_class: java.lang.Object
{
public static final int SRC_ARG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int SRC_POS_ARG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int DEST_ARG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int DEST_POS_ARG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int LENGTH_ARG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1019) ACC_PUBLIC, 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/ArrayCopy;
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.ArrayCopy.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public abstract org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> args();
descriptor: ()Lorg/graalvm/compiler/graph/NodeInputList;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()Lorg/graalvm/compiler/graph/NodeInputList<Lorg/graalvm/compiler/nodes/ValueNode;>;
public org.graalvm.compiler.nodes.ValueNode getSource();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.args:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_0
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public org.graalvm.compiler.nodes.ValueNode getSourcePosition();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.args:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_1
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public org.graalvm.compiler.nodes.ValueNode getDestination();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.args:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_2
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public org.graalvm.compiler.nodes.ValueNode getDestinationPosition();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.args:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_3
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public org.graalvm.compiler.nodes.ValueNode getLength();
descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.args:()Lorg/graalvm/compiler/graph/NodeInputList;
iconst_4
invokevirtual org.graalvm.compiler.graph.NodeInputList.get:(I)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public abstract int getBci();
descriptor: ()I
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract jdk.vm.ci.meta.JavaKind getElementKind();
descriptor: ()Ljdk/vm/ci/meta/JavaKind;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public boolean checkBounds(int, int, org.graalvm.compiler.nodes.virtual.VirtualObjectNode);
descriptor: (IILorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopy.$assertionsDisabled:Z
ifne 1
iload 2
ifge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iload 1
iflt 2
iload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualObjectNode.entryCount:()I
iload 2
isub
if_icmpgt 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
0 3 1 position I
0 3 2 length I
0 3 3 virtualObject Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
MethodParameters:
Name Flags
position
length
virtualObject
public boolean checkEntryTypes(int, int, org.graalvm.compiler.nodes.virtual.VirtualObjectNode, jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.spi.VirtualizerTool);
descriptor: (IILorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 9
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isJavaLangObject:()Z
ifne 9
1: iconst_0
istore 6
start local 6 2: goto 8
3: StackMap locals: int
StackMap stack:
aload 5
aload 3
iload 1
iload 6
iadd
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 4: aload 7
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 8
start local 8 5: aload 8
ifnull 6
aload 4
aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 7
6: StackMap locals: org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
iconst_0
ireturn
end local 8 end local 7 7: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
iload 2
if_icmplt 3
end local 6 9: StackMap locals:
StackMap stack:
iconst_1
ireturn
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 10 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
0 10 1 srcPos I
0 10 2 length I
0 10 3 src Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;
0 10 4 destComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
0 10 5 tool Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
2 9 6 i I
4 7 7 entry Lorg/graalvm/compiler/nodes/ValueNode;
5 7 8 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
srcPos
length
src
destComponentType
tool
public boolean isExact();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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:
iconst_0
ireturn
4: 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;
invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
ifeq 5
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;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 6
StackMap locals:
StackMap stack:
5: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 7
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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.isExactType:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 10
8: aload 2
ifnull 10
aload 2
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 10
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
1 11 1 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
2 11 2 destType Ljdk/vm/ci/meta/ResolvedJavaType;
public void virtualize(org.graalvm.compiler.nodes.spi.VirtualizerTool);
descriptor: (Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=16, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getSourcePosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 2
start local 2 1: aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getDestinationPosition:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 3
start local 3 2: aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 4
start local 4 3: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 58
aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 58
aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 58
4: aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
istore 5
start local 5 5: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
istore 6
start local 6 6: aload 4
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
istore 7
start local 7 7: aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 8: aload 8
instanceof org.graalvm.compiler.nodes.virtual.VirtualArrayNode
ifeq 58
9: aload 8
checkcast org.graalvm.compiler.nodes.virtual.VirtualArrayNode
astore 9
start local 9 10: iload 7
iflt 11
aload 0
iload 6
iload 7
aload 9
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.checkBounds:(IILorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Z
ifne 12
11: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopy org.graalvm.compiler.nodes.spi.VirtualizerTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int int int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.virtual.VirtualArrayNode
StackMap stack:
return
12: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getAlias:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 13: aload 10
instanceof org.graalvm.compiler.nodes.virtual.VirtualObjectNode
ifeq 40
14: aload 10
instanceof org.graalvm.compiler.nodes.virtual.VirtualArrayNode
ifne 16
15: return
16: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 10
checkcast org.graalvm.compiler.nodes.virtual.VirtualArrayNode
astore 11
start local 11 17: aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.componentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 11
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.componentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 19
18: return
19: StackMap locals: org.graalvm.compiler.nodes.virtual.VirtualArrayNode
StackMap stack:
aload 0
iload 5
iload 7
aload 11
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.checkBounds:(IILorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;)Z
ifne 21
20: return
21: StackMap locals:
StackMap stack:
aload 0
iload 5
iload 7
aload 11
aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 1
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.checkEntryTypes:(IILorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;)Z
ifne 23
22: return
23: StackMap locals:
StackMap stack:
aload 11
aload 9
if_acmpne 30
iload 5
iload 6
if_icmpge 30
24: iload 7
iconst_1
isub
istore 12
start local 12 25: goto 28
26: StackMap locals: int
StackMap stack:
aload 1
aload 9
iload 6
iload 12
iadd
aload 1
aload 11
iload 5
iload 12
iadd
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.setVirtualEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
27: iinc 12 -1
StackMap locals:
StackMap stack:
28: iload 12
ifge 26
end local 12 29: goto 35
30: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 31: goto 34
32: StackMap locals: int
StackMap stack:
aload 1
aload 9
iload 6
iload 12
iadd
aload 1
aload 11
iload 5
iload 12
iadd
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.getEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;I)Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.setVirtualEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
33: iinc 12 1
StackMap locals:
StackMap stack:
34: iload 12
iload 7
if_icmplt 32
end local 12 35: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.delete:()V
36: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 12
start local 12 37: aload 12
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 58
38: aload 12
ldc "virtualized arraycopy(%s, %d, %s, %d, %d)"
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 12 end local 11 39: goto 58
40: StackMap locals:
StackMap stack:
aload 10
invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 11
start local 11 41: aload 11
ifnull 42
aload 11
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
ifne 43
42: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
return
43: StackMap locals:
StackMap stack:
aload 11
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 12
start local 12 44: aload 9
invokevirtual org.graalvm.compiler.nodes.virtual.VirtualArrayNode.type:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 13
start local 13 45: aload 12
aload 13
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 47
46: return
47: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
iconst_0
istore 14
start local 14 48: goto 56
49: StackMap locals: int
StackMap stack:
new org.graalvm.compiler.nodes.java.LoadIndexedNode
dup
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 10
iload 14
iload 5
iadd
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
aconst_null
50: aload 13
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
51: invokespecial org.graalvm.compiler.nodes.java.LoadIndexedNode.<init>:(Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/extended/GuardingNode;Ljdk/vm/ci/meta/JavaKind;)V
astore 15
start local 15 52: aload 15
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
invokevirtual org.graalvm.compiler.nodes.java.LoadIndexedNode.setNodeSourcePosition:(Lorg/graalvm/compiler/graph/NodeSourcePosition;)V
53: aload 1
aload 15
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.addNode:(Lorg/graalvm/compiler/nodes/ValueNode;)V
54: aload 1
aload 9
iload 6
iload 14
iadd
aload 15
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.setVirtualEntry:(Lorg/graalvm/compiler/nodes/virtual/VirtualObjectNode;ILorg/graalvm/compiler/nodes/ValueNode;)V
end local 15 55: iinc 14 1
StackMap locals:
StackMap stack:
56: iload 14
iload 7
if_icmplt 49
end local 14 57: aload 1
invokeinterface org.graalvm.compiler.nodes.spi.VirtualizerTool.delete:()V
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 58: StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopy org.graalvm.compiler.nodes.spi.VirtualizerTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
0 59 1 tool Lorg/graalvm/compiler/nodes/spi/VirtualizerTool;
1 59 2 sourcePosition Lorg/graalvm/compiler/nodes/ValueNode;
2 59 3 destinationPosition Lorg/graalvm/compiler/nodes/ValueNode;
3 59 4 replacedLength Lorg/graalvm/compiler/nodes/ValueNode;
5 58 5 srcPosInt I
6 58 6 destPosInt I
7 58 7 len I
8 58 8 destAlias Lorg/graalvm/compiler/nodes/ValueNode;
10 58 9 destVirtual Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;
13 58 10 srcAlias Lorg/graalvm/compiler/nodes/ValueNode;
17 39 11 srcVirtual Lorg/graalvm/compiler/nodes/virtual/VirtualArrayNode;
25 29 12 i I
31 35 12 i I
37 39 12 debug Lorg/graalvm/compiler/debug/DebugContext;
41 58 11 sourceType Ljdk/vm/ci/meta/ResolvedJavaType;
44 58 12 sourceComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
45 58 13 destComponentType Ljdk/vm/ci/meta/ResolvedJavaType;
48 57 14 i I
52 55 15 load Lorg/graalvm/compiler/nodes/java/LoadIndexedNode;
MethodParameters:
Name Flags
tool
public boolean canDeoptimize();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public boolean hasSideEffect();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isInit:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
public void computeStateDuring(org.graalvm.compiler.nodes.FrameState);
descriptor: (Lorg/graalvm/compiler/nodes/FrameState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.getBci:()I
aload 0
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
invokevirtual org.graalvm.compiler.nodes.FixedNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual org.graalvm.compiler.nodes.FrameState.duplicateModifiedDuringCall:(ILjdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/FrameState;
astore 2
start local 2 1: aload 0
aload 2
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.setStateDuring:(Lorg/graalvm/compiler/nodes/FrameState;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;
0 3 1 currentStateAfter Lorg/graalvm/compiler/nodes/FrameState;
1 3 2 newStateDuring Lorg/graalvm/compiler/nodes/FrameState;
MethodParameters:
Name Flags
currentStateAfter
public static jdk.vm.ci.meta.JavaKind selectComponentKind(org.graalvm.compiler.replacements.arraycopy.ArrayCopy);
descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopy;)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
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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
invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopy.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/arraycopy/ArrayCopy;
1 9 1 srcType Ljdk/vm/ci/meta/ResolvedJavaType;
2 9 2 destType Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
arraycopy
}
SourceFile: "ArrayCopy.java"
InnerClasses:
public abstract DeoptDuring = org.graalvm.compiler.nodes.DeoptimizingNode$DeoptDuring of org.graalvm.compiler.nodes.DeoptimizingNode