public final class org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode extends org.graalvm.compiler.nodes.memory.AbstractMemoryCheckpoint implements org.graalvm.compiler.nodes.spi.Lowerable, org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single, org.graalvm.compiler.nodes.memory.MemoryAccess, org.graalvm.compiler.graph.spi.Canonicalizable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode
  super_class: org.graalvm.compiler.nodes.memory.AbstractMemoryCheckpoint
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode> TYPE;
    descriptor: Lorg/graalvm/compiler/graph/NodeClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;>;

  protected org.graalvm.compiler.nodes.ValueNode src;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  protected org.graalvm.compiler.nodes.ValueNode srcPos;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  protected org.graalvm.compiler.nodes.ValueNode dest;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  protected org.graalvm.compiler.nodes.ValueNode destPos;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  protected org.graalvm.compiler.nodes.ValueNode length;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$Input()

  org.graalvm.compiler.nodes.memory.MemoryNode lastLocationAccess;
    descriptor: Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$OptionalInput(value = org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;)

  private final jdk.vm.ci.meta.JavaKind elementKind;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.internal.vm.compiler.word.LocationIdentity locationIdentity;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls foreignCalls;
    descriptor: Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.JavaKind wordJavaKind;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int heapWordSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean aligned;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean disjoint;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean uninitialized;
    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: .line 69
            ldc Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            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.ArrayCopyCallNode.$assertionsDisabled:Z
         3: .line 71
            ldc Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls, org.graalvm.compiler.word.WordTypes, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, boolean, boolean, boolean, int);
    descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;ZZZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=14, locals=13, args_size=13
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls foreignCalls
        start local 2 // org.graalvm.compiler.word.WordTypes wordTypes
        start local 3 // org.graalvm.compiler.nodes.ValueNode src
        start local 4 // org.graalvm.compiler.nodes.ValueNode srcPos
        start local 5 // org.graalvm.compiler.nodes.ValueNode dest
        start local 6 // org.graalvm.compiler.nodes.ValueNode destPos
        start local 7 // org.graalvm.compiler.nodes.ValueNode length
        start local 8 // jdk.vm.ci.meta.JavaKind elementKind
        start local 9 // boolean aligned
        start local 10 // boolean disjoint
        start local 11 // boolean uninitialized
        start local 12 // int heapWordSize
         0: .line 96
            aload 0 /* this */
            aload 1 /* foreignCalls */
            aload 2 /* wordTypes */
            aload 3 /* src */
            aload 4 /* srcPos */
            aload 5 /* dest */
            aload 6 /* destPos */
            aload 7 /* length */
            aload 8 /* elementKind */
            aconst_null
            iload 9 /* aligned */
            iload 10 /* disjoint */
            iload 11 /* uninitialized */
            iload 12 /* heapWordSize */
            invokespecial org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.<init>:(Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 97
            return
        end local 12 // int heapWordSize
        end local 11 // boolean uninitialized
        end local 10 // boolean disjoint
        end local 9 // boolean aligned
        end local 8 // jdk.vm.ci.meta.JavaKind elementKind
        end local 7 // org.graalvm.compiler.nodes.ValueNode length
        end local 6 // org.graalvm.compiler.nodes.ValueNode destPos
        end local 5 // org.graalvm.compiler.nodes.ValueNode dest
        end local 4 // org.graalvm.compiler.nodes.ValueNode srcPos
        end local 3 // org.graalvm.compiler.nodes.ValueNode src
        end local 2 // org.graalvm.compiler.word.WordTypes wordTypes
        end local 1 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls foreignCalls
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    2     1   foreignCalls  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            0    2     2      wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            0    2     3            src  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4         srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     5           dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     6        destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     7         length  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     8    elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     9        aligned  Z
            0    2    10       disjoint  Z
            0    2    11  uninitialized  Z
            0    2    12   heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      1:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      2:
      3:
      4:
      5:
      6:
      7:
      8:
      9:
      10:
      11:
    MethodParameters:
               Name  Flags
      foreignCalls   
      wordTypes      
      src            
      srcPos         
      dest           
      destPos        
      length         
      elementKind    
      aligned        
      disjoint       
      uninitialized  
      heapWordSize   

  protected void <init>(org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls, org.graalvm.compiler.word.WordTypes, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, jdk.internal.vm.compiler.word.LocationIdentity, boolean, boolean, boolean, int);
    descriptor: (Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=14, args_size=14
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls foreignCalls
        start local 2 // org.graalvm.compiler.word.WordTypes wordTypes
        start local 3 // org.graalvm.compiler.nodes.ValueNode src
        start local 4 // org.graalvm.compiler.nodes.ValueNode srcPos
        start local 5 // org.graalvm.compiler.nodes.ValueNode dest
        start local 6 // org.graalvm.compiler.nodes.ValueNode destPos
        start local 7 // org.graalvm.compiler.nodes.ValueNode length
        start local 8 // jdk.vm.ci.meta.JavaKind elementKind
        start local 9 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        start local 10 // boolean aligned
        start local 11 // boolean disjoint
        start local 12 // boolean uninitialized
        start local 13 // int heapWordSize
         0: .line 103
            aload 0 /* this */
            getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forVoid:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokespecial org.graalvm.compiler.nodes.memory.AbstractMemoryCheckpoint.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
         1: .line 104
            getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.$assertionsDisabled:Z
            ifne 2
            aload 8 /* elementKind */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 105
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls org.graalvm.compiler.word.WordTypes org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind jdk.internal.vm.compiler.word.LocationIdentity int int int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* src */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.src:Lorg/graalvm/compiler/nodes/ValueNode;
         3: .line 106
            aload 0 /* this */
            aload 4 /* srcPos */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
         4: .line 107
            aload 0 /* this */
            aload 5 /* dest */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.dest:Lorg/graalvm/compiler/nodes/ValueNode;
         5: .line 108
            aload 0 /* this */
            aload 6 /* destPos */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
         6: .line 109
            aload 0 /* this */
            aload 7 /* length */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.length:Lorg/graalvm/compiler/nodes/ValueNode;
         7: .line 110
            aload 0 /* this */
            aload 8 /* elementKind */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
         8: .line 111
            aload 0 /* this */
            aload 9 /* locationIdentity */
            ifnull 9
            aload 9 /* locationIdentity */
            goto 10
      StackMap locals:
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode
         9: aload 8 /* elementKind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls org.graalvm.compiler.word.WordTypes org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.JavaKind jdk.internal.vm.compiler.word.LocationIdentity int int int int
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode jdk.internal.vm.compiler.word.LocationIdentity
        10: putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
        11: .line 112
            aload 0 /* this */
            iload 10 /* aligned */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
        12: .line 113
            aload 0 /* this */
            iload 11 /* disjoint */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
        13: .line 114
            aload 0 /* this */
            iload 12 /* uninitialized */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.uninitialized:Z
        14: .line 115
            aload 0 /* this */
            aload 1 /* foreignCalls */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.foreignCalls:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
        15: .line 116
            aload 0 /* this */
            aload 2 /* wordTypes */
            invokevirtual org.graalvm.compiler.word.WordTypes.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.wordJavaKind:Ljdk/vm/ci/meta/JavaKind;
        16: .line 117
            aload 0 /* this */
            iload 13 /* heapWordSize */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.heapWordSize:I
        17: .line 119
            return
        end local 13 // int heapWordSize
        end local 12 // boolean uninitialized
        end local 11 // boolean disjoint
        end local 10 // boolean aligned
        end local 9 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        end local 8 // jdk.vm.ci.meta.JavaKind elementKind
        end local 7 // org.graalvm.compiler.nodes.ValueNode length
        end local 6 // org.graalvm.compiler.nodes.ValueNode destPos
        end local 5 // org.graalvm.compiler.nodes.ValueNode dest
        end local 4 // org.graalvm.compiler.nodes.ValueNode srcPos
        end local 3 // org.graalvm.compiler.nodes.ValueNode src
        end local 2 // org.graalvm.compiler.word.WordTypes wordTypes
        end local 1 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls foreignCalls
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0   18     1      foreignCalls  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            0   18     2         wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            0   18     3               src  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     4            srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     5              dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     6           destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     7            length  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     8       elementKind  Ljdk/vm/ci/meta/JavaKind;
            0   18     9  locationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0   18    10           aligned  Z
            0   18    11          disjoint  Z
            0   18    12     uninitialized  Z
            0   18    13      heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      1:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      2:
      3:
      4:
      5:
      6:
      7:
      8:
      9:
      10:
      11:
      12:
    MethodParameters:
                  Name  Flags
      foreignCalls      
      wordTypes         
      src               
      srcPos            
      dest              
      destPos           
      length            
      elementKind       
      locationIdentity  
      aligned           
      disjoint          
      uninitialized     
      heapWordSize      

  public org.graalvm.compiler.nodes.ValueNode getSource();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 122
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.src:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public org.graalvm.compiler.nodes.ValueNode getSourcePosition();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 126
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public org.graalvm.compiler.nodes.ValueNode getDestination();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 130
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.dest:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public org.graalvm.compiler.nodes.ValueNode getDestinationPosition();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 134
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public org.graalvm.compiler.nodes.ValueNode getLength();
    descriptor: ()Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 138
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.length:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public jdk.vm.ci.meta.JavaKind getElementKind();
    descriptor: ()Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 142
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  private org.graalvm.compiler.nodes.ValueNode computeBase(org.graalvm.compiler.nodes.spi.LoweringTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=10, args_size=4
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        start local 2 // org.graalvm.compiler.nodes.ValueNode base
        start local 3 // org.graalvm.compiler.nodes.ValueNode pos
         0: .line 146
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.GetObjectAddressNode
            dup
            aload 2 /* base */
            invokespecial org.graalvm.compiler.nodes.GetObjectAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 4 /* basePtr */
        start local 4 // org.graalvm.compiler.nodes.FixedWithNextNode basePtr
         1: .line 147
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            aload 4 /* basePtr */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         2: .line 148
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.wordJavaKind:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 5 /* wordStamp */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp wordStamp
         3: .line 149
            aload 3 /* pos */
            aload 5 /* wordStamp */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.IntegerConvertNode.convert:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* wordPos */
        start local 6 // org.graalvm.compiler.nodes.ValueNode wordPos
         4: .line 150
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            invokestatic jdk.vm.ci.code.CodeUtil.log2:(I)I
            istore 7 /* shift */
        start local 7 // int shift
         5: .line 151
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.calc.LeftShiftNode
            dup
            aload 6 /* wordPos */
            iload 7 /* shift */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forInt:(ILorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.LeftShiftNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 8 /* scaledIndex */
        start local 8 // org.graalvm.compiler.nodes.ValueNode scaledIndex
         6: .line 152
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.calc.AddNode
            dup
            aload 8 /* scaledIndex */
            aload 5 /* wordStamp */
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 9 /* offset */
        start local 9 // org.graalvm.compiler.nodes.ValueNode offset
         7: .line 153
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            dup
            aload 4 /* basePtr */
            aload 9 /* offset */
            invokespecial org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 9 // org.graalvm.compiler.nodes.ValueNode offset
        end local 8 // org.graalvm.compiler.nodes.ValueNode scaledIndex
        end local 7 // int shift
        end local 6 // org.graalvm.compiler.nodes.ValueNode wordPos
        end local 5 // org.graalvm.compiler.core.common.type.Stamp wordStamp
        end local 4 // org.graalvm.compiler.nodes.FixedWithNextNode basePtr
        end local 3 // org.graalvm.compiler.nodes.ValueNode pos
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    8     1         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0    8     2         base  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3          pos  Lorg/graalvm/compiler/nodes/ValueNode;
            1    8     4      basePtr  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            3    8     5    wordStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            4    8     6      wordPos  Lorg/graalvm/compiler/nodes/ValueNode;
            5    8     7        shift  I
            6    8     8  scaledIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            7    8     9       offset  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      tool  
      base  
      pos   

  public void lower(org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 158
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtDeopts:()Z
            ifeq 14
         1: .line 159
            aload 0 /* this */
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.updateAlignedDisjoint:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
         2: .line 160
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.foreignCalls:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isAligned:()Z
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isDisjoint:()Z
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isUninitialized:()Z
         3: .line 161
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
         4: .line 160
            invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls.lookupArraycopyDescriptor:(Ljdk/vm/ci/meta/JavaKind;ZZZZ)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            astore 2 /* desc */
        start local 2 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor desc
         5: .line 162
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         6: .line 163
            aload 0 /* this */
            aload 1 /* tool */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getSource:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getSourcePosition:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.computeBase:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* srcAddr */
        start local 4 // org.graalvm.compiler.nodes.ValueNode srcAddr
         7: .line 164
            aload 0 /* this */
            aload 1 /* tool */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getDestination:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getDestinationPosition:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.computeBase:(Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* destAddr */
        start local 5 // org.graalvm.compiler.nodes.ValueNode destAddr
         8: .line 165
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* len */
        start local 6 // org.graalvm.compiler.nodes.ValueNode len
         9: .line 166
            aload 6 /* len */
            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;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 11
        10: .line 167
            aload 6 /* len */
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.IntegerConvertNode.convert:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* len */
        11: .line 169
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode org.graalvm.compiler.nodes.spi.LoweringTool org.graalvm.compiler.core.common.spi.ForeignCallDescriptor org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* graph */
            new org.graalvm.compiler.nodes.extended.ForeignCallNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.foreignCalls:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            aload 2 /* desc */
            iconst_3
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 4 /* srcAddr */
            aastore
            dup
            iconst_1
            aload 5 /* destAddr */
            aastore
            dup
            iconst_2
            aload 6 /* len */
            aastore
            invokespecial org.graalvm.compiler.nodes.extended.ForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.ForeignCallNode
            astore 7 /* call */
        start local 7 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
        12: .line 170
            aload 7 /* call */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.extended.ForeignCallNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        13: .line 171
            aload 3 /* graph */
            aload 0 /* this */
            aload 7 /* call */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 7 // org.graalvm.compiler.nodes.extended.ForeignCallNode call
        end local 6 // org.graalvm.compiler.nodes.ValueNode len
        end local 5 // org.graalvm.compiler.nodes.ValueNode destAddr
        end local 4 // org.graalvm.compiler.nodes.ValueNode srcAddr
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor desc
        14: .line 173
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode org.graalvm.compiler.nodes.spi.LoweringTool
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0   15     1      tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            5   14     2      desc  Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            6   14     3     graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            7   14     4   srcAddr  Lorg/graalvm/compiler/nodes/ValueNode;
            8   14     5  destAddr  Lorg/graalvm/compiler/nodes/ValueNode;
            9   14     6       len  Lorg/graalvm/compiler/nodes/ValueNode;
           12   14     7      call  Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
    MethodParameters:
      Name  Flags
      tool  

  public org.graalvm.compiler.nodes.memory.MemoryNode getLastLocationAccess();
    descriptor: ()Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 177
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public void setLastLocationAccess(org.graalvm.compiler.nodes.memory.MemoryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.nodes.memory.MemoryNode lla
         0: .line 182
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            aload 1 /* lla */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.updateUsagesInterface:(Lorg/graalvm/compiler/graph/NodeInterface;Lorg/graalvm/compiler/graph/NodeInterface;)V
         1: .line 183
            aload 0 /* this */
            aload 1 /* lla */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
         2: .line 184
            return
        end local 1 // org.graalvm.compiler.nodes.memory.MemoryNode lla
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    3     1   lla  Lorg/graalvm/compiler/nodes/memory/MemoryNode;
    MethodParameters:
      Name  Flags
      lla   

  public jdk.internal.vm.compiler.word.LocationIdentity getLocationIdentity();
    descriptor: ()Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 188
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public jdk.internal.vm.compiler.word.LocationIdentity getKilledLocationIdentity();
    descriptor: ()Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 193
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  private static native void arraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, boolean, boolean, boolean, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZI)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(hasSideEffect = true)
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      7:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      8:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      9:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
               Name  Flags
      src            
      srcPos         
      dest           
      destPos        
      length         
      elementKind    
      aligned        
      disjoint       
      uninitialized  
      heapWordSize   

  private static native void arraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, jdk.internal.vm.compiler.word.LocationIdentity, boolean, boolean, boolean, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(hasSideEffect = true)
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      7:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      8:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      9:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      10:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
                  Name  Flags
      src               
      srcPos            
      dest              
      destPos           
      length            
      elementKind       
      locationIdentity  
      aligned           
      disjoint          
      uninitialized     
      heapWordSize      

  public static void arraycopyObjectKillsAny(java.lang.Object, int, java.lang.Object, int, int, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;III)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=6
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // int heapWordSize
         0: .line 206
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            iconst_0
            iconst_0
            iconst_0
            iload 5 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 207
            return
        end local 5 // int heapWordSize
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           src  Ljava/lang/Object;
            0    2     1        srcPos  I
            0    2     2          dest  Ljava/lang/Object;
            0    2     3       destPos  I
            0    2     4        length  I
            0    2     5  heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      heapWordSize  

  public static void arraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, jdk.internal.vm.compiler.word.LocationIdentity, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=8, args_size=8
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // jdk.vm.ci.meta.JavaKind elementKind
        start local 6 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        start local 7 // int heapWordSize
         0: .line 211
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            aload 6 /* locationIdentity */
            iconst_0
            iconst_0
            iconst_0
            iload 7 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 212
            return
        end local 7 // int heapWordSize
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity locationIdentity
        end local 5 // jdk.vm.ci.meta.JavaKind elementKind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0               src  Ljava/lang/Object;
            0    2     1            srcPos  I
            0    2     2              dest  Ljava/lang/Object;
            0    2     3           destPos  I
            0    2     4            length  I
            0    2     5       elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     6  locationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0    2     7      heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      7:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
                  Name  Flags
      src               
      srcPos            
      dest              
      destPos           
      length            
      elementKind       
      locationIdentity  
      heapWordSize      

  public static void disjointArraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=7
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // jdk.vm.ci.meta.JavaKind elementKind
        start local 6 // int heapWordSize
         0: .line 215
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            iconst_0
            iconst_1
            iconst_0
            iload 6 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZI)V
         1: .line 216
            return
        end local 6 // int heapWordSize
        end local 5 // jdk.vm.ci.meta.JavaKind elementKind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           src  Ljava/lang/Object;
            0    2     1        srcPos  I
            0    2     2          dest  Ljava/lang/Object;
            0    2     3       destPos  I
            0    2     4        length  I
            0    2     5   elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     6  heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      elementKind   
      heapWordSize  

  public static void disjointArraycopyKillsAny(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=7, args_size=7
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // jdk.vm.ci.meta.JavaKind elementKind
        start local 6 // int heapWordSize
         0: .line 219
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            iconst_0
            iconst_1
            iconst_0
            iload 6 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 220
            return
        end local 6 // int heapWordSize
        end local 5 // jdk.vm.ci.meta.JavaKind elementKind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           src  Ljava/lang/Object;
            0    2     1        srcPos  I
            0    2     2          dest  Ljava/lang/Object;
            0    2     3       destPos  I
            0    2     4        length  I
            0    2     5   elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     6  heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      elementKind   
      heapWordSize  

  public static void disjointUninitializedArraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=7
        start local 0 // java.lang.Object src
        start local 1 // int srcPos
        start local 2 // java.lang.Object dest
        start local 3 // int destPos
        start local 4 // int length
        start local 5 // jdk.vm.ci.meta.JavaKind elementKind
        start local 6 // int heapWordSize
         0: .line 224
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            iconst_0
            iconst_1
            iconst_1
            iload 6 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZI)V
         1: .line 225
            return
        end local 6 // int heapWordSize
        end local 5 // jdk.vm.ci.meta.JavaKind elementKind
        end local 4 // int length
        end local 3 // int destPos
        end local 2 // java.lang.Object dest
        end local 1 // int srcPos
        end local 0 // java.lang.Object src
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           src  Ljava/lang/Object;
            0    2     1        srcPos  I
            0    2     2          dest  Ljava/lang/Object;
            0    2     3       destPos  I
            0    2     4        length  I
            0    2     5   elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     6  heapWordSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      6:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      elementKind   
      heapWordSize  

  public boolean isAligned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 228
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
            ireturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public boolean isDisjoint();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 232
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
            ireturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  public boolean isUninitialized();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 236
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.uninitialized:Z
            ireturn
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;

  boolean isHeapWordAligned(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.JavaConstant, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/JavaKind;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 2 // jdk.vm.ci.meta.JavaConstant value
        start local 3 // jdk.vm.ci.meta.JavaKind kind
         0: .line 240
            aload 1 /* metaAccess */
            aload 3 /* kind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            aload 2 /* value */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            i2l
            aload 1 /* metaAccess */
            aload 3 /* kind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            i2l
            lmul
            ladd
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.heapWordSize:I
            i2l
            lrem
            lconst_0
            lcmp
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        end local 2 // jdk.vm.ci.meta.JavaConstant value
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    2     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    2     2       value  Ljdk/vm/ci/meta/JavaConstant;
            0    2     3        kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
            Name  Flags
      metaAccess  
      value       
      kind        

  public void updateAlignedDisjoint(jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 244
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            astore 2 /* componentKind */
        start local 2 // jdk.vm.ci.meta.JavaKind componentKind
         1: .line 245
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 3
         2: .line 247
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
         3: .line 249
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.srcPos: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;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 3 /* constantSrc */
        start local 3 // jdk.vm.ci.meta.PrimitiveConstant constantSrc
         4: .line 250
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.destPos: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;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 4 /* constantDst */
        start local 4 // jdk.vm.ci.meta.PrimitiveConstant constantDst
         5: .line 251
            aload 3 /* constantSrc */
            ifnull 12
            aload 4 /* constantDst */
            ifnull 12
         6: .line 252
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
            ifne 10
         7: .line 253
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* metaAccess */
            aload 3 /* constantSrc */
            aload 2 /* componentKind */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isHeapWordAligned:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/JavaKind;)Z
            ifeq 8
            aload 0 /* this */
            aload 1 /* metaAccess */
            aload 4 /* constantDst */
            aload 2 /* componentKind */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isHeapWordAligned:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/JavaKind;)Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.PrimitiveConstant jdk.vm.ci.meta.PrimitiveConstant
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode
         8: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.PrimitiveConstant jdk.vm.ci.meta.PrimitiveConstant
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode int
         9: putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
        10: .line 255
      StackMap locals:
      StackMap stack:
            aload 3 /* constantSrc */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asInt:()I
            aload 4 /* constantDst */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asInt:()I
            if_icmplt 12
        11: .line 257
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
        12: .line 260
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.vm.ci.meta.PrimitiveConstant constantDst
        end local 3 // jdk.vm.ci.meta.PrimitiveConstant constantSrc
        end local 2 // jdk.vm.ci.meta.JavaKind componentKind
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0   13     1     metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1   13     2  componentKind  Ljdk/vm/ci/meta/JavaKind;
            4   13     3    constantSrc  Ljdk/vm/ci/meta/PrimitiveConstant;
            5   13     4    constantDst  Ljdk/vm/ci/meta/PrimitiveConstant;
    MethodParameters:
            Name  Flags
      metaAccess  

  public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
         0: .line 264
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.isDefaultForKind:()Z
            ifeq 4
         1: .line 265
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            ifnull 3
         2: .line 266
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
         3: .line 268
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    5     1  tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
    MethodParameters:
      Name  Flags
      tool  
}
SourceFile: "ArrayCopyCallNode.java"
InnerClasses:
  public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
  public abstract InjectedNodeParameter = org.graalvm.compiler.graph.Node$InjectedNodeParameter of org.graalvm.compiler.graph.Node
  public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  public abstract OptionalInput = org.graalvm.compiler.graph.Node$OptionalInput of org.graalvm.compiler.graph.Node
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract Single = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(allowedUsageTypes = {org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;}, cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeSize;)