abstract class com.oracle.truffle.object.CoreLocations
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.object.CoreLocations
  super_class: java.lang.Object
{
  static final int LONG_FIELD_SLOT_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LONG_ARRAY_SLOT_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int OBJECT_SLOT_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int MAX_DYNAMIC_FIELDS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  static final com.oracle.truffle.object.CoreLocations$SimpleObjectFieldLocation OBJECT_ARRAY_LOCATION;
    descriptor: Lcom/oracle/truffle/object/CoreLocations$SimpleObjectFieldLocation;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final com.oracle.truffle.object.CoreLocations$SimpleObjectFieldLocation PRIMITIVE_ARRAY_LOCATION;
    descriptor: Lcom/oracle/truffle/object/CoreLocations$SimpleObjectFieldLocation;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 1020
            iconst_0
            istore 0 /* index */
        start local 0 // int index
         1: .line 1021
            new com.oracle.truffle.object.CoreLocations$1
            dup
            iload 0 /* index */
            iinc 0 /* index */ 1
            invokespecial com.oracle.truffle.object.CoreLocations$1.<init>:(I)V
            putstatic com.oracle.truffle.object.CoreLocations.OBJECT_ARRAY_LOCATION:Lcom/oracle/truffle/object/CoreLocations$SimpleObjectFieldLocation;
         2: .line 1038
            new com.oracle.truffle.object.CoreLocations$2
            dup
            iload 0 /* index */
            iinc 0 /* index */ 1
            invokespecial com.oracle.truffle.object.CoreLocations$2.<init>:(I)V
            putstatic com.oracle.truffle.object.CoreLocations.PRIMITIVE_ARRAY_LOCATION:Lcom/oracle/truffle/object/CoreLocations$SimpleObjectFieldLocation;
        end local 0 // int index
         3: .line 1054
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    3     0  index  I

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.CoreLocations this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.object.CoreLocations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/CoreLocations;

  public static com.oracle.truffle.object.CoreLocations$LongLocation createLongLocation(com.oracle.truffle.object.CoreLocations$LongLocation, boolean);
    descriptor: (Lcom/oracle/truffle/object/CoreLocations$LongLocation;Z)Lcom/oracle/truffle/object/CoreLocations$LongLocation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.CoreLocations$LongLocation longLocation
        start local 1 // boolean allowInt
         0: .line 574
            iload 1 /* allowInt */
            ifne 1
            aload 0 /* longLocation */
            instanceof com.oracle.truffle.object.CoreLocations$LongLocationDecorator
            ifne 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* longLocation */
            instanceof com.oracle.truffle.object.CoreLocations$LongLocationDecorator
            ifeq 3
            aload 0 /* longLocation */
            checkcast com.oracle.truffle.object.CoreLocations$LongLocationDecorator
            getfield com.oracle.truffle.object.CoreLocations$LongLocationDecorator.allowInt:Z
            iload 1 /* allowInt */
            if_icmpne 3
         2: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* longLocation */
            areturn
         3: .line 577
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.object.CoreLocations$LongLocationDecorator
            dup
            aload 0 /* longLocation */
            iload 1 /* allowInt */
            invokespecial com.oracle.truffle.object.CoreLocations$LongLocationDecorator.<init>:(Lcom/oracle/truffle/object/CoreLocations$LongLocation;Z)V
            areturn
        end local 1 // boolean allowInt
        end local 0 // com.oracle.truffle.object.CoreLocations$LongLocation longLocation
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0  longLocation  Lcom/oracle/truffle/object/CoreLocations$LongLocation;
            0    4     1      allowInt  Z
    MethodParameters:
              Name  Flags
      longLocation  
      allowInt      

  static long decodeLong(int, int);
    descriptor: (II)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // int lower
        start local 1 // int upper
         0: .line 913
            iload 0 /* lower */
            i2l
            ldc 4294967295
            land
            iload 1 /* upper */
            i2l
            bipush 32
            lshl
            lor
            lreturn
        end local 1 // int upper
        end local 0 // int lower
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  lower  I
            0    1     1  upper  I
    MethodParameters:
       Name  Flags
      lower  
      upper  

  static int lowerInt(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // long value
         0: .line 917
            lload 0 /* value */
            l2i
            ireturn
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  J
    MethodParameters:
       Name  Flags
      value  

  static int upperInt(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long value
         0: .line 921
            lload 0 /* value */
            bipush 32
            lushr
            l2i
            ireturn
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  J
    MethodParameters:
       Name  Flags
      value  

  static int getLocationOrdinal(com.oracle.truffle.object.CoreLocation);
    descriptor: (Lcom/oracle/truffle/object/CoreLocation;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.object.CoreLocation loc
         0: .line 994
            aload 0 /* loc */
            invokevirtual com.oracle.truffle.object.CoreLocation.getInternalLocation:()Lcom/oracle/truffle/object/LocationImpl;
            astore 1 /* internal */
        start local 1 // com.oracle.truffle.object.LocationImpl internal
         1: .line 995
            aload 1 /* internal */
            instanceof com.oracle.truffle.object.CoreLocations$LongLocation
            istore 2 /* isPrimitive */
        start local 2 // boolean isPrimitive
         2: .line 996
            aload 1 /* internal */
            instanceof com.oracle.truffle.object.CoreLocations$FieldLocation
            ifeq 6
         3: .line 997
            iload 2 /* isPrimitive */
            ifeq 4
            ldc -2147483648
            goto 5
      StackMap locals: com.oracle.truffle.object.LocationImpl int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: aload 1 /* internal */
            checkcast com.oracle.truffle.object.CoreLocations$FieldLocation
            invokevirtual com.oracle.truffle.object.CoreLocations$FieldLocation.getIndex:()I
            iadd
            ireturn
         6: .line 998
      StackMap locals:
      StackMap stack:
            aload 1 /* internal */
            instanceof com.oracle.truffle.object.CoreLocations$ArrayLocation
            ifeq 10
         7: .line 999
            iload 2 /* isPrimitive */
            ifeq 8
            ldc -2147483648
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: sipush 1000
            iadd
            aload 1 /* internal */
            checkcast com.oracle.truffle.object.CoreLocations$ArrayLocation
            invokevirtual com.oracle.truffle.object.CoreLocations$ArrayLocation.getIndex:()I
            iadd
            ireturn
        10: .line 1001
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* internal */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // boolean isPrimitive
        end local 1 // com.oracle.truffle.object.LocationImpl internal
        end local 0 // com.oracle.truffle.object.CoreLocation loc
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0          loc  Lcom/oracle/truffle/object/CoreLocation;
            1   11     1     internal  Lcom/oracle/truffle/object/LocationImpl;
            2   11     2  isPrimitive  Z
    MethodParameters:
      Name  Flags
      loc   

  static sun.misc.Unsafe getUnsafe();
    descriptor: ()Lsun/misc/Unsafe;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 1007
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
         1: areturn
         2: .line 1008
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 1011
            ldc Lsun/misc/Unsafe;
            ldc "theUnsafe"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 0 /* theUnsafeInstance */
        start local 0 // java.lang.reflect.Field theUnsafeInstance
         4: .line 1012
            aload 0 /* theUnsafeInstance */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         5: .line 1013
            aload 0 /* theUnsafeInstance */
            ldc Lsun/misc/Unsafe;
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.misc.Unsafe
         6: areturn
        end local 0 // java.lang.reflect.Field theUnsafeInstance
         7: .line 1014
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
         8: .line 1015
            new java.lang.RuntimeException
            dup
            ldc "exception while trying to get Unsafe.theUnsafe via reflection:"
            aload 0 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            4    7     0  theUnsafeInstance  Ljava/lang/reflect/Field;
            8    9     0                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
           3     6       7  Class java.lang.Exception
}
SourceFile: "CoreLocations.java"
NestMembers:
  com.oracle.truffle.object.CoreLocations$1  com.oracle.truffle.object.CoreLocations$2  com.oracle.truffle.object.CoreLocations$ArrayLocation  com.oracle.truffle.object.CoreLocations$BooleanLocation  com.oracle.truffle.object.CoreLocations$BooleanLocationDecorator  com.oracle.truffle.object.CoreLocations$ConstantLocation  com.oracle.truffle.object.CoreLocations$DeclaredLocation  com.oracle.truffle.object.CoreLocations$DoubleLocation  com.oracle.truffle.object.CoreLocations$DoubleLocationDecorator  com.oracle.truffle.object.CoreLocations$DynamicLongFieldLocation  com.oracle.truffle.object.CoreLocations$DynamicObjectFieldLocation  com.oracle.truffle.object.CoreLocations$FieldLocation  com.oracle.truffle.object.CoreLocations$IntLocation  com.oracle.truffle.object.CoreLocations$IntLocationDecorator  com.oracle.truffle.object.CoreLocations$LongArrayLocation  com.oracle.truffle.object.CoreLocations$LongLocation  com.oracle.truffle.object.CoreLocations$LongLocationDecorator  com.oracle.truffle.object.CoreLocations$ObjectArrayLocation  com.oracle.truffle.object.CoreLocations$ObjectLocation  com.oracle.truffle.object.CoreLocations$PrimitiveLocationDecorator  com.oracle.truffle.object.CoreLocations$SimpleLongFieldLocation  com.oracle.truffle.object.CoreLocations$SimpleObjectFieldLocation  com.oracle.truffle.object.CoreLocations$TypedLocation  com.oracle.truffle.object.CoreLocations$ValueLocation
InnerClasses:
  com.oracle.truffle.object.CoreLocations$1
  com.oracle.truffle.object.CoreLocations$2
  public abstract ArrayLocation = com.oracle.truffle.object.CoreLocations$ArrayLocation of com.oracle.truffle.object.CoreLocations
  public abstract BooleanLocation = com.oracle.truffle.object.CoreLocations$BooleanLocation of com.oracle.truffle.object.CoreLocations
  BooleanLocationDecorator = com.oracle.truffle.object.CoreLocations$BooleanLocationDecorator of com.oracle.truffle.object.CoreLocations
  public final ConstantLocation = com.oracle.truffle.object.CoreLocations$ConstantLocation of com.oracle.truffle.object.CoreLocations
  public final DeclaredLocation = com.oracle.truffle.object.CoreLocations$DeclaredLocation of com.oracle.truffle.object.CoreLocations
  public abstract DoubleLocation = com.oracle.truffle.object.CoreLocations$DoubleLocation of com.oracle.truffle.object.CoreLocations
  DoubleLocationDecorator = com.oracle.truffle.object.CoreLocations$DoubleLocationDecorator of com.oracle.truffle.object.CoreLocations
  final DynamicLongFieldLocation = com.oracle.truffle.object.CoreLocations$DynamicLongFieldLocation of com.oracle.truffle.object.CoreLocations
  final DynamicObjectFieldLocation = com.oracle.truffle.object.CoreLocations$DynamicObjectFieldLocation of com.oracle.truffle.object.CoreLocations
  public abstract FieldLocation = com.oracle.truffle.object.CoreLocations$FieldLocation of com.oracle.truffle.object.CoreLocations
  public abstract IntLocation = com.oracle.truffle.object.CoreLocations$IntLocation of com.oracle.truffle.object.CoreLocations
  IntLocationDecorator = com.oracle.truffle.object.CoreLocations$IntLocationDecorator of com.oracle.truffle.object.CoreLocations
  LongArrayLocation = com.oracle.truffle.object.CoreLocations$LongArrayLocation of com.oracle.truffle.object.CoreLocations
  public abstract LongLocation = com.oracle.truffle.object.CoreLocations$LongLocation of com.oracle.truffle.object.CoreLocations
  LongLocationDecorator = com.oracle.truffle.object.CoreLocations$LongLocationDecorator of com.oracle.truffle.object.CoreLocations
  ObjectArrayLocation = com.oracle.truffle.object.CoreLocations$ObjectArrayLocation of com.oracle.truffle.object.CoreLocations
  public abstract ObjectLocation = com.oracle.truffle.object.CoreLocations$ObjectLocation of com.oracle.truffle.object.CoreLocations
  public abstract PrimitiveLocationDecorator = com.oracle.truffle.object.CoreLocations$PrimitiveLocationDecorator of com.oracle.truffle.object.CoreLocations
  public abstract SimpleLongFieldLocation = com.oracle.truffle.object.CoreLocations$SimpleLongFieldLocation of com.oracle.truffle.object.CoreLocations
  public abstract SimpleObjectFieldLocation = com.oracle.truffle.object.CoreLocations$SimpleObjectFieldLocation of com.oracle.truffle.object.CoreLocations
  public abstract TypedLocation = com.oracle.truffle.object.CoreLocations$TypedLocation of com.oracle.truffle.object.CoreLocations
  public abstract ValueLocation = com.oracle.truffle.object.CoreLocations$ValueLocation of com.oracle.truffle.object.CoreLocations