class jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl implements jdk.vm.ci.hotspot.HotSpotMemoryAccessProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl
  super_class: java.lang.Object
{
  protected final jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  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 42
            ldc Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            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.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.vm.ci.hotspot.HotSpotJVMCIRuntime);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 1 /* runtime */
            putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
         2: .line 48
            return
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    3     1  runtime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
    MethodParameters:
         Name  Flags
      runtime  

  private java.lang.Object asObject(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.JavaKind, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // jdk.vm.ci.meta.JavaKind kind
        start local 3 // long displacement
         0: .line 59
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 6
         1: .line 60
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            astore 5 /* constant */
        start local 5 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
         2: .line 61
            aload 5 /* constant */
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.getType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            astore 6 /* type */
        start local 6 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
         3: .line 62
            aload 5 /* constant */
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 7 /* object */
        start local 7 // java.lang.Object object
         4: .line 63
            aload 0 /* this */
            aload 2 /* kind */
            lload 3 /* displacement */
            aload 6 /* type */
            aload 7 /* object */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.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;
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
            pop
         5: .line 64
            aload 7 /* object */
            areturn
        end local 7 // java.lang.Object object
        end local 6 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
        end local 5 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
         6: .line 66
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // long displacement
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    7     1          base  Ljdk/vm/ci/meta/Constant;
            0    7     2          kind  Ljdk/vm/ci/meta/JavaKind;
            0    7     3  displacement  J
            2    6     5      constant  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            3    6     6          type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            4    6     7        object  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      base          
      kind          
      displacement  

  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 76
            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 77
            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 78
            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 79
            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 80
            aload 3 /* f */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getOffset:()I
            istore 7 /* offset */
        start local 7 // int offset
         6: .line 81
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$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 82
      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 78
      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 85
            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  

  private boolean checkRead(jdk.vm.ci.meta.JavaKind, long, jdk.vm.ci.hotspot.HotSpotResolvedObjectType, java.lang.Object, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=16, args_size=6
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl 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
        start local 6 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 89
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.isArray:()Z
            ifeq 16
         1: .line 90
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 7 /* componentType */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType componentType
         2: .line 91
            aload 7 /* componentType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 8 /* componentKind */
        start local 8 // jdk.vm.ci.meta.JavaKind componentKind
         3: .line 92
            aload 6 /* metaAccess */
            aload 8 /* componentKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 9 /* headerSize */
        start local 9 // int headerSize
         4: .line 93
            aload 6 /* metaAccess */
            aload 8 /* componentKind */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 10 /* sizeOfElement */
        start local 10 // int sizeOfElement
         5: .line 94
            aload 5 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 11 /* length */
        start local 11 // int length
         6: .line 95
            iload 9 /* headerSize */
            iload 10 /* sizeOfElement */
            iload 11 /* length */
            imul
            iadd
            i2l
            lstore 12 /* arrayEnd */
        start local 12 // long arrayEnd
         7: .line 96
            lload 2 /* displacement */
            iload 9 /* headerSize */
            i2l
            lsub
            iload 10 /* sizeOfElement */
            i2l
            lrem
            lconst_0
            lcmp
            ifne 8
            iconst_1
            goto 9
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object jdk.vm.ci.meta.MetaAccessProvider 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 14 /* aligned */
        start local 14 // boolean aligned
        10: .line 97
            lload 2 /* displacement */
            lconst_0
            lcmp
            iflt 11
            lload 2 /* displacement */
            lload 12 /* arrayEnd */
            iload 10 /* sizeOfElement */
            i2l
            lsub
            lcmp
            ifgt 11
            aload 1 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 41
            iload 14 /* aligned */
            ifne 41
        11: .line 98
      StackMap locals: int
      StackMap stack:
            lload 2 /* displacement */
            iload 9 /* headerSize */
            i2l
            lsub
            iload 10 /* sizeOfElement */
            i2l
            ldiv
            l2i
            istore 15 /* index */
        start local 15 // int index
        12: .line 99
            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 100
            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 15 /* 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 101
            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 11 /* length */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 99
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 15 // int index
        end local 14 // boolean aligned
        end local 12 // long arrayEnd
        end local 11 // int length
        end local 10 // int sizeOfElement
        end local 9 // int headerSize
        end local 8 // jdk.vm.ci.meta.JavaKind componentKind
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType componentType
        16: .line 103
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object jdk.vm.ci.meta.MetaAccessProvider
      StackMap stack:
            aload 1 /* kind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 29
        17: .line 105
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 23
        18: .line 106
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
            lconst_0
            lcmp
            ifne 20
        19: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.computeOopSizeOffset:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)I
            i2l
            putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
        20: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.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 9 /* wordSize */
        start local 9 // int wordSize
        21: .line 110
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 5 /* object */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            iload 9 /* wordSize */
            imul
            i2l
            lstore 7 /* size */
        end local 9 // int wordSize
        start local 7 // long size
        22: .line 111
            goto 24
        end local 7 // long size
        23: .line 112
      StackMap locals:
      StackMap stack:
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.instanceSize:()I
            invokestatic java.lang.Math.abs:(I)I
            i2l
            lstore 7 /* size */
        start local 7 // long size
        24: .line 114
      StackMap locals: long
      StackMap stack:
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
            istore 9 /* bytesToRead */
        start local 9 // int bytesToRead
        25: .line 115
            lload 2 /* displacement */
            iload 9 /* bytesToRead */
            i2l
            ladd
            lload 7 /* size */
            lcmp
            ifgt 26
            lload 2 /* displacement */
            lconst_0
            lcmp
            ifge 41
        26: .line 116
      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 9 /* 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;
        27: .line 117
            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 7 /* size */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 116
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // int bytesToRead
        end local 7 // long size
        29: .line 120
      StackMap locals:
      StackMap stack:
            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 7 /* field */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaField field
        30: .line 121
            aload 7 /* field */
            ifnonnull 33
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 33
        31: .line 123
            aload 6 /* metaAccess */
            aload 5 /* object */
            checkcast java.lang.Class
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            astore 8 /* staticFieldsHolder */
        start local 8 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl staticFieldsHolder
        32: .line 124
            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 7 /* field */
        end local 8 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl staticFieldsHolder
        33: .line 126
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 7 /* field */
            ifnonnull 37
        34: .line 127
            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
        35: .line 128
            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;
        36: .line 127
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 130
      StackMap locals:
      StackMap stack:
            aload 7 /* 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 41
        38: .line 131
            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 7 /* 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;
        39: .line 132
            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;
        40: .line 131
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // jdk.vm.ci.meta.ResolvedJavaField field
        41: .line 135
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        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.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   42     0                this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   42     1                kind  Ljdk/vm/ci/meta/JavaKind;
            0   42     2        displacement  J
            0   42     4                type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            0   42     5              object  Ljava/lang/Object;
            0   42     6          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            2   16     7       componentType  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   16     8       componentKind  Ljdk/vm/ci/meta/JavaKind;
            4   16     9          headerSize  I
            5   16    10       sizeOfElement  I
            6   16    11              length  I
            7   16    12            arrayEnd  J
           10   16    14             aligned  Z
           12   16    15               index  I
           22   23     7                size  J
           24   29     7                size  J
           21   22     9            wordSize  I
           25   29     9         bytesToRead  I
           30   41     7               field  Ljdk/vm/ci/meta/ResolvedJavaField;
           32   33     8  staticFieldsHolder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      kind          
      displacement  
      type          
      object        
      metaAccess    

  private static long asRawPointer(jdk.vm.ci.meta.Constant);
    descriptor: (Ljdk/vm/ci/meta/Constant;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.vm.ci.meta.Constant base
         0: .line 139
            aload 0 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifeq 3
         1: .line 140
            aload 0 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
            astore 1 /* meta */
        start local 1 // jdk.vm.ci.hotspot.MetaspaceWrapperObject meta
         2: .line 141
            aload 1 /* meta */
            invokeinterface jdk.vm.ci.hotspot.MetaspaceWrapperObject.getMetaspacePointer:()J
            lreturn
        end local 1 // jdk.vm.ci.hotspot.MetaspaceWrapperObject meta
         3: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* base */
            instanceof jdk.vm.ci.meta.PrimitiveConstant
            ifeq 7
         4: .line 143
            aload 0 /* base */
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 1 /* prim */
        start local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         5: .line 144
            aload 1 /* prim */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 7
         6: .line 145
            aload 1 /* prim */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
            lreturn
        end local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         7: .line 148
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* base */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // jdk.vm.ci.meta.Constant base
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  base  Ljdk/vm/ci/meta/Constant;
            2    3     1  meta  Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
            5    7     1  prim  Ljdk/vm/ci/meta/PrimitiveConstant;
    MethodParameters:
      Name  Flags
      base  

  private long readRawValue(jdk.vm.ci.meta.Constant, long, jdk.vm.ci.meta.JavaKind, int);
    descriptor: (Ljdk/vm/ci/meta/Constant;JLjdk/vm/ci/meta/JavaKind;I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant baseConstant
        start local 2 // long displacement
        start local 4 // jdk.vm.ci.meta.JavaKind kind
        start local 5 // int bits
         0: .line 152
            aload 0 /* this */
            aload 1 /* baseConstant */
            aload 4 /* kind */
            lload 2 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
            astore 6 /* base */
        start local 6 // java.lang.Object base
         1: .line 153
            aload 6 /* base */
            ifnull 8
         2: .line 154
            iload 5 /* bits */
            lookupswitch { // 4
                    8: 3
                   16: 4
                   32: 5
                   64: 6
              default: 7
          }
         3: .line 156
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 6 /* base */
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
            i2l
            lreturn
         4: .line 158
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 6 /* base */
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
            i2l
            lreturn
         5: .line 160
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 6 /* base */
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            i2l
            lreturn
         6: .line 162
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 6 /* base */
            lload 2 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            lreturn
         7: .line 164
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            iload 5 /* bits */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* baseConstant */
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asRawPointer:(Ljdk/vm/ci/meta/Constant;)J
            lstore 7 /* pointer */
        start local 7 // long pointer
         9: .line 168
            iload 5 /* bits */
            lookupswitch { // 4
                    8: 10
                   16: 11
                   32: 12
                   64: 13
              default: 14
          }
        10: .line 170
      StackMap locals: long
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 7 /* pointer */
            lload 2 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
            i2l
            lreturn
        11: .line 172
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 7 /* pointer */
            lload 2 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getShort:(J)S
            i2l
            lreturn
        12: .line 174
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 7 /* pointer */
            lload 2 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
            i2l
            lreturn
        13: .line 176
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 7 /* pointer */
            lload 2 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getLong:(J)J
            lreturn
        14: .line 178
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            iload 5 /* bits */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // long pointer
        end local 6 // java.lang.Object base
        end local 5 // int bits
        end local 4 // jdk.vm.ci.meta.JavaKind kind
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant baseConstant
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   15     1  baseConstant  Ljdk/vm/ci/meta/Constant;
            0   15     2  displacement  J
            0   15     4          kind  Ljdk/vm/ci/meta/JavaKind;
            0   15     5          bits  I
            1   15     6          base  Ljava/lang/Object;
            9   15     7       pointer  J
    MethodParameters:
              Name  Flags
      baseConstant  
      displacement  
      kind          
      bits          

  private boolean verifyReadRawObject(java.lang.Object, jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljava/lang/Object;Ljdk/vm/ci/meta/Constant;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // java.lang.Object expected
        start local 2 // jdk.vm.ci.meta.Constant base
        start local 3 // long displacement
         0: .line 184
            aload 2 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 5
         1: .line 185
            aload 2 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
            astore 5 /* metaspaceObject */
        start local 5 // jdk.vm.ci.hotspot.MetaspaceWrapperObject metaspaceObject
         2: .line 186
            aload 5 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 5
         3: .line 187
            lload 3 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorHandleOffset:I
            i2l
            lcmp
            ifne 5
         4: .line 188
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 5
            aload 1 /* expected */
            aload 5 /* metaspaceObject */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.mirror:()Ljava/lang/Class;
            if_acmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // jdk.vm.ci.hotspot.MetaspaceWrapperObject metaspaceObject
         5: .line 192
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // long displacement
        end local 2 // jdk.vm.ci.meta.Constant base
        end local 1 // java.lang.Object expected
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    6     1         expected  Ljava/lang/Object;
            0    6     2             base  Ljdk/vm/ci/meta/Constant;
            0    6     3     displacement  J
            2    5     5  metaspaceObject  Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
    MethodParameters:
              Name  Flags
      expected      
      base          
      displacement  

  private java.lang.Object readRawObject(jdk.vm.ci.meta.Constant, long, boolean);
    descriptor: (Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant baseConstant
        start local 2 // long initialDisplacement
        start local 4 // boolean compressed
         0: .line 196
            lload 2 /* initialDisplacement */
            lstore 5 /* displacement */
        start local 5 // long displacement
         1: .line 198
            aload 0 /* this */
            aload 1 /* baseConstant */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            lload 5 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
            astore 8 /* base */
        start local 8 // java.lang.Object base
         2: .line 199
            aload 8 /* base */
            ifnonnull 7
         3: .line 200
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 4
            iload 4 /* compressed */
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 201
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long top java.lang.Object
      StackMap stack:
            lload 5 /* displacement */
            aload 1 /* baseConstant */
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asRawPointer:(Ljdk/vm/ci/meta/Constant;)J
            ladd
            lstore 5 /* displacement */
         5: .line 202
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 5 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getUncompressedObject:(J)Ljava/lang/Object;
            astore 7 /* ret */
        start local 7 // java.lang.Object ret
         6: .line 203
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 9
            aload 0 /* this */
            aload 7 /* ret */
            aload 1 /* baseConstant */
            lload 2 /* initialDisplacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.verifyReadRawObject:(Ljava/lang/Object;Ljdk/vm/ci/meta/Constant;J)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // java.lang.Object ret
         7: .line 205
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 8
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.useCompressedOops:Z
            iload 4 /* compressed */
            if_icmpeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 206
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 8 /* base */
            lload 5 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 7 /* ret */
        start local 7 // java.lang.Object ret
         9: .line 208
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long java.lang.Object java.lang.Object
      StackMap stack:
            aload 7 /* ret */
            areturn
        end local 8 // java.lang.Object base
        end local 7 // java.lang.Object ret
        end local 5 // long displacement
        end local 4 // boolean compressed
        end local 2 // long initialDisplacement
        end local 1 // jdk.vm.ci.meta.Constant baseConstant
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   10     1         baseConstant  Ljdk/vm/ci/meta/Constant;
            0   10     2  initialDisplacement  J
            0   10     4           compressed  Z
            1   10     5         displacement  J
            6    7     7                  ret  Ljava/lang/Object;
            9   10     7                  ret  Ljava/lang/Object;
            2   10     8                 base  Ljava/lang/Object;
    MethodParameters:
                     Name  Flags
      baseConstant         
      initialDisplacement  
      compressed           

  jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.hotspot.HotSpotResolvedJavaField, java.lang.Object);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0000) 
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        start local 2 // java.lang.Object obj
         0: .line 212
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* obj */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 213
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$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 214
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getOffset:()I
            i2l
            lstore 3 /* displacement */
        start local 3 // long displacement
         3: .line 215
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 7
            aload 0 /* this */
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            lload 3 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.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 2 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            aload 2 /* obj */
         4: .line 216
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.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;
         5: .line 215
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
         6: .line 216
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 217
      StackMap locals: long
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 10
         8: .line 218
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
         9: .line 219
            aload 5 /* o */
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 5 // java.lang.Object o
        10: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
        11: .line 222
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 5 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 12
                    2: 13
                    3: 15
                    4: 14
                    5: 16
                    6: 18
                    7: 17
                    8: 19
              default: 20
          }
        12: .line 224
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getBoolean:(Ljava/lang/Object;J)Z
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        13: .line 226
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
            invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        14: .line 228
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
            invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        15: .line 230
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
            invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        16: .line 232
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        17: .line 234
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        18: .line 236
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getFloat:(Ljava/lang/Object;J)F
            invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        19: .line 238
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 2 /* obj */
            lload 3 /* displacement */
            invokevirtual jdk.internal.misc.Unsafe.getDouble:(Ljava/lang/Object;J)D
            invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        20: .line 240
      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 5 /* 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 5 // jdk.vm.ci.meta.JavaKind kind
        end local 3 // long displacement
        end local 2 // java.lang.Object obj
        end local 1 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField field
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   21     1         field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            0   21     2           obj  Ljava/lang/Object;
            3   21     3  displacement  J
            9   10     5             o  Ljava/lang/Object;
           11   21     5          kind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
       Name  Flags
      field  
      obj    

  public jdk.vm.ci.meta.JavaConstant readPrimitiveConstant(jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.Constant, long, int);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/Constant;JI)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // jdk.vm.ci.meta.Constant baseConstant
        start local 3 // long initialDisplacement
        start local 5 // int bits
         0: .line 248
            aload 0 /* this */
            aload 2 /* baseConstant */
            lload 3 /* initialDisplacement */
            aload 1 /* kind */
            iload 5 /* bits */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawValue:(Ljdk/vm/ci/meta/Constant;JLjdk/vm/ci/meta/JavaKind;I)J
            lstore 6 /* rawValue */
        start local 6 // long rawValue
         1: .line 249
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 2
                    2: 6
                    3: 10
                    4: 8
                    5: 12
                    6: 16
                    7: 14
                    8: 18
              default: 20
          }
         2: .line 251
      StackMap locals: long
      StackMap stack:
            lload 6 /* rawValue */
            lconst_0
            lcmp
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
         5: areturn
         6: .line 253
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            l2i
            i2b
            invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
         7: areturn
         8: .line 255
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            l2i
            i2c
            invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
         9: areturn
        10: .line 257
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            l2i
            i2s
            invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
        11: areturn
        12: .line 259
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            l2i
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
        13: areturn
        14: .line 261
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
        15: areturn
        16: .line 263
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            l2i
            invokestatic java.lang.Float.intBitsToFloat:(I)F
            invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
        17: areturn
        18: .line 265
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
        19: areturn
        20: .line 267
      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 1 /* 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 // long rawValue
        21: .line 269
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Constant long int
      StackMap stack: java.lang.NullPointerException
            pop
        22: .line 270
            aconst_null
            areturn
        end local 5 // int bits
        end local 3 // long initialDisplacement
        end local 2 // jdk.vm.ci.meta.Constant baseConstant
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   23     0                 this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   23     1                 kind  Ljdk/vm/ci/meta/JavaKind;
            0   23     2         baseConstant  Ljdk/vm/ci/meta/Constant;
            0   23     3  initialDisplacement  J
            0   23     5                 bits  I
            1   21     6             rawValue  J
      Exception table:
        from    to  target  type
           0     5      21  Class java.lang.NullPointerException
           6     7      21  Class java.lang.NullPointerException
           8     9      21  Class java.lang.NullPointerException
          10    11      21  Class java.lang.NullPointerException
          12    13      21  Class java.lang.NullPointerException
          14    15      21  Class java.lang.NullPointerException
          16    17      21  Class java.lang.NullPointerException
          18    19      21  Class java.lang.NullPointerException
          20    21      21  Class java.lang.NullPointerException
    MethodParameters:
                     Name  Flags
      kind                 
      baseConstant         
      initialDisplacement  
      bits                 

  public jdk.vm.ci.meta.JavaConstant readObjectConstant(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
         0: .line 276
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 3
         1: .line 277
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.useCompressedOops:Z
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
            astore 4 /* o */
        start local 4 // java.lang.Object o
         2: .line 278
            aload 4 /* o */
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Object o
         3: .line 280
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 9
         4: .line 281
            aload 1 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
            astore 4 /* metaspaceObject */
        start local 4 // jdk.vm.ci.hotspot.MetaspaceWrapperObject metaspaceObject
         5: .line 282
            aload 4 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 8
         6: .line 283
            lload 2 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorHandleOffset:I
            i2l
            lcmp
            ifne 9
         7: .line 285
            aload 4 /* metaspaceObject */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.mirror:()Ljava/lang/Class;
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
         8: .line 288
      StackMap locals: jdk.vm.ci.hotspot.MetaspaceWrapperObject
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* metaspaceObject */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // jdk.vm.ci.hotspot.MetaspaceWrapperObject metaspaceObject
         9: .line 291
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   10     1             base  Ljdk/vm/ci/meta/Constant;
            0   10     2     displacement  J
            2    3     4                o  Ljava/lang/Object;
            5    9     4  metaspaceObject  Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
    MethodParameters:
              Name  Flags
      base          
      displacement  

  public jdk.vm.ci.meta.JavaConstant readNarrowOopConstant(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
         0: .line 296
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            iconst_1
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
            iconst_1
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;Z)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    1     1          base  Ljdk/vm/ci/meta/Constant;
            0    1     2  displacement  J
    MethodParameters:
              Name  Flags
      base          
      displacement  

  private jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl readKlass(jdk.vm.ci.meta.Constant, long, boolean);
    descriptor: (Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
        start local 4 // boolean compressed
         0: .line 300
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifne 1
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifne 1
            new java.lang.AssertionError
            dup
            aload 1 /* base */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifeq 2
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.asResolvedJavaType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         3: astore 5 /* baseObject */
        start local 5 // java.lang.Object baseObject
         4: .line 302
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 5 /* baseObject */
            lload 2 /* displacement */
            iload 4 /* compressed */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType:(Ljava/lang/Object;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            areturn
        end local 5 // java.lang.Object baseObject
        end local 4 // boolean compressed
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    5     1          base  Ljdk/vm/ci/meta/Constant;
            0    5     2  displacement  J
            0    5     4    compressed  Z
            4    5     5    baseObject  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      base          
      displacement  
      compressed    

  public jdk.vm.ci.meta.Constant readKlassPointerConstant(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
         0: .line 307
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            iconst_0
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readKlass:(Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            astore 4 /* klass */
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl klass
         1: .line 308
            aload 4 /* klass */
            ifnonnull 3
         2: .line 309
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 311
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
      StackMap stack:
            aload 4 /* klass */
            iconst_0
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl klass
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    4     1          base  Ljdk/vm/ci/meta/Constant;
            0    4     2  displacement  J
            1    4     4         klass  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      base          
      displacement  

  public jdk.vm.ci.meta.Constant readNarrowKlassPointerConstant(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
         0: .line 316
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            iconst_1
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readKlass:(Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            astore 4 /* klass */
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl klass
         1: .line 317
            aload 4 /* klass */
            ifnonnull 3
         2: .line 318
            getstatic jdk.vm.ci.hotspot.HotSpotCompressedNullConstant.COMPRESSED_NULL:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 320
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
      StackMap stack:
            aload 4 /* klass */
            iconst_1
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl klass
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    4     1          base  Ljdk/vm/ci/meta/Constant;
            0    4     2  displacement  J
            1    4     4         klass  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      base          
      displacement  

  public jdk.vm.ci.meta.Constant readMethodPointerConstant(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.Constant base
        start local 2 // long displacement
         0: .line 325
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 326
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 4 /* baseObject */
        start local 4 // java.lang.Object baseObject
         2: .line 327
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 4 /* baseObject */
            lload 2 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaMethod:(Ljava/lang/Object;J)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
            astore 5 /* method */
        start local 5 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
         3: .line 328
            aload 5 /* method */
            iconst_0
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
            areturn
        end local 5 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
        end local 4 // java.lang.Object baseObject
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.Constant base
        end local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    4     1          base  Ljdk/vm/ci/meta/Constant;
            0    4     2  displacement  J
            2    4     4    baseObject  Ljava/lang/Object;
            3    4     5        method  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
    MethodParameters:
              Name  Flags
      base          
      displacement  

  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 42
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$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.HotSpotMemoryAccessProviderImpl.$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: "HotSpotMemoryAccessProviderImpl.java"