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.HotSpotJVMCIRuntime runtime;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
    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

  private final jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl memoryAccess;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
    flags: (0x0012) ACC_PRIVATE, 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.HotSpotJVMCIRuntime);
    descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)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.HotSpotJVMCIRuntime runtime
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 1 /* runtime */
            putfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
         2: .line 48
            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 49
            aload 0 /* this */
            new jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl
            dup
            aload 1 /* runtime */
            invokespecial jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.<init>:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;)V
            putfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.memoryAccess:Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
         4: .line 50
            return
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime 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/HotSpotJVMCIRuntime;
    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 */
            aload 2 /* y */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 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
            astore 2 /* arrayObject */
        start local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
         3: .line 80
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 2 /* arrayObject */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.getLength:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)Ljava/lang/Integer;
            areturn
        end local 2 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl 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    4     0         this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    4     1        array  Ljdk/vm/ci/meta/JavaConstant;
            3    4     2  arrayObject  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    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=3, locals=4, 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 85
            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 86
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            astore 3 /* arrayObject */
        start local 3 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
         3: .line 89
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 3 /* arrayObject */
            iload 2 /* index */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.readArrayElement:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;I)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 3 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl arrayObject
        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    4     0         this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    4     1        array  Ljdk/vm/ci/meta/JavaConstant;
            0    4     2        index  I
            3    4     3  arrayObject  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    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 100
            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 102
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 104
      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 108
      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 110
      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 113
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 115
      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=2, 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 121
            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 122
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 1 /* source */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.boxPrimitive:(Ljdk/vm/ci/meta/JavaConstant;)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=2, 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 129
            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 130
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ifeq 4
         3: .line 133
            aconst_null
            areturn
         4: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 1 /* source */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.unboxPrimitive:(Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;)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    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=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // java.lang.String value
         0: .line 140
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 1 /* value */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.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=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider this
        start local 1 // java.lang.Object value
         0: .line 144
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getReflection:()Ljdk/vm/ci/hotspot/HotSpotJVMCIReflection;
            aload 1 /* value */
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIReflection.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=1, 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 149
            aload 1 /* constant */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 2
         1: .line 150
            aload 1 /* constant */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.asJavaType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
         2: .line 152
      StackMap locals:
      StackMap stack:
            aload 1 /* constant */
            instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
            ifeq 6
         3: .line 153
            aload 1 /* constant */
            invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceObject;
            astore 2 /* obj */
        start local 2 // jdk.vm.ci.hotspot.MetaspaceObject obj
         4: .line 154
            aload 2 /* obj */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            ifeq 6
         5: .line 155
            aload 2 /* obj */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            areturn
        end local 2 // jdk.vm.ci.hotspot.MetaspaceObject obj
         6: .line 158
      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    7     0      this  Ljdk/vm/ci/hotspot/HotSpotConstantReflectionProvider;
            0    7     1  constant  Ljdk/vm/ci/meta/Constant;
            4    6     2       obj  Ljdk/vm/ci/hotspot/MetaspaceObject;
    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 163
            aload 1 /* field */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            astore 3 /* hotspotField */
        start local 3 // jdk.vm.ci.hotspot.HotSpotResolvedJavaField hotspotField
         1: .line 164
            aload 3 /* hotspotField */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isStatic:()Z
            ifeq 5
         2: .line 165
            aload 3 /* hotspotField */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
            astore 4 /* holder */
        start local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         3: .line 166
            aload 4 /* holder */
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.isInitialized:()Z
            ifeq 9
         4: .line 167
            aload 4 /* holder */
            aload 3 /* hotspotField */
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isVolatile:()Z
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Z)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl holder
         5: .line 170
      StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedJavaField
      StackMap stack:
            aload 2 /* receiver */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNonNull:()Z
            ifeq 9
            aload 2 /* receiver */
            instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            ifeq 9
         6: .line 171
            aload 2 /* receiver */
            checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
            astore 4 /* object */
        start local 4 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         7: .line 172
            aload 3 /* hotspotField */
            aload 2 /* receiver */
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isInObject:(Ljdk/vm/ci/meta/JavaConstant;)Z
            ifeq 9
         8: .line 173
            aload 4 /* object */
            aload 3 /* hotspotField */
            aload 1 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isVolatile:()Z
            invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.readFieldValue:(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Z)Ljdk/vm/ci/meta/JavaConstant;
            areturn
        end local 4 // jdk.vm.ci.hotspot.HotSpotObjectConstantImpl object
         9: .line 177
      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/HotSpotResolvedObjectTypeImpl;
            7    9     4        object  Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
    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 182
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaType
            invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedJavaType.getJavaMirror:()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 187
            aload 1 /* type */
            instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            ifeq 2
         1: .line 188
            aload 1 /* type */
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
            invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.klass:()Ljdk/vm/ci/meta/Constant;
            areturn
         2: .line 190
      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 40
            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"