public abstract class org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets extends org.graalvm.compiler.replacements.gc.WriteBarrierSnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets
  super_class: org.graalvm.compiler.replacements.gc.WriteBarrierSnippets
{
  public static final jdk.internal.vm.compiler.word.LocationIdentity GC_LOG_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity GC_INDEX_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity SATB_QUEUE_MARKING_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity SATB_QUEUE_INDEX_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity SATB_QUEUE_BUFFER_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity CARD_QUEUE_INDEX_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final jdk.internal.vm.compiler.word.LocationIdentity CARD_QUEUE_BUFFER_LOCATION;
    descriptor: Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 77
            ldc "GC-Log"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_LOG_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         1: .line 78
            ldc "GC-Index"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         2: .line 79
            ldc "GC-Queue-Marking"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_MARKING_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         3: .line 80
            ldc "GC-Queue-Index"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         4: .line 81
            ldc "GC-Queue-Buffer"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         5: .line 82
            ldc "GC-Card-Queue-Index"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
         6: .line 83
            ldc "GC-Card-Queue-Buffer"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
         0: .line 75
            aload 0 /* this */
            invokespecial org.graalvm.compiler.replacements.gc.WriteBarrierSnippets.<init>:()V
            return
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;

  public void g1PreWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, java.lang.Object, java.lang.Object, boolean, boolean, int, org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZZILorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=20, args_size=8
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 2 // java.lang.Object object
        start local 3 // java.lang.Object expectedObject
        start local 4 // boolean doLoad
        start local 5 // boolean nullCheck
        start local 6 // int traceStartCycle
        start local 7 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
         0: .line 111
            iload 5 /* nullCheck */
            ifeq 2
         1: .line 112
            aload 1 /* address */
            invokestatic org.graalvm.compiler.nodes.extended.NullCheckNode.nullCheck:(Ljava/lang/Object;)V
         2: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getThread:()Lorg/graalvm/compiler/word/Word;
            astore 8 /* thread */
        start local 8 // org.graalvm.compiler.word.Word thread
         3: .line 115
            aload 0 /* this */
            aload 2 /* object */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOop:(Ljava/lang/Object;)V
         4: .line 116
            aload 1 /* address */
            invokestatic org.graalvm.compiler.word.Word.fromAddress:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* field */
        start local 9 // org.graalvm.compiler.word.Word field
         5: .line 117
            aload 8 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueMarkingOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_MARKING_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 10 /* markingValue */
        start local 10 // byte markingValue
         6: .line 119
            aload 0 /* this */
            iload 6 /* traceStartCycle */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.isTracingActive:(I)Z
            istore 11 /* trace */
        start local 11 // boolean trace
         7: .line 120
            iconst_0
            istore 12 /* gcCycle */
        start local 12 // int gcCycle
         8: .line 121
            iload 11 /* trace */
            ifeq 18
         9: .line 122
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.gcTotalCollectionsAddress:()J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.pointer:(J)Ljdk/internal/vm/compiler/word/PointerBase;
            checkcast jdk.internal.vm.compiler.word.Pointer
            astore 13 /* gcTotalCollectionsAddress */
        start local 13 // jdk.internal.vm.compiler.word.Pointer gcTotalCollectionsAddress
        10: .line 123
            aload 13 /* gcTotalCollectionsAddress */
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.Pointer.readLong:(I)J
            l2i
            istore 12 /* gcCycle */
        11: .line 124
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p Object %p\n"
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 2 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        12: .line 125
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p Expected Object %p\n"
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 3 /* expectedObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        13: .line 126
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p Field %p\n"
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 9 /* field */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        14: .line 127
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p Marking %d\n"
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 10 /* markingValue */
            i2l
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        15: .line 128
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p DoLoad %d\n"
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 4 /* doLoad */
            ifeq 16
            lconst_1
            goto 17
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int int jdk.internal.vm.compiler.word.Pointer
      StackMap stack: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets int java.lang.String long long
        16: lconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int int jdk.internal.vm.compiler.word.Pointer
      StackMap stack: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets int java.lang.String long long long
        17: invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        end local 13 // jdk.internal.vm.compiler.word.Pointer gcTotalCollectionsAddress
        18: .line 131
      StackMap locals:
      StackMap stack:
            aload 7 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1AttemptedPreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        19: .line 133
            ldc 0.09999999999999998
            iload 10 /* markingValue */
            ifeq 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack: double
        20: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int int
      StackMap stack: double int
        21: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 45
        22: .line 137
            iload 4 /* doLoad */
            ifeq 28
        23: .line 138
            aload 9 /* field */
            iconst_0
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokevirtual org.graalvm.compiler.word.Word.readObject:(ILorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)Ljava/lang/Object;
            astore 13 /* previousObject */
        start local 13 // java.lang.Object previousObject
        24: .line 139
            iload 11 /* trace */
            ifeq 29
        25: .line 140
            aload 0 /* this */
            iload 11 /* trace */
            ldc "[%d] G1-Pre Thread %p Previous Object %p\n "
            iload 12 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 13 /* previousObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        26: .line 141
            aload 0 /* this */
            aload 13 /* previousObject */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOop:(Ljava/lang/Object;)V
        27: .line 143
            goto 29
        end local 13 // java.lang.Object previousObject
        28: .line 144
      StackMap locals:
      StackMap stack:
            aload 3 /* expectedObject */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* previousObject */
        start local 13 // java.lang.Object previousObject
        29: .line 147
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1EffectivePreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        30: .line 149
            ldc 0.9
            aload 13 /* previousObject */
            ifnull 31
            iconst_1
            goto 32
      StackMap locals:
      StackMap stack: double
        31: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int int java.lang.Object
      StackMap stack: double int
        32: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 45
        33: .line 150
            aload 7 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1ExecutedPreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        34: .line 153
            aload 8 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueIndexOffset:()I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 14 /* indexAddress */
        start local 14 // org.graalvm.compiler.word.Word indexAddress
        35: .line 154
            aload 14 /* indexAddress */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 15 /* indexValue */
        start local 15 // org.graalvm.compiler.word.Word indexValue
        36: .line 155
            ldc 0.9
            aload 15 /* indexValue */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 44
        37: .line 156
            aload 8 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueBufferOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 16 /* bufferAddress */
        start local 16 // org.graalvm.compiler.word.Word bufferAddress
        38: .line 157
            aload 15 /* indexValue */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.wordSize:()I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            astore 17 /* nextIndex */
        start local 17 // org.graalvm.compiler.word.Word nextIndex
        39: .line 158
            aload 16 /* bufferAddress */
            aload 17 /* nextIndex */
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 18 /* logAddress */
        start local 18 // org.graalvm.compiler.word.Word logAddress
        40: .line 160
            aload 13 /* previousObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 19 /* previousOop */
        start local 19 // org.graalvm.compiler.word.Word previousOop
        41: .line 161
            aload 18 /* logAddress */
            iconst_0
            aload 19 /* previousOop */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_LOG_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        42: .line 162
            aload 14 /* indexAddress */
            iconst_0
            aload 17 /* nextIndex */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 19 // org.graalvm.compiler.word.Word previousOop
        end local 18 // org.graalvm.compiler.word.Word logAddress
        end local 17 // org.graalvm.compiler.word.Word nextIndex
        end local 16 // org.graalvm.compiler.word.Word bufferAddress
        43: .line 163
            goto 45
        44: .line 164
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 0 /* this */
            aload 13 /* previousObject */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PreBarrierStub:(Ljava/lang/Object;)V
        end local 15 // org.graalvm.compiler.word.Word indexValue
        end local 14 // org.graalvm.compiler.word.Word indexAddress
        end local 13 // java.lang.Object previousObject
        45: .line 168
      StackMap locals:
      StackMap stack:
            return
        end local 12 // int gcCycle
        end local 11 // boolean trace
        end local 10 // byte markingValue
        end local 9 // org.graalvm.compiler.word.Word field
        end local 8 // org.graalvm.compiler.word.Word thread
        end local 7 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
        end local 6 // int traceStartCycle
        end local 5 // boolean nullCheck
        end local 4 // boolean doLoad
        end local 3 // java.lang.Object expectedObject
        end local 2 // java.lang.Object object
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   46     0                       this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0   46     1                    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   46     2                     object  Ljava/lang/Object;
            0   46     3             expectedObject  Ljava/lang/Object;
            0   46     4                     doLoad  Z
            0   46     5                  nullCheck  Z
            0   46     6            traceStartCycle  I
            0   46     7                   counters  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;
            3   46     8                     thread  Lorg/graalvm/compiler/word/Word;
            5   46     9                      field  Lorg/graalvm/compiler/word/Word;
            6   46    10               markingValue  B
            7   46    11                      trace  Z
            8   46    12                    gcCycle  I
           10   18    13  gcTotalCollectionsAddress  Ljdk/internal/vm/compiler/word/Pointer;
           24   28    13             previousObject  Ljava/lang/Object;
           29   45    13             previousObject  Ljava/lang/Object;
           35   45    14               indexAddress  Lorg/graalvm/compiler/word/Word;
           36   45    15                 indexValue  Lorg/graalvm/compiler/word/Word;
           38   43    16              bufferAddress  Lorg/graalvm/compiler/word/Word;
           39   43    17                  nextIndex  Lorg/graalvm/compiler/word/Word;
           40   43    18                 logAddress  Lorg/graalvm/compiler/word/Word;
           41   43    19                previousOop  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      4:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      5:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      6:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                 Name  Flags
      address          
      object           
      expectedObject   
      doLoad           
      nullCheck        
      traceStartCycle  
      counters         

  public void g1ReferentReadBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, java.lang.Object, java.lang.Object, boolean, org.graalvm.compiler.word.Word, int, org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZLorg/graalvm/compiler/word/Word;ILorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=8
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 2 // java.lang.Object object
        start local 3 // java.lang.Object expectedObject
        start local 4 // boolean isDynamicCheck
        start local 5 // org.graalvm.compiler.word.Word offset
        start local 6 // int traceStartCycle
        start local 7 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
         0: .line 173
            iload 4 /* isDynamicCheck */
            ifeq 2
         1: .line 174
            aload 5 /* offset */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.referentOffset:()J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            if_acmpne 3
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.referenceType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 2 /* object */
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.doInstanceof:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/Object;)Z
            ifeq 3
         2: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* address */
            aload 2 /* object */
            aload 3 /* expectedObject */
            iconst_0
            iconst_0
            iload 6 /* traceStartCycle */
            aload 7 /* counters */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PreWriteBarrier:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZZILorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;)V
         3: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 7 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
        end local 6 // int traceStartCycle
        end local 5 // org.graalvm.compiler.word.Word offset
        end local 4 // boolean isDynamicCheck
        end local 3 // java.lang.Object expectedObject
        end local 2 // java.lang.Object object
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    4     1          address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0    4     2           object  Ljava/lang/Object;
            0    4     3   expectedObject  Ljava/lang/Object;
            0    4     4   isDynamicCheck  Z
            0    4     5           offset  Lorg/graalvm/compiler/word/Word;
            0    4     6  traceStartCycle  I
            0    4     7         counters  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      4:
      5:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      6:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                 Name  Flags
      address          
      object           
      expectedObject   
      isDynamicCheck   
      offset           
      traceStartCycle  
      counters         

  public void g1PostWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, java.lang.Object, java.lang.Object, boolean, int, org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZILorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=23, args_size=7
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 2 // java.lang.Object object
        start local 3 // java.lang.Object value
        start local 4 // boolean usePrecise
        start local 5 // int traceStartCycle
        start local 6 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
         0: .line 182
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getThread:()Lorg/graalvm/compiler/word/Word;
            astore 7 /* thread */
        start local 7 // org.graalvm.compiler.word.Word thread
         1: .line 183
            aload 3 /* value */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* fixedValue */
        start local 8 // java.lang.Object fixedValue
         2: .line 184
            aload 0 /* this */
            aload 2 /* object */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOop:(Ljava/lang/Object;)V
         3: .line 185
            aload 0 /* this */
            aload 8 /* fixedValue */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOop:(Ljava/lang/Object;)V
         4: .line 186
            aload 0 /* this */
            aload 2 /* object */
            aload 8 /* fixedValue */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.validateObject:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 189
            iload 4 /* usePrecise */
            ifeq 8
         6: .line 190
            aload 1 /* address */
            invokestatic org.graalvm.compiler.word.Word.fromAddress:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* oop */
        start local 9 // jdk.internal.vm.compiler.word.Pointer oop
         7: .line 191
            goto 11
        end local 9 // jdk.internal.vm.compiler.word.Pointer oop
         8: .line 192
      StackMap locals: org.graalvm.compiler.word.Word java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyBarrier:()Z
            ifeq 10
         9: .line 193
            aload 2 /* object */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyNotArray:(Ljava/lang/Object;)V
        10: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* oop */
        start local 9 // jdk.internal.vm.compiler.word.Pointer oop
        11: .line 198
      StackMap locals: jdk.internal.vm.compiler.word.Pointer
      StackMap stack:
            aload 0 /* this */
            iload 5 /* traceStartCycle */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.isTracingActive:(I)Z
            istore 10 /* trace */
        start local 10 // boolean trace
        12: .line 199
            iconst_0
            istore 11 /* gcCycle */
        start local 11 // int gcCycle
        13: .line 200
            iload 10 /* trace */
            ifeq 18
        14: .line 201
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.gcTotalCollectionsAddress:()J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.pointer:(J)Ljdk/internal/vm/compiler/word/PointerBase;
            checkcast jdk.internal.vm.compiler.word.Pointer
            astore 12 /* gcTotalCollectionsAddress */
        start local 12 // jdk.internal.vm.compiler.word.Pointer gcTotalCollectionsAddress
        15: .line 202
            aload 12 /* gcTotalCollectionsAddress */
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.Pointer.readLong:(I)J
            l2i
            istore 11 /* gcCycle */
        16: .line 203
            aload 0 /* this */
            iload 10 /* trace */
            ldc "[%d] G1-Post Thread: %p Object: %p\n"
            iload 11 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 2 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        17: .line 204
            aload 0 /* this */
            iload 10 /* trace */
            ldc "[%d] G1-Post Thread: %p Field: %p\n"
            iload 11 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 9 /* oop */
            invokeinterface jdk.internal.vm.compiler.word.Pointer.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        end local 12 // jdk.internal.vm.compiler.word.Pointer gcTotalCollectionsAddress
        18: .line 206
      StackMap locals: int int
      StackMap stack:
            aload 8 /* fixedValue */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 12 /* writtenValue */
        start local 12 // jdk.internal.vm.compiler.word.Pointer writtenValue
        19: .line 209
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.logOfHeapRegionGrainBytes:()I
            istore 13 /* logOfHeapRegionGrainBytes */
        start local 13 // int logOfHeapRegionGrainBytes
        20: .line 210
            aload 9 /* oop */
            aload 12 /* writtenValue */
            invokeinterface jdk.internal.vm.compiler.word.Pointer.xor:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Ljdk/internal/vm/compiler/word/UnsignedWord;
            iload 13 /* logOfHeapRegionGrainBytes */
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.unsignedShiftRight:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            astore 14 /* xorResult */
        start local 14 // jdk.internal.vm.compiler.word.UnsignedWord xorResult
        21: .line 212
            aload 6 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1AttemptedPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        22: .line 213
            ldc 0.9
            aload 14 /* xorResult */
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 49
        23: .line 214
            aload 6 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1EffectiveAfterXORPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        24: .line 216
            ldc 0.9
            aload 12 /* writtenValue */
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.Pointer.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 49
        25: .line 219
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardTableAddress:()Lorg/graalvm/compiler/word/Word;
            aload 9 /* oop */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardTableShift:()I
            invokeinterface jdk.internal.vm.compiler.word.Pointer.unsignedShiftRight:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            invokevirtual org.graalvm.compiler.word.Word.add:(Ljdk/internal/vm/compiler/word/UnsignedWord;)Lorg/graalvm/compiler/word/Word;
            astore 15 /* cardAddress */
        start local 15 // org.graalvm.compiler.word.Word cardAddress
        26: .line 221
            aload 15 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 16 /* cardByte */
        start local 16 // byte cardByte
        27: .line 222
            aload 6 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1EffectiveAfterNullPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        28: .line 225
            ldc 0.09999999999999998
            iload 16 /* cardByte */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.youngCardValue:()B
            if_icmpeq 29
            iconst_1
            goto 30
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object jdk.internal.vm.compiler.word.Pointer int int jdk.internal.vm.compiler.word.Pointer int jdk.internal.vm.compiler.word.UnsignedWord org.graalvm.compiler.word.Word int
      StackMap stack: double
        29: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object jdk.internal.vm.compiler.word.Pointer int int jdk.internal.vm.compiler.word.Pointer int jdk.internal.vm.compiler.word.UnsignedWord org.graalvm.compiler.word.Word int
      StackMap stack: double int
        30: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 49
        31: .line 226
            iconst_4
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILjdk/internal/vm/compiler/word/LocationIdentity;)V
        32: .line 227
            aload 15 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 17 /* cardByteReload */
        start local 17 // byte cardByteReload
        33: .line 228
            ldc 0.09999999999999998
            iload 17 /* cardByteReload */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.dirtyCardValue:()B
            if_icmpeq 34
            iconst_1
            goto 35
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object jdk.internal.vm.compiler.word.Pointer int int jdk.internal.vm.compiler.word.Pointer int jdk.internal.vm.compiler.word.UnsignedWord org.graalvm.compiler.word.Word int int
      StackMap stack: double
        34: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object jdk.internal.vm.compiler.word.Pointer int int jdk.internal.vm.compiler.word.Pointer int jdk.internal.vm.compiler.word.UnsignedWord org.graalvm.compiler.word.Word int int
      StackMap stack: double int
        35: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 49
        36: .line 229
            aload 0 /* this */
            iload 10 /* trace */
            ldc "[%d] G1-Post Thread: %p Card: %p \n"
            iload 11 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 16 /* cardByte */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(I)Ljdk/internal/vm/compiler/word/UnsignedWord;
            invokeinterface jdk.internal.vm.compiler.word.UnsignedWord.rawValue:()J
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        37: .line 230
            aload 15 /* cardAddress */
            iconst_0
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.dirtyCardValue:()B
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLjdk/internal/vm/compiler/word/LocationIdentity;)V
        38: .line 231
            aload 6 /* counters */
            getfield org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters.g1ExecutedPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        39: .line 235
            aload 7 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueIndexOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 18 /* indexValue */
        start local 18 // org.graalvm.compiler.word.Word indexValue
        40: .line 236
            ldc 0.9
            aload 18 /* indexValue */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 48
        41: .line 237
            aload 7 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueBufferOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 19 /* bufferAddress */
        start local 19 // org.graalvm.compiler.word.Word bufferAddress
        42: .line 238
            aload 18 /* indexValue */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.wordSize:()I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            astore 20 /* nextIndex */
        start local 20 // org.graalvm.compiler.word.Word nextIndex
        43: .line 239
            aload 19 /* bufferAddress */
            aload 20 /* nextIndex */
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 21 /* logAddress */
        start local 21 // org.graalvm.compiler.word.Word logAddress
        44: .line 240
            aload 7 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueIndexOffset:()I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 22 /* indexAddress */
        start local 22 // org.graalvm.compiler.word.Word indexAddress
        45: .line 243
            aload 21 /* logAddress */
            iconst_0
            aload 15 /* cardAddress */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_LOG_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        46: .line 244
            aload 22 /* indexAddress */
            iconst_0
            aload 20 /* nextIndex */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 22 // org.graalvm.compiler.word.Word indexAddress
        end local 21 // org.graalvm.compiler.word.Word logAddress
        end local 20 // org.graalvm.compiler.word.Word nextIndex
        end local 19 // org.graalvm.compiler.word.Word bufferAddress
        47: .line 245
            goto 49
        48: .line 246
      StackMap locals: org.graalvm.compiler.word.Word
      StackMap stack:
            aload 0 /* this */
            aload 15 /* cardAddress */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PostBarrierStub:(Lorg/graalvm/compiler/word/Word;)V
        end local 18 // org.graalvm.compiler.word.Word indexValue
        end local 17 // byte cardByteReload
        end local 16 // byte cardByte
        end local 15 // org.graalvm.compiler.word.Word cardAddress
        49: .line 252
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object jdk.internal.vm.compiler.word.Pointer int int jdk.internal.vm.compiler.word.Pointer int jdk.internal.vm.compiler.word.UnsignedWord
      StackMap stack:
            return
        end local 14 // jdk.internal.vm.compiler.word.UnsignedWord xorResult
        end local 13 // int logOfHeapRegionGrainBytes
        end local 12 // jdk.internal.vm.compiler.word.Pointer writtenValue
        end local 11 // int gcCycle
        end local 10 // boolean trace
        end local 9 // jdk.internal.vm.compiler.word.Pointer oop
        end local 8 // java.lang.Object fixedValue
        end local 7 // org.graalvm.compiler.word.Word thread
        end local 6 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters counters
        end local 5 // int traceStartCycle
        end local 4 // boolean usePrecise
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object object
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   50     0                       this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0   50     1                    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   50     2                     object  Ljava/lang/Object;
            0   50     3                      value  Ljava/lang/Object;
            0   50     4                 usePrecise  Z
            0   50     5            traceStartCycle  I
            0   50     6                   counters  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets$Counters;
            1   50     7                     thread  Lorg/graalvm/compiler/word/Word;
            2   50     8                 fixedValue  Ljava/lang/Object;
            7    8     9                        oop  Ljdk/internal/vm/compiler/word/Pointer;
           11   50     9                        oop  Ljdk/internal/vm/compiler/word/Pointer;
           12   50    10                      trace  Z
           13   50    11                    gcCycle  I
           15   18    12  gcTotalCollectionsAddress  Ljdk/internal/vm/compiler/word/Pointer;
           19   50    12               writtenValue  Ljdk/internal/vm/compiler/word/Pointer;
           20   50    13  logOfHeapRegionGrainBytes  I
           21   50    14                  xorResult  Ljdk/internal/vm/compiler/word/UnsignedWord;
           26   49    15                cardAddress  Lorg/graalvm/compiler/word/Word;
           27   49    16                   cardByte  B
           33   49    17             cardByteReload  B
           40   49    18                 indexValue  Lorg/graalvm/compiler/word/Word;
           42   47    19              bufferAddress  Lorg/graalvm/compiler/word/Word;
           43   47    20                  nextIndex  Lorg/graalvm/compiler/word/Word;
           44   47    21                 logAddress  Lorg/graalvm/compiler/word/Word;
           45   47    22               indexAddress  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      4:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
      5:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                 Name  Flags
      address          
      object           
      value            
      usePrecise       
      traceStartCycle  
      counters         

  public void g1ArrayRangePreWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, int, int);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 2 // int length
        start local 3 // int elementStride
         0: .line 256
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getThread:()Lorg/graalvm/compiler/word/Word;
            astore 4 /* thread */
        start local 4 // org.graalvm.compiler.word.Word thread
         1: .line 257
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueMarkingOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_MARKING_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 5 /* markingValue */
        start local 5 // byte markingValue
         2: .line 259
            ldc 0.9
            iload 5 /* markingValue */
            ifeq 3
            iload 2 /* length */
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int
      StackMap stack: double
         3: iconst_1
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int
      StackMap stack: double int
         4: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 6
         5: .line 260
            return
         6: .line 263
      StackMap locals:
      StackMap stack:
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueBufferOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 6 /* bufferAddress */
        start local 6 // org.graalvm.compiler.word.Word bufferAddress
         7: .line 264
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.satbQueueIndexOffset:()I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 7 /* indexAddress */
        start local 7 // org.graalvm.compiler.word.Word indexAddress
         8: .line 265
            aload 7 /* indexAddress */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.SATB_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            invokeinterface jdk.internal.vm.compiler.word.WordBase.rawValue:()J
            lstore 8 /* indexValue */
        start local 8 // long indexValue
         9: .line 266
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.objectArrayIndexScale:()I
            istore 10 /* scale */
        start local 10 // int scale
        10: .line 267
            aload 1 /* address */
            iload 2 /* length */
            iload 3 /* elementStride */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getPointerToFirstArrayElement:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)Lorg/graalvm/compiler/word/Word;
            astore 11 /* start */
        start local 11 // org.graalvm.compiler.word.Word start
        11: .line 269
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        12: goto 30
        13: .line 270
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word int
      StackMap stack:
            aload 11 /* start */
            iload 12 /* i */
            iload 10 /* scale */
            imul
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 13 /* arrElemPtr */
        start local 13 // org.graalvm.compiler.word.Word arrElemPtr
        14: .line 271
            aload 13 /* arrElemPtr */
            iconst_0
            getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
            invokevirtual org.graalvm.compiler.word.Word.readObject:(ILorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)Ljava/lang/Object;
            astore 14 /* previousObject */
        start local 14 // java.lang.Object previousObject
        15: .line 272
            aload 0 /* this */
            aload 14 /* previousObject */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOop:(Ljava/lang/Object;)V
        16: .line 273
            ldc 0.9
            aload 14 /* previousObject */
            ifnull 17
            iconst_1
            goto 18
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word java.lang.Object
      StackMap stack: double
        17: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word java.lang.Object
      StackMap stack: double int
        18: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 29
        19: .line 274
            ldc 0.9
            lload 8 /* indexValue */
            lconst_0
            lcmp
            ifeq 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack: double
        20: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word int org.graalvm.compiler.word.Word java.lang.Object
      StackMap stack: double int
        21: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 28
        22: .line 275
            lload 8 /* indexValue */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.wordSize:()I
            i2l
            lsub
            lstore 8 /* indexValue */
        23: .line 276
            aload 6 /* bufferAddress */
            lload 8 /* indexValue */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 15 /* logAddress */
        start local 15 // org.graalvm.compiler.word.Word logAddress
        24: .line 278
            aload 14 /* previousObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 16 /* previousOop */
        start local 16 // org.graalvm.compiler.word.Word previousOop
        25: .line 279
            aload 15 /* logAddress */
            iconst_0
            aload 16 /* previousOop */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_LOG_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        26: .line 280
            aload 7 /* indexAddress */
            iconst_0
            lload 8 /* indexValue */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 16 // org.graalvm.compiler.word.Word previousOop
        end local 15 // org.graalvm.compiler.word.Word logAddress
        27: .line 281
            goto 29
        28: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* previousObject */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PreBarrierStub:(Ljava/lang/Object;)V
        end local 14 // java.lang.Object previousObject
        end local 13 // org.graalvm.compiler.word.Word arrElemPtr
        29: .line 269
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 12 /* i */
            iload 2 /* length */
            if_icmplt 13
        end local 12 // int i
        31: .line 286
            return
        end local 11 // org.graalvm.compiler.word.Word start
        end local 10 // int scale
        end local 8 // long indexValue
        end local 7 // org.graalvm.compiler.word.Word indexAddress
        end local 6 // org.graalvm.compiler.word.Word bufferAddress
        end local 5 // byte markingValue
        end local 4 // org.graalvm.compiler.word.Word thread
        end local 3 // int elementStride
        end local 2 // int length
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0   32     1         address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   32     2          length  I
            0   32     3   elementStride  I
            1   32     4          thread  Lorg/graalvm/compiler/word/Word;
            2   32     5    markingValue  B
            7   32     6   bufferAddress  Lorg/graalvm/compiler/word/Word;
            8   32     7    indexAddress  Lorg/graalvm/compiler/word/Word;
            9   32     8      indexValue  J
           10   32    10           scale  I
           11   32    11           start  Lorg/graalvm/compiler/word/Word;
           12   31    12               i  I
           14   29    13      arrElemPtr  Lorg/graalvm/compiler/word/Word;
           15   29    14  previousObject  Ljava/lang/Object;
           24   27    15      logAddress  Lorg/graalvm/compiler/word/Word;
           25   27    16     previousOop  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
               Name  Flags
      address        
      length         
      elementStride  

  public void g1ArrayRangePostWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, int, int);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 2 // int length
        start local 3 // int elementStride
         0: .line 290
            ldc 0.09999999999999998
            iload 2 /* length */
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: double
         1: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int
      StackMap stack: double int
         2: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 4
         3: .line 291
            return
         4: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getThread:()Lorg/graalvm/compiler/word/Word;
            astore 4 /* thread */
        start local 4 // org.graalvm.compiler.word.Word thread
         5: .line 295
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueBufferOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_BUFFER_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 5 /* bufferAddress */
        start local 5 // org.graalvm.compiler.word.Word bufferAddress
         6: .line 296
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueIndexOffset:()I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 6 /* indexAddress */
        start local 6 // org.graalvm.compiler.word.Word indexAddress
         7: .line 297
            aload 4 /* thread */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardQueueIndexOffset:()I
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.CARD_QUEUE_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readWord:(ILjdk/internal/vm/compiler/word/LocationIdentity;)Ljdk/internal/vm/compiler/word/WordBase;
            invokeinterface jdk.internal.vm.compiler.word.WordBase.rawValue:()J
            lstore 7 /* indexValue */
        start local 7 // long indexValue
         8: .line 299
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardTableShift:()I
            istore 9 /* cardShift */
        start local 9 // int cardShift
         9: .line 300
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.cardTableAddress:()Lorg/graalvm/compiler/word/Word;
            astore 10 /* cardStart */
        start local 10 // org.graalvm.compiler.word.Word cardStart
        10: .line 301
            aload 10 /* cardStart */
            aload 1 /* address */
            iload 2 /* length */
            iload 3 /* elementStride */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getPointerToFirstArrayElement:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)Lorg/graalvm/compiler/word/Word;
            iload 9 /* cardShift */
            invokevirtual org.graalvm.compiler.word.Word.unsignedShiftRight:(I)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* start */
        start local 11 // org.graalvm.compiler.word.Word start
        11: .line 302
            aload 10 /* cardStart */
            aload 1 /* address */
            iload 2 /* length */
            iload 3 /* elementStride */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.getPointerToLastArrayElement:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;II)Lorg/graalvm/compiler/word/Word;
            iload 9 /* cardShift */
            invokevirtual org.graalvm.compiler.word.Word.unsignedShiftRight:(I)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 12 /* end */
        start local 12 // org.graalvm.compiler.word.Word end
        12: .line 304
            aload 11 /* start */
            astore 13 /* cur */
        start local 13 // org.graalvm.compiler.word.Word cur
        13: .line 306
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            aload 13 /* cur */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 14 /* cardByte */
        start local 14 // byte cardByte
        14: .line 308
            ldc 0.09999999999999998
            iload 14 /* cardByte */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.youngCardValue:()B
            if_icmpeq 15
            iconst_1
            goto 16
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int
      StackMap stack: double
        15: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int
      StackMap stack: double int
        16: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 32
        17: .line 309
            iconst_4
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILjdk/internal/vm/compiler/word/LocationIdentity;)V
        18: .line 310
            aload 13 /* cur */
            iconst_0
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILjdk/internal/vm/compiler/word/LocationIdentity;)B
            istore 15 /* cardByteReload */
        start local 15 // byte cardByteReload
        19: .line 311
            ldc 0.09999999999999998
            iload 15 /* cardByteReload */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.dirtyCardValue:()B
            if_icmpeq 20
            iconst_1
            goto 21
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int
      StackMap stack: double
        20: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int
      StackMap stack: double int
        21: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 32
        22: .line 312
            aload 13 /* cur */
            iconst_0
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.dirtyCardValue:()B
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_CARD_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLjdk/internal/vm/compiler/word/LocationIdentity;)V
        23: .line 315
            ldc 0.9
            lload 7 /* indexValue */
            lconst_0
            lcmp
            ifeq 24
            iconst_1
            goto 25
      StackMap locals:
      StackMap stack: double
        24: iconst_0
      StackMap locals: org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets org.graalvm.compiler.nodes.memory.address.AddressNode$Address int int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int int
      StackMap stack: double int
        25: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 31
        26: .line 316
            lload 7 /* indexValue */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.wordSize:()I
            i2l
            lsub
            lstore 7 /* indexValue */
        27: .line 317
            aload 5 /* bufferAddress */
            lload 7 /* indexValue */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 16 /* logAddress */
        start local 16 // org.graalvm.compiler.word.Word logAddress
        28: .line 320
            aload 16 /* logAddress */
            iconst_0
            aload 13 /* cur */
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_LOG_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        29: .line 321
            aload 6 /* indexAddress */
            iconst_0
            lload 7 /* indexValue */
            invokestatic jdk.internal.vm.compiler.word.WordFactory.unsigned:(J)Ljdk/internal/vm/compiler/word/UnsignedWord;
            getstatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.GC_INDEX_LOCATION:Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILjdk/internal/vm/compiler/word/WordBase;Ljdk/internal/vm/compiler/word/LocationIdentity;)V
        end local 16 // org.graalvm.compiler.word.Word logAddress
        30: .line 322
            goto 32
        31: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* cur */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PostBarrierStub:(Lorg/graalvm/compiler/word/Word;)V
        end local 15 // byte cardByteReload
        32: .line 327
      StackMap locals:
      StackMap stack:
            aload 13 /* cur */
            iconst_1
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 13 /* cur */
        end local 14 // byte cardByte
        33: .line 328
            aload 13 /* cur */
            aload 12 /* end */
            invokevirtual org.graalvm.compiler.word.Word.belowOrEqual:(Lorg/graalvm/compiler/word/Word;)Z
            ifne 13
        34: .line 329
            return
        end local 13 // org.graalvm.compiler.word.Word cur
        end local 12 // org.graalvm.compiler.word.Word end
        end local 11 // org.graalvm.compiler.word.Word start
        end local 10 // org.graalvm.compiler.word.Word cardStart
        end local 9 // int cardShift
        end local 7 // long indexValue
        end local 6 // org.graalvm.compiler.word.Word indexAddress
        end local 5 // org.graalvm.compiler.word.Word bufferAddress
        end local 4 // org.graalvm.compiler.word.Word thread
        end local 3 // int elementStride
        end local 2 // int length
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0   35     1         address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   35     2          length  I
            0   35     3   elementStride  I
            5   35     4          thread  Lorg/graalvm/compiler/word/Word;
            6   35     5   bufferAddress  Lorg/graalvm/compiler/word/Word;
            7   35     6    indexAddress  Lorg/graalvm/compiler/word/Word;
            8   35     7      indexValue  J
            9   35     9       cardShift  I
           10   35    10       cardStart  Lorg/graalvm/compiler/word/Word;
           11   35    11           start  Lorg/graalvm/compiler/word/Word;
           12   35    12             end  Lorg/graalvm/compiler/word/Word;
           13   35    13             cur  Lorg/graalvm/compiler/word/Word;
           14   33    14        cardByte  B
           19   32    15  cardByteReload  B
           28   30    16      logAddress  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
               Name  Flags
      address        
      length         
      elementStride  

  protected abstract org.graalvm.compiler.word.Word getThread();
    descriptor: ()Lorg/graalvm/compiler/word/Word;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int wordSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int objectArrayIndexScale();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int satbQueueMarkingOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int satbQueueBufferOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int satbQueueIndexOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int cardQueueBufferOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int cardQueueIndexOffset();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract byte dirtyCardValue();
    descriptor: ()B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract byte youngCardValue();
    descriptor: ()B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.word.Word cardTableAddress();
    descriptor: ()Lorg/graalvm/compiler/word/Word;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int cardTableShift();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int logOfHeapRegionGrainBytes();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.core.common.spi.ForeignCallDescriptor preWriteBarrierCallDescriptor();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.core.common.spi.ForeignCallDescriptor postWriteBarrierCallDescriptor();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract boolean verifyOops();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract boolean verifyBarrier();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract long gcTotalCollectionsAddress();
    descriptor: ()J
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.core.common.spi.ForeignCallDescriptor verifyOopCallDescriptor();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.core.common.spi.ForeignCallDescriptor validateObjectCallDescriptor();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.graalvm.compiler.core.common.spi.ForeignCallDescriptor printfCallDescriptor();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract jdk.vm.ci.meta.ResolvedJavaType referenceType();
    descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract long referentOffset();
    descriptor: ()J
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  private boolean isTracingActive(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // int traceStartCycle
         0: .line 379
            iload 1 /* traceStartCycle */
            ifle 1
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.gcTotalCollectionsAddress:()J
            invokestatic jdk.internal.vm.compiler.word.WordFactory.pointer:(J)Ljdk/internal/vm/compiler/word/PointerBase;
            checkcast jdk.internal.vm.compiler.word.Pointer
            iconst_0
            invokeinterface jdk.internal.vm.compiler.word.Pointer.readLong:(I)J
            iload 1 /* traceStartCycle */
            i2l
            lcmp
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int traceStartCycle
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    2     1  traceStartCycle  I
    MethodParameters:
                 Name  Flags
      traceStartCycle  

  private void log(boolean, java.lang.String, long, long, long);
    descriptor: (ZLjava/lang/String;JJJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // boolean enabled
        start local 2 // java.lang.String format
        start local 3 // long value1
        start local 5 // long value2
        start local 7 // long value3
         0: .line 383
            iload 1 /* enabled */
            ifeq 2
         1: .line 384
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.printfCallDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 2 /* format */
            invokestatic org.graalvm.compiler.replacements.nodes.CStringConstant.cstring:(Ljava/lang/String;)Lorg/graalvm/compiler/word/Word;
            lload 3 /* value1 */
            lload 5 /* value2 */
            lload 7 /* value3 */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.printf:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;JJJ)V
         2: .line 386
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long value3
        end local 5 // long value2
        end local 3 // long value1
        end local 2 // java.lang.String format
        end local 1 // boolean enabled
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    3     1  enabled  Z
            0    3     2   format  Ljava/lang/String;
            0    3     3   value1  J
            0    3     5   value2  J
            0    3     7   value3  J
    MethodParameters:
         Name  Flags
      enabled  
      format   
      value1   
      value2   
      value3   

  private void validateObject(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // java.lang.Object parent
        start local 2 // java.lang.Object child
         0: .line 395
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOops:()Z
            ifeq 5
            aload 2 /* child */
            ifnull 5
         1: .line 396
            aload 1 /* parent */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 3 /* parentWord */
        start local 3 // org.graalvm.compiler.word.Word parentWord
         2: .line 397
            aload 2 /* child */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 4 /* childWord */
        start local 4 // org.graalvm.compiler.word.Word childWord
         3: .line 398
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.validateObjectCallDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 3 /* parentWord */
            aload 4 /* childWord */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.validateOop:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)Z
            istore 5 /* success */
        start local 5 // boolean success
         4: .line 399
            iconst_0
            iload 5 /* success */
            ldc "Verification ERROR, Parent: %p Child: %p\n"
            aload 3 /* parentWord */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 4 /* childWord */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.graalvm.compiler.replacements.nodes.AssertionNode.assertion:(ZZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 5 // boolean success
        end local 4 // org.graalvm.compiler.word.Word childWord
        end local 3 // org.graalvm.compiler.word.Word parentWord
         5: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object child
        end local 1 // java.lang.Object parent
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    6     1      parent  Ljava/lang/Object;
            0    6     2       child  Ljava/lang/Object;
            2    5     3  parentWord  Lorg/graalvm/compiler/word/Word;
            3    5     4   childWord  Lorg/graalvm/compiler/word/Word;
            4    5     5     success  Z
    MethodParameters:
        Name  Flags
      parent  
      child   

  private void verifyOop(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // java.lang.Object object
         0: .line 404
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOops:()Z
            ifeq 2
         1: .line 405
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOopCallDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 1 /* object */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.verifyOopStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 407
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object object
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    3     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  private void g1PreBarrierStub(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // java.lang.Object previousObject
         0: .line 410
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.preWriteBarrierCallDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 1 /* previousObject */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PreBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
         1: .line 411
            return
        end local 1 // java.lang.Object previousObject
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    2     1  previousObject  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      previousObject  

  private void g1PostBarrierStub(org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/word/Word;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
        start local 1 // org.graalvm.compiler.word.Word cardAddress
         0: .line 414
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.postWriteBarrierCallDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 1 /* cardAddress */
            invokestatic org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets.g1PostBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;)V
         1: .line 415
            return
        end local 1 // org.graalvm.compiler.word.Word cardAddress
        end local 0 // org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/compiler/replacements/gc/G1WriteBarrierSnippets;
            0    2     1  cardAddress  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
             Name  Flags
      cardAddress  

  private static native java.lang.Object verifyOopStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
    MethodParameters:
            Name  Flags
      descriptor  
      object      

  private static native boolean validateOop(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;Lorg/graalvm/compiler/word/Word;)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
      2:
    MethodParameters:
            Name  Flags
      descriptor  
      parent      
      object      

  private static native void g1PreBarrierStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
    MethodParameters:
            Name  Flags
      descriptor  
      object      

  private static native void g1PostBarrierStub(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
    MethodParameters:
            Name  Flags
      descriptor  
      card        

  private static native void printf(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, org.graalvm.compiler.word.Word, long, long, long);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;JJJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
    RuntimeVisibleParameterAnnotations: 
      0:
        org.graalvm.compiler.graph.Node$ConstantNodeParameter()
      1:
      2:
      3:
      4:
    MethodParameters:
           Name  Flags
      logPrintf  
      format     
      v1         
      v2         
      v3         
}
SourceFile: "G1WriteBarrierSnippets.java"
NestMembers:
  org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters  org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$G1WriteBarrierLowerer
InnerClasses:
  public abstract ConstantParameter = org.graalvm.compiler.api.replacements.Snippet$ConstantParameter of org.graalvm.compiler.api.replacements.Snippet
  public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
  public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
  public final BarrierType = org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType of org.graalvm.compiler.nodes.memory.HeapAccess
  public abstract Address = org.graalvm.compiler.nodes.memory.address.AddressNode$Address of org.graalvm.compiler.nodes.memory.address.AddressNode
  public Counters = org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$Counters of org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets
  public abstract G1WriteBarrierLowerer = org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets$G1WriteBarrierLowerer of org.graalvm.compiler.replacements.gc.G1WriteBarrierSnippets