public class org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider implements org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider
  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

  private final boolean canVirtualizeLargeByteArrayAccess;
    descriptor: Z
    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.HotSpotPlatformConfigurationProvider this
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* config */
            aload 2 /* metaAccess */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider.createBarrierSet:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
            putfield org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider.barrierSet:Lorg/graalvm/compiler/nodes/gc/BarrierSet;
         2: .line 50
            aload 0 /* this */
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.deoptimizationSupportLargeAccessByteArrayVirtualization:Z
            putfield org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider.canVirtualizeLargeByteArrayAccess:Z
         3: .line 51
            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.HotSpotPlatformConfigurationProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;
            0    4     1      config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    4     2  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
    MethodParameters:
            Name  Flags
      config      
      metaAccess  

  public boolean canVirtualizeLargeByteArrayAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider this
         0: .line 55
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider.canVirtualizeLargeByteArrayAccess:Z
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;

  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.HotSpotPlatformConfigurationProvider this
         0: .line 60
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider.barrierSet:Lorg/graalvm/compiler/nodes/gc/BarrierSet;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;

  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=6, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider this
        start local 1 // org.graalvm.compiler.hotspot.GraalHotSpotVMConfig config
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 64
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useDeferredInitBarriers:Z
            istore 3 /* useDeferredInitBarriers */
        start local 3 // boolean useDeferredInitBarriers
         1: .line 65
            aload 2 /* metaAccess */
            ldc [Ljava/lang/Object;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* objectArrayType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
         2: .line 66
            aload 1 /* config */
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useG1GC:Z
            ifeq 5
         3: .line 67
            aload 2 /* metaAccess */
            invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.referentField:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 5 /* referentField */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField referentField
         4: .line 68
            new org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$1
            dup
            aload 0 /* this */
            aload 4 /* objectArrayType */
            aload 5 /* referentField */
            iload 3 /* useDeferredInitBarriers */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$1.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaField;Z)V
            areturn
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField referentField
         5: .line 78
      StackMap locals: int jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            new org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$2
            dup
            aload 0 /* this */
            aload 4 /* objectArrayType */
            iload 3 /* useDeferredInitBarriers */
            invokespecial org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$2.<init>:(Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;Ljdk/vm/ci/meta/ResolvedJavaType;Z)V
            areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType objectArrayType
        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.HotSpotPlatformConfigurationProvider this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;
            0    6     1                   config  Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            0    6     2               metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1    6     3  useDeferredInitBarriers  Z
            2    6     4          objectArrayType  Ljdk/vm/ci/meta/ResolvedJavaType;
            4    5     5            referentField  Ljdk/vm/ci/meta/ResolvedJavaField;
    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.HotSpotPlatformConfigurationProvider this
        start local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
         0: .line 96
            aload 1 /* node */
            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 97
            iconst_0
            ireturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            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 101
            aload 2 /* base */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifeq 13
         4: .line 102
            aload 1 /* node */
            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 103
            goto 12
         6: .line 104
      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 105
            iconst_1
            ireturn
         8: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            instanceof org.graalvm.compiler.nodes.java.AbstractNewObjectNode
            ifeq 11
         9: .line 108
            aload 1 /* node */
            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 109
            iconst_0
            ireturn
        11: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            astore 3 /* pred */
        12: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            ifnonnull 6
        end local 3 // org.graalvm.compiler.graph.Node pred
        13: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            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 /* node */
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        14: .line 115
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.nodes.memory.FixedAccessNode node
        end local 0 // org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/graalvm/compiler/hotspot/meta/HotSpotPlatformConfigurationProvider;
            0   15     1  node  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
      node  
}
SourceFile: "HotSpotPlatformConfigurationProvider.java"
NestMembers:
  org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$1  org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$2
InnerClasses:
  org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$1
  org.graalvm.compiler.hotspot.meta.HotSpotPlatformConfigurationProvider$2