public class org.graalvm.compiler.hotspot.stubs.ForeignCallStub extends org.graalvm.compiler.hotspot.stubs.Stub
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.stubs.ForeignCallStub
  super_class: org.graalvm.compiler.hotspot.stubs.Stub
{
  private final jdk.vm.ci.hotspot.HotSpotJVMCIRuntime jvmciRuntime;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage target;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final boolean prependThread;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>(org.graalvm.compiler.options.OptionValues, jdk.vm.ci.hotspot.HotSpotJVMCIRuntime, org.graalvm.compiler.hotspot.meta.HotSpotProviders, long, org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, boolean, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition, org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability, jdk.internal.vm.compiler.word.LocationIdentity[]);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;JLorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;ZLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;[Ljdk/internal/vm/compiler/word/LocationIdentity;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=16, locals=14, args_size=10
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
        start local 1 // org.graalvm.compiler.options.OptionValues options
        start local 2 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
        start local 3 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        start local 4 // long address
        start local 6 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor
        start local 7 // boolean prependThread
        start local 8 // org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition transition
        start local 9 // org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability reexecutability
        start local 10 // jdk.internal.vm.compiler.word.LocationIdentity[] killedLocations
         0: .line 114
            aload 0 /* this */
            aload 1 /* options */
            aload 3 /* providers */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
            aload 6 /* descriptor */
            lconst_0
         1: .line 115
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.PRESERVES_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.JavaCallee:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            aload 8 /* transition */
            aload 9 /* reexecutability */
            aload 10 /* killedLocations */
         2: .line 114
            invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.create:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/code/CallingConvention$Type;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokespecial org.graalvm.compiler.hotspot.stubs.Stub.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;)V
         3: .line 116
            aload 0 /* this */
            aload 2 /* runtime */
            putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.jvmciRuntime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
         4: .line 117
            aload 0 /* this */
            iload 7 /* prependThread */
            putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
         5: .line 118
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 11 /* metaAccess */
        start local 11 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         6: .line 119
            aload 0 /* this */
            aload 6 /* descriptor */
            invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createTargetParameters:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class;
            astore 12 /* targetParameterTypes */
        start local 12 // java.lang.Class[] targetParameterTypes
         7: .line 120
            new org.graalvm.compiler.core.common.spi.ForeignCallDescriptor
            dup
            new java.lang.StringBuilder
            dup
            aload 6 /* descriptor */
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":C"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* descriptor */
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
            aload 12 /* targetParameterTypes */
            invokespecial org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.<init>:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)V
            astore 13 /* targetSig */
        start local 13 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor targetSig
         8: .line 121
            aload 0 /* this */
            aload 11 /* metaAccess */
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getCodeCache:()Ljdk/vm/ci/hotspot/HotSpotCodeCacheProvider;
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
            aload 3 /* providers */
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
            aload 13 /* targetSig */
            lload 4 /* address */
         9: .line 122
            getstatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect.DESTROYS_REGISTERS:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            getstatic jdk.vm.ci.hotspot.HotSpotCallingConventionType.NativeCall:Ljdk/vm/ci/hotspot/HotSpotCallingConventionType;
            aload 8 /* transition */
            aload 9 /* reexecutability */
            aload 10 /* killedLocations */
        10: .line 121
            invokestatic org.graalvm.compiler.hotspot.HotSpotForeignCallLinkageImpl.create:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;JLorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$RegisterEffect;Ljdk/vm/ci/code/CallingConvention$Type;Ljdk/vm/ci/code/CallingConvention$Type;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;[Ljdk/internal/vm/compiler/word/LocationIdentity;)Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            putfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
        11: .line 123
            return
        end local 13 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor targetSig
        end local 12 // java.lang.Class[] targetParameterTypes
        end local 11 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 10 // jdk.internal.vm.compiler.word.LocationIdentity[] killedLocations
        end local 9 // org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability reexecutability
        end local 8 // org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition transition
        end local 7 // boolean prependThread
        end local 6 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor
        end local 4 // long address
        end local 3 // org.graalvm.compiler.hotspot.meta.HotSpotProviders providers
        end local 2 // jdk.vm.ci.hotspot.HotSpotJVMCIRuntime runtime
        end local 1 // org.graalvm.compiler.options.OptionValues options
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            0   12     1               options  Lorg/graalvm/compiler/options/OptionValues;
            0   12     2               runtime  Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            0   12     3             providers  Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            0   12     4               address  J
            0   12     6            descriptor  Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            0   12     7         prependThread  Z
            0   12     8            transition  Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Transition;
            0   12     9       reexecutability  Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage$Reexecutability;
            0   12    10       killedLocations  [Ljdk/internal/vm/compiler/word/LocationIdentity;
            6   12    11            metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            7   12    12  targetParameterTypes  [Ljava/lang/Class;
            8   12    13             targetSig  Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
    MethodParameters:
                 Name  Flags
      options          
      runtime          
      providers        
      address          
      descriptor       
      prependThread    
      transition       
      reexecutability  
      killedLocations  

  public org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage getTargetLinkage();
    descriptor: ()Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
         0: .line 129
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;

  private java.lang.Class<?>[] createTargetParameters(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor);
    descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
        start local 1 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor
         0: .line 133
            aload 1 /* descriptor */
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getArgumentTypes:()[Ljava/lang/Class;
            astore 2 /* parameters */
        start local 2 // java.lang.Class[] parameters
         1: .line 134
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
            ifeq 6
         2: .line 135
            aload 2 /* parameters */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.Class
            astore 3 /* newParameters */
        start local 3 // java.lang.Class[] newParameters
         3: .line 136
            aload 2 /* parameters */
            iconst_0
            aload 3 /* newParameters */
            iconst_1
            aload 2 /* parameters */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 137
            aload 3 /* newParameters */
            iconst_0
            ldc Lorg/graalvm/compiler/word/Word;
            aastore
         5: .line 138
            aload 3 /* newParameters */
            areturn
        end local 3 // java.lang.Class[] newParameters
         6: .line 140
      StackMap locals: java.lang.Class[]
      StackMap stack:
            aload 2 /* parameters */
            areturn
        end local 2 // java.lang.Class[] parameters
        end local 1 // org.graalvm.compiler.core.common.spi.ForeignCallDescriptor descriptor
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            0    7     1     descriptor  Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            1    7     2     parameters  [Ljava/lang/Class;
            3    6     3  newParameters  [Ljava/lang/Class;
    Signature: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;)[Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      descriptor  

  protected jdk.vm.ci.meta.ResolvedJavaMethod getInstalledCodeOwner();
    descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
         0: .line 145
            aconst_null
            areturn
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;

  protected java.lang.Object debugScopeContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
         0: .line 184
            new org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1.<init>:(Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;)V
            areturn
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;

  protected org.graalvm.compiler.nodes.StructuredGraph getGraph(org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.common.CompilationIdentifier);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/common/CompilationIdentifier;)Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=19, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // org.graalvm.compiler.core.common.CompilationIdentifier compilationId
         0: .line 235
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getWordTypes:()Lorg/graalvm/compiler/hotspot/word/HotSpotWordTypes;
            astore 3 /* wordTypes */
        start local 3 // org.graalvm.compiler.word.WordTypes wordTypes
         1: .line 236
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getArgumentTypes:()[Ljava/lang/Class;
            astore 4 /* args */
        start local 4 // java.lang.Class[] args
         2: .line 237
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getOutgoingCallingConvention:()Ljdk/vm/ci/code/CallingConvention;
            invokevirtual jdk.vm.ci.code.CallingConvention.getReturn:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.core.common.LIRKind.isValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: org.graalvm.compiler.word.WordTypes java.lang.Class[]
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* isObjectResult */
        start local 5 // boolean isObjectResult
         5: .line 239
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.isReexecutable:()Z
            ifne 6
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.isReexecutableOnlyAfterException:()Z
            ifne 6
            iconst_0
            goto 7
      StackMap locals: int
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* shouldClearException */
        start local 6 // boolean shouldClearException
         8: .line 241
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
            checkcast org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider
            astore 7 /* lowerer */
        start local 7 // org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider lowerer
         9: .line 242
            aload 7 /* lowerer */
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider.getForeignCallSnippets:()Lorg/graalvm/compiler/hotspot/stubs/ForeignCallSnippets$Templates;
            astore 8 /* foreignCallSnippets */
        start local 8 // org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates foreignCallSnippets
        10: .line 243
            aload 8 /* foreignCallSnippets */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates.handlePendingException:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 9 /* handlePendingException */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaMethod handlePendingException
        11: .line 244
            aload 8 /* foreignCallSnippets */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates.getAndClearObjectResult:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 10 /* getAndClearObjectResult */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaMethod getAndClearObjectResult
        12: .line 245
            aload 8 /* foreignCallSnippets */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates.verifyObject:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
            invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 11 /* verifyObject */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaMethod verifyObject
        13: .line 246
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.getGraphMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 12 /* thisMethod */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaMethod thisMethod
        14: .line 247
            new org.graalvm.compiler.replacements.GraphKit
            dup
            aload 1 /* debug */
            aload 12 /* thisMethod */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            aload 3 /* wordTypes */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getGraphBuilderPlugins:()Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            aload 2 /* compilationId */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.toString:()Ljava/lang/String;
            invokespecial org.graalvm.compiler.replacements.GraphKit.<init>:(Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/word/WordTypes;Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;Lorg/graalvm/compiler/core/common/CompilationIdentifier;Ljava/lang/String;)V
            astore 13 /* kit */
        start local 13 // org.graalvm.compiler.replacements.GraphKit kit
        15: .line 248
            aload 13 /* kit */
            invokevirtual org.graalvm.compiler.replacements.GraphKit.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 14 /* graph */
        start local 14 // org.graalvm.compiler.nodes.StructuredGraph graph
        16: .line 249
            aload 0 /* this */
            aload 13 /* kit */
            aload 4 /* args */
            invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createParameters:(Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class;)[Lorg/graalvm/compiler/nodes/ParameterNode;
            astore 15 /* params */
        start local 15 // org.graalvm.compiler.nodes.ParameterNode[] params
        17: .line 250
            aload 13 /* kit */
            new org.graalvm.compiler.replacements.nodes.ReadRegisterNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getRegisters:()Lorg/graalvm/compiler/hotspot/meta/HotSpotRegistersProvider;
            invokeinterface org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider.getThreadRegister:()Ljdk/vm/ci/code/Register;
            aload 3 /* wordTypes */
            invokevirtual org.graalvm.compiler.word.WordTypes.getWordKind:()Ljdk/vm/ci/meta/JavaKind;
            iconst_1
            iconst_0
            invokespecial org.graalvm.compiler.replacements.nodes.ReadRegisterNode.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/meta/JavaKind;ZZ)V
            invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.replacements.nodes.ReadRegisterNode
            astore 16 /* thread */
        start local 16 // org.graalvm.compiler.replacements.nodes.ReadRegisterNode thread
        18: .line 251
            aload 0 /* this */
            aload 13 /* kit */
            aload 15 /* params */
            aload 16 /* thread */
            invokevirtual org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createTargetCall:(Lorg/graalvm/compiler/replacements/GraphKit;[Lorg/graalvm/compiler/nodes/ParameterNode;Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;)Lorg/graalvm/compiler/hotspot/nodes/StubForeignCallNode;
            astore 17 /* result */
        start local 17 // org.graalvm.compiler.nodes.ValueNode result
        19: .line 252
            aload 13 /* kit */
            aload 9 /* handlePendingException */
            iconst_3
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 16 /* thread */
            aastore
            dup
            iconst_1
            iload 6 /* shouldClearException */
            aload 14 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            aastore
            dup
            iconst_2
            iload 5 /* isObjectResult */
            aload 14 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forBoolean:(ZLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            aastore
            invokestatic org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createStaticInvoke:(Lorg/graalvm/compiler/replacements/GraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            pop
        20: .line 253
            iload 5 /* isObjectResult */
            ifeq 23
        21: .line 254
            aload 13 /* kit */
            aload 10 /* getAndClearObjectResult */
            iconst_1
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 16 /* thread */
            aastore
            invokestatic org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createStaticInvoke:(Lorg/graalvm/compiler/replacements/GraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            astore 18 /* object */
        start local 18 // org.graalvm.compiler.nodes.InvokeNode object
        22: .line 255
            aload 13 /* kit */
            aload 11 /* verifyObject */
            iconst_1
            anewarray org.graalvm.compiler.nodes.ValueNode
            dup
            iconst_0
            aload 18 /* object */
            aastore
            invokestatic org.graalvm.compiler.hotspot.stubs.ForeignCallStub.createStaticInvoke:(Lorg/graalvm/compiler/replacements/GraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            astore 17 /* result */
        end local 18 // org.graalvm.compiler.nodes.InvokeNode object
        23: .line 257
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int int org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 13 /* kit */
        24: new org.graalvm.compiler.nodes.ReturnNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.linkage:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 25
            aconst_null
            goto 26
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int int org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack: org.graalvm.compiler.replacements.GraphKit new 24 new 24
        25: aload 17 /* result */
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int int org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.replacements.GraphKit org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.ParameterNode[] org.graalvm.compiler.replacements.nodes.ReadRegisterNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack: org.graalvm.compiler.replacements.GraphKit new 24 new 24 org.graalvm.compiler.nodes.ValueNode
        26: invokespecial org.graalvm.compiler.nodes.ReturnNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            pop
        27: .line 258
            aload 1 /* debug */
            iconst_3
            aload 14 /* graph */
            ldc "Initial stub graph"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        28: .line 260
            aload 13 /* kit */
            ldc "Foreign call stub."
            ldc "Backend"
            invokevirtual org.graalvm.compiler.replacements.GraphKit.inlineInvokes:(Ljava/lang/String;Ljava/lang/String;)V
        29: .line 261
            new org.graalvm.compiler.phases.common.RemoveValueProxyPhase
            dup
            invokespecial org.graalvm.compiler.phases.common.RemoveValueProxyPhase.<init>:()V
            aload 14 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.RemoveValueProxyPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        30: .line 263
            aload 1 /* debug */
            iconst_3
            aload 14 /* graph */
            ldc "Stub graph before compilation"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        31: .line 264
            aload 14 /* graph */
        32: areturn
        end local 17 // org.graalvm.compiler.nodes.ValueNode result
        end local 16 // org.graalvm.compiler.replacements.nodes.ReadRegisterNode thread
        end local 15 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 14 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 13 // org.graalvm.compiler.replacements.GraphKit kit
        end local 12 // jdk.vm.ci.meta.ResolvedJavaMethod thisMethod
        end local 11 // jdk.vm.ci.meta.ResolvedJavaMethod verifyObject
        end local 10 // jdk.vm.ci.meta.ResolvedJavaMethod getAndClearObjectResult
        end local 9 // jdk.vm.ci.meta.ResolvedJavaMethod handlePendingException
        end local 8 // org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates foreignCallSnippets
        end local 7 // org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider lowerer
        33: .line 265
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.CompilationIdentifier org.graalvm.compiler.word.WordTypes java.lang.Class[] int int
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        34: .line 266
            aload 7 /* e */
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // boolean shouldClearException
        end local 5 // boolean isObjectResult
        end local 4 // java.lang.Class[] args
        end local 3 // org.graalvm.compiler.word.WordTypes wordTypes
        end local 2 // org.graalvm.compiler.core.common.CompilationIdentifier compilationId
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   35     0                     this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            0   35     1                    debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   35     2            compilationId  Lorg/graalvm/compiler/core/common/CompilationIdentifier;
            1   35     3                wordTypes  Lorg/graalvm/compiler/word/WordTypes;
            2   35     4                     args  [Ljava/lang/Class;
            5   35     5           isObjectResult  Z
            8   35     6     shouldClearException  Z
            9   33     7                  lowerer  Lorg/graalvm/compiler/hotspot/meta/HotSpotLoweringProvider;
           10   33     8      foreignCallSnippets  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallSnippets$Templates;
           11   33     9   handlePendingException  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           12   33    10  getAndClearObjectResult  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           13   33    11             verifyObject  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           14   33    12               thisMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           15   33    13                      kit  Lorg/graalvm/compiler/replacements/GraphKit;
           16   33    14                    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           17   33    15                   params  [Lorg/graalvm/compiler/nodes/ParameterNode;
           18   33    16                   thread  Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
           19   33    17                   result  Lorg/graalvm/compiler/nodes/ValueNode;
           22   23    18                   object  Lorg/graalvm/compiler/nodes/InvokeNode;
           34   35     7                        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    32      33  Class java.lang.Exception
    MethodParameters:
               Name  Flags
      debug          
      compilationId  

  private static org.graalvm.compiler.nodes.InvokeNode createStaticInvoke(org.graalvm.compiler.replacements.GraphKit, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Lorg/graalvm/compiler/replacements/GraphKit;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.replacements.GraphKit kit
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // org.graalvm.compiler.nodes.ValueNode[] args
         0: .line 271
            aload 0 /* kit */
            aload 1 /* method */
            getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Static:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            aconst_null
            bipush -5
            aload 2 /* args */
            invokevirtual org.graalvm.compiler.replacements.GraphKit.createInvoke:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Lorg/graalvm/compiler/java/FrameStateBuilder;I[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode[] args
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.replacements.GraphKit kit
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0     kit  Lorg/graalvm/compiler/replacements/GraphKit;
            0    1     1  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    1     2    args  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
        Name  Flags
      kit     
      method  
      args    

  private jdk.vm.ci.meta.ResolvedJavaMethod getGraphMethod();
    descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
         0: .line 275
            aconst_null
            astore 1 /* thisMethod */
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod thisMethod
         1: .line 276
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            ldc Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* method */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
         3: .line 277
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "getGraph"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         4: .line 278
            aload 1 /* thisMethod */
            ifnonnull 7
         5: .line 279
            aload 2 /* method */
            astore 1 /* thisMethod */
         6: .line 280
            goto 8
         7: .line 281
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "getGraph is ambiguous"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
         8: .line 276
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 2
        10: .line 285
            aload 1 /* thisMethod */
            ifnonnull 12
        11: .line 286
            new java.lang.InternalError
            dup
            ldc "Can't find getGraph"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 288
      StackMap locals: org.graalvm.compiler.hotspot.stubs.ForeignCallStub jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 1 /* thisMethod */
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod thisMethod
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            1   13     1  thisMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            3    8     2      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;

  private org.graalvm.compiler.nodes.ParameterNode[] createParameters(org.graalvm.compiler.replacements.GraphKit, java.lang.Class<?>[]);
    descriptor: (Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class;)[Lorg/graalvm/compiler/nodes/ParameterNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
        start local 1 // org.graalvm.compiler.replacements.GraphKit kit
        start local 2 // java.lang.Class[] args
         0: .line 292
            aload 2 /* args */
            arraylength
            anewarray org.graalvm.compiler.nodes.ParameterNode
            astore 3 /* params */
        start local 3 // org.graalvm.compiler.nodes.ParameterNode[] params
         1: .line 293
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* accessingClass */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType accessingClass
         2: .line 294
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 9
         4: .line 295
      StackMap locals: org.graalvm.compiler.nodes.ParameterNode[] jdk.vm.ci.meta.ResolvedJavaType int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* args */
            iload 5 /* i */
            aaload
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 4 /* accessingClass */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.resolve:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* type */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType type
         5: .line 296
            aload 1 /* kit */
            invokevirtual org.graalvm.compiler.replacements.GraphKit.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 6 /* type */
            iconst_0
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forDeclaredType:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/JavaType;Z)Lorg/graalvm/compiler/core/common/type/StampPair;
            astore 7 /* stamp */
        start local 7 // org.graalvm.compiler.core.common.type.StampPair stamp
         6: .line 297
            aload 1 /* kit */
            new org.graalvm.compiler.nodes.ParameterNode
            dup
            iload 5 /* i */
            aload 7 /* stamp */
            invokespecial org.graalvm.compiler.nodes.ParameterNode.<init>:(ILorg/graalvm/compiler/core/common/type/StampPair;)V
            invokevirtual org.graalvm.compiler.replacements.GraphKit.unique:(Lorg/graalvm/compiler/nodes/calc/FloatingNode;)Lorg/graalvm/compiler/nodes/calc/FloatingNode;
            checkcast org.graalvm.compiler.nodes.ParameterNode
            astore 8 /* param */
        start local 8 // org.graalvm.compiler.nodes.ParameterNode param
         7: .line 298
            aload 3 /* params */
            iload 5 /* i */
            aload 8 /* param */
            aastore
        end local 8 // org.graalvm.compiler.nodes.ParameterNode param
        end local 7 // org.graalvm.compiler.core.common.type.StampPair stamp
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType type
         8: .line 294
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 2 /* args */
            arraylength
            if_icmplt 4
        end local 5 // int i
        10: .line 300
            aload 3 /* params */
            areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType accessingClass
        end local 3 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 2 // java.lang.Class[] args
        end local 1 // org.graalvm.compiler.replacements.GraphKit kit
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            0   11     1             kit  Lorg/graalvm/compiler/replacements/GraphKit;
            0   11     2            args  [Ljava/lang/Class;
            1   11     3          params  [Lorg/graalvm/compiler/nodes/ParameterNode;
            2   11     4  accessingClass  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   10     5               i  I
            5    8     6            type  Ljdk/vm/ci/meta/ResolvedJavaType;
            6    8     7           stamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            7    8     8           param  Lorg/graalvm/compiler/nodes/ParameterNode;
    Signature: (Lorg/graalvm/compiler/replacements/GraphKit;[Ljava/lang/Class<*>;)[Lorg/graalvm/compiler/nodes/ParameterNode;
    MethodParameters:
      Name  Flags
      kit   
      args  

  private org.graalvm.compiler.hotspot.nodes.StubForeignCallNode createTargetCall(org.graalvm.compiler.replacements.GraphKit, org.graalvm.compiler.nodes.ParameterNode[], org.graalvm.compiler.replacements.nodes.ReadRegisterNode);
    descriptor: (Lorg/graalvm/compiler/replacements/GraphKit;[Lorg/graalvm/compiler/nodes/ParameterNode;Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;)Lorg/graalvm/compiler/hotspot/nodes/StubForeignCallNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
        start local 1 // org.graalvm.compiler.replacements.GraphKit kit
        start local 2 // org.graalvm.compiler.nodes.ParameterNode[] params
        start local 3 // org.graalvm.compiler.replacements.nodes.ReadRegisterNode thread
         0: .line 304
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            invokevirtual org.graalvm.compiler.core.common.spi.ForeignCallDescriptor.getResultType:()Ljava/lang/Class;
            invokestatic jdk.vm.ci.meta.JavaKind.fromJavaClass:(Ljava/lang/Class;)Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 4 /* stamp */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp stamp
         1: .line 305
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.prependThread:Z
            ifeq 6
         2: .line 306
            iconst_1
            aload 2 /* params */
            arraylength
            iadd
            anewarray org.graalvm.compiler.nodes.ValueNode
            astore 5 /* targetArguments */
        start local 5 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         3: .line 307
            aload 5 /* targetArguments */
            iconst_0
            aload 3 /* thread */
            aastore
         4: .line 308
            aload 2 /* params */
            iconst_0
            aload 5 /* targetArguments */
            iconst_1
            aload 2 /* params */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 309
            aload 1 /* kit */
            new org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
            aload 4 /* stamp */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 5 /* targetArguments */
            invokespecial org.graalvm.compiler.hotspot.nodes.StubForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         6: .line 311
      StackMap locals: org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 1 /* kit */
            new org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.providers:Lorg/graalvm/compiler/hotspot/meta/HotSpotProviders;
            invokevirtual org.graalvm.compiler.hotspot.meta.HotSpotProviders.getForeignCalls:()Lorg/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProvider;
            aload 4 /* stamp */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.stubs.ForeignCallStub.target:Lorg/graalvm/compiler/hotspot/HotSpotForeignCallLinkage;
            invokeinterface org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage.getDescriptor:()Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
            aload 2 /* params */
            invokespecial org.graalvm.compiler.hotspot.nodes.StubForeignCallNode.<init>:(Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;[Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.replacements.GraphKit.append:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.hotspot.nodes.StubForeignCallNode
            areturn
        end local 4 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 3 // org.graalvm.compiler.replacements.nodes.ReadRegisterNode thread
        end local 2 // org.graalvm.compiler.nodes.ParameterNode[] params
        end local 1 // org.graalvm.compiler.replacements.GraphKit kit
        end local 0 // org.graalvm.compiler.hotspot.stubs.ForeignCallStub this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/graalvm/compiler/hotspot/stubs/ForeignCallStub;
            0    7     1              kit  Lorg/graalvm/compiler/replacements/GraphKit;
            0    7     2           params  [Lorg/graalvm/compiler/nodes/ParameterNode;
            0    7     3           thread  Lorg/graalvm/compiler/replacements/nodes/ReadRegisterNode;
            1    7     4            stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    6     5  targetArguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
        Name  Flags
      kit     
      params  
      thread  
}
SourceFile: "ForeignCallStub.java"
NestMembers:
  org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1  org.graalvm.compiler.hotspot.stubs.ForeignCallStub$DebugScopeContext
InnerClasses:
  public abstract Type = jdk.vm.ci.code.CallingConvention$Type of jdk.vm.ci.code.CallingConvention
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public final Reexecutability = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Reexecutability of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
  public final RegisterEffect = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$RegisterEffect of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
  public final Transition = org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage$Transition of org.graalvm.compiler.hotspot.HotSpotForeignCallLinkage
  public Templates = org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets$Templates of org.graalvm.compiler.hotspot.stubs.ForeignCallSnippets
  org.graalvm.compiler.hotspot.stubs.ForeignCallStub$1
  private DebugScopeContext = org.graalvm.compiler.hotspot.stubs.ForeignCallStub$DebugScopeContext of org.graalvm.compiler.hotspot.stubs.ForeignCallStub
  public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration
  public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate