public class org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates extends org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates
  super_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
{
  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo serialImpreciseWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo serialPreciseWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo serialArrayRangeWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo g1PreWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo g1ReferentReadBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo g1PostWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo g1ArrayRangePreWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo g1ArrayRangePostWriteBarrier;
    descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.CompressEncoding oopEncoding;
    descriptor: Lorg/graalvm/compiler/hotspot/CompressEncoding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 377
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.hotspot.meta.HotSpotProviders, jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.hotspot.CompressEncoding);
    descriptor: (Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/hotspot/CompressEncoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        start local 2 // jdk.vm.ci.code.TargetDescription target
        start local 3 // org.graalvm.compiler.hotspot.CompressEncoding oopEncoding
         0: .line 391
            aload 0 /* this */
            aload 1 /* providers */
            aload 1 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 2 /* target */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
         1: .line 379
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialImpreciseWriteBarrier"
            iconst_1
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialImpreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         2: .line 380
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialPreciseWriteBarrier"
            iconst_1
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialPreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         3: .line 381
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialArrayRangeWriteBarrier"
            iconst_0
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialArrayRangeWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         4: .line 382
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PreWriteBarrier"
            iconst_2
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         5: .line 383
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PreWriteBarrier"
            iconst_2
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ReferentReadBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         6: .line 384
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PostWriteBarrier"
            iconst_3
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_2
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         7: .line 385
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1ArrayRangePreWriteBarrier"
            iconst_2
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         8: .line 386
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1ArrayRangePostWriteBarrier"
            iconst_3
            anewarray org.graalvm.compiler.core.common.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            dup
            iconst_2
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/compiler/core/common/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         9: .line 392
            aload 0 /* this */
            aload 3 /* oopEncoding */
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
        10: .line 393
            return
        end local 3 // org.graalvm.compiler.hotspot.CompressEncoding oopEncoding
        end local 2 // jdk.vm.ci.code.TargetDescription target
        end local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   11     1    providers  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            0   11     2       target  Ljdk/vm/ci/code/TargetDescription;
            0   11     3  oopEncoding  Lorg/graalvm/compiler/hotspot/CompressEncoding;
    MethodParameters:
             Name  Flags
      providers    
      target       
      oopEncoding  

  public void lower(org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/SerialWriteBarrier;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier writeBarrier
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 397
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.usePrecise:()Z
            ifeq 4
         1: .line 398
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialPreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 3 /* args */
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         2: .line 399
            aload 3 /* args */
            ldc "address"
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 400
            goto 7
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         4: .line 401
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialImpreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 3 /* args */
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         5: .line 402
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            astore 4 /* address */
        start local 4 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode address
         6: .line 403
            aload 3 /* args */
            ldc "object"
            aload 4 /* address */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        end local 4 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode address
         7: .line 405
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments
      StackMap stack:
            aload 0 /* this */
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* writeBarrier */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
         8: .line 406
            return
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier writeBarrier
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0    9     1  writeBarrier  Lorg/graalvm/compiler/hotspot/nodes/SerialWriteBarrier;
            0    9     2          tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            2    4     3          args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            5    9     3          args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            6    7     4       address  Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
    MethodParameters:
              Name  Flags
      writeBarrier  
      tool          

  public void lower(org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/SerialArrayRangeWriteBarrier;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier arrayRangeWriteBarrier
        start local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 409
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialArrayRangeWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 2 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 3 /* args */
        start local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         1: .line 410
            aload 3 /* args */
            ldc "object"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier.getObject:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         2: .line 411
            aload 3 /* args */
            ldc "startIndex"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier.getStartIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 412
            aload 3 /* args */
            ldc "length"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         4: .line 413
            aload 0 /* this */
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* arrayRangeWriteBarrier */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
         5: .line 414
            return
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 2 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 1 // org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier arrayRangeWriteBarrier
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0    6     1  arrayRangeWriteBarrier  Lorg/graalvm/compiler/hotspot/nodes/SerialArrayRangeWriteBarrier;
            0    6     2                    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    6     3                    args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
    MethodParameters:
                        Name  Flags
      arrayRangeWriteBarrier  
      tool                    

  public void lower(org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/G1PreWriteBarrier;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier writeBarrierPre
        start local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 417
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 4 /* args */
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         1: .line 418
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 5 /* address */
        start local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         2: .line 419
            aload 4 /* args */
            ldc "address"
            aload 5 /* address */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 420
            aload 5 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 6
         4: .line 421
            aload 4 /* args */
            ldc "object"
            aload 5 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         5: .line 422
            goto 7
         6: .line 423
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.memory.address.AddressNode
      StackMap stack:
            aload 4 /* args */
            ldc "object"
            aconst_null
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         7: .line 426
      StackMap locals:
      StackMap stack:
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.getExpectedObject:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* expected */
        start local 6 // org.graalvm.compiler.nodes.ValueNode expected
         8: .line 427
            aload 6 /* expected */
            ifnull 11
            aload 6 /* expected */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.hotspot.nodes.type.NarrowOopStamp
            ifeq 11
         9: .line 428
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            ifnonnull 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 429
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 6 /* expected */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.CompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/hotspot/CompressEncoding;)Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;
            astore 6 /* expected */
        11: .line 431
      StackMap locals:
      StackMap stack:
            aload 4 /* args */
            ldc "expectedObject"
            aload 6 /* expected */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        12: .line 433
            aload 4 /* args */
            ldc "doLoad"
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.doLoad:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        13: .line 434
            aload 4 /* args */
            ldc "nullCheck"
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.getNullCheck:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        14: .line 435
            aload 4 /* args */
            ldc "threadRegister"
            aload 2 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        15: .line 436
            aload 4 /* args */
            ldc "trace"
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        16: .line 437
            aload 0 /* this */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* writeBarrierPre */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
        17: .line 438
            return
        end local 6 // org.graalvm.compiler.nodes.ValueNode expected
        end local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 1 // org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier writeBarrierPre
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   18     1  writeBarrierPre  Lorg/graalvm/compiler/hotspot/nodes/G1PreWriteBarrier;
            0   18     2        registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   18     3             tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   18     4             args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            2   18     5          address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            8   18     6         expected  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                 Name  Flags
      writeBarrierPre  
      registers        
      tool             

  public void lower(org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/G1ReferentFieldReadBarrier;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier readBarrier
        start local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 441
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ReferentReadBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 4 /* args */
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         1: .line 442
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 5 /* address */
        start local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         2: .line 443
            aload 4 /* args */
            ldc "address"
            aload 5 /* address */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 444
            aload 5 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 6
         4: .line 445
            aload 4 /* args */
            ldc "object"
            aload 5 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         5: .line 446
            goto 7
         6: .line 447
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.memory.address.AddressNode
      StackMap stack:
            aload 4 /* args */
            ldc "object"
            aconst_null
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         7: .line 450
      StackMap locals:
      StackMap stack:
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.getExpectedObject:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* expected */
        start local 6 // org.graalvm.compiler.nodes.ValueNode expected
         8: .line 451
            aload 6 /* expected */
            ifnull 11
            aload 6 /* expected */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.hotspot.nodes.type.NarrowOopStamp
            ifeq 11
         9: .line 452
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            ifnonnull 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 453
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 6 /* expected */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.CompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/hotspot/CompressEncoding;)Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;
            astore 6 /* expected */
        11: .line 456
      StackMap locals:
      StackMap stack:
            aload 4 /* args */
            ldc "expectedObject"
            aload 6 /* expected */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        12: .line 457
            aload 4 /* args */
            ldc "doLoad"
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.doLoad:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        13: .line 458
            aload 4 /* args */
            ldc "nullCheck"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        14: .line 459
            aload 4 /* args */
            ldc "threadRegister"
            aload 2 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        15: .line 460
            aload 4 /* args */
            ldc "trace"
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        16: .line 461
            aload 0 /* this */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* readBarrier */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
        17: .line 462
            return
        end local 6 // org.graalvm.compiler.nodes.ValueNode expected
        end local 5 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 1 // org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier readBarrier
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   18     1  readBarrier  Lorg/graalvm/compiler/hotspot/nodes/G1ReferentFieldReadBarrier;
            0   18     2    registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   18     3         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   18     4         args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            2   18     5      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            8   18     6     expected  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
             Name  Flags
      readBarrier  
      registers    
      tool         

  public void lower(org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/G1PostWriteBarrier;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier writeBarrierPost
        start local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 465
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         1: .line 466
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.alwaysNull:()Z
            ifeq 4
         2: .line 467
            aload 4 /* graph */
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         3: .line 468
            return
         4: .line 470
      StackMap locals: org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 4 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 5 /* args */
        start local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         5: .line 471
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            astore 6 /* address */
        start local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         6: .line 472
            aload 5 /* args */
            ldc "address"
            aload 6 /* address */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         7: .line 473
            aload 6 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 10
         8: .line 474
            aload 5 /* args */
            ldc "object"
            aload 6 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         9: .line 475
            goto 12
        10: .line 476
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments org.graalvm.compiler.nodes.memory.address.AddressNode
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.$assertionsDisabled:Z
            ifne 11
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.usePrecise:()Z
            ifne 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "found imprecise barrier that's not an object access "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* writeBarrierPost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 477
      StackMap locals:
      StackMap stack:
            aload 5 /* args */
            ldc "object"
            aconst_null
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        12: .line 480
      StackMap locals:
      StackMap stack:
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* value */
        start local 7 // org.graalvm.compiler.nodes.ValueNode value
        13: .line 481
            aload 7 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.hotspot.nodes.type.NarrowOopStamp
            ifeq 16
        14: .line 482
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            ifnonnull 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 483
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 7 /* value */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/hotspot/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.CompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/hotspot/CompressEncoding;)Lorg/graalvm/compiler/hotspot/nodes/CompressionNode;
            astore 7 /* value */
        16: .line 485
      StackMap locals:
      StackMap stack:
            aload 5 /* args */
            ldc "value"
            aload 7 /* value */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        17: .line 487
            aload 5 /* args */
            ldc "usePrecise"
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.usePrecise:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        18: .line 488
            aload 5 /* args */
            ldc "threadRegister"
            aload 2 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        19: .line 489
            aload 5 /* args */
            ldc "trace"
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        20: .line 490
            aload 0 /* this */
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* writeBarrierPost */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
        21: .line 491
            return
        end local 7 // org.graalvm.compiler.nodes.ValueNode value
        end local 6 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 5 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 1 // org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier writeBarrierPost
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   22     1  writeBarrierPost  Lorg/graalvm/compiler/hotspot/nodes/G1PostWriteBarrier;
            0   22     2         registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   22     3              tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   22     4             graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            5   22     5              args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            6   22     6           address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           13   22     7             value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                  Name  Flags
      writeBarrierPost  
      registers         
      tool              

  public void lower(org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/G1ArrayRangePreWriteBarrier;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier arrayRangeWriteBarrier
        start local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 494
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 4 /* args */
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         1: .line 495
            aload 4 /* args */
            ldc "object"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier.getObject:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         2: .line 496
            aload 4 /* args */
            ldc "startIndex"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier.getStartIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 497
            aload 4 /* args */
            ldc "length"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         4: .line 498
            aload 4 /* args */
            ldc "threadRegister"
            aload 2 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         5: .line 499
            aload 0 /* this */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* arrayRangeWriteBarrier */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
         6: .line 500
            return
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 1 // org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier arrayRangeWriteBarrier
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0    7     1  arrayRangeWriteBarrier  Lorg/graalvm/compiler/hotspot/nodes/G1ArrayRangePreWriteBarrier;
            0    7     2               registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    7     3                    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    7     4                    args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
    MethodParameters:
                        Name  Flags
      arrayRangeWriteBarrier  
      registers               
      tool                    

  public void lower(org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier, org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider, org.graalvm.compiler.nodes.spi.LoweringTool);
    descriptor: (Lorg/graalvm/compiler/hotspot/nodes/G1ArrayRangePostWriteBarrier;Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier arrayRangeWriteBarrier
        start local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        start local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
         0: .line 503
            new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
            aload 3 /* tool */
            invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
            astore 4 /* args */
        start local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         1: .line 504
            aload 4 /* args */
            ldc "object"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier.getObject:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         2: .line 505
            aload 4 /* args */
            ldc "startIndex"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier.getStartIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         3: .line 506
            aload 4 /* args */
            ldc "length"
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier.getLength:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         4: .line 507
            aload 4 /* args */
            ldc "threadRegister"
            aload 2 /* registers */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         5: .line 508
            aload 0 /* this */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.providers:Lorg/graalvm/compiler/phases/util/Providers;
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* arrayRangeWriteBarrier */
            getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Ljava/util/Map;
            pop
         6: .line 509
            return
        end local 4 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
        end local 3 // org.graalvm.compiler.nodes.spi.LoweringTool tool
        end local 2 // org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider registers
        end local 1 // org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier arrayRangeWriteBarrier
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0    7     1  arrayRangeWriteBarrier  Lorg/graalvm/compiler/hotspot/nodes/G1ArrayRangePostWriteBarrier;
            0    7     2               registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0    7     3                    tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1    7     4                    args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
    MethodParameters:
                        Name  Flags
      arrayRangeWriteBarrier  
      registers               
      tool                    
}
SourceFile: "WriteBarrierSnippets.java"
NestHost: org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets
InnerClasses:
  public Templates = org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates of org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets
  public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
  public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
  public abstract AbstractTemplates = org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates of org.graalvm.compiler.replacements.SnippetTemplate
  public Arguments = org.graalvm.compiler.replacements.SnippetTemplate$Arguments of org.graalvm.compiler.replacements.SnippetTemplate
  public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
  public abstract UsageReplacer = org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer of org.graalvm.compiler.replacements.SnippetTemplate