public class org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest extends org.graalvm.compiler.replacements.test.MethodSubstitutionTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest
  super_class: org.graalvm.compiler.replacements.test.MethodSubstitutionTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 42
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.test.MethodSubstitutionTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;

  public void testObjectSubstitutions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 46
            new org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA
            dup
            invokespecial org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA.<init>:()V
            astore 1 /* obj */
        start local 1 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA obj
         1: .line 48
            aload 0 /* this */
            ldc "getClass0"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         2: .line 49
            aload 0 /* this */
            ldc "objectHashCode"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         3: .line 51
            aload 0 /* this */
            ldc "getClass0"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "a string"
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         4: .line 52
            aload 0 /* this */
            ldc "objectHashCode"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         5: .line 54
            aload 0 /* this */
            ldc "objectNotify"
            ldc "Object.notify"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         6: .line 55
            aload 0 /* this */
            ldc "objectNotifyAll"
            ldc "Object.notifyAll"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         7: .line 57
            aload 1 /* obj */
            dup
            astore 2
            monitorenter
         8: .line 58
            aload 0 /* this */
            ldc "objectNotify"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         9: .line 59
            aload 0 /* this */
            ldc "objectNotifyAll"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        10: .line 57
            aload 2
            monitorexit
        11: goto 14
      StackMap locals: org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "objectNotify"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        15: .line 63
            aload 0 /* this */
            ldc "objectNotifyAll"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        16: .line 64
            return
        end local 1 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA obj
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
            1   17     1   obj  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest$TestClassA;
      Exception table:
        from    to  target  type
           8    11      12  any
          12    13      12  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static java.lang.Class<?> getClass0();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 68
            aload 0 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      obj   

  public static int objectHashCode(org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA);
    descriptor: (Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest$TestClassA;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA obj
         0: .line 73
            aload 0 /* obj */
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest$TestClassA;
    MethodParameters:
      Name  Flags
      obj   

  public static void objectNotify(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 78
            aload 0 /* obj */
            invokevirtual java.lang.Object.notify:()V
         1: .line 79
            return
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static void objectNotifyAll(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 83
            aload 0 /* obj */
            invokevirtual java.lang.Object.notifyAll:()V
         1: .line 84
            return
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public void testClassSubstitutions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 88
            aload 0 /* this */
            ldc "getModifiers"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         1: .line 89
            aload 0 /* this */
            ldc "isInterface"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         2: .line 90
            aload 0 /* this */
            ldc "isArray"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         3: .line 91
            aload 0 /* this */
            ldc "isPrimitive"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         4: .line 92
            aload 0 /* this */
            ldc "getSuperClass"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         5: .line 93
            aload 0 /* this */
            ldc "getComponentType"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         6: .line 95
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Cloneable;
            aastore
            dup
            iconst_2
            ldc [I
            aastore
            dup
            iconst_3
            ldc [[Ljava/lang/String;
            aastore
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 15
      StackMap locals: org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest top int int java.lang.Class[]
      StackMap stack:
         7: aload 4
            iload 2
            aaload
            astore 1 /* c */
        start local 1 // java.lang.Class c
         8: .line 96
            aload 0 /* this */
            ldc "getModifiers"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         9: .line 97
            aload 0 /* this */
            ldc "isInterface"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        10: .line 98
            aload 0 /* this */
            ldc "isArray"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        11: .line 99
            aload 0 /* this */
            ldc "isPrimitive"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        12: .line 100
            aload 0 /* this */
            ldc "getSuperClass"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        13: .line 101
            aload 0 /* this */
            ldc "getComponentType"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* c */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        end local 1 // java.lang.Class c
        14: .line 95
            iinc 2 1
      StackMap locals:
      StackMap stack:
        15: iload 2
            iload 3
            if_icmplt 7
        16: .line 103
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
            8   14     1     c  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int getModifiers(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 107
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
       Name  Flags
      clazz  

  public static boolean isInterface(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 112
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isInterface:()Z
            ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public static boolean isArray(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 117
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public static boolean isPrimitive(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 122
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public static java.lang.Class<?> getSuperClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 127
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      clazz  

  public static java.lang.Class<?> getComponentType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 132
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      clazz  

  public void testThreadSubstitutions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 137
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.getBackend:()Lorg/graalvm/compiler/core/target/Backend;
            checkcast org.graalvm.compiler.hotspot.HotSpotBackend
            invokevirtual org.graalvm.compiler.hotspot.HotSpotBackend.getRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            astore 1 /* config */
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
         1: .line 138
            aload 0 /* this */
            ldc "currentThread"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         2: .line 139
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.osThreadInterruptedOffset:I
            ldc 2147483647
            if_icmpeq 5
         3: .line 140
            aload 0 /* this */
            ldc "threadIsInterrupted"
            ldc "isInterrupted"
            iconst_1
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/IfNode;
            aastore
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.assertInGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;[Ljava/lang/Class;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         4: .line 141
            aload 0 /* this */
            ldc "threadInterrupted"
            ldc "isInterrupted"
            iconst_1
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/IfNode;
            aastore
            invokestatic org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.assertInGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;[Ljava/lang/Class;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         5: .line 144
      StackMap locals: org.graalvm.compiler.hotspot.GraalHotSpotVMConfig
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 2 /* currentThread */
        start local 2 // java.lang.Thread currentThread
         6: .line 145
            aload 0 /* this */
            ldc "currentThread"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* currentThread */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         7: .line 146
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.osThreadInterruptedOffset:I
            ldc 2147483647
            if_icmpeq 9
         8: .line 147
            aload 0 /* this */
            ldc "threadIsInterrupted"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* currentThread */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         9: .line 149
      StackMap locals: java.lang.Thread
      StackMap stack:
            return
        end local 2 // java.lang.Thread currentThread
        end local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
            1   10     1         config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            6   10     2  currentThread  Ljava/lang/Thread;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static boolean currentThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Thread other
         0: .line 153
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* other */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Thread other
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  other  Ljava/lang/Thread;
    MethodParameters:
       Name  Flags
      other  

  public static boolean threadIsInterrupted(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Thread thread
         0: .line 158
            aload 0 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ireturn
        end local 0 // java.lang.Thread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  thread  Ljava/lang/Thread;
    MethodParameters:
        Name  Flags
      thread  

  public static boolean threadInterrupted();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 163
            invokestatic java.lang.Thread.interrupted:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void testSystemSubstitutions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 168
            aload 0 /* this */
            ldc "systemTime"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         1: .line 169
            aload 0 /* this */
            ldc "systemIdentityHashCode"
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.testGraph:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            pop
         2: .line 171
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            iconst_5
            newarray 10
            aastore
            dup
            iconst_2
            iconst_2
            anewarray java.lang.String[]
            aastore
            dup
            iconst_3
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            aastore
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 6
      StackMap locals: org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest top int int java.lang.Object[]
      StackMap stack:
         3: aload 4
            iload 2
            aaload
            astore 1 /* o */
        start local 1 // java.lang.Object o
         4: .line 172
            aload 0 /* this */
            ldc "systemIdentityHashCode"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* o */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        end local 1 // java.lang.Object o
         5: .line 171
            iinc 2 1
      StackMap locals:
      StackMap stack:
         6: iload 2
            iload 3
            if_icmplt 3
         7: .line 174
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
            4    5     1     o  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static long systemTime();
    descriptor: ()J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 178
            invokestatic java.lang.System.currentTimeMillis:()J
            invokestatic java.lang.System.nanoTime:()J
            ladd
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int systemIdentityHashCode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 183
            aload 0 /* obj */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static java.lang.String testCallSiteGetTargetSnippet(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=3, args_size=1
        start local 0 // int i
         0: .line 191
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            astore 2 /* lookup */
        start local 2 // java.lang.invoke.MethodHandles$Lookup lookup
         1: .line 192
            iload 0 /* i */
            tableswitch { // 1 - 1
                    1: 2
              default: 4
          }
         2: .line 194
      StackMap locals: int top java.lang.invoke.MethodHandles$Lookup
      StackMap stack:
            new java.lang.invoke.ConstantCallSite
            dup
            aload 2 /* lookup */
            ldc Ljava/lang/String;
            ldc "replace"
            ldc Ljava/lang/String;
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            aastore
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokespecial java.lang.invoke.ConstantCallSite.<init>:(Ljava/lang/invoke/MethodHandle;)V
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.ConstantCallSite
            astore 1 /* site */
        start local 1 // java.lang.invoke.ConstantCallSite site
         3: .line 195
            goto 5
        end local 1 // java.lang.invoke.ConstantCallSite site
         4: .line 197
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.ConstantCallSite
            dup
            aload 2 /* lookup */
            ldc Ljava/util/Arrays;
            ldc "asList"
            ldc Ljava/util/List;
            ldc [Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokespecial java.lang.invoke.ConstantCallSite.<init>:(Ljava/lang/invoke/MethodHandle;)V
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.ConstantCallSite
            astore 1 /* site */
        start local 1 // java.lang.invoke.ConstantCallSite site
         5: .line 199
      StackMap locals: int java.lang.invoke.ConstantCallSite java.lang.invoke.MethodHandles$Lookup
      StackMap stack:
            aload 1 /* site */
            invokevirtual java.lang.invoke.ConstantCallSite.getTarget:()Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 1 // java.lang.invoke.ConstantCallSite site
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0       i  I
            3    4     1    site  Ljava/lang/invoke/ConstantCallSite;
            5    6     1    site  Ljava/lang/invoke/ConstantCallSite;
            1    6     2  lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      i     

  public static java.lang.String testCastSnippet(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // int i
        start local 1 // java.lang.Object obj
         0: .line 204
            iload 0 /* i */
            tableswitch { // 1 - 1
                    1: 1
              default: 3
          }
         1: .line 206
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Number;
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* c */
        start local 2 // java.lang.Class c
         2: .line 207
            goto 4
        end local 2 // java.lang.Class c
         3: .line 209
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Integer;
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* c */
        start local 2 // java.lang.Class c
         4: .line 212
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* c */
            aload 1 /* obj */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.Class c
        end local 1 // java.lang.Object obj
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     i  I
            0    5     1   obj  Ljava/lang/Object;
            2    3     2     c  Ljava/lang/Class<*>;
            4    5     2     c  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      i     
      obj   

  public static java.lang.String testGetClassSnippet(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int i
         0: .line 217
            iload 0 /* i */
            tableswitch { // 1 - 1
                    1: 1
              default: 3
          }
         1: .line 219
      StackMap locals:
      StackMap stack:
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* c */
        start local 1 // java.lang.Object c
         2: .line 220
            goto 4
        end local 1 // java.lang.Object c
         3: .line 222
      StackMap locals:
      StackMap stack:
            ldc "TEST"
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* c */
        start local 1 // java.lang.Object c
         4: .line 225
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* c */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object c
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     i  I
            2    3     1     c  Ljava/lang/Object;
            4    5     1     c  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      i     

  public void testCallSiteGetTarget();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 233
            aload 0 /* this */
            ldc "testCallSiteGetTargetSnippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 234
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCast();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 241
            aload 0 /* this */
            ldc "testCastSnippet"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 242
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testGetClass();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
         0: .line 249
            aload 0 /* this */
            ldc "testGetClassSnippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 250
            return
        end local 0 // org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "HotSpotMethodSubstitutionTest.java"
NestMembers:
  org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  private TestClassA = org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest$TestClassA of org.graalvm.compiler.hotspot.test.HotSpotMethodSubstitutionTest