public class jdk.vm.ci.hotspot.HotSpotVMConfigAccess
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotVMConfigAccess
  super_class: java.lang.Object
{
  private final jdk.vm.ci.hotspot.HotSpotVMConfigStore store;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
    flags: (0x0012) ACC_PRIVATE, 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 33
            ldc Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            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 jdk.vm.ci.hotspot.HotSpotVMConfigAccess.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public jdk.vm.ci.hotspot.HotSpotVMConfigStore getStore();
    descriptor: ()Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
         0: .line 39
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            areturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;

  public long getAddress(java.lang.String, java.lang.Long);
    descriptor: (Ljava/lang/String;Ljava/lang/Long;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Long notPresent
         0: .line 51
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmAddresses:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* entry */
        start local 3 // java.lang.Long entry
         1: .line 52
            aload 3 /* entry */
            ifnonnull 5
         2: .line 53
            aload 2 /* notPresent */
            ifnull 4
         3: .line 54
            aload 2 /* notPresent */
            invokevirtual java.lang.Long.longValue:()J
            lreturn
         4: .line 56
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 0 /* this */
            ldc "address"
            aload 1 /* name */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmFlags:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.missingEntry:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljdk/vm/ci/common/JVMCIError;
            athrow
         5: .line 59
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 3 // java.lang.Long entry
        end local 2 // java.lang.Long notPresent
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    6     1        name  Ljava/lang/String;
            0    6     2  notPresent  Ljava/lang/Long;
            1    6     3       entry  Ljava/lang/Long;
    MethodParameters:
            Name  Flags
      name        
      notPresent  

  public long getAddress(java.lang.String);
    descriptor: (Ljava/lang/String;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
         0: .line 70
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getAddress:(Ljava/lang/String;Ljava/lang/Long;)J
            lreturn
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public <T> T getConstant(java.lang.String, java.lang.Class<T>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
         0: .line 83
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmConstants:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 4 /* c */
        start local 4 // java.lang.Long c
         1: .line 84
            aload 4 /* c */
            ifnonnull 5
         2: .line 85
            aload 3 /* notPresent */
            ifnull 4
         3: .line 86
            aload 3 /* notPresent */
            areturn
         4: .line 88
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 0 /* this */
            ldc "constant"
            aload 1 /* name */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmConstants:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.missingEntry:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljdk/vm/ci/common/JVMCIError;
            athrow
         5: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            aload 1 /* name */
            aload 2 /* type */
            aload 4 /* c */
            aconst_null
            invokestatic jdk.vm.ci.hotspot.HotSpotVMConfigAccess.convertValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Long c
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    6     1        name  Ljava/lang/String;
            0    6     2        type  Ljava/lang/Class<TT;>;
            0    6     3  notPresent  TT;
            1    6     4           c  Ljava/lang/Long;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  

  public <T> T getConstant(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 102
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getConstant:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1  name  Ljava/lang/String;
            0    1     2  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      name  
      type  

  public <T> T getFieldOffset(java.lang.String, java.lang.Class<T>, java.lang.String, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.String cppType
        start local 4 // java.lang.Object notPresent
         0: .line 117
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aload 4 /* notPresent */
            aload 3 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldOffset0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object notPresent
        end local 3 // java.lang.String cppType
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2        type  Ljava/lang/Class<TT;>;
            0    1     3     cppType  Ljava/lang/String;
            0    1     4  notPresent  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljava/lang/String;TT;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      cppType     
      notPresent  

  public <T> T getFieldOffset(java.lang.String, java.lang.Class<T>, T, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
        start local 4 // java.lang.String[] outCppType
         0: .line 133
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aload 3 /* notPresent */
            aconst_null
            aload 4 /* outCppType */
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldOffset0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.String[] outCppType
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2        type  Ljava/lang/Class<TT;>;
            0    1     3  notPresent  TT;
            0    1     4  outCppType  [Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;[Ljava/lang/String;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  
      outCppType  

  public <T> T getFieldOffset(java.lang.String, java.lang.Class<T>, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.String cppType
         0: .line 147
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            aload 3 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldOffset0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.String cppType
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1     name  Ljava/lang/String;
            0    1     2     type  Ljava/lang/Class<TT;>;
            0    1     3  cppType  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljava/lang/String;)TT;
    MethodParameters:
         Name  Flags
      name     
      type     
      cppType  

  public <T> T getFieldOffset(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 160
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldOffset0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1  name  Ljava/lang/String;
            0    1     2  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      name  
      type  

  private <T> T getFieldOffset0(java.lang.String, java.lang.Class<T>, T, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
        start local 4 // java.lang.String inCppType
        start local 5 // java.lang.String[] outCppType
         0: .line 164
            getstatic jdk.vm.ci.hotspot.HotSpotVMConfigAccess.$assertionsDisabled:Z
            ifne 1
            aload 2 /* type */
            ldc Ljava/lang/Integer;
            if_acmpeq 1
            aload 2 /* type */
            ldc Ljava/lang/Long;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* inCppType */
            aload 3 /* notPresent */
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Class java.lang.Object java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String
         2: iconst_0
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Class java.lang.Object java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String int
         3: invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getField:(Ljava/lang/String;Ljava/lang/String;Z)Ljdk/vm/ci/hotspot/VMField;
            astore 6 /* entry */
        start local 6 // jdk.vm.ci.hotspot.VMField entry
         4: .line 166
            aload 6 /* entry */
            ifnonnull 6
         5: .line 167
            aload 3 /* notPresent */
            areturn
         6: .line 169
      StackMap locals: jdk.vm.ci.hotspot.VMField
      StackMap stack:
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.address:J
            lconst_0
            lcmp
            ifeq 8
         7: .line 170
            new jdk.vm.ci.common.JVMCIError
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot get offset of static field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 172
      StackMap locals:
      StackMap stack:
            aload 5 /* outCppType */
            ifnull 10
         9: .line 173
            aload 5 /* outCppType */
            iconst_0
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.type:Ljava/lang/String;
            aastore
        10: .line 175
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            aload 1 /* name */
            aload 2 /* type */
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.offset:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* inCppType */
            invokestatic jdk.vm.ci.hotspot.HotSpotVMConfigAccess.convertValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // jdk.vm.ci.hotspot.VMField entry
        end local 5 // java.lang.String[] outCppType
        end local 4 // java.lang.String inCppType
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0   11     1        name  Ljava/lang/String;
            0   11     2        type  Ljava/lang/Class<TT;>;
            0   11     3  notPresent  TT;
            0   11     4   inCppType  Ljava/lang/String;
            0   11     5  outCppType  [Ljava/lang/String;
            4   11     6       entry  Ljdk/vm/ci/hotspot/VMField;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;Ljava/lang/String;[Ljava/lang/String;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  
      inCppType   
      outCppType  

  public long getFieldAddress(java.lang.String, java.lang.String, java.lang.Long);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String cppType
        start local 3 // java.lang.Long notPresent
         0: .line 188
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* notPresent */
            aload 2 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldAddress0:(Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;[Ljava/lang/String;)J
            lreturn
        end local 3 // java.lang.Long notPresent
        end local 2 // java.lang.String cppType
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2     cppType  Ljava/lang/String;
            0    1     3  notPresent  Ljava/lang/Long;
    MethodParameters:
            Name  Flags
      name        
      cppType     
      notPresent  

  public long getFieldAddress(java.lang.String, java.lang.Long, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Long;[Ljava/lang/String;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Long notPresent
        start local 3 // java.lang.String[] outCppType
         0: .line 202
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* notPresent */
            aconst_null
            aload 3 /* outCppType */
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldAddress0:(Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;[Ljava/lang/String;)J
            lreturn
        end local 3 // java.lang.String[] outCppType
        end local 2 // java.lang.Long notPresent
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2  notPresent  Ljava/lang/Long;
            0    1     3  outCppType  [Ljava/lang/String;
    MethodParameters:
            Name  Flags
      name        
      notPresent  
      outCppType  

  public long getFieldAddress(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String cppType
         0: .line 214
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 2 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldAddress0:(Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;[Ljava/lang/String;)J
            lreturn
        end local 2 // java.lang.String cppType
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1     name  Ljava/lang/String;
            0    1     2  cppType  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      cppType  

  private long getFieldAddress0(java.lang.String, java.lang.Long, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;[Ljava/lang/String;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Long notPresent
        start local 3 // java.lang.String inCppType
        start local 4 // java.lang.String[] outCppType
         0: .line 218
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* inCppType */
            aload 2 /* notPresent */
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Long java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String
         1: iconst_0
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Long java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String int
         2: invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getField:(Ljava/lang/String;Ljava/lang/String;Z)Ljdk/vm/ci/hotspot/VMField;
            astore 5 /* entry */
        start local 5 // jdk.vm.ci.hotspot.VMField entry
         3: .line 219
            aload 5 /* entry */
            ifnonnull 5
         4: .line 220
            aload 2 /* notPresent */
            invokevirtual java.lang.Long.longValue:()J
            lreturn
         5: .line 222
      StackMap locals: jdk.vm.ci.hotspot.VMField
      StackMap stack:
            aload 5 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.address:J
            lconst_0
            lcmp
            ifne 7
         6: .line 223
            new jdk.vm.ci.common.JVMCIError
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not a static field"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 225
      StackMap locals:
      StackMap stack:
            aload 4 /* outCppType */
            ifnull 9
         8: .line 226
            aload 4 /* outCppType */
            iconst_0
            aload 5 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.type:Ljava/lang/String;
            aastore
         9: .line 228
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.address:J
            lreturn
        end local 5 // jdk.vm.ci.hotspot.VMField entry
        end local 4 // java.lang.String[] outCppType
        end local 3 // java.lang.String inCppType
        end local 2 // java.lang.Long notPresent
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0   10     1        name  Ljava/lang/String;
            0   10     2  notPresent  Ljava/lang/Long;
            0   10     3   inCppType  Ljava/lang/String;
            0   10     4  outCppType  [Ljava/lang/String;
            3   10     5       entry  Ljdk/vm/ci/hotspot/VMField;
    MethodParameters:
            Name  Flags
      name        
      notPresent  
      inCppType   
      outCppType  

  public <T> T getFieldValue(java.lang.String, java.lang.Class<T>, java.lang.String, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.String cppType
        start local 4 // java.lang.Object notPresent
         0: .line 242
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aload 4 /* notPresent */
            aload 3 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldValue0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object notPresent
        end local 3 // java.lang.String cppType
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2        type  Ljava/lang/Class<TT;>;
            0    1     3     cppType  Ljava/lang/String;
            0    1     4  notPresent  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljava/lang/String;TT;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      cppType     
      notPresent  

  public <T> T getFieldValue(java.lang.String, java.lang.Class<T>, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.String cppType
         0: .line 255
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            aload 3 /* cppType */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldValue0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.String cppType
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1     name  Ljava/lang/String;
            0    1     2     type  Ljava/lang/Class<TT;>;
            0    1     3  cppType  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljava/lang/String;)TT;
    MethodParameters:
         Name  Flags
      name     
      type     
      cppType  

  public <T> T getFieldValue(java.lang.String, java.lang.Class<T>, T, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
        start local 4 // java.lang.String[] outCppType
         0: .line 270
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aload 3 /* notPresent */
            aconst_null
            aload 4 /* outCppType */
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldValue0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.String[] outCppType
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1        name  Ljava/lang/String;
            0    1     2        type  Ljava/lang/Class<TT;>;
            0    1     3  notPresent  TT;
            0    1     4  outCppType  [Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;[Ljava/lang/String;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  
      outCppType  

  public <T> T getFieldValue(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 282
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFieldValue0:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1  name  Ljava/lang/String;
            0    1     2  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      name  
      type  

  private <T> T getFieldValue0(java.lang.String, java.lang.Class<T>, T, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
        start local 4 // java.lang.String inCppType
        start local 5 // java.lang.String[] outCppType
         0: .line 286
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* inCppType */
            aload 3 /* notPresent */
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Class java.lang.Object java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String
         1: iconst_0
      StackMap locals: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.Class java.lang.Object java.lang.String java.lang.String[]
      StackMap stack: jdk.vm.ci.hotspot.HotSpotVMConfigAccess java.lang.String java.lang.String int
         2: invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getField:(Ljava/lang/String;Ljava/lang/String;Z)Ljdk/vm/ci/hotspot/VMField;
            astore 6 /* entry */
        start local 6 // jdk.vm.ci.hotspot.VMField entry
         3: .line 287
            aload 6 /* entry */
            ifnonnull 5
         4: .line 288
            aload 3 /* notPresent */
            areturn
         5: .line 290
      StackMap locals: jdk.vm.ci.hotspot.VMField
      StackMap stack:
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.value:Ljava/lang/Object;
            ifnonnull 7
         6: .line 291
            new jdk.vm.ci.common.JVMCIError
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not a static field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 293
      StackMap locals:
      StackMap stack:
            aload 5 /* outCppType */
            ifnull 9
         8: .line 294
            aload 5 /* outCppType */
            iconst_0
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.type:Ljava/lang/String;
            aastore
         9: .line 296
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            aload 1 /* name */
            aload 2 /* type */
            aload 6 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.value:Ljava/lang/Object;
            aload 4 /* inCppType */
            invokestatic jdk.vm.ci.hotspot.HotSpotVMConfigAccess.convertValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // jdk.vm.ci.hotspot.VMField entry
        end local 5 // java.lang.String[] outCppType
        end local 4 // java.lang.String inCppType
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0   10     1        name  Ljava/lang/String;
            0   10     2        type  Ljava/lang/Class<TT;>;
            0   10     3  notPresent  TT;
            0   10     4   inCppType  Ljava/lang/String;
            0   10     5  outCppType  [Ljava/lang/String;
            3   10     6       entry  Ljdk/vm/ci/hotspot/VMField;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;Ljava/lang/String;[Ljava/lang/String;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  
      inCppType   
      outCppType  

  private jdk.vm.ci.hotspot.VMField getField(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljdk/vm/ci/hotspot/VMField;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String cppType
        start local 3 // boolean required
         0: .line 309
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmFields:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.hotspot.VMField
            astore 4 /* entry */
        start local 4 // jdk.vm.ci.hotspot.VMField entry
         1: .line 310
            aload 4 /* entry */
            ifnonnull 5
         2: .line 311
            iload 3 /* required */
            ifne 4
         3: .line 312
            aconst_null
            areturn
         4: .line 314
      StackMap locals: jdk.vm.ci.hotspot.VMField
      StackMap stack:
            aload 0 /* this */
            ldc "field"
            aload 1 /* name */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmFields:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.missingEntry:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljdk/vm/ci/common/JVMCIError;
            athrow
         5: .line 318
      StackMap locals:
      StackMap stack:
            aload 2 /* cppType */
            ifnull 7
            aload 2 /* cppType */
            aload 4 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.type:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 319
            new jdk.vm.ci.common.JVMCIError
            dup
            new java.lang.StringBuilder
            dup
            ldc "expected type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* cppType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " but VM field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* entry */
            getfield jdk.vm.ci.hotspot.VMField.type:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 321
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            areturn
        end local 4 // jdk.vm.ci.hotspot.VMField entry
        end local 3 // boolean required
        end local 2 // java.lang.String cppType
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    8     1      name  Ljava/lang/String;
            0    8     2   cppType  Ljava/lang/String;
            0    8     3  required  Z
            1    8     4     entry  Ljdk/vm/ci/hotspot/VMField;
    MethodParameters:
          Name  Flags
      name      
      cppType   
      required  

  public <T> T getFlag(java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 334
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getFlag:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    1     1  name  Ljava/lang/String;
            0    1     2  type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      name  
      type  

  public <T> T getFlag(java.lang.String, java.lang.Class<T>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
        start local 3 // java.lang.Object notPresent
         0: .line 348
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmFlags:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.hotspot.VMFlag
            astore 4 /* entry */
        start local 4 // jdk.vm.ci.hotspot.VMFlag entry
         1: .line 351
            aload 4 /* entry */
            ifnonnull 9
         2: .line 353
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.compilerToVm:Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 1 /* name */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getFlagValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         3: .line 354
            aload 5 /* value */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.compilerToVm:Ljdk/vm/ci/hotspot/CompilerToVM;
            if_acmpne 7
         4: .line 355
            aload 3 /* notPresent */
            ifnull 6
         5: .line 356
            aload 3 /* notPresent */
            areturn
         6: .line 358
      StackMap locals: jdk.vm.ci.hotspot.VMFlag java.lang.Object
      StackMap stack:
            aload 0 /* this */
            ldc "flag"
            aload 1 /* name */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigStore.vmFlags:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            invokevirtual jdk.vm.ci.hotspot.HotSpotVMConfigAccess.missingEntry:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljdk/vm/ci/common/JVMCIError;
            athrow
         7: .line 360
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* cppType */
        start local 6 // java.lang.String cppType
         8: .line 362
            goto 11
        end local 6 // java.lang.String cppType
        end local 5 // java.lang.Object value
         9: .line 363
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            getfield jdk.vm.ci.hotspot.VMFlag.value:Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
        10: .line 364
            aload 4 /* entry */
            getfield jdk.vm.ci.hotspot.VMFlag.type:Ljava/lang/String;
            astore 6 /* cppType */
        start local 6 // java.lang.String cppType
        11: .line 366
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            aload 2 /* type */
            aload 1 /* name */
            aload 2 /* type */
            aload 5 /* value */
            aload 6 /* cppType */
            invokestatic jdk.vm.ci.hotspot.HotSpotVMConfigAccess.convertValue:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // java.lang.String cppType
        end local 5 // java.lang.Object value
        end local 4 // jdk.vm.ci.hotspot.VMFlag entry
        end local 3 // java.lang.Object notPresent
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0   12     1        name  Ljava/lang/String;
            0   12     2        type  Ljava/lang/Class<TT;>;
            0   12     3  notPresent  TT;
            1   12     4       entry  Ljdk/vm/ci/hotspot/VMFlag;
            3    9     5       value  Ljava/lang/Object;
           10   12     5       value  Ljava/lang/Object;
            8    9     6     cppType  Ljava/lang/String;
           11   12     6     cppType  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;)TT;
    MethodParameters:
            Name  Flags
      name        
      type        
      notPresent  

  private jdk.vm.ci.common.JVMCIError missingEntry(java.lang.String, java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljdk/vm/ci/common/JVMCIError;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // java.lang.String category
        start local 2 // java.lang.String name
        start local 3 // java.util.Set keys
         0: .line 370
            new jdk.vm.ci.common.JVMCIError
            dup
            ldc "expected VM %s not found in %s: %s%nAvailable values:%n    %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* category */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
            aastore
            dup
            iconst_2
            aload 2 /* name */
            aastore
            dup
            iconst_3
         1: .line 371
            aload 3 /* keys */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            new java.lang.StringBuilder
            dup
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
         2: .line 370
            aastore
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.util.Set keys
        end local 2 // java.lang.String name
        end local 1 // java.lang.String category
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    3     1  category  Ljava/lang/String;
            0    3     2      name  Ljava/lang/String;
            0    3     3      keys  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljdk/vm/ci/common/JVMCIError;
    MethodParameters:
          Name  Flags
      category  
      name      
      keys      

  private static <T>  convertValue(java.lang.String, java.lang.Class<T>, , java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.String name
        start local 1 // java.lang.Class toType
        start local 2 // java.lang.Object value
        start local 3 // java.lang.String cppType
         0: .line 375
            aload 1 /* toType */
            ldc Ljava/lang/Boolean;
            if_acmpne 8
         1: .line 376
            aload 2 /* value */
            instanceof java.lang.String
            ifeq 3
         2: .line 377
            aload 2 /* value */
            checkcast java.lang.String
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            areturn
         3: .line 378
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.Boolean
            ifeq 5
         4: .line 379
            aload 2 /* value */
            areturn
         5: .line 380
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.Long
            ifeq 21
         6: .line 381
            aload 2 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            ifeq 7
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         8: .line 383
      StackMap locals:
      StackMap stack:
            aload 1 /* toType */
            ldc Ljava/lang/Byte;
            if_acmpne 11
         9: .line 384
            aload 2 /* value */
            instanceof java.lang.Long
            ifeq 21
        10: .line 385
            aload 2 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2i
            i2b
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            areturn
        11: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* toType */
            ldc Ljava/lang/Integer;
            if_acmpne 16
        12: .line 388
            aload 2 /* value */
            instanceof java.lang.Integer
            ifeq 14
        13: .line 389
            aload 2 /* value */
            areturn
        14: .line 390
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.Long
            ifeq 21
        15: .line 391
            aload 2 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        16: .line 393
      StackMap locals:
      StackMap stack:
            aload 1 /* toType */
            ldc Ljava/lang/String;
            if_acmpne 19
        17: .line 394
            aload 2 /* value */
            ifnull 18
            aload 2 /* value */
            instanceof java.lang.String
            ifeq 21
        18: .line 395
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            areturn
        19: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* toType */
            ldc Ljava/lang/Long;
            if_acmpne 21
        20: .line 398
            aload 2 /* value */
            areturn
        21: .line 401
      StackMap locals:
      StackMap stack:
            new jdk.vm.ci.common.JVMCIError
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot convert "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " of type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* cppType */
            ifnonnull 22
            ldc ""
            goto 23
      StackMap locals: java.lang.String java.lang.Class java.lang.Object java.lang.String
      StackMap stack: new 21 new 21 java.lang.StringBuilder
        22: new java.lang.StringBuilder
            dup
            ldc " ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* cppType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: java.lang.String java.lang.Class java.lang.Object java.lang.String
      StackMap stack: new 21 new 21 java.lang.StringBuilder java.lang.String
        23: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* toType */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String cppType
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Class toType
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     name  Ljava/lang/String;
            0   24     1   toType  Ljava/lang/Class<TT;>;
            0   24     2    value  Ljava/lang/Object;
            0   24     3  cppType  Ljava/lang/String;
    Exceptions:
      throws jdk.vm.ci.common.JVMCIError
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      name     
      toType   
      value    
      cppType  

  public void <init>(jdk.vm.ci.hotspot.HotSpotVMConfigStore);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
        start local 1 // jdk.vm.ci.hotspot.HotSpotVMConfigStore store
         0: .line 406
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 407
            aload 0 /* this */
            aload 1 /* store */
            putfield jdk.vm.ci.hotspot.HotSpotVMConfigAccess.store:Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
         2: .line 408
            return
        end local 1 // jdk.vm.ci.hotspot.HotSpotVMConfigStore store
        end local 0 // jdk.vm.ci.hotspot.HotSpotVMConfigAccess this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/vm/ci/hotspot/HotSpotVMConfigAccess;
            0    3     1  store  Ljdk/vm/ci/hotspot/HotSpotVMConfigStore;
    MethodParameters:
       Name  Flags
      store  
}
SourceFile: "HotSpotVMConfigAccess.java"