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.HotSpotJVMCIRuntimeProvider runtime;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
    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 44
            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.HotSpotJVMCIRuntimeProvider);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)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.HotSpotJVMCIRuntimeProvider runtime
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* runtime */
            putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
         2: .line 50
            return
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider 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/HotSpotJVMCIRuntimeProvider;
    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=6, 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 61
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 6
         1: .line 62
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            astore 5 /* constant */
        start local 5 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
         2: .line 63
            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 64
            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 65
            aload 0 /* this */
            aload 2 /* kind */
            lload 3 /* displacement */
            aload 6 /* type */
            aload 7 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
            pop
         5: .line 66
            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 68
      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.HotSpotJVMCIRuntimeProvider);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider runtime
         0: .line 78
            aload 0 /* runtime */
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 79
            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 80
            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.HotSpotJVMCIRuntimeProvider 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 81
            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 82
            aload 3 /* f */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.offset:()I
            istore 7 /* offset */
        start local 7 // int offset
         6: .line 83
            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 84
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider 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 80
      StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider 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 87
            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.HotSpotJVMCIRuntimeProvider runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0     runtime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            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);
    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.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
         0: .line 91
            aload 4 /* type */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.isArray:()Z
            ifeq 16
         1: .line 92
            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 93
            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 94
            aload 7 /* componentKind */
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 8 /* headerSize */
        start local 8 // int headerSize
         4: .line 95
            aload 7 /* componentKind */
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 9 /* sizeOfElement */
        start local 9 // int sizeOfElement
         5: .line 96
            aload 5 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 10 /* length */
        start local 10 // int length
         6: .line 97
            iload 8 /* headerSize */
            iload 9 /* sizeOfElement */
            iload 10 /* length */
            imul
            iadd
            i2l
            lstore 11 /* arrayEnd */
        start local 11 // long arrayEnd
         7: .line 98
            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.HotSpotMemoryAccessProviderImpl 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 99
            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 42
            iload 13 /* aligned */
            ifne 42
        11: .line 100
      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 101
            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 102
            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 103
            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 101
            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 105
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl 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 29
        17: .line 107
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 23
        18: .line 108
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
            lconst_0
            lcmp
            ifne 20
        19: .line 109
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.computeOopSizeOffset:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)I
            i2l
            putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
        20: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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
        21: .line 112
            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 8 /* wordSize */
            imul
            i2l
            lstore 6 /* size */
        end local 8 // int wordSize
        start local 6 // long size
        22: .line 113
            goto 24
        end local 6 // long size
        23: .line 114
      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
        24: .line 116
      StackMap locals: long
      StackMap stack:
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
            istore 8 /* bytesToRead */
        start local 8 // int bytesToRead
        25: .line 117
            lload 2 /* displacement */
            iload 8 /* bytesToRead */
            i2l
            ladd
            lload 6 /* size */
            lcmp
            ifgt 26
            lload 2 /* displacement */
            lconst_0
            lcmp
            ifge 42
        26: .line 118
      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;
        27: .line 119
            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;
        28: .line 118
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int bytesToRead
        end local 6 // long size
        29: .line 122
      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 6 /* field */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        30: .line 123
            aload 6 /* field */
            ifnonnull 34
            aload 5 /* object */
            instanceof java.lang.Class
            ifeq 34
        31: .line 125
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
            invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 7 /* metaAccess */
        start local 7 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        32: .line 126
            aload 7 /* 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
        33: .line 127
            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.meta.MetaAccessProvider metaAccess
        34: .line 129
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 6 /* field */
            ifnonnull 38
        35: .line 130
            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
        36: .line 131
            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;
        37: .line 130
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 133
      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 42
        39: .line 134
            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;
        40: .line 135
            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;
        41: .line 134
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField field
        42: .line 138
      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.HotSpotMemoryAccessProviderImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   43     0                this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   43     1                kind  Ljdk/vm/ci/meta/JavaKind;
            0   43     2        displacement  J
            0   43     4                type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            0   43     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
           22   23     6                size  J
           24   29     6                size  J
           21   22     8            wordSize  I
           25   29     8         bytesToRead  I
           30   42     6               field  Ljdk/vm/ci/meta/ResolvedJavaField;
           32   34     7          metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
           33   34     8  staticFieldsHolder  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      kind          
      displacement  
      type          
      object        

  private boolean isValidObjectFieldDisplacement(jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, 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 142
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 6
         1: .line 143
            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
         2: .line 144
            aload 4 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 5
         3: .line 145
            lload 2 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorOffset:I
            i2l
            lcmp
            ifne 6
         4: .line 147
            iconst_1
            ireturn
         5: .line 150
      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
         6: .line 153
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        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    7     0             this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    7     1             base  Ljdk/vm/ci/meta/Constant;
            0    7     2     displacement  J
            2    6     4  metaspaceObject  Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
    MethodParameters:
              Name  Flags
      base          
      displacement  

  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 157
            aload 0 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifeq 3
         1: .line 158
            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 159
            aload 1 /* meta */
            invokeinterface jdk.vm.ci.hotspot.MetaspaceWrapperObject.getMetaspacePointer:()J
            lreturn
        end local 1 // jdk.vm.ci.hotspot.MetaspaceWrapperObject meta
         3: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* base */
            instanceof jdk.vm.ci.meta.PrimitiveConstant
            ifeq 7
         4: .line 161
            aload 0 /* base */
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 1 /* prim */
        start local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         5: .line 162
            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 163
            aload 1 /* prim */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
            lreturn
        end local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         7: .line 166
      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 170
            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 171
            aload 6 /* base */
            ifnull 8
         2: .line 172
            iload 5 /* bits */
            lookupswitch { // 4
                    8: 3
                   16: 4
                   32: 5
                   64: 6
              default: 7
          }
         3: .line 174
      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 176
      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 178
      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 180
      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 182
      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 185
      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 186
            iload 5 /* bits */
            lookupswitch { // 4
                    8: 10
                   16: 11
                   32: 12
                   64: 13
              default: 14
          }
        10: .line 188
      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 190
      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 192
      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 194
      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 196
      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 202
            aload 2 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 5
         1: .line 203
            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 204
            aload 5 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 5
         3: .line 205
            lload 3 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
            getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorOffset:I
            i2l
            lcmp
            ifne 5
         4: .line 206
            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 210
      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 214
            lload 2 /* initialDisplacement */
            lstore 5 /* displacement */
        start local 5 // long displacement
         1: .line 216
            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 217
            aload 8 /* base */
            ifnonnull 7
         3: .line 218
            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 219
      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 220
            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 221
            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 223
      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/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 224
      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 226
      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=6, 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 230
            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 231
      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 232
      StackMap locals:
      StackMap stack:
            aload 1 /* field */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.offset:()I
            i2l
            lstore 3 /* displacement */
        start local 3 // long displacement
         3: .line 233
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 4
            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/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 234
      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 7
         5: .line 235
            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
         6: .line 236
            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
         7: .line 238
      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
         8: .line 239
            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: 9
                    2: 10
                    3: 12
                    4: 11
                    5: 13
                    6: 15
                    7: 14
                    8: 16
              default: 17
          }
         9: .line 241
      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
        10: .line 243
      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
        11: .line 245
      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
        12: .line 247
      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
        13: .line 249
      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
        14: .line 251
      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
        15: .line 253
      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
        16: .line 255
      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
        17: .line 257
      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   18     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   18     1         field  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            0   18     2           obj  Ljava/lang/Object;
            3   18     3  displacement  J
            6    7     5             o  Ljava/lang/Object;
            8   18     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 265
            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 266
            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 268
      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 270
      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 272
      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 274
      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 276
      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 278
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
        15: areturn
        16: .line 280
      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 282
      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 284
      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 286
      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 287
            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 293
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 3
         1: .line 294
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 295
            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 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.isValidObjectFieldDisplacement:(Ljdk/vm/ci/meta/Constant;J)Z
            ifne 5
         4: .line 298
            aconst_null
            areturn
         5: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            iconst_0
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)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    6     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    6     1          base  Ljdk/vm/ci/meta/Constant;
            0    6     2  displacement  J
            2    3     4             o  Ljava/lang/Object;
    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 305
            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 309
            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 310
      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 311
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 316
            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 317
            aload 4 /* klass */
            ifnonnull 3
         2: .line 318
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 320
      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 325
            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 326
            aload 4 /* klass */
            ifnonnull 3
         2: .line 327
            getstatic jdk.vm.ci.hotspot.HotSpotCompressedNullConstant.COMPRESSED_NULL:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 329
      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 334
            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 335
      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 336
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.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 337
            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 44
            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"