public final class com.oracle.svm.core.genscavenge.HeapImpl extends com.oracle.svm.core.heap.Heap
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.HeapImpl
  super_class: com.oracle.svm.core.heap.Heap
{
  private static final com.oracle.svm.core.locks.VMMutex REF_MUTEX;
    descriptor: Lcom/oracle/svm/core/locks/VMMutex;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.oracle.svm.core.locks.VMCondition REF_CONDITION;
    descriptor: Lcom/oracle/svm/core/locks/VMCondition;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.YoungGeneration youngGeneration;
    descriptor: Lcom/oracle/svm/core/genscavenge/YoungGeneration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.OldGeneration oldGeneration;
    descriptor: Lcom/oracle/svm/core/genscavenge/OldGeneration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.HeapChunkProvider chunkProvider;
    descriptor: Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.ObjectHeaderImpl objectHeaderImpl;
    descriptor: Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.GCImpl gcImpl;
    descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl runtimeCodeInfoGcSupport;
    descriptor: Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.HeapPolicy heapPolicy;
    descriptor: Lcom/oracle/svm/core/genscavenge/HeapPolicy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.genscavenge.ImageHeapInfo imageHeapInfo;
    descriptor: Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.svm.core.genscavenge.HeapVerifier heapVerifier;
    descriptor: Lcom/oracle/svm/core/genscavenge/HeapVerifier;
    flags: (0x0002) ACC_PRIVATE

  private final com.oracle.svm.core.genscavenge.StackVerifier stackVerifier;
    descriptor: Lcom/oracle/svm/core/genscavenge/StackVerifier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.ref.Reference<?> refPendingList;
    descriptor: Ljava/lang/ref/Reference;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/ref/Reference<*>;

  private long refListOfferCounter;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long refListWaiterWakeUpCounter;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference<com.oracle.svm.core.genscavenge.PinnedObjectImpl> pinHead;
    descriptor: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference<Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;>;

  private java.util.List<java.lang.Class<?>> classList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Class<*>;>;

  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=3, locals=0, args_size=0
         0: .line 84
            ldc Lcom/oracle/svm/core/genscavenge/HeapImpl;
            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.HeapImpl.$assertionsDisabled:Z
         3: .line 86
            new com.oracle.svm.core.locks.VMMutex
            dup
            invokespecial com.oracle.svm.core.locks.VMMutex.<init>:()V
            putstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
         4: .line 87
            new com.oracle.svm.core.locks.VMCondition
            dup
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokespecial com.oracle.svm.core.locks.VMCondition.<init>:(Lcom/oracle/svm/core/locks/VMMutex;)V
            putstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.nativeimage.hosted.Feature$FeatureAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$FeatureAccess access
         0: .line 115
            aload 0 /* this */
            invokespecial com.oracle.svm.core.heap.Heap.<init>:()V
         1: .line 90
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.YoungGeneration
            dup
            ldc "YoungGeneration"
            invokespecial com.oracle.svm.core.genscavenge.YoungGeneration.<init>:(Ljava/lang/String;)V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
         2: .line 91
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.OldGeneration
            dup
            ldc "OldGeneration"
            invokespecial com.oracle.svm.core.genscavenge.OldGeneration.<init>:(Ljava/lang/String;)V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
         3: .line 92
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.HeapChunkProvider
            dup
            invokespecial com.oracle.svm.core.genscavenge.HeapChunkProvider.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.chunkProvider:Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
         4: .line 93
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.ObjectHeaderImpl
            dup
            invokespecial com.oracle.svm.core.genscavenge.ObjectHeaderImpl.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
         5: .line 97
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.ImageHeapInfo
            dup
            invokespecial com.oracle.svm.core.genscavenge.ImageHeapInfo.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
         6: .line 109
            aload 0 /* this */
            new com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference
            dup
            invokespecial com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.pinHead:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
         7: .line 116
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCImpl
            dup
            aload 1 /* access */
            invokespecial com.oracle.svm.core.genscavenge.GCImpl.<init>:(Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
         8: .line 117
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl
            dup
            invokespecial com.oracle.svm.core.genscavenge.RuntimeCodeInfoGCSupportImpl.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.runtimeCodeInfoGcSupport:Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
         9: .line 118
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.HeapPolicy
            dup
            invokespecial com.oracle.svm.core.genscavenge.HeapPolicy.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.heapPolicy:Lcom/oracle/svm/core/genscavenge/HeapPolicy;
        10: .line 119
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
            ifne 11
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapAfterGC:()Z
            ifne 11
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
            ifne 11
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackAfterGC:()Z
            ifne 11
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardBeforeGC:()Z
            ifne 11
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardAfterGC:()Z
            ifeq 14
        11: .line 120
      StackMap locals: com.oracle.svm.core.genscavenge.HeapImpl org.graalvm.nativeimage.hosted.Feature$FeatureAccess
      StackMap stack:
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.HeapVerifier
            dup
            invokespecial com.oracle.svm.core.genscavenge.HeapVerifier.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
        12: .line 121
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.StackVerifier
            dup
            invokespecial com.oracle.svm.core.genscavenge.StackVerifier.<init>:()V
            putfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
        13: .line 122
            goto 16
        14: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
        15: .line 124
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
        16: .line 126
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.getSingleton:()Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            aload 0 /* this */
            invokedynamic invokeWithoutAllocation(Lcom/oracle/svm/core/genscavenge/HeapImpl;)Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/core/log/Log;)V
                  com/oracle/svm/core/genscavenge/HeapImpl.lambda$0(Lcom/oracle/svm/core/log/Log;)V (7)
                  (Lcom/oracle/svm/core/log/Log;)V
            invokevirtual com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.register:(Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;)V
        17: .line 132
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$FeatureAccess access
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0   18     1  access  Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
    MethodParameters:
        Name  Flags
      access  

  public static com.oracle.svm.core.genscavenge.HeapImpl getHeapImpl();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapImpl;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 136
            invokestatic com.oracle.svm.core.heap.Heap.getHeap:()Lcom/oracle/svm/core/heap/Heap;
            astore 0 /* heap */
        start local 0 // com.oracle.svm.core.heap.Heap heap
         1: .line 137
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* heap */
            instanceof com.oracle.svm.core.genscavenge.HeapImpl
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "VMConfiguration heap is not a HeapImpl."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 138
      StackMap locals: com.oracle.svm.core.heap.Heap
      StackMap stack:
            aload 0 /* heap */
            checkcast com.oracle.svm.core.genscavenge.HeapImpl
            areturn
        end local 0 // com.oracle.svm.core.heap.Heap heap
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0  heap  Lcom/oracle/svm/core/heap/Heap;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public static com.oracle.svm.core.genscavenge.ImageHeapInfo getImageHeapInfo();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 143
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static com.oracle.svm.core.genscavenge.HeapChunkProvider getChunkProvider();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 148
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            getfield com.oracle.svm.core.genscavenge.HeapImpl.chunkProvider:Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public boolean isInImageHeap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.Object obj
         0: .line 157
            aload 0 /* this */
            aload 1 /* obj */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Lorg/graalvm/word/Pointer;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    1     1   obj  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      obj   

  public boolean isInImageHeap(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // org.graalvm.word.Pointer pointer
         0: .line 163
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            aload 1 /* pointer */
            invokevirtual com.oracle.svm.core.genscavenge.ImageHeapInfo.isInImageHeap:(Lorg/graalvm/word/Pointer;)Z
            ifne 2
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
            ifeq 1
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
            aload 1 /* pointer */
            invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.containsObject:(Lorg/graalvm/word/Pointer;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // org.graalvm.word.Pointer pointer
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    3     1  pointer  Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
         Name  Flags
      pointer  

  boolean isInImageHeapSlow(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.Object obj
         0: .line 167
            aload 0 /* this */
            aload 1 /* obj */
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeapSlow:(Lorg/graalvm/word/Pointer;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  boolean isInImageHeapSlow(org.graalvm.word.Pointer);
    descriptor: (Lorg/graalvm/word/Pointer;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // org.graalvm.word.Pointer p
         0: .line 173
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            aload 1 /* p */
            invokevirtual com.oracle.svm.core.genscavenge.ImageHeapInfo.isInImageHeapSlow:(Lorg/graalvm/word/Pointer;)Z
            ifne 2
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
            ifeq 1
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
            aload 1 /* p */
            invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.containsObjectSlow:(Lorg/graalvm/word/Pointer;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // org.graalvm.word.Pointer p
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    3     1     p  Lorg/graalvm/word/Pointer;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
    MethodParameters:
      Name  Flags
      p     

  public void suspendAllocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 178
            invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.suspendInCurrentThread:()V
         1: .line 179
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public void resumeAllocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 183
            invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.resumeInCurrentThread:()V
         1: .line 184
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public boolean walkObjects(com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 188
            ldc "must only be executed at a safepoint"
            invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
         1: .line 189
            aload 0 /* this */
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkImageHeapObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 2
            aload 0 /* this */
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkCollectedHeapObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    3     1  visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  boolean walkMemory(com.oracle.svm.core.MemoryWalker$Visitor);
    descriptor: (Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.MemoryWalker$Visitor visitor
         0: .line 194
            ldc "must only be executed at a safepoint"
            invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
         1: .line 195
            aload 0 /* this */
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkNativeImageHeapRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
            ifeq 2
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
            ifeq 2
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
            ifeq 2
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.walkHeapChunks:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // com.oracle.svm.core.MemoryWalker$Visitor visitor
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    3     1  visitor  Lcom/oracle/svm/core/MemoryWalker$Visitor;
    MethodParameters:
         Name  Flags
      visitor  

  public boolean tearDown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 202
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.tearDown:()V
         1: .line 203
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.tearDown:()V
         2: .line 204
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
            invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.tearDown:()V
         3: .line 205
            iconst_1
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Tear-down in progress.")

  public com.oracle.svm.core.heap.ObjectHeader getObjectHeader();
    descriptor: ()Lcom/oracle/svm/core/heap/ObjectHeader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 211
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  com.oracle.svm.core.genscavenge.ObjectHeaderImpl getObjectHeaderImpl();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 215
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.objectHeaderImpl:Lcom/oracle/svm/core/genscavenge/ObjectHeaderImpl;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public com.oracle.svm.core.heap.GC getGC();
    descriptor: ()Lcom/oracle/svm/core/heap/GC;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 221
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public com.oracle.svm.core.heap.RuntimeCodeInfoGCSupport getRuntimeCodeInfoGCSupport();
    descriptor: ()Lcom/oracle/svm/core/heap/RuntimeCodeInfoGCSupport;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 227
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.runtimeCodeInfoGcSupport:Lcom/oracle/svm/core/genscavenge/RuntimeCodeInfoGCSupportImpl;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  com.oracle.svm.core.genscavenge.GCImpl getGCImpl();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/GCImpl;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 231
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public boolean isAllocationDisallowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 237
            invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.isActive:()Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.gcImpl:Lcom/oracle/svm/core/genscavenge/GCImpl;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCollectionInProgress:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  static void exitIfAllocationDisallowed(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String callSite
        start local 1 // java.lang.String typeName
         0: .line 242
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isAllocationDisallowed:()Z
            ifeq 2
         1: .line 243
            aload 0 /* callSite */
            aload 1 /* typeName */
            invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.exit:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 245
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String typeName
        end local 0 // java.lang.String callSite
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  callSite  Ljava/lang/String;
            0    3     1  typeName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      callSite  
      typeName  

  java.lang.Object promoteObject(java.lang.Object, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.Object original
        start local 2 // org.graalvm.word.UnsignedWord header
         0: .line 249
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.promoteObject:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  original: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* original */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            astore 3 /* trace */
        start local 3 // com.oracle.svm.core.log.Log trace
         1: .line 252
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
            ifle 4
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCompleteCollection:()Z
            ifne 4
         2: .line 253
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 1 /* original */
            aload 2 /* header */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.promoteObject:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         3: .line 254
            goto 5
        end local 4 // java.lang.Object result
         4: .line 255
      StackMap locals: com.oracle.svm.core.log.Log
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 1 /* original */
            aload 2 /* header */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.promoteObject:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         5: .line 258
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* trace */
            ldc "  result: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* result */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)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
         6: .line 259
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // com.oracle.svm.core.log.Log trace
        end local 2 // org.graalvm.word.UnsignedWord header
        end local 1 // java.lang.Object original
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    7     1  original  Ljava/lang/Object;
            0    7     2    header  Lorg/graalvm/word/UnsignedWord;
            1    7     3     trace  Lcom/oracle/svm/core/log/Log;
            3    4     4    result  Ljava/lang/Object;
            5    7     4    result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
    MethodParameters:
          Name  Flags
      original  
      header    

  void dirtyCardIfNecessary(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.Object holderObject
        start local 2 // java.lang.Object object
         0: .line 264
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
            ifeq 1
            aload 1 /* holderObject */
            ifnull 1
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.isCompleteCollection:()Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 2 /* object */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 265
      StackMap locals:
      StackMap stack:
            return
         2: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* holderObject */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromObject:(Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
            astore 3 /* objectHeader */
        start local 3 // org.graalvm.word.UnsignedWord objectHeader
         3: .line 269
            aload 3 /* objectHeader */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.hasRememberedSet:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 9
         4: .line 270
            aload 1 /* holderObject */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isAlignedObject:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 271
            aload 1 /* holderObject */
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.dirtyCardForObject:(Ljava/lang/Object;Z)V
         6: .line 272
            goto 9
         7: .line 273
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 8
            aload 1 /* holderObject */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isUnalignedObject:(Ljava/lang/Object;)Z
            ifne 8
            new java.lang.AssertionError
            dup
            ldc "sanity"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 274
      StackMap locals:
      StackMap stack:
            aload 1 /* holderObject */
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.dirtyCardForObject:(Ljava/lang/Object;Z)V
         9: .line 277
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.word.UnsignedWord objectHeader
        end local 2 // java.lang.Object object
        end local 1 // java.lang.Object holderObject
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0   10     1  holderObject  Ljava/lang/Object;
            0   10     2        object  Ljava/lang/Object;
            3   10     3  objectHeader  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
    MethodParameters:
              Name  Flags
      holderObject  
      object        

  com.oracle.svm.core.genscavenge.HeapPolicy getHeapPolicy();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapPolicy;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 280
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapPolicy:Lcom/oracle/svm/core/genscavenge/HeapPolicy;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  com.oracle.svm.core.genscavenge.YoungGeneration getYoungGeneration();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 285
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.youngGeneration:Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  com.oracle.svm.core.genscavenge.OldGeneration getOldGeneration();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/OldGeneration;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 290
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.oldGeneration:Lcom/oracle/svm/core/genscavenge/OldGeneration;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference<com.oracle.svm.core.genscavenge.PinnedObjectImpl> getPinHead();
    descriptor: ()Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 294
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.pinHead:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    Signature: ()Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference<Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;>;

  public org.graalvm.word.UnsignedWord getUsedBytes();
    descriptor: ()Lorg/graalvm/word/UnsignedWord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 299
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getYoungUsedBytes:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Necessary to return a reasonably consistent value (a GC can change the queried values).")

  public org.graalvm.word.UnsignedWord getCommittedBytes();
    descriptor: ()Lorg/graalvm/word/UnsignedWord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 304
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getUsedBytes:()Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
            invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.getBytesInUnusedChunks:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Necessary to return a reasonably consistent value (a GC can change the queried values).")

  void report(com.oracle.svm.core.log.Log);
    descriptor: (Lcom/oracle/svm/core/log/Log;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.log.Log log
         0: .line 308
            aload 0 /* this */
            aload 1 /* log */
            getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.TraceHeapChunks:Lcom/oracle/svm/core/option/RuntimeOptionKey;
            invokevirtual com.oracle.svm.core.option.RuntimeOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
            pop
         1: .line 309
            return
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    2     1   log  Lcom/oracle/svm/core/log/Log;
    MethodParameters:
      Name  Flags
      log   

  com.oracle.svm.core.log.Log report(com.oracle.svm.core.log.Log, boolean);
    descriptor: (Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.log.Log log
        start local 2 // boolean traceHeapChunks
         0: .line 312
            aload 1 /* log */
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            ldc "[Heap:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iconst_1
            invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
            pop
         1: .line 313
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 1 /* log */
            iload 2 /* traceHeapChunks */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         2: .line 314
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 1 /* log */
            iload 2 /* traceHeapChunks */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 315
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getChunkProvider:()Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
            aload 1 /* log */
            iload 2 /* traceHeapChunks */
            invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
            pop
         4: .line 316
            aload 1 /* log */
            iconst_0
            invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         5: .line 317
            aload 1 /* log */
            areturn
        end local 2 // boolean traceHeapChunks
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    6     1              log  Lcom/oracle/svm/core/log/Log;
            0    6     2  traceHeapChunks  Z
    MethodParameters:
                 Name  Flags
      log              
      traceHeapChunks  

  com.oracle.svm.core.log.Log logImageHeapPartitionBoundaries(com.oracle.svm.core.log.Log);
    descriptor: (Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.log.Log log
         0: .line 321
            aload 1 /* log */
            ldc "[Native image heap boundaries: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iconst_1
            invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
            pop
         1: .line 322
            aload 1 /* log */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.logPartitionBoundaries:(Lcom/oracle/svm/core/log/Log;Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)V
         2: .line 323
            aload 1 /* log */
            iconst_0
            invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 324
            aload 1 /* log */
            areturn
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    4     1   log  Lcom/oracle/svm/core/log/Log;
    MethodParameters:
      Name  Flags
      log   

  static com.oracle.svm.core.log.Log zapValuesToLog(com.oracle.svm.core.log.Log);
    descriptor: (Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.log.Log log
         0: .line 329
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
            ifne 1
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
            ifeq 23
         1: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* log */
            ldc "[Heap Chunk zap values: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iconst_1
            invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
            pop
         2: .line 333
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
            ifeq 13
         3: .line 334
            aload 0 /* log */
            ldc "  producedHeapChunkZapInt: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
         4: .line 335
            ldc "  hex: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 8
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.hex:(I)Lcom/oracle/svm/core/log/Log;
         5: .line 336
            ldc "  signed: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 9
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
         6: .line 337
            ldc "  unsigned: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 10
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(I)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         7: .line 338
            aload 0 /* log */
            ldc "  producedHeapChunkZapWord:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
         8: .line 339
            ldc "  hex: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
         9: .line 340
            ldc "  signed: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
        10: .line 341
            ldc "  unsigned: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
        11: .line 342
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
            ifeq 13
        12: .line 343
            aload 0 /* log */
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        13: .line 346
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
            ifeq 22
        14: .line 347
            aload 0 /* log */
            ldc "  consumedHeapChunkZapInt: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
        15: .line 348
            ldc "  hex: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 8
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.hex:(I)Lcom/oracle/svm/core/log/Log;
        16: .line 349
            ldc "  signed: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 10
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
        17: .line 350
            ldc "  unsigned: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            bipush 10
            invokevirtual com.oracle.svm.core.log.Log.spaces:(I)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapInt:()I
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(I)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        18: .line 351
            aload 0 /* log */
            ldc "  consumedHeapChunkZapWord:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
        19: .line 352
            ldc "  hex: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
        20: .line 353
            ldc "  signed: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
        21: .line 354
            ldc "  unsigned: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
        22: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* log */
            iconst_0
            invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        23: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* log */
            areturn
        end local 0 // com.oracle.svm.core.log.Log log
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0   log  Lcom/oracle/svm/core/log/Log;
    MethodParameters:
      Name  Flags
      log   

  public int getClassCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 364
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.dynamicHubCount:I
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public java.util.List<java.lang.Class<?>> getClassList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 370
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
            ifnonnull 4
         1: .line 371
            new java.util.ArrayList
            dup
            sipush 1024
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* list */
        start local 1 // java.util.List list
         2: .line 372
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            new com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor
            dup
            aload 1 /* list */
            invokespecial com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor.<init>:(Ljava/util/List;)V
            invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkRegions:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
            pop
         3: .line 373
            aload 0 /* this */
            aload 1 /* list */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
        end local 1 // java.util.List list
         4: .line 375
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.dynamicHubCount:I
            if_icmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.classList:Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            2    4     1  list  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;

  com.oracle.svm.core.genscavenge.HeapVerifier getHeapVerifier();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 410
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  void setHeapVerifier(com.oracle.svm.core.genscavenge.HeapVerifier);
    descriptor: (Lcom/oracle/svm/core/genscavenge/HeapVerifier;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.genscavenge.HeapVerifier value
         0: .line 414
            aload 0 /* this */
            aload 1 /* value */
            putfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
         1: .line 415
            return
        end local 1 // com.oracle.svm.core.genscavenge.HeapVerifier value
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    2     1  value  Lcom/oracle/svm/core/genscavenge/HeapVerifier;
    MethodParameters:
       Name  Flags
      value  

  static boolean getVerifyHeapBeforeGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 419
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyHeapBeforeCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean getVerifyHeapAfterGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 424
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyHeapAfterCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean getVerifyStackBeforeGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 429
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyStackBeforeCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean getVerifyStackAfterGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 434
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyStackAfterCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean getVerifyDirtyCardBeforeGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 439
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyDirtyCardsBeforeCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean getVerifyDirtyCardAfterGC();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 444
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerifyHeap: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
            ifne 1
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.VerifyDirtyCardsAfterCollection: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
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  void verifyBeforeGC(java.lang.String, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.String cause
        start local 2 // org.graalvm.word.UnsignedWord epoch
         0: .line 449
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.verifyBeforeGC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 3 /* trace */
        start local 3 // com.oracle.svm.core.log.Log trace
         1: .line 450
            aload 3 /* trace */
            ldc "  getVerifyHeapBeforeGC(): "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
            invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
            ldc "  heapVerifier: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            pop
         2: .line 451
            aload 3 /* trace */
            ldc "  getVerifyStackBeforeGC(): "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
            invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
            ldc "  stackVerifier: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 452
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapBeforeGC:()Z
            ifeq 8
         4: .line 453
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ifnonnull 5
            new java.lang.AssertionError
            dup
            ldc "No heap verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 454
      StackMap locals: com.oracle.svm.core.log.Log
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ldc "before collection"
            getstatic com.oracle.svm.core.genscavenge.HeapVerifier$Occasion.BEFORE_COLLECTION:Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyOperation:(Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;)Z
            ifne 8
         6: .line 455
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.verifyBeforeGC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  cause: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  heap fails to verify before epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* epoch */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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
         7: .line 456
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 459
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackBeforeGC:()Z
            ifeq 13
         9: .line 460
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
            ifnonnull 10
            new java.lang.AssertionError
            dup
            ldc "No stack verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
            ldc "before collection"
            invokevirtual com.oracle.svm.core.genscavenge.StackVerifier.verifyInAllThreads:(Lorg/graalvm/word/Pointer;Ljava/lang/String;)Z
            ifne 13
        11: .line 462
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.verifyBeforeGC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  cause: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  stack fails to verify epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* epoch */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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
        12: .line 463
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 466
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardBeforeGC:()Z
            ifeq 16
        14: .line 467
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ifnonnull 15
            new java.lang.AssertionError
            dup
            ldc "No heap verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 468
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.verifyDirtyCard:(Z)V
        16: .line 470
      StackMap locals:
      StackMap stack:
            aload 3 /* trace */
            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
        17: .line 471
            return
        end local 3 // com.oracle.svm.core.log.Log trace
        end local 2 // org.graalvm.word.UnsignedWord epoch
        end local 1 // java.lang.String cause
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0   18     1  cause  Ljava/lang/String;
            0   18     2  epoch  Lorg/graalvm/word/UnsignedWord;
            1   18     3  trace  Lcom/oracle/svm/core/log/Log;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame")
    MethodParameters:
       Name  Flags
      cause  
      epoch  

  void verifyAfterGC(java.lang.String, org.graalvm.word.UnsignedWord);
    descriptor: (Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.String cause
        start local 2 // org.graalvm.word.UnsignedWord epoch
         0: .line 475
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyHeapAfterGC:()Z
            ifeq 5
         1: .line 476
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "No heap verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ldc "after collection"
            getstatic com.oracle.svm.core.genscavenge.HeapVerifier$Occasion.AFTER_COLLECTION:Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyOperation:(Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/HeapVerifier$Occasion;)Z
            ifne 5
         3: .line 478
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.verifyAfterGC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  cause: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  heap fails to verify after epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* epoch */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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
         4: .line 479
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 482
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyStackAfterGC:()Z
            ifeq 10
         6: .line 483
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 7
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
            ifnonnull 7
            new java.lang.AssertionError
            dup
            ldc "No stack verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.stackVerifier:Lcom/oracle/svm/core/genscavenge/StackVerifier;
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
            ldc "after collection"
            invokevirtual com.oracle.svm.core.genscavenge.StackVerifier.verifyInAllThreads:(Lorg/graalvm/word/Pointer;Ljava/lang/String;)Z
            ifne 10
         8: .line 485
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[HeapImpl.verifyAfterGC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  cause: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  stack fails to verify after epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* epoch */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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 486
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 489
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getVerifyDirtyCardAfterGC:()Z
            ifeq 13
        11: .line 490
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.$assertionsDisabled:Z
            ifne 12
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.heapVerifier:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            ifnonnull 12
            new java.lang.AssertionError
            dup
            ldc "No heap verifier!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 491
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.verifyDirtyCard:(Z)V
        13: .line 493
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.word.UnsignedWord epoch
        end local 1 // java.lang.String cause
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0   14     1  cause  Ljava/lang/String;
            0   14     2  epoch  Lorg/graalvm/word/UnsignedWord;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame")
    MethodParameters:
       Name  Flags
      cause  
      epoch  

  public void prepareForSafepoint();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 498
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public void endSafepoint();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 503
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  public void attachThread(org.graalvm.nativeimage.IsolateThread);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // org.graalvm.nativeimage.IsolateThread isolateThread
         0: .line 509
            return
        end local 1 // org.graalvm.nativeimage.IsolateThread isolateThread
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    1     1  isolateThread  Lorg/graalvm/nativeimage/IsolateThread;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called during startup.")
    MethodParameters:
               Name  Flags
      isolateThread  

  public void detachThread(org.graalvm.nativeimage.IsolateThread);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // org.graalvm.nativeimage.IsolateThread isolateThread
         0: .line 513
            aload 1 /* isolateThread */
            invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.disableAndFlushForThread:(Lorg/graalvm/nativeimage/IsolateThread;)V
         1: .line 514
            return
        end local 1 // org.graalvm.nativeimage.IsolateThread isolateThread
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    2     1  isolateThread  Lorg/graalvm/nativeimage/IsolateThread;
    MethodParameters:
               Name  Flags
      isolateThread  

  public static boolean usesImageHeapChunks();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 519
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapCardMarking:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public static boolean usesImageHeapCardMarking();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 524
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 0 /* enabled */
        start local 0 // java.lang.Boolean enabled
         1: .line 525
            aload 0 /* enabled */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            if_acmpne 3
         2: .line 526
            iconst_0
            ireturn
         3: .line 527
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 0 /* enabled */
            ifnonnull 8
         4: .line 528
            invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
            invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.guaranteesHeapPreferredAddressSpaceAlignment:()Z
            ifeq 7
         5: .line 529
            getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifne 7
         6: .line 528
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 531
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
            invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.guaranteesHeapPreferredAddressSpaceAlignment:()Z
         9: .line 532
            ldc "Enabling option %s requires a custom image heap alignment at runtime, which cannot be ensured with the current configuration (option %s might be disabled)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 533
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
            aastore
            dup
            iconst_1
            getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
            aastore
        11: .line 531
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        12: .line 534
            getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifne 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
        14: .line 535
      StackMap locals:
      StackMap stack: int
            ldc "Enabling option %s is currently not supported together with non-zero %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.ImageHeapCardMarking:Lcom/oracle/svm/core/option/HostedOptionKey;
            aastore
            dup
            iconst_1
            getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.MaxSurvivorSpaces:Lcom/oracle/svm/core/option/HostedOptionKey;
            aastore
        15: .line 534
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        16: .line 536
            iconst_1
            ireturn
        end local 0 // java.lang.Boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   17     0  enabled  Ljava/lang/Boolean;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public int getPreferredAddressSpaceAlignment();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 542
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapChunks:()Z
            ifeq 2
         1: .line 543
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkAlignment:()Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.util.UnsignedUtils.safeToInt:(Lorg/graalvm/word/UnsignedWord;)I
            ireturn
         2: .line 545
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public int getImageHeapOffsetInAddressSpace();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 551
            iconst_0
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public boolean walkImageHeapObjects(com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 556
            ldc "Must only be called at a safepoint"
            invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
         1: .line 557
            aload 1 /* visitor */
            ifnull 6
         2: .line 558
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            aload 1 /* visitor */
            invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkImageHeapObjects:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 5
         3: .line 559
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
            ifeq 4
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
            aload 1 /* visitor */
            invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 5
         4: .line 558
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 561
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    7     1  visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  public boolean walkCollectedHeapObjects(com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 566
            ldc "Must only be called at a safepoint"
            invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeInProgressAtSafepoint:(Ljava/lang/String;)V
         1: .line 567
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 2
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 1 /* visitor */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    3     1  visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  boolean walkNativeImageHeapRegions(com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor);
    descriptor: (Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor visitor
         0: .line 571
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.imageHeapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            aload 1 /* visitor */
            invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkRegions:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
            ifeq 3
         1: .line 572
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
            ifeq 2
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
            aload 1 /* visitor */
            invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.walkRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
            ifeq 3
         2: .line 571
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor visitor
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    4     1  visitor  Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  public org.graalvm.compiler.nodes.gc.CardTableBarrierSet createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 577
            aload 1 /* metaAccess */
            ldc [Ljava/lang/Object;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 2 /* objectArrayType */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
         1: .line 578
            new com.oracle.svm.core.genscavenge.graal.SubstrateCardTableBarrierSet
            dup
            aload 2 /* objectArrayType */
            invokespecial com.oracle.svm.core.genscavenge.graal.SubstrateCardTableBarrierSet.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
            areturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    2     1       metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1    2     2  objectArrayType  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
            Name  Flags
      metaAccess  

  void addToReferencePendingList(java.lang.ref.Reference<?>);
    descriptor: (Ljava/lang/ref/Reference;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // java.lang.ref.Reference list
         0: .line 582
            ldc "Must only be called during a GC."
            invokestatic com.oracle.svm.core.thread.VMOperation.guaranteeGCInProgress:(Ljava/lang/String;)V
         1: .line 583
            aload 1 /* list */
            ifnonnull 3
         2: .line 584
            return
         3: .line 586
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lock:()Lcom/oracle/svm/core/locks/VMMutex;
            pop
         4: .line 588
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
            ifnull 13
         5: .line 589
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
            astore 2 /* current */
        start local 2 // java.lang.ref.Reference current
         6: .line 590
            aload 2 /* current */
            invokestatic com.oracle.svm.core.heap.ReferenceInternals.getNextDiscovered:(Ljava/lang/ref/Reference;)Ljava/lang/ref/Reference;
            astore 3 /* next */
        start local 3 // java.lang.ref.Reference next
         7: .line 591
            goto 10
         8: .line 592
      StackMap locals: java.lang.ref.Reference java.lang.ref.Reference
      StackMap stack:
            aload 3 /* next */
            astore 2 /* current */
         9: .line 593
            aload 2 /* current */
            invokestatic com.oracle.svm.core.heap.ReferenceInternals.getNextDiscovered:(Ljava/lang/ref/Reference;)Ljava/lang/ref/Reference;
            astore 3 /* next */
        10: .line 591
      StackMap locals:
      StackMap stack:
            aload 3 /* next */
            ifnonnull 8
        11: .line 595
            aload 2 /* current */
            aload 1 /* list */
            invokestatic com.oracle.svm.core.heap.ReferenceInternals.setNextDiscovered:(Ljava/lang/ref/Reference;Ljava/lang/ref/Reference;)V
        end local 3 // java.lang.ref.Reference next
        end local 2 // java.lang.ref.Reference current
        12: .line 597
            goto 20
        13: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* list */
            putfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
        14: .line 599
            aload 0 /* this */
            dup
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
            lconst_1
            ladd
            putfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
        15: .line 600
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
            invokevirtual com.oracle.svm.core.locks.VMCondition.broadcast:()V
        16: .line 602
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 4
        18: .line 603
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
        19: .line 604
            aload 4
            athrow
        20: .line 603
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
        21: .line 605
            return
        end local 1 // java.lang.ref.Reference list
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0   22     1     list  Ljava/lang/ref/Reference<*>;
            6   12     2  current  Ljava/lang/ref/Reference<*>;
            7   12     3     next  Ljava/lang/ref/Reference<*>;
      Exception table:
        from    to  target  type
           4    17      17  any
    Signature: (Ljava/lang/ref/Reference<*>;)V
    MethodParameters:
      Name  Flags
      list  

  public boolean hasReferencePendingList();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 610
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
         1: .line 612
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2
         4: .line 614
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         5: .line 612
            iload 2
            ireturn
         6: .line 613
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         7: .line 614
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         8: .line 615
            aload 1
            athrow
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
      Exception table:
        from    to  target  type
           1     4       6  any
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")

  public void waitForReferencePendingList();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 623
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
         1: .line 625
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
            ifnull 4
         2: .line 635
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         3: .line 626
            return
         4: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
            lstore 1 /* initialOffers */
        start local 1 // long initialOffers
         5: .line 633
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
            lstore 3 /* initialWakeUps */
        start local 3 // long initialWakeUps
         6: .line 634
            goto 10
        end local 3 // long initialWakeUps
        end local 1 // long initialOffers
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 5
         8: .line 635
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         9: .line 636
            aload 5
            athrow
        start local 1 // long initialOffers
        start local 3 // long initialWakeUps
        10: .line 635
      StackMap locals: long long
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
        11: .line 637
            lload 1 /* initialOffers */
            lload 3 /* initialWakeUps */
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.transitionToParkedInNativeThenAwaitPendingRefs:(JJ)V
        12: .line 638
            return
        end local 3 // long initialWakeUps
        end local 1 // long initialOffers
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            5    7     1   initialOffers  J
           10   13     1   initialOffers  J
            6    7     3  initialWakeUps  J
           10   13     3  initialWakeUps  J
      Exception table:
        from    to  target  type
           1     2       7  any
           4     7       7  any
    Exceptions:
      throws java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")

  private static void transitionToParkedInNativeThenAwaitPendingRefs(long, long);
    descriptor: (JJ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long initialOffers
        start local 2 // long initialWakeUps
         0: .line 642
            lload 0 /* initialOffers */
            lload 2 /* initialWakeUps */
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.doTransitionToParkedInNativeThenAwaitPendingRefs:(JJ)V
         1: .line 643
            return
        end local 2 // long initialWakeUps
        end local 0 // long initialOffers
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0   initialOffers  J
            0    2     2  initialWakeUps  J
    Exceptions:
      throws java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", calleeMustBe = false)
    MethodParameters:
                Name  Flags
      initialOffers   
      initialWakeUps  

  private static void doTransitionToParkedInNativeThenAwaitPendingRefs(long, long);
    descriptor: (JJ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // long initialOffers
        start local 2 // long initialWakeUps
         0: .line 646
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 4 /* currentThread */
        start local 4 // java.lang.Thread currentThread
         1: .line 647
            aload 4 /* currentThread */
            invokestatic com.oracle.svm.core.thread.JavaThreads.getThreadStatus:(Ljava/lang/Thread;)I
            istore 5 /* oldThreadStatus */
        start local 5 // int oldThreadStatus
         2: .line 648
            aload 4 /* currentThread */
            sipush 657
            invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
         3: .line 652
      StackMap locals: java.lang.Thread int
      StackMap stack:
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 5
         4: .line 653
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
         5: .line 655
      StackMap locals:
      StackMap stack:
            lload 0 /* initialOffers */
            lload 2 /* initialWakeUps */
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.transitionToNativeThenAwaitPendingRefs:(JJ)Z
            istore 6 /* offered */
        start local 6 // boolean offered
         6: .line 656
            iload 6 /* offered */
            ifeq 3
        end local 6 // boolean offered
         7: .line 657
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 7
         9: .line 658
            aload 4 /* currentThread */
            iload 5 /* oldThreadStatus */
            invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
        10: .line 659
            aload 7
            athrow
        11: .line 658
      StackMap locals:
      StackMap stack:
            aload 4 /* currentThread */
            iload 5 /* oldThreadStatus */
            invokestatic com.oracle.svm.core.thread.JavaThreads.setThreadStatus:(Ljava/lang/Thread;I)V
        12: .line 660
            return
        end local 5 // int oldThreadStatus
        end local 4 // java.lang.Thread currentThread
        end local 2 // long initialWakeUps
        end local 0 // long initialOffers
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0    initialOffers  J
            0   13     2   initialWakeUps  J
            1   13     4    currentThread  Ljava/lang/Thread;
            2   13     5  oldThreadStatus  I
            6    7     6          offered  Z
      Exception table:
        from    to  target  type
           3     8       8  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
                Name  Flags
      initialOffers   
      initialWakeUps  

  private static boolean transitionToNativeThenAwaitPendingRefs(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long initialOffers
        start local 2 // long initialWakeUps
         0: .line 666
            iconst_3
            invokestatic com.oracle.svm.core.nodes.CFunctionPrologueNode.cFunctionPrologue:(I)V
         1: .line 667
            lload 0 /* initialOffers */
            lload 2 /* initialWakeUps */
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.awaitPendingRefsInNative:(JJ)Z
            istore 4 /* offered */
        start local 4 // boolean offered
         2: .line 668
            iconst_3
            invokestatic com.oracle.svm.core.nodes.CFunctionEpilogueNode.cFunctionEpilogue:(I)V
         3: .line 669
            iload 4 /* offered */
            ireturn
        end local 4 // boolean offered
        end local 2 // long initialWakeUps
        end local 0 // long initialOffers
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0   initialOffers  J
            0    4     2  initialWakeUps  J
            2    4     4         offered  Z
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "Must not be inlined in a caller that has an exception handler: We only support InvokeNode and not InvokeWithExceptionNode between a CFunctionPrologueNode and CFunctionEpilogueNode")
    MethodParameters:
                Name  Flags
      initialOffers   
      initialWakeUps  

  private static boolean awaitPendingRefsInNative(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long initialOffers
        start local 2 // long initialWakeUps
         0: .line 682
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
         1: .line 684
            goto 6
         2: .line 685
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
            invokevirtual com.oracle.svm.core.locks.VMCondition.blockNoTransition:()V
         3: .line 686
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
            lload 2 /* initialWakeUps */
            lcmp
            ifeq 6
         4: .line 692
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         5: .line 687
            iconst_0
            ireturn
         6: .line 684
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListOfferCounter:J
            lload 0 /* initialOffers */
            lcmp
            ifeq 2
         7: .line 692
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         8: .line 690
            iconst_1
            ireturn
         9: .line 691
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        10: .line 692
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
        11: .line 693
            aload 4
            athrow
        end local 2 // long initialWakeUps
        end local 0 // long initialOffers
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0   initialOffers  J
            0   12     2  initialWakeUps  J
      Exception table:
        from    to  target  type
           1     4       9  any
           6     7       9  any
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "In native.")
      com.oracle.svm.core.annotate.NeverInline(value = "Provide a return address for the Java frame anchor.")
    MethodParameters:
                Name  Flags
      initialOffers   
      initialWakeUps  

  public void wakeUpReferencePendingListWaiters();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 699
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
         1: .line 701
            aload 0 /* this */
            dup
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
            lconst_1
            ladd
            putfield com.oracle.svm.core.genscavenge.HeapImpl.refListWaiterWakeUpCounter:J
         2: .line 702
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_CONDITION:Lcom/oracle/svm/core/locks/VMCondition;
            invokevirtual com.oracle.svm.core.locks.VMCondition.broadcast:()V
         3: .line 703
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 704
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         6: .line 705
            aload 1
            athrow
         7: .line 704
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         8: .line 706
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
      Exception table:
        from    to  target  type
           1     4       4  any
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")

  public java.lang.ref.Reference<?> getAndClearReferencePendingList();
    descriptor: ()Ljava/lang/ref/Reference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
         0: .line 711
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.lockNoTransition:()V
         1: .line 713
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
            astore 1 /* list */
        start local 1 // java.lang.ref.Reference list
         2: .line 714
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.core.genscavenge.HeapImpl.refPendingList:Ljava/lang/ref/Reference;
         3: .line 715
            aload 1 /* list */
            astore 3
         4: .line 717
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         5: .line 715
            aload 3
            areturn
        end local 1 // java.lang.ref.Reference list
         6: .line 716
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         7: .line 717
            getstatic com.oracle.svm.core.genscavenge.HeapImpl.REF_MUTEX:Lcom/oracle/svm/core/locks/VMMutex;
            invokevirtual com.oracle.svm.core.locks.VMMutex.unlock:()V
         8: .line 718
            aload 2
            athrow
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            2    6     1  list  Ljava/lang/ref/Reference<*>;
      Exception table:
        from    to  target  type
           1     4       6  any
    Signature: ()Ljava/lang/ref/Reference<*>;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Safepoint while holding the lock could lead to a deadlock in GC.")

  public org.graalvm.compiler.nodes.gc.BarrierSet createBarrierSet(jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.createBarrierSet:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(com.oracle.svm.core.log.Log);
    descriptor: (Lcom/oracle/svm/core/log/Log;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
        start local 1 // com.oracle.svm.core.log.Log log
         0: .line 127
            aload 0 /* this */
            aload 1 /* log */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.logImageHeapPartitionBoundaries:(Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         1: .line 128
            aload 1 /* log */
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.zapValuesToLog:(Lcom/oracle/svm/core/log/Log;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         2: .line 129
            aload 0 /* this */
            aload 1 /* log */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 130
            aload 1 /* log */
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         4: .line 131
            return
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.genscavenge.HeapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            0    5     1   log  Lcom/oracle/svm/core/log/Log;
}
SourceFile: "HeapImpl.java"
NestMembers:
  com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor
InnerClasses:
  public abstract ImageHeapRegionVisitor = com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor of com.oracle.svm.core.MemoryWalker
  public abstract Visitor = com.oracle.svm.core.MemoryWalker$Visitor of com.oracle.svm.core.MemoryWalker
  public abstract DiagnosticThunk = com.oracle.svm.core.SubstrateUtil$DiagnosticThunk of com.oracle.svm.core.SubstrateUtil
  public DiagnosticThunkRegister = com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister of com.oracle.svm.core.SubstrateUtil
  private ClassListBuilderVisitor = com.oracle.svm.core.genscavenge.HeapImpl$ClassListBuilderVisitor of com.oracle.svm.core.genscavenge.HeapImpl
  public final Occasion = com.oracle.svm.core.genscavenge.HeapVerifier$Occasion of com.oracle.svm.core.genscavenge.HeapVerifier
  public AtomicReference = com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference of com.oracle.svm.core.jdk.UninterruptibleUtils
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract FeatureAccess = org.graalvm.nativeimage.hosted.Feature$FeatureAccess of org.graalvm.nativeimage.hosted.Feature