public class org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets
  super_class: java.lang.Object
{
  public static final java.util.EnumMap<jdk.vm.ci.meta.JavaKind, java.lang.reflect.Method> arrayCloneMethods;
    descriptor: Ljava/util/EnumMap;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/EnumMap<Ljdk/vm/ci/meta/JavaKind;Ljava/lang/reflect/Method;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 42
            new java.util.EnumMap
            dup
            ldc Ljdk/vm/ci/meta/JavaKind;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
         1: .line 45
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            ldc "booleanArrayClone"
            ldc [Z
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 46
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            ldc "byteArrayClone"
            ldc [B
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 47
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            ldc "charArrayClone"
            ldc [C
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 48
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            ldc "shortArrayClone"
            ldc [S
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 49
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            ldc "intArrayClone"
            ldc [I
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 50
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            ldc "floatArrayClone"
            ldc [F
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 51
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            ldc "longArrayClone"
            ldc [J
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 52
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            ldc "doubleArrayClone"
            ldc [D
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 53
            getstatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.arrayCloneMethods:Ljava/util/EnumMap;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            ldc "objectArrayClone"
            ldc [Ljava/lang/Object;
            invokestatic org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets.getCloneMethod:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 54
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.replacements.ObjectCloneSnippets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/replacements/ObjectCloneSnippets;

  private static java.lang.reflect.Method getCloneMethod(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class param
         0: .line 58
            ldc Lorg/graalvm/compiler/hotspot/replacements/ObjectCloneSnippets;
            aload 0 /* name */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 1 /* param */
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         1: areturn
         2: .line 59
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 60
            new org.graalvm.compiler.debug.GraalError
            dup
            aload 2 /* e */
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Class param
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   name  Ljava/lang/String;
            0    4     1  param  Ljava/lang/Class<*>;
            3    4     2      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
           0     1       2  Class java.lang.NoSuchMethodException
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
    MethodParameters:
       Name  Flags
      name   
      param  

  public static boolean[] booleanArrayClone(boolean[]);
    descriptor: ([Z)[Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // boolean[] src
         0: .line 66
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast boolean[]
            astore 1 /* result */
        start local 1 // boolean[] result
         1: .line 67
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 68
            aload 1 /* result */
            areturn
        end local 1 // boolean[] result
        end local 0 // boolean[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [Z
            1    3     1  result  [Z
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static byte[] byteArrayClone(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // byte[] src
         0: .line 73
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast byte[]
            astore 1 /* result */
        start local 1 // byte[] result
         1: .line 74
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 75
            aload 1 /* result */
            areturn
        end local 1 // byte[] result
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [B
            1    3     1  result  [B
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static short[] shortArrayClone(short[]);
    descriptor: ([S)[S
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // short[] src
         0: .line 80
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast short[]
            astore 1 /* result */
        start local 1 // short[] result
         1: .line 81
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 82
            aload 1 /* result */
            areturn
        end local 1 // short[] result
        end local 0 // short[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [S
            1    3     1  result  [S
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static char[] charArrayClone(char[]);
    descriptor: ([C)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // char[] src
         0: .line 87
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast char[]
            astore 1 /* result */
        start local 1 // char[] result
         1: .line 88
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 89
            aload 1 /* result */
            areturn
        end local 1 // char[] result
        end local 0 // char[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [C
            1    3     1  result  [C
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static int[] intArrayClone(int[]);
    descriptor: ([I)[I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // int[] src
         0: .line 94
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast int[]
            astore 1 /* result */
        start local 1 // int[] result
         1: .line 95
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 96
            aload 1 /* result */
            areturn
        end local 1 // int[] result
        end local 0 // int[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [I
            1    3     1  result  [I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static float[] floatArrayClone(float[]);
    descriptor: ([F)[F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // float[] src
         0: .line 101
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast float[]
            astore 1 /* result */
        start local 1 // float[] result
         1: .line 102
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 103
            aload 1 /* result */
            areturn
        end local 1 // float[] result
        end local 0 // float[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [F
            1    3     1  result  [F
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static long[] longArrayClone(long[]);
    descriptor: ([J)[J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long[] src
         0: .line 108
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast long[]
            astore 1 /* result */
        start local 1 // long[] result
         1: .line 109
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 110
            aload 1 /* result */
            areturn
        end local 1 // long[] result
        end local 0 // long[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [J
            1    3     1  result  [J
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static double[] doubleArrayClone(double[]);
    descriptor: ([D)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // double[] src
         0: .line 115
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aload 0 /* src */
            arraylength
            invokestatic org.graalvm.compiler.nodes.java.NewArrayNode.newUninitializedArray:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast double[]
            astore 1 /* result */
        start local 1 // double[] result
         1: .line 116
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 117
            aload 1 /* result */
            areturn
        end local 1 // double[] result
        end local 0 // double[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [D
            1    3     1  result  [D
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   

  public static java.lang.Object[] objectArrayClone(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.Object[] src
         0: .line 123
            aload 0 /* src */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.guardingNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.nodes.java.DynamicNewArrayNode.newArray:(Ljava/lang/Class;ILjdk/vm/ci/meta/JavaKind;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 1 /* result */
        start local 1 // java.lang.Object[] result
         1: .line 124
            aload 0 /* src */
            iconst_0
            aload 1 /* result */
            iconst_0
            aload 0 /* src */
            arraylength
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.arraycopy.ArrayCopyCallNode.disjointUninitializedArraycopy:(Ljava/lang/Object;ILjava/lang/Object;IILjdk/vm/ci/meta/JavaKind;)V
         2: .line 125
            aload 1 /* result */
            areturn
        end local 1 // java.lang.Object[] result
        end local 0 // java.lang.Object[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     src  [Ljava/lang/Object;
            1    3     1  result  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
      Name  Flags
      src   
}
SourceFile: "ObjectCloneSnippets.java"