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.core.common.CompressEncoding oopEncoding;
    descriptor: Lorg/graalvm/compiler/core/common/CompressEncoding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters counters;
    descriptor: Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
    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 397
            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.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.replacements.SnippetCounter$Group$Factory, org.graalvm.compiler.hotspot.meta.HotSpotProviders, jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.core.common.CompressEncoding);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/core/common/CompressEncoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // java.lang.Iterable factories
        start local 3 // org.graalvm.compiler.replacements.SnippetCounter$Group$Factory factory
        start local 4 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        start local 5 // jdk.vm.ci.code.TargetDescription target
        start local 6 // org.graalvm.compiler.core.common.CompressEncoding oopEncoding
         0: .line 413
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* factories */
            aload 4 /* providers */
            aload 4 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 5 /* target */
            invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
         1: .line 399
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialImpreciseWriteBarrier"
            iconst_1
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialImpreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         2: .line 400
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialPreciseWriteBarrier"
            iconst_1
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialPreciseWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         3: .line 401
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "serialArrayRangeWriteBarrier"
            iconst_0
            anewarray org.graalvm.word.LocationIdentity
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.serialArrayRangeWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         4: .line 402
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PreWriteBarrier"
            iconst_2
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         5: .line 403
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PreWriteBarrier"
            iconst_2
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ReferentReadBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         6: .line 404
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1PostWriteBarrier"
            iconst_3
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_2
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1PostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         7: .line 405
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1ArrayRangePreWriteBarrier"
            iconst_2
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePreWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         8: .line 406
            aload 0 /* this */
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets;
            ldc "g1ArrayRangePostWriteBarrier"
            iconst_3
            anewarray org.graalvm.word.LocationIdentity
            dup
            iconst_0
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_CARD_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_1
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_INDEX_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            dup
            iconst_2
            getstatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.GC_LOG_LOCATION:Lorg/graalvm/word/LocationIdentity;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.g1ArrayRangePostWriteBarrier:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
         9: .line 414
            aload 0 /* this */
            aload 6 /* oopEncoding */
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.oopEncoding:Lorg/graalvm/compiler/core/common/CompressEncoding;
        10: .line 415
            aload 0 /* this */
            new org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters
            dup
            aload 3 /* factory */
            invokespecial org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Counters.<init>:(Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;)V
            putfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.counters:Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
        11: .line 416
            return
        end local 6 // org.graalvm.compiler.core.common.CompressEncoding oopEncoding
        end local 5 // jdk.vm.ci.code.TargetDescription target
        end local 4 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        end local 3 // org.graalvm.compiler.replacements.SnippetCounter$Group$Factory factory
        end local 2 // java.lang.Iterable factories
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   12     1      options  Lorg/graalvm/compiler/options/OptionValues;
            0   12     2    factories  Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
            0   12     3      factory  Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;
            0   12     4    providers  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            0   12     5       target  Ljdk/vm/ci/code/TargetDescription;
            0   12     6  oopEncoding  Lorg/graalvm/compiler/core/common/CompressEncoding;
    Signature: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/replacements/SnippetCounter$Group$Factory;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/core/common/CompressEncoding;)V
    MethodParameters:
             Name  Flags
      options      
      factories    
      factory      
      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 420
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.usePrecise:()Z
            ifeq 4
         1: .line 421
            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 422
            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 423
            goto 7
        end local 3 // org.graalvm.compiler.replacements.SnippetTemplate$Arguments args
         4: .line 424
      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 425
            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 426
            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 428
      StackMap locals: org.graalvm.compiler.replacements.SnippetTemplate$Arguments
      StackMap stack:
            aload 3 /* args */
            ldc "counters"
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.counters:Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
         8: .line 429
            aload 0 /* this */
            aload 1 /* writeBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
         9: .line 430
            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   10     0          this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   10     1  writeBarrier  Lorg/graalvm/compiler/hotspot/nodes/SerialWriteBarrier;
            0   10     2          tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            2    4     3          args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            5   10     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 433
            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 434
            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 435
            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 436
            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 437
            aload 0 /* this */
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 3 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
         5: .line 438
            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 441
            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 442
            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 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 /* 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 451
            aload 6 /* expected */
            ifnull 11
            aload 6 /* expected */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.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/core/common/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/core/common/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/CompressEncoding;)Lorg/graalvm/compiler/nodes/CompressionNode;
            astore 6 /* expected */
        11: .line 455
      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 /* 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 458
            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 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"
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:(Lorg/graalvm/compiler/nodes/StructuredGraph;)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 4 /* args */
            ldc "counters"
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.counters:Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        17: .line 462
            aload 0 /* this */
            aload 1 /* writeBarrierPre */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
        18: .line 463
            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   19     0             this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   19     1  writeBarrierPre  Lorg/graalvm/compiler/hotspot/nodes/G1PreWriteBarrier;
            0   19     2        registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   19     3             tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   19     4             args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            2   19     5          address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            8   19     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 466
            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 467
            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 468
            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 469
            aload 5 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 6
         4: .line 470
            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 471
            goto 7
         6: .line 472
      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 475
      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 476
            aload 6 /* expected */
            ifnull 11
            aload 6 /* expected */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.nodes.type.NarrowOopStamp
            ifeq 11
         9: .line 477
            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/core/common/CompressEncoding;
            ifnonnull 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 478
      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/core/common/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/CompressEncoding;)Lorg/graalvm/compiler/nodes/CompressionNode;
            astore 6 /* expected */
        11: .line 481
      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 482
            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 483
            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 484
            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 485
            aload 4 /* args */
            ldc "trace"
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:(Lorg/graalvm/compiler/nodes/StructuredGraph;)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 486
            aload 4 /* args */
            ldc "counters"
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.counters:Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        17: .line 487
            aload 0 /* this */
            aload 1 /* readBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ReferentFieldReadBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
        18: .line 488
            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   19     0         this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   19     1  readBarrier  Lorg/graalvm/compiler/hotspot/nodes/G1ReferentFieldReadBarrier;
            0   19     2    registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   19     3         tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   19     4         args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            2   19     5      address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            8   19     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 491
            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 492
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.alwaysNull:()Z
            ifeq 4
         2: .line 493
            aload 4 /* graph */
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
         3: .line 494
            return
         4: .line 496
      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 497
            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 498
            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 499
            aload 6 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 10
         8: .line 500
            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 501
            goto 12
        10: .line 502
      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 503
      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 506
      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 507
            aload 7 /* value */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.nodes.type.NarrowOopStamp
            ifeq 16
        14: .line 508
            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/core/common/CompressEncoding;
            ifnonnull 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 509
      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/core/common/CompressEncoding;
            invokestatic org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode.uncompress:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/CompressEncoding;)Lorg/graalvm/compiler/nodes/CompressionNode;
            astore 7 /* value */
        16: .line 511
      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 513
            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 514
            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 515
            aload 5 /* args */
            ldc "trace"
            aload 1 /* writeBarrierPost */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.traceBarrier:(Lorg/graalvm/compiler/nodes/StructuredGraph;)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 516
            aload 5 /* args */
            ldc "counters"
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.counters:Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Counters;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.addConst:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            pop
        21: .line 517
            aload 0 /* this */
            aload 4 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 5 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
        22: .line 518
            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   23     0              this  Lorg/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets$Templates;
            0   23     1  writeBarrierPost  Lorg/graalvm/compiler/hotspot/nodes/G1PostWriteBarrier;
            0   23     2         registers  Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            0   23     3              tool  Lorg/graalvm/compiler/nodes/spi/LoweringTool;
            1   23     4             graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            5   23     5              args  Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
            6   23     6           address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
           13   23     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 521
            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 522
            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 523
            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 524
            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 525
            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 526
            aload 0 /* this */
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePreWriteBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
         6: .line 527
            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 530
            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 531
            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 532
            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 533
            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 534
            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 535
            aload 0 /* this */
            aload 1 /* arrayRangeWriteBarrier */
            invokevirtual org.graalvm.compiler.hotspot.nodes.G1ArrayRangePostWriteBarrier.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets$Templates.template:(Lorg/graalvm/compiler/debug/DebugContext;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;)Lorg/graalvm/util/UnmodifiableEconomicMap;
            pop
         6: .line 536
            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:
  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 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 Group = org.graalvm.compiler.replacements.SnippetCounter$Group of org.graalvm.compiler.replacements.SnippetCounter
  public abstract Factory = org.graalvm.compiler.replacements.SnippetCounter$Group$Factory of org.graalvm.compiler.replacements.SnippetCounter$Group
  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