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

  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 37
            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 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 0 /* this */
            aload 1 /* runtime */
            putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
         2: .line 43
            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 static jdk.vm.ci.hotspot.HotSpotObjectConstantImpl asObject(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.JavaKind, long);
    descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // jdk.vm.ci.meta.Constant base
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // long displacement
         0: .line 54
            aload 0 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 5
         1: .line 55
            aload 0 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            astore 4 /* constant */
        start local 4 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
         2: .line 56
            aload 4 /* constant */
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.getType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            astore 5 /* type */
        start local 5 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
         3: .line 57
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            getfield jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.reflection:Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 4 /* constant */
            aload 1 /* kind */
            lload 2 /* displacement */
            aload 5 /* type */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.checkRead:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;)V
         4: .line 58
            aload 4 /* constant */
            areturn
        end local 5 // jdk.vm.ci.hotspot.HotSpotResolvedObjectType type
        end local 4 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl constant
         5: .line 60
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // long displacement
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        end local 0 // jdk.vm.ci.meta.Constant base
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          base  Ljdk/vm/ci/meta/Constant;
            0    6     1          kind  Ljdk/vm/ci/meta/JavaKind;
            0    6     2  displacement  J
            2    5     4      constant  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            3    5     5          type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
    MethodParameters:
              Name  Flags
      base          
      kind          
      displacement  

  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 64
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 6
         1: .line 65
            aload 1 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceObject;
            astore 4 /* metaspaceObject */
        start local 4 // jdk.vm.ci.hotspot.MetaspaceObject metaspaceObject
         2: .line 66
            aload 4 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 5
         3: .line 67
            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.javaMirrorOffset:I
            i2l
            lcmp
            ifne 6
         4: .line 69
            iconst_1
            ireturn
         5: .line 72
      StackMap locals: jdk.vm.ci.hotspot.MetaspaceObject
      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.MetaspaceObject metaspaceObject
         6: .line 75
      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/MetaspaceObject;
    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 79
            aload 0 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifeq 3
         1: .line 80
            aload 0 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceObject;
            astore 1 /* meta */
        start local 1 // jdk.vm.ci.hotspot.MetaspaceObject meta
         2: .line 81
            aload 1 /* meta */
            invokeinterface jdk.vm.ci.hotspot.MetaspaceObject.getMetaspacePointer:()J
            lreturn
        end local 1 // jdk.vm.ci.hotspot.MetaspaceObject meta
         3: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* base */
            instanceof jdk.vm.ci.meta.PrimitiveConstant
            ifeq 7
         4: .line 83
            aload 0 /* base */
            checkcast jdk.vm.ci.meta.PrimitiveConstant
            astore 1 /* prim */
        start local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         5: .line 84
            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 85
            aload 1 /* prim */
            invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
            lreturn
        end local 1 // jdk.vm.ci.meta.PrimitiveConstant prim
         7: .line 88
      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/MetaspaceObject;
            5    7     1  prim  Ljdk/vm/ci/meta/PrimitiveConstant;
    MethodParameters:
      Name  Flags
      base  

  private static 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: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // jdk.vm.ci.meta.Constant baseConstant
        start local 1 // long displacement
        start local 3 // jdk.vm.ci.meta.JavaKind kind
        start local 4 // int bits
         0: .line 92
            aload 0 /* baseConstant */
            aload 3 /* kind */
            lload 1 /* displacement */
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            astore 5 /* base */
        start local 5 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl base
         1: .line 93
            aload 5 /* base */
            ifnull 8
         2: .line 94
            iload 4 /* bits */
            lookupswitch { // 4
                    8: 3
                   16: 4
                   32: 5
                   64: 6
              default: 7
          }
         3: .line 96
      StackMap locals: jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
      StackMap stack:
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            getfield jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.reflection:Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 5 /* base */
            lload 1 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.getByte:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)B
            i2l
            lreturn
         4: .line 98
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            getfield jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.reflection:Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 5 /* base */
            lload 1 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.getShort:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)S
            i2l
            lreturn
         5: .line 100
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            getfield jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.reflection:Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 5 /* base */
            lload 1 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.getInt:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)I
            i2l
            lreturn
         6: .line 102
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            getfield jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.reflection:Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 5 /* base */
            lload 1 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.getLong:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)J
            lreturn
         7: .line 104
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            iload 4 /* bits */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* baseConstant */
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asRawPointer:(Ljdk/vm/ci/meta/Constant;)J
            lstore 6 /* pointer */
        start local 6 // long pointer
         9: .line 108
            iload 4 /* bits */
            lookupswitch { // 4
                    8: 10
                   16: 11
                   32: 12
                   64: 13
              default: 14
          }
        10: .line 110
      StackMap locals: long
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 6 /* pointer */
            lload 1 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
            i2l
            lreturn
        11: .line 112
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 6 /* pointer */
            lload 1 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getShort:(J)S
            i2l
            lreturn
        12: .line 114
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 6 /* pointer */
            lload 1 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
            i2l
            lreturn
        13: .line 116
      StackMap locals:
      StackMap stack:
            getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
            lload 6 /* pointer */
            lload 1 /* displacement */
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getLong:(J)J
            lreturn
        14: .line 118
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            iload 4 /* bits */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // long pointer
        end local 5 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl base
        end local 4 // int bits
        end local 3 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // long displacement
        end local 0 // jdk.vm.ci.meta.Constant baseConstant
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0  baseConstant  Ljdk/vm/ci/meta/Constant;
            0   15     1  displacement  J
            0   15     3          kind  Ljdk/vm/ci/meta/JavaKind;
            0   15     4          bits  I
            1   15     5          base  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            9   15     6       pointer  J
    MethodParameters:
              Name  Flags
      baseConstant  
      displacement  
      kind          
      bits          

  private boolean verifyReadRawObject(jdk.vm.ci.meta.JavaConstant, jdk.vm.ci.meta.Constant, long);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/Constant;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl this
        start local 1 // jdk.vm.ci.meta.JavaConstant expected
        start local 2 // jdk.vm.ci.meta.Constant base
        start local 3 // long displacement
         0: .line 124
            aload 2 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 6
         1: .line 125
            aload 2 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceObject;
            astore 5 /* metaspaceObject */
        start local 5 // jdk.vm.ci.hotspot.MetaspaceObject metaspaceObject
         2: .line 126
            aload 5 /* metaspaceObject */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 6
         3: .line 127
            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.javaMirrorOffset:I
            i2l
            lcmp
            ifne 6
         4: .line 128
            aload 5 /* metaspaceObject */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            astore 6 /* type */
        start local 6 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl type
         5: .line 129
            getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
            ifne 6
            aload 1 /* expected */
            aload 6 /* type */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.getJavaMirror:()Ljdk/vm/ci/meta/JavaConstant;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 6 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl type
        end local 5 // jdk.vm.ci.hotspot.MetaspaceObject metaspaceObject
         6: .line 133
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // long displacement
        end local 2 // jdk.vm.ci.meta.Constant base
        end local 1 // jdk.vm.ci.meta.JavaConstant expected
        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         expected  Ljdk/vm/ci/meta/JavaConstant;
            0    7     2             base  Ljdk/vm/ci/meta/Constant;
            0    7     3     displacement  J
            2    6     5  metaspaceObject  Ljdk/vm/ci/hotspot/MetaspaceObject;
            5    6     6             type  Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
    MethodParameters:
              Name  Flags
      expected      
      base          
      displacement  

  private jdk.vm.ci.meta.JavaConstant readRawObject(jdk.vm.ci.meta.Constant, long, boolean);
    descriptor: (Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/meta/JavaConstant;
    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 137
            lload 2 /* initialDisplacement */
            lstore 5 /* displacement */
        start local 5 // long displacement
         1: .line 139
            aload 1 /* baseConstant */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            lload 5 /* displacement */
            invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            astore 8 /* base */
        start local 8 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl base
         2: .line 140
            aload 8 /* base */
            ifnonnull 7
         3: .line 141
            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 142
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long top jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
      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 143
            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;
            lload 5 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.readUncompressedOop:(J)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            astore 7 /* ret */
        start local 7 // jdk.vm.ci.meta.JavaConstant ret
         6: .line 144
            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:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/Constant;J)Z
            ifne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // jdk.vm.ci.meta.JavaConstant ret
         7: .line 146
      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 147
      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.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 8 /* base */
            lload 5 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getObject:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
            astore 7 /* ret */
        start local 7 // jdk.vm.ci.meta.JavaConstant ret
         9: .line 149
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long jdk.vm.ci.meta.JavaConstant jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
      StackMap stack:
            aload 7 /* ret */
            ifnonnull 10
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 7 /* ret */
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.JavaConstant
        11: areturn
        end local 8 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl base
        end local 7 // jdk.vm.ci.meta.JavaConstant 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   12     0                 this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0   12     1         baseConstant  Ljdk/vm/ci/meta/Constant;
            0   12     2  initialDisplacement  J
            0   12     4           compressed  Z
            1   12     5         displacement  J
            6    7     7                  ret  Ljdk/vm/ci/meta/JavaConstant;
            9   12     7                  ret  Ljdk/vm/ci/meta/JavaConstant;
            2   12     8                 base  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    MethodParameters:
                     Name  Flags
      baseConstant         
      initialDisplacement  
      compressed           

  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=5, 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 155
            aload 2 /* baseConstant */
            lload 3 /* initialDisplacement */
            aload 1 /* kind */
            iload 5 /* bits */
            invokestatic 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 156
            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 158
      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 160
      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 162
      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 164
      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 166
      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 168
      StackMap locals:
      StackMap stack:
            lload 6 /* rawValue */
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
        15: areturn
        16: .line 170
      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 172
      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 174
      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 176
      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 177
            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 183
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 2
         1: .line 184
            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)Ljdk/vm/ci/meta/JavaConstant;
            areturn
         2: .line 186
      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 4
         3: .line 187
            aconst_null
            areturn
         4: .line 189
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 8
         5: .line 190
            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.javaMirrorOffset:I
            i2l
            lcmp
            ifne 8
         6: .line 191
            aload 1 /* base */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceObject;
            astore 4 /* metaspaceObject */
        start local 4 // jdk.vm.ci.hotspot.MetaspaceObject metaspaceObject
         7: .line 192
            aload 4 /* metaspaceObject */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.getJavaMirror:()Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // jdk.vm.ci.hotspot.MetaspaceObject metaspaceObject
         8: .line 194
      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)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    9     0             this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    9     1             base  Ljdk/vm/ci/meta/Constant;
            0    9     2     displacement  J
            7    8     4  metaspaceObject  Ljdk/vm/ci/hotspot/MetaspaceObject;
    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=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 199
            aload 0 /* this */
            aload 1 /* base */
            lload 2 /* displacement */
            iconst_1
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/meta/JavaConstant;
            astore 4 /* res */
        start local 4 // jdk.vm.ci.meta.JavaConstant res
         1: .line 200
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            aload 4 /* res */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
            getstatic jdk.vm.ci.hotspot.HotSpotCompressedNullConstant.COMPRESSED_NULL:Ljdk/vm/ci/meta/JavaConstant;
            goto 3
      StackMap locals: jdk.vm.ci.meta.JavaConstant
      StackMap stack:
         2: aload 4 /* res */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstant
            invokeinterface jdk.vm.ci.hotspot.HotSpotObjectConstant.compress:()Ljdk/vm/ci/meta/JavaConstant;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.JavaConstant
         3: areturn
        end local 4 // jdk.vm.ci.meta.JavaConstant res
        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           res  Ljdk/vm/ci/meta/JavaConstant;
    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=5, 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 204
            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 205
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            ifeq 3
         2: .line 206
            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 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.asResolvedJavaType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            lload 2 /* displacement */
            iload 4 /* compressed */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType:(Ljdk/vm/ci/hotspot/MetaspaceObject;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            areturn
         3: .line 208
      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.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            lload 2 /* displacement */
            iload 4 /* compressed */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
            areturn
        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    4     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    4     1          base  Ljdk/vm/ci/meta/Constant;
            0    4     2  displacement  J
            0    4     4    compressed  Z
    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 215
            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 216
            aload 4 /* klass */
            ifnonnull 3
         2: .line 217
            getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 219
      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/MetaspaceObject;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 224
            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 225
            aload 4 /* klass */
            ifnonnull 3
         2: .line 226
            getstatic jdk.vm.ci.hotspot.HotSpotCompressedNullConstant.COMPRESSED_NULL:Ljdk/vm/ci/meta/JavaConstant;
            areturn
         3: .line 228
      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/MetaspaceObject;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=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 233
            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 234
      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.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
            aload 1 /* base */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            lload 2 /* displacement */
            invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaMethod:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;J)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
            astore 4 /* method */
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
         2: .line 235
            aload 4 /* method */
            iconst_0
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl method
        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    3     0          this  Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            0    3     1          base  Ljdk/vm/ci/meta/Constant;
            0    3     2  displacement  J
            2    3     4        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 37
            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"