public final class com.oracle.svm.core.genscavenge.ObjectHeaderImpl extends com.oracle.svm.core.heap.ObjectHeader
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.ObjectHeaderImpl
  super_class: com.oracle.svm.core.heap.ObjectHeader
{
  private static final org.graalvm.word.UnsignedWord UNALIGNED_BIT;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.word.UnsignedWord REMEMBERED_SET_BIT;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.word.UnsignedWord FORWARDED_BIT;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int RESERVED_BITS_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final org.graalvm.word.UnsignedWord MASK_HEADER_BITS;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.word.UnsignedWord CLEAR_HEADER_BITS;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 63
            ldc Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            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 com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
         3: .line 66
            iconst_1
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            putstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.UNALIGNED_BIT:Lorg/graalvm/word/UnsignedWord;
         4: .line 67
            iconst_2
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            putstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.REMEMBERED_SET_BIT:Lorg/graalvm/word/UnsignedWord;
         5: .line 68
            iconst_4
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            putstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.FORWARDED_BIT:Lorg/graalvm/word/UnsignedWord;
         6: .line 71
            bipush 7
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            putstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
         7: .line 72
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.not:()Lorg/graalvm/word/UnsignedWord;
            putstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.CLEAR_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
         0: .line 76
            aload 0 /* this */
            invokespecial com.oracle.svm.core.heap.ObjectHeader.<init>:()V
         1: .line 77
            return
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  public static com.oracle.svm.core.genscavenge.ObjectHeaderImpl getObjectHeaderImpl();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 81
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getObjectHeaderImpl:()Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            astore 0 /* oh */
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl oh
         1: .line 82
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* oh */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 83
      StackMap locals: com.oracle.svm.core.genscavenge.ObjectHeaderImpl
      StackMap stack:
            aload 0 /* oh */
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl oh
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0    oh  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public int getReservedBitsMask();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
         0: .line 88
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            ldc 7
            lcmp
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 89
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 2
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.CLEAR_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            ldc -8
            lcmp
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 90
      StackMap locals:
      StackMap stack:
            bipush 7
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;

  public static org.graalvm.word.UnsignedWord readHeaderFromPointer(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.Pointer objectPointer
         0: .line 100
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 2
         1: .line 101
            aload 0 /* objectPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokeinterface org.graalvm.word.Pointer.readInt:(I)I
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            areturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* objectPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokeinterface org.graalvm.word.Pointer.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            areturn
        end local 0 // org.graalvm.word.Pointer objectPointer
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  objectPointer  Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
               Name  Flags
      objectPointer  

  public static org.graalvm.word.UnsignedWord readHeaderFromPointerCarefully(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.word.Pointer p
         0: .line 108
            aload 0 /* p */
            invokeinterface org.graalvm.word.Pointer.isNull:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ldc "ObjectHeader.readHeaderFromPointerCarefully:  p: null"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         3: .line 109
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.haveCompressedReferences:()Z
            ifne 6
         4: .line 112
            aload 0 /* p */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.Pointer.notEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ldc "ObjectHeader.readHeaderFromPointerCarefully:  p: producedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         5: .line 113
            aload 0 /* p */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.Pointer.notEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ldc "ObjectHeader.readHeaderFromPointerCarefully:  p: consumedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         6: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         7: .line 116
            aload 1 /* header */
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ldc "ObjectHeader.readHeaderFromPointerCarefully:  header: 0"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         8: .line 117
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isProducedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: ldc "ObjectHeader.readHeaderFromPointerCarefully:  header: producedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
        11: .line 118
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isConsumedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
      StackMap locals:
      StackMap stack: int
        13: ldc "ObjectHeader.readHeaderFromPointerCarefully:  header: consumedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
        14: .line 119
            aload 1 /* header */
            areturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0       p  Lorg/graalvm/word/Pointer;
            7   15     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      p     

  public static org.graalvm.word.UnsignedWord readHeaderFromObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object o
         0: .line 124
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 2
         1: .line 125
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokestatic org.graalvm.compiler.word.ObjectAccess.readInt:(Ljava/lang/Object;I)I
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            areturn
         2: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokestatic org.graalvm.compiler.word.ObjectAccess.readWord:(Ljava/lang/Object;I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            areturn
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     o  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      o     

  public static org.graalvm.word.UnsignedWord readHeaderFromObjectCarefully(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object o
         0: .line 132
            aload 0 /* o */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "ObjectHeader.readHeaderFromObjectCarefully:  o: null"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         3: .line 133
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         4: .line 134
            aload 1 /* header */
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ldc "ObjectHeader.readHeaderFromObjectCarefully:  header: 0"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         5: .line 135
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isProducedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ldc "ObjectHeader.readHeaderFromObjectCarefully:  header: producedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         8: .line 136
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isConsumedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: ldc "ObjectHeader.readHeaderFromObjectCarefully:  header: consumedZapValue"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
        11: .line 137
            aload 1 /* header */
            areturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0       o  Ljava/lang/Object;
            4   12     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      o     

  public com.oracle.svm.core.hub.DynamicHub readDynamicHubFromPointer(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/hub/DynamicHub;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // org.graalvm.word.Pointer ptr
         0: .line 143
            aload 1 /* ptr */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* header */
        start local 2 // org.graalvm.word.UnsignedWord header
         1: .line 144
            aload 0 /* this */
            aload 2 /* header */
            invokevirtual com.oracle.svm.core.genscavenge.ObjectHeaderImpl.dynamicHubFromObjectHeader:(Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/hub/DynamicHub;
            areturn
        end local 2 // org.graalvm.word.UnsignedWord header
        end local 1 // org.graalvm.word.Pointer ptr
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0    2     1     ptr  Lorg/graalvm/word/Pointer;
            1    2     2  header  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      ptr   

  public static com.oracle.svm.core.hub.DynamicHub readDynamicHubFromObjectCarefully(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/core/hub/DynamicHub;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object o
         0: .line 148
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObjectCarefully:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            pop
         1: .line 149
            aload 0 /* o */
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readHub:(Ljava/lang/Object;)Lcom/oracle/svm/core/hub/DynamicHub;
            areturn
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public com.oracle.svm.core.hub.DynamicHub dynamicHubFromObjectHeader(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/hub/DynamicHub;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // org.graalvm.word.UnsignedWord header
         0: .line 155
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.clearBits:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* pointerBits */
        start local 2 // org.graalvm.word.UnsignedWord pointerBits
         1: .line 157
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            astore 4 /* referenceAccess */
        start local 4 // com.oracle.svm.core.heap.ReferenceAccess referenceAccess
         2: .line 158
            aload 4 /* referenceAccess */
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.haveCompressedReferences:()Z
            ifeq 6
         3: .line 159
            aload 2 /* pointerBits */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getCompressionShift:()I
            invokeinterface org.graalvm.word.UnsignedWord.unsignedShiftRight:(I)Lorg/graalvm/word/UnsignedWord;
            astore 5 /* compressedBits */
        start local 5 // org.graalvm.word.UnsignedWord compressedBits
         4: .line 160
            aload 4 /* referenceAccess */
            aload 5 /* compressedBits */
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.uncompressReference:(Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
            astore 3 /* objectValue */
        end local 5 // org.graalvm.word.UnsignedWord compressedBits
        start local 3 // java.lang.Object objectValue
         5: .line 161
            goto 7
        end local 3 // java.lang.Object objectValue
         6: .line 162
      StackMap locals: com.oracle.svm.core.genscavenge.ObjectHeaderImpl org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord top com.oracle.svm.core.heap.ReferenceAccess
      StackMap stack:
            aload 2 /* pointerBits */
            checkcast org.graalvm.word.Pointer
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            astore 3 /* objectValue */
        start local 3 // java.lang.Object objectValue
         7: .line 164
      StackMap locals: com.oracle.svm.core.genscavenge.ObjectHeaderImpl org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord java.lang.Object com.oracle.svm.core.heap.ReferenceAccess
      StackMap stack:
            aload 3 /* objectValue */
            ldc Lcom/oracle/svm/core/hub/DynamicHub;
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.hub.DynamicHub
            areturn
        end local 4 // com.oracle.svm.core.heap.ReferenceAccess referenceAccess
        end local 3 // java.lang.Object objectValue
        end local 2 // org.graalvm.word.UnsignedWord pointerBits
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0    8     1           header  Lorg/graalvm/word/UnsignedWord;
            1    8     2      pointerBits  Lorg/graalvm/word/UnsignedWord;
            5    6     3      objectValue  Ljava/lang/Object;
            7    8     3      objectValue  Ljava/lang/Object;
            2    8     4  referenceAccess  Lcom/oracle/svm/core/heap/ReferenceAccess;
            4    5     5   compressedBits  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      header  

  public org.graalvm.compiler.word.Word encodeAsUnmanagedObjectHeader(com.oracle.svm.core.hub.DynamicHub);
    descriptor: (Lcom/oracle/svm/core/hub/DynamicHub;)Lorg/graalvm/compiler/word/Word;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // com.oracle.svm.core.hub.DynamicHub hub
         0: .line 171
            aload 1 /* hub */
            iconst_0
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.encodeAsObjectHeader:(Lcom/oracle/svm/core/hub/DynamicHub;ZZ)Lorg/graalvm/compiler/word/Word;
            areturn
        end local 1 // com.oracle.svm.core.hub.DynamicHub hub
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0    1     1   hub  Lcom/oracle/svm/core/hub/DynamicHub;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      hub   

  public void initializeHeaderOfNewObject(org.graalvm.word.Pointer, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // org.graalvm.word.Pointer objectPointer
        start local 2 // org.graalvm.compiler.word.Word encodedHub
         0: .line 177
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 7
         1: .line 178
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getIdentityHashCodeOffset:()I
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            iconst_4
            iadd
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "assumed layout to optimize initializing write"
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.dynamicAssert:(ZLjava/lang/String;)V
         4: .line 179
            aload 2 /* encodedHub */
            ldc -4294967296
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            invokevirtual org.graalvm.compiler.word.Word.and:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.isNull:()Z
            ldc "hub can only use 32 bit"
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.dynamicAssert:(ZLjava/lang/String;)V
         5: .line 181
            aload 1 /* objectPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            aload 2 /* encodedHub */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            getstatic org.graalvm.word.LocationIdentity.INIT_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokeinterface org.graalvm.word.Pointer.writeLong:(IJLorg/graalvm/word/LocationIdentity;)V
         6: .line 182
            goto 9
         7: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* objectPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            aload 2 /* encodedHub */
            getstatic org.graalvm.word.LocationIdentity.INIT_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokeinterface org.graalvm.word.Pointer.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
         8: .line 184
            aload 1 /* objectPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getIdentityHashCodeOffset:()I
            iconst_0
            getstatic org.graalvm.word.LocationIdentity.INIT_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokeinterface org.graalvm.word.Pointer.writeInt:(IILorg/graalvm/word/LocationIdentity;)V
         9: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.word.Word encodedHub
        end local 1 // org.graalvm.word.Pointer objectPointer
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0   10     1  objectPointer  Lorg/graalvm/word/Pointer;
            0   10     2     encodedHub  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
               Name  Flags
      objectPointer  
      encodedHub     

  private static void dynamicAssert(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // boolean condition
        start local 1 // java.lang.String msg
         0: .line 190
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.inIntrinsic:()Z
            ifeq 3
         1: .line 191
            iload 0 /* condition */
            aload 1 /* msg */
            invokestatic org.graalvm.compiler.replacements.ReplacementsUtil.dynamicAssert:(ZLjava/lang/String;)V
         2: .line 192
            goto 4
         3: .line 193
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 4
            iload 0 /* condition */
            ifne 4
            new java.lang.AssertionError
            dup
            aload 1 /* msg */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 195
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String msg
        end local 0 // boolean condition
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  condition  Z
            0    5     1        msg  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
           Name  Flags
      condition  
      msg        

  private static void writeHeaderToObject(java.lang.Object, org.graalvm.word.WordBase);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/word/WordBase;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Object o
        start local 1 // org.graalvm.word.WordBase header
         0: .line 198
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 3
         1: .line 199
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            aload 1 /* header */
            invokeinterface org.graalvm.word.WordBase.rawValue:()J
            l2i
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeInt:(Ljava/lang/Object;II)V
         2: .line 200
            goto 4
         3: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            aload 1 /* header */
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeWord:(Ljava/lang/Object;ILorg/graalvm/word/WordBase;)V
         4: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.word.WordBase header
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0       o  Ljava/lang/Object;
            0    5     1  header  Lorg/graalvm/word/WordBase;
    MethodParameters:
        Name  Flags
      o       
      header  

  public org.graalvm.compiler.word.Word encodeAsTLABObjectHeader(com.oracle.svm.core.hub.DynamicHub);
    descriptor: (Lcom/oracle/svm/core/hub/DynamicHub;)Lorg/graalvm/compiler/word/Word;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // com.oracle.svm.core.hub.DynamicHub hub
         0: .line 207
            aload 1 /* hub */
            iconst_0
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.encodeAsObjectHeader:(Lcom/oracle/svm/core/hub/DynamicHub;ZZ)Lorg/graalvm/compiler/word/Word;
            areturn
        end local 1 // com.oracle.svm.core.hub.DynamicHub hub
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0    1     1   hub  Lcom/oracle/svm/core/hub/DynamicHub;
    MethodParameters:
      Name  Flags
      hub   

  public static org.graalvm.compiler.word.Word encodeAsObjectHeader(com.oracle.svm.core.hub.DynamicHub, boolean, boolean);
    descriptor: (Lcom/oracle/svm/core/hub/DynamicHub;ZZ)Lorg/graalvm/compiler/word/Word;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.svm.core.hub.DynamicHub hub
        start local 1 // boolean rememberedSet
        start local 2 // boolean unaligned
         0: .line 216
            aload 0 /* hub */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 3 /* result */
        start local 3 // org.graalvm.compiler.word.Word result
         1: .line 217
            getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 4
         2: .line 218
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.hasBase:()Z
            ifeq 4
         3: .line 219
            aload 3 /* result */
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.heapBase:()Lorg/graalvm/word/Pointer;
            invokevirtual org.graalvm.compiler.word.Word.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 3 /* result */
         4: .line 222
      StackMap locals: org.graalvm.compiler.word.Word
      StackMap stack:
            iload 1 /* rememberedSet */
            ifeq 6
         5: .line 223
            aload 3 /* result */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.REMEMBERED_SET_BIT:Lorg/graalvm/word/UnsignedWord;
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 3 /* result */
         6: .line 225
      StackMap locals:
      StackMap stack:
            iload 2 /* unaligned */
            ifeq 8
         7: .line 226
            aload 3 /* result */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.UNALIGNED_BIT:Lorg/graalvm/word/UnsignedWord;
            invokevirtual org.graalvm.compiler.word.Word.or:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 3 /* result */
         8: .line 228
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.graalvm.compiler.word.Word result
        end local 2 // boolean unaligned
        end local 1 // boolean rememberedSet
        end local 0 // com.oracle.svm.core.hub.DynamicHub hub
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0            hub  Lcom/oracle/svm/core/hub/DynamicHub;
            0    9     1  rememberedSet  Z
            0    9     2      unaligned  Z
            1    9     3         result  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
    MethodParameters:
               Name  Flags
      hub            
      rememberedSet  
      unaligned      

  public static org.graalvm.word.UnsignedWord clearBits(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 234
            aload 0 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.CLEAR_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  header  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      header  

  public static boolean isProducedHeapChunkZapped(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 239
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 2
         1: .line 240
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
            invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
            ireturn
         2: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  header  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      header  

  public static boolean isConsumedHeapChunkZapped(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 248
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iconst_4
            if_icmpne 2
         1: .line 249
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
            invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
            ireturn
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  header  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      header  

  public long encodeAsImageHeapObjectHeader(com.oracle.svm.core.image.ImageHeapObject, long);
    descriptor: (Lcom/oracle/svm/core/image/ImageHeapObject;J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
        start local 1 // com.oracle.svm.core.image.ImageHeapObject obj
        start local 2 // long hubOffsetFromHeapBase
         0: .line 257
            lload 2 /* hubOffsetFromHeapBase */
            lstore 4 /* header */
        start local 4 // long header
         1: .line 258
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 2
            lload 4 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            land
            lconst_0
            lcmp
            ifeq 2
            new java.lang.AssertionError
            dup
            ldc "Object header bits must be zero initially"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 259
      StackMap locals: long
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapCardMarking:()Z
            ifeq 11
         3: .line 260
            aload 1 /* obj */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getPartition:()Lcom/oracle/svm/core/image/ImageHeapPartition;
            instanceof com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition
            ifeq 10
         4: .line 261
            aload 1 /* obj */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getPartition:()Lcom/oracle/svm/core/image/ImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition
            astore 6 /* partition */
        start local 6 // com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition partition
         5: .line 262
            aload 6 /* partition */
            invokevirtual com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition.isWritable:()Z
            ifeq 7
         6: .line 263
            lload 4 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.REMEMBERED_SET_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lor
            lstore 4 /* header */
         7: .line 265
      StackMap locals: com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition
      StackMap stack:
            aload 6 /* partition */
            invokevirtual com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition.usesUnalignedObjects:()Z
            ifeq 11
         8: .line 266
            lload 4 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.UNALIGNED_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lor
            lstore 4 /* header */
        end local 6 // com.oracle.svm.core.genscavenge.ChunkedImageHeapPartition partition
         9: .line 268
            goto 11
        10: .line 269
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 11
            aload 1 /* obj */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getPartition:()Lcom/oracle/svm/core/image/ImageHeapPartition;
            instanceof com.oracle.svm.core.genscavenge.FillerObjectDummyPartition
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 272
      StackMap locals:
      StackMap stack:
            lload 4 /* header */
            lreturn
        end local 4 // long header
        end local 2 // long hubOffsetFromHeapBase
        end local 1 // com.oracle.svm.core.image.ImageHeapObject obj
        end local 0 // com.oracle.svm.core.genscavenge.ObjectHeaderImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            0   12     1                    obj  Lcom/oracle/svm/core/image/ImageHeapObject;
            0   12     2  hubOffsetFromHeapBase  J
            1   12     4                 header  J
            5    9     6              partition  Lcom/oracle/svm/core/genscavenge/ChunkedImageHeapPartition;
    MethodParameters:
                       Name  Flags
      obj                    
      hubOffsetFromHeapBase  

  public static boolean isAlignedObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object o
         0: .line 276
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedObject:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public static boolean isAlignedHeader(java.lang.Object, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // org.graalvm.word.UnsignedWord header
         0: .line 280
            aload 0 /* obj */
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedHeader:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     obj  Ljava/lang/Object;
            0    3     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      obj     
      header  

  public static boolean isAlignedHeader(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.word.Pointer ptrToObj
        start local 1 // org.graalvm.word.UnsignedWord header
         0: .line 284
            aload 0 /* ptrToObj */
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedHeader:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer ptrToObj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  ptrToObj  Lorg/graalvm/word/Pointer;
            0    3     1    header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
          Name  Flags
      ptrToObj  
      header    

  public static boolean isAlignedHeaderUnsafe(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 289
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testUnalignedBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  public static boolean isUnalignedObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 293
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 0 /* obj */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "must not be called for image heap objects"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         2: .line 295
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testUnalignedBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     obj  Ljava/lang/Object;
            2    3     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      obj   

  public static boolean isUnalignedHeader(java.lang.Object, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // org.graalvm.word.UnsignedWord header
         0: .line 299
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 0 /* obj */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "must not be called for image heap objects"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 300
      StackMap locals:
      StackMap stack:
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testUnalignedBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0     obj  Ljava/lang/Object;
            0    2     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      obj     
      header  

  public static boolean isUnalignedHeader(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.word.Pointer ptrToObj
        start local 1 // org.graalvm.word.UnsignedWord header
         0: .line 304
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 0 /* ptrToObj */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Lorg/graalvm/word/Pointer;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "must not be called for image heap objects"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 305
      StackMap locals:
      StackMap stack:
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testUnalignedBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer ptrToObj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  ptrToObj  Lorg/graalvm/word/Pointer;
            0    2     1    header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
          Name  Flags
      ptrToObj  
      header    

  private static boolean testUnalignedBit(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 309
            aload 0 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.UNALIGNED_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  static void setRememberedSetBit(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.Object o
         0: .line 313
            aload 0 /* o */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* oldHeader */
        start local 1 // org.graalvm.word.UnsignedWord oldHeader
         1: .line 314
            aload 1 /* oldHeader */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.REMEMBERED_SET_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.or:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* newHeader */
        start local 2 // org.graalvm.word.UnsignedWord newHeader
         2: .line 315
            aload 0 /* o */
            aload 2 /* newHeader */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.writeHeaderToObject:(Ljava/lang/Object;Lorg/graalvm/word/WordBase;)V
         3: .line 316
            return
        end local 2 // org.graalvm.word.UnsignedWord newHeader
        end local 1 // org.graalvm.word.UnsignedWord oldHeader
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0          o  Ljava/lang/Object;
            1    4     1  oldHeader  Lorg/graalvm/word/UnsignedWord;
            2    4     2  newHeader  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      o     

  public static boolean hasRememberedSet(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 319
            aload 0 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.REMEMBERED_SET_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  public static boolean isPointerToForwardedObject(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.word.Pointer p
         0: .line 323
            aload 0 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         1: .line 324
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeader:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0       p  Lorg/graalvm/word/Pointer;
            1    2     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      p     

  public static boolean isPointerToForwardedObjectCarefully(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.word.Pointer p
         0: .line 328
            aload 0 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointerCarefully:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         1: .line 329
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeaderCarefully:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0       p  Lorg/graalvm/word/Pointer;
            1    2     1  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
      Name  Flags
      p     

  public static boolean isForwardedHeader(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 333
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testForwardedHeaderBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  public static boolean isForwardedHeaderCarefully(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 337
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHeaderBitsFromHeaderCarefully:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* headerBits */
        start local 1 // org.graalvm.word.UnsignedWord headerBits
         1: .line 338
            aload 1 /* headerBits */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.testForwardedHeaderBit:(Lorg/graalvm/word/UnsignedWord;)Z
            ireturn
        end local 1 // org.graalvm.word.UnsignedWord headerBits
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0      header  Lorg/graalvm/word/UnsignedWord;
            1    2     1  headerBits  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  private static boolean testForwardedHeaderBit(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord headerBits
         0: .line 342
            aload 0 /* headerBits */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.FORWARDED_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
            ireturn
        end local 0 // org.graalvm.word.UnsignedWord headerBits
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  headerBits  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
            Name  Flags
      headerBits  

  static java.lang.Object getForwardedObject(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.word.Pointer ptr
         0: .line 346
            aload 0 /* ptr */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 1 /* header */
        start local 1 // org.graalvm.word.UnsignedWord header
         1: .line 347
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeader:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 348
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.haveCompressedReferences:()Z
            ifeq 10
         3: .line 349
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.getCompressEncoding:()Lorg/graalvm/compiler/core/common/CompressEncoding;
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.hasShift:()Z
            ifeq 9
         4: .line 352
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            astore 2 /* layout */
        start local 2 // com.oracle.svm.core.config.ObjectLayout layout
         5: .line 353
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 7
            aload 2 /* layout */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            i2l
            invokevirtual com.oracle.svm.core.config.ObjectLayout.isAligned:(J)Z
            ifeq 6
            iconst_2
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            imul
            aload 2 /* layout */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
            if_icmple 7
      StackMap locals: com.oracle.svm.core.config.ObjectLayout
      StackMap stack:
         6: new java.lang.AssertionError
            dup
            ldc "Forwarding reference must fit after hub"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 354
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iadd
            istore 3 /* forwardRefOffset */
        start local 3 // int forwardRefOffset
         8: .line 355
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            aload 0 /* ptr */
            iload 3 /* forwardRefOffset */
            invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
            iconst_1
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.readObjectAt:(Lorg/graalvm/word/Pointer;Z)Ljava/lang/Object;
            areturn
        end local 3 // int forwardRefOffset
        end local 2 // com.oracle.svm.core.config.ObjectLayout layout
         9: .line 357
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.clearBits:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.uncompressReference:(Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
            areturn
        10: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.clearBits:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.word.Pointer
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            areturn
        end local 1 // org.graalvm.word.UnsignedWord header
        end local 0 // org.graalvm.word.Pointer ptr
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0               ptr  Lorg/graalvm/word/Pointer;
            1   11     1            header  Lorg/graalvm/word/UnsignedWord;
            5    9     2            layout  Lcom/oracle/svm/core/config/ObjectLayout;
            8    9     3  forwardRefOffset  I
    MethodParameters:
      Name  Flags
      ptr   

  static void installForwardingPointer(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object original
        start local 1 // java.lang.Object copy
         0: .line 366
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* original */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isPointerToForwardedObject:(Lorg/graalvm/word/Pointer;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 368
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.haveCompressedReferences:()Z
            ifeq 8
         2: .line 369
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.getCompressEncoding:()Lorg/graalvm/compiler/core/common/CompressEncoding;
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.hasShift:()Z
            ifeq 6
         3: .line 372
            ldc -1085102592571150096
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* forwardHeader */
        start local 2 // org.graalvm.word.UnsignedWord forwardHeader
         4: .line 373
            aload 0 /* original */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHubOffset:()I
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getReferenceSize:()I
            iadd
            aload 1 /* copy */
            invokestatic org.graalvm.compiler.word.ObjectAccess.writeObject:(Ljava/lang/Object;ILjava/lang/Object;)V
         5: .line 374
            goto 9
        end local 2 // org.graalvm.word.UnsignedWord forwardHeader
         6: .line 375
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            aload 1 /* copy */
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.getCompressedRepresentation:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* forwardHeader */
        start local 2 // org.graalvm.word.UnsignedWord forwardHeader
         7: .line 377
            goto 9
        end local 2 // org.graalvm.word.UnsignedWord forwardHeader
         8: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* copy */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 2 /* forwardHeader */
        start local 2 // org.graalvm.word.UnsignedWord forwardHeader
         9: .line 380
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 10
            aload 2 /* forwardHeader */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getHeaderBitsFromHeader:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* original */
            aload 2 /* forwardHeader */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.FORWARDED_BIT:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.or:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.writeHeaderToObject:(Ljava/lang/Object;Lorg/graalvm/word/WordBase;)V
        11: .line 382
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 12
            aload 0 /* original */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isPointerToForwardedObject:(Lorg/graalvm/word/Pointer;)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 383
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.word.UnsignedWord forwardHeader
        end local 1 // java.lang.Object copy
        end local 0 // java.lang.Object original
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0       original  Ljava/lang/Object;
            0   13     1           copy  Ljava/lang/Object;
            4    6     2  forwardHeader  Lorg/graalvm/word/UnsignedWord;
            7    8     2  forwardHeader  Lorg/graalvm/word/UnsignedWord;
            9   13     2  forwardHeader  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
          Name  Flags
      original  
      copy      

  private static org.graalvm.word.UnsignedWord getHeaderBitsFromHeader(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 387
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isProducedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "Produced chunk zap value"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 388
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isConsumedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            ldc "Consumed chunk zap value"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  header  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      header  

  static org.graalvm.word.UnsignedWord getHeaderBitsFromHeaderCarefully(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.word.UnsignedWord header
         0: .line 393
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isProducedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ldc "Produced chunk zap value"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         3: .line 394
            aload 0 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isConsumedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ldc "Consumed chunk zap value"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         6: .line 395
            aload 0 /* header */
            getstatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.MASK_HEADER_BITS:Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // org.graalvm.word.UnsignedWord header
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  header  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
        Name  Flags
      header  

  static int getHubOffset();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 400
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getHubOffset:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static int getIdentityHashCodeOffset();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 405
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getIdentityHashCodeOffset:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static int getReferenceSize();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 410
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getReferenceSize:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean hasBase();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 415
            ldc Lorg/graalvm/compiler/core/common/CompressEncoding;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.CompressEncoding
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.hasBase:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static int getCompressionShift();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 420
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.getCompressEncoding:()Lorg/graalvm/compiler/core/common/CompressEncoding;
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.getShift:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()
}
SourceFile: "ObjectHeaderImpl.java"