public final class com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature implements com.oracle.svm.core.graal.GraalFeature
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
  super_class: java.lang.Object
{
  private org.graalvm.compiler.hotspot.HotSpotReplacementsImpl hotSpotSubstrateReplacements;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
         0: .line 162
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;

  public void afterImageWrite(org.graalvm.nativeimage.hosted.Feature$AfterImageWriteAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterImageWriteAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterImageWriteAccess access
         0: .line 177
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterImageWriteAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0    1     1  access  Lorg/graalvm/nativeimage/hosted/Feature$AfterImageWriteAccess;
    MethodParameters:
        Name  Flags
      access  

  public boolean isInConfiguration(org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess access
         0: .line 181
            invokestatic org.graalvm.libgraal.LibGraal.isSupported:()Z
            ifne 2
         1: .line 182
            new java.lang.InternalError
            dup
            ldc "LibGraalFeature is not supported by the current JDK"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 184
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0    3     1  access  Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;
    MethodParameters:
        Name  Flags
      access  

  public java.util.List<java.lang.Class<? extends org.graalvm.nativeimage.hosted.Feature>> getRequiredFeatures();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
         0: .line 189
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/svm/jni/hosted/JNIFeature;
            aastore
            dup
            iconst_1
            ldc Lcom/oracle/svm/graal/hosted/GraalFeature;
            aastore
            dup
            iconst_2
            ldc Lcom/oracle/svm/reflect/hosted/ReflectionFeature;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
    Signature: ()Ljava/util/List<Ljava/lang/Class<+Lorg/graalvm/nativeimage/hosted/Feature;>;>;

  public void duringSetup(org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
         0: .line 201
            ldc Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport
            astore 2 /* registry */
        start local 2 // com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport registry
         1: .line 202
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            astore 3 /* imageClassLoader */
        start local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
         2: .line 203
            aload 2 /* registry */
            aload 3 /* imageClassLoader */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.registerJNIConfiguration:(Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;Lcom/oracle/svm/hosted/ImageClassLoader;)V
         3: .line 205
            invokestatic org.graalvm.collections.EconomicMap.create:()Lorg/graalvm/collections/EconomicMap;
            astore 4 /* descriptors */
        start local 4 // org.graalvm.collections.EconomicMap descriptors
         4: .line 206
            aload 3 /* imageClassLoader */
            ldc Lorg/graalvm/compiler/options/OptionDescriptors;
            iconst_0
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findSubclasses:(Ljava/lang/Class;Z)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* optionsClass */
        start local 5 // java.lang.Class optionsClass
         6: .line 207
            aload 5 /* optionsClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 15
            ldc Lorg/graalvm/compiler/options/OptionDescriptorsMap;
            aload 5 /* optionsClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 15
         7: .line 209
            aload 5 /* optionsClass */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionDescriptors
            invokeinterface org.graalvm.compiler.options.OptionDescriptors.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader org.graalvm.collections.EconomicMap java.lang.Class java.util.Iterator top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.options.OptionDescriptor
            astore 7 /* d */
        start local 7 // org.graalvm.compiler.options.OptionDescriptor d
         9: .line 210
            aload 7 /* d */
            invokevirtual org.graalvm.compiler.options.OptionDescriptor.getOptionKey:()Lorg/graalvm/compiler/options/OptionKey;
            instanceof com.oracle.svm.core.option.HostedOptionKey
            ifne 11
        10: .line 211
            aload 4 /* descriptors */
            aload 7 /* d */
            invokevirtual org.graalvm.compiler.options.OptionDescriptor.getName:()Ljava/lang/String;
            aload 7 /* d */
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // org.graalvm.compiler.options.OptionDescriptor d
        11: .line 209
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        12: .line 214
            goto 15
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader org.graalvm.collections.EconomicMap java.lang.Class java.util.Iterator
      StackMap stack: java.lang.ReflectiveOperationException
        13: astore 7 /* ex */
        start local 7 // java.lang.ReflectiveOperationException ex
        14: .line 215
            aload 7 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.ReflectiveOperationException ex
        end local 5 // java.lang.Class optionsClass
        15: .line 206
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader org.graalvm.collections.EconomicMap top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        16: .line 219
            new org.graalvm.compiler.options.OptionDescriptorsMap
            dup
            aload 4 /* descriptors */
            invokespecial org.graalvm.compiler.options.OptionDescriptorsMap.<init>:(Lorg/graalvm/collections/EconomicMap;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokestatic org.graalvm.compiler.options.OptionsParser.setCachedOptionDescriptors:(Ljava/util/List;)V
        17: .line 220
            return
        end local 4 // org.graalvm.collections.EconomicMap descriptors
        end local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        end local 2 // com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport registry
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0   18     1            access  Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
            1   18     2          registry  Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;
            2   18     3  imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            4   18     4       descriptors  Lorg/graalvm/collections/EconomicMap<Ljava/lang/String;Lorg/graalvm/compiler/options/OptionDescriptor;>;
            6   15     5      optionsClass  Ljava/lang/Class<+Lorg/graalvm/compiler/options/OptionDescriptors;>;
            9   11     7                 d  Lorg/graalvm/compiler/options/OptionDescriptor;
           14   15     7                ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           7    12      13  Class java.lang.ReflectiveOperationException
    MethodParameters:
        Name  Flags
      access  

  private static void registerJNIConfiguration(com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport, com.oracle.svm.hosted.ImageClassLoader);
    descriptor: (Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;Lcom/oracle/svm/hosted/ImageClassLoader;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=17, args_size=2
        start local 0 // com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport registry
        start local 1 // com.oracle.svm.hosted.ImageClassLoader loader
         0: .line 330
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: new com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
            dup
            aload 1 /* loader */
            invokespecial com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.<init>:(Lcom/oracle/svm/hosted/ImageClassLoader;)V
            astore 4 /* source */
        start local 4 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource source
         2: .line 331
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* classes */
        start local 5 // java.util.Map classes
         3: .line 332
            aload 4 /* source */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lines:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 60
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* line */
        start local 6 // java.lang.String line
         5: .line 333
            aload 4 /* source */
            dup
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lineNo:I
            iconst_1
            iadd
            putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lineNo:I
         6: .line 334
            aload 6 /* line */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 8 /* tokens */
        start local 8 // java.lang.String[] tokens
         7: .line 335
            aload 4 /* source */
            aload 8 /* tokens */
            arraylength
            iconst_2
            if_icmplt 8
            iconst_1
            goto 9
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[]
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
         8: iconst_0
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[]
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource int
         9: ldc "Expected at least 2 tokens"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.check:(ZLjava/lang/String;[Ljava/lang/Object;)V
        10: .line 336
            aload 8 /* tokens */
            iconst_1
            aaload
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 9 /* className */
        start local 9 // java.lang.String className
        11: .line 337
            aload 5 /* classes */
            aload 9 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* clazz */
        start local 10 // java.lang.Class clazz
        12: .line 338
            aload 10 /* clazz */
            ifnonnull 17
        13: .line 339
            aload 4 /* source */
            aload 9 /* className */
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 10 /* clazz */
        14: .line 340
            aload 0 /* registry */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 10 /* clazz */
            aastore
            invokeinterface com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport.register:([Ljava/lang/Class;)V
        15: .line 341
            aload 0 /* registry */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 10 /* clazz */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokeinterface com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport.register:([Ljava/lang/Class;)V
        16: .line 342
            aload 5 /* classes */
            aload 9 /* className */
            aload 10 /* clazz */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 345
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 8 /* tokens */
            iconst_0
            aaload
            dup
            astore 11
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1077554975: 18
             94742904: 19
             97427706: 20
              default: 59
          }
      StackMap locals: java.lang.String
      StackMap stack:
        18: aload 11
            ldc "method"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 59
      StackMap locals:
      StackMap stack:
        19: aload 11
            ldc "class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 55
            goto 59
      StackMap locals:
      StackMap stack:
        20: aload 11
            ldc "field"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 59
        21: .line 347
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            aload 8 /* tokens */
            arraylength
            iconst_4
            if_icmpne 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
        22: iconst_0
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[] java.lang.String java.lang.Class java.lang.String
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource int
        23: ldc "Expected 4 tokens for a field"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.check:(ZLjava/lang/String;[Ljava/lang/Object;)V
        24: .line 348
            aload 8 /* tokens */
            iconst_2
            aaload
            astore 12 /* fieldName */
        start local 12 // java.lang.String fieldName
        25: .line 350
            aload 0 /* registry */
            iconst_0
            iconst_0
            iconst_1
            anewarray java.lang.reflect.Field
            dup
            iconst_0
            aload 10 /* clazz */
            aload 12 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aastore
            invokeinterface com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport.register:(ZZ[Ljava/lang/reflect/Field;)V
        26: .line 351
            goto 60
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[] java.lang.String java.lang.Class java.lang.String java.lang.String
      StackMap stack: java.lang.NoSuchFieldException
        27: pop
        28: .line 352
            aload 4 /* source */
            ldc "Field %s.%s not found"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* fieldName */
            aastore
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        29: .line 353
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
            astore 13 /* e */
        start local 13 // java.lang.NoClassDefFoundError e
        30: .line 354
            aload 4 /* source */
            ldc "Could not register field %s.%s: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* fieldName */
            aastore
            dup
            iconst_2
            aload 13 /* e */
            aastore
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 13 // java.lang.NoClassDefFoundError e
        end local 12 // java.lang.String fieldName
        31: .line 359
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            aload 8 /* tokens */
            arraylength
            iconst_4
            if_icmpne 32
            iconst_1
            goto 33
      StackMap locals:
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
        32: iconst_0
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[] java.lang.String java.lang.Class java.lang.String
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource int
        33: ldc "Expected 4 tokens for a method"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.check:(ZLjava/lang/String;[Ljava/lang/Object;)V
        34: .line 360
            aload 8 /* tokens */
            iconst_2
            aaload
            astore 12 /* methodName */
        start local 12 // java.lang.String methodName
        35: .line 361
            new jdk.vm.ci.hotspot.HotSpotSignature
            dup
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 8 /* tokens */
            iconst_3
            aaload
            invokespecial jdk.vm.ci.hotspot.HotSpotSignature.<init>:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;Ljava/lang/String;)V
            astore 13 /* descriptor */
        start local 13 // jdk.vm.ci.hotspot.HotSpotSignature descriptor
        36: .line 362
            aload 13 /* descriptor */
            aconst_null
            invokevirtual jdk.vm.ci.hotspot.HotSpotSignature.toParameterTypes:(Ljdk/vm/ci/meta/JavaType;)[Ljdk/vm/ci/meta/JavaType;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        37: .line 363
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/vm/ci/meta/JavaType.toClassName()Ljava/lang/String; (9 itf)
                  (Ljdk/vm/ci/meta/JavaType;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 4 /* source */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource.findClass(Ljava/lang/String;)Ljava/lang/Class; (5)
                  (Ljava/lang/String;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        38: .line 364
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        39: .line 365
            aload 13 /* descriptor */
            iconst_0
            invokevirtual jdk.vm.ci.hotspot.HotSpotSignature.getParameterCount:(Z)I
            anewarray java.lang.Class
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
        40: .line 362
            astore 14 /* parameters */
        start local 14 // java.lang.Class[] parameters
        41: .line 367
            ldc "<init>"
            aload 12 /* methodName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        42: .line 368
            aload 10 /* clazz */
            aload 14 /* parameters */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 16 /* cons */
        start local 16 // java.lang.reflect.Constructor cons
        43: .line 369
            aload 0 /* registry */
            iconst_1
            anewarray java.lang.reflect.Executable
            dup
            iconst_0
            aload 16 /* cons */
            aastore
            invokeinterface com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport.register:([Ljava/lang/reflect/Executable;)V
        44: .line 370
            ldc Ljava/lang/Throwable;
            aload 10 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 60
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 60
        45: .line 371
            aload 14 /* parameters */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.usedInTranslatedException:([Ljava/lang/Class;)Z
            ifeq 60
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
        46: .line 372
            aload 10 /* clazz */
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeReflection.register:([Ljava/lang/Class;)V
            iconst_1
            anewarray java.lang.reflect.Executable
            dup
            iconst_0
        47: .line 373
            aload 16 /* cons */
            aastore
            invokestatic org.graalvm.nativeimage.hosted.RuntimeReflection.register:([Ljava/lang/reflect/Executable;)V
        end local 16 // java.lang.reflect.Constructor cons
        48: .line 376
            goto 60
        49: .line 377
      StackMap locals: java.lang.String jdk.vm.ci.hotspot.HotSpotSignature java.lang.Class[]
      StackMap stack:
            aload 0 /* registry */
            iconst_1
            anewarray java.lang.reflect.Executable
            dup
            iconst_0
            aload 10 /* clazz */
            aload 12 /* methodName */
            aload 14 /* parameters */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            aastore
            invokeinterface com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport.register:([Ljava/lang/reflect/Executable;)V
        50: .line 379
            goto 60
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
        51: astore 16 /* e */
        start local 16 // java.lang.NoSuchMethodException e
        52: .line 380
            aload 4 /* source */
            ldc "Method %s.%s%s not found: %e"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* methodName */
            aastore
            dup
            iconst_2
            aload 13 /* descriptor */
            aastore
            dup
            iconst_3
            aload 16 /* e */
            aastore
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 16 // java.lang.NoSuchMethodException e
        53: .line 381
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
            astore 16 /* e */
        start local 16 // java.lang.NoClassDefFoundError e
        54: .line 382
            aload 4 /* source */
            ldc "Could not register method %s.%s%s: %e"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 12 /* methodName */
            aastore
            dup
            iconst_2
            aload 13 /* descriptor */
            aastore
            dup
            iconst_3
            aload 16 /* e */
            aastore
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 16 // java.lang.NoClassDefFoundError e
        end local 14 // java.lang.Class[] parameters
        end local 13 // jdk.vm.ci.hotspot.HotSpotSignature descriptor
        end local 12 // java.lang.String methodName
        55: .line 387
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            aload 8 /* tokens */
            arraylength
            iconst_2
            if_icmpne 56
            iconst_1
            goto 57
      StackMap locals:
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
        56: iconst_0
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map java.lang.String java.util.Iterator java.lang.String[] java.lang.String java.lang.Class java.lang.String
      StackMap stack: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource int
        57: ldc "Expected 2 tokens for a class"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.check:(ZLjava/lang/String;[Ljava/lang/Object;)V
        58: .line 388
            goto 60
        59: .line 391
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* tokens */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 10 // java.lang.Class clazz
        end local 9 // java.lang.String className
        end local 8 // java.lang.String[] tokens
        end local 6 // java.lang.String line
        60: .line 332
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // java.util.Map classes
        61: .line 395
            aload 4 /* source */
            ifnull 67
            aload 4 /* source */
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.close:()V
            goto 67
      StackMap locals: com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport com.oracle.svm.hosted.ImageClassLoader java.lang.Throwable java.lang.Throwable com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
      StackMap stack: java.lang.Throwable
        62: astore 2
            aload 4 /* source */
            ifnull 63
            aload 4 /* source */
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.close:()V
        end local 4 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource source
      StackMap locals:
      StackMap stack:
        63: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        64: astore 3
            aload 2
            ifnonnull 65
            aload 3
            astore 2
            goto 66
      StackMap locals:
      StackMap stack:
        65: aload 2
            aload 3
            if_acmpeq 66
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        66: aload 2
            athrow
        67: .line 396
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.svm.hosted.ImageClassLoader loader
        end local 0 // com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport registry
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   68     0    registry  Lcom/oracle/svm/core/jni/JNIRuntimeAccess$JNIRuntimeAccessibilitySupport;
            0   68     1      loader  Lcom/oracle/svm/hosted/ImageClassLoader;
            2   63     4      source  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
            3   61     5     classes  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class<*>;>;
            5   60     6        line  Ljava/lang/String;
            7   60     8      tokens  [Ljava/lang/String;
           11   60     9   className  Ljava/lang/String;
           12   60    10       clazz  Ljava/lang/Class<*>;
           25   31    12   fieldName  Ljava/lang/String;
           30   31    13           e  Ljava/lang/NoClassDefFoundError;
           35   55    12  methodName  Ljava/lang/String;
           36   55    13  descriptor  Ljdk/vm/ci/hotspot/HotSpotSignature;
           41   55    14  parameters  [Ljava/lang/Class;
           43   48    16        cons  Ljava/lang/reflect/Constructor<*>;
           52   53    16           e  Ljava/lang/NoSuchMethodException;
           54   55    16           e  Ljava/lang/NoClassDefFoundError;
      Exception table:
        from    to  target  type
          25    26      27  Class java.lang.NoSuchFieldException
          25    26      29  Class java.lang.NoClassDefFoundError
          41    50      51  Class java.lang.NoSuchMethodException
          41    50      53  Class java.lang.NoClassDefFoundError
           2    61      62  any
           1    64      64  any
    MethodParameters:
          Name  Flags
      registry  
      loader    

  private static boolean usedInTranslatedException(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class[] parameters
         0: .line 403
            aload 0 /* parameters */
            arraylength
            ifeq 2
            aload 0 /* parameters */
            arraylength
            iconst_1
            if_icmpne 1
            aload 0 /* parameters */
            iconst_0
            aaload
            ldc Ljava/lang/String;
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // java.lang.Class[] parameters
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  parameters  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)Z
    MethodParameters:
            Name  Flags
      parameters  

  public void registerLowerings(com.oracle.svm.core.graal.meta.RuntimeConfiguration, org.graalvm.compiler.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, java.util.Map<java.lang.Class<? extends org.graalvm.compiler.graph.Node>, com.oracle.svm.core.graal.snippets.NodeLoweringProvider<?>>, );
    descriptor: (Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljava/util/Map;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // com.oracle.svm.core.graal.meta.RuntimeConfiguration runtimeConfig
        start local 2 // org.graalvm.compiler.options.OptionValues options
        start local 3 // java.lang.Iterable factories
        start local 4 // org.graalvm.compiler.phases.util.Providers substrateProviders
        start local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider substrateSnippetReflection
        start local 6 // java.util.Map lowerings
        start local 7 // boolean hosted
         0: .line 410
            aload 0 /* this */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.getReplacements:()Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
         1: .line 411
            return
        end local 7 // boolean hosted
        end local 6 // java.util.Map lowerings
        end local 5 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider substrateSnippetReflection
        end local 4 // org.graalvm.compiler.phases.util.Providers substrateProviders
        end local 3 // java.lang.Iterable factories
        end local 2 // org.graalvm.compiler.options.OptionValues options
        end local 1 // com.oracle.svm.core.graal.meta.RuntimeConfiguration runtimeConfig
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0    2     1               runtimeConfig  Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;
            0    2     2                     options  Lorg/graalvm/compiler/options/OptionValues;
            0    2     3                   factories  Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
            0    2     4          substrateProviders  Lorg/graalvm/compiler/phases/util/Providers;
            0    2     5  substrateSnippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0    2     6                   lowerings  Ljava/util/Map<Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lcom/oracle/svm/core/graal/snippets/NodeLoweringProvider<*>;>;
            0    2     7                      hosted  Z
    Signature: (Lcom/oracle/svm/core/graal/meta/RuntimeConfiguration;Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljava/util/Map<Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lcom/oracle/svm/core/graal/snippets/NodeLoweringProvider<*>;>;Z)V
    MethodParameters:
                            Name  Flags
      runtimeConfig               
      options                     
      factories                   
      substrateProviders          
      substrateSnippetReflection  
      lowerings                   
      hosted                      

  private void registerMethodSubstitutions(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 414
            aload 2 /* invocationPlugins */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.getBindings:(Z)Lorg/graalvm/collections/EconomicMap;
            invokeinterface org.graalvm.collections.EconomicMap.getEntries:()Lorg/graalvm/collections/MapCursor;
            astore 4 /* cursor */
        start local 4 // org.graalvm.collections.MapCursor cursor
         1: .line 415
            goto 15
         2: .line 416
      StackMap locals: org.graalvm.collections.MapCursor
      StackMap stack:
            aload 4 /* cursor */
            invokeinterface org.graalvm.collections.MapCursor.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* className */
        start local 5 // java.lang.String className
         3: .line 417
            aload 4 /* cursor */
            invokeinterface org.graalvm.collections.MapCursor.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins jdk.vm.ci.meta.MetaAccessProvider org.graalvm.collections.MapCursor java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding
            astore 6 /* binding */
        start local 6 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
         5: .line 418
            aload 6 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.plugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
            ifeq 14
         6: .line 419
            aload 6 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.plugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            checkcast org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
            astore 8 /* plugin */
        start local 8 // org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin plugin
         7: .line 421
            aload 8 /* plugin */
            aload 3 /* metaAccess */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getOriginalMethod:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 9 /* original */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaMethod original
         8: .line 422
            aload 9 /* original */
            ifnull 13
         9: .line 423
            aload 8 /* plugin */
            aload 3 /* metaAccess */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getSubstitute:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 10 /* method */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaMethod method
        10: .line 424
            aload 1 /* debug */
            ldc "Method substitution %s %s"
            aload 10 /* method */
            aload 9 /* original */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 426
            aload 0 /* this */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            aload 8 /* plugin */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.checkRegistered:(Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;)V
        end local 10 // jdk.vm.ci.meta.ResolvedJavaMethod method
        12: .line 427
            goto 14
        13: .line 428
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins jdk.vm.ci.meta.MetaAccessProvider org.graalvm.collections.MapCursor java.lang.String org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding java.util.Iterator org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            new org.graalvm.compiler.debug.GraalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't find original method for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* plugin */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 8 // org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin plugin
        end local 6 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
        14: .line 417
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins jdk.vm.ci.meta.MetaAccessProvider org.graalvm.collections.MapCursor java.lang.String top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // java.lang.String className
        15: .line 415
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins jdk.vm.ci.meta.MetaAccessProvider org.graalvm.collections.MapCursor
      StackMap stack:
            aload 4 /* cursor */
            invokeinterface org.graalvm.collections.MapCursor.advance:()Z
            ifne 2
        16: .line 433
            return
        end local 4 // org.graalvm.collections.MapCursor cursor
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins invocationPlugins
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0   17     1              debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   17     2  invocationPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0   17     3         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1   17     4             cursor  Lorg/graalvm/collections/MapCursor<Ljava/lang/String;Ljava/util/List<Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;>;>;
            3   15     5          className  Ljava/lang/String;
            5   14     6            binding  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;
            7   14     8             plugin  Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
            8   14     9           original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           10   12    10             method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                   Name  Flags
      debug              
      invocationPlugins  
      metaAccess         

  public void beforeAnalysis(org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess access
         0: .line 441
            ldc Lorg/graalvm/compiler/truffle/compiler/hotspot/TruffleCallBoundaryInstrumentationFactory;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         1: .line 442
            ldc Lorg/graalvm/compiler/truffle/compiler/substitutions/GraphBuilderInvocationPluginProvider;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         2: .line 443
            ldc Lorg/graalvm/compiler/truffle/compiler/substitutions/GraphDecoderInvocationPluginProvider;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         3: .line 444
            ldc Lorg/graalvm/compiler/truffle/compiler/PartialEvaluatorConfiguration;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         4: .line 445
            ldc Lorg/graalvm/compiler/hotspot/HotSpotCodeCacheListener;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         5: .line 446
            ldc Lorg/graalvm/compiler/phases/common/jmx/HotSpotMBeanOperationProvider;
            invokestatic org.graalvm.compiler.serviceprovider.GraalServices.load:(Ljava/lang/Class;)Ljava/lang/Iterable;
            pop
         6: .line 448
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl
            astore 2 /* impl */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl impl
         7: .line 449
            aload 2 /* impl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debug */
        start local 3 // org.graalvm.compiler.debug.DebugContext debug
         8: .line 450
            aconst_null
            astore 4
            aconst_null
            astore 5
         9: aload 3 /* debug */
            ldc "SnippetSupportEncode"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* scope */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope scope
        10: .line 451
            aload 0 /* this */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.getGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            astore 7 /* compilerPlugins */
        start local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins compilerPlugins
        11: .line 452
            aload 0 /* this */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.getProviders:()Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 8 /* metaAccess */
        start local 8 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        12: .line 453
            aload 0 /* this */
            aload 3 /* debug */
            aload 7 /* compilerPlugins */
            aload 8 /* metaAccess */
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.registerMethodSubstitutions:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/meta/MetaAccessProvider;)V
        13: .line 456
            invokestatic org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getRuntime:()Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
            invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.newTruffleCompiler:()Lorg/graalvm/compiler/truffle/common/TruffleCompiler;
            checkcast org.graalvm.compiler.truffle.compiler.TruffleCompilerBase
            astore 9 /* truffleCompiler */
        start local 9 // org.graalvm.compiler.truffle.compiler.TruffleCompilerBase truffleCompiler
        14: .line 457
            aload 9 /* truffleCompiler */
            invokeinterface org.graalvm.compiler.truffle.compiler.TruffleCompilerBase.getPartialEvaluator:()Lorg/graalvm/compiler/truffle/compiler/PartialEvaluator;
            invokevirtual org.graalvm.compiler.truffle.compiler.PartialEvaluator.getConfigPrototype:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.getInvocationPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            astore 10 /* trufflePlugins */
        start local 10 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins trufflePlugins
        15: .line 458
            aload 0 /* this */
            aload 3 /* debug */
            aload 10 /* trufflePlugins */
            aload 8 /* metaAccess */
            invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.registerMethodSubstitutions:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljdk/vm/ci/meta/MetaAccessProvider;)V
        end local 10 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins trufflePlugins
        end local 9 // org.graalvm.compiler.truffle.compiler.TruffleCompilerBase truffleCompiler
        end local 8 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins compilerPlugins
        16: .line 459
            aload 6 /* scope */
            ifnull 24
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 24
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 6 /* scope */
            ifnull 18
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope scope
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 4
            ifnonnull 20
            aload 5
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 4
            aload 5
            if_acmpeq 21
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext
      StackMap stack: java.lang.Throwable
        22: astore 4 /* t */
        start local 4 // java.lang.Throwable t
        23: .line 460
            aload 3 /* debug */
            aload 4 /* t */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable t
        24: .line 465
      StackMap locals:
      StackMap stack:
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompiler:()Ljdk/vm/ci/runtime/JVMCICompiler;
            checkcast org.graalvm.compiler.hotspot.HotSpotGraalCompiler
            astore 4 /* compiler */
        start local 4 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
        25: .line 466
            aload 4 /* compiler */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotGraalCompiler.getGraalRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.osArch:Ljava/lang/String;
            astore 5 /* osArch */
        start local 5 // java.lang.String osArch
        26: .line 467
            new java.lang.StringBuilder
            dup
            ldc "."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* osArch */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* archPackage */
        start local 6 // java.lang.String archPackage
        27: .line 469
            ldc Ljdk/vm/ci/services/Services;
            ldc "servicesCache"
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 7 /* servicesCacheField */
        start local 7 // java.lang.reflect.Field servicesCacheField
        28: .line 470
            aload 7 /* servicesCacheField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 8 /* servicesCache */
        start local 8 // java.util.Map servicesCache
        29: .line 471
            aload 6 /* archPackage */
            aload 8 /* servicesCache */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.filterArchitectureServices:(Ljava/lang/String;Ljava/util/Map;)V
        30: .line 472
            aload 8 /* servicesCache */
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GeneratedPluginFactory;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 474
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmple 36
        32: .line 475
            ldc Lorg/graalvm/compiler/serviceprovider/GraalServices;
            ldc "servicesCache"
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 9 /* graalServicesCacheField */
        start local 9 // java.lang.reflect.Field graalServicesCacheField
        33: .line 476
            aload 9 /* graalServicesCacheField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 10 /* graalServicesCache */
        start local 10 // java.util.Map graalServicesCache
        34: .line 477
            aload 6 /* archPackage */
            aload 10 /* graalServicesCache */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.filterArchitectureServices:(Ljava/lang/String;Ljava/util/Map;)V
        35: .line 478
            aload 10 /* graalServicesCache */
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GeneratedPluginFactory;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.util.Map graalServicesCache
        end local 9 // java.lang.reflect.Field graalServicesCacheField
        36: .line 481
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.hotspot.HotSpotGraalCompiler java.lang.String java.lang.String java.lang.reflect.Field java.util.Map
      StackMap stack:
            ldc Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            ldc "cachedHotSpotJVMCIBackendFactories"
            invokestatic com.oracle.svm.util.ReflectionUtil.lookupField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 9 /* cachedHotSpotJVMCIBackendFactoriesField */
        start local 9 // java.lang.reflect.Field cachedHotSpotJVMCIBackendFactoriesField
        37: .line 482
            aload 9 /* cachedHotSpotJVMCIBackendFactoriesField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 10 /* cachedHotSpotJVMCIBackendFactories */
        start local 10 // java.util.List cachedHotSpotJVMCIBackendFactories
        38: .line 483
            aload 10 /* cachedHotSpotJVMCIBackendFactories */
            aload 5 /* osArch */
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/svm/graal/hotspot/libgraal/LibGraalFeature.lambda$2(Ljava/lang/String;Ljdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory;)Z (6)
                  (Ljdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory;)Z
            invokeinterface java.util.List.removeIf:(Ljava/util/function/Predicate;)Z
            pop
        end local 10 // java.util.List cachedHotSpotJVMCIBackendFactories
        end local 9 // java.lang.reflect.Field cachedHotSpotJVMCIBackendFactoriesField
        end local 8 // java.util.Map servicesCache
        end local 7 // java.lang.reflect.Field servicesCacheField
        end local 6 // java.lang.String archPackage
        end local 5 // java.lang.String osArch
        end local 4 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
        39: .line 484
            goto 42
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext
      StackMap stack: java.lang.ReflectiveOperationException
        40: astore 4 /* ex */
        start local 4 // java.lang.ReflectiveOperationException ex
        41: .line 485
            aload 4 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.ReflectiveOperationException ex
        42: .line 489
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.getReplacements:()Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.getProviders:()Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider;
            astore 4 /* foreignCalls */
        start local 4 // org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider foreignCalls
        43: .line 490
            aload 4 /* foreignCalls */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider.getStubs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 46
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider top java.util.Iterator
      StackMap stack:
        44: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.hotspot.stubs.Stub
            astore 5 /* stub */
        start local 5 // org.graalvm.compiler.hotspot.stubs.Stub stub
        45: .line 491
            aload 4 /* foreignCalls */
            aload 5 /* stub */
            invokevirtual org.graalvm.compiler.hotspot.stubs.Stub.getLinkage:()Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallDescriptor;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider.lookupForeignCall:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            pop
        end local 5 // org.graalvm.compiler.hotspot.stubs.Stub stub
        46: .line 490
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        47: .line 494
            aload 0 /* this */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            aload 2 /* impl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.encode:(Lorg/graalvm/compiler/options/OptionValues;)Z
            pop
        48: .line 495
            invokestatic com.oracle.svm.core.RuntimeAssertionsSupport.singleton:()Lcom/oracle/svm/core/RuntimeAssertionsSupport;
            ldc Lorg/graalvm/compiler/nodes/spi/SnippetParameterInfo;
            invokevirtual com.oracle.svm.core.RuntimeAssertionsSupport.desiredAssertionStatus:(Ljava/lang/Class;)Z
            ifne 50
        49: .line 497
            aload 0 /* this */
            getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.hotSpotSubstrateReplacements:Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
            invokevirtual org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.clearSnippetParameterNames:()V
        50: .line 500
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider
      StackMap stack:
            invokestatic org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.getEncodedSnippets:()Lorg/graalvm/compiler/hotspot/EncodedSnippets;
            astore 5 /* encodedSnippets */
        start local 5 // org.graalvm.compiler.hotspot.EncodedSnippets encodedSnippets
        51: .line 501
            aload 5 /* encodedSnippets */
            invokevirtual org.graalvm.compiler.hotspot.EncodedSnippets.getSnippetNodeClasses:()[Lorg/graalvm/compiler/graph/NodeClass;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 55
      StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider org.graalvm.compiler.hotspot.EncodedSnippets top int int org.graalvm.compiler.graph.NodeClass[]
      StackMap stack:
        52: aload 9
            iload 7
            aaload
            astore 6 /* nodeClass */
        start local 6 // org.graalvm.compiler.graph.NodeClass nodeClass
        53: .line 502
            aload 2 /* impl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 6 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.getClazz:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsInHeap:()V
        end local 6 // org.graalvm.compiler.graph.NodeClass nodeClass
        54: .line 501
            iinc 7 1
      StackMap locals:
      StackMap stack:
        55: iload 7
            iload 8
            if_icmplt 52
        56: .line 504
            return
        end local 5 // org.graalvm.compiler.hotspot.EncodedSnippets encodedSnippets
        end local 4 // org.graalvm.compiler.hotspot.meta.HotSpotHostForeignCallsProvider foreignCalls
        end local 3 // org.graalvm.compiler.debug.DebugContext debug
        end local 2 // com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl impl
        end local 1 // org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot                                     Name  Signature
            0   57     0                                     this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0   57     1                                   access  Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;
            7   57     2                                     impl  Lcom/oracle/svm/hosted/FeatureImpl$BeforeAnalysisAccessImpl;
            8   57     3                                    debug  Lorg/graalvm/compiler/debug/DebugContext;
           10   18     6                                    scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           11   16     7                          compilerPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
           12   16     8                               metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
           14   16     9                          truffleCompiler  Lorg/graalvm/compiler/truffle/compiler/TruffleCompilerBase;
           15   16    10                           trufflePlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
           23   24     4                                        t  Ljava/lang/Throwable;
           25   39     4                                 compiler  Lorg/graalvm/compiler/hotspot/HotSpotGraalCompiler;
           26   39     5                                   osArch  Ljava/lang/String;
           27   39     6                              archPackage  Ljava/lang/String;
           28   39     7                       servicesCacheField  Ljava/lang/reflect/Field;
           29   39     8                            servicesCache  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<*>;>;
           33   36     9                  graalServicesCacheField  Ljava/lang/reflect/Field;
           34   36    10                       graalServicesCache  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<*>;>;
           37   39     9  cachedHotSpotJVMCIBackendFactoriesField  Ljava/lang/reflect/Field;
           38   39    10       cachedHotSpotJVMCIBackendFactories  Ljava/util/List<Ljdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory;>;
           41   42     4                                       ex  Ljava/lang/ReflectiveOperationException;
           43   57     4                             foreignCalls  Lorg/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider;
           45   46     5                                     stub  Lorg/graalvm/compiler/hotspot/stubs/Stub;
           51   57     5                          encodedSnippets  Lorg/graalvm/compiler/hotspot/EncodedSnippets;
           53   54     6                                nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
      Exception table:
        from    to  target  type
          10    16      17  any
           9    19      19  any
           8    22      22  Class java.lang.Throwable
          24    39      40  Class java.lang.ReflectiveOperationException
    MethodParameters:
        Name  Flags
      access  

  private static void filterArchitectureServices(java.lang.String, java.util.Map<java.lang.Class<?>, java.util.List<?>>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String archPackage
        start local 1 // java.util.Map services
         0: .line 507
            aload 1 /* services */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         2: .line 508
            aload 2 /* list */
            aload 0 /* archPackage */
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/svm/graal/hotspot/libgraal/LibGraalFeature.lambda$3(Ljava/lang/String;Ljava/lang/Object;)Z (6)
                  (Ljava/lang/Object;)Z
            invokeinterface java.util.List.removeIf:(Ljava/util/function/Predicate;)Z
            pop
        end local 2 // java.util.List list
         3: .line 507
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 516
            return
        end local 1 // java.util.Map services
        end local 0 // java.lang.String archPackage
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  archPackage  Ljava/lang/String;
            0    5     1     services  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<*>;>;
            2    3     2         list  Ljava/util/List<*>;
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<*>;>;)V
    MethodParameters:
             Name  Flags
      archPackage  
      services     

  public void afterAnalysis(org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
         0: .line 520
            aload 1 /* access */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.verifyReachableTruffleClasses:(Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;)V
         1: .line 521
            return
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0    2     1  access  Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;
    MethodParameters:
        Name  Flags
      access  

  public void afterCompilation(org.graalvm.nativeimage.hosted.Feature$AfterCompilationAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterCompilationAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterCompilationAccess access
         0: .line 525
            invokestatic org.graalvm.compiler.hotspot.HotSpotReplacementsImpl.getEncodedSnippets:()Lorg/graalvm/compiler/hotspot/EncodedSnippets;
            astore 2 /* encodedSnippets */
        start local 2 // org.graalvm.compiler.hotspot.EncodedSnippets encodedSnippets
         1: .line 526
            aload 2 /* encodedSnippets */
            aload 1 /* access */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/graalvm/nativeimage/hosted/Feature$AfterCompilationAccess;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/nativeimage/hosted/Feature$CompilationAccess.registerAsImmutable(Ljava/lang/Object;)V (9 itf)
                  (Ljava/lang/Object;)V
            invokevirtual org.graalvm.compiler.hotspot.EncodedSnippets.visitImmutable:(Ljava/util/function/Consumer;)V
         2: .line 527
            return
        end local 2 // org.graalvm.compiler.hotspot.EncodedSnippets encodedSnippets
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterCompilationAccess access
        end local 0 // com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature;
            0    3     1           access  Lorg/graalvm/nativeimage/hosted/Feature$AfterCompilationAccess;
            1    3     2  encodedSnippets  Lorg/graalvm/compiler/hotspot/EncodedSnippets;
    MethodParameters:
        Name  Flags
      access  

  private static void verifyReachableTruffleClasses(org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=1
        start local 0 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
         0: .line 536
            aload 0 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            astore 1 /* universe */
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
         1: .line 537
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* seen */
        start local 2 // java.util.Set seen
         2: .line 538
            aload 1 /* universe */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getMethods:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/graal/pointsto/meta/AnalysisMethod.isRootMethod()Z (5)
                  (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 2 /* seen */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/Set.add(Ljava/lang/Object;)Z (9 itf)
                  (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 539
            new java.util.ArrayDeque
            dup
            aload 2 /* seen */
            invokespecial java.util.ArrayDeque.<init>:(Ljava/util/Collection;)V
            astore 4 /* todo */
        start local 4 // java.util.Deque todo
         4: .line 540
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 5 /* disallowedTypes */
        start local 5 // java.util.SortedSet disallowedTypes
         5: .line 541
            goto 18
         6: .line 542
      StackMap locals: org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisUniverse java.util.Set top java.util.Deque java.util.SortedSet
      StackMap stack:
            aload 4 /* todo */
            invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 6 /* m */
        start local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod m
         7: .line 543
            aload 6 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toClassName:()Ljava/lang/String;
            astore 7 /* className */
        start local 7 // java.lang.String className
         8: .line 544
            aload 7 /* className */
            invokestatic com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature.isAllowedType:(Ljava/lang/String;)Z
            ifne 10
         9: .line 545
            aload 5 /* disallowedTypes */
            aload 7 /* className */
            invokeinterface java.util.SortedSet.add:(Ljava/lang/Object;)Z
            pop
        10: .line 547
      StackMap locals: com.oracle.graal.pointsto.meta.AnalysisMethod java.lang.String
      StackMap stack:
            aload 6 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getTypeFlow:()Lcom/oracle/graal/pointsto/flow/MethodTypeFlow;
            invokevirtual com.oracle.graal.pointsto.flow.MethodTypeFlow.getInvokes:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals: org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisUniverse java.util.Set top java.util.Deque java.util.SortedSet com.oracle.graal.pointsto.meta.AnalysisMethod java.lang.String top java.util.Iterator
      StackMap stack:
        11: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.flow.InvokeTypeFlow
            astore 8 /* invoke */
        start local 8 // com.oracle.graal.pointsto.flow.InvokeTypeFlow invoke
        12: .line 548
            aload 8 /* invoke */
            invokevirtual com.oracle.graal.pointsto.flow.InvokeTypeFlow.getCallees:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 16
      StackMap locals: org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisUniverse java.util.Set top java.util.Deque java.util.SortedSet com.oracle.graal.pointsto.meta.AnalysisMethod java.lang.String com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator top java.util.Iterator
      StackMap stack:
        13: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 10 /* callee */
        start local 10 // com.oracle.graal.pointsto.meta.AnalysisMethod callee
        14: .line 549
            aload 2 /* seen */
            aload 10 /* callee */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 550
            aload 4 /* todo */
            aload 10 /* callee */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // com.oracle.graal.pointsto.meta.AnalysisMethod callee
        16: .line 548
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 8 // com.oracle.graal.pointsto.flow.InvokeTypeFlow invoke
        17: .line 547
      StackMap locals: org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisUniverse java.util.Set top java.util.Deque java.util.SortedSet com.oracle.graal.pointsto.meta.AnalysisMethod java.lang.String top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 7 // java.lang.String className
        end local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        18: .line 541
      StackMap locals: org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.graal.pointsto.meta.AnalysisUniverse java.util.Set top java.util.Deque java.util.SortedSet
      StackMap stack:
            aload 4 /* todo */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 6
        19: .line 555
            aload 5 /* disallowedTypes */
            invokeinterface java.util.SortedSet.isEmpty:()Z
            ifne 21
        20: .line 556
            ldc "Following non allowed Truffle types are reachable on heap: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc ", "
            aload 5 /* disallowedTypes */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        21: .line 558
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.SortedSet disallowedTypes
        end local 4 // java.util.Deque todo
        end local 2 // java.util.Set seen
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisUniverse universe
        end local 0 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0           access  Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;
            1   22     1         universe  Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            2   22     2             seen  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            4   22     4             todo  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            5   22     5  disallowedTypes  Ljava/util/SortedSet<Ljava/lang/String;>;
            7   18     6                m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            8   18     7        className  Ljava/lang/String;
           12   17     8           invoke  Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;
           14   16    10           callee  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      access  

  private static boolean isAllowedType(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String className
         0: .line 561
            aload 0 /* className */
            ldc "com.oracle.truffle."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 562
            aload 0 /* className */
            ldc "com.oracle.truffle.api.nodes."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
            aload 0 /* className */
            ldc "com.oracle.truffle.compiler.enterprise."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
         3: .line 564
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  static org.graalvm.compiler.hotspot.HotSpotReplacementsImpl getReplacements();
    descriptor: ()Lorg/graalvm/compiler/hotspot/HotSpotReplacementsImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=0
         0: .line 568
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompiler:()Ljdk/vm/ci/runtime/JVMCICompiler;
            checkcast org.graalvm.compiler.hotspot.HotSpotGraalCompiler
            astore 0 /* compiler */
        start local 0 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
         1: .line 569
            aload 0 /* compiler */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotGraalCompiler.getGraalRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getHostProviders:()Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            astore 1 /* originalProvider */
        start local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders originalProvider
         2: .line 570
            aload 1 /* originalProvider */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getReplacements:()Lorg/graalvm/compiler/nodes/spi/Replacements;
            checkcast org.graalvm.compiler.hotspot.HotSpotReplacementsImpl
            areturn
        end local 1 // org.graalvm.compiler.hotspot.meta.HotSpotProviders originalProvider
        end local 0 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            1    3     0          compiler  Lorg/graalvm/compiler/hotspot/HotSpotGraalCompiler;
            2    3     1  originalProvider  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;

  private static boolean lambda$2(java.lang.String, jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory);
    descriptor: (Ljava/lang/String;Ljdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory factory
         0: .line 483
            aload 1 /* factory */
            invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory.getArchitecture:()Ljava/lang/String;
            aload 0
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory factory
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     1  factory  Ljdk/vm/ci/hotspot/HotSpotJVMCIBackendFactory;

  private static boolean lambda$3(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
        start local 1 // java.lang.Object o
         0: .line 509
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 510
            aload 2 /* name */
            ldc ".aarch64."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 2
            aload 2 /* name */
            ldc ".sparc."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 2
            aload 2 /* name */
            ldc ".amd64."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 5
         2: .line 511
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            aload 0
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 513
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     1     o  Ljava/lang/Object;
            1    6     2  name  Ljava/lang/String;
}
SourceFile: "LibGraalFeature.java"
NestMembers:
  com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$IsEnabled  com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource  com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$Options
InnerClasses:
  public abstract JNIRuntimeAccessibilitySupport = com.oracle.svm.core.jni.JNIRuntimeAccess$JNIRuntimeAccessibilitySupport of com.oracle.svm.core.jni.JNIRuntimeAccess
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public final IsEnabled = com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$IsEnabled of com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
  JNIConfigSource = com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource of com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
  Options = com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$Options of com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
  public AfterAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public BeforeAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public DuringSetupAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public Binding = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  public abstract AfterAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract AfterCompilationAccess = org.graalvm.nativeimage.hosted.Feature$AfterCompilationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract AfterImageWriteAccess = org.graalvm.nativeimage.hosted.Feature$AfterImageWriteAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract BeforeAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract CompilationAccess = org.graalvm.nativeimage.hosted.Feature$CompilationAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract DuringSetupAccess = org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract IsInConfigurationAccess = org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess of org.graalvm.nativeimage.hosted.Feature