public class org.graalvm.compiler.nodes.gc.CardTableBarrierSet implements org.graalvm.compiler.nodes.gc.BarrierSet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.nodes.gc.CardTableBarrierSet
  super_class: java.lang.Object
{
  private final jdk.vm.ci.meta.ResolvedJavaType objectArrayType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$nodes$memory$OnHeapMemoryAccess$BarrierType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            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 org.graalvm.compiler.nodes.gc.CardTableBarrierSet.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 55
            aload 0 /* this */
            aload 1 /* objectArrayType */
            putfield org.graalvm.compiler.nodes.gc.CardTableBarrierSet.objectArrayType:Ljdk/vm/ci/meta/ResolvedJavaType;
         2: .line 56
            return
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    3     1  objectArrayType  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
                 Name  Flags
      objectArrayType  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType readBarrierType(org.graalvm.compiler.nodes.extended.RawLoadNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/RawLoadNode;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.extended.RawLoadNode load
         0: .line 60
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
        end local 1 // org.graalvm.compiler.nodes.extended.RawLoadNode load
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    1     1  load  Lorg/graalvm/compiler/nodes/extended/RawLoadNode;
    MethodParameters:
      Name  Flags
      load  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType storeBarrierType(org.graalvm.compiler.nodes.extended.RawStoreNode);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/RawStoreNode;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
         0: .line 65
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.needsBarrier:()Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.object:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* store */
            invokevirtual org.graalvm.compiler.nodes.extended.RawStoreNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.guessStoreBarrierType:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType
         2: areturn
        end local 1 // org.graalvm.compiler.nodes.extended.RawStoreNode store
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    3     1  store  Lorg/graalvm/compiler/nodes/extended/RawStoreNode;
    MethodParameters:
       Name  Flags
      store  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType fieldLoadBarrierType(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 2 // jdk.vm.ci.meta.JavaKind storageKind
         0: .line 70
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
        end local 2 // jdk.vm.ci.meta.JavaKind storageKind
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    1     1        field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    1     2  storageKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
             Name  Flags
      field        
      storageKind  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType fieldStoreBarrierType(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        start local 2 // jdk.vm.ci.meta.JavaKind storageKind
         0: .line 75
            aload 2 /* storageKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType
         2: areturn
        end local 2 // jdk.vm.ci.meta.JavaKind storageKind
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    3     1        field  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    3     2  storageKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
             Name  Flags
      field        
      storageKind  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType arrayStoreBarrierType(jdk.vm.ci.meta.JavaKind);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // jdk.vm.ci.meta.JavaKind storageKind
         0: .line 80
            aload 1 /* storageKind */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType
         2: areturn
        end local 1 // jdk.vm.ci.meta.JavaKind storageKind
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    3     1  storageKind  Ljdk/vm/ci/meta/JavaKind;
    MethodParameters:
             Name  Flags
      storageKind  

  public org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType guessStoreBarrierType(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.ValueNode object
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 85
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 7
            aload 1 /* object */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 7
         1: .line 86
            aload 1 /* object */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* type */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType type
         2: .line 87
            aload 3 /* type */
            ifnull 4
            aload 3 /* type */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isArray:()Z
            ifeq 4
         3: .line 88
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
         4: .line 89
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 3 /* type */
            ifnull 5
            aload 3 /* type */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.gc.CardTableBarrierSet.objectArrayType:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 6
         5: .line 90
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.UNKNOWN:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
         6: .line 92
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType type
         7: .line 95
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.nodes.ValueNode object
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    8     1  object  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     2   value  Lorg/graalvm/compiler/nodes/ValueNode;
            2    7     3    type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
        Name  Flags
      object  
      value   

  public void addBarriers(org.graalvm.compiler.nodes.memory.FixedAccessNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
         0: .line 100
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.ReadNode
            ifne 19
         1: .line 102
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.WriteNode
            ifeq 5
         2: .line 103
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 2 /* write */
        start local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         3: .line 104
            aload 0 /* this */
            aload 2 /* write */
            aload 2 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.addWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         4: .line 105
            goto 19
      StackMap locals:
      StackMap stack:
         5: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            ifeq 9
         6: .line 106
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            astore 2 /* atomic */
        start local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         7: .line 107
            aload 0 /* this */
            aload 2 /* atomic */
            aload 2 /* atomic */
            invokevirtual org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode.getNewValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.addWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         8: .line 108
            goto 19
      StackMap locals:
      StackMap stack:
         9: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            ifeq 13
        10: .line 109
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            astore 2 /* cmpSwap */
        start local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        11: .line 110
            aload 0 /* this */
            aload 2 /* cmpSwap */
            aload 2 /* cmpSwap */
            invokevirtual org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode.getNewValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.addWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        12: .line 111
            goto 19
      StackMap locals:
      StackMap stack:
        13: aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            ifeq 16
        14: .line 112
            aload 0 /* this */
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.addArrayRangeBarriers:(Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)V
        15: .line 113
            goto 19
        16: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            if_acmpne 17
            iconst_1
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: ldc "missed a node that requires a GC barrier: %s"
            aload 1 /* n */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;Ljava/lang/Object;)V
        19: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0   20     1        n  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            3    4     2    write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
            7    8     2   atomic  Lorg/graalvm/compiler/nodes/java/LoweredAtomicReadAndWriteNode;
           11   12     2  cmpSwap  Lorg/graalvm/compiler/nodes/java/AbstractCompareAndSwapNode;
    MethodParameters:
      Name  Flags
      n     

  public boolean needsBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
         0: .line 119
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.ReadNode
            ifeq 2
         1: .line 120
            iconst_0
            ireturn
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.WriteNode
            ifeq 5
         3: .line 122
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 2 /* write */
        start local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         4: .line 123
            aload 0 /* this */
            aload 2 /* write */
            aload 2 /* write */
            invokevirtual org.graalvm.compiler.nodes.memory.WriteNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         5: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            ifeq 8
         6: .line 125
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            astore 2 /* atomic */
        start local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         7: .line 126
            aload 0 /* this */
            aload 2 /* atomic */
            aload 2 /* atomic */
            invokevirtual org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode.getNewValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         8: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            ifeq 11
         9: .line 128
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            astore 2 /* cmpSwap */
        start local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        10: .line 129
            aload 0 /* this */
            aload 2 /* cmpSwap */
            aload 2 /* cmpSwap */
            invokevirtual org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode.getNewValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        11: .line 130
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            ifeq 13
        12: .line 131
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)Z
            ireturn
        13: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            if_acmpne 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: ldc "missed a node that requires a GC barrier: %s"
            aload 1 /* n */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;Ljava/lang/Object;)V
        16: .line 134
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0   17     1        n  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            4    5     2    write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
            7    8     2   atomic  Lorg/graalvm/compiler/nodes/java/LoweredAtomicReadAndWriteNode;
           10   11     2  cmpSwap  Lorg/graalvm/compiler/nodes/java/AbstractCompareAndSwapNode;
    MethodParameters:
      Name  Flags
      n     

  public boolean hasBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
         0: .line 139
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.ReadNode
            ifeq 2
         1: .line 140
            iconst_0
            ireturn
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.WriteNode
            ifeq 5
         3: .line 142
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.memory.WriteNode
            astore 2 /* write */
        start local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         4: .line 143
            aload 2 /* write */
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.hasWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.memory.WriteNode write
         5: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            ifeq 8
         6: .line 145
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            astore 2 /* atomic */
        start local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         7: .line 146
            aload 2 /* atomic */
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.hasWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode atomic
         8: .line 147
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            ifeq 11
         9: .line 148
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            astore 2 /* cmpSwap */
        start local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        10: .line 149
            aload 2 /* cmpSwap */
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.hasWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode cmpSwap
        11: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            ifeq 13
        12: .line 151
            aload 1 /* n */
            checkcast org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.hasWriteBarrier:(Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)Z
            ireturn
        13: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            if_acmpne 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: ldc "missed a node that requires a GC barrier: %s"
            aload 1 /* n */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.graalvm.compiler.debug.GraalError.guarantee:(ZLjava/lang/String;Ljava/lang/Object;)V
        16: .line 154
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0   17     1        n  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            4    5     2    write  Lorg/graalvm/compiler/nodes/memory/WriteNode;
            7    8     2   atomic  Lorg/graalvm/compiler/nodes/java/LoweredAtomicReadAndWriteNode;
           10   11     2  cmpSwap  Lorg/graalvm/compiler/nodes/java/AbstractCompareAndSwapNode;
    MethodParameters:
      Name  Flags
      n     

  public boolean isMatchingBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.gc.WriteBarrier);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/gc/WriteBarrier;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
        start local 2 // org.graalvm.compiler.nodes.gc.WriteBarrier barrier
         0: .line 159
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.ReadNode
            ifeq 2
         1: .line 160
            iconst_0
            ireturn
         2: .line 161
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.memory.WriteNode
            ifne 3
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode
            ifne 3
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode
            ifne 3
            aload 1 /* n */
            instanceof org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            ifeq 5
         3: .line 162
      StackMap locals:
      StackMap stack:
            aload 2 /* barrier */
            instanceof org.graalvm.compiler.nodes.gc.SerialWriteBarrier
            ifeq 4
            aload 1 /* n */
            aload 2 /* barrier */
            checkcast org.graalvm.compiler.nodes.gc.SerialWriteBarrier
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.matches:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/gc/SerialWriteBarrier;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 164
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unexpected node: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* n */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.graalvm.compiler.nodes.gc.WriteBarrier barrier
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode n
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    6     1        n  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    6     2  barrier  Lorg/graalvm/compiler/nodes/gc/WriteBarrier;
    MethodParameters:
         Name  Flags
      n        
      barrier  

  public void addArrayRangeBarriers(org.graalvm.compiler.nodes.extended.ArrayRangeWrite);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
         0: .line 169
            aload 1 /* write */
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)Z
            ifeq 4
         1: .line 170
            aload 1 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.asNode:()Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 171
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier
            dup
            aload 1 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 1 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getElementStride:()I
            invokespecial org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier
            astore 3 /* serialArrayRangeWriteBarrier */
        start local 3 // org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier serialArrayRangeWriteBarrier
         3: .line 172
            aload 2 /* graph */
            aload 1 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.asNode:()Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            aload 3 /* serialArrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 3 // org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier serialArrayRangeWriteBarrier
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         4: .line 174
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    5     0                          this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    5     1                         write  Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;
            2    4     2                         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    4     3  serialArrayRangeWriteBarrier  Lorg/graalvm/compiler/nodes/gc/SerialArrayRangeWriteBarrier;
    MethodParameters:
       Name  Flags
      write  

  private void addWriteBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        start local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
         0: .line 177
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* writtenValue */
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.needsWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifeq 2
         1: .line 178
            aload 1 /* node */
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.addSerialPostWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
         2: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    3     1          node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    3     2  writtenValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
              Name  Flags
      node          
      writtenValue  

  public boolean needsWriteBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        start local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
         0: .line 183
            getstatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.$assertionsDisabled:Z
            ifne 1
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.extended.ArrayRangeWrite
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 184
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            astore 3 /* barrierType */
        start local 3 // org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType barrierType
         2: .line 185
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.$SWITCH_TABLE$org$graalvm$compiler$nodes$memory$OnHeapMemoryAccess$BarrierType:()[I
            aload 3 /* barrierType */
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 3
                    2: 4
                    3: 4
                    4: 4
              default: 5
          }
         3: .line 187
      StackMap locals: org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType
      StackMap stack:
            iconst_0
            ireturn
         4: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* writtenValue */
            invokevirtual org.graalvm.compiler.nodes.gc.CardTableBarrierSet.writeRequiresBarrier:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ireturn
         5: .line 193
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.debug.GraalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected barrier type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* barrierType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType barrierType
        end local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    6     1          node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    6     2  writtenValue  Lorg/graalvm/compiler/nodes/ValueNode;
            2    6     3   barrierType  Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
    MethodParameters:
              Name  Flags
      node          
      writtenValue  

  protected boolean writeRequiresBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        start local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
         0: .line 200
            aload 2 /* writtenValue */
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.isNonNullObjectValue:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ireturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode writtenValue
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        end local 0 // org.graalvm.compiler.nodes.gc.CardTableBarrierSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/graalvm/compiler/nodes/gc/CardTableBarrierSet;
            0    1     1          node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    1     2  writtenValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
              Name  Flags
      node          
      writtenValue  

  public static boolean needsWriteBarrier(org.graalvm.compiler.nodes.extended.ArrayRangeWrite);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
         0: .line 204
            aload 0 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.writesObjectArray:()Z
            ireturn
        end local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  write  Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;
    MethodParameters:
       Name  Flags
      write  

  private static boolean hasWriteBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
         0: .line 208
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            instanceof org.graalvm.compiler.nodes.gc.SerialWriteBarrier
            ifeq 1
            aload 0 /* node */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            checkcast org.graalvm.compiler.nodes.gc.SerialWriteBarrier
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.matches:(Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/gc/SerialWriteBarrier;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
    MethodParameters:
      Name  Flags
      node  

  private static boolean hasWriteBarrier(org.graalvm.compiler.nodes.extended.ArrayRangeWrite);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
         0: .line 212
            aload 0 /* write */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.asNode:()Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            astore 1 /* node */
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
         1: .line 213
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            instanceof org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier
            ifeq 2
            aload 0 /* write */
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            checkcast org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier
            invokestatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.matches:(Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;Lorg/graalvm/compiler/nodes/gc/SerialArrayRangeWriteBarrier;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: org.graalvm.compiler.nodes.memory.FixedAccessNode
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        end local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite write
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  write  Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;
            1    3     1   node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
    MethodParameters:
       Name  Flags
      write  

  private static void addSerialPostWriteBarrier(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.memory.address.AddressNode, org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 219
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getBarrierType:()Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* precise */
        start local 3 // boolean precise
         3: .line 220
            aload 2 /* graph */
            aload 0 /* node */
            aload 2 /* graph */
            new org.graalvm.compiler.nodes.gc.SerialWriteBarrier
            dup
            aload 1 /* address */
            iload 3 /* precise */
            invokespecial org.graalvm.compiler.nodes.gc.SerialWriteBarrier.<init>:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode;Z)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
         4: .line 221
            return
        end local 3 // boolean precise
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    5     1  address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            0    5     2    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    5     3  precise  Z
    MethodParameters:
         Name  Flags
      node     
      address  
      graph    

  private static boolean isNonNullObjectValue(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 224
            aload 0 /* value */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.AbstractObjectStamp
            ifeq 1
            aload 0 /* value */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      value  

  private static boolean matches(org.graalvm.compiler.nodes.memory.FixedAccessNode, org.graalvm.compiler.nodes.gc.SerialWriteBarrier);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;Lorg/graalvm/compiler/nodes/gc/SerialWriteBarrier;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        start local 1 // org.graalvm.compiler.nodes.gc.SerialWriteBarrier barrier
         0: .line 228
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialWriteBarrier.usePrecise:()Z
            ifne 4
         1: .line 229
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 4
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 4
         2: .line 230
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.unproxify:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 233
      StackMap locals:
      StackMap stack:
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            if_acmpne 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.gc.SerialWriteBarrier barrier
        end local 0 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     node  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            0    6     1  barrier  Lorg/graalvm/compiler/nodes/gc/SerialWriteBarrier;
    MethodParameters:
         Name  Flags
      node     
      barrier  

  private static boolean matches(org.graalvm.compiler.nodes.extended.ArrayRangeWrite, org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier);
    descriptor: (Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;Lorg/graalvm/compiler/nodes/gc/SerialArrayRangeWriteBarrier;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite node
        start local 1 // org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier barrier
         0: .line 237
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            aload 0 /* node */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            if_acmpne 1
            aload 0 /* node */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 1
            aload 0 /* node */
            invokeinterface org.graalvm.compiler.nodes.extended.ArrayRangeWrite.getElementStride:()I
            aload 1 /* barrier */
            invokevirtual org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier.getElementStride:()I
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.gc.SerialArrayRangeWriteBarrier barrier
        end local 0 // org.graalvm.compiler.nodes.extended.ArrayRangeWrite node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     node  Lorg/graalvm/compiler/nodes/extended/ArrayRangeWrite;
            0    2     1  barrier  Lorg/graalvm/compiler/nodes/gc/SerialArrayRangeWriteBarrier;
    MethodParameters:
         Name  Flags
      node     
      barrier  

  static int[] $SWITCH_TABLE$org$graalvm$compiler$nodes$memory$OnHeapMemoryAccess$BarrierType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 51
            getstatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.$SWITCH_TABLE$org$graalvm$compiler$nodes$memory$OnHeapMemoryAccess$BarrierType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.values:()[Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.MAYBE_WEAK_FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            bipush 6
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.UNKNOWN:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.WEAK_FIELD:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
            invokevirtual org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic org.graalvm.compiler.nodes.gc.CardTableBarrierSet.$SWITCH_TABLE$org$graalvm$compiler$nodes$memory$OnHeapMemoryAccess$BarrierType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "CardTableBarrierSet.java"
InnerClasses:
  public final BarrierType = org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType of org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess