final class com.oracle.svm.core.genscavenge.HeapChunk
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.HeapChunk
  super_class: java.lang.Object
{
  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 82
            ldc Lcom/oracle/svm/core/genscavenge/HeapChunk;
            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.HeapChunk.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk this
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/HeapChunk;

  public static org.graalvm.word.UnsignedWord getTopOffset(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 175
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 1
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.isNonNull:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "Not safe: top currently points to NULL."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getTopOffset:()Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static org.graalvm.word.Pointer getTopPointer(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 181
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getTopOffset:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static void setTopPointer(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.Pointer newTop
         0: .line 187
            aload 0 /* that */
            aload 1 /* newTop */
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.setTopOffset:(Lorg/graalvm/word/UnsignedWord;)V
         1: .line 188
            return
        end local 1 // org.graalvm.word.Pointer newTop
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    2     1  newTop  Lorg/graalvm/word/Pointer;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      that    
      newTop  

  static void setTopPointerCarefully(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.Pointer newTop
         0: .line 192
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 1
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.isNonNull:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "Not safe: top currently points to NULL."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 193
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 2
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            aload 1 /* newTop */
            invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "newTop too low."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 194
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 3
            aload 1 /* newTop */
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            ldc "newTop too high."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* that */
            aload 1 /* newTop */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
         4: .line 196
            return
        end local 1 // org.graalvm.word.Pointer newTop
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    5     1  newTop  Lorg/graalvm/word/Pointer;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      that    
      newTop  

  public static org.graalvm.word.UnsignedWord getEndOffset(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 200
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getEndOffset:()Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static org.graalvm.word.Pointer getEndPointer(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 205
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static void setEndOffset(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.UnsignedWord);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/UnsignedWord;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.UnsignedWord newEnd
         0: .line 210
            aload 0 /* that */
            aload 1 /* newEnd */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.setEndOffset:(Lorg/graalvm/word/UnsignedWord;)V
         1: .line 211
            return
        end local 1 // org.graalvm.word.UnsignedWord newEnd
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    2     1  newEnd  Lorg/graalvm/word/UnsignedWord;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/UnsignedWord;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      that    
      newEnd  

  public static com.oracle.svm.core.genscavenge.Space getSpace(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 215
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lcom/oracle/svm/core/genscavenge/Space;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static void setSpace(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, com.oracle.svm.core.genscavenge.Space);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // com.oracle.svm.core.genscavenge.Space newSpace
         0: .line 220
            aload 0 /* that */
            aload 1 /* newSpace */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.setSpace:(Lcom/oracle/svm/core/genscavenge/Space;)V
         1: .line 221
            return
        end local 1 // com.oracle.svm.core.genscavenge.Space newSpace
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    2     1  newSpace  Lcom/oracle/svm/core/genscavenge/Space;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lcom/oracle/svm/core/genscavenge/Space;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
          Name  Flags
      that      
      newSpace  

  public static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> T getPrevious(com.oracle.svm.core.genscavenge.HeapChunk$Header<T>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 225
            aload 0 /* that */
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getOffsetToPreviousChunk:()Lorg/graalvm/word/SignedWord;
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.pointerFromOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/ComparableWord;)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;
    Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> void setPrevious(com.oracle.svm.core.genscavenge.HeapChunk$Header<T>, );
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // com.oracle.svm.core.genscavenge.HeapChunk$Header newPrevious
         0: .line 230
            aload 0 /* that */
            aload 0 /* that */
            aload 1 /* newPrevious */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.offsetFromPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/SignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.setOffsetToPreviousChunk:(Lorg/graalvm/word/SignedWord;)V
         1: .line 231
            return
        end local 1 // com.oracle.svm.core.genscavenge.HeapChunk$Header newPrevious
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;
            0    2     1  newPrevious  TT;
    Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;TT;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
             Name  Flags
      that         
      newPrevious  

  public static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> T getNext(com.oracle.svm.core.genscavenge.HeapChunk$Header<T>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 235
            aload 0 /* that */
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getOffsetToNextChunk:()Lorg/graalvm/word/SignedWord;
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.pointerFromOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/ComparableWord;)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;
    Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> void setNext(com.oracle.svm.core.genscavenge.HeapChunk$Header<T>, );
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // com.oracle.svm.core.genscavenge.HeapChunk$Header newNext
         0: .line 240
            aload 0 /* that */
            aload 0 /* that */
            aload 1 /* newNext */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.offsetFromPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/SignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.setOffsetToNextChunk:(Lorg/graalvm/word/SignedWord;)V
         1: .line 241
            return
        end local 1 // com.oracle.svm.core.genscavenge.HeapChunk$Header newNext
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;
            0    2     1  newNext  TT;
    Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;TT;)V
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
         Name  Flags
      that     
      newNext  

  private static <T extends org.graalvm.word.PointerBase> T pointerFromOffset(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.ComparableWord);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/ComparableWord;)Lorg/graalvm/word/PointerBase;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.ComparableWord offset
         0: .line 250
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            astore 2 /* pointer */
        start local 2 // org.graalvm.word.PointerBase pointer
         1: .line 251
            aload 1 /* offset */
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.ComparableWord
            invokeinterface org.graalvm.word.ComparableWord.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
            ifeq 3
         2: .line 252
            aload 0 /* that */
            checkcast org.graalvm.word.SignedWord
            aload 1 /* offset */
            checkcast org.graalvm.word.SignedWord
            invokeinterface org.graalvm.word.SignedWord.add:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
            checkcast org.graalvm.word.PointerBase
            astore 2 /* pointer */
         3: .line 254
      StackMap locals: org.graalvm.word.PointerBase
      StackMap stack:
            aload 2 /* pointer */
            areturn
        end local 2 // org.graalvm.word.PointerBase pointer
        end local 1 // org.graalvm.word.ComparableWord offset
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    4     1   offset  Lorg/graalvm/word/ComparableWord;
            1    4     2  pointer  TT;
    Signature: <T::Lorg/graalvm/word/PointerBase;>(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/ComparableWord;)TT;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
        Name  Flags
      that    
      offset  

  private static org.graalvm.word.SignedWord offsetFromPointer(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.PointerBase);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/SignedWord;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.PointerBase pointer
         0: .line 264
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.SignedWord
            astore 2 /* offset */
        start local 2 // org.graalvm.word.SignedWord offset
         1: .line 265
            aload 1 /* pointer */
            invokeinterface org.graalvm.word.PointerBase.isNonNull:()Z
            ifeq 3
         2: .line 266
            aload 1 /* pointer */
            checkcast org.graalvm.word.SignedWord
            aload 0 /* that */
            checkcast org.graalvm.word.SignedWord
            invokeinterface org.graalvm.word.SignedWord.subtract:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
            astore 2 /* offset */
         3: .line 268
      StackMap locals: org.graalvm.word.SignedWord
      StackMap stack:
            aload 2 /* offset */
            areturn
        end local 2 // org.graalvm.word.SignedWord offset
        end local 1 // org.graalvm.word.PointerBase pointer
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    4     1  pointer  Lorg/graalvm/word/PointerBase;
            1    4     2   offset  Lorg/graalvm/word/SignedWord;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/SignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
         Name  Flags
      that     
      pointer  

  public static boolean walkObjectsFrom(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer, com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.Pointer offset
        start local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 273
            aload 0 /* that */
            aload 1 /* offset */
            aload 2 /* visitor */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.walkObjectsFromInline:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ireturn
        end local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 1 // org.graalvm.word.Pointer offset
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    1     1   offset  Lorg/graalvm/word/Pointer;
            0    1     2  visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "Not performance critical")
    MethodParameters:
         Name  Flags
      that     
      offset   
      visitor  

  public static boolean walkObjectsFromInline(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer, com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.Pointer startOffset
        start local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 278
            aload 1 /* startOffset */
            astore 3 /* offset */
        start local 3 // org.graalvm.word.Pointer offset
         1: .line 279
            goto 6
         2: .line 280
      StackMap locals: org.graalvm.word.Pointer
      StackMap stack:
            aload 3 /* offset */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         3: .line 281
            aload 2 /* visitor */
            aload 4 /* obj */
            invokeinterface com.oracle.svm.core.heap.ObjectVisitor.visitObjectInline:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 282
            iconst_0
            ireturn
         5: .line 284
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* offset */
            aload 4 /* obj */
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getSizeFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            astore 3 /* offset */
        end local 4 // java.lang.Object obj
         6: .line 279
      StackMap locals:
      StackMap stack:
            aload 3 /* offset */
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 2
         7: .line 286
            iconst_1
            ireturn
        end local 3 // org.graalvm.word.Pointer offset
        end local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 1 // org.graalvm.word.Pointer startOffset
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0    8     1  startOffset  Lorg/graalvm/word/Pointer;
            0    8     2      visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
            1    8     3       offset  Lorg/graalvm/word/Pointer;
            3    6     4          obj  Ljava/lang/Object;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
    MethodParameters:
             Name  Flags
      that         
      startOffset  
      visitor      

  public static org.graalvm.word.UnsignedWord availableObjectMemory(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 291
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getEndOffset:()Lorg/graalvm/word/UnsignedWord;
            aload 0 /* that */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.getTopOffset:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  static org.graalvm.word.Pointer asPointer(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
         0: .line 296
            aload 0 /* that */
            checkcast org.graalvm.word.Pointer
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;)Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      that  

  public static com.oracle.svm.core.genscavenge.HeapChunk$Header<?> getEnclosingHeapChunk();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 300
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$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 be checked before calling this method"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 301
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 2
            aload 0 /* obj */
            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 2
            new java.lang.AssertionError
            dup
            ldc "Forwarded objects must be a pointer and not an object"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 303
            aload 0 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            areturn
         4: .line 305
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapChunk.$assertionsDisabled:Z
            ifne 5
            aload 0 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedObject:(Ljava/lang/Object;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getEnclosingChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.svm.core.genscavenge.HeapChunk$Header<?> getEnclosingHeapChunk(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
    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 311
            aload 0 /* ptrToObj */
            aload 1 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedHeader:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 2
         1: .line 312
            aload 0 /* ptrToObj */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getEnclosingChunkFromObjectPointer:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            areturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* ptrToObj */
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getEnclosingChunkFromObjectPointer:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            areturn
        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;
    Signature: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
    MethodParameters:
          Name  Flags
      ptrToObj  
      header    

  static boolean verifyObjects(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
        start local 1 // org.graalvm.word.Pointer start
         0: .line 356
            invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.getTraceLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapChunk.verify:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 2 /* trace */
        start local 2 // com.oracle.svm.core.log.Log trace
         1: .line 357
            aload 2 /* trace */
            ldc "  that:  "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  start: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* start */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  top: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  end: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
         2: .line 358
            aload 1 /* start */
            astore 3 /* p */
        start local 3 // org.graalvm.word.Pointer p
         3: .line 359
            goto 17
         4: .line 360
      StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.Pointer
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            aload 3 /* p */
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyObjectAt:(Lorg/graalvm/word/Pointer;)Z
            ifne 11
         5: .line 361
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapChunk.verify:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 4 /* witness */
        start local 4 // com.oracle.svm.core.log.Log witness
         6: .line 362
            aload 4 /* witness */
            ldc "  that:  "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  start: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* start */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  top: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  end: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
         7: .line 363
            aload 4 /* witness */
            ldc "  space: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         8: .line 364
            aload 4 /* witness */
            ldc "  object at p: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* p */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  fails to verify"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         9: .line 365
            aload 2 /* trace */
            ldc "  returns false]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        10: .line 366
            iconst_0
            ireturn
        end local 4 // com.oracle.svm.core.log.Log witness
        11: .line 369
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointerCarefully:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 4 /* header */
        start local 4 // org.graalvm.word.UnsignedWord header
        12: .line 371
            aload 4 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeaderCarefully:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 15
        13: .line 372
            aload 3 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.getForwardedObject:(Lorg/graalvm/word/Pointer;)Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
        14: .line 373
            goto 16
        end local 5 // java.lang.Object o
        15: .line 374
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
            aload 3 /* p */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
        16: .line 376
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* p */
            aload 5 /* o */
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getSizeFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            astore 3 /* p */
        end local 5 // java.lang.Object o
        end local 4 // org.graalvm.word.UnsignedWord header
        17: .line 359
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            aload 0 /* that */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
            invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 4
        18: .line 378
            aload 2 /* trace */
            ldc "  returns true]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        19: .line 379
            iconst_1
            ireturn
        end local 3 // org.graalvm.word.Pointer p
        end local 2 // com.oracle.svm.core.log.Log trace
        end local 1 // org.graalvm.word.Pointer start
        end local 0 // com.oracle.svm.core.genscavenge.HeapChunk$Header that
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     that  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
            0   20     1    start  Lorg/graalvm/word/Pointer;
            1   20     2    trace  Lcom/oracle/svm/core/log/Log;
            3   20     3        p  Lorg/graalvm/word/Pointer;
            6   11     4  witness  Lcom/oracle/svm/core/log/Log;
           12   17     4   header  Lorg/graalvm/word/UnsignedWord;
           14   15     5        o  Ljava/lang/Object;
           16   17     5        o  Ljava/lang/Object;
    Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;)Z
    MethodParameters:
       Name  Flags
      that   
      start  
}
SourceFile: "HeapChunk.java"
NestMembers:
  com.oracle.svm.core.genscavenge.HeapChunk$Header  com.oracle.svm.core.genscavenge.HeapChunk$HeaderPadding  com.oracle.svm.core.genscavenge.HeapChunk$HeaderPaddingSizeProvider  com.oracle.svm.core.genscavenge.HeapChunk$MemoryWalkerAccessImpl  com.oracle.svm.core.genscavenge.HeapChunk$Options
InnerClasses:
  public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
  public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
  private abstract HeaderPadding = com.oracle.svm.core.genscavenge.HeapChunk$HeaderPadding of com.oracle.svm.core.genscavenge.HeapChunk
  HeaderPaddingSizeProvider = com.oracle.svm.core.genscavenge.HeapChunk$HeaderPaddingSizeProvider of com.oracle.svm.core.genscavenge.HeapChunk
  abstract MemoryWalkerAccessImpl = com.oracle.svm.core.genscavenge.HeapChunk$MemoryWalkerAccessImpl of com.oracle.svm.core.genscavenge.HeapChunk
  Options = com.oracle.svm.core.genscavenge.HeapChunk$Options of com.oracle.svm.core.genscavenge.HeapChunk
  public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk