public abstract class com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder
  super_class: java.lang.Object
{
  protected final org.graalvm.compiler.options.OptionValues options;
    descriptor: Lorg/graalvm/compiler/options/OptionValues;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.oracle.svm.hosted.SVMHost hostVM;
    descriptor: Lcom/oracle/svm/hosted/SVMHost;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
    descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected com.oracle.svm.core.graal.meta.RuntimeConfiguration runtimeConfig;
    descriptor: Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
    flags: (0x0004) ACC_PROTECTED

  protected org.graalvm.compiler.word.WordTypes wordTypes;
    descriptor: Lorg/graalvm/compiler/word/WordTypes;
    flags: (0x0004) ACC_PROTECTED

  protected final java.util.function.Function<org.graalvm.compiler.phases.util.Providers, com.oracle.svm.core.graal.code.SubstrateBackend> backendProvider;
    descriptor: Ljava/util/function/Function;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/function/Function<Lorg/graalvm/compiler/phases/util/Providers;Lcom/oracle/svm/core/graal/code/SubstrateBackend;>;

  protected final com.oracle.svm.hosted.c.NativeLibraries nativeLibraries;
    descriptor: Lcom/oracle/svm/hosted/c/NativeLibraries;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>(org.graalvm.compiler.options.OptionValues, com.oracle.svm.hosted.SVMHost, jdk.vm.ci.meta.MetaAccessProvider, java.util.function.Function<org.graalvm.compiler.phases.util.Providers, com.oracle.svm.core.graal.code.SubstrateBackend>, com.oracle.svm.hosted.c.NativeLibraries);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Lcom/oracle/svm/hosted/SVMHost;Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/util/function/Function;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // com.oracle.svm.hosted.SVMHost hostVM
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 4 // java.util.function.Function backendProvider
        start local 5 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
         0: .line 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            aload 1 /* options */
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.options:Lorg/graalvm/compiler/options/OptionValues;
         2: .line 92
            aload 0 /* this */
            aload 2 /* hostVM */
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.hostVM:Lcom/oracle/svm/hosted/SVMHost;
         3: .line 93
            aload 0 /* this */
            aload 3 /* metaAccess */
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
         4: .line 94
            aload 0 /* this */
            aload 4 /* backendProvider */
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.backendProvider:Ljava/util/function/Function;
         5: .line 95
            aload 0 /* this */
            aload 5 /* nativeLibraries */
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
         6: .line 96
            return
        end local 5 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
        end local 4 // java.util.function.Function backendProvider
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 2 // com.oracle.svm.hosted.SVMHost hostVM
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0    7     1          options  Lorg/graalvm/compiler/options/OptionValues;
            0    7     2           hostVM  Lcom/oracle/svm/hosted/SVMHost;
            0    7     3       metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0    7     4  backendProvider  Ljava/util/function/Function<Lorg/graalvm/compiler/phases/util/Providers;Lcom/oracle/svm/core/graal/code/SubstrateBackend;>;
            0    7     5  nativeLibraries  Lcom/oracle/svm/hosted/c/NativeLibraries;
    Signature: (Lorg/graalvm/compiler/options/OptionValues;Lcom/oracle/svm/hosted/SVMHost;Ljdk/vm/ci/meta/MetaAccessProvider;Ljava/util/function/Function<Lorg/graalvm/compiler/phases/util/Providers;Lcom/oracle/svm/core/graal/code/SubstrateBackend;>;Lcom/oracle/svm/hosted/c/NativeLibraries;)V
    MethodParameters:
                 Name  Flags
      options          
      hostVM           
      metaAccess       
      backendProvider  
      nativeLibraries  

  public com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder build();
    descriptor: ()Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=20, args_size=1
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
         0: .line 99
            aload 0 /* this */
            new com.oracle.svm.core.graal.word.SubstrateWordTypes
            dup
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic com.oracle.svm.core.FrameAccess.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
            invokespecial com.oracle.svm.core.graal.word.SubstrateWordTypes.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/JavaKind;)V
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
         1: .line 100
            aload 0 /* this */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
        start local 1 // org.graalvm.compiler.phases.util.Providers p
         2: .line 101
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createStampProvider:(Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/nodes/spi/StampProvider;
            astore 2 /* stampProvider */
        start local 2 // org.graalvm.compiler.nodes.spi.StampProvider stampProvider
         3: .line 102
            aload 0 /* this */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aload 2 /* stampProvider */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
         4: .line 103
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createConstantReflectionProvider:(Lorg/graalvm/compiler/phases/util/Providers;)Ljdk/vm/ci/meta/ConstantReflectionProvider;
            astore 3 /* constantReflection */
        start local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         5: .line 104
            aload 0 /* this */
            aconst_null
            aload 3 /* constantReflection */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aload 2 /* stampProvider */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
         6: .line 105
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createConstantFieldProvider:(Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            astore 4 /* constantFieldProvider */
        start local 4 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFieldProvider
         7: .line 106
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createSnippetReflectionProvider:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            astore 5 /* snippetReflection */
        start local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
         8: .line 107
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createForeignCallsProvider:()Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            astore 6 /* foreignCalls */
        start local 6 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
         9: .line 108
            aload 0 /* this */
            aconst_null
            aload 3 /* constantReflection */
            aload 4 /* constantFieldProvider */
            aload 6 /* foreignCalls */
            aconst_null
            aconst_null
            aload 2 /* stampProvider */
            aload 5 /* snippetReflection */
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
        10: .line 109
            ldc Lcom/oracle/svm/core/heap/Heap;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.heap.Heap
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokevirtual com.oracle.svm.core.heap.Heap.createBarrierSet:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/gc/BarrierSet;
            astore 7 /* barrierSet */
        start local 7 // org.graalvm.compiler.nodes.gc.BarrierSet barrierSet
        11: .line 110
            new com.oracle.svm.core.graal.code.SubstratePlatformConfigurationProvider
            dup
            aload 7 /* barrierSet */
            invokespecial com.oracle.svm.core.graal.code.SubstratePlatformConfigurationProvider.<init>:(Lorg/graalvm/compiler/nodes/gc/BarrierSet;)V
            astore 8 /* platformConfig */
        start local 8 // org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider platformConfig
        12: .line 111
            new com.oracle.svm.core.graal.code.SubstrateMetaAccessExtensionProvider
            dup
            invokespecial com.oracle.svm.core.graal.code.SubstrateMetaAccessExtensionProvider.<init>:()V
            astore 9 /* metaAccessExtensionProvider */
        start local 9 // org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider metaAccessExtensionProvider
        13: .line 112
            aload 0 /* this */
            aconst_null
            aload 3 /* constantReflection */
            aload 4 /* constantFieldProvider */
            aload 6 /* foreignCalls */
            aconst_null
            aconst_null
            aload 2 /* stampProvider */
            aload 5 /* snippetReflection */
            aload 8 /* platformConfig */
            aload 9 /* metaAccessExtensionProvider */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
        14: .line 113
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createLoweringProvider:(Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
            astore 10 /* lowerer */
        start local 10 // org.graalvm.compiler.nodes.spi.LoweringProvider lowerer
        15: .line 114
            aload 0 /* this */
            aconst_null
            aload 3 /* constantReflection */
            aload 4 /* constantFieldProvider */
            aload 6 /* foreignCalls */
            aload 10 /* lowerer */
            aconst_null
            aload 2 /* stampProvider */
            aload 5 /* snippetReflection */
            aload 8 /* platformConfig */
            aload 9 /* metaAccessExtensionProvider */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
        16: .line 115
            aload 0 /* this */
            aload 1 /* p */
            aload 5 /* snippetReflection */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createReplacements:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)Lorg/graalvm/compiler/nodes/spi/Replacements;
            astore 11 /* replacements */
        start local 11 // org.graalvm.compiler.nodes.spi.Replacements replacements
        17: .line 116
            aload 0 /* this */
            aconst_null
            aload 3 /* constantReflection */
            aload 4 /* constantFieldProvider */
            aload 6 /* foreignCalls */
            aload 10 /* lowerer */
            aload 11 /* replacements */
            aload 2 /* stampProvider */
            aload 5 /* snippetReflection */
            aload 8 /* platformConfig */
            aload 9 /* metaAccessExtensionProvider */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 1 /* p */
        18: .line 118
            new java.util.EnumMap
            dup
            ldc Lcom/oracle/svm/core/graal/meta/SubstrateRegisterConfig$ConfigKind;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            astore 12 /* backends */
        start local 12 // java.util.EnumMap backends
        19: .line 119
            invokestatic com.oracle.svm.core.graal.meta.SubstrateRegisterConfig$ConfigKind.values:()[Lcom/oracle/svm/core/graal/meta/SubstrateRegisterConfig$ConfigKind;
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 30
      StackMap locals: com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.nodes.spi.StampProvider jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.core.common.spi.ConstantFieldProvider org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.core.common.spi.ForeignCallsProvider org.graalvm.compiler.nodes.gc.BarrierSet org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider org.graalvm.compiler.nodes.spi.LoweringProvider org.graalvm.compiler.nodes.spi.Replacements java.util.EnumMap top int int com.oracle.svm.core.graal.meta.SubstrateRegisterConfig$ConfigKind[]
      StackMap stack:
        20: aload 16
            iload 14
            aaload
            astore 13 /* config */
        start local 13 // com.oracle.svm.core.graal.meta.SubstrateRegisterConfig$ConfigKind config
        21: .line 120
            ldc Lcom/oracle/svm/core/graal/code/SubstrateRegisterConfigFactory;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.graal.code.SubstrateRegisterConfigFactory
            aload 13 /* config */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getTarget:()Lcom/oracle/svm/core/SubstrateTargetDescription;
        22: .line 121
            getstatic com.oracle.svm.core.SubstrateOptions.PreserveFramePointer:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
        23: .line 120
            invokeinterface com.oracle.svm.core.graal.code.SubstrateRegisterConfigFactory.newRegisterFactory:(Lcom/oracle/svm/core/graal/meta/SubstrateRegisterConfig$ConfigKind;Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/TargetDescription;Ljava/lang/Boolean;)Ljdk/vm/ci/code/RegisterConfig;
            astore 17 /* registerConfig */
        start local 17 // jdk.vm.ci.code.RegisterConfig registerConfig
        24: .line 122
            aload 0 /* this */
            aload 17 /* registerConfig */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createCodeCacheProvider:(Ljdk/vm/ci/code/RegisterConfig;)Ljdk/vm/ci/code/CodeCacheProvider;
            astore 18 /* codeCacheProvider */
        start local 18 // jdk.vm.ci.code.CodeCacheProvider codeCacheProvider
        25: .line 124
            aload 0 /* this */
            aload 18 /* codeCacheProvider */
            aload 3 /* constantReflection */
            aload 4 /* constantFieldProvider */
            aload 6 /* foreignCalls */
            aload 10 /* lowerer */
            aload 11 /* replacements */
            aload 2 /* stampProvider */
        26: .line 125
            aload 5 /* snippetReflection */
            aload 8 /* platformConfig */
            aload 9 /* metaAccessExtensionProvider */
        27: .line 124
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.createProviders:(Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
            astore 19 /* newProviders */
        start local 19 // org.graalvm.compiler.phases.util.Providers newProviders
        28: .line 126
            aload 12 /* backends */
            aload 13 /* config */
            invokestatic com.oracle.svm.core.graal.GraalConfiguration.instance:()Lcom/oracle/svm/core/graal/GraalConfiguration;
            aload 19 /* newProviders */
            invokevirtual com.oracle.svm.core.graal.GraalConfiguration.createBackend:(Lorg/graalvm/compiler/phases/util/Providers;)Lcom/oracle/svm/core/graal/code/SubstrateBackend;
            invokevirtual java.util.EnumMap.put:(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 19 // org.graalvm.compiler.phases.util.Providers newProviders
        end local 18 // jdk.vm.ci.code.CodeCacheProvider codeCacheProvider
        end local 17 // jdk.vm.ci.code.RegisterConfig registerConfig
        end local 13 // com.oracle.svm.core.graal.meta.SubstrateRegisterConfig$ConfigKind config
        29: .line 119
            iinc 14 1
      StackMap locals:
      StackMap stack:
        30: iload 14
            iload 15
            if_icmplt 20
        31: .line 129
            aload 0 /* this */
            new com.oracle.svm.core.graal.meta.RuntimeConfiguration
            dup
            aload 1 /* p */
            aload 5 /* snippetReflection */
            aload 12 /* backends */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            invokespecial com.oracle.svm.core.graal.meta.RuntimeConfiguration.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljava/util/EnumMap;Lorg/graalvm/compiler/word/WordTypes;)V
            putfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.runtimeConfig:Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
        32: .line 130
            aload 0 /* this */
            areturn
        end local 12 // java.util.EnumMap backends
        end local 11 // org.graalvm.compiler.nodes.spi.Replacements replacements
        end local 10 // org.graalvm.compiler.nodes.spi.LoweringProvider lowerer
        end local 9 // org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider metaAccessExtensionProvider
        end local 8 // org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider platformConfig
        end local 7 // org.graalvm.compiler.nodes.gc.BarrierSet barrierSet
        end local 6 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
        end local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 4 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFieldProvider
        end local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 2 // org.graalvm.compiler.nodes.spi.StampProvider stampProvider
        end local 1 // org.graalvm.compiler.phases.util.Providers p
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   33     0                         this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            2   33     1                            p  Lorg/graalvm/compiler/phases/util/Providers;
            3   33     2                stampProvider  Lorg/graalvm/compiler/nodes/spi/StampProvider;
            5   33     3           constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            7   33     4        constantFieldProvider  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            8   33     5            snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            9   33     6                 foreignCalls  Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
           11   33     7                   barrierSet  Lorg/graalvm/compiler/nodes/gc/BarrierSet;
           12   33     8               platformConfig  Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;
           13   33     9  metaAccessExtensionProvider  Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
           15   33    10                      lowerer  Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
           17   33    11                 replacements  Lorg/graalvm/compiler/nodes/spi/Replacements;
           19   33    12                     backends  Ljava/util/EnumMap<Lcom/oracle/svm/core/graal/meta/SubstrateRegisterConfig$ConfigKind;Lcom/oracle/svm/core/graal/code/SubstrateBackend;>;
           21   29    13                       config  Lcom/oracle/svm/core/graal/meta/SubstrateRegisterConfig$ConfigKind;
           24   29    17               registerConfig  Ljdk/vm/ci/code/RegisterConfig;
           25   29    18            codeCacheProvider  Ljdk/vm/ci/code/CodeCacheProvider;
           28   29    19                 newProviders  Lorg/graalvm/compiler/phases/util/Providers;

  public org.graalvm.compiler.word.WordTypes getWordTypes();
    descriptor: ()Lorg/graalvm/compiler/word/WordTypes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
         0: .line 134
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
            areturn
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;

  protected org.graalvm.compiler.phases.util.Providers createProviders(jdk.vm.ci.code.CodeCacheProvider, jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.core.common.spi.ConstantFieldProvider, org.graalvm.compiler.core.common.spi.ForeignCallsProvider, org.graalvm.compiler.nodes.spi.LoweringProvider, org.graalvm.compiler.nodes.spi.Replacements, org.graalvm.compiler.nodes.spi.StampProvider, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider, org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider);
    descriptor: (Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/phases/util/Providers;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=14, locals=11, args_size=11
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // jdk.vm.ci.code.CodeCacheProvider codeCache
        start local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 3 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFieldProvider
        start local 4 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
        start local 5 // org.graalvm.compiler.nodes.spi.LoweringProvider lowerer
        start local 6 // org.graalvm.compiler.nodes.spi.Replacements replacements
        start local 7 // org.graalvm.compiler.nodes.spi.StampProvider stampProvider
        start local 8 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 9 // org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider platformConfigurationProvider
        start local 10 // org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider metaAccessExtensionProvider
         0: .line 140
            new org.graalvm.compiler.phases.util.Providers
            dup
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* codeCache */
            aload 2 /* constantReflection */
            aload 3 /* constantFieldProvider */
            aload 4 /* foreignCalls */
            aload 5 /* lowerer */
            aload 6 /* replacements */
            aload 7 /* stampProvider */
            aload 9 /* platformConfigurationProvider */
         1: .line 141
            aload 10 /* metaAccessExtensionProvider */
            aload 8 /* snippetReflection */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.wordTypes:Lorg/graalvm/compiler/word/WordTypes;
         2: .line 140
            invokespecial org.graalvm.compiler.phases.util.Providers.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/word/WordTypes;)V
            areturn
        end local 10 // org.graalvm.compiler.core.common.spi.MetaAccessExtensionProvider metaAccessExtensionProvider
        end local 9 // org.graalvm.compiler.nodes.spi.PlatformConfigurationProvider platformConfigurationProvider
        end local 8 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 7 // org.graalvm.compiler.nodes.spi.StampProvider stampProvider
        end local 6 // org.graalvm.compiler.nodes.spi.Replacements replacements
        end local 5 // org.graalvm.compiler.nodes.spi.LoweringProvider lowerer
        end local 4 // org.graalvm.compiler.core.common.spi.ForeignCallsProvider foreignCalls
        end local 3 // org.graalvm.compiler.core.common.spi.ConstantFieldProvider constantFieldProvider
        end local 2 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 1 // jdk.vm.ci.code.CodeCacheProvider codeCache
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    3     0                           this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0    3     1                      codeCache  Ljdk/vm/ci/code/CodeCacheProvider;
            0    3     2             constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0    3     3          constantFieldProvider  Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
            0    3     4                   foreignCalls  Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            0    3     5                        lowerer  Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
            0    3     6                   replacements  Lorg/graalvm/compiler/nodes/spi/Replacements;
            0    3     7                  stampProvider  Lorg/graalvm/compiler/nodes/spi/StampProvider;
            0    3     8              snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0    3     9  platformConfigurationProvider  Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;
            0    3    10    metaAccessExtensionProvider  Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
    MethodParameters:
                               Name  Flags
      codeCache                      
      constantReflection             
      constantFieldProvider          
      foreignCalls                   
      lowerer                        
      replacements                   
      stampProvider                  
      snippetReflection              
      platformConfigurationProvider  
      metaAccessExtensionProvider    

  public com.oracle.svm.core.graal.meta.RuntimeConfiguration getRuntimeConfig();
    descriptor: ()Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
         0: .line 145
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.runtimeConfig:Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
            areturn
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;

  protected org.graalvm.compiler.nodes.spi.StampProvider createStampProvider(org.graalvm.compiler.phases.util.Providers);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/nodes/spi/StampProvider;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // org.graalvm.compiler.phases.util.Providers p
         0: .line 149
            new com.oracle.svm.core.graal.meta.SubstrateStampProvider
            dup
            aload 1 /* p */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokespecial com.oracle.svm.core.graal.meta.SubstrateStampProvider.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;)V
            areturn
        end local 1 // org.graalvm.compiler.phases.util.Providers p
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0    1     1     p  Lorg/graalvm/compiler/phases/util/Providers;
    MethodParameters:
      Name  Flags
      p     

  protected abstract jdk.vm.ci.meta.ConstantReflectionProvider createConstantReflectionProvider(org.graalvm.compiler.phases.util.Providers);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;)Ljdk/vm/ci/meta/ConstantReflectionProvider;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p     

  protected abstract org.graalvm.compiler.core.common.spi.ConstantFieldProvider createConstantFieldProvider(org.graalvm.compiler.phases.util.Providers);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p     

  protected org.graalvm.compiler.api.replacements.SnippetReflectionProvider createSnippetReflectionProvider();
    descriptor: ()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
         0: .line 157
            new com.oracle.svm.core.graal.meta.SubstrateSnippetReflectionProvider
            dup
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.getWordTypes:()Lorg/graalvm/compiler/word/WordTypes;
            invokespecial com.oracle.svm.core.graal.meta.SubstrateSnippetReflectionProvider.<init>:(Lorg/graalvm/compiler/word/WordTypes;)V
            areturn
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;

  protected org.graalvm.compiler.core.common.spi.ForeignCallsProvider createForeignCallsProvider();
    descriptor: ()Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
         0: .line 161
            new com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider
            dup
            invokespecial com.oracle.svm.core.graal.meta.SubstrateForeignCallsProvider.<init>:()V
            areturn
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;

  protected org.graalvm.compiler.nodes.spi.LoweringProvider createLoweringProvider(org.graalvm.compiler.phases.util.Providers);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;)Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // org.graalvm.compiler.phases.util.Providers p
         0: .line 165
            aload 1 /* p */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* p */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getForeignCalls:()Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;
            aload 1 /* p */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getPlatformConfigurationProvider:()Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;
            aload 1 /* p */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccessExtensionProvider:()Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;
            invokestatic com.oracle.svm.core.graal.meta.SubstrateLoweringProvider.create:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
            areturn
        end local 1 // org.graalvm.compiler.phases.util.Providers p
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0    1     1     p  Lorg/graalvm/compiler/phases/util/Providers;
    MethodParameters:
      Name  Flags
      p     

  protected abstract org.graalvm.compiler.nodes.spi.Replacements createReplacements(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)Lorg/graalvm/compiler/nodes/spi/Replacements;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                   Name  Flags
      p                  
      snippetReflection  

  protected abstract jdk.vm.ci.code.CodeCacheProvider createCodeCacheProvider(jdk.vm.ci.code.RegisterConfig);
    descriptor: (Ljdk/vm/ci/code/RegisterConfig;)Ljdk/vm/ci/code/CodeCacheProvider;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                Name  Flags
      registerConfig  

  public void updateLazyState(com.oracle.svm.hosted.meta.HostedMetaAccess);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedMetaAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=2
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // com.oracle.svm.hosted.meta.HostedMetaAccess hMetaAccess
         0: .line 173
            new com.oracle.svm.hosted.config.HybridLayout
            dup
            ldc Lcom/oracle/svm/core/hub/DynamicHub;
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            aload 1 /* hMetaAccess */
            invokespecial com.oracle.svm.hosted.config.HybridLayout.<init>:(Ljava/lang/Class;Lcom/oracle/svm/core/config/ObjectLayout;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;)V
            astore 2 /* hubLayout */
        start local 2 // com.oracle.svm.hosted.config.HybridLayout hubLayout
         1: .line 174
            aload 2 /* hubLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayBaseOffset:()I
            istore 3 /* vtableBaseOffset */
        start local 3 // int vtableBaseOffset
         2: .line 175
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            aload 2 /* hubLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayElementStorageKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.sizeInBytes:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 4 /* vtableEntrySize */
        start local 4 // int vtableEntrySize
         3: .line 176
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokestatic com.oracle.svm.hosted.config.HybridLayout.getTypeIDSlotsFieldOffset:(Lcom/oracle/svm/core/config/ObjectLayout;)I
            istore 5 /* typeIDSlotsOffset */
        start local 5 // int typeIDSlotsOffset
         4: .line 178
            aload 1 /* hMetaAccess */
            ldc Lcom/oracle/svm/core/hub/DynamicHub;
            ldc "componentHub"
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/svm/hosted/meta/HostedField;
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            istore 6 /* componentHubOffset */
        start local 6 // int componentHubOffset
         5: .line 180
            aload 0 /* this */
            ldc Lcom/oracle/svm/core/stack/JavaFrameAnchor;
            ldc "getLastJavaSP"
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.findStructOffset:(Ljava/lang/Class;Ljava/lang/String;)I
            istore 7 /* javaFrameAnchorLastSPOffset */
        start local 7 // int javaFrameAnchorLastSPOffset
         6: .line 181
            aload 0 /* this */
            ldc Lcom/oracle/svm/core/stack/JavaFrameAnchor;
            ldc "getLastJavaIP"
            invokevirtual com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.findStructOffset:(Ljava/lang/Class;Ljava/lang/String;)I
            istore 8 /* javaFrameAnchorLastIPOffset */
        start local 8 // int javaFrameAnchorLastIPOffset
         7: .line 183
            iconst_m1
            istore 9 /* vmThreadStatusOffset */
        start local 9 // int vmThreadStatusOffset
         8: .line 184
            getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 10
         9: .line 185
            ldc Lcom/oracle/svm/hosted/thread/VMThreadMTFeature;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.thread.VMThreadMTFeature
            getstatic com.oracle.svm.core.thread.VMThreads$StatusSupport.statusTL:Lcom/oracle/svm/core/threadlocal/FastThreadLocalInt;
            invokevirtual com.oracle.svm.hosted.thread.VMThreadMTFeature.offsetOf:(Lcom/oracle/svm/core/threadlocal/FastThreadLocal;)I
            istore 9 /* vmThreadStatusOffset */
        10: .line 188
      StackMap locals: com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder com.oracle.svm.hosted.meta.HostedMetaAccess com.oracle.svm.hosted.config.HybridLayout int int int int int int int
      StackMap stack:
            aload 1 /* hMetaAccess */
            ldc Lcom/oracle/svm/core/code/ImageCodeInfo;
            ldc "codeStart"
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/svm/hosted/meta/HostedField;
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getLocation:()I
            istore 10 /* imageCodeInfoCodeStartOffset */
        start local 10 // int imageCodeInfoCodeStartOffset
        11: .line 190
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.runtimeConfig:Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
            iload 3 /* vtableBaseOffset */
            iload 4 /* vtableEntrySize */
            iload 5 /* typeIDSlotsOffset */
            iload 6 /* componentHubOffset */
        12: .line 191
            iload 7 /* javaFrameAnchorLastSPOffset */
            iload 8 /* javaFrameAnchorLastIPOffset */
            iload 9 /* vmThreadStatusOffset */
            iload 10 /* imageCodeInfoCodeStartOffset */
        13: .line 190
            invokevirtual com.oracle.svm.core.graal.meta.RuntimeConfiguration.setLazyState:(IIIIIIII)V
        14: .line 192
            return
        end local 10 // int imageCodeInfoCodeStartOffset
        end local 9 // int vmThreadStatusOffset
        end local 8 // int javaFrameAnchorLastIPOffset
        end local 7 // int javaFrameAnchorLastSPOffset
        end local 6 // int componentHubOffset
        end local 5 // int typeIDSlotsOffset
        end local 4 // int vtableEntrySize
        end local 3 // int vtableBaseOffset
        end local 2 // com.oracle.svm.hosted.config.HybridLayout hubLayout
        end local 1 // com.oracle.svm.hosted.meta.HostedMetaAccess hMetaAccess
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   15     0                          this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0   15     1                   hMetaAccess  Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            1   15     2                     hubLayout  Lcom/oracle/svm/hosted/config/HybridLayout<Lcom/oracle/svm/core/hub/DynamicHub;>;
            2   15     3              vtableBaseOffset  I
            3   15     4               vtableEntrySize  I
            4   15     5             typeIDSlotsOffset  I
            5   15     6            componentHubOffset  I
            6   15     7   javaFrameAnchorLastSPOffset  I
            7   15     8   javaFrameAnchorLastIPOffset  I
            8   15     9          vmThreadStatusOffset  I
           11   15    10  imageCodeInfoCodeStartOffset  I
    MethodParameters:
             Name  Flags
      hMetaAccess  

  private int findStructOffset(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
        start local 1 // java.lang.Class clazz
        start local 2 // java.lang.String accessorName
         0: .line 196
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* clazz */
            aload 2 /* accessorName */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
            checkcast com.oracle.svm.hosted.c.info.AccessorInfo
            astore 3 /* accessorInfo */
        start local 3 // com.oracle.svm.hosted.c.info.AccessorInfo accessorInfo
         1: .line 197
            aload 3 /* accessorInfo */
            invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo.getParent:()Lcom/oracle/svm/hosted/c/info/ElementInfo;
            checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
            astore 4 /* structFieldInfo */
        start local 4 // com.oracle.svm.hosted.c.info.StructFieldInfo structFieldInfo
         2: .line 198
            aload 4 /* structFieldInfo */
            invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getOffsetInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
            invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.getProperty:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         3: ireturn
        end local 4 // com.oracle.svm.hosted.c.info.StructFieldInfo structFieldInfo
        end local 3 // com.oracle.svm.hosted.c.info.AccessorInfo accessorInfo
         4: .line 199
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 3 /* ex */
        start local 3 // java.lang.ReflectiveOperationException ex
         5: .line 200
            aload 3 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.ReflectiveOperationException ex
        end local 2 // java.lang.String accessorName
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.svm.hosted.code.SharedRuntimeConfigurationBuilder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/svm/hosted/code/SharedRuntimeConfigurationBuilder;
            0    6     1            clazz  Ljava/lang/Class<*>;
            0    6     2     accessorName  Ljava/lang/String;
            1    4     3     accessorInfo  Lcom/oracle/svm/hosted/c/info/AccessorInfo;
            2    4     4  structFieldInfo  Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
            5    6     3               ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)I
    MethodParameters:
              Name  Flags
      clazz         
      accessorName  
}
SourceFile: "SharedRuntimeConfigurationBuilder.java"
InnerClasses:
  public final ConfigKind = com.oracle.svm.core.graal.meta.SubstrateRegisterConfig$ConfigKind of com.oracle.svm.core.graal.meta.SubstrateRegisterConfig
  public StatusSupport = com.oracle.svm.core.thread.VMThreads$StatusSupport of com.oracle.svm.core.thread.VMThreads