public final class org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode extends org.graalvm.compiler.nodes.memory.AbstractMemoryCheckpoint implements org.graalvm.compiler.nodes.spi.Lowerable, org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single, org.graalvm.compiler.nodes.memory.MemoryAccess, org.graalvm.compiler.graph.spi.Canonicalizable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode
  super_class: org.graalvm.compiler.nodes.memory.AbstractMemoryCheckpoint
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.hotspot.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/hotspot/replacements/arraycopy/ArrayCopyCallNode;>;

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

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

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

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

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

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

  protected final jdk.vm.ci.meta.JavaKind elementKind;
    descriptor: Ljdk/vm/ci/meta/JavaKind;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.internal.vm.compiler.word.LocationIdentity locationIdentity;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected boolean aligned;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean disjoint;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean uninitialized;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected final org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 70
            ldc Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode.$assertionsDisabled:Z
         3: .line 72
            ldc Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider, 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);
    descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;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;ZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=11, args_size=11
        start local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        start local 2 // org.graalvm.compiler.nodes.ValueNode src
        start local 3 // org.graalvm.compiler.nodes.ValueNode srcPos
        start local 4 // org.graalvm.compiler.nodes.ValueNode dest
        start local 5 // org.graalvm.compiler.nodes.ValueNode destPos
        start local 6 // org.graalvm.compiler.nodes.ValueNode length
        start local 7 // jdk.vm.ci.meta.JavaKind elementKind
        start local 8 // boolean aligned
        start local 9 // boolean disjoint
        start local 10 // boolean uninitialized
         0: .line 95
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* src */
            aload 3 /* srcPos */
            aload 4 /* dest */
            aload 5 /* destPos */
            aload 6 /* length */
            aload 7 /* elementKind */
            aconst_null
            iload 8 /* aligned */
            iload 9 /* disjoint */
            iload 10 /* uninitialized */
            invokespecial org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.<init>:(Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;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;ZZZ)V
         1: .line 96
            return
        end local 10 // boolean uninitialized
        end local 9 // boolean disjoint
        end local 8 // boolean aligned
        end local 7 // jdk.vm.ci.meta.JavaKind elementKind
        end local 6 // org.graalvm.compiler.nodes.ValueNode length
        end local 5 // org.graalvm.compiler.nodes.ValueNode destPos
        end local 4 // org.graalvm.compiler.nodes.ValueNode dest
        end local 3 // org.graalvm.compiler.nodes.ValueNode srcPos
        end local 2 // org.graalvm.compiler.nodes.ValueNode src
        end local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode;
            0    2     1        runtime  Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            0    2     2            src  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3         srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4           dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     5        destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     6         length  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     7    elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     8        aligned  Z
            0    2     9       disjoint  Z
            0    2    10  uninitialized  Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      1:
      2:
      3:
      4:
      5:
      6:
      7:
      8:
      9:
    MethodParameters:
               Name  Flags
      runtime        
      src            
      srcPos         
      dest           
      destPos        
      length         
      elementKind    
      aligned        
      disjoint       
      uninitialized  

  public void <init>(org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider, 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);
    descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;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;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=9, args_size=9
        start local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        start local 2 // org.graalvm.compiler.nodes.ValueNode src
        start local 3 // org.graalvm.compiler.nodes.ValueNode srcPos
        start local 4 // org.graalvm.compiler.nodes.ValueNode dest
        start local 5 // org.graalvm.compiler.nodes.ValueNode destPos
        start local 6 // org.graalvm.compiler.nodes.ValueNode length
        start local 7 // jdk.vm.ci.meta.JavaKind elementKind
        start local 8 // boolean disjoint
         0: .line 100
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* src */
            aload 3 /* srcPos */
            aload 4 /* dest */
            aload 5 /* destPos */
            aload 6 /* length */
            aload 7 /* elementKind */
            aconst_null
            iconst_0
            iload 8 /* disjoint */
            iconst_0
            invokespecial org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.<init>:(Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;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;ZZZ)V
         1: .line 101
            return
        end local 8 // boolean disjoint
        end local 7 // jdk.vm.ci.meta.JavaKind elementKind
        end local 6 // org.graalvm.compiler.nodes.ValueNode length
        end local 5 // org.graalvm.compiler.nodes.ValueNode destPos
        end local 4 // org.graalvm.compiler.nodes.ValueNode dest
        end local 3 // org.graalvm.compiler.nodes.ValueNode srcPos
        end local 2 // org.graalvm.compiler.nodes.ValueNode src
        end local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider runtime
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode;
            0    2     1      runtime  Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            0    2     2          src  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3       srcPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4         dest  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     5      destPos  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     6       length  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     7  elementKind  Ljdk/vm/ci/meta/JavaKind;
            0    2     8     disjoint  Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$InjectedNodeParameter()
      1:
      2:
      3:
      4:
      5:
      6:
      7:
    MethodParameters:
             Name  Flags
      runtime      
      src          
      srcPos       
      dest         
      destPos      
      length       
      elementKind  
      disjoint     

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

  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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 121
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.src:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 125
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 129
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.dest:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 133
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 137
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.length:Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 141
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.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 145
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.hotspot.nodes.GetObjectAddressNode
            dup
            aload 2 /* base */
            invokespecial org.graalvm.compiler.hotspot.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 146
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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 147
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.runtime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.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 148
            aload 3 /* pos */
            aload 5 /* wordStamp */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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 149
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.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 150
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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.hotspot.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 151
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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.hotspot.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.hotspot.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 152
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode;
            0    8     1         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            0    8     2         base  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3          pos  Lorg/graalvm/compiler/nodes/ValueNode;
            1    8     4      basePtr  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
            3    8     5    wordStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            4    8     6      wordPos  Lorg/graalvm/compiler/nodes/ValueNode;
            5    8     7        shift  I
            6    8     8  scaledIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            7    8     9       offset  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      tool  
      base  
      pos   

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

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

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

  public jdk.internal.vm.compiler.word.LocationIdentity getLocationIdentity();
    descriptor: ()Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 187
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.locationIdentity:Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic()
    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         
      elementKind    
      aligned        
      disjoint       
      uninitialized  

  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);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic()
    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       
      locationIdentity  
      aligned           
      disjoint          
      uninitialized     

  public static void arraycopyObjectKillsAny(java.lang.Object, int, java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=5, args_size=5
        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
         0: .line 200
            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
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;Ljdk/internal/vm/compiler/word/LocationIdentity;ZZZ)V
         1: .line 201
            return
        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
    MethodParameters:
         Name  Flags
      src      
      srcPos   
      dest     
      destPos  
      length   

  public static void arraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, 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 // jdk.vm.ci.meta.JavaKind elementKind
         0: .line 204
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            iconst_0
            iconst_0
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZ)V
         1: .line 205
            return
        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;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
             Name  Flags
      src          
      srcPos       
      dest         
      destPos      
      length       
      elementKind  

  public static void disjointArraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, 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 // jdk.vm.ci.meta.JavaKind elementKind
         0: .line 208
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            iconst_0
            iconst_1
            iconst_0
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZ)V
         1: .line 209
            return
        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;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
             Name  Flags
      src          
      srcPos       
      dest         
      destPos      
      length       
      elementKind  

  public static void disjointUninitializedArraycopy(java.lang.Object, int, java.lang.Object, int, int, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, 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 // jdk.vm.ci.meta.JavaKind elementKind
         0: .line 212
            aload 0 /* src */
            iload 1 /* srcPos */
            aload 2 /* dest */
            iload 3 /* destPos */
            iload 4 /* length */
            aload 5 /* elementKind */
            iconst_0
            iconst_1
            iconst_1
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;ZZZ)V
         1: .line 213
            return
        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;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
      4:
      5:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
    MethodParameters:
             Name  Flags
      src          
      srcPos       
      dest         
      destPos      
      length       
      elementKind  

  public boolean isAligned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 216
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 220
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
         0: .line 224
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.uninitialized:Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/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.hotspot.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 228
            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.hotspot.replacements.arraycopy.ArrayCopyCallNode.runtime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 232
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.elementKind:Ljdk/vm/ci/meta/JavaKind;
            astore 2 /* componentKind */
        start local 2 // jdk.vm.ci.meta.JavaKind componentKind
         1: .line 233
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.srcPos:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.destPos:Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 3
         2: .line 235
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
         3: .line 237
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.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 238
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.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 239
            aload 3 /* constantSrc */
            ifnull 12
            aload 4 /* constantDst */
            ifnull 12
         6: .line 240
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
            ifne 10
         7: .line 241
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* metaAccess */
            aload 3 /* constantSrc */
            aload 2 /* componentKind */
            invokevirtual org.graalvm.compiler.hotspot.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.hotspot.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.hotspot.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.hotspot.replacements.arraycopy.ArrayCopyCallNode
         8: iconst_0
      StackMap locals: org.graalvm.compiler.hotspot.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.hotspot.replacements.arraycopy.ArrayCopyCallNode int
         9: putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.aligned:Z
        10: .line 243
      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 245
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjoint:Z
        12: .line 248
      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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lorg/graalvm/compiler/hotspot/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.hotspot.replacements.arraycopy.ArrayCopyCallNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
         0: .line 252
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.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.hotspot.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 253
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            ifnull 3
         2: .line 254
            aload 0 /* this */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.lastLocationAccess:Lorg/graalvm/compiler/nodes/memory/MemoryNode;
            invokeinterface org.graalvm.compiler.nodes.memory.MemoryNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
         3: .line 256
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         4: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode;
            0    5     1  tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
    MethodParameters:
      Name  Flags
      tool  
}
SourceFile: "ArrayCopyCallNode.java"
InnerClasses:
  public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
  public abstract InjectedNodeParameter = org.graalvm.compiler.graph.Node$InjectedNodeParameter of org.graalvm.compiler.graph.Node
  public abstract Input = org.graalvm.compiler.graph.Node$Input of org.graalvm.compiler.graph.Node
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  public abstract OptionalInput = org.graalvm.compiler.graph.Node$OptionalInput of org.graalvm.compiler.graph.Node
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract Single = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(allowedUsageTypes = {org.graalvm.compiler.nodeinfo.InputType.Memory:Lorg/graalvm/compiler/nodeinfo/InputType;}, cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeSize;)