final class jdk.vm.ci.hotspot.HotSpotJDKReflection extends jdk.vm.ci.hotspot.HotSpotJVMCIReflection
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotJDKReflection
  super_class: jdk.vm.ci.hotspot.HotSpotJVMCIReflection
{
  private long oopSizeOffset;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            ldc Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            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.HotSpotJDKReflection.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
         0: .line 49
            aload 0 /* this */
            invokespecial jdk.vm.ci.hotspot.HotSpotJVMCIReflection.<init>:()V
            return
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;

  java.lang.Object resolveObject(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         0: .line 53
            aload 1 /* object */
            ifnonnull 2
         1: .line 54
            aconst_null
            areturn
         2: .line 56
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            checkcast jdk.vm.ci.hotspot.DirectHotSpotObjectConstantImpl
            getfield jdk.vm.ci.hotspot.DirectHotSpotObjectConstantImpl.object:Ljava/lang/Object;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    3     1  object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    MethodParameters:
        Name  Flags
      object  

  boolean isInstance(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl, jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        start local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl obj
         0: .line 61
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 3 /* javaMirror */
        start local 3 // java.lang.Class javaMirror
         1: .line 62
            aload 0 /* this */
            aload 2 /* obj */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         2: .line 63
            aload 3 /* javaMirror */
            aload 4 /* value */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ireturn
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Class javaMirror
        end local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl obj
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    3     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            0    3     2         obj  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            1    3     3  javaMirror  Ljava/lang/Class<*>;
            2    3     4       value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      holder  
      obj     

  boolean isAssignableFrom(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl, jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        start local 2 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl otherType
         0: .line 68
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 3 /* javaMirror */
        start local 3 // java.lang.Class javaMirror
         1: .line 69
            aload 3 /* javaMirror */
            aload 0 /* this */
            aload 2 /* otherType */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
        end local 3 // java.lang.Class javaMirror
        end local 2 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl otherType
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            0    2     2   otherType  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     3  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      holder     
      otherType  

  java.lang.annotation.Annotation[] getAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 75
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 2 /* javaMirror */
        start local 2 // java.lang.Class javaMirror
         1: .line 76
            aload 2 /* javaMirror */
            invokevirtual java.lang.Class.getAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class javaMirror
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     2  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  java.lang.annotation.Annotation[] getDeclaredAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 81
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 2 /* javaMirror */
        start local 2 // java.lang.Class javaMirror
         1: .line 82
            aload 2 /* javaMirror */
            invokevirtual java.lang.Class.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class javaMirror
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     2  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  <T extends java.lang.annotation.Annotation> T getAnnotation(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl, java.lang.Class<T>);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        start local 2 // java.lang.Class annotationClass
         0: .line 87
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 3 /* javaMirror */
        start local 3 // java.lang.Class javaMirror
         1: .line 88
            aload 3 /* javaMirror */
            aload 2 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 3 // java.lang.Class javaMirror
        end local 2 // java.lang.Class annotationClass
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1           holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            0    2     2  annotationClass  Ljava/lang/Class<TT;>;
            1    2     3       javaMirror  Ljava/lang/Class<*>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      holder           
      annotationClass  

  boolean isLocalClass(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 93
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 2 /* javaMirror */
        start local 2 // java.lang.Class javaMirror
         1: .line 94
            aload 2 /* javaMirror */
            invokevirtual java.lang.Class.isLocalClass:()Z
            ireturn
        end local 2 // java.lang.Class javaMirror
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     2  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  boolean isMemberClass(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 99
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 2 /* javaMirror */
        start local 2 // java.lang.Class javaMirror
         1: .line 100
            aload 2 /* javaMirror */
            invokevirtual java.lang.Class.isMemberClass:()Z
            ireturn
        end local 2 // java.lang.Class javaMirror
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     2  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  jdk.vm.ci.hotspot.HotSpotResolvedObjectType getEnclosingClass(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 105
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 2 /* javaMirror */
        start local 2 // java.lang.Class javaMirror
         1: .line 106
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 2 /* javaMirror */
            invokevirtual java.lang.Class.getEnclosingClass:()Ljava/lang/Class;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.fromClass:(Ljava/lang/Class;)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            areturn
        end local 2 // java.lang.Class javaMirror
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            1    2     2  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl, jdk.vm.ci.hotspot.HotSpotResolvedJavaField, boolean);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Z)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        start local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        start local 3 // boolean isVolatile
         0: .line 111
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            astore 4 /* javaMirror */
        start local 4 // java.lang.Class javaMirror
         1: .line 112
            aload 0 /* this */
            aload 2 /* field */
            aload 4 /* javaMirror */
            iload 3 /* isVolatile */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;Z)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Class javaMirror
        end local 3 // boolean isVolatile
        end local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            0    2     2       field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            0    2     3  isVolatile  Z
            1    2     4  javaMirror  Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      holder      
      field       
      isVolatile  

  jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, jdk.vm.ci.hotspot.HotSpotResolvedJavaField, boolean);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Z)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        start local 3 // boolean isVolatile
         0: .line 117
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         1: .line 118
            aload 0 /* this */
            aload 2 /* field */
            aload 4 /* value */
            iload 3 /* isVolatile */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;Z)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Object value
        end local 3 // boolean isVolatile
        end local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    2     2       field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            0    2     3  isVolatile  Z
            1    2     4       value  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      object      
      field       
      isVolatile  

  boolean equals(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl a
        start local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl b
         0: .line 123
            aload 0 /* this */
            aload 1 /* a */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* b */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            if_acmpne 1
            aload 1 /* a */
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.isCompressed:()Z
            aload 2 /* b */
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.isCompressed:()Z
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl b
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl a
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1     a  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    2     2     b  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    MethodParameters:
      Name  Flags
      a     
      b     

  jdk.vm.ci.meta.JavaConstant getJavaMirror(jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType holder
         0: .line 128
            aload 1 /* holder */
            getfield jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType.mirror:Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  holder  Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;
    MethodParameters:
        Name  Flags
      holder  

  jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] getParameters(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)[Ljdk/vm/ci/meta/ResolvedJavaMethod$Parameter;
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
         0: .line 133
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            invokevirtual java.lang.reflect.Executable.getParameters:()[Ljava/lang/reflect/Parameter;
            astore 2 /* javaParameters */
        start local 2 // java.lang.reflect.Parameter[] javaParameters
         1: .line 134
            aload 2 /* javaParameters */
            arraylength
            anewarray jdk.vm.ci.meta.ResolvedJavaMethod$Parameter
            astore 3 /* res */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] res
         2: .line 135
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 10
         4: .line 136
      StackMap locals: java.lang.reflect.Parameter[] jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] int
      StackMap stack:
            aload 2 /* javaParameters */
            iload 4 /* i */
            aaload
            astore 5 /* src */
        start local 5 // java.lang.reflect.Parameter src
         5: .line 137
            aload 5 /* src */
            invokevirtual java.lang.reflect.Parameter.isNamePresent:()Z
            ifeq 6
            aload 5 /* src */
            invokevirtual java.lang.reflect.Parameter.getName:()Ljava/lang/String;
            goto 7
      StackMap locals: java.lang.reflect.Parameter
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 6 /* paramName */
        start local 6 // java.lang.String paramName
         8: .line 138
            aload 3 /* res */
            iload 4 /* i */
            new jdk.vm.ci.meta.ResolvedJavaMethod$Parameter
            dup
            aload 6 /* paramName */
            aload 5 /* src */
            invokevirtual java.lang.reflect.Parameter.getModifiers:()I
            aload 1 /* javaMethod */
            iload 4 /* i */
            invokespecial jdk.vm.ci.meta.ResolvedJavaMethod$Parameter.<init>:(Ljava/lang/String;ILjdk/vm/ci/meta/ResolvedJavaMethod;I)V
            aastore
        end local 6 // java.lang.String paramName
        end local 5 // java.lang.reflect.Parameter src
         9: .line 135
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 3 /* res */
            arraylength
            if_icmplt 4
        end local 4 // int i
        11: .line 140
            aload 3 /* res */
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] res
        end local 2 // java.lang.reflect.Parameter[] javaParameters
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0   12     1      javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
            1   12     2  javaParameters  [Ljava/lang/reflect/Parameter;
            2   12     3             res  [Ljdk/vm/ci/meta/ResolvedJavaMethod$Parameter;
            3   11     4               i  I
            5    9     5             src  Ljava/lang/reflect/Parameter;
            8    9     6       paramName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      javaMethod  

  java.lang.annotation.Annotation[][] getParameterAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)[[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
         0: .line 145
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            invokevirtual java.lang.reflect.Executable.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
    MethodParameters:
            Name  Flags
      javaMethod  

  java.lang.reflect.Type[] getGenericParameterTypes(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)[Ljava/lang/reflect/Type;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
         0: .line 150
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            invokevirtual java.lang.reflect.Executable.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
    MethodParameters:
            Name  Flags
      javaMethod  

  java.lang.annotation.Annotation[] getFieldAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
         0: .line 155
            aload 1 /* javaField */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getField:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaField  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;
    MethodParameters:
           Name  Flags
      javaField  

  java.lang.annotation.Annotation[] getMethodAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
         0: .line 160
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            invokevirtual java.lang.reflect.Executable.getAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
    MethodParameters:
            Name  Flags
      javaMethod  

  java.lang.annotation.Annotation[] getMethodDeclaredAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
         0: .line 165
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            invokevirtual java.lang.reflect.Executable.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
    MethodParameters:
            Name  Flags
      javaMethod  

  java.lang.annotation.Annotation[] getFieldDeclaredAnnotations(jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)[Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
         0: .line 170
            aload 1 /* javaField */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getField:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  javaField  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;
    MethodParameters:
           Name  Flags
      javaField  

  <T extends java.lang.annotation.Annotation> T getMethodAnnotation(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl, java.lang.Class<T>);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        start local 2 // java.lang.Class annotationClass
         0: .line 175
            aload 1 /* javaMethod */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getMethod:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            aload 2 /* annotationClass */
            invokevirtual java.lang.reflect.Executable.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class annotationClass
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl javaMethod
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1       javaMethod  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
            0    1     2  annotationClass  Ljava/lang/Class<TT;>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      javaMethod       
      annotationClass  

  <T extends java.lang.annotation.Annotation> T getFieldAnnotation(jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl, java.lang.Class<T>);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
        start local 2 // java.lang.Class annotationClass
         0: .line 180
            aload 1 /* javaField */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.getField:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)Ljava/lang/reflect/Field;
            aload 2 /* annotationClass */
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class annotationClass
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl javaField
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1        javaField  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;
            0    1     2  annotationClass  Ljava/lang/Class<TT;>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      javaField        
      annotationClass  

  jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl getType(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         0: .line 185
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 186
            aload 2 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 3 /* theClass */
        start local 3 // java.lang.Class theClass
         2: .line 187
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 3 /* theClass */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.fromClass:(Ljava/lang/Class;)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            areturn
        end local 3 // java.lang.Class theClass
        end local 2 // java.lang.Object value
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    3     1    object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            1    3     2     value  Ljava/lang/Object;
            2    3     3  theClass  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      object  

  java.lang.String asString(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         0: .line 192
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 193
            aload 2 /* value */
            instanceof java.lang.String
            ifeq 3
         2: .line 194
            aload 2 /* value */
            checkcast java.lang.String
            areturn
         3: .line 196
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    4     1  object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            1    4     2   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  jdk.vm.ci.meta.ResolvedJavaType asJavaType(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         0: .line 201
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 202
            aload 2 /* value */
            instanceof java.lang.Class
            ifeq 4
         2: .line 203
            aload 2 /* value */
            checkcast java.lang.Class
            astore 3 /* javaClass */
        start local 3 // java.lang.Class javaClass
         3: .line 204
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 3 /* javaClass */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.fromClass:(Ljava/lang/Class;)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            areturn
        end local 3 // java.lang.Class javaClass
         4: .line 206
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* value */
            instanceof jdk.vm.ci.meta.ResolvedJavaType
            ifeq 6
         5: .line 207
            aload 2 /* value */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            areturn
         6: .line 209
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object value
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    7     1     object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            1    7     2      value  Ljava/lang/Object;
            3    4     3  javaClass  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      object  

  <T> T asObject(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, java.lang.Class<T>);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // java.lang.Class type
         0: .line 215
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 216
            aload 2 /* type */
            aload 3 /* value */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 217
            aload 3 /* value */
            areturn
         3: .line 219
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Class type
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    4     1  object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    4     2    type  Ljava/lang/Class<TT;>;
            1    4     3   value  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
        Name  Flags
      object  
      type    

  java.lang.Object asObject(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, jdk.vm.ci.hotspot.HotSpotResolvedJavaType);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType type
         0: .line 224
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 225
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;)Ljava/lang/Class;
            aload 3 /* value */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 226
            aload 3 /* value */
            areturn
         3: .line 228
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object value
        end local 2 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType type
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    4     1  object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    4     2    type  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            1    4     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  
      type    

  java.lang.String formatString(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         0: .line 233
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            invokevirtual jdk.vm.ci.meta.JavaKind.format:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    MethodParameters:
        Name  Flags
      object  

  java.lang.Integer getLength(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Integer;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
         0: .line 238
            aload 0 /* this */
            aload 1 /* arrayObject */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 2 /* object */
        start local 2 // java.lang.Object object
         1: .line 239
            aload 2 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 3
         2: .line 240
            aload 2 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         3: .line 242
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Object object
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    4     1  arrayObject  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            1    4     2       object  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      arrayObject  

  jdk.vm.ci.meta.JavaConstant readArrayElement(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, int);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;I)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
        start local 2 // int index
         0: .line 247
            aload 0 /* this */
            aload 1 /* arrayObject */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            astore 3 /* a */
        start local 3 // java.lang.Object a
         1: .line 248
            aload 3 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
            iload 2 /* index */
            iflt 2
            iload 2 /* index */
            aload 3 /* a */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            if_icmplt 3
         2: .line 249
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
         3: .line 251
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof java.lang.Object[]
            ifeq 6
         4: .line 252
            aload 3 /* a */
            checkcast java.lang.Object[]
            iload 2 /* index */
            aaload
            astore 4 /* element */
        start local 4 // java.lang.Object element
         5: .line 253
            aload 0 /* this */
            aload 4 /* element */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Object element
         6: .line 255
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof int[]
            ifeq 8
         7: .line 256
            aload 3 /* a */
            checkcast int[]
            iload 2 /* index */
            iaload
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
         8: .line 257
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof char[]
            ifeq 10
         9: .line 258
            aload 3 /* a */
            checkcast char[]
            iload 2 /* index */
            caload
            invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        10: .line 259
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof byte[]
            ifeq 12
        11: .line 260
            aload 3 /* a */
            checkcast byte[]
            iload 2 /* index */
            baload
            invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        12: .line 261
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof long[]
            ifeq 14
        13: .line 262
            aload 3 /* a */
            checkcast long[]
            iload 2 /* index */
            laload
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        14: .line 263
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof short[]
            ifeq 16
        15: .line 264
            aload 3 /* a */
            checkcast short[]
            iload 2 /* index */
            saload
            invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        16: .line 265
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof float[]
            ifeq 18
        17: .line 266
            aload 3 /* a */
            checkcast float[]
            iload 2 /* index */
            faload
            invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        18: .line 267
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof double[]
            ifeq 20
        19: .line 268
            aload 3 /* a */
            checkcast double[]
            iload 2 /* index */
            daload
            invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        20: .line 269
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof boolean[]
            ifeq 22
        21: .line 270
            aload 3 /* a */
            checkcast boolean[]
            iload 2 /* index */
            baload
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        22: .line 272
      StackMap locals:
      StackMap stack:
            new jdk.vm.ci.common.JVMCIError
            dup
            ldc "Should not reach here"
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.Object a
        end local 2 // int index
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0   23     1  arrayObject  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0   23     2        index  I
            1   23     3            a  Ljava/lang/Object;
            5    6     4      element  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      arrayObject  
      index        

  jdk.vm.ci.meta.JavaConstant unboxPrimitive(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl source
         0: .line 279
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl source
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  source  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    MethodParameters:
        Name  Flags
      source  

  jdk.vm.ci.meta.JavaConstant forObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // java.lang.Object value
         0: .line 284
            aload 1 /* value */
            ifnonnull 2
         1: .line 285
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         2: .line 287
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.forNonNullObject:(Ljava/lang/Object;)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    3     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  private static jdk.vm.ci.hotspot.HotSpotObjectConstantImpl forNonNullObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 291
            aload 0 /* value */
            iconst_0
            invokestatic jdk.vm.ci.hotspot.DirectHotSpotObjectConstantImpl.forNonNullObject:(Ljava/lang/Object;Z)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            areturn
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  jdk.vm.ci.meta.JavaConstant boxPrimitive(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.meta.JavaConstant source
         0: .line 296
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asBoxedPrimitive:()Ljava/lang/Object;
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.forNonNullObject:(Ljava/lang/Object;)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant source
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  source  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
        Name  Flags
      source  

  int getInt(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, long);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)I
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // long displacement
         0: .line 301
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            ireturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1        object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    1     2  displacement  J
    MethodParameters:
              Name  Flags
      object        
      displacement  

  byte getByte(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, long);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)B
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // long displacement
         0: .line 306
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
            ireturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1        object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    1     2  displacement  J
    MethodParameters:
              Name  Flags
      object        
      displacement  

  short getShort(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, long);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)S
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // long displacement
         0: .line 311
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
            ireturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1        object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    1     2  displacement  J
    MethodParameters:
              Name  Flags
      object        
      displacement  

  long getLong(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, long);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)J
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        start local 2 // long displacement
         0: .line 316
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            lreturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1        object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    1     2  displacement  J
    MethodParameters:
              Name  Flags
      object        
      displacement  

  void checkRead(jdk.vm.ci.hotspot.HotSpotObjectConstantImpl, jdk.vm.ci.meta.JavaKind, long, jdk.vm.ci.hotspot.HotSpotResolvedObjectType);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // long displacement
        start local 5 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
         0: .line 321
            aload 0 /* this */
            aload 2 /* kind */
            lload 3 /* displacement */
            aload 5 /* type */
            aload 0 /* this */
            aload 1 /* constant */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
            pop
         1: .line 322
            return
        end local 5 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
        end local 3 // long displacement
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    2     1      constant  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            0    2     2          kind  Ljdk/vm/ci/meta/JavaKind;
            0    2     3  displacement  J
            0    2     5          type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
    MethodParameters:
              Name  Flags
      constant      
      kind          
      displacement  
      type          

  private static int computeOopSizeOffset(jdk.vm.ci.hotspot.HotSpotJVMCIRuntime);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
         0: .line 331
            aload 0 /* runtime */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 1 /* metaAccess */
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         1: .line 332
            aload 1 /* metaAccess */
            ldc Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 2 /* staticType */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType staticType
         2: .line 333
            aload 2 /* staticType */
            iconst_0
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntime jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* f */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField f
         4: .line 334
            aload 3 /* f */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
            ldc "oop_size"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         5: .line 335
            aload 3 /* f */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getOffset:()I
            istore 7 /* offset */
        start local 7 // int offset
         6: .line 336
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 7
            iload 7 /* offset */
            ifne 7
            new java.lang.AssertionError
            dup
            ldc "not expecting offset of java.lang.Class::oop_size to be 0"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 337
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntime jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField int int jdk.vm.ci.meta.ResolvedJavaField[] int
      StackMap stack:
            iload 7 /* offset */
            ireturn
        end local 7 // int offset
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField f
         8: .line 333
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntime jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 3
        10: .line 340
            new jdk.vm.ci.common.JVMCIError
            dup
            ldc "Could not find injected java.lang.Class::oop_size field"
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType staticType
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0     runtime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            1   11     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            2   11     2  staticType  Ljdk/vm/ci/meta/ResolvedJavaType;
            4    8     3           f  Ljdk/vm/ci/meta/ResolvedJavaField;
            6    8     7      offset  I
    MethodParameters:
         Name  Flags
      runtime  

  long oopSizeOffset();
    descriptor: ()J
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
         0: .line 344
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotJDKReflection.oopSizeOffset:J
            lconst_0
            lcmp
            ifne 2
         1: .line 345
            aload 0 /* this */
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.computeOopSizeOffset:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)I
            i2l
            putfield jdk.vm.ci.hotspot.HotSpotJDKReflection.oopSizeOffset:J
         2: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotJDKReflection.oopSizeOffset:J
            lreturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;

  private boolean checkRead(jdk.vm.ci.meta.JavaKind, long, jdk.vm.ci.hotspot.HotSpotResolvedObjectType, java.lang.Object);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // long displacement
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
        start local 5 // java.lang.Object object
         0: .line 351
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.isArray:()Z
            ifeq 16
         1: .line 352
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* componentType */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType componentType
         2: .line 353
            aload 6 /* componentType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 7 /* componentKind */
        start local 7 // jdk.vm.ci.meta.JavaKind componentKind
         3: .line 354
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 7 /* componentKind */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 8 /* headerSize */
        start local 8 // int headerSize
         4: .line 355
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 7 /* componentKind */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 9 /* sizeOfElement */
        start local 9 // int sizeOfElement
         5: .line 356
            aload 5 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 10 /* length */
        start local 10 // int length
         6: .line 357
            iload 8 /* headerSize */
            iload 9 /* sizeOfElement */
            iload 10 /* length */
            imul
            iadd
            i2l
            lstore 11 /* arrayEnd */
        start local 11 // long arrayEnd
         7: .line 358
            lload 2 /* displacement */
            iload 8 /* headerSize */
            i2l
            lsub
            iload 9 /* sizeOfElement */
            i2l
            lrem
            lconst_0
            lcmp
            ifne 8
            iconst_1
            goto 9
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.JavaKind int int int long
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 13 /* aligned */
        start local 13 // boolean aligned
        10: .line 359
            lload 2 /* displacement */
            lconst_0
            lcmp
            iflt 11
            lload 2 /* displacement */
            lload 11 /* arrayEnd */
            iload 9 /* sizeOfElement */
            i2l
            lsub
            lcmp
            ifgt 11
            aload 1 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 43
            iload 13 /* aligned */
            ifne 43
        11: .line 360
      StackMap locals: int
      StackMap stack:
            lload 2 /* displacement */
            iload 8 /* headerSize */
            i2l
            lsub
            iload 9 /* sizeOfElement */
            i2l
            ldiv
            l2i
            istore 14 /* index */
        start local 14 // int index
        12: .line 361
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsafe array access: reading element of kind "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 362
            ldc " at offset "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* displacement */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (index ~ "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 14 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 363
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " object of length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* length */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 361
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // int index
        end local 13 // boolean aligned
        end local 11 // long arrayEnd
        end local 10 // int length
        end local 9 // int sizeOfElement
        end local 8 // int headerSize
        end local 7 // jdk.vm.ci.meta.JavaKind componentKind
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType componentType
        16: .line 365
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object
      StackMap stack:
            aload 1 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 27
        17: .line 367
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 21
        18: .line 368
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.wordSize:I
            istore 8 /* wordSize */
        start local 8 // int wordSize
        19: .line 369
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 5 /* object */
            aload 0 /* this */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.oopSizeOffset:()J
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            iload 8 /* wordSize */
            imul
            i2l
            lstore 6 /* size */
        end local 8 // int wordSize
        start local 6 // long size
        20: .line 370
            goto 22
        end local 6 // long size
        21: .line 371
      StackMap locals:
      StackMap stack:
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.instanceSize:()I
            invokestatic java.lang.Math.abs:(I)I
            i2l
            lstore 6 /* size */
        start local 6 // long size
        22: .line 373
      StackMap locals: long
      StackMap stack:
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
            istore 8 /* bytesToRead */
        start local 8 // int bytesToRead
        23: .line 374
            lload 2 /* displacement */
            iload 8 /* bytesToRead */
            i2l
            ladd
            lload 6 /* size */
            lcmp
            ifgt 24
            lload 2 /* displacement */
            lconst_0
            lcmp
            ifge 43
        24: .line 375
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsafe access: reading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* bytesToRead */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes at offset "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* displacement */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 376
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " object of size "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* size */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 375
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int bytesToRead
        end local 6 // long size
        27: .line 379
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* field */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        28: .line 380
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 33
        29: .line 382
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 5 /* object */
            checkcast java.lang.Class
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.fromClass:(Ljava/lang/Class;)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            astore 7 /* hotSpotResolvedJavaType */
        start local 7 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType hotSpotResolvedJavaType
        30: .line 383
            aload 7 /* hotSpotResolvedJavaType */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 33
        31: .line 384
            aload 7 /* hotSpotResolvedJavaType */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            astore 8 /* staticFieldsHolder */
        start local 8 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl staticFieldsHolder
        32: .line 385
            aload 8 /* staticFieldsHolder */
            lload 2 /* displacement */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.findStaticFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 6 /* field */
        end local 8 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl staticFieldsHolder
        end local 7 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType hotSpotResolvedJavaType
        33: .line 388
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 6 /* field */
            ifnonnull 35
        34: .line 389
            aload 4 /* type */
            lload 2 /* displacement */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.findInstanceFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 6 /* field */
        35: .line 391
      StackMap locals:
      StackMap stack:
            aload 6 /* field */
            ifnonnull 39
        36: .line 392
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsafe object access: field not found for read of kind Object at offset "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        37: .line 393
            lload 2 /* displacement */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " object"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 392
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 395
      StackMap locals:
      StackMap stack:
            aload 6 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 43
        40: .line 396
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsafe object access: field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* field */
            ldc "%H.%n:%T"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not of expected kind Object"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        41: .line 397
            ldc " at offset "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* displacement */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " object"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        42: .line 396
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        43: .line 400
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.lang.Object object
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   44     0                     this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0   44     1                     kind  Ljdk/vm/ci/meta/JavaKind;
            0   44     2             displacement  J
            0   44     4                     type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            0   44     5                   object  Ljava/lang/Object;
            2   16     6            componentType  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   16     7            componentKind  Ljdk/vm/ci/meta/JavaKind;
            4   16     8               headerSize  I
            5   16     9            sizeOfElement  I
            6   16    10                   length  I
            7   16    11                 arrayEnd  J
           10   16    13                  aligned  Z
           12   16    14                    index  I
           20   21     6                     size  J
           22   27     6                     size  J
           19   20     8                 wordSize  I
           23   27     8              bytesToRead  I
           28   43     6                    field  Ljdk/vm/ci/meta/ResolvedJavaField;
           30   33     7  hotSpotResolvedJavaType  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
           32   33     8       staticFieldsHolder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      kind          
      displacement  
      type          
      object        

  jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.hotspot.HotSpotResolvedJavaField, java.lang.Object, boolean);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;Z)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        start local 2 // java.lang.Object obj
        start local 3 // boolean isVolatile
         0: .line 404
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 1
            aload 2 /* obj */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 405
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 2
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isStatic:()Z
            ifeq 2
            aload 2 /* obj */
            instanceof java.lang.Class
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 406
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getOffset:()I
            i2l
            lstore 4 /* displacement */
        start local 4 // long displacement
         3: .line 408
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            lload 4 /* displacement */
         4: .line 409
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isStatic:()Z
            ifeq 5
            aload 2 /* obj */
            checkcast java.lang.Class
            goto 6
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.hotspot.HotSpotResolvedJavaField java.lang.Object int long
      StackMap stack: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.meta.JavaKind long jdk.vm.ci.meta.MetaAccessProvider
         5: aload 2 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.hotspot.HotSpotResolvedJavaField java.lang.Object int long
      StackMap stack: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.meta.JavaKind long jdk.vm.ci.meta.MetaAccessProvider java.lang.Class
         6: invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
         7: .line 410
            aload 2 /* obj */
         8: .line 408
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
         9: .line 410
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 411
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* kind */
        start local 6 // jdk.vm.ci.meta.JavaKind kind
        11: .line 412
            invokestatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 6 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 9
                    1: 12
                    2: 15
                    3: 21
                    4: 18
                    5: 24
                    6: 30
                    7: 27
                    8: 33
                    9: 36
              default: 39
          }
        12: .line 414
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 13
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getBooleanVolatile:(Ljava/lang/Object;J)Z
            goto 14
      StackMap locals:
      StackMap stack:
        13: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getBoolean:(Ljava/lang/Object;J)Z
      StackMap locals:
      StackMap stack: int
        14: invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        15: .line 416
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 16
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getByteVolatile:(Ljava/lang/Object;J)B
            goto 17
      StackMap locals:
      StackMap stack:
        16: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
      StackMap locals:
      StackMap stack: int
        17: invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        18: .line 418
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 19
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getCharVolatile:(Ljava/lang/Object;J)C
            goto 20
      StackMap locals:
      StackMap stack:
        19: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
      StackMap locals:
      StackMap stack: int
        20: invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        21: .line 420
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 22
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getShortVolatile:(Ljava/lang/Object;J)S
            goto 23
      StackMap locals:
      StackMap stack:
        22: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
      StackMap locals:
      StackMap stack: int
        23: invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        24: .line 422
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 25
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getIntVolatile:(Ljava/lang/Object;J)I
            goto 26
      StackMap locals:
      StackMap stack:
        25: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
      StackMap locals:
      StackMap stack: int
        26: invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        27: .line 424
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 28
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getLongVolatile:(Ljava/lang/Object;J)J
            goto 29
      StackMap locals:
      StackMap stack:
        28: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
      StackMap locals:
      StackMap stack: long
        29: invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        30: .line 426
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 31
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getFloatVolatile:(Ljava/lang/Object;J)F
            goto 32
      StackMap locals:
      StackMap stack:
        31: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getFloat:(Ljava/lang/Object;J)F
      StackMap locals:
      StackMap stack: float
        32: invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        33: .line 428
      StackMap locals:
      StackMap stack:
            iload 3 /* isVolatile */
            ifeq 34
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getDoubleVolatile:(Ljava/lang/Object;J)D
            goto 35
      StackMap locals:
      StackMap stack:
        34: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getDouble:(Ljava/lang/Object;J)D
      StackMap locals:
      StackMap stack: double
        35: invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        36: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* isVolatile */
            ifeq 37
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getReferenceVolatile:(Ljava/lang/Object;J)Ljava/lang/Object;
            goto 38
      StackMap locals:
      StackMap stack: jdk.vm.ci.hotspot.HotSpotJDKReflection
        37: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 4 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getReference:(Ljava/lang/Object;J)Ljava/lang/Object;
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJDKReflection jdk.vm.ci.hotspot.HotSpotResolvedJavaField java.lang.Object int long jdk.vm.ci.meta.JavaKind
      StackMap stack: jdk.vm.ci.hotspot.HotSpotJDKReflection java.lang.Object
        38: invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        39: .line 432
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported kind: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // long displacement
        end local 3 // boolean isVolatile
        end local 2 // java.lang.Object obj
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0   40     1         field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            0   40     2           obj  Ljava/lang/Object;
            0   40     3    isVolatile  Z
            3   40     4  displacement  J
           11   40     6          kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
            Name  Flags
      field       
      obj         
      isVolatile  

  private static java.lang.reflect.Executable getMethod(jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
         0: .line 442
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 1
            aload 0 /* method */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.isClassInitializer:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            aload 0 /* method */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            getfield jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.toJavaCache:Ljava/lang/reflect/Executable;
            ifnonnull 9
         2: .line 444
            aload 0 /* method */
            dup
            astore 1
            monitorenter
         3: .line 445
            aload 0 /* method */
            getfield jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.toJavaCache:Ljava/lang/reflect/Executable;
            ifnonnull 5
         4: .line 446
            aload 0 /* method */
            invokestatic jdk.vm.ci.hotspot.CompilerToVM.compilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 0 /* method */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.asReflectionExecutable:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;)Ljava/lang/reflect/Executable;
            putfield jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.toJavaCache:Ljava/lang/reflect/Executable;
         5: .line 444
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            getfield jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.toJavaCache:Ljava/lang/reflect/Executable;
            areturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  method  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      method  

  private static java.lang.reflect.Field getField(jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;)Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl field
         0: .line 462
            aload 0 /* field */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl.getDeclaringClass:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            astore 1 /* declaringClass */
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl declaringClass
         1: .line 463
            aload 1 /* declaringClass */
            dup
            astore 2
            monitorenter
         2: .line 464
            aload 1 /* declaringClass */
            getfield jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.reflectionFieldCache:Ljava/util/HashMap;
            astore 3 /* cache */
        start local 3 // java.util.HashMap cache
         3: .line 465
            aload 3 /* cache */
            ifnonnull 6
         4: .line 466
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* cache */
         5: .line 467
            aload 1 /* declaringClass */
            aload 3 /* cache */
            putfield jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.reflectionFieldCache:Ljava/util/HashMap;
         6: .line 469
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl java.util.HashMap
      StackMap stack:
            aload 3 /* cache */
            aload 0 /* field */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Field
            astore 4 /* reflect */
        start local 4 // java.lang.reflect.Field reflect
         7: .line 470
            aload 4 /* reflect */
            ifnonnull 10
         8: .line 471
            invokestatic jdk.vm.ci.hotspot.CompilerToVM.compilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 0 /* field */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl.getDeclaringClass:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            aload 0 /* field */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl.getIndex:()I
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.asReflectionField:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;I)Ljava/lang/reflect/Field;
            astore 4 /* reflect */
         9: .line 472
            aload 3 /* cache */
            aload 0 /* field */
            aload 4 /* reflect */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 474
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 4 /* reflect */
            aload 2
            monitorexit
        11: areturn
        end local 4 // java.lang.reflect.Field reflect
        end local 3 // java.util.HashMap cache
        12: .line 463
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        13: athrow
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl declaringClass
        end local 0 // jdk.vm.ci.hotspot.HotSpotResolvedJavaFieldImpl field
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0           field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;
            1   14     1  declaringClass  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            3   12     3           cache  Ljava/util/HashMap<Ljdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl;Ljava/lang/reflect/Field;>;
            7   12     4         reflect  Ljava/lang/reflect/Field;
      Exception table:
        from    to  target  type
           2    11      12  any
          12    13      12  any
    MethodParameters:
       Name  Flags
      field  

  java.lang.Class<?> getMirror(jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         0: .line 479
            aload 0 /* this */
            aload 1 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.getJavaMirror:()Ljdk/vm/ci/meta/JavaConstant;
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            checkcast java.lang.Class
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    1     1  holder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    Signature: (Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      holder  

  java.lang.Class<?> getMirror(jdk.vm.ci.hotspot.HotSpotResolvedJavaType);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType type
         0: .line 483
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$assertionsDisabled:Z
            ifne 1
            aload 1 /* type */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType
            ifeq 3
         2: .line 485
            aload 0 /* this */
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType
            getfield jdk.vm.ci.hotspot.HotSpotResolvedPrimitiveType.mirror:Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.resolveObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Object;
            checkcast java.lang.Class
            areturn
         3: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotJDKReflection.getMirror:(Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;)Ljava/lang/Class;
            areturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType type
        end local 0 // jdk.vm.ci.hotspot.HotSpotJDKReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/vm/ci/hotspot/HotSpotJDKReflection;
            0    4     1  type  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
    Signature: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      type  

  static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 49
            getstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 11
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iconst_3
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic jdk.vm.ci.hotspot.HotSpotJDKReflection.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
}
SourceFile: "HotSpotJDKReflection.java"
InnerClasses:
  public Parameter = jdk.vm.ci.meta.ResolvedJavaMethod$Parameter of jdk.vm.ci.meta.ResolvedJavaMethod