public final class org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode extends org.graalvm.compiler.nodes.FixedWithNextNode implements org.graalvm.compiler.nodes.spi.Lowerable, org.graalvm.compiler.nodes.memory.SingleMemoryKill, 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.FixedWithNextNode
{
  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.MemoryKill lastLocationAccess;
    descriptor: Lorg/graalvm/compiler/nodes/memory/MemoryKill;
    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 jdk.internal.vm.compiler.word.LocationIdentity killedLocationIdentity;
    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 70
            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 72
            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=15, 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 98
            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
            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;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 99
            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   

  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, jdk.vm.ci.meta.JavaKind, 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;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;ZZZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=15, locals=15, args_size=15
        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 copyKind
        start local 9 // jdk.vm.ci.meta.JavaKind srcKind
        start local 10 // jdk.vm.ci.meta.JavaKind destKind
        start local 11 // boolean aligned
        start local 12 // boolean disjoint
        start local 13 // boolean uninitialized
        start local 14 // int heapWordSize
         0: .line 104
            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 /* copyKind */
            aload 9 /* srcKind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            aload 10 /* destKind */
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.getArrayLocation:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/internal/vm/compiler/word/LocationIdentity;
            iload 11 /* aligned */
         1: .line 105
            iload 12 /* disjoint */
            iload 13 /* uninitialized */
            iload 14 /* 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;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         2: .line 106
            return
        end local 14 // int heapWordSize
        end local 13 // boolean uninitialized
        end local 12 // boolean disjoint
        end local 11 // boolean aligned
        end local 10 // jdk.vm.ci.meta.JavaKind destKind
        end local 9 // jdk.vm.ci.meta.JavaKind srcKind
        end local 8 // jdk.vm.ci.meta.JavaKind copyKind
        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    3     0           this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0    3     1   foreignCalls  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            0    3     2      wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            0    3     3            src  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     4         srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     5           dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     6        destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     7         length  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     8       copyKind  Ljdk/vm/ci/meta/JavaKind;
            0    3     9        srcKind  Ljdk/vm/ci/meta/JavaKind;
            0    3    10       destKind  Ljdk/vm/ci/meta/JavaKind;
            0    3    11        aligned  Z
            0    3    12       disjoint  Z
            0    3    13  uninitialized  Z
            0    3    14   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:
      13:
    MethodParameters:
               Name  Flags
      foreignCalls   
      wordTypes      
      src            
      srcPos         
      dest           
      destPos        
      length         
      copyKind       
      srcKind        
      destKind       
      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=15, 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 killedLocationIdentity
        start local 10 // boolean aligned
        start local 11 // boolean disjoint
        start local 12 // boolean uninitialized
        start local 13 // int heapWordSize
         0: .line 112
            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
            aload 9 /* killedLocationIdentity */
            iload 10 /* aligned */
            iload 11 /* disjoint */
            iload 12 /* uninitialized */
            iload 13 /* 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;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
         1: .line 113
            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 killedLocationIdentity
        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  killedLocationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0    2    10                 aligned  Z
            0    2    11                disjoint  Z
            0    2    12           uninitialized  Z
            0    2    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             
      killedLocationIdentity  
      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, 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;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZI)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=15, args_size=15
        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 // jdk.internal.vm.compiler.word.LocationIdentity killedLocationIdentity
        start local 11 // boolean aligned
        start local 12 // boolean disjoint
        start local 13 // boolean uninitialized
        start local 14 // int heapWordSize
         0: .line 119
            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.FixedWithNextNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;)V
         1: .line 120
            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 121
      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 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 122
            aload 0 /* this */
            aload 4 /* srcPos */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
         4: .line 123
            aload 0 /* this */
            aload 5 /* dest */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.dest:Lorg/graalvm/compiler/nodes/ValueNode;
         5: .line 124
            aload 0 /* this */
            aload 6 /* destPos */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
         6: .line 125
            aload 0 /* this */
            aload 7 /* length */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.length:Lorg/graalvm/compiler/nodes/ValueNode;
         7: .line 126
            aload 0 /* this */
            aload 8 /* elementKind */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
         8: .line 127
            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 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 128
            aload 0 /* this */
            aload 10 /* killedLocationIdentity */
            ifnull 12
            aload 10 /* killedLocationIdentity */
            goto 13
      StackMap locals:
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode
        12: aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.locationIdentity: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 jdk.internal.vm.compiler.word.LocationIdentity int int int int
      StackMap stack: org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode jdk.internal.vm.compiler.word.LocationIdentity
        13: putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.killedLocationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
        14: .line 129
            aload 0 /* this */
            iload 11 /* aligned */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
        15: .line 130
            aload 0 /* this */
            iload 12 /* disjoint */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
        16: .line 131
            aload 0 /* this */
            iload 13 /* uninitialized */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.uninitialized:Z
        17: .line 132
            aload 0 /* this */
            aload 1 /* foreignCalls */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.foreignCalls:Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
        18: .line 133
            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;
        19: .line 134
            aload 0 /* this */
            iload 14 /* heapWordSize */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.heapWordSize:I
        20: .line 136
            getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getKilledLocationIdentity:()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
            ifeq 21
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isObject:()Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 14 // int heapWordSize
        end local 13 // boolean uninitialized
        end local 12 // boolean disjoint
        end local 11 // boolean aligned
        end local 10 // jdk.internal.vm.compiler.word.LocationIdentity killedLocationIdentity
        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   22     0                    this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0   22     1            foreignCalls  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyForeignCalls;
            0   22     2               wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            0   22     3                     src  Lorg/graalvm/compiler/nodes/ValueNode;
            0   22     4                  srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0   22     5                    dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0   22     6                 destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0   22     7                  length  Lorg/graalvm/compiler/nodes/ValueNode;
            0   22     8             elementKind  Ljdk/vm/ci/meta/JavaKind;
            0   22     9        locationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0   22    10  killedLocationIdentity  Ljdk/internal/vm/compiler/word/LocationIdentity;
            0   22    11                 aligned  Z
            0   22    12                disjoint  Z
            0   22    13           uninitialized  Z
            0   22    14            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:
      13:
    MethodParameters:
                        Name  Flags
      foreignCalls            
      wordTypes               
      src                     
      srcPos                  
      dest                    
      destPos                 
      length                  
      elementKind             
      locationIdentity        
      killedLocationIdentity  
      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 140
            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 144
            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 148
            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 152
            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 156
            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 160
            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 164
            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 165
            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 166
            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 167
            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 168
            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 169
            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 170
            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 171
            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=8, locals=9, 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 176
            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 18
         1: .line 177
            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 178
            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
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.killedLocationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokeinterface org.graalvm.compiler.replacements.arraycopy.ArrayCopyForeignCalls.lookupArraycopyDescriptor:(Ljdk/vm/ci/meta/JavaKind;ZZZLjdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            astore 2 /* desc */
        start local 2 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor desc
         3: .line 179
            getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.$assertionsDisabled:Z
            ifne 5
            aload 2 /* desc */
            ifnonnull 5
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "no descriptor for arraycopy "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", aligned "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isAligned:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", disjoint "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isDisjoint:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", uninit "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.isUninitialized:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", killing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 180
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.killedLocationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 181
      StackMap locals: org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
      StackMap stack:
            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 182
            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 183
            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 184
            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 185
            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 186
            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 188
      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 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/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 189
            aload 7 /* call */
            invokevirtual org.graalvm.compiler.nodes.extended.ForeignCallNode.getKilledLocationIdentities:()[Ljdk/internal/vm/compiler/word/LocationIdentity;
            astore 8 /* callKills */
        start local 8 // jdk.internal.vm.compiler.word.LocationIdentity[] callKills
        13: .line 190
            getstatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.$assertionsDisabled:Z
            ifne 17
            aload 8 /* callKills */
            arraylength
            iconst_1
            if_icmpne 14
            aload 8 /* callKills */
            iconst_0
            aaload
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 17
      StackMap locals: org.graalvm.compiler.nodes.extended.ForeignCallNode jdk.internal.vm.compiler.word.LocationIdentity[]
      StackMap stack:
        14: new java.lang.AssertionError
            dup
            ldc "%s: copy of %s from %s should kill %s, unexpected kills: %s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* call */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            aastore
            dup
            iconst_2
        15: .line 191
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.getKilledLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            aastore
            dup
            iconst_4
            aload 8 /* callKills */
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            aastore
        16: .line 190
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 192
      StackMap locals:
      StackMap stack:
            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 8 // jdk.internal.vm.compiler.word.LocationIdentity[] callKills
        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
        18: .line 194
      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   19     0       this  Lorg/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode;
            0   19     1       tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            3   18     2       desc  Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            6   18     3      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            7   18     4    srcAddr  Lorg/graalvm/compiler/nodes/ValueNode;
            8   18     5   destAddr  Lorg/graalvm/compiler/nodes/ValueNode;
            9   18     6        len  Lorg/graalvm/compiler/nodes/ValueNode;
           12   18     7       call  Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
           13   18     8  callKills  [Ljdk/internal/vm/compiler/word/LocationIdentity;
    MethodParameters:
      Name  Flags
      tool  

  public org.graalvm.compiler.nodes.memory.MemoryKill getLastLocationAccess();
    descriptor: ()Lorg/graalvm/compiler/nodes/memory/MemoryKill;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 198
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            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.MemoryKill);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryKill;)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.MemoryKill lla
         0: .line 203
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            aload 1 /* lla */
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.updateUsagesInterface:(Lorg/graalvm/compiler/graph/NodeInterface;Lorg/graalvm/compiler/graph/NodeInterface;)V
         1: .line 204
            aload 0 /* this */
            aload 1 /* lla */
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryKill;
         2: .line 205
            return
        end local 1 // org.graalvm.compiler.nodes.memory.MemoryKill 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/MemoryKill;
    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 209
            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 214
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.killedLocationIdentity: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.vm.ci.meta.JavaKind, jdk.vm.ci.meta.JavaKind, boolean, boolean, boolean, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Ljdk/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()
      10:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      11:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
               Name  Flags
      src            
      srcPos         
      dest           
      destPos        
      length         
      copyKind       
      srcKind        
      destKind       
      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             
      killedLocationIdentity  
      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 232
            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 233
            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 killedLocationIdentity
        start local 7 // int heapWordSize
         0: .line 238
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            aload 6 /* killedLocationIdentity */
            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 239
            return
        end local 7 // int heapWordSize
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity killedLocationIdentity
        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  killedLocationIdentity  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             
      killedLocationIdentity  
      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 242
            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 243
            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 disjointArraycopy(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 killedLocationIdentity
        start local 7 // int heapWordSize
         0: .line 247
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            aload 6 /* killedLocationIdentity */
            iconst_0
            iconst_1
            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 248
            return
        end local 7 // int heapWordSize
        end local 6 // jdk.internal.vm.compiler.word.LocationIdentity killedLocationIdentity
        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  killedLocationIdentity  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             
      killedLocationIdentity  
      heapWordSize            

  public static void disjointArraycopyDifferentKinds(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.JavaKind, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=9, args_size=9
        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 copyKind
        start local 6 // jdk.vm.ci.meta.JavaKind srcKind
        start local 7 // jdk.vm.ci.meta.JavaKind destKind
        start local 8 // int heapWordSize
         0: .line 256
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* copyKind */
            aload 6 /* srcKind */
            aload 7 /* destKind */
            iconst_0
            iconst_1
            iconst_0
            iload 8 /* heapWordSize */
            invokestatic org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;ZZZI)V
         1: .line 257
            return
        end local 8 // int heapWordSize
        end local 7 // jdk.vm.ci.meta.JavaKind destKind
        end local 6 // jdk.vm.ci.meta.JavaKind srcKind
        end local 5 // jdk.vm.ci.meta.JavaKind copyKind
        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      copyKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     6       srcKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     7      destKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     8  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()
      8:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
              Name  Flags
      src           
      srcPos        
      dest          
      destPos       
      length        
      copyKind      
      srcKind       
      destKind      
      heapWordSize  

  public static void disjointArraycopyKillsInit(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 260
            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.init:()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 261
            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 265
            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 266
            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 269
            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 273
            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 277
            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 281
            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 285
            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 286
            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 288
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
         3: .line 290
      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 291
            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 292
            aload 3 /* constantSrc */
            ifnull 12
            aload 4 /* constantDst */
            ifnull 12
         6: .line 293
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
            ifne 10
         7: .line 294
            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 296
      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 298
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
        12: .line 301
      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 305
            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 306
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            ifnull 3
         2: .line 307
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryKill;
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryKill.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            invokevirtual org.graalvm.compiler.replacements.arraycopy.ArrayCopyCallNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)V
         3: .line 309
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 311
      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
    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;)