public class jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider implements jdk.vm.ci.meta.ConstantReflectionProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider
  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

  protected final jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider methodHandleAccess;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl memoryAccess;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  public void <init>(jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider runtime
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* runtime */
            putfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
         2: .line 49
            aload 0 /* this */
            new jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider
            dup
            aload 0 /* this */
            invokespecial jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider.<init>:(Ljdk/vm/ci/meta/ConstantReflectionProvider;)V
            putfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.methodHandleAccess:Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
         3: .line 50
            aload 0 /* this */
            new jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl
            dup
            aload 1 /* runtime */
            invokespecial jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.<init>:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)V
            putfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.memoryAccess:Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
         4: .line 51
            return
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider runtime
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    5     1  runtime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
    MethodParameters:
         Name  Flags
      runtime  

  public jdk.vm.ci.meta.MethodHandleAccessProvider getMethodHandleAccess();
    descriptor: ()Ljdk/vm/ci/meta/MethodHandleAccessProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
         0: .line 54
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.methodHandleAccess:Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider;
            areturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;

  public jdk.vm.ci.meta.MemoryAccessProvider getMemoryAccessProvider();
    descriptor: ()Ljdk/vm/ci/meta/MemoryAccessProvider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
         0: .line 59
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.memoryAccess:Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            areturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;

  public java.lang.Boolean constantEquals(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.Constant);
    descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.Constant x
        start local 2 // jdk.vm.ci.meta.Constant y
         0: .line 64
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 65
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         2: .line 66
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 5
         3: .line 67
            aload 2 /* y */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 4
            aload 1 /* x */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            aload 2 /* y */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            if_acmpne 4
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         5: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 2 /* y */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 2 // jdk.vm.ci.meta.Constant y
        end local 1 // jdk.vm.ci.meta.Constant x
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    6     1     x  Ljdk/vm/ci/meta/Constant;
            0    6     2     y  Ljdk/vm/ci/meta/Constant;
    MethodParameters:
      Name  Flags
      x     
      y     

  public java.lang.Integer readArrayLength(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.JavaConstant array
         0: .line 75
            aload 1 /* array */
            ifnull 1
            aload 1 /* array */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 1 /* array */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ifeq 2
         1: .line 76
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 2 /* arrayObject */
        start local 2 // java.lang.Object arrayObject
         3: .line 80
            aload 2 /* arrayObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifne 5
         4: .line 81
            aconst_null
            areturn
         5: .line 83
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* arrayObject */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 2 // java.lang.Object arrayObject
        end local 1 // jdk.vm.ci.meta.JavaConstant array
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    6     1        array  Ljdk/vm/ci/meta/JavaConstant;
            3    6     2  arrayObject  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  

  public jdk.vm.ci.meta.JavaConstant readArrayElement(jdk.vm.ci.meta.JavaConstant, int);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;I)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.JavaConstant array
        start local 2 // int index
         0: .line 88
            aload 1 /* array */
            ifnull 1
            aload 1 /* array */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 1 /* array */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ifeq 2
         1: .line 89
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 3 /* a */
        start local 3 // java.lang.Object a
         3: .line 93
            aload 3 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
            iload 2 /* index */
            iflt 4
            iload 2 /* index */
            aload 3 /* a */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            if_icmplt 5
         4: .line 94
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
         5: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            instanceof java.lang.Object[]
            ifeq 8
         6: .line 98
            aload 3 /* a */
            checkcast java.lang.Object[]
            iload 2 /* index */
            aaload
            astore 4 /* element */
        start local 4 // java.lang.Object element
         7: .line 99
            aload 4 /* element */
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Object element
         8: .line 101
      StackMap locals:
      StackMap stack:
            aload 3 /* a */
            iload 2 /* index */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        end local 3 // java.lang.Object a
        end local 2 // int index
        end local 1 // jdk.vm.ci.meta.JavaConstant array
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    9     1    array  Ljdk/vm/ci/meta/JavaConstant;
            0    9     2    index  I
            3    9     3        a  Ljava/lang/Object;
            7    8     4  element  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  
      index  

  private static boolean isBoxCached(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.JavaConstant source
         0: .line 114
            invokestatic jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 1
                    2: 4
                    3: 4
                    4: 2
                    5: 4
                    6: 8
                    7: 6
                    8: 8
              default: 9
          }
         1: .line 116
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            bipush 127
            if_icmpgt 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            bipush -128
            if_icmplt 5
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            bipush 127
            if_icmpgt 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            ldc -128
            lcmp
            iflt 7
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            ldc 127
            lcmp
            ifgt 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 127
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 129
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected kind "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            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 0 // jdk.vm.ci.meta.JavaConstant source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  source  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
        Name  Flags
      source  

  public jdk.vm.ci.meta.JavaConstant boxPrimitive(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.JavaConstant source
         0: .line 135
            aload 1 /* source */
            ifnull 1
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
            ifeq 1
            aload 1 /* source */
            invokestatic jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.isBoxCached:(Ljdk/vm/ci/meta/JavaConstant;)Z
            ifne 2
         1: .line 136
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 138
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asBoxedPrimitive:()Ljava/lang/Object;
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant source
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    3     1  source  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
        Name  Flags
      source  

  public jdk.vm.ci.meta.JavaConstant unboxPrimitive(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.JavaConstant source
         0: .line 143
            aload 1 /* source */
            ifnull 1
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isObject:()Z
            ifne 2
         1: .line 144
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ifeq 4
         3: .line 147
            aconst_null
            areturn
         4: .line 149
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            invokestatic jdk.vm.ci.meta.JavaConstant.forBoxedPrimitive:(Ljava/lang/Object;)Ljdk/vm/ci/meta/PrimitiveConstant;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant source
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    5     1  source  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
        Name  Flags
      source  

  public jdk.vm.ci.meta.JavaConstant forString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // java.lang.String value
         0: .line 153
            aload 1 /* value */
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // java.lang.String value
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    1     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  public jdk.vm.ci.meta.JavaConstant forObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // java.lang.Object value
         0: .line 157
            aload 1 /* value */
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public jdk.vm.ci.meta.ResolvedJavaType asJavaType(jdk.vm.ci.meta.Constant);
    descriptor: (Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.Constant constant
         0: .line 162
            aload 1 /* constant */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstant
            ifeq 4
         1: .line 163
            aload 1 /* constant */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 2 /* obj */
        start local 2 // java.lang.Object obj
         2: .line 164
            aload 2 /* obj */
            instanceof java.lang.Class
            ifeq 4
         3: .line 165
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.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 */
            checkcast java.lang.Class
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
        end local 2 // java.lang.Object obj
         4: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* constant */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 8
         5: .line 169
            aload 1 /* constant */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
            astore 2 /* obj */
        start local 2 // jdk.vm.ci.hotspot.MetaspaceWrapperObject obj
         6: .line 170
            aload 2 /* obj */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 8
         7: .line 171
            aload 2 /* obj */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            areturn
        end local 2 // jdk.vm.ci.hotspot.MetaspaceWrapperObject obj
         8: .line 174
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // jdk.vm.ci.meta.Constant constant
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    9     1  constant  Ljdk/vm/ci/meta/Constant;
            2    4     2       obj  Ljava/lang/Object;
            6    8     2       obj  Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
    MethodParameters:
          Name  Flags
      constant  

  public jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 2 // jdk.vm.ci.meta.JavaConstant receiver
         0: .line 178
            aload 1 /* field */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            astore 3 /* hotspotField */
        start local 3 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField hotspotField
         1: .line 179
            aload 3 /* hotspotField */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isStatic:()Z
            ifeq 5
         2: .line 180
            aload 3 /* hotspotField */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaType
            astore 4 /* holder */
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType holder
         3: .line 181
            aload 4 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaType.isInitialized:()Z
            ifeq 9
         4: .line 182
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.memoryAccess:Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            aload 3 /* hotspotField */
            aload 4 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaType.mirror:()Ljava/lang/Class;
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedJavaType holder
         5: .line 185
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedJavaField
      StackMap stack:
            aload 2 /* receiver */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNonNull:()Z
            ifeq 9
         6: .line 186
            aload 2 /* receiver */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
            astore 4 /* object */
        start local 4 // java.lang.Object object
         7: .line 187
            aload 3 /* hotspotField */
            aload 4 /* object */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isInObject:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 188
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.memoryAccess:Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
            aload 3 /* hotspotField */
            aload 4 /* object */
            invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // java.lang.Object object
         9: .line 192
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField hotspotField
        end local 2 // jdk.vm.ci.meta.JavaConstant receiver
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0   10     1         field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   10     2      receiver  Ljdk/vm/ci/meta/JavaConstant;
            1   10     3  hotspotField  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
            3    5     4        holder  Ljdk/vm/ci/hotspot/HotSpotResolvedJavaType;
            7    9     4        object  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      field     
      receiver  

  public jdk.vm.ci.meta.JavaConstant asJavaClass(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaConstant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 197
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaType
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaType.mirror:()Ljava/lang/Class;
            invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    1     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.Constant asObjectHub(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/Constant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 202
            aload 1 /* type */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            ifeq 2
         1: .line 203
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.klass:()Ljdk/vm/ci/meta/Constant;
            areturn
         2: .line 205
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.common.JVMCIError.unimplemented:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    3     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 41
            getstatic jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.$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.HotSpotConstantReflectionProvider.$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: "HotSpotConstantReflectionProvider.java"