public final class com.oracle.svm.core.genscavenge.GCImpl implements com.oracle.svm.core.heap.GC
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.GCImpl
  super_class: java.lang.Object
{
  private final com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor rememberedSetConstructor;
    descriptor: Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  private final com.oracle.svm.core.heap.RuntimeCodeCacheCleaner runtimeCodeCacheCleaner;
    descriptor: Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private final java.lang.OutOfMemoryError oldGenerationSizeExceeded;
    descriptor: Ljava/lang/OutOfMemoryError;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.heap.NoAllocationVerifier noAllocationVerifier;
    descriptor: Lcom/oracle/svm/core/heap/NoAllocationVerifier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private boolean completeCollection;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.word.UnsignedWord sizeBefore;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x0002) ACC_PRIVATE

  private boolean collectionInProgress;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.word.UnsignedWord collectionEpoch;
    descriptor: Lorg/graalvm/word/UnsignedWord;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 97
            ldc Lcom/oracle/svm/core/genscavenge/GCImpl;
            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.GCImpl.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.graalvm.nativeimage.hosted.Feature$FeatureAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$FeatureAccess access
         0: .line 120
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 98
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor
            dup
            invokespecial com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.rememberedSetConstructor:Lcom/oracle/svm/core/genscavenge/GCImpl$RememberedSetConstructor;
         2: .line 99
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor
            dup
            invokespecial com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
         3: .line 100
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor
            dup
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokespecial com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.<init>:(Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;)V
            putfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
         4: .line 101
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor.<init>:(Lcom/oracle/svm/core/genscavenge/GCImpl;)V
            putfield com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRootsVisitor:Lcom/oracle/svm/core/genscavenge/GCImpl$BlackenImageHeapRootsVisitor;
         5: .line 102
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.RuntimeCodeCacheWalker
            dup
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokespecial com.oracle.svm.core.genscavenge.RuntimeCodeCacheWalker.<init>:(Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)V
            putfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheWalker:Lcom/oracle/svm/core/genscavenge/RuntimeCodeCacheWalker;
         6: .line 103
            aload 0 /* this */
            new com.oracle.svm.core.heap.RuntimeCodeCacheCleaner
            dup
            invokespecial com.oracle.svm.core.heap.RuntimeCodeCacheCleaner.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheCleaner:Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
         7: .line 105
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCAccounting
            dup
            invokespecial com.oracle.svm.core.genscavenge.GCAccounting.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
         8: .line 106
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.Timers
            dup
            invokespecial com.oracle.svm.core.genscavenge.Timers.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
         9: .line 108
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation
            dup
            invokespecial com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
        10: .line 109
            aload 0 /* this */
            new java.lang.OutOfMemoryError
            dup
            ldc "Garbage-collected heap size exceeded."
            invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
            putfield com.oracle.svm.core.genscavenge.GCImpl.oldGenerationSizeExceeded:Ljava/lang/OutOfMemoryError;
        11: .line 110
            aload 0 /* this */
            ldc "GCImpl.GCImpl()"
            iconst_0
            invokestatic com.oracle.svm.core.heap.NoAllocationVerifier.factory:(Ljava/lang/String;Z)Lcom/oracle/svm/core/heap/NoAllocationVerifier;
            putfield com.oracle.svm.core.genscavenge.GCImpl.noAllocationVerifier:Lcom/oracle/svm/core/heap/NoAllocationVerifier;
        12: .line 111
            aload 0 /* this */
            new com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser
            dup
            invokespecial com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.<init>:()V
            putfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
        13: .line 114
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
        14: .line 115
            aload 0 /* this */
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            putfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
        15: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
        16: .line 117
            aload 0 /* this */
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
        17: .line 121
            aload 0 /* this */
            aload 1 /* access */
            invokestatic com.oracle.svm.core.genscavenge.CollectionPolicy.getInitialPolicy:(Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
            putfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
        18: .line 122
            invokestatic com.oracle.svm.core.jdk.RuntimeSupport.getRuntimeSupport:()Lcom/oracle/svm/core/jdk/RuntimeSupport;
            aload 0 /* this */
            invokedynamic run(Lcom/oracle/svm/core/genscavenge/GCImpl;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/svm/core/genscavenge/GCImpl.printGCSummary()V (7)
                  ()V
            invokevirtual com.oracle.svm.core.jdk.RuntimeSupport.addShutdownHook:(Ljava/lang/Runnable;)V
        19: .line 123
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$FeatureAccess access
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   20     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 void collect(com.oracle.svm.core.heap.GCCause);
    descriptor: (Lcom/oracle/svm/core/heap/GCCause;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.heap.GCCause cause
         0: .line 127
            aload 0 /* this */
            aload 1 /* cause */
            iconst_0
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collect:(Lcom/oracle/svm/core/heap/GCCause;Z)V
         1: .line 128
            return
        end local 1 // com.oracle.svm.core.heap.GCCause cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0    2     1  cause  Lcom/oracle/svm/core/heap/GCCause;
    MethodParameters:
       Name  Flags
      cause  

  private void collect(com.oracle.svm.core.heap.GCCause, boolean);
    descriptor: (Lcom/oracle/svm/core/heap/GCCause;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.heap.GCCause cause
        start local 2 // boolean forceFullGC
         0: .line 131
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.possibleCollectionPrologue:()Lorg/graalvm/word/UnsignedWord;
            astore 3 /* requestingEpoch */
        start local 3 // org.graalvm.word.UnsignedWord requestingEpoch
         1: .line 132
            aload 0 /* this */
            aload 1 /* cause */
            iload 2 /* forceFullGC */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collectWithoutAllocating:(Lcom/oracle/svm/core/heap/GCCause;Z)V
         2: .line 133
            aload 0 /* this */
            aload 3 /* requestingEpoch */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.possibleCollectionEpilogue:(Lorg/graalvm/word/UnsignedWord;)V
         3: .line 134
            return
        end local 3 // org.graalvm.word.UnsignedWord requestingEpoch
        end local 2 // boolean forceFullGC
        end local 1 // com.oracle.svm.core.heap.GCCause cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0    4     1            cause  Lcom/oracle/svm/core/heap/GCCause;
            0    4     2      forceFullGC  Z
            1    4     3  requestingEpoch  Lorg/graalvm/word/UnsignedWord;
    MethodParameters:
             Name  Flags
      cause        
      forceFullGC  

  void collectWithoutAllocating(com.oracle.svm.core.heap.GCCause, boolean);
    descriptor: (Lcom/oracle/svm/core/heap/GCCause;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.heap.GCCause cause
        start local 2 // boolean forceFullGC
         0: .line 139
            ldc Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            istore 3 /* size */
        start local 3 // int size
         1: .line 140
            iload 3 /* size */
            invokestatic org.graalvm.nativeimage.StackValue.get:(I)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
            astore 4 /* data */
        start local 4 // com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData data
         2: .line 141
            aload 4 /* data */
            checkcast org.graalvm.word.Pointer
            iload 3 /* size */
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            invokestatic com.oracle.svm.core.MemoryUtil.fillToMemoryAtomic:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;B)V
         3: .line 142
            aload 4 /* data */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
            invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setNativeVMOperation:(Lcom/oracle/svm/core/thread/NativeVMOperation;)V
         4: .line 143
            aload 4 /* data */
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.heap.GCCause.getId:()I
            invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setCauseId:(I)V
         5: .line 144
            aload 4 /* data */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setRequestingEpoch:(Lorg/graalvm/word/UnsignedWord;)V
         6: .line 145
            aload 4 /* data */
            iload 2 /* forceFullGC */
            invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setForceFullGC:(Z)V
         7: .line 146
            aload 0 /* this */
            aload 4 /* data */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.enqueueCollectOperation:(Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;)V
         8: .line 147
            aload 4 /* data */
            invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getOutOfMemory:()Z
            ifeq 10
         9: .line 148
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.oldGenerationSizeExceeded:Ljava/lang/OutOfMemoryError;
            athrow
        10: .line 150
      StackMap locals: int com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
      StackMap stack:
            return
        end local 4 // com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData data
        end local 3 // int size
        end local 2 // boolean forceFullGC
        end local 1 // com.oracle.svm.core.heap.GCCause cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   11     1        cause  Lcom/oracle/svm/core/heap/GCCause;
            0   11     2  forceFullGC  Z
            1   11     3         size  I
            2   11     4         data  Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Avoid races with other threads that also try to trigger a GC")
      com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Must not allocate in the implementation of garbage collection.")
    MethodParameters:
             Name  Flags
      cause        
      forceFullGC  

  private void enqueueCollectOperation(com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData);
    descriptor: (Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData data
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectOperation:Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
            aload 1 /* data */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation.enqueue:(Lcom/oracle/svm/core/thread/NativeVMOperationData;)V
         1: .line 155
            return
        end local 1 // com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData data
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0    2     1  data  Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Used as a transition between uninterruptible and interruptible code", calleeMustBe = false)
    MethodParameters:
      Name  Flags
      data  

  private boolean collectOperation(com.oracle.svm.core.heap.GCCause, org.graalvm.word.UnsignedWord, boolean);
    descriptor: (Lcom/oracle/svm/core/heap/GCCause;Lorg/graalvm/word/UnsignedWord;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.heap.GCCause cause
        start local 2 // org.graalvm.word.UnsignedWord requestingEpoch
        start local 3 // boolean forceFullGC
         0: .line 159
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.collectOperation:"
            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;
         1: .line 160
            ldc "  epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
         2: .line 161
            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.heap.GCCause.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
         3: .line 162
            ldc "  requestingEpoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* requestingEpoch */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
         4: .line 163
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
         5: .line 159
            astore 4 /* trace */
        start local 4 // com.oracle.svm.core.log.Log trace
         6: .line 164
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 7
            invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
            ifne 7
            new java.lang.AssertionError
            dup
            ldc "Collection should be a VMOperation."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 165
      StackMap locals: com.oracle.svm.core.log.Log
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 8
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            aload 2 /* requestingEpoch */
            invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         9: .line 168
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.startCollectionOrExit:()V
        10: .line 170
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            invokevirtual com.oracle.svm.core.genscavenge.Timers.resetAllExceptMutator:()V
        11: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
            iconst_1
            invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
        12: .line 174
            invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.disableAndFlushForAllThreads:()V
        13: .line 176
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.printGCBefore:(Ljava/lang/String;)V
        14: .line 177
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
            iload 3 /* forceFullGC */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collectImpl:(Ljava/lang/String;Z)Z
            istore 5 /* outOfMemory */
        start local 5 // boolean outOfMemory
        15: .line 178
            iconst_0
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getYoungChunkBytesAfter:()Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.setEdenAndYoungGenBytes:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
        16: .line 179
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual com.oracle.svm.core.heap.GCCause.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.printGCAfter:(Ljava/lang/String;)V
        17: .line 181
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.finishCollection:()V
        18: .line 182
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            pop
        19: .line 184
            aload 4 /* 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
        20: .line 185
            iload 5 /* outOfMemory */
            ireturn
        end local 5 // boolean outOfMemory
        end local 4 // com.oracle.svm.core.log.Log trace
        end local 3 // boolean forceFullGC
        end local 2 // org.graalvm.word.UnsignedWord requestingEpoch
        end local 1 // com.oracle.svm.core.heap.GCCause cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0             this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   21     1            cause  Lcom/oracle/svm/core/heap/GCCause;
            0   21     2  requestingEpoch  Lorg/graalvm/word/UnsignedWord;
            0   21     3      forceFullGC  Z
            6   21     4            trace  Lcom/oracle/svm/core/log/Log;
           15   21     5      outOfMemory  Z
    MethodParameters:
                 Name  Flags
      cause            
      requestingEpoch  
      forceFullGC      

  private boolean collectImpl(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // java.lang.String cause
        start local 2 // boolean forceFullGC
         0: .line 189
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.collectImpl:"
            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;
            ldc "  epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 3 /* trace */
        start local 3 // com.oracle.svm.core.log.Log trace
         1: .line 192
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.precondition:()V
         2: .line 194
            aload 3 /* trace */
            ldc "  Begin collection: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 195
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.noAllocationVerifier:Lcom/oracle/svm/core/heap/NoAllocationVerifier;
            invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.open:()Lcom/oracle/svm/core/heap/NoAllocationVerifier;
            astore 5 /* nav */
        start local 5 // com.oracle.svm.core.heap.NoAllocationVerifier nav
         4: .line 197
            aload 3 /* trace */
            ldc "  Verify before: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         5: .line 198
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.verifyBefore:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 6 /* verifyBeforeTimer */
        start local 6 // com.oracle.svm.core.genscavenge.Timer verifyBeforeTimer
         6: .line 200
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 1 /* cause */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyBeforeGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
         7: .line 201
            goto 11
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log top com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         8: astore 7
         9: .line 202
            aload 6 /* verifyBeforeTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        10: .line 203
            aload 7
            athrow
        11: .line 202
      StackMap locals:
      StackMap stack:
            aload 6 /* verifyBeforeTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        12: .line 204
            aload 0 /* this */
            iload 2 /* forceFullGC */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.doCollectImpl:(Z)Z
            istore 4 /* outOfMemory */
        start local 4 // boolean outOfMemory
        13: .line 205
            iload 4 /* outOfMemory */
            ifeq 25
        14: .line 207
            iconst_1
            invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
        15: .line 209
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.doCollectImpl:(Z)Z
            istore 4 /* outOfMemory */
        16: .line 210
            goto 20
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        17: astore 7
        18: .line 211
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
        19: .line 212
            aload 7
            athrow
        20: .line 211
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.setSoftReferencesAreWeak:(Z)V
        end local 6 // com.oracle.svm.core.genscavenge.Timer verifyBeforeTimer
        21: .line 214
            goto 25
        end local 4 // boolean outOfMemory
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log top com.oracle.svm.core.heap.NoAllocationVerifier
      StackMap stack: java.lang.Throwable
        22: astore 8
        23: .line 215
            aload 5 /* nav */
            invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.close:()V
        24: .line 216
            aload 8
            athrow
        start local 4 // boolean outOfMemory
        25: .line 215
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier
      StackMap stack:
            aload 5 /* nav */
            invokevirtual com.oracle.svm.core.heap.NoAllocationVerifier.close:()V
        26: .line 217
            aload 3 /* trace */
            ldc "  Verify after: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        27: .line 218
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.verifyAfter:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 6 /* verifyAfterTime */
        start local 6 // com.oracle.svm.core.genscavenge.Timer verifyAfterTime
        28: .line 220
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 1 /* cause */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
        29: .line 221
            goto 33
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String int com.oracle.svm.core.log.Log int com.oracle.svm.core.heap.NoAllocationVerifier com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        30: astore 7
        31: .line 222
            aload 6 /* verifyAfterTime */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        32: .line 223
            aload 7
            athrow
        33: .line 222
      StackMap locals:
      StackMap stack:
            aload 6 /* verifyAfterTime */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        34: .line 225
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.postcondition:()V
        35: .line 227
            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
        36: .line 228
            iload 4 /* outOfMemory */
            ireturn
        end local 6 // com.oracle.svm.core.genscavenge.Timer verifyAfterTime
        end local 5 // com.oracle.svm.core.heap.NoAllocationVerifier nav
        end local 4 // boolean outOfMemory
        end local 3 // com.oracle.svm.core.log.Log trace
        end local 2 // boolean forceFullGC
        end local 1 // java.lang.String cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   37     0               this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   37     1              cause  Ljava/lang/String;
            0   37     2        forceFullGC  Z
            1   37     3              trace  Lcom/oracle/svm/core/log/Log;
           13   22     4        outOfMemory  Z
           25   37     4        outOfMemory  Z
            4   37     5                nav  Lcom/oracle/svm/core/heap/NoAllocationVerifier;
            6   21     6  verifyBeforeTimer  Lcom/oracle/svm/core/genscavenge/Timer;
           28   37     6    verifyAfterTime  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           6     8       8  any
          15    17      17  any
           4    22      22  any
          28    30      30  any
    MethodParameters:
             Name  Flags
      cause        
      forceFullGC  

  private boolean doCollectImpl(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // boolean forceFullGC
         0: .line 232
            invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
            invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.beforeGarbageCollection:()V
         1: .line 234
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.beforeCollection:()V
         2: .line 236
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* collectionTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer collectionTimer
         3: .line 238
            aload 0 /* this */
            iload 1 /* forceFullGC */
            ifne 4
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
            invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.collectCompletely:()Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.Timer
      StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
         4: iconst_1
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.Timer
      StackMap stack: com.oracle.svm.core.genscavenge.GCImpl int
         5: putfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
         6: .line 239
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            ifeq 11
         7: .line 240
            getstatic com.oracle.svm.core.genscavenge.HeapPolicyOptions.CollectYoungGenerationSeparately: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
            ifeq 9
         8: .line 241
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
         9: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
        10: .line 244
            goto 17
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
            invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.collectIncrementally:()Z
            ifeq 17
        12: .line 245
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scavenge:(Z)V
        13: .line 247
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 3
        15: .line 248
            aload 2 /* collectionTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        16: .line 249
            aload 3
            athrow
        17: .line 248
      StackMap locals:
      StackMap stack:
            aload 2 /* collectionTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        18: .line 250
            invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.afterGarbageCollection:(Z)V
        19: .line 252
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.afterCollection:(ZLcom/oracle/svm/core/genscavenge/Timer;)V
        20: .line 253
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
            astore 3 /* maxBytes */
        start local 3 // org.graalvm.word.UnsignedWord maxBytes
        21: .line 254
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            astore 4 /* usedBytes */
        start local 4 // org.graalvm.word.UnsignedWord usedBytes
        22: .line 255
            aload 4 /* usedBytes */
            aload 3 /* maxBytes */
            invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(Lorg/graalvm/word/UnsignedWord;)Z
            istore 5 /* outOfMemory */
        start local 5 // boolean outOfMemory
        23: .line 257
            aload 4 /* usedBytes */
            aload 3 /* maxBytes */
            invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.afterCollection:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
        24: .line 259
            iload 5 /* outOfMemory */
            ireturn
        end local 5 // boolean outOfMemory
        end local 4 // org.graalvm.word.UnsignedWord usedBytes
        end local 3 // org.graalvm.word.UnsignedWord maxBytes
        end local 2 // com.oracle.svm.core.genscavenge.Timer collectionTimer
        end local 1 // boolean forceFullGC
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   25     1      forceFullGC  Z
            3   25     2  collectionTimer  Lcom/oracle/svm/core/genscavenge/Timer;
           21   25     3         maxBytes  Lorg/graalvm/word/UnsignedWord;
           22   25     4        usedBytes  Lorg/graalvm/word/UnsignedWord;
           23   25     5      outOfMemory  Z
      Exception table:
        from    to  target  type
           3    14      14  any
    MethodParameters:
             Name  Flags
      forceFullGC  

  public static org.graalvm.word.UnsignedWord getChunkBytes();
    descriptor: ()Lorg/graalvm/word/UnsignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 267
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            astore 0 /* youngBytes */
        start local 0 // org.graalvm.word.UnsignedWord youngBytes
         1: .line 268
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            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;
            astore 1 /* oldBytes */
        start local 1 // org.graalvm.word.UnsignedWord oldBytes
         2: .line 269
            aload 0 /* youngBytes */
            aload 1 /* oldBytes */
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 1 // org.graalvm.word.UnsignedWord oldBytes
        end local 0 // org.graalvm.word.UnsignedWord youngBytes
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1    3     0  youngBytes  Lorg/graalvm/word/UnsignedWord;
            2    3     1    oldBytes  Lorg/graalvm/word/UnsignedWord;

  private void printGCBefore(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // java.lang.String cause
         0: .line 273
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            astore 2 /* verboseGCLog */
        start local 2 // com.oracle.svm.core.log.Log verboseGCLog
         1: .line 274
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 3 /* heap */
        start local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 275
            aload 0 /* this */
            getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
            ifne 3
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
            ifeq 4
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
      StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
         3: invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            goto 5
      StackMap locals:
      StackMap stack: com.oracle.svm.core.genscavenge.GCImpl
         4: invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
      StackMap stack: com.oracle.svm.core.genscavenge.GCImpl org.graalvm.word.UnsignedWord
         5: putfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
         6: .line 276
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
            ifeq 15
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            iconst_1
            invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
            ifeq 15
         7: .line 277
            aload 2 /* verboseGCLog */
            ldc "[Heap policy parameters: "
            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
         8: .line 278
            aload 2 /* verboseGCLog */
            ldc "  YoungGenerationSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumYoungGenerationSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         9: .line 279
            aload 2 /* verboseGCLog */
            ldc "      MaximumHeapSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        10: .line 280
            aload 2 /* verboseGCLog */
            ldc "      MinimumHeapSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMinimumHeapSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        11: .line 281
            aload 2 /* verboseGCLog */
            ldc "     AlignedChunkSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        12: .line 282
            aload 2 /* verboseGCLog */
            ldc "  LargeArrayThreshold: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getLargeArrayThreshold:()Lorg/graalvm/word/UnsignedWord;
            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
        13: .line 283
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
            ifeq 15
        14: .line 284
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 2 /* verboseGCLog */
            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
        15: .line 287
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
            ifeq 27
        16: .line 288
            aload 2 /* verboseGCLog */
            ldc "["
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        17: .line 289
            aload 2 /* verboseGCLog */
            ldc "["
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        18: .line 290
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* startTime */
        start local 4 // long startTime
        19: .line 291
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
            ifeq 22
        20: .line 292
            aload 2 /* verboseGCLog */
            lload 4 /* startTime */
            invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
            invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            ldc " msec: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        21: .line 293
            goto 23
        22: .line 294
      StackMap locals: long
      StackMap stack:
            aload 2 /* verboseGCLog */
            lload 4 /* startTime */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            pop
        23: .line 296
      StackMap locals:
      StackMap stack:
            aload 2 /* verboseGCLog */
            ldc " GC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc " before"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
            pop
        24: .line 297
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
            ifeq 26
        25: .line 298
            aload 3 /* heap */
            aload 2 /* verboseGCLog */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;)V
        26: .line 300
      StackMap locals:
      StackMap stack:
            aload 2 /* verboseGCLog */
            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
        end local 4 // long startTime
        27: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 2 // com.oracle.svm.core.log.Log verboseGCLog
        end local 1 // java.lang.String cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   28     1         cause  Ljava/lang/String;
            1   28     2  verboseGCLog  Lcom/oracle/svm/core/log/Log;
            2   28     3          heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
           19   27     4     startTime  J
    MethodParameters:
       Name  Flags
      cause  

  private void printGCAfter(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // java.lang.String cause
         0: .line 305
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            astore 2 /* verboseGCLog */
        start local 2 // com.oracle.svm.core.log.Log verboseGCLog
         1: .line 306
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 3 /* heap */
        start local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 307
            getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
            ifne 3
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
            ifeq 41
         3: .line 308
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
      StackMap stack:
            getstatic com.oracle.svm.core.SubstrateGCOptions.PrintGC: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
            ifeq 19
         4: .line 309
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            astore 4 /* printGCLog */
        start local 4 // com.oracle.svm.core.log.Log printGCLog
         5: .line 310
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            astore 5 /* sizeAfter */
        start local 5 // org.graalvm.word.UnsignedWord sizeAfter
         6: .line 311
            aload 4 /* printGCLog */
            ldc "["
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         7: .line 312
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
            ifeq 10
         8: .line 313
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.getFinish:()J
            lstore 6 /* finishNanos */
        start local 6 // long finishNanos
         9: .line 314
            aload 4 /* printGCLog */
            lload 6 /* finishNanos */
            invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
            invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            ldc " msec: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        end local 6 // long finishNanos
        10: .line 316
      StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord
      StackMap stack:
            aload 4 /* printGCLog */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            ifeq 11
            ldc "Full GC"
            goto 12
      StackMap locals:
      StackMap stack: com.oracle.svm.core.log.Log
        11: ldc "Incremental GC"
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord
      StackMap stack: com.oracle.svm.core.log.Log java.lang.String
        12: invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        13: .line 317
            aload 4 /* printGCLog */
            ldc " ("
            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 ") "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        14: .line 318
            aload 4 /* printGCLog */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.sizeBefore:Lorg/graalvm/word/UnsignedWord;
            sipush 1024
            invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
        15: .line 319
            aload 4 /* printGCLog */
            ldc "K->"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        16: .line 320
            aload 4 /* printGCLog */
            aload 5 /* sizeAfter */
            sipush 1024
            invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "K, "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        17: .line 321
            aload 4 /* printGCLog */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
            ldc 1000000000
            ldc 7
            invokevirtual com.oracle.svm.core.log.Log.rational:(JJJ)Lcom/oracle/svm/core/log/Log;
            ldc " secs"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        18: .line 322
            aload 4 /* printGCLog */
            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
        end local 5 // org.graalvm.word.UnsignedWord sizeAfter
        end local 4 // com.oracle.svm.core.log.Log printGCLog
        19: .line 324
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
            ifeq 41
        20: .line 325
            aload 2 /* verboseGCLog */
            ldc " ["
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        21: .line 326
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.getFinish:()J
            lstore 4 /* finishNanos */
        start local 4 // long finishNanos
        22: .line 327
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimeStamps: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
            ifeq 25
        23: .line 328
            aload 2 /* verboseGCLog */
            lload 4 /* finishNanos */
            invokestatic com.oracle.svm.core.genscavenge.Timer.getTimeSinceFirstAllocation:(J)J
            invokestatic com.oracle.svm.core.util.TimeUtils.roundNanosToMillis:(J)J
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            ldc " msec: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        24: .line 329
            goto 26
        25: .line 330
      StackMap locals: long
      StackMap stack:
            aload 2 /* verboseGCLog */
            lload 4 /* finishNanos */
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            pop
        26: .line 332
      StackMap locals:
      StackMap stack:
            aload 2 /* verboseGCLog */
            ldc " GC:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc " after "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  epoch: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)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;
            pop
        27: .line 333
            aload 2 /* verboseGCLog */
            ldc "  policy: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        28: .line 334
            aload 2 /* verboseGCLog */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getPolicy:()Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
            invokevirtual com.oracle.svm.core.genscavenge.CollectionPolicy.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        29: .line 335
            aload 2 /* verboseGCLog */
            ldc "  type: "
            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.GCImpl.completeCollection:Z
            ifeq 30
            ldc "complete"
            goto 31
      StackMap locals:
      StackMap stack: com.oracle.svm.core.log.Log
        30: ldc "incremental"
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl java.lang.String com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl long
      StackMap stack: com.oracle.svm.core.log.Log java.lang.String
        31: invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        32: .line 336
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintHeapShape: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
            ifeq 34
        33: .line 337
            aload 3 /* heap */
            aload 2 /* verboseGCLog */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.report:(Lcom/oracle/svm/core/log/Log;)V
        34: .line 339
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimes: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
            ifne 38
        35: .line 340
            aload 2 /* verboseGCLog */
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        36: .line 341
            aload 2 /* verboseGCLog */
            ldc "  collection time: "
            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.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.collection:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(J)Lcom/oracle/svm/core/log/Log;
            ldc " nanoSeconds"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        37: .line 342
            goto 39
        38: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            aload 2 /* verboseGCLog */
            invokevirtual com.oracle.svm.core.genscavenge.Timers.logAfterCollection:(Lcom/oracle/svm/core/log/Log;)V
        39: .line 345
      StackMap locals:
      StackMap stack:
            aload 2 /* verboseGCLog */
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        40: .line 346
            aload 2 /* verboseGCLog */
            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
        end local 4 // long finishNanos
        41: .line 349
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 2 // com.oracle.svm.core.log.Log verboseGCLog
        end local 1 // java.lang.String cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   42     1         cause  Ljava/lang/String;
            1   42     2  verboseGCLog  Lcom/oracle/svm/core/log/Log;
            2   42     3          heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            5   19     4    printGCLog  Lcom/oracle/svm/core/log/Log;
            6   19     5     sizeAfter  Lorg/graalvm/word/UnsignedWord;
            9   10     6   finishNanos  J
           22   41     4   finishNanos  J
    MethodParameters:
       Name  Flags
      cause  

  private static void precondition();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 352
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 0 /* oldGen */
        start local 0 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         1: .line 353
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "oldGen.getToSpace() should be empty before a collection."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 354
      StackMap locals: com.oracle.svm.core.genscavenge.OldGeneration
      StackMap stack:
            return
        end local 0 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    3     0  oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;

  private void postcondition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 357
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 1 /* heap */
        start local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
         1: .line 358
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            astore 2 /* youngGen */
        start local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
         2: .line 359
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 360
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.verbosePostCondition:()V
         4: .line 361
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 5
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 5
            new java.lang.AssertionError
            dup
            ldc "youngGen.getEden() should be empty after a collection."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 362
      StackMap locals: com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration
      StackMap stack:
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 6
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "oldGen.getToSpace() should be empty after a collection."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 363
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
        end local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1    7     1      heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            2    7     2  youngGen  Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            3    7     3    oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;

  private void verbosePostCondition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 366
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 1 /* heap */
        start local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
         1: .line 367
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            astore 2 /* youngGen */
        start local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
         2: .line 368
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 374
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.runtimeAssertions:()Z
            ifeq 43
         4: .line 375
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            astore 4 /* witness */
        start local 4 // com.oracle.svm.core.log.Log witness
         5: .line 376
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 16
         6: .line 377
            aload 4 /* witness */
            ldc "[GCImpl.postcondition: Eden space should be empty after a collection."
            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 379
            aload 4 /* witness */
            ldc "  These should all be 0:"
            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
         8: .line 380
            aload 4 /* witness */
            ldc "    Eden space first AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         9: .line 381
            aload 4 /* witness */
            ldc "    Eden space last  AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        10: .line 382
            aload 4 /* witness */
            ldc "    Eden space first UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        11: .line 383
            aload 4 /* witness */
            ldc "    Eden space last  UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        12: .line 384
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            aload 4 /* witness */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.Space.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
        13: .line 385
            aload 4 /* witness */
            ldc "  verifying the heap:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        14: .line 386
            aload 1 /* heap */
            ldc "because Eden space is not empty"
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
        15: .line 387
            aload 4 /* witness */
            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
        16: .line 389
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration com.oracle.svm.core.log.Log
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        17: goto 30
        18: .line 390
      StackMap locals: int
      StackMap stack:
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 29
        19: .line 391
            aload 4 /* witness */
            ldc "[GCImpl.postcondition: Survivor toSpace should be empty after a collection."
            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
        20: .line 393
            aload 4 /* witness */
            ldc "  These should all be 0:"
            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
        21: .line 394
            aload 4 /* witness */
            ldc "    Survivor space "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
            ldc " first AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        22: .line 395
            aload 4 /* witness */
            ldc "    Survivor space "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
            ldc " last  AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        23: .line 396
            aload 4 /* witness */
            ldc "    Survivor space "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
            ldc " first UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        24: .line 397
            aload 4 /* witness */
            ldc "    Survivor space "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
            ldc " last  UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        25: .line 398
            aload 2 /* youngGen */
            iload 5 /* i */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getSurvivorToSpaceAt:(I)Lcom/oracle/svm/core/genscavenge/Space;
            aload 4 /* witness */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.Space.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
        26: .line 399
            aload 4 /* witness */
            ldc "  verifying the heap:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        27: .line 400
            aload 1 /* heap */
            ldc "because Survivor toSpace is not empty"
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
        28: .line 401
            aload 4 /* witness */
            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
        29: .line 389
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaxSurvivorSpaces:()I
            if_icmplt 18
        end local 5 // int i
        31: .line 404
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.isEmpty:()Z
            ifne 43
        32: .line 405
            aload 4 /* witness */
            ldc "[GCImpl.postcondition: oldGen toSpace should be empty after a collection."
            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
        33: .line 407
            aload 4 /* witness */
            ldc "  These should all be 0:"
            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
        34: .line 408
            aload 4 /* witness */
            ldc "    oldGen toSpace first AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        35: .line 409
            aload 4 /* witness */
            ldc "    oldGen toSpace last  AlignedChunk:   "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastAlignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        36: .line 410
            aload 4 /* witness */
            ldc "    oldGen.toSpace first UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getFirstUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        37: .line 411
            aload 4 /* witness */
            ldc "    oldGen.toSpace last  UnalignedChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getLastUnalignedHeapChunk:()Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        38: .line 412
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getToSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            aload 4 /* witness */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.Space.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
        39: .line 413
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.getFromSpace:()Lcom/oracle/svm/core/genscavenge/Space;
            aload 4 /* witness */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.Space.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
        40: .line 414
            aload 4 /* witness */
            ldc "  verifying the heap:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        41: .line 415
            aload 1 /* heap */
            ldc "because oldGen toSpace is not empty"
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.verifyAfterGC:(Ljava/lang/String;Lorg/graalvm/word/UnsignedWord;)V
        42: .line 416
            aload 4 /* witness */
            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
        end local 4 // com.oracle.svm.core.log.Log witness
        43: .line 419
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
        end local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   44     0      this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   44     1      heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            2   44     2  youngGen  Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            3   44     3    oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
            5   43     4   witness  Lcom/oracle/svm/core/log/Log;
           17   31     5         i  I

  static boolean runtimeAssertions();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 423
            invokestatic com.oracle.svm.core.RuntimeAssertionsSupport.singleton:()Lcom/oracle/svm/core/RuntimeAssertionsSupport;
            ldc Lcom/oracle/svm/core/genscavenge/GCImpl;
            invokevirtual com.oracle.svm.core.RuntimeAssertionsSupport.desiredAssertionStatus:(Ljava/lang/Class;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

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

  public void collectCompletely(com.oracle.svm.core.heap.GCCause);
    descriptor: (Lcom/oracle/svm/core/heap/GCCause;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.heap.GCCause cause
         0: .line 435
            aload 0 /* this */
            aload 1 /* cause */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collect:(Lcom/oracle/svm/core/heap/GCCause;Z)V
         1: .line 436
            return
        end local 1 // com.oracle.svm.core.heap.GCCause cause
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0    2     1  cause  Lcom/oracle/svm/core/heap/GCCause;
    MethodParameters:
       Name  Flags
      cause  

  boolean isCompleteCollection();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 439
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

  private void scavenge(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=9, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // boolean fromDirtyRoots
         0: .line 444
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor.openCounters:()Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor$Counters;
            astore 2 /* counters */
        start local 2 // com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters counters
         1: .line 446
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.scavenge:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  fromDirtyRoots: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 1 /* fromDirtyRoots */
            invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 3 /* trace */
        start local 3 // com.oracle.svm.core.log.Log trace
         2: .line 447
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.rootScan:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 4 /* rootScanTimer */
        start local 4 // com.oracle.svm.core.genscavenge.Timer rootScanTimer
         3: .line 449
            aload 3 /* trace */
            ldc "  Cheney scan: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         4: .line 450
            iload 1 /* fromDirtyRoots */
            ifeq 7
         5: .line 451
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cheneyScanFromDirtyRoots:()V
         6: .line 452
            goto 12
         7: .line 453
      StackMap locals: com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cheneyScanFromRoots:()V
         8: .line 455
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
        10: .line 456
            aload 4 /* rootScanTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        11: .line 457
            aload 5
            athrow
        12: .line 456
      StackMap locals:
      StackMap stack:
            aload 4 /* rootScanTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        13: .line 459
            invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
            ifeq 21
        14: .line 460
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.cleanCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 5 /* cleanCodeCacheTimer */
        start local 5 // com.oracle.svm.core.genscavenge.Timer cleanCodeCacheTimer
        15: .line 467
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.cleanRuntimeCodeCache:()V
        16: .line 468
            goto 20
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        17: astore 6
        18: .line 469
            aload 5 /* cleanCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        19: .line 470
            aload 6
            athrow
        20: .line 469
      StackMap locals:
      StackMap stack:
            aload 5 /* cleanCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        end local 5 // com.oracle.svm.core.genscavenge.Timer cleanCodeCacheTimer
        21: .line 473
      StackMap locals:
      StackMap stack:
            aload 3 /* trace */
            ldc "  Discovered references: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        22: .line 474
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.referenceObjects:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 5 /* referenceObjectsTimer */
        start local 5 // com.oracle.svm.core.genscavenge.Timer referenceObjectsTimer
        23: .line 476
            invokestatic com.oracle.svm.core.genscavenge.ReferenceObjectProcessing.processRememberedReferences:()Ljava/lang/ref/Reference;
            astore 6 /* newlyPendingList */
        start local 6 // java.lang.ref.Reference newlyPendingList
        24: .line 477
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 6 /* newlyPendingList */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.addToReferencePendingList:(Ljava/lang/ref/Reference;)V
        end local 6 // java.lang.ref.Reference newlyPendingList
        25: .line 478
            goto 29
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        26: astore 7
        27: .line 479
            aload 5 /* referenceObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        28: .line 480
            aload 7
            athrow
        29: .line 479
      StackMap locals:
      StackMap stack:
            aload 5 /* referenceObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        30: .line 481
            aload 3 /* trace */
            ldc "  Release spaces: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        31: .line 482
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.releaseSpaces:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 6 /* releaseSpacesTimer */
        start local 6 // com.oracle.svm.core.genscavenge.Timer releaseSpacesTimer
        32: .line 484
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 33
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.isEmpty:()Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 485
      StackMap locals: com.oracle.svm.core.genscavenge.Timer
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.releaseSpaces:()V
        34: .line 486
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser.release:()V
        35: .line 487
            goto 39
      StackMap locals:
      StackMap stack: java.lang.Throwable
        36: astore 7
        37: .line 488
            aload 6 /* releaseSpacesTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        38: .line 489
            aload 7
            athrow
        39: .line 488
      StackMap locals:
      StackMap stack:
            aload 6 /* releaseSpacesTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        40: .line 490
            aload 3 /* trace */
            ldc "  Swap spaces: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        41: .line 491
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.swapSpaces:()V
        42: .line 492
            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
        end local 6 // com.oracle.svm.core.genscavenge.Timer releaseSpacesTimer
        end local 5 // com.oracle.svm.core.genscavenge.Timer referenceObjectsTimer
        end local 4 // com.oracle.svm.core.genscavenge.Timer rootScanTimer
        end local 3 // com.oracle.svm.core.log.Log trace
        43: .line 493
            goto 47
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters
      StackMap stack: java.lang.Throwable
        44: astore 8
        45: .line 494
            aload 2 /* counters */
            invokeinterface com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters.close:()V
        46: .line 495
            aload 8
            athrow
        47: .line 494
      StackMap locals:
      StackMap stack:
            aload 2 /* counters */
            invokeinterface com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters.close:()V
        48: .line 496
            return
        end local 2 // com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters counters
        end local 1 // boolean fromDirtyRoots
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   49     0                   this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   49     1         fromDirtyRoots  Z
            1   49     2               counters  Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor$Counters;
            2   43     3                  trace  Lcom/oracle/svm/core/log/Log;
            3   43     4          rootScanTimer  Lcom/oracle/svm/core/genscavenge/Timer;
           15   21     5    cleanCodeCacheTimer  Lcom/oracle/svm/core/genscavenge/Timer;
           23   43     5  referenceObjectsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
           24   25     6       newlyPendingList  Ljava/lang/ref/Reference<*>;
           32   43     6     releaseSpacesTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           3     9       9  any
          15    17      17  any
          23    26      26  any
          32    36      36  any
           1    44      44  any
    MethodParameters:
                Name  Flags
      fromDirtyRoots  

  private void walkRuntimeCodeCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 504
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.walkRuntimeCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 1 /* walkRuntimeCodeCacheTimer */
        start local 1 // com.oracle.svm.core.genscavenge.Timer walkRuntimeCodeCacheTimer
         1: .line 506
            invokestatic com.oracle.svm.core.code.RuntimeCodeInfoMemory.singleton:()Lcom/oracle/svm/core/code/RuntimeCodeInfoMemory;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheWalker:Lcom/oracle/svm/core/genscavenge/RuntimeCodeCacheWalker;
            invokevirtual com.oracle.svm.core.code.RuntimeCodeInfoMemory.walkRuntimeMethodsDuringGC:(Lcom/oracle/svm/core/code/RuntimeCodeCache$CodeInfoVisitor;)Z
            pop
         2: .line 507
            goto 6
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 508
            aload 1 /* walkRuntimeCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         5: .line 509
            aload 2
            athrow
         6: .line 508
      StackMap locals:
      StackMap stack:
            aload 1 /* walkRuntimeCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         7: .line 510
            return
        end local 1 // com.oracle.svm.core.genscavenge.Timer walkRuntimeCodeCacheTimer
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    8     0                       this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1    8     1  walkRuntimeCodeCacheTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           1     3       3  any

  private void cleanRuntimeCodeCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 513
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.cleanRuntimeCodeCache:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 1 /* cleanRuntimeCodeCacheTimer */
        start local 1 // com.oracle.svm.core.genscavenge.Timer cleanRuntimeCodeCacheTimer
         1: .line 515
            invokestatic com.oracle.svm.core.code.RuntimeCodeInfoMemory.singleton:()Lcom/oracle/svm/core/code/RuntimeCodeInfoMemory;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.runtimeCodeCacheCleaner:Lcom/oracle/svm/core/heap/RuntimeCodeCacheCleaner;
            invokevirtual com.oracle.svm.core.code.RuntimeCodeInfoMemory.walkRuntimeMethodsDuringGC:(Lcom/oracle/svm/core/code/RuntimeCodeCache$CodeInfoVisitor;)Z
            pop
         2: .line 516
            goto 6
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 517
            aload 1 /* cleanRuntimeCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         5: .line 518
            aload 2
            athrow
         6: .line 517
      StackMap locals:
      StackMap stack:
            aload 1 /* cleanRuntimeCodeCacheTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         7: .line 519
            return
        end local 1 // com.oracle.svm.core.genscavenge.Timer cleanRuntimeCodeCacheTimer
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    8     0                        this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1    8     1  cleanRuntimeCodeCacheTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           1     3       3  any

  private void cheneyScanFromRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 522
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.cheneyScanFromRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 524
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.cheneyScanFromRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* cheneyScanFromRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer cheneyScanFromRootsTimer
         2: .line 532
            iconst_0
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.prepareForPromotion:(Z)V
         3: .line 538
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.promoteIndividualPinnedObjects:()V
         4: .line 544
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenStackRoots:()V
         5: .line 547
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkThreadLocals:()V
         6: .line 553
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRoots:()V
         7: .line 556
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
         8: .line 558
            invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
            ifeq 11
         9: .line 560
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkRuntimeCodeCache:()V
        10: .line 563
            aload 0 /* this */
            iconst_0
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
        11: .line 566
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
            invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.reset:()V
        12: .line 567
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
        14: .line 568
            aload 2 /* cheneyScanFromRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        15: .line 569
            aload 3
            athrow
        16: .line 568
      StackMap locals:
      StackMap stack:
            aload 2 /* cheneyScanFromRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        17: .line 571
            aload 1 /* 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
        18: .line 572
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer cheneyScanFromRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   19     0                      this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   19     1                     trace  Lcom/oracle/svm/core/log/Log;
            2   19     2  cheneyScanFromRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           2    13      13  any

  private void cheneyScanFromDirtyRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 575
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.cheneyScanFromDirtyRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 577
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.cheneyScanFromDirtyRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* cheneyScanFromDirtyRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer cheneyScanFromDirtyRootsTimer
         2: .line 584
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 585
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.emptyFromSpaceIntoToSpace:()V
         4: .line 593
            iconst_1
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.prepareForPromotion:(Z)V
         5: .line 601
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.promoteIndividualPinnedObjects:()V
         6: .line 608
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyCardRoots:()V
         7: .line 614
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenStackRoots:()V
         8: .line 617
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkThreadLocals:()V
         9: .line 623
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapRoots:()V
        10: .line 626
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
        11: .line 628
            invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
            ifeq 14
        12: .line 630
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkRuntimeCodeCache:()V
        13: .line 633
            aload 0 /* this */
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjects:(Z)V
        14: .line 636
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.OldGeneration
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
            invokevirtual com.oracle.svm.core.genscavenge.GreyToBlackObjectVisitor.reset:()V
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        15: .line 637
            goto 19
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        16: astore 4
        17: .line 638
            aload 2 /* cheneyScanFromDirtyRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        18: .line 639
            aload 4
            athrow
        19: .line 638
      StackMap locals:
      StackMap stack:
            aload 2 /* cheneyScanFromDirtyRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        20: .line 641
            aload 1 /* 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
        21: .line 642
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer cheneyScanFromDirtyRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   22     0                           this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   22     1                          trace  Lcom/oracle/svm/core/log/Log;
            2   22     2  cheneyScanFromDirtyRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            3   15     3                         oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
      Exception table:
        from    to  target  type
           2    16      16  any

  private void promoteIndividualPinnedObjects();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 645
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.promoteIndividualPinnedObjects:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 646
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.promotePinnedObjects:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* promotePinnedObjectsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer promotePinnedObjectsTimer
         2: .line 648
            invokestatic com.oracle.svm.core.genscavenge.PinnedObjectImpl.claimPinnedObjectList:()Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
            astore 3 /* rest */
        start local 3 // com.oracle.svm.core.genscavenge.PinnedObjectImpl rest
         3: .line 649
            goto 10
         4: .line 650
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.PinnedObjectImpl
      StackMap stack:
            aload 3 /* rest */
            astore 4 /* first */
        start local 4 // com.oracle.svm.core.genscavenge.PinnedObjectImpl first
         5: .line 651
            aload 4 /* first */
            invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.getNext:()Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
            astore 5 /* next */
        start local 5 // com.oracle.svm.core.genscavenge.PinnedObjectImpl next
         6: .line 652
            aload 4 /* first */
            invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.isOpen:()Z
            ifeq 9
         7: .line 657
            aload 4 /* first */
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.promotePinnedObject:(Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
         8: .line 658
            aload 4 /* first */
            invokestatic com.oracle.svm.core.genscavenge.PinnedObjectImpl.pushPinnedObject:(Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
         9: .line 660
      StackMap locals: com.oracle.svm.core.genscavenge.PinnedObjectImpl com.oracle.svm.core.genscavenge.PinnedObjectImpl
      StackMap stack:
            aload 5 /* next */
            astore 3 /* rest */
        end local 5 // com.oracle.svm.core.genscavenge.PinnedObjectImpl next
        end local 4 // com.oracle.svm.core.genscavenge.PinnedObjectImpl first
        10: .line 649
      StackMap locals:
      StackMap stack:
            aload 3 /* rest */
            ifnonnull 4
        end local 3 // com.oracle.svm.core.genscavenge.PinnedObjectImpl rest
        11: .line 662
            goto 15
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        12: astore 6
        13: .line 663
            aload 2 /* promotePinnedObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        14: .line 664
            aload 6
            athrow
        15: .line 663
      StackMap locals:
      StackMap stack:
            aload 2 /* promotePinnedObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        16: .line 665
            aload 1 /* 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 666
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer promotePinnedObjectsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   18     0                       this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   18     1                      trace  Lcom/oracle/svm/core/log/Log;
            2   18     2  promotePinnedObjectsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            3   11     3                       rest  Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
            5   10     4                      first  Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
            6   10     5                       next  Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
      Exception table:
        from    to  target  type
           2    12      12  any

  private void blackenStackRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 673
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.blackenStackRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 674
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.blackenStackRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* blackenStackRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer blackenStackRootsTimer
         2: .line 676
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readCallerStackPointer:()Lorg/graalvm/word/Pointer;
            astore 3 /* sp */
        start local 3 // org.graalvm.word.Pointer sp
         3: .line 677
            aload 1 /* trace */
            ldc "[blackenStackRoots:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  sp: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 3 /* sp */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
         4: .line 678
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.readReturnAddress:()Lorg/graalvm/nativeimage/c/function/CodePointer;
            astore 4 /* ip */
        start local 4 // org.graalvm.nativeimage.c.function.CodePointer ip
         5: .line 679
            aload 1 /* trace */
            ldc "  ip: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* ip */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         6: .line 681
            ldc Lcom/oracle/svm/core/stack/JavaStackWalk;
            invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.stack.JavaStackWalk
            astore 5 /* walk */
        start local 5 // com.oracle.svm.core.stack.JavaStackWalk walk
         7: .line 682
            aload 5 /* walk */
            aload 3 /* sp */
            aload 4 /* ip */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.initWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;)V
         8: .line 683
            aload 0 /* this */
            aload 5 /* walk */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkStack:(Lcom/oracle/svm/core/stack/JavaStackWalk;)V
         9: .line 685
            getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 19
        10: .line 690
            invokestatic com.oracle.svm.core.thread.VMThreads.firstThread:()Lorg/graalvm/nativeimage/IsolateThread;
            astore 6 /* vmThread */
        start local 6 // org.graalvm.nativeimage.IsolateThread vmThread
        11: goto 18
        12: .line 691
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer org.graalvm.word.Pointer org.graalvm.nativeimage.c.function.CodePointer com.oracle.svm.core.stack.JavaStackWalk org.graalvm.nativeimage.IsolateThread
      StackMap stack:
            aload 6 /* vmThread */
            invokestatic org.graalvm.nativeimage.CurrentIsolate.getCurrentThread:()Lorg/graalvm/nativeimage/IsolateThread;
            if_acmpne 14
        13: .line 698
            goto 17
        14: .line 700
      StackMap locals:
      StackMap stack:
            aload 5 /* walk */
            aload 6 /* vmThread */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.initWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lorg/graalvm/nativeimage/IsolateThread;)Z
            ifeq 16
        15: .line 701
            aload 0 /* this */
            aload 5 /* walk */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.walkStack:(Lcom/oracle/svm/core/stack/JavaStackWalk;)V
        16: .line 703
      StackMap locals:
      StackMap stack:
            aload 1 /* trace */
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        17: .line 690
      StackMap locals:
      StackMap stack:
            aload 6 /* vmThread */
            invokestatic com.oracle.svm.core.thread.VMThreads.nextThread:(Lorg/graalvm/nativeimage/IsolateThread;)Lorg/graalvm/nativeimage/IsolateThread;
            astore 6 /* vmThread */
      StackMap locals:
      StackMap stack:
        18: aload 6 /* vmThread */
            invokeinterface org.graalvm.nativeimage.IsolateThread.isNonNull:()Z
            ifne 12
        end local 6 // org.graalvm.nativeimage.IsolateThread vmThread
        19: .line 706
      StackMap locals:
      StackMap stack:
            aload 1 /* 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
        end local 5 // com.oracle.svm.core.stack.JavaStackWalk walk
        end local 4 // org.graalvm.nativeimage.c.function.CodePointer ip
        end local 3 // org.graalvm.word.Pointer sp
        20: .line 707
            goto 24
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        21: astore 7
        22: .line 708
            aload 2 /* blackenStackRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        23: .line 709
            aload 7
            athrow
        24: .line 708
      StackMap locals:
      StackMap stack:
            aload 2 /* blackenStackRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        25: .line 710
            aload 1 /* 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
        26: .line 711
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer blackenStackRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   27     0                    this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   27     1                   trace  Lcom/oracle/svm/core/log/Log;
            2   27     2  blackenStackRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            3   20     3                      sp  Lorg/graalvm/word/Pointer;
            5   20     4                      ip  Lorg/graalvm/nativeimage/c/function/CodePointer;
            7   20     5                    walk  Lcom/oracle/svm/core/stack/JavaStackWalk;
           11   19     6                vmThread  Lorg/graalvm/nativeimage/IsolateThread;
      Exception table:
        from    to  target  type
           2    21      21  any
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame. Note that we could start the stack frame also further down the stack, because GC stack frames must not access any objects that are processed by the GC. But we don't store stack frame information for the first frame we would need to process.")
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Required by called JavaStackWalker methods. We are at a safepoint during GC, so it does not change anything for this method.", calleeMustBe = false)

  private void walkStack(com.oracle.svm.core.stack.JavaStackWalk);
    descriptor: (Lcom/oracle/svm/core/stack/JavaStackWalk;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.stack.JavaStackWalk walk
         0: .line 721
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 1
            invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "This methods accesses a CodeInfo without a tether"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 724
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;
            invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.code.SimpleCodeInfoQueryResult
            astore 2 /* queryResult */
        start local 2 // com.oracle.svm.core.code.SimpleCodeInfoQueryResult queryResult
         2: .line 725
            aload 1 /* walk */
            invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getSP:()Lorg/graalvm/word/Pointer;
            astore 3 /* sp */
        start local 3 // org.graalvm.word.Pointer sp
         3: .line 726
            aload 1 /* walk */
            invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getPossiblyStaleIP:()Lorg/graalvm/nativeimage/c/function/CodePointer;
            astore 4 /* ip */
        start local 4 // org.graalvm.nativeimage.c.function.CodePointer ip
         4: .line 729
            aload 1 /* walk */
            invokeinterface com.oracle.svm.core.stack.JavaStackWalk.getIPCodeInfo:()Lcom/oracle/svm/core/code/UntetheredCodeInfo;
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.convert:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;)Lcom/oracle/svm/core/code/CodeInfo;
            astore 5 /* codeInfo */
        start local 5 // com.oracle.svm.core.code.CodeInfo codeInfo
         5: .line 730
            aload 3 /* sp */
            invokestatic com.oracle.svm.core.deopt.Deoptimizer.checkDeoptimized:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
            astore 6 /* deoptFrame */
        start local 6 // com.oracle.svm.core.deopt.DeoptimizedFrame deoptFrame
         6: .line 731
            aload 6 /* deoptFrame */
            ifnonnull 16
         7: .line 732
            aload 5 /* codeInfo */
            invokeinterface com.oracle.svm.core.code.CodeInfo.isNull:()Z
            ifeq 9
         8: .line 733
            aload 3 /* sp */
            aload 4 /* ip */
            aload 6 /* deoptFrame */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.reportUnknownFrameEncountered:(Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Ljava/lang/RuntimeException;
            athrow
         9: .line 736
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.stack.JavaStackWalk com.oracle.svm.core.code.SimpleCodeInfoQueryResult org.graalvm.word.Pointer org.graalvm.nativeimage.c.function.CodePointer com.oracle.svm.core.code.CodeInfo com.oracle.svm.core.deopt.DeoptimizedFrame
      StackMap stack:
            aload 5 /* codeInfo */
            aload 5 /* codeInfo */
            aload 4 /* ip */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.relativeIP:(Lcom/oracle/svm/core/code/CodeInfo;Lorg/graalvm/nativeimage/c/function/CodePointer;)J
            aload 2 /* queryResult */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.lookupCodeInfo:(Lcom/oracle/svm/core/code/CodeInfo;JLcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;)V
        10: .line 737
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 11
            aload 3 /* sp */
            invokestatic com.oracle.svm.core.deopt.Deoptimizer.checkDeoptimized:(Lorg/graalvm/word/Pointer;)Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
            ifnull 11
            new java.lang.AssertionError
            dup
            ldc "We are at a safepoint, so no deoptimization can have happened even though looking up the code info is not uninterruptible"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 739
      StackMap locals:
      StackMap stack:
            aload 5 /* codeInfo */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.getStackReferenceMapEncoding:(Lcom/oracle/svm/core/code/CodeInfo;)Lcom/oracle/svm/core/c/NonmovableArray;
            astore 7 /* referenceMapEncoding */
        start local 7 // com.oracle.svm.core.c.NonmovableArray referenceMapEncoding
        12: .line 740
            aload 2 /* queryResult */
            invokeinterface com.oracle.svm.core.code.SimpleCodeInfoQueryResult.getReferenceMapIndex:()J
            lstore 8 /* referenceMapIndex */
        start local 8 // long referenceMapIndex
        13: .line 741
            lload 8 /* referenceMapIndex */
            ldc -1
            lcmp
            ifne 15
        14: .line 742
            aload 3 /* sp */
            aload 4 /* ip */
            aload 5 /* codeInfo */
            invokestatic com.oracle.svm.core.code.CodeInfoTable.reportNoReferenceMap:(Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/code/CodeInfo;)Ljava/lang/RuntimeException;
            athrow
        15: .line 744
      StackMap locals: com.oracle.svm.core.c.NonmovableArray long
      StackMap stack:
            aload 3 /* sp */
            aload 7 /* referenceMapEncoding */
            lload 8 /* referenceMapIndex */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokestatic com.oracle.svm.core.heap.CodeReferenceMapDecoder.walkOffsetsFromPointer:(Lorg/graalvm/word/PointerBase;Lcom/oracle/svm/core/c/NonmovableArray;JLcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
            pop
        end local 8 // long referenceMapIndex
        end local 7 // com.oracle.svm.core.c.NonmovableArray referenceMapEncoding
        16: .line 752
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.deopt.DeoptimizationSupport.enabled:()Z
            ifeq 19
            aload 5 /* codeInfo */
            invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeInfo:()Lcom/oracle/svm/core/code/CodeInfo;
            if_acmpeq 19
        17: .line 760
            aload 5 /* codeInfo */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokestatic com.oracle.svm.core.code.RuntimeCodeInfoAccess.walkStrongReferences:(Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
            pop
        18: .line 761
            aload 5 /* codeInfo */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokestatic com.oracle.svm.core.code.RuntimeCodeInfoAccess.walkWeakReferences:(Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
            pop
        19: .line 764
      StackMap locals:
      StackMap stack:
            aload 1 /* walk */
            aload 2 /* queryResult */
            aload 6 /* deoptFrame */
            invokestatic com.oracle.svm.core.stack.JavaStackWalker.continueWalk:(Lcom/oracle/svm/core/stack/JavaStackWalk;Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Z
            ifne 1
        20: .line 766
            return
        end local 6 // com.oracle.svm.core.deopt.DeoptimizedFrame deoptFrame
        end local 5 // com.oracle.svm.core.code.CodeInfo codeInfo
        end local 4 // org.graalvm.nativeimage.c.function.CodePointer ip
        end local 3 // org.graalvm.word.Pointer sp
        end local 2 // com.oracle.svm.core.code.SimpleCodeInfoQueryResult queryResult
        end local 1 // com.oracle.svm.core.stack.JavaStackWalk walk
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   21     0                  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   21     1                  walk  Lcom/oracle/svm/core/stack/JavaStackWalk;
            2   21     2           queryResult  Lcom/oracle/svm/core/code/SimpleCodeInfoQueryResult;
            3   21     3                    sp  Lorg/graalvm/word/Pointer;
            4   21     4                    ip  Lorg/graalvm/nativeimage/c/function/CodePointer;
            5   21     5              codeInfo  Lcom/oracle/svm/core/code/CodeInfo;
            6   21     6            deoptFrame  Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
           12   16     7  referenceMapEncoding  Lcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Byte;>;
           13   16     8     referenceMapIndex  J
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Required by called JavaStackWalker methods. We are at a safepoint during GC, so it does not change anything for this method.", calleeMustBe = false)
    MethodParameters:
      Name  Flags
      walk  

  private void walkThreadLocals();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 772
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[walkRegisteredObjectReferences"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc ":"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 773
            getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 11
         2: .line 774
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.walkThreadLocals:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* walkThreadLocalsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer walkThreadLocalsTimer
         3: .line 776
            aload 1 /* trace */
            ldc "[ThreadLocalsWalker:"
            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 777
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjRefVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjRefVisitor;
            invokestatic com.oracle.svm.core.genscavenge.ThreadLocalMTWalker.walk:(Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)V
         5: .line 778
            aload 1 /* 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
         6: .line 779
            goto 10
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 780
            aload 2 /* walkThreadLocalsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         9: .line 781
            aload 3
            athrow
        10: .line 780
      StackMap locals:
      StackMap stack:
            aload 2 /* walkThreadLocalsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        end local 2 // com.oracle.svm.core.genscavenge.Timer walkThreadLocalsTimer
        11: .line 783
      StackMap locals:
      StackMap stack:
            aload 1 /* 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
        12: .line 784
            return
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   13     0                   this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   13     1                  trace  Lcom/oracle/svm/core/log/Log;
            3   11     2  walkThreadLocalsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           3     7       7  any

  private void blackenDirtyImageHeapRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 787
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.usesImageHeapCardMarking:()Z
            ifne 3
         1: .line 788
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRoots:()V
         2: .line 789
            return
         3: .line 792
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[blackenDirtyImageHeapRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         4: .line 793
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.blackenImageHeapRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* blackenImageHeapRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer blackenImageHeapRootsTimer
         5: .line 795
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getImageHeapInfo:()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            astore 3 /* info */
        start local 3 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
         6: .line 796
            aload 0 /* this */
            aload 3 /* info */
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstAlignedChunkWithRememberedSet:J
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
         7: .line 797
            aload 3 /* info */
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstUnalignedChunkWithRememberedSet:J
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
         8: .line 796
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapChunkRoots:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
         9: .line 799
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.isPresent:()Z
            ifeq 19
        10: .line 800
            invokestatic com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.singleton:()Lcom/oracle/svm/core/genscavenge/AuxiliaryImageHeap;
            invokeinterface com.oracle.svm.core.genscavenge.AuxiliaryImageHeap.getImageHeapInfo:()Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            astore 4 /* auxInfo */
        start local 4 // com.oracle.svm.core.genscavenge.ImageHeapInfo auxInfo
        11: .line 801
            aload 4 /* auxInfo */
            ifnull 19
        12: .line 802
            aload 0 /* this */
            aload 4 /* auxInfo */
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstAlignedChunkWithRememberedSet:J
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
        13: .line 803
            aload 4 /* auxInfo */
            getfield com.oracle.svm.core.genscavenge.ImageHeapInfo.offsetOfFirstUnalignedChunkWithRememberedSet:J
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.asImageHeapChunk:(J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
        14: .line 802
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.blackenDirtyImageHeapChunkRoots:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
        end local 4 // com.oracle.svm.core.genscavenge.ImageHeapInfo auxInfo
        end local 3 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
        15: .line 806
            goto 19
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        16: astore 5
        17: .line 807
            aload 2 /* blackenImageHeapRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        18: .line 808
            aload 5
            athrow
        19: .line 807
      StackMap locals:
      StackMap stack:
            aload 2 /* blackenImageHeapRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        20: .line 809
            aload 1 /* 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
        21: .line 810
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer blackenImageHeapRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   22     0                        this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            4   22     1                       trace  Lcom/oracle/svm/core/log/Log;
            5   22     2  blackenImageHeapRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            6   15     3                        info  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
           11   15     4                     auxInfo  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
      Exception table:
        from    to  target  type
           5    16      16  any

  private void blackenDirtyImageHeapChunkRoots(com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader, com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
    descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader firstAligned
        start local 2 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader firstUnaligned
         0: .line 813
            aload 1 /* firstAligned */
            astore 3 /* aligned */
        start local 3 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader aligned
         1: .line 814
            goto 4
         2: .line 815
      StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
      StackMap stack:
            aload 3 /* aligned */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
            iconst_1
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
            pop
         3: .line 816
            aload 3 /* aligned */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
            astore 3 /* aligned */
         4: .line 814
      StackMap locals:
      StackMap stack:
            aload 3 /* aligned */
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
            ifne 2
         5: .line 818
            aload 2 /* firstUnaligned */
            astore 4 /* unaligned */
        start local 4 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader unaligned
         6: .line 819
            goto 9
         7: .line 820
      StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
      StackMap stack:
            aload 4 /* unaligned */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
            iconst_1
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.walkDirtyObjects:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
            pop
         8: .line 821
            aload 4 /* unaligned */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
            astore 4 /* unaligned */
         9: .line 819
      StackMap locals:
      StackMap stack:
            aload 4 /* unaligned */
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
            ifne 7
        10: .line 823
            return
        end local 4 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader unaligned
        end local 3 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader aligned
        end local 2 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader firstUnaligned
        end local 1 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader firstAligned
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   11     1    firstAligned  Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            0   11     2  firstUnaligned  Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
            1   11     3         aligned  Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
            6   11     4       unaligned  Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
    MethodParameters:
                Name  Flags
      firstAligned    
      firstUnaligned  

  private static <T extends com.oracle.svm.core.genscavenge.HeapChunk$Header<T>> T asImageHeapChunk();
    descriptor: (J)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long offsetInImageHeap
         0: .line 827
            lload 0 /* offsetInImageHeap */
            lconst_0
            lcmp
            ifge 2
         1: .line 828
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
            areturn
         2: .line 830
      StackMap locals:
      StackMap stack:
            lload 0 /* offsetInImageHeap */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* offset */
        start local 2 // org.graalvm.word.UnsignedWord offset
         3: .line 831
            invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.heapBase:()Lorg/graalvm/word/Pointer;
            aload 2 /* offset */
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            checkcast com.oracle.svm.core.genscavenge.HeapChunk$Header
            areturn
        end local 2 // org.graalvm.word.UnsignedWord offset
        end local 0 // long offsetInImageHeap
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0  offsetInImageHeap  J
            3    4     2             offset  Lorg/graalvm/word/UnsignedWord;
    Signature: <T::Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<TT;>;>(J)TT;
    MethodParameters:
                   Name  Flags
      offsetInImageHeap  

  private void blackenImageHeapRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 835
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[blackenImageHeapRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 836
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.blackenImageHeapRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* blackenImageHeapRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer blackenImageHeapRootsTimer
         2: .line 838
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.blackenImageHeapRootsVisitor:Lcom/oracle/svm/core/genscavenge/GCImpl$BlackenImageHeapRootsVisitor;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkNativeImageHeapRegions:(Lcom/oracle/svm/core/MemoryWalker$ImageHeapRegionVisitor;)Z
            pop
         3: .line 839
            goto 7
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 840
            aload 2 /* blackenImageHeapRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         6: .line 841
            aload 3
            athrow
         7: .line 840
      StackMap locals:
      StackMap stack:
            aload 2 /* blackenImageHeapRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         8: .line 842
            aload 1 /* 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
         9: .line 843
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer blackenImageHeapRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   10     0                        this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   10     1                       trace  Lcom/oracle/svm/core/log/Log;
            2   10     2  blackenImageHeapRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           2     4       4  any

  private void blackenDirtyCardRoots();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 856
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.blackenDirtyCardRoots:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 857
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.blackenDirtyCardRoots:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 2 /* blackenDirtyCardRootsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer blackenDirtyCardRootsTimer
         2: .line 863
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 3 /* heap */
        start local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         3: .line 864
            aload 3 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.greyToBlackObjectVisitor:Lcom/oracle/svm/core/genscavenge/GreyToBlackObjectVisitor;
            iconst_1
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.walkDirtyObjects:(Lcom/oracle/svm/core/heap/ObjectVisitor;Z)V
        end local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         4: .line 865
            goto 8
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
         5: astore 4
         6: .line 866
            aload 2 /* blackenDirtyCardRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         7: .line 867
            aload 4
            athrow
         8: .line 866
      StackMap locals:
      StackMap stack:
            aload 2 /* blackenDirtyCardRootsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
         9: .line 868
            aload 1 /* 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
        10: .line 869
            return
        end local 2 // com.oracle.svm.core.genscavenge.Timer blackenDirtyCardRootsTimer
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   11     0                        this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1   11     1                       trace  Lcom/oracle/svm/core/log/Log;
            2   11     2  blackenDirtyCardRootsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            3    4     3                        heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
      Exception table:
        from    to  target  type
           2     5       5  any

  private static void prepareForPromotion(boolean);
    descriptor: (Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // boolean isIncremental
         0: .line 872
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.prepareForPromotion:"
            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;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 874
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 2 /* heap */
        start local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 875
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 876
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.prepareForPromotion:()V
         4: .line 877
            iload 0 /* isIncremental */
            ifeq 6
         5: .line 878
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.prepareForPromotion:()V
         6: .line 880
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration
      StackMap stack:
            aload 1 /* 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
         7: .line 882
            return
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // boolean isIncremental
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0  isIncremental  Z
            1    8     1          trace  Lcom/oracle/svm/core/log/Log;
            2    8     2           heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            3    8     3         oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
    MethodParameters:
               Name  Flags
      isIncremental  

  private void scanGreyObjects(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // boolean isIncremental
         0: .line 885
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.scanGreyObjects"
            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;
            astore 2 /* trace */
        start local 2 // com.oracle.svm.core.log.Log trace
         1: .line 886
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 3 /* heap */
        start local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 887
            aload 3 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 4 /* oldGen */
        start local 4 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 888
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.scanGreyObjects:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 5 /* scanGreyObjectsTimer */
        start local 5 // com.oracle.svm.core.genscavenge.Timer scanGreyObjectsTimer
         4: .line 890
            iload 1 /* isIncremental */
            ifeq 7
         5: .line 891
            invokestatic com.oracle.svm.core.genscavenge.GCImpl.scanGreyObjectsLoop:()V
         6: .line 892
            goto 12
         7: .line 893
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl int com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration com.oracle.svm.core.genscavenge.Timer
      StackMap stack:
            aload 4 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.scanGreyObjects:()Z
            pop
         8: .line 895
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 6
        10: .line 896
            aload 5 /* scanGreyObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        11: .line 897
            aload 6
            athrow
        12: .line 896
      StackMap locals:
      StackMap stack:
            aload 5 /* scanGreyObjectsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        13: .line 898
            aload 2 /* 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
        14: .line 899
            return
        end local 5 // com.oracle.svm.core.genscavenge.Timer scanGreyObjectsTimer
        end local 4 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 2 // com.oracle.svm.core.log.Log trace
        end local 1 // boolean isIncremental
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   15     0                  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   15     1         isIncremental  Z
            1   15     2                 trace  Lcom/oracle/svm/core/log/Log;
            2   15     3                  heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            3   15     4                oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
            4   15     5  scanGreyObjectsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           4     9       9  any
    MethodParameters:
               Name  Flags
      isIncremental  

  private static void scanGreyObjectsLoop();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=0
         0: .line 902
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.scanGreyObjectsLoop"
            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;
            astore 0 /* trace */
        start local 0 // com.oracle.svm.core.log.Log trace
         1: .line 903
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 1 /* heap */
        start local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 904
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            astore 2 /* youngGen */
        start local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
         3: .line 905
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         4: .line 906
            iconst_1
            istore 4 /* hasGrey */
        start local 4 // boolean hasGrey
         5: .line 907
            goto 8
         6: .line 908
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.YoungGeneration com.oracle.svm.core.genscavenge.OldGeneration int
      StackMap stack:
            aload 2 /* youngGen */
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.scanGreyObjects:()Z
            istore 4 /* hasGrey */
         7: .line 909
            iload 4 /* hasGrey */
            aload 3 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.scanGreyObjects:()Z
            ior
            istore 4 /* hasGrey */
         8: .line 907
      StackMap locals:
      StackMap stack:
            iload 4 /* hasGrey */
            ifne 6
         9: .line 911
            aload 0 /* 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
        10: .line 912
            return
        end local 4 // boolean hasGrey
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 2 // com.oracle.svm.core.genscavenge.YoungGeneration youngGen
        end local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 0 // com.oracle.svm.core.log.Log trace
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   11     0     trace  Lcom/oracle/svm/core/log/Log;
            2   11     1      heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            3   11     2  youngGen  Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            4   11     3    oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
            5   11     4   hasGrey  Z

  private static void promotePinnedObject(com.oracle.svm.core.genscavenge.PinnedObjectImpl);
    descriptor: (Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl pinned
         0: .line 915
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.promotePinnedObject"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  pinned: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 0 /* pinned */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 916
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 2 /* heap */
        start local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 917
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 3 /* oldGen */
        start local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 919
            aload 0 /* pinned */
            invokevirtual com.oracle.svm.core.genscavenge.PinnedObjectImpl.getObject:()Ljava/lang/Object;
            astore 4 /* referent */
        start local 4 // java.lang.Object referent
         4: .line 920
            aload 4 /* referent */
            ifnull 7
            aload 2 /* heap */
            aload 4 /* referent */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 921
            aload 1 /* trace */
            ldc "  referent: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* referent */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            pop
         6: .line 926
            aload 3 /* oldGen */
            aload 4 /* referent */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.promoteObjectChunk:(Ljava/lang/Object;)V
         7: .line 928
      StackMap locals: com.oracle.svm.core.genscavenge.PinnedObjectImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.OldGeneration java.lang.Object
      StackMap stack:
            aload 1 /* 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
         8: .line 929
            return
        end local 4 // java.lang.Object referent
        end local 3 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl pinned
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0    pinned  Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
            1    9     1     trace  Lcom/oracle/svm/core/log/Log;
            2    9     2      heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            3    9     3    oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;
            4    9     4  referent  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      pinned  

  private static void swapSpaces();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=0
         0: .line 932
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.swapSpaces:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 0 /* trace */
        start local 0 // com.oracle.svm.core.log.Log trace
         1: .line 933
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 1 /* heap */
        start local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 934
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            astore 2 /* oldGen */
        start local 2 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
         3: .line 935
            aload 1 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.swapSpaces:()V
         4: .line 936
            aload 2 /* oldGen */
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.swapSpaces:()V
         5: .line 937
            aload 0 /* 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
         6: .line 938
            return
        end local 2 // com.oracle.svm.core.genscavenge.OldGeneration oldGen
        end local 1 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 0 // com.oracle.svm.core.log.Log trace
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    7     0   trace  Lcom/oracle/svm/core/log/Log;
            2    7     1    heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            3    7     2  oldGen  Lcom/oracle/svm/core/genscavenge/OldGeneration;

  private void releaseSpaces();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 941
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[GCImpl.releaseSpaces:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 1 /* trace */
        start local 1 // com.oracle.svm.core.log.Log trace
         1: .line 942
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 2 /* heap */
        start local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
         2: .line 944
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.releaseSpaces:(Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;)V
         3: .line 945
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.completeCollection:Z
            ifeq 5
         4: .line 946
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getOldGeneration:()Lcom/oracle/svm/core/genscavenge/OldGeneration;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.chunkReleaser:Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;
            invokevirtual com.oracle.svm.core.genscavenge.OldGeneration.releaseSpaces:(Lcom/oracle/svm/core/genscavenge/GCImpl$ChunkReleaser;)V
         5: .line 948
      StackMap locals: com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl
      StackMap stack:
            aload 1 /* 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
         6: .line 949
            return
        end local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 1 // com.oracle.svm.core.log.Log trace
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            1    7     1  trace  Lcom/oracle/svm/core/log/Log;
            2    7     2   heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;

  boolean isCollectionInProgress();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 953
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
            ireturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  private void startCollectionOrExit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 957
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
            invokestatic com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError.exitIf:(Z)V
         1: .line 958
            aload 0 /* this */
            iconst_1
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
         2: .line 959
            return
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

  private void finishCollection();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 962
            getstatic com.oracle.svm.core.genscavenge.GCImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.core.genscavenge.GCImpl.collectionInProgress:Z
         2: .line 964
            return
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

  org.graalvm.word.UnsignedWord possibleCollectionPrologue();
    descriptor: ()Lorg/graalvm/word/UnsignedWord;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 967
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

  void possibleCollectionEpilogue(org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/UnsignedWord;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
        start local 1 // org.graalvm.word.UnsignedWord requestingEpoch
         0: .line 976
            aload 1 /* requestingEpoch */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 2
         1: .line 978
            return
         2: .line 980
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.thread.VMOperation.isInProgress:()Z
            ifeq 4
         3: .line 989
            return
         4: .line 991
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.thread.JavaThreads.currentJavaThreadInitialized:()Z
            ifne 6
         5: .line 997
            return
         6: .line 1000
      StackMap locals:
      StackMap stack:
            new com.oracle.svm.core.genscavenge.Timer
            dup
            ldc "Enqueuing pending references and invoking internal cleaners"
            invokespecial com.oracle.svm.core.genscavenge.Timer.<init>:(Ljava/lang/String;)V
            astore 2 /* refsTimer */
        start local 2 // com.oracle.svm.core.genscavenge.Timer refsTimer
         7: .line 1001
            aload 2 /* refsTimer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.open:()Lcom/oracle/svm/core/genscavenge/Timer;
            astore 3 /* timer */
        start local 3 // com.oracle.svm.core.genscavenge.Timer timer
         8: .line 1003
            invokestatic com.oracle.svm.core.heap.ReferenceHandler.maybeProcessCurrentlyPending:()V
         9: .line 1004
            goto 13
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.Timer com.oracle.svm.core.genscavenge.Timer
      StackMap stack: java.lang.Throwable
        10: astore 4
        11: .line 1005
            aload 3 /* timer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        12: .line 1006
            aload 4
            athrow
        13: .line 1005
      StackMap locals:
      StackMap stack:
            aload 3 /* timer */
            invokevirtual com.oracle.svm.core.genscavenge.Timer.close:()V
        14: .line 1007
            getstatic com.oracle.svm.core.SubstrateGCOptions.VerboseGC: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
            ifeq 17
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCTimes: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
            ifeq 17
        15: .line 1008
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[GC epilogue reference processing: "
            aload 2 /* refsTimer */
            invokestatic com.oracle.svm.core.genscavenge.Timers.logOneTimer:(Lcom/oracle/svm/core/log/Log;Ljava/lang/String;Lcom/oracle/svm/core/genscavenge/Timer;)V
        16: .line 1009
            invokestatic com.oracle.svm.core.log.Log.log:()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
        17: .line 1011
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.genscavenge.Timer timer
        end local 2 // com.oracle.svm.core.genscavenge.Timer refsTimer
        end local 1 // org.graalvm.word.UnsignedWord requestingEpoch
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            0   18     1  requestingEpoch  Lorg/graalvm/word/UnsignedWord;
            7   18     2        refsTimer  Lcom/oracle/svm/core/genscavenge/Timer;
            8   18     3            timer  Lcom/oracle/svm/core/genscavenge/Timer;
      Exception table:
        from    to  target  type
           8    10      10  any
    MethodParameters:
                 Name  Flags
      requestingEpoch  

  public org.graalvm.word.UnsignedWord getCollectionEpoch();
    descriptor: ()Lorg/graalvm/word/UnsignedWord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 1015
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.collectionEpoch:Lorg/graalvm/word/UnsignedWord;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

  public com.oracle.svm.core.genscavenge.GCAccounting getAccounting();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/GCAccounting;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 1019
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

  public com.oracle.svm.core.genscavenge.CollectionPolicy getPolicy();
    descriptor: ()Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 1023
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.policy:Lcom/oracle/svm/core/genscavenge/CollectionPolicy;
            areturn
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/GCImpl;

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

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

  private void printGCSummary();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=20, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.GCImpl this
         0: .line 1210
            getstatic com.oracle.svm.core.genscavenge.HeapOptions.PrintGCSummary: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
            ifne 2
         1: .line 1211
            return
         2: .line 1214
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            astore 1 /* log */
        start local 1 // com.oracle.svm.core.log.Log log
         3: .line 1217
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "YoungGenerationSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumYoungGenerationSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         4: .line 1218
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "MinimumHeapSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMinimumHeapSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         5: .line 1219
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "MaximumHeapSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMaximumHeapSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         6: .line 1220
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "AlignedChunkSize: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         7: .line 1222
            ldc "PrintGCSummaryShutdownHook"
            invokedynamic invoke()Lcom/oracle/svm/core/SubstrateUtil$Thunk;
              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:
                  ()V
                  com/oracle/svm/core/genscavenge/ThreadLocalAllocation.disableAndFlushForAllThreads()V (6)
                  ()V
            invokestatic com.oracle.svm.core.thread.JavaVMOperation.enqueueBlockingSafepoint:(Ljava/lang/String;Lcom/oracle/svm/core/SubstrateUtil$Thunk;)V
         8: .line 1223
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 2 /* heap */
        start local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
         9: .line 1224
            aload 2 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getYoungGeneration:()Lcom/oracle/svm/core/genscavenge/YoungGeneration;
            invokevirtual com.oracle.svm.core.genscavenge.YoungGeneration.getEden:()Lcom/oracle/svm/core/genscavenge/Space;
            astore 3 /* edenSpace */
        start local 3 // com.oracle.svm.core.genscavenge.Space edenSpace
        10: .line 1225
            aload 3 /* edenSpace */
            invokevirtual com.oracle.svm.core.genscavenge.Space.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            astore 4 /* youngChunkBytes */
        start local 4 // org.graalvm.word.UnsignedWord youngChunkBytes
        11: .line 1226
            aload 3 /* edenSpace */
            invokevirtual com.oracle.svm.core.genscavenge.Space.computeObjectBytes:()Lorg/graalvm/word/UnsignedWord;
            astore 5 /* youngObjectBytes */
        start local 5 // org.graalvm.word.UnsignedWord youngObjectBytes
        12: .line 1228
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getAllocatedChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            aload 4 /* youngChunkBytes */
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 6 /* allocatedChunkBytes */
        start local 6 // org.graalvm.word.UnsignedWord allocatedChunkBytes
        13: .line 1229
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getAllocatedObjectBytes:()Lorg/graalvm/word/UnsignedWord;
            aload 5 /* youngObjectBytes */
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 7 /* allocatedObjectBytes */
        start local 7 // org.graalvm.word.UnsignedWord allocatedObjectBytes
        14: .line 1231
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "CollectedTotalChunkBytes: "
            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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCollectedTotalChunkBytes:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        15: .line 1232
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "CollectedTotalObjectBytes: "
            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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCollectedTotalObjectBytes:()Lorg/graalvm/word/UnsignedWord;
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        16: .line 1233
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "AllocatedNormalChunkBytes: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 6 /* allocatedChunkBytes */
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        17: .line 1234
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "AllocatedNormalObjectBytes: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 7 /* allocatedObjectBytes */
            invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        18: .line 1236
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getIncrementalCollectionTotalNanos:()J
            lstore 8 /* incrementalNanos */
        start local 8 // long incrementalNanos
        19: .line 1237
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "IncrementalGCCount: "
            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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getIncrementalCollectionCount:()J
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        20: .line 1238
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "IncrementalGCNanos: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            lload 8 /* incrementalNanos */
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        21: .line 1239
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCompleteCollectionTotalNanos:()J
            lstore 10 /* completeNanos */
        start local 10 // long completeNanos
        22: .line 1240
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "CompleteGCCount: "
            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.GCImpl.accounting:Lcom/oracle/svm/core/genscavenge/GCAccounting;
            invokevirtual com.oracle.svm.core.genscavenge.GCAccounting.getCompleteCollectionCount:()J
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        23: .line 1241
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "CompleteGCNanos: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            lload 10 /* completeNanos */
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        24: .line 1243
            lload 8 /* incrementalNanos */
            lload 10 /* completeNanos */
            ladd
            lstore 12 /* gcNanos */
        start local 12 // long gcNanos
        25: .line 1244
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.GCImpl.timers:Lcom/oracle/svm/core/genscavenge/Timers;
            getfield com.oracle.svm.core.genscavenge.Timers.mutator:Lcom/oracle/svm/core/genscavenge/Timer;
            invokevirtual com.oracle.svm.core.genscavenge.Timer.getMeasuredNanos:()J
            lstore 14 /* mutatorNanos */
        start local 14 // long mutatorNanos
        26: .line 1245
            lload 12 /* gcNanos */
            lload 14 /* mutatorNanos */
            ladd
            lstore 16 /* totalNanos */
        start local 16 // long totalNanos
        27: .line 1246
            lconst_0
            lload 16 /* totalNanos */
            lcmp
            ifge 28
            ldc 100
            lload 12 /* gcNanos */
            lmul
            lload 16 /* totalNanos */
            invokestatic com.oracle.svm.core.util.TimeUtils.roundedDivide:(JJ)J
            goto 29
      StackMap locals: com.oracle.svm.core.genscavenge.GCImpl com.oracle.svm.core.log.Log com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.Space org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long long long long long
      StackMap stack:
        28: lconst_0
      StackMap locals:
      StackMap stack: long
        29: lstore 18 /* roundedGCLoad */
        start local 18 // long roundedGCLoad
        30: .line 1247
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "GCNanos: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            lload 12 /* gcNanos */
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        31: .line 1248
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "TotalNanos: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            lload 16 /* totalNanos */
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        32: .line 1249
            aload 1 /* log */
            ldc "PrintGCSummary: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "GCLoadPercent: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            lload 18 /* roundedGCLoad */
            invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        33: .line 1250
            return
        end local 18 // long roundedGCLoad
        end local 16 // long totalNanos
        end local 14 // long mutatorNanos
        end local 12 // long gcNanos
        end local 10 // long completeNanos
        end local 8 // long incrementalNanos
        end local 7 // org.graalvm.word.UnsignedWord allocatedObjectBytes
        end local 6 // org.graalvm.word.UnsignedWord allocatedChunkBytes
        end local 5 // org.graalvm.word.UnsignedWord youngObjectBytes
        end local 4 // org.graalvm.word.UnsignedWord youngChunkBytes
        end local 3 // com.oracle.svm.core.genscavenge.Space edenSpace
        end local 2 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.genscavenge.GCImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   34     0                  this  Lcom/oracle/svm/core/genscavenge/GCImpl;
            3   34     1                   log  Lcom/oracle/svm/core/log/Log;
            9   34     2                  heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
           10   34     3             edenSpace  Lcom/oracle/svm/core/genscavenge/Space;
           11   34     4       youngChunkBytes  Lorg/graalvm/word/UnsignedWord;
           12   34     5      youngObjectBytes  Lorg/graalvm/word/UnsignedWord;
           13   34     6   allocatedChunkBytes  Lorg/graalvm/word/UnsignedWord;
           14   34     7  allocatedObjectBytes  Lorg/graalvm/word/UnsignedWord;
           19   34     8      incrementalNanos  J
           22   34    10         completeNanos  J
           25   34    12               gcNanos  J
           26   34    14          mutatorNanos  J
           27   34    16            totalNanos  J
           30   34    18         roundedGCLoad  J
}
SourceFile: "GCImpl.java"
NestMembers:
  com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor  com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser  com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError  com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation  com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData  com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor
InnerClasses:
  public abstract ImageHeapRegionVisitor = com.oracle.svm.core.MemoryWalker$ImageHeapRegionVisitor of com.oracle.svm.core.MemoryWalker
  public abstract Thunk = com.oracle.svm.core.SubstrateUtil$Thunk of com.oracle.svm.core.SubstrateUtil
  public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
  public abstract CodeInfoVisitor = com.oracle.svm.core.code.RuntimeCodeCache$CodeInfoVisitor of com.oracle.svm.core.code.RuntimeCodeCache
  public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
  private BlackenImageHeapRootsVisitor = com.oracle.svm.core.genscavenge.GCImpl$BlackenImageHeapRootsVisitor of com.oracle.svm.core.genscavenge.GCImpl
  public ChunkReleaser = com.oracle.svm.core.genscavenge.GCImpl$ChunkReleaser of com.oracle.svm.core.genscavenge.GCImpl
  final CollectionInProgressError = com.oracle.svm.core.genscavenge.GCImpl$CollectionInProgressError of com.oracle.svm.core.genscavenge.GCImpl
  private CollectionVMOperation = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation of com.oracle.svm.core.genscavenge.GCImpl
  private abstract CollectionVMOperationData = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData of com.oracle.svm.core.genscavenge.GCImpl
  RememberedSetConstructor = com.oracle.svm.core.genscavenge.GCImpl$RememberedSetConstructor of com.oracle.svm.core.genscavenge.GCImpl
  public abstract Counters = com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor$Counters of com.oracle.svm.core.genscavenge.GreyToBlackObjRefVisitor
  public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
  public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk
  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