public class jdk.vm.ci.runtime.JVMCI
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.vm.ci.runtime.JVMCI
  super_class: java.lang.Object
{
  private static volatile jdk.vm.ci.runtime.JVMCIRuntime runtime;
    descriptor: Ljdk/vm/ci/runtime/JVMCIRuntime;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      jdk.vm.ci.common.NativeImageReinitialize()

  private static boolean initializing;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeVisibleAnnotations: 
      jdk.vm.ci.common.NativeImageReinitialize()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.runtime.JVMCI this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.vm.ci.runtime.JVMCI this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/runtime/JVMCI;

  public static void initialize();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 41
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static native jdk.vm.ci.runtime.JVMCIRuntime initializeRuntime();
    descriptor: ()Ljdk/vm/ci/runtime/JVMCIRuntime;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  public static jdk.vm.ci.runtime.JVMCIRuntime getRuntime();
    descriptor: ()Ljdk/vm/ci/runtime/JVMCIRuntime;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=0
         0: .line 51
            getstatic jdk.vm.ci.runtime.JVMCI.runtime:Ljdk/vm/ci/runtime/JVMCIRuntime;
            astore 0 /* result */
        start local 0 // jdk.vm.ci.runtime.JVMCIRuntime result
         1: .line 52
            aload 0 /* result */
            ifnonnull 27
         2: .line 53
            ldc Ljdk/vm/ci/runtime/JVMCI;
            dup
            astore 1
            monitorenter
         3: .line 54
            getstatic jdk.vm.ci.runtime.JVMCI.runtime:Ljdk/vm/ci/runtime/JVMCIRuntime;
            astore 0 /* result */
         4: .line 55
            aload 0 /* result */
            ifnonnull 23
         5: .line 56
            getstatic jdk.vm.ci.runtime.JVMCI.initializing:Z
            ifeq 8
         6: .line 61
            aload 1
            monitorexit
         7: aconst_null
            areturn
         8: .line 63
      StackMap locals: jdk.vm.ci.runtime.JVMCIRuntime java.lang.Class
      StackMap stack:
            iconst_1
            putstatic jdk.vm.ci.runtime.JVMCI.initializing:Z
         9: .line 65
            invokestatic jdk.vm.ci.runtime.JVMCI.initializeRuntime:()Ljdk/vm/ci/runtime/JVMCIRuntime;
            dup
            astore 0 /* result */
            putstatic jdk.vm.ci.runtime.JVMCI.runtime:Ljdk/vm/ci/runtime/JVMCIRuntime;
        10: .line 66
            goto 22
      StackMap locals:
      StackMap stack: java.lang.UnsatisfiedLinkError
        11: pop
        12: .line 67
            ldc "java.home"
            invokestatic jdk.vm.ci.services.Services.getSavedProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* javaHome */
        start local 2 // java.lang.String javaHome
        13: .line 68
            ldc "java.vm.name"
            invokestatic jdk.vm.ci.services.Services.getSavedProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* vmName */
        start local 3 // java.lang.String vmName
        14: .line 69
            new java.util.Formatter
            dup
            invokespecial java.util.Formatter.<init>:()V
            astore 4 /* errorMessage */
        start local 4 // java.util.Formatter errorMessage
        15: .line 70
            aload 4 /* errorMessage */
            ldc "The VM does not support the JVMCI API.%n"
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
            pop
        16: .line 71
            aload 4 /* errorMessage */
            ldc "Currently used Java home directory is %s.%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* javaHome */
            aastore
            invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
            pop
        17: .line 72
            aload 4 /* errorMessage */
            ldc "Currently used VM configuration is: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* vmName */
            aastore
            invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
            pop
        18: .line 73
            new java.lang.UnsupportedOperationException
            dup
            aload 4 /* errorMessage */
            invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.util.Formatter errorMessage
        end local 3 // java.lang.String vmName
        end local 2 // java.lang.String javaHome
        19: .line 74
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        20: .line 75
            iconst_0
            putstatic jdk.vm.ci.runtime.JVMCI.initializing:Z
        21: .line 76
            aload 5
            athrow
        22: .line 75
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic jdk.vm.ci.runtime.JVMCI.initializing:Z
        23: .line 53
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 1
            monitorexit
        26: athrow
        27: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            areturn
        end local 0 // jdk.vm.ci.runtime.JVMCIRuntime result
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1   28     0        result  Ljdk/vm/ci/runtime/JVMCIRuntime;
           13   19     2      javaHome  Ljava/lang/String;
           14   19     3        vmName  Ljava/lang/String;
           15   19     4  errorMessage  Ljava/util/Formatter;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.UnsatisfiedLinkError
           9    19      19  any
           3     7      25  any
           8    24      25  any
          25    26      25  any
}
SourceFile: "JVMCI.java"