public class org.graalvm.compiler.hotspot.meta.HotSpotGCProvider implements org.graalvm.compiler.nodes.spi.GCProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.meta.HotSpotGCProvider
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.nodes.gc.BarrierSet barrierSet;
    descriptor: Lorg/graalvm/compiler/nodes/gc/BarrierSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* config */
            aload 2 /* metaAccess */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotGCProvider.createBarrierSet:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
            putfield org.graalvm.compiler.hotspot.meta.HotSpotGCProvider.barrierSet:Lorg/graalvm/compiler/nodes/gc/BarrierSet;
         2: .line 45
            return
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;
            0    3     1      config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    3     2  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
    MethodParameters:
            Name  Flags
      config      
      metaAccess  

  public org.graalvm.compiler.nodes.gc.BarrierSet getBarrierSet();
    descriptor: ()Lorg/graalvm/compiler/nodes/gc/BarrierSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
         0: .line 49
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotGCProvider.barrierSet:Lorg/graalvm/compiler/nodes/gc/BarrierSet;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;

  private org.graalvm.compiler.nodes.gc.BarrierSet createBarrierSet(org.graalvm.compiler.hotspot.GraalHotSpotVMConfig, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 53
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useDeferredInitBarriers:Z
            istore 3 /* useDeferredInitBarriers */
        start local 3 // boolean useDeferredInitBarriers
         1: .line 54
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useG1GC:Z
            ifeq 3
         2: .line 55
            new org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$1
            dup
            aload 0 /* this */
            aload 2 /* metaAccess */
            iload 3 /* useDeferredInitBarriers */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$1.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;Ljdk/vm/ci/meta/MetaAccessProvider;Z)V
            areturn
         3: .line 65
      StackMap locals: int
      StackMap stack:
            new org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$2
            dup
            aload 0 /* this */
            iload 3 /* useDeferredInitBarriers */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$2.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;Z)V
            areturn
        end local 3 // boolean useDeferredInitBarriers
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    4     0                     this  Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;
            0    4     1                   config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    4     2               metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1    4     3  useDeferredInitBarriers  Z
    MethodParameters:
            Name  Flags
      config      
      metaAccess  

  protected boolean isWriteToNewObject(org.graalvm.compiler.nodes.memory.FixedAccessNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode initializingWrite
         0: .line 82
            aload 1 /* initializingWrite */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getLocationIdentity:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            invokevirtual jdk.internal.vm.compiler.word.LocationIdentity.isInit:()Z
            ifne 2
         1: .line 83
            iconst_0
            ireturn
         2: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* initializingWrite */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokevirtual org.graalvm.compiler.nodes.memory.address.AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* base */
        start local 2 // org.graalvm.compiler.nodes.ValueNode base
         3: .line 87
            aload 2 /* base */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifeq 13
         4: .line 88
            aload 1 /* initializingWrite */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            astore 3 /* pred */
        start local 3 // org.graalvm.compiler.graph.Node pred
         5: .line 89
            goto 12
         6: .line 90
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.graph.Node
      StackMap stack:
            aload 3 /* pred */
            aload 2 /* base */
            if_acmpne 8
         7: .line 91
            iconst_1
            ireturn
         8: .line 93
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifeq 11
         9: .line 94
            aload 1 /* initializingWrite */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            iconst_2
            ldc "Disallowed deferred init because %s was last allocation instead of %s"
            aload 3 /* pred */
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 95
            iconst_0
            ireturn
        11: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            astore 3 /* pred */
        12: .line 89
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            ifnonnull 6
        end local 3 // org.graalvm.compiler.graph.Node pred
        13: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* initializingWrite */
            invokevirtual org.graalvm.compiler.nodes.memory.FixedAccessNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            iconst_2
            ldc "Unable to find allocation for deferred init for %s with base %s"
            aload 1 /* initializingWrite */
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 101
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode initializingWrite
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotGCProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lorg/graalvm/compiler/hotspot/meta/HotSpotGCProvider;
            0   15     1  initializingWrite  Lorg/graalvm/compiler/nodes/memory/FixedAccessNode;
            3   15     2               base  Lorg/graalvm/compiler/nodes/ValueNode;
            5   13     3               pred  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
                   Name  Flags
      initializingWrite  
}
SourceFile: "HotSpotGCProvider.java"
NestMembers:
  org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$1  org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$2
InnerClasses:
  org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$1
  org.graalvm.compiler.hotspot.meta.HotSpotGCProvider$2