public class sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion extends sun.jvm.hotspot.runtime.VMObject implements sun.jvm.hotspot.gc.shared.LiveRegionsProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion
  super_class: sun.jvm.hotspot.runtime.VMObject
{
  private static int EmptyUncommitted;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int EmptyCommitted;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int Regular;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int HumongousStart;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int HumongousCont;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int PinnedHumongousStart;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int CSet;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int Pinned;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int PinnedCSet;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int Trash;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.CIntegerField RegionSizeBytesField;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.Field RegionStateField;
    descriptor: Lsun/jvm/hotspot/types/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.CIntegerField RegionIndexField;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.CIntegerField RegionSizeBytesShiftField;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField BottomField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField TopField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField EndField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap heap;
    descriptor: Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 70
            new sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion$1
            dup
            invokespecial sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Lsun/jvm/hotspot/utilities/Observer;)V
         1: .line 75
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 78
            aload 0 /* db */
            ldc "ShenandoahHeapRegion"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupType:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Type;
            astore 1 /* type */
        start local 1 // sun.jvm.hotspot.types.Type type
         1: .line 79
            aload 1 /* type */
            ldc "RegionSizeBytes"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionSizeBytesField:Lsun/jvm/hotspot/types/CIntegerField;
         2: .line 80
            aload 1 /* type */
            ldc "_state"
            invokeinterface sun.jvm.hotspot.types.Type.getField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Field;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionStateField:Lsun/jvm/hotspot/types/Field;
         3: .line 81
            aload 1 /* type */
            ldc "_index"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionIndexField:Lsun/jvm/hotspot/types/CIntegerField;
         4: .line 82
            aload 1 /* type */
            ldc "_bottom"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.BottomField:Lsun/jvm/hotspot/types/AddressField;
         5: .line 83
            aload 1 /* type */
            ldc "_top"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.TopField:Lsun/jvm/hotspot/types/AddressField;
         6: .line 84
            aload 1 /* type */
            ldc "_end"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EndField:Lsun/jvm/hotspot/types/AddressField;
         7: .line 86
            aload 1 /* type */
            ldc "RegionSizeBytesShift"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionSizeBytesShiftField:Lsun/jvm/hotspot/types/CIntegerField;
         8: .line 88
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_empty_uncommitted"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EmptyUncommitted:I
         9: .line 89
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_empty_committed"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EmptyCommitted:I
        10: .line 90
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_regular"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Regular:I
        11: .line 91
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_humongous_start"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.HumongousStart:I
        12: .line 92
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_humongous_cont"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.HumongousCont:I
        13: .line 93
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_pinned_humongous_start"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.PinnedHumongousStart:I
        14: .line 94
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_cset"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.CSet:I
        15: .line 95
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_pinned"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Pinned:I
        16: .line 96
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_pinned_cset"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.PinnedCSet:I
        17: .line 97
            aload 0 /* db */
            ldc "ShenandoahHeapRegion::_trash"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Trash:I
        18: .line 98
            return
        end local 1 // sun.jvm.hotspot.types.Type type
        end local 0 // sun.jvm.hotspot.types.TypeDataBase db
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0    db  Lsun/jvm/hotspot/types/TypeDataBase;
            1   19     1  type  Lsun/jvm/hotspot/types/Type;
    MethodParameters:
      Name  Flags
      db    

  public static long regionSizeBytes();
    descriptor: ()J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 101
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionSizeBytesField:Lsun/jvm/hotspot/types/CIntegerField;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:()J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int regionSizeBytesShift();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 105
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionSizeBytesShiftField:Lsun/jvm/hotspot/types/CIntegerField;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getJInt:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 109
            aload 0 /* this */
            aload 1 /* addr */
            invokespecial sun.jvm.hotspot.runtime.VMObject.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
         1: .line 110
            return
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    2     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  public void setHeap(sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap);
    descriptor: (Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap heap
         0: .line 113
            aload 0 /* this */
            aload 1 /* heap */
            putfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.heap:Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
         1: .line 114
            return
        end local 1 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap heap
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    2     1  heap  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
    MethodParameters:
      Name  Flags
      heap  

  public sun.jvm.hotspot.debugger.Address bottom();
    descriptor: ()Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 117
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.BottomField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;

  public sun.jvm.hotspot.debugger.Address top();
    descriptor: ()Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 121
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.TopField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;

  public sun.jvm.hotspot.debugger.Address end();
    descriptor: ()Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 125
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EndField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 130
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.index:()J
            l2i
            ireturn
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // java.lang.Object other
         0: .line 135
            aload 1 /* other */
            instanceof sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion
            ifeq 4
         1: .line 136
            aload 1 /* other */
            checkcast sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion
            astore 2 /* otherRegion */
        start local 2 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion otherRegion
         2: .line 137
            aload 2 /* otherRegion */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.index:()J
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.index:()J
            lcmp
            ifne 3
            iconst_1
            ireturn
      StackMap locals: sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion otherRegion
         4: .line 139
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    5     1        other  Ljava/lang/Object;
            2    4     2  otherRegion  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
    MethodParameters:
       Name  Flags
      other  

  public java.util.List<sun.jvm.hotspot.memory.MemRegion> getLiveRegions();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 143
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* res */
        start local 1 // java.util.List res
         1: .line 144
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.regionState:()I
            istore 2 /* state */
        start local 2 // int state
         2: .line 145
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EmptyUncommitted:I
            if_icmpeq 14
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.EmptyCommitted:I
            if_icmpeq 14
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Trash:I
            if_icmpeq 14
         3: .line 147
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.HumongousCont:I
            if_icmpeq 14
         4: .line 149
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.HumongousStart:I
            if_icmpeq 5
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.PinnedHumongousStart:I
            if_icmpne 7
         5: .line 150
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* res */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.handleHumongousRegion:(Ljava/util/List;)V
         6: .line 151
            goto 14
      StackMap locals:
      StackMap stack:
         7: iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Regular:I
            if_icmpeq 8
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.Pinned:I
            if_icmpne 10
         8: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* res */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.handleRegularRegion:(Ljava/util/List;)V
         9: .line 153
            goto 14
      StackMap locals:
      StackMap stack:
        10: iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.CSet:I
            if_icmpeq 11
            iload 2 /* state */
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.PinnedCSet:I
            if_icmpne 13
        11: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* res */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.handleCSetRegion:(Ljava/util/List;)V
        12: .line 156
            goto 14
        13: .line 157
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown region state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* state */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 159
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 2 // int state
        end local 1 // java.util.List res
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            1   15     1    res  Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;
            2   15     2  state  I
    Signature: ()Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;

  private int regionState();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 168
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionStateField:Lsun/jvm/hotspot/types/Field;
            invokeinterface sun.jvm.hotspot.types.Field.getOffset:()J
            lstore 1 /* offset */
        start local 1 // long offset
         1: .line 169
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.addr:Lsun/jvm/hotspot/debugger/Address;
            lload 1 /* offset */
            invokeinterface sun.jvm.hotspot.debugger.Address.getJIntAt:(J)I
            ireturn
        end local 1 // long offset
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            1    2     1  offset  J

  private void handleHumongousRegion(java.util.List<sun.jvm.hotspot.memory.MemRegion>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // java.util.List res
         0: .line 173
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.index:()J
            lstore 2 /* index */
        start local 2 // long index
         1: .line 174
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.top:()Lsun/jvm/hotspot/debugger/Address;
            astore 4 /* topAddr */
        start local 4 // sun.jvm.hotspot.debugger.Address topAddr
         2: .line 175
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.heap:Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
            lload 2 /* index */
            lconst_1
            ladd
            dup2
            lstore 2 /* index */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap.getRegion:(J)Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            astore 5 /* region */
        start local 5 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion region
         3: .line 176
            goto 6
         4: .line 177
      StackMap locals: long sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion
      StackMap stack:
            aload 5 /* region */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.top:()Lsun/jvm/hotspot/debugger/Address;
            astore 4 /* topAddr */
         5: .line 178
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.heap:Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
            lload 2 /* index */
            lconst_1
            ladd
            dup2
            lstore 2 /* index */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap.getRegion:(J)Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            astore 5 /* region */
         6: .line 176
      StackMap locals:
      StackMap stack:
            aload 5 /* region */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.regionState:()I
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.HumongousCont:I
            if_icmpeq 4
         7: .line 180
            aload 1 /* res */
            new sun.jvm.hotspot.memory.MemRegion
            dup
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.bottom:()Lsun/jvm/hotspot/debugger/Address;
            aload 4 /* topAddr */
            invokespecial sun.jvm.hotspot.memory.MemRegion.<init>:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 181
            return
        end local 5 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion region
        end local 4 // sun.jvm.hotspot.debugger.Address topAddr
        end local 2 // long index
        end local 1 // java.util.List res
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    9     1      res  Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;
            1    9     2    index  J
            2    9     4  topAddr  Lsun/jvm/hotspot/debugger/Address;
            3    9     5   region  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
    Signature: (Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;)V
    MethodParameters:
      Name  Flags
      res   

  private void handleRegularRegion(java.util.List<sun.jvm.hotspot.memory.MemRegion>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // java.util.List res
         0: .line 184
            aload 1 /* res */
            new sun.jvm.hotspot.memory.MemRegion
            dup
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.bottom:()Lsun/jvm/hotspot/debugger/Address;
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.top:()Lsun/jvm/hotspot/debugger/Address;
            invokespecial sun.jvm.hotspot.memory.MemRegion.<init>:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 185
            return
        end local 1 // java.util.List res
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    2     1   res  Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;
    Signature: (Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;)V
    MethodParameters:
      Name  Flags
      res   

  private void handleCSetRegion(java.util.List<sun.jvm.hotspot.memory.MemRegion>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // java.util.List res
         0: .line 189
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.top:()Lsun/jvm/hotspot/debugger/Address;
            astore 2 /* end */
        start local 2 // sun.jvm.hotspot.debugger.Address end
         1: .line 190
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.bottom:()Lsun/jvm/hotspot/debugger/Address;
            astore 3 /* start */
        start local 3 // sun.jvm.hotspot.debugger.Address start
         2: .line 192
            aconst_null
            astore 4 /* regionStart */
        start local 4 // sun.jvm.hotspot.debugger.Address regionStart
         3: .line 193
            aconst_null
            astore 5 /* regionEnd */
        start local 5 // sun.jvm.hotspot.debugger.Address regionEnd
         4: .line 194
            goto 18
         5: .line 195
      StackMap locals: sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion java.util.List sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 0 /* this */
            aload 3 /* start */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.getObjectSize:(Lsun/jvm/hotspot/debugger/Address;)J
            lstore 6 /* size */
        start local 6 // long size
         6: .line 196
            aload 0 /* this */
            aload 3 /* start */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.hasForwardee:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 13
         7: .line 198
            aload 5 /* regionEnd */
            ifnull 17
         8: .line 199
            new sun.jvm.hotspot.memory.MemRegion
            dup
            aload 4 /* regionStart */
            aload 5 /* regionEnd */
            invokespecial sun.jvm.hotspot.memory.MemRegion.<init>:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
            astore 8 /* mr */
        start local 8 // sun.jvm.hotspot.memory.MemRegion mr
         9: .line 200
            aload 1 /* res */
            aload 8 /* mr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 201
            aconst_null
            astore 4 /* regionStart */
        11: .line 202
            aconst_null
            astore 5 /* regionEnd */
        end local 8 // sun.jvm.hotspot.memory.MemRegion mr
        12: .line 204
            goto 17
        13: .line 205
      StackMap locals: long
      StackMap stack:
            aload 4 /* regionStart */
            ifnonnull 16
        14: .line 206
            aload 3 /* start */
            astore 4 /* regionStart */
        15: .line 207
            goto 17
        16: .line 208
      StackMap locals:
      StackMap stack:
            aload 3 /* start */
            lload 6 /* size */
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 5 /* regionEnd */
        17: .line 211
      StackMap locals:
      StackMap stack:
            aload 3 /* start */
            lload 6 /* size */
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 3 /* start */
        end local 6 // long size
        18: .line 194
      StackMap locals:
      StackMap stack:
            aload 3 /* start */
            aload 2 /* end */
            invokestatic sun.jvm.hotspot.utilities.AddressOps.lessThan:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)Z
            ifne 5
        19: .line 214
            aload 4 /* regionStart */
            ifnull 22
        20: .line 215
            new sun.jvm.hotspot.memory.MemRegion
            dup
            aload 4 /* regionStart */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.top:()Lsun/jvm/hotspot/debugger/Address;
            invokespecial sun.jvm.hotspot.memory.MemRegion.<init>:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/debugger/Address;)V
            astore 6 /* mr */
        start local 6 // sun.jvm.hotspot.memory.MemRegion mr
        21: .line 216
            aload 1 /* res */
            aload 6 /* mr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // sun.jvm.hotspot.memory.MemRegion mr
        22: .line 218
      StackMap locals:
      StackMap stack:
            return
        end local 5 // sun.jvm.hotspot.debugger.Address regionEnd
        end local 4 // sun.jvm.hotspot.debugger.Address regionStart
        end local 3 // sun.jvm.hotspot.debugger.Address start
        end local 2 // sun.jvm.hotspot.debugger.Address end
        end local 1 // java.util.List res
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0   23     1          res  Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;
            1   23     2          end  Lsun/jvm/hotspot/debugger/Address;
            2   23     3        start  Lsun/jvm/hotspot/debugger/Address;
            3   23     4  regionStart  Lsun/jvm/hotspot/debugger/Address;
            4   23     5    regionEnd  Lsun/jvm/hotspot/debugger/Address;
            6   18     6         size  J
            9   12     8           mr  Lsun/jvm/hotspot/memory/MemRegion;
           21   22     6           mr  Lsun/jvm/hotspot/memory/MemRegion;
    Signature: (Ljava/util/List<Lsun/jvm/hotspot/memory/MemRegion;>;)V
    MethodParameters:
      Name  Flags
      res   

  public long index();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
         0: .line 221
            getstatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.RegionIndexField:Lsun/jvm/hotspot/types/CIntegerField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:(Lsun/jvm/hotspot/debugger/Address;)J
            lreturn
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;

  private boolean hasForwardee(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // sun.jvm.hotspot.debugger.Address rawPtr
         0: .line 226
            new sun.jvm.hotspot.oops.Mark
            dup
            aload 1 /* rawPtr */
            invokespecial sun.jvm.hotspot.oops.Mark.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            astore 2 /* mark */
        start local 2 // sun.jvm.hotspot.oops.Mark mark
         1: .line 227
            aload 2 /* mark */
            invokevirtual sun.jvm.hotspot.oops.Mark.isMarked:()Z
            ireturn
        end local 2 // sun.jvm.hotspot.oops.Mark mark
        end local 1 // sun.jvm.hotspot.debugger.Address rawPtr
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    2     1  rawPtr  Lsun/jvm/hotspot/debugger/Address;
            1    2     2    mark  Lsun/jvm/hotspot/oops/Mark;
    MethodParameters:
        Name  Flags
      rawPtr  

  private long getObjectSize(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
        start local 1 // sun.jvm.hotspot.debugger.Address rawPtr
         0: .line 231
            aload 1 /* rawPtr */
            lconst_0
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetToAsOopHandle:(J)Lsun/jvm/hotspot/debugger/OopHandle;
            astore 2 /* handle */
        start local 2 // sun.jvm.hotspot.debugger.OopHandle handle
         1: .line 232
            aconst_null
            astore 3 /* obj */
        start local 3 // sun.jvm.hotspot.oops.Oop obj
         2: .line 236
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            aload 2 /* handle */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.newOop:(Lsun/jvm/hotspot/debugger/OopHandle;)Lsun/jvm/hotspot/oops/Oop;
            astore 3 /* obj */
         3: .line 237
            goto 6
      StackMap locals: sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.OopHandle sun.jvm.hotspot.oops.Oop
      StackMap stack: sun.jvm.hotspot.oops.UnknownOopException
         4: astore 4 /* exp */
        start local 4 // sun.jvm.hotspot.oops.UnknownOopException exp
         5: .line 238
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc " UnknownOopException  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* exp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // sun.jvm.hotspot.oops.UnknownOopException exp
         6: .line 240
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            invokevirtual sun.jvm.hotspot.oops.Oop.getObjectSize:()J
            lreturn
        end local 3 // sun.jvm.hotspot.oops.Oop obj
        end local 2 // sun.jvm.hotspot.debugger.OopHandle handle
        end local 1 // sun.jvm.hotspot.debugger.Address rawPtr
        end local 0 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeapRegion;
            0    7     1  rawPtr  Lsun/jvm/hotspot/debugger/Address;
            1    7     2  handle  Lsun/jvm/hotspot/debugger/OopHandle;
            2    7     3     obj  Lsun/jvm/hotspot/oops/Oop;
            5    6     4     exp  Lsun/jvm/hotspot/oops/UnknownOopException;
      Exception table:
        from    to  target  type
           2     3       4  Class sun.jvm.hotspot.oops.UnknownOopException
    MethodParameters:
        Name  Flags
      rawPtr  
}
SourceFile: "ShenandoahHeapRegion.java"
NestMembers:
  sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion$1
InnerClasses:
  sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion$1