public class org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets implements org.graalvm.compiler.replacements.Snippets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets
  super_class: java.lang.Object
{
  public static final org.graalvm.word.LocationIdentity GC_CARD_LOCATION;
    descriptor: Lorg/graalvm/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.word.LocationIdentity GC_LOG_LOCATION;
    descriptor: Lorg/graalvm/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.word.LocationIdentity GC_INDEX_LOCATION;
    descriptor: Lorg/graalvm/word/LocationIdentity;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor G1WBPRECALL;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor G1WBPOSTCALL;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.graalvm.compiler.core.common.spi.ForeignCallDescriptor VALIDATE_OBJECT;
    descriptor: Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 129
            ldc "GC-Card"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
         1: .line 130
            ldc "GC-Log"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
         2: .line 131
            ldc "GC-Index"
            invokestatic org.graalvm.compiler.nodes.NamedLocationIdentity.mutable:(Ljava/lang/String;)Lorg/graalvm/compiler/nodes/NamedLocationIdentity;
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
         3: .line 387
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "write_barrier_pre"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPRECALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
         4: .line 392
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "write_barrier_post"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPOSTCALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
         5: .line 579
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            ldc "validate_object"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.VALIDATE_OBJECT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            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.hotspot.replacements.WriteBarrierSnippets this
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;

  private static void serialWriteBarrier(org.graalvm.word.Pointer, org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.word.Pointer ptr
        start local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
         0: .line 134
            aload 1 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.serialWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
         1: .line 135
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.cardTableAddress:()J
            lstore 2 /* startAddress */
        start local 2 // long startAddress
         2: .line 136
            aload 0 /* ptr */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.cardTableShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokeinterface org.graalvm.word.Pointer.unsignedShiftRight:(I)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 4 /* base */
        start local 4 // org.graalvm.compiler.word.Word base
         3: .line 137
            lload 2 /* startAddress */
            l2i
            i2l
            lload 2 /* startAddress */
            lcmp
            ifne 6
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.isCardTableAddressConstant:()Z
            ifeq 6
         4: .line 138
            aload 4 /* base */
            lload 2 /* startAddress */
            l2i
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLorg/graalvm/word/LocationIdentity;)V
         5: .line 139
            goto 7
         6: .line 140
      StackMap locals: long org.graalvm.compiler.word.Word
      StackMap stack:
            aload 4 /* base */
            lload 2 /* startAddress */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(Lorg/graalvm/word/WordBase;BLorg/graalvm/word/LocationIdentity;)V
         7: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.word.Word base
        end local 2 // long startAddress
        end local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
        end local 0 // org.graalvm.word.Pointer ptr
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0           ptr  Lorg/graalvm/word/Pointer;
            0    8     1      counters  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            2    8     2  startAddress  J
            3    8     4          base  Lorg/graalvm/compiler/word/Word;
    MethodParameters:
          Name  Flags
      ptr       
      counters  

  public static void serialImpreciseWriteBarrier(java.lang.Object, org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object object
        start local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
         0: .line 146
            aload 0 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            aload 1 /* counters */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.serialWriteBarrier:(Lorg/graalvm/word/Pointer;Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
         1: .line 147
            return
        end local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0    object  Ljava/lang/Object;
            0    2     1  counters  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
          Name  Flags
      object    
      counters  

  public static void serialPreciseWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
         0: .line 151
            aload 0 /* address */
            invokestatic org.graalvm.compiler.word.Word.fromAddress:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)Lorg/graalvm/compiler/word/Word;
            aload 1 /* counters */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.serialWriteBarrier:(Lorg/graalvm/word/Pointer;Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
         1: .line 152
            return
        end local 1 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
        end local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0    2     1  counters  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
          Name  Flags
      address   
      counters  

  public static void serialArrayRangeWriteBarrier(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=17, args_size=3
        start local 0 // java.lang.Object object
        start local 1 // int startIndex
        start local 2 // int length
         0: .line 156
            iload 2 /* length */
            ifne 2
         1: .line 157
            return
         2: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* object */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* dest */
        start local 3 // java.lang.Object dest
         3: .line 160
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.cardTableShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 4 /* cardShift */
        start local 4 // int cardShift
         4: .line 161
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.cardTableAddress:()J
            lstore 5 /* cardStart */
        start local 5 // long cardStart
         5: .line 162
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 7 /* scale */
        start local 7 // int scale
         6: .line 163
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 8 /* header */
        start local 8 // int header
         7: .line 164
            aload 3 /* dest */
            invokestatic org.graalvm.compiler.hotspot.nodes.GetObjectAddressNode.get:(Ljava/lang/Object;)J
            lstore 9 /* dstAddr */
        start local 9 // long dstAddr
         8: .line 165
            lload 9 /* dstAddr */
            iload 8 /* header */
            i2l
            ladd
            iload 1 /* startIndex */
            i2l
            iload 7 /* scale */
            i2l
            lmul
            ladd
            iload 4 /* cardShift */
            lushr
            lstore 11 /* start */
        start local 11 // long start
         9: .line 166
            lload 9 /* dstAddr */
            iload 8 /* header */
            i2l
            ladd
            iload 1 /* startIndex */
            i2l
            iload 2 /* length */
            i2l
            ladd
            lconst_1
            lsub
            iload 7 /* scale */
            i2l
            lmul
            ladd
            iload 4 /* cardShift */
            lushr
            lstore 13 /* end */
        start local 13 // long end
        10: .line 167
            lload 13 /* end */
            lload 11 /* start */
            lsub
            lconst_1
            ladd
            lstore 15 /* count */
        start local 15 // long count
        11: .line 168
            goto 13
        12: .line 169
      StackMap locals: java.lang.Object int int java.lang.Object int long int int long long long long
      StackMap stack:
            lload 11 /* start */
            lload 5 /* cardStart */
            ladd
            lload 15 /* count */
            ladd
            iconst_0
            getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.replacements.nodes.DirectStoreNode.storeBoolean:(JZLjdk/vm/ci/meta/JavaKind;)V
        13: .line 168
      StackMap locals:
      StackMap stack:
            lload 15 /* count */
            dup2
            lconst_1
            lsub
            lstore 15 /* count */
            lconst_0
            lcmp
            ifgt 12
        14: .line 171
            return
        end local 15 // long count
        end local 13 // long end
        end local 11 // long start
        end local 9 // long dstAddr
        end local 8 // int header
        end local 7 // int scale
        end local 5 // long cardStart
        end local 4 // int cardShift
        end local 3 // java.lang.Object dest
        end local 2 // int length
        end local 1 // int startIndex
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0      object  Ljava/lang/Object;
            0   15     1  startIndex  I
            0   15     2      length  I
            3   15     3        dest  Ljava/lang/Object;
            4   15     4   cardShift  I
            5   15     5   cardStart  J
            6   15     7       scale  I
            7   15     8      header  I
            8   15     9     dstAddr  J
            9   15    11       start  J
           10   15    13         end  J
           11   15    15       count  J
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    MethodParameters:
            Name  Flags
      object      
      startIndex  
      length      

  public static void g1PreWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, java.lang.Object, java.lang.Object, boolean, boolean, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZZLjdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=19, args_size=8
        start local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object expectedObject
        start local 3 // boolean doLoad
        start local 4 // boolean nullCheck
        start local 5 // jdk.vm.ci.code.Register threadRegister
        start local 6 // boolean trace
        start local 7 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
         0: .line 176
            iload 4 /* nullCheck */
            ifeq 2
         1: .line 177
            aload 0 /* address */
            invokestatic org.graalvm.compiler.nodes.extended.NullCheckNode.nullCheck:(Ljava/lang/Object;)V
         2: .line 179
      StackMap locals:
      StackMap stack:
            aload 5 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 8 /* thread */
        start local 8 // org.graalvm.compiler.word.Word thread
         3: .line 180
            aload 1 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 181
            aload 2 /* expectedObject */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* fixedExpectedObject */
        start local 9 // java.lang.Object fixedExpectedObject
         5: .line 182
            aload 0 /* address */
            invokestatic org.graalvm.compiler.word.Word.fromAddress:(Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;)Lorg/graalvm/compiler/word/Word;
            astore 10 /* field */
        start local 10 // org.graalvm.compiler.word.Word field
         6: .line 183
            aload 9 /* fixedExpectedObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* previousOop */
        start local 11 // org.graalvm.word.Pointer previousOop
         7: .line 184
            aload 8 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueMarkingOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readByte:(I)B
            istore 12 /* markingValue */
        start local 12 // byte markingValue
         8: .line 185
            iconst_0
            istore 13 /* gcCycle */
        start local 13 // int gcCycle
         9: .line 186
            iload 6 /* trace */
            ifeq 19
        10: .line 187
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.gcTotalCollectionsAddress:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)J
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.word.Pointer
            astore 14 /* gcTotalCollectionsAddress */
        start local 14 // org.graalvm.word.Pointer gcTotalCollectionsAddress
        11: .line 188
            aload 14 /* gcTotalCollectionsAddress */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.readLong:(I)J
            l2i
            istore 13 /* gcCycle */
        12: .line 189
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p Object %p\n"
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 1 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        13: .line 190
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p Expected Object %p\n"
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 9 /* fixedExpectedObject */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        14: .line 191
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p Field %p\n"
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 10 /* field */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        15: .line 192
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p Marking %d\n"
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 12 /* markingValue */
            i2l
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        16: .line 193
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p DoLoad %d\n"
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 3 /* doLoad */
            ifeq 17
            lconst_1
            goto 18
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.compiler.word.Word org.graalvm.word.Pointer int int org.graalvm.word.Pointer
      StackMap stack: int java.lang.String long long
        17: lconst_0
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.compiler.word.Word org.graalvm.word.Pointer int int org.graalvm.word.Pointer
      StackMap stack: int java.lang.String long long long
        18: invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        end local 14 // org.graalvm.word.Pointer gcTotalCollectionsAddress
        19: .line 195
      StackMap locals:
      StackMap stack:
            aload 7 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1AttemptedPreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        20: .line 197
            ldc 0.09999999999999998
            iload 12 /* markingValue */
            ifeq 21
            iconst_1
            goto 22
      StackMap locals:
      StackMap stack: double
        21: iconst_0
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.compiler.word.Word org.graalvm.word.Pointer int int
      StackMap stack: double int
        22: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 41
        23: .line 200
            ldc 0.6
            iload 3 /* doLoad */
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 28
        24: .line 201
            aload 10 /* 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;
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* previousOop */
        25: .line 202
            iload 6 /* trace */
            ifeq 28
        26: .line 203
            iload 6 /* trace */
            ldc "[%d] G1-Pre Thread %p Previous Object %p\n "
            iload 13 /* gcCycle */
            i2l
            aload 8 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 11 /* previousOop */
            invokeinterface org.graalvm.word.Pointer.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        27: .line 204
            aload 11 /* previousOop */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 207
      StackMap locals:
      StackMap stack:
            aload 7 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1EffectivePreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        29: .line 209
            ldc 0.9
            aload 11 /* previousOop */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 41
        30: .line 210
            aload 7 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1ExecutedPreWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        31: .line 213
            aload 8 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)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
        32: .line 214
            aload 14 /* indexAddress */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 15 /* indexValue */
        start local 15 // org.graalvm.compiler.word.Word indexValue
        33: .line 215
            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 40
        34: .line 216
            aload 8 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueBufferOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 16 /* bufferAddress */
        start local 16 // org.graalvm.compiler.word.Word bufferAddress
        35: .line 217
            aload 15 /* indexValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.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
        36: .line 218
            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
        37: .line 220
            aload 18 /* logAddress */
            iconst_0
            aload 11 /* previousOop */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        38: .line 221
            aload 14 /* indexAddress */
            iconst_0
            aload 17 /* nextIndex */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        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
        39: .line 222
            goto 41
        40: .line 223
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPRECALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 11 /* previousOop */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.g1PreBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
        end local 15 // org.graalvm.compiler.word.Word indexValue
        end local 14 // org.graalvm.compiler.word.Word indexAddress
        41: .line 227
      StackMap locals:
      StackMap stack:
            return
        end local 13 // int gcCycle
        end local 12 // byte markingValue
        end local 11 // org.graalvm.word.Pointer previousOop
        end local 10 // org.graalvm.compiler.word.Word field
        end local 9 // java.lang.Object fixedExpectedObject
        end local 8 // org.graalvm.compiler.word.Word thread
        end local 7 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
        end local 6 // boolean trace
        end local 5 // jdk.vm.ci.code.Register threadRegister
        end local 4 // boolean nullCheck
        end local 3 // boolean doLoad
        end local 2 // java.lang.Object expectedObject
        end local 1 // java.lang.Object object
        end local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   42     0                    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   42     1                     object  Ljava/lang/Object;
            0   42     2             expectedObject  Ljava/lang/Object;
            0   42     3                     doLoad  Z
            0   42     4                  nullCheck  Z
            0   42     5             threadRegister  Ljdk/vm/ci/code/Register;
            0   42     6                      trace  Z
            0   42     7                   counters  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            3   42     8                     thread  Lorg/graalvm/compiler/word/Word;
            5   42     9        fixedExpectedObject  Ljava/lang/Object;
            6   42    10                      field  Lorg/graalvm/compiler/word/Word;
            7   42    11                previousOop  Lorg/graalvm/word/Pointer;
            8   42    12               markingValue  B
            9   42    13                    gcCycle  I
           11   19    14  gcTotalCollectionsAddress  Lorg/graalvm/word/Pointer;
           32   41    14               indexAddress  Lorg/graalvm/compiler/word/Word;
           33   41    15                 indexValue  Lorg/graalvm/compiler/word/Word;
           35   39    16              bufferAddress  Lorg/graalvm/compiler/word/Word;
           36   39    17                  nextIndex  Lorg/graalvm/compiler/word/Word;
           37   39    18                 logAddress  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()
      7:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                Name  Flags
      address         
      object          
      expectedObject  
      doLoad          
      nullCheck       
      threadRegister  
      trace           
      counters        

  public static void g1PostWriteBarrier(org.graalvm.compiler.nodes.memory.address.AddressNode$Address, java.lang.Object, java.lang.Object, boolean, jdk.vm.ci.code.Register, boolean, org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;Ljava/lang/Object;Ljava/lang/Object;ZLjdk/vm/ci/code/Register;ZLorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=26, args_size=7
        start local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object value
        start local 3 // boolean usePrecise
        start local 4 // jdk.vm.ci.code.Register threadRegister
        start local 5 // boolean trace
        start local 6 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters
         0: .line 232
            aload 4 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 7 /* thread */
        start local 7 // org.graalvm.compiler.word.Word thread
         1: .line 233
            aload 2 /* 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 234
            aload 1 /* object */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 235
            aload 8 /* fixedValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 236
            aload 1 /* object */
            aload 8 /* fixedValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.validateObject:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 238
            iload 3 /* usePrecise */
            ifeq 8
         6: .line 239
            aload 0 /* 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 // org.graalvm.word.Pointer oop
         7: .line 240
            goto 9
        end local 9 // org.graalvm.word.Pointer oop
         8: .line 241
      StackMap locals: org.graalvm.compiler.word.Word java.lang.Object
      StackMap stack:
            aload 1 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 9 /* oop */
        start local 9 // org.graalvm.word.Pointer oop
         9: .line 243
      StackMap locals: org.graalvm.word.Pointer
      StackMap stack:
            iconst_0
            istore 10 /* gcCycle */
        start local 10 // int gcCycle
        10: .line 244
            iload 5 /* trace */
            ifeq 15
        11: .line 245
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.gcTotalCollectionsAddress:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)J
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.word.Pointer
            astore 11 /* gcTotalCollectionsAddress */
        start local 11 // org.graalvm.word.Pointer gcTotalCollectionsAddress
        12: .line 246
            aload 11 /* gcTotalCollectionsAddress */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.readLong:(I)J
            l2i
            istore 10 /* gcCycle */
        13: .line 247
            iload 5 /* trace */
            ldc "[%d] G1-Post Thread: %p Object: %p\n"
            iload 10 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 1 /* object */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        14: .line 248
            iload 5 /* trace */
            ldc "[%d] G1-Post Thread: %p Field: %p\n"
            iload 10 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 9 /* oop */
            invokeinterface org.graalvm.word.Pointer.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        end local 11 // org.graalvm.word.Pointer gcTotalCollectionsAddress
        15: .line 250
      StackMap locals: int
      StackMap stack:
            aload 8 /* fixedValue */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 11 /* writtenValue */
        start local 11 // org.graalvm.word.Pointer writtenValue
        16: .line 253
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.logOfHeapRegionGrainBytes:()I
            istore 12 /* logOfHeapRegionGrainBytes */
        start local 12 // int logOfHeapRegionGrainBytes
        17: .line 254
            aload 9 /* oop */
            aload 11 /* writtenValue */
            invokeinterface org.graalvm.word.Pointer.xor:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            iload 12 /* logOfHeapRegionGrainBytes */
            invokeinterface org.graalvm.word.UnsignedWord.unsignedShiftRight:(I)Lorg/graalvm/word/UnsignedWord;
            astore 13 /* xorResult */
        start local 13 // org.graalvm.word.UnsignedWord xorResult
        18: .line 258
            aload 9 /* oop */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.cardTableShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokeinterface org.graalvm.word.Pointer.unsignedShiftRight:(I)Lorg/graalvm/word/UnsignedWord;
            astore 14 /* cardBase */
        start local 14 // org.graalvm.word.UnsignedWord cardBase
        19: .line 259
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.cardTableAddress:()J
            lstore 15 /* startAddress */
        start local 15 // long startAddress
        20: .line 260
            iconst_0
            istore 17 /* displacement */
        start local 17 // int displacement
        21: .line 261
            lload 15 /* startAddress */
            l2i
            i2l
            lload 15 /* startAddress */
            lcmp
            ifne 24
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.isCardTableAddressConstant:()Z
            ifeq 24
        22: .line 262
            lload 15 /* startAddress */
            l2i
            istore 17 /* displacement */
        23: .line 263
            goto 25
        24: .line 264
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int
      StackMap stack:
            aload 14 /* cardBase */
            lload 15 /* startAddress */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
            astore 14 /* cardBase */
        25: .line 266
      StackMap locals:
      StackMap stack:
            aload 14 /* cardBase */
            iload 17 /* displacement */
            invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 18 /* cardAddress */
        start local 18 // org.graalvm.compiler.word.Word cardAddress
        26: .line 268
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1AttemptedPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        27: .line 269
            ldc 0.9
            aload 13 /* xorResult */
            iconst_0
            invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 53
        28: .line 270
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1EffectiveAfterXORPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        29: .line 273
            ldc 0.9
            aload 11 /* writtenValue */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 53
        30: .line 274
            aload 18 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILorg/graalvm/word/LocationIdentity;)B
            istore 19 /* cardByte */
        start local 19 // byte cardByte
        31: .line 275
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1EffectiveAfterNullPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        32: .line 278
            ldc 0.09999999999999998
            iload 19 /* cardByte */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1YoungCardValue:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)B
            if_icmpeq 33
            iconst_1
            goto 34
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int org.graalvm.compiler.word.Word int
      StackMap stack: double
        33: iconst_0
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int org.graalvm.compiler.word.Word int
      StackMap stack: double int
        34: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 53
        35: .line 279
            iconst_4
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILorg/graalvm/word/LocationIdentity;)V
        36: .line 280
            aload 18 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILorg/graalvm/word/LocationIdentity;)B
            istore 20 /* cardByteReload */
        start local 20 // byte cardByteReload
        37: .line 281
            ldc 0.09999999999999998
            iload 20 /* cardByteReload */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.dirtyCardValue:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)B
            if_icmpeq 38
            iconst_1
            goto 39
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int org.graalvm.compiler.word.Word int int
      StackMap stack: double
        38: iconst_0
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int org.graalvm.compiler.word.Word int int
      StackMap stack: double int
        39: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 53
        40: .line 282
            iload 5 /* trace */
            ldc "[%d] G1-Post Thread: %p Card: %p \n"
            iload 10 /* gcCycle */
            i2l
            aload 7 /* thread */
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            iload 19 /* cardByte */
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJJ)V
        41: .line 283
            aload 18 /* cardAddress */
            iconst_0
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLorg/graalvm/word/LocationIdentity;)V
        42: .line 284
            aload 6 /* counters */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.g1ExecutedPostWriteBarrierCounter:Lorg/graalvm/compiler/replacements/SnippetCounter;
            invokevirtual org.graalvm.compiler.replacements.SnippetCounter.inc:()V
        43: .line 288
            aload 7 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 21 /* indexAddress */
        start local 21 // org.graalvm.compiler.word.Word indexAddress
        44: .line 289
            aload 7 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 22 /* indexValue */
        start local 22 // org.graalvm.compiler.word.Word indexValue
        45: .line 290
            ldc 0.9
            aload 22 /* indexValue */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.notEqual:(I)Z
            invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 52
        46: .line 291
            aload 7 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueBufferOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 23 /* bufferAddress */
        start local 23 // org.graalvm.compiler.word.Word bufferAddress
        47: .line 292
            aload 22 /* indexValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            invokevirtual org.graalvm.compiler.word.Word.subtract:(I)Lorg/graalvm/compiler/word/Word;
            astore 24 /* nextIndex */
        start local 24 // org.graalvm.compiler.word.Word nextIndex
        48: .line 293
            aload 23 /* bufferAddress */
            aload 24 /* nextIndex */
            invokevirtual org.graalvm.compiler.word.Word.add:(Lorg/graalvm/compiler/word/Word;)Lorg/graalvm/compiler/word/Word;
            astore 25 /* logAddress */
        start local 25 // org.graalvm.compiler.word.Word logAddress
        49: .line 296
            aload 25 /* logAddress */
            iconst_0
            aload 18 /* cardAddress */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        50: .line 297
            aload 21 /* indexAddress */
            iconst_0
            aload 24 /* nextIndex */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        end local 25 // org.graalvm.compiler.word.Word logAddress
        end local 24 // org.graalvm.compiler.word.Word nextIndex
        end local 23 // org.graalvm.compiler.word.Word bufferAddress
        51: .line 298
            goto 53
        52: .line 299
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPOSTCALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 18 /* cardAddress */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.g1PostBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;)V
        end local 22 // org.graalvm.compiler.word.Word indexValue
        end local 21 // org.graalvm.compiler.word.Word indexAddress
        end local 20 // byte cardByteReload
        end local 19 // byte cardByte
        53: .line 305
      StackMap locals: org.graalvm.compiler.nodes.memory.address.AddressNode$Address java.lang.Object java.lang.Object int jdk.vm.ci.code.Register int org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters org.graalvm.compiler.word.Word java.lang.Object org.graalvm.word.Pointer int org.graalvm.word.Pointer int org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord long int org.graalvm.compiler.word.Word
      StackMap stack:
            return
        end local 18 // org.graalvm.compiler.word.Word cardAddress
        end local 17 // int displacement
        end local 15 // long startAddress
        end local 14 // org.graalvm.word.UnsignedWord cardBase
        end local 13 // org.graalvm.word.UnsignedWord xorResult
        end local 12 // int logOfHeapRegionGrainBytes
        end local 11 // org.graalvm.word.Pointer writtenValue
        end local 10 // int gcCycle
        end local 9 // org.graalvm.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.hotspot.replacements.WriteBarrierSnippets$Counters counters
        end local 5 // boolean trace
        end local 4 // jdk.vm.ci.code.Register threadRegister
        end local 3 // boolean usePrecise
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object object
        end local 0 // org.graalvm.compiler.nodes.memory.address.AddressNode$Address address
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   54     0                    address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode$Address;
            0   54     1                     object  Ljava/lang/Object;
            0   54     2                      value  Ljava/lang/Object;
            0   54     3                 usePrecise  Z
            0   54     4             threadRegister  Ljdk/vm/ci/code/Register;
            0   54     5                      trace  Z
            0   54     6                   counters  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            1   54     7                     thread  Lorg/graalvm/compiler/word/Word;
            2   54     8                 fixedValue  Ljava/lang/Object;
            7    8     9                        oop  Lorg/graalvm/word/Pointer;
            9   54     9                        oop  Lorg/graalvm/word/Pointer;
           10   54    10                    gcCycle  I
           12   15    11  gcTotalCollectionsAddress  Lorg/graalvm/word/Pointer;
           16   54    11               writtenValue  Lorg/graalvm/word/Pointer;
           17   54    12  logOfHeapRegionGrainBytes  I
           18   54    13                  xorResult  Lorg/graalvm/word/UnsignedWord;
           19   54    14                   cardBase  Lorg/graalvm/word/UnsignedWord;
           20   54    15               startAddress  J
           21   54    17               displacement  I
           26   54    18                cardAddress  Lorg/graalvm/compiler/word/Word;
           31   53    19                   cardByte  B
           37   53    20             cardByteReload  B
           44   53    21               indexAddress  Lorg/graalvm/compiler/word/Word;
           45   53    22                 indexValue  Lorg/graalvm/compiler/word/Word;
           47   51    23              bufferAddress  Lorg/graalvm/compiler/word/Word;
           48   51    24                  nextIndex  Lorg/graalvm/compiler/word/Word;
           49   51    25                 logAddress  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          
      value           
      usePrecise      
      threadRegister  
      trace           
      counters        

  public static void g1ArrayRangePreWriteBarrier(java.lang.Object, int, int, jdk.vm.ci.code.Register);
    descriptor: (Ljava/lang/Object;IILjdk/vm/ci/code/Register;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=19, args_size=4
        start local 0 // java.lang.Object object
        start local 1 // int startIndex
        start local 2 // int length
        start local 3 // jdk.vm.ci.code.Register threadRegister
         0: .line 309
            aload 3 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 4 /* thread */
        start local 4 // org.graalvm.compiler.word.Word thread
         1: .line 310
            aload 4 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueMarkingOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readByte:(I)B
            istore 5 /* markingValue */
        start local 5 // byte markingValue
         2: .line 312
            iload 5 /* markingValue */
            ifeq 3
            iload 2 /* length */
            ifne 4
         3: .line 313
      StackMap locals: org.graalvm.compiler.word.Word int
      StackMap stack:
            return
         4: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* object */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* dest */
        start local 6 // java.lang.Object dest
         5: .line 316
            aload 4 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueBufferOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 7 /* bufferAddress */
        start local 7 // org.graalvm.compiler.word.Word bufferAddress
         6: .line 317
            aload 4 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1SATBQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
            astore 8 /* indexAddress */
        start local 8 // org.graalvm.compiler.word.Word indexAddress
         7: .line 318
            aload 6 /* dest */
            invokestatic org.graalvm.compiler.hotspot.nodes.GetObjectAddressNode.get:(Ljava/lang/Object;)J
            lstore 9 /* dstAddr */
        start local 9 // long dstAddr
         8: .line 319
            aload 8 /* indexAddress */
            iconst_0
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            invokeinterface org.graalvm.word.WordBase.rawValue:()J
            lstore 11 /* indexValue */
        start local 11 // long indexValue
         9: .line 320
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 13 /* scale */
        start local 13 // int scale
        10: .line 321
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 14 /* header */
        start local 14 // int header
        11: .line 323
            iload 1 /* startIndex */
            istore 15 /* i */
        start local 15 // int i
        12: goto 25
        13: .line 324
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register org.graalvm.compiler.word.Word int java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long long int int int
      StackMap stack:
            lload 9 /* dstAddr */
            iload 14 /* header */
            i2l
            ladd
            iload 15 /* i */
            iload 13 /* scale */
            imul
            i2l
            ladd
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.compiler.word.Word
            astore 16 /* address */
        start local 16 // org.graalvm.compiler.word.Word address
        14: .line 325
            aload 16 /* address */
            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;
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 17 /* oop */
        start local 17 // org.graalvm.word.Pointer oop
        15: .line 326
            aload 17 /* oop */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOop:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 327
            aload 17 /* oop */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.notEqual:(I)Z
            ifeq 24
        17: .line 328
            lload 11 /* indexValue */
            lconst_0
            lcmp
            ifeq 23
        18: .line 329
            lload 11 /* indexValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            i2l
            lsub
            lstore 11 /* indexValue */
        19: .line 330
            aload 7 /* bufferAddress */
            lload 11 /* indexValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/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 18 /* logAddress */
        start local 18 // org.graalvm.compiler.word.Word logAddress
        20: .line 332
            aload 18 /* logAddress */
            iconst_0
            aload 17 /* oop */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        21: .line 333
            aload 8 /* indexAddress */
            iconst_0
            lload 11 /* indexValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        end local 18 // org.graalvm.compiler.word.Word logAddress
        22: .line 334
            goto 24
        23: .line 335
      StackMap locals: org.graalvm.compiler.word.Word org.graalvm.word.Pointer
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPRECALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 17 /* oop */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.g1PreBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
        end local 17 // org.graalvm.word.Pointer oop
        end local 16 // org.graalvm.compiler.word.Word address
        24: .line 323
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 15 /* i */
            iload 2 /* length */
            if_icmplt 13
        end local 15 // int i
        26: .line 339
            return
        end local 14 // int header
        end local 13 // int scale
        end local 11 // long indexValue
        end local 9 // long dstAddr
        end local 8 // org.graalvm.compiler.word.Word indexAddress
        end local 7 // org.graalvm.compiler.word.Word bufferAddress
        end local 6 // java.lang.Object dest
        end local 5 // byte markingValue
        end local 4 // org.graalvm.compiler.word.Word thread
        end local 3 // jdk.vm.ci.code.Register threadRegister
        end local 2 // int length
        end local 1 // int startIndex
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0          object  Ljava/lang/Object;
            0   27     1      startIndex  I
            0   27     2          length  I
            0   27     3  threadRegister  Ljdk/vm/ci/code/Register;
            1   27     4          thread  Lorg/graalvm/compiler/word/Word;
            2   27     5    markingValue  B
            5   27     6            dest  Ljava/lang/Object;
            6   27     7   bufferAddress  Lorg/graalvm/compiler/word/Word;
            7   27     8    indexAddress  Lorg/graalvm/compiler/word/Word;
            8   27     9         dstAddr  J
            9   27    11      indexValue  J
           10   27    13           scale  I
           11   27    14          header  I
           12   26    15               i  I
           14   24    16         address  Lorg/graalvm/compiler/word/Word;
           15   24    17             oop  Lorg/graalvm/word/Pointer;
           20   22    18      logAddress  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                Name  Flags
      object          
      startIndex      
      length          
      threadRegister  

  public static void g1ArrayRangePostWriteBarrier(java.lang.Object, int, int, jdk.vm.ci.code.Register);
    descriptor: (Ljava/lang/Object;IILjdk/vm/ci/code/Register;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=27, args_size=4
        start local 0 // java.lang.Object object
        start local 1 // int startIndex
        start local 2 // int length
        start local 3 // jdk.vm.ci.code.Register threadRegister
         0: .line 343
            iload 2 /* length */
            ifne 2
         1: .line 344
            return
         2: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* object */
            invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* dest */
        start local 4 // java.lang.Object dest
         3: .line 347
            aload 3 /* threadRegister */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.registerAsWord:(Ljdk/vm/ci/code/Register;)Lorg/graalvm/compiler/word/Word;
            astore 5 /* thread */
        start local 5 // org.graalvm.compiler.word.Word thread
         4: .line 348
            aload 5 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueBufferOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 6 /* bufferAddress */
        start local 6 // org.graalvm.compiler.word.Word bufferAddress
         5: .line 349
            aload 5 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)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
         6: .line 350
            aload 5 /* thread */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1CardQueueIndexOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            invokevirtual org.graalvm.compiler.word.Word.readWord:(I)Lorg/graalvm/word/WordBase;
            invokeinterface org.graalvm.word.WordBase.rawValue:()J
            lstore 8 /* indexValue */
        start local 8 // long indexValue
         7: .line 352
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.cardTableShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
            istore 10 /* cardShift */
        start local 10 // int cardShift
         8: .line 353
            invokestatic org.graalvm.compiler.hotspot.nodes.GraalHotSpotVMConfigNode.cardTableAddress:()J
            lstore 11 /* cardStart */
        start local 11 // long cardStart
         9: .line 354
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 13 /* scale */
        start local 13 // int scale
        10: .line 355
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.arrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 14 /* header */
        start local 14 // int header
        11: .line 356
            aload 4 /* dest */
            invokestatic org.graalvm.compiler.hotspot.nodes.GetObjectAddressNode.get:(Ljava/lang/Object;)J
            lstore 15 /* dstAddr */
        start local 15 // long dstAddr
        12: .line 357
            lload 15 /* dstAddr */
            iload 14 /* header */
            i2l
            ladd
            iload 1 /* startIndex */
            i2l
            iload 13 /* scale */
            i2l
            lmul
            ladd
            iload 10 /* cardShift */
            lushr
            lstore 17 /* start */
        start local 17 // long start
        13: .line 358
            lload 15 /* dstAddr */
            iload 14 /* header */
            i2l
            ladd
            iload 1 /* startIndex */
            i2l
            iload 2 /* length */
            i2l
            ladd
            lconst_1
            lsub
            iload 13 /* scale */
            i2l
            lmul
            ladd
            iload 10 /* cardShift */
            lushr
            lstore 19 /* end */
        start local 19 // long end
        14: .line 359
            lload 19 /* end */
            lload 17 /* start */
            lsub
            lconst_1
            ladd
            lstore 21 /* count */
        start local 21 // long count
        15: .line 361
            goto 34
        16: .line 362
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int long int int long long long long
      StackMap stack:
            lload 17 /* start */
            lload 11 /* cardStart */
            ladd
            lload 21 /* count */
            ladd
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.compiler.word.Word
            astore 23 /* cardAddress */
        start local 23 // org.graalvm.compiler.word.Word cardAddress
        17: .line 363
            aload 23 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILorg/graalvm/word/LocationIdentity;)B
            istore 24 /* cardByte */
        start local 24 // byte cardByte
        18: .line 365
            ldc 0.09999999999999998
            iload 24 /* cardByte */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.g1YoungCardValue:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)B
            if_icmpeq 19
            iconst_1
            goto 20
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int long int int long long long long org.graalvm.compiler.word.Word int
      StackMap stack: double
        19: iconst_0
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int long int int long long long long org.graalvm.compiler.word.Word int
      StackMap stack: double int
        20: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 34
        21: .line 366
            iconst_4
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokestatic org.graalvm.compiler.nodes.extended.MembarNode.memoryBarrier:(ILorg/graalvm/word/LocationIdentity;)V
        22: .line 367
            aload 23 /* cardAddress */
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.readByte:(ILorg/graalvm/word/LocationIdentity;)B
            istore 25 /* cardByteReload */
        start local 25 // byte cardByteReload
        23: .line 368
            ldc 0.09999999999999998
            iload 25 /* cardByteReload */
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.dirtyCardValue:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)B
            if_icmpeq 24
            iconst_1
            goto 25
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int long int int long long long long org.graalvm.compiler.word.Word int int
      StackMap stack: double
        24: iconst_0
      StackMap locals: java.lang.Object int int jdk.vm.ci.code.Register java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word long int long int int long long long long org.graalvm.compiler.word.Word int int
      StackMap stack: double int
        25: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
            ifeq 34
        26: .line 369
            aload 23 /* cardAddress */
            iconst_0
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeByte:(IBLorg/graalvm/word/LocationIdentity;)V
        27: .line 372
            lload 8 /* indexValue */
            lconst_0
            lcmp
            ifeq 33
        28: .line 373
            lload 8 /* indexValue */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.wordSize:()I
            i2l
            lsub
            lstore 8 /* indexValue */
        29: .line 374
            aload 6 /* bufferAddress */
            lload 8 /* indexValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/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 26 /* logAddress */
        start local 26 // org.graalvm.compiler.word.Word logAddress
        30: .line 377
            aload 26 /* logAddress */
            iconst_0
            aload 23 /* cardAddress */
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        31: .line 378
            aload 7 /* indexAddress */
            iconst_0
            lload 8 /* indexValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            invokevirtual org.graalvm.compiler.word.Word.writeWord:(ILorg/graalvm/word/WordBase;Lorg/graalvm/word/LocationIdentity;)V
        end local 26 // org.graalvm.compiler.word.Word logAddress
        32: .line 379
            goto 34
        33: .line 380
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPOSTCALL:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 23 /* cardAddress */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.g1PostBarrierStub:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Lorg/graalvm/compiler/word/Word;)V
        end local 25 // byte cardByteReload
        end local 24 // byte cardByte
        end local 23 // org.graalvm.compiler.word.Word cardAddress
        34: .line 361
      StackMap locals:
      StackMap stack:
            lload 21 /* count */
            dup2
            lconst_1
            lsub
            lstore 21 /* count */
            lconst_0
            lcmp
            ifgt 16
        35: .line 385
            return
        end local 21 // long count
        end local 19 // long end
        end local 17 // long start
        end local 15 // long dstAddr
        end local 14 // int header
        end local 13 // int scale
        end local 11 // long cardStart
        end local 10 // int cardShift
        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 // org.graalvm.compiler.word.Word thread
        end local 4 // java.lang.Object dest
        end local 3 // jdk.vm.ci.code.Register threadRegister
        end local 2 // int length
        end local 1 // int startIndex
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0          object  Ljava/lang/Object;
            0   36     1      startIndex  I
            0   36     2          length  I
            0   36     3  threadRegister  Ljdk/vm/ci/code/Register;
            3   36     4            dest  Ljava/lang/Object;
            4   36     5          thread  Lorg/graalvm/compiler/word/Word;
            5   36     6   bufferAddress  Lorg/graalvm/compiler/word/Word;
            6   36     7    indexAddress  Lorg/graalvm/compiler/word/Word;
            7   36     8      indexValue  J
            8   36    10       cardShift  I
            9   36    11       cardStart  J
           10   36    13           scale  I
           11   36    14          header  I
           12   36    15         dstAddr  J
           13   36    17           start  J
           14   36    19             end  J
           15   36    21           count  J
           17   34    23     cardAddress  Lorg/graalvm/compiler/word/Word;
           18   34    24        cardByte  B
           23   34    25  cardByteReload  B
           30   32    26      logAddress  Lorg/graalvm/compiler/word/Word;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Snippet()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.graalvm.compiler.api.replacements.Snippet$ConstantParameter()
    MethodParameters:
                Name  Flags
      object          
      startIndex      
      length          
      threadRegister  

  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      

  public 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: (0x0109) ACC_PUBLIC, 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        

  public static void log(boolean, java.lang.String, long);
    descriptor: (ZLjava/lang/String;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // boolean enabled
        start local 1 // java.lang.String format
        start local 2 // long value
         0: .line 543
            iload 0 /* enabled */
            ifeq 2
         1: .line 544
            aload 1 /* format */
            lload 2 /* value */
            invokestatic org.graalvm.compiler.replacements.Log.printf:(Ljava/lang/String;J)V
         2: .line 546
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long value
        end local 1 // java.lang.String format
        end local 0 // boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  enabled  Z
            0    3     1   format  Ljava/lang/String;
            0    3     2    value  J
    MethodParameters:
         Name  Flags
      enabled  
      format   
      value    

  public static void log(boolean, java.lang.String, long, long);
    descriptor: (ZLjava/lang/String;JJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // boolean enabled
        start local 1 // java.lang.String format
        start local 2 // long value1
        start local 4 // long value2
         0: .line 549
            iload 0 /* enabled */
            ifeq 2
         1: .line 550
            aload 1 /* format */
            lload 2 /* value1 */
            lload 4 /* value2 */
            invokestatic org.graalvm.compiler.replacements.Log.printf:(Ljava/lang/String;JJ)V
         2: .line 552
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long value2
        end local 2 // long value1
        end local 1 // java.lang.String format
        end local 0 // boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  enabled  Z
            0    3     1   format  Ljava/lang/String;
            0    3     2   value1  J
            0    3     4   value2  J
    MethodParameters:
         Name  Flags
      enabled  
      format   
      value1   
      value2   

  public static void log(boolean, java.lang.String, long, long, long);
    descriptor: (ZLjava/lang/String;JJJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // boolean enabled
        start local 1 // java.lang.String format
        start local 2 // long value1
        start local 4 // long value2
        start local 6 // long value3
         0: .line 555
            iload 0 /* enabled */
            ifeq 2
         1: .line 556
            aload 1 /* format */
            lload 2 /* value1 */
            lload 4 /* value2 */
            lload 6 /* value3 */
            invokestatic org.graalvm.compiler.replacements.Log.printf:(Ljava/lang/String;JJJ)V
         2: .line 558
      StackMap locals:
      StackMap stack:
            return
        end local 6 // long value3
        end local 4 // long value2
        end local 2 // long value1
        end local 1 // java.lang.String format
        end local 0 // boolean enabled
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  enabled  Z
            0    3     1   format  Ljava/lang/String;
            0    3     2   value1  J
            0    3     4   value2  J
            0    3     6   value3  J
    MethodParameters:
         Name  Flags
      enabled  
      format   
      value1   
      value2   
      value3   

  public static boolean traceBarrier(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 561
            getstatic org.graalvm.compiler.core.common.GraalOptions.GCDebugStartCycle:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifle 5
         1: .line 562
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.gcTotalCollectionsAddress:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)J
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.word.Pointer
            iconst_0
            invokeinterface org.graalvm.word.Pointer.readLong:(I)J
            l2i
            getstatic org.graalvm.compiler.core.common.GraalOptions.GCDebugStartCycle:Lorg/graalvm/compiler/options/OptionKey;
         2: .line 563
            aload 0 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
         3: .line 562
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         4: .line 561
            if_icmple 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
    MethodParameters:
       Name  Flags
      graph  

  public static void validateObject(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.Object parent
        start local 1 // java.lang.Object child
         0: .line 573
            getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.verifyOops:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)Z
            ifeq 3
            aload 1 /* child */
            ifnull 3
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.VALIDATE_OBJECT:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 0 /* parent */
            aload 1 /* child */
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.validateOop:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 3
         1: .line 574
            iconst_1
            ldc "Verification ERROR, Parent: %p Child: %p\n"
            aload 0 /* parent */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            aload 1 /* child */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.log:(ZLjava/lang/String;JJ)V
         2: .line 575
            ldc "Verification ERROR, Parent: %p\n"
            aload 0 /* parent */
            invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
            invokestatic org.graalvm.compiler.hotspot.nodes.VMErrorNode.vmError:(Ljava/lang/String;J)V
         3: .line 577
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object child
        end local 0 // java.lang.Object parent
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  parent  Ljava/lang/Object;
            0    4     1   child  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      parent  
      child   

  private static native boolean validateOop(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;Ljava/lang/Object;)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      
}
SourceFile: "WriteBarrierSnippets.java"
NestMembers:
  org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters  org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates
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
  Counters = org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters of org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets
  public Templates = org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates of org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets
  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