public final class org.graalvm.compiler.replacements.nodes.MethodHandleNode extends org.graalvm.compiler.replacements.nodes.MacroStateSplitNode implements org.graalvm.compiler.graph.spi.Simplifiable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.replacements.nodes.MethodHandleNode
  super_class: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.replacements.nodes.MethodHandleNode> TYPE;
    descriptor: Lorg/graalvm/compiler/graph/NodeClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/replacements/nodes/MethodHandleNode;>;

  protected final jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod;
    descriptor: Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 63
            ldc Lorg/graalvm/compiler/replacements/nodes/MethodHandleNode;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$assertionsDisabled:Z
         3: .line 64
            ldc Lorg/graalvm/compiler/replacements/nodes/MethodHandleNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, org.graalvm.compiler.nodes.CallTargetNode$InvokeKind, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.replacements.nodes.MethodHandleNode this
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 2 // org.graalvm.compiler.nodes.CallTargetNode$InvokeKind invokeKind
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 4 // int bci
        start local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 69
            aload 0 /* this */
            getstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            aload 2 /* invokeKind */
            aload 3 /* targetMethod */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            invokespecial org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)V
         1: .line 70
            aload 0 /* this */
            aload 1 /* intrinsicMethod */
            putfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.intrinsicMethod:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
         2: .line 71
            return
        end local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 4 // int bci
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 2 // org.graalvm.compiler.nodes.CallTargetNode$InvokeKind invokeKind
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 0 // org.graalvm.compiler.replacements.nodes.MethodHandleNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/graalvm/compiler/replacements/nodes/MethodHandleNode;
            0    3     1  intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0    3     2       invokeKind  Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            0    3     3     targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    3     4              bci  I
            0    3     5      returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    3     6        arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                 Name  Flags
      intrinsicMethod  
      invokeKind       
      targetMethod     
      bci              
      returnStamp      
      arguments        

  public static org.graalvm.compiler.nodes.InvokeNode tryResolveTargetInvoke(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.MethodHandleAccessProvider, jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        start local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 4 // int bci
        start local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 88
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod:()[I
            aload 2 /* intrinsicMethod */
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 1
                    2: 2
                    3: 2
                    4: 2
                    5: 2
              default: 3
          }
         1: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* assumptions */
            aload 2 /* intrinsicMethod */
            aload 1 /* methodHandleAccess */
            aload 3 /* original */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getInvokeBasicTarget:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* assumptions */
            aload 2 /* intrinsicMethod */
            aload 1 /* methodHandleAccess */
            aload 3 /* original */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getLinkToTarget:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
         3: .line 97
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 4 // int bci
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0         assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    4     1  methodHandleAccess  Ljdk/vm/ci/meta/MethodHandleAccessProvider;
            0    4     2     intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0    4     3            original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    4     4                 bci  I
            0    4     5         returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    4     6           arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                    Name  Flags
      assumptions         
      methodHandleAccess  
      intrinsicMethod     
      original            
      bci                 
      returnStamp         
      arguments           

  public void simplify(org.graalvm.compiler.graph.spi.SimplifierTool);
    descriptor: (Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.replacements.nodes.MethodHandleNode this
        start local 1 // org.graalvm.compiler.graph.spi.SimplifierTool tool
         0: .line 103
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.SimplifierTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.getMethodHandleAccess:()Ljdk/vm/ci/meta/MethodHandleAccessProvider;
            astore 2 /* methodHandleAccess */
        start local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
         1: .line 104
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.arguments:Lorg/graalvm/compiler/graph/NodeInputList;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.arguments:Lorg/graalvm/compiler/graph/NodeInputList;
            invokevirtual org.graalvm.compiler.graph.NodeInputList.size:()I
            anewarray org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.graph.NodeInputList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode[]
            astore 3 /* argumentsArray */
        start local 3 // org.graalvm.compiler.nodes.ValueNode[] argumentsArray
         2: .line 105
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 2 /* methodHandleAccess */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.intrinsicMethod:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.targetMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.bci:I
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MethodHandleNode.returnStamp:Lorg/graalvm/compiler/core/common/type/StampPair;
            aload 3 /* argumentsArray */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.tryResolveTargetInvoke:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            astore 4 /* invoke */
        start local 4 // org.graalvm.compiler.nodes.InvokeNode invoke
         3: .line 106
            aload 4 /* invoke */
            ifnull 11
         4: .line 107
            getstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$assertionsDisabled:Z
            ifne 5
            aload 4 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.InvokeNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ifnull 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 108
      StackMap locals: jdk.vm.ci.meta.MethodHandleAccessProvider org.graalvm.compiler.nodes.ValueNode[] org.graalvm.compiler.nodes.InvokeNode
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 4 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.InvokeNode
            astore 4 /* invoke */
         6: .line 109
            aload 4 /* invoke */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         7: .line 110
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 5 /* currentNext */
        start local 5 // org.graalvm.compiler.nodes.FixedNode currentNext
         8: .line 111
            aload 0 /* this */
            aload 4 /* invoke */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
         9: .line 112
            aload 0 /* this */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        10: .line 113
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MethodHandleNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 5 /* currentNext */
            aload 4 /* invoke */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 5 // org.graalvm.compiler.nodes.FixedNode currentNext
        11: .line 115
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.nodes.InvokeNode invoke
        end local 3 // org.graalvm.compiler.nodes.ValueNode[] argumentsArray
        end local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        end local 1 // org.graalvm.compiler.graph.spi.SimplifierTool tool
        end local 0 // org.graalvm.compiler.replacements.nodes.MethodHandleNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/graalvm/compiler/replacements/nodes/MethodHandleNode;
            0   12     1                tool  Lorg/graalvm/compiler/graph/spi/SimplifierTool;
            1   12     2  methodHandleAccess  Ljdk/vm/ci/meta/MethodHandleAccessProvider;
            2   12     3      argumentsArray  [Lorg/graalvm/compiler/nodes/ValueNode;
            3   12     4              invoke  Lorg/graalvm/compiler/nodes/InvokeNode;
            8   11     5         currentNext  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
      Name  Flags
      tool  

  private static org.graalvm.compiler.nodes.ValueNode getReceiver(org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: ([Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 123
            aload 0 /* arguments */
            iconst_0
            aaload
            areturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode[] arguments
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
           Name  Flags
      arguments  

  private static org.graalvm.compiler.nodes.ValueNode getMemberName(org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: ([Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 132
            aload 0 /* arguments */
            aload 0 /* arguments */
            arraylength
            iconst_1
            isub
            aaload
            areturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode[] arguments
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
           Name  Flags
      arguments  

  private static org.graalvm.compiler.nodes.InvokeNode getInvokeBasicTarget(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, jdk.vm.ci.meta.MethodHandleAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 4 // int bci
        start local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 143
            aload 6 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getReceiver:([Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* methodHandleNode */
        start local 7 // org.graalvm.compiler.nodes.ValueNode methodHandleNode
         1: .line 144
            aload 7 /* methodHandleNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 3
         2: .line 145
            aload 0 /* assumptions */
            aload 1 /* intrinsicMethod */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            aload 2 /* methodHandleAccess */
            aload 7 /* methodHandleNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            iconst_1
            invokeinterface jdk.vm.ci.meta.MethodHandleAccessProvider.resolveInvokeBasicTarget:(Ljdk/vm/ci/meta/JavaConstant;Z)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 3 /* original */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getTargetInvokeNode:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
         3: .line 147
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aconst_null
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode methodHandleNode
        end local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 4 // int bci
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0         assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    4     1     intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0    4     2  methodHandleAccess  Ljdk/vm/ci/meta/MethodHandleAccessProvider;
            0    4     3            original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    4     4                 bci  I
            0    4     5         returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    4     6           arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            1    4     7    methodHandleNode  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                    Name  Flags
      assumptions         
      intrinsicMethod     
      methodHandleAccess  
      original            
      bci                 
      returnStamp         
      arguments           

  private static org.graalvm.compiler.nodes.InvokeNode getLinkToTarget(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, jdk.vm.ci.meta.MethodHandleAccessProvider, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/MethodHandleAccessProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 4 // int bci
        start local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 160
            aload 6 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getMemberName:([Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* memberNameNode */
        start local 7 // org.graalvm.compiler.nodes.ValueNode memberNameNode
         1: .line 161
            aload 7 /* memberNameNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 3
         2: .line 162
            aload 0 /* assumptions */
            aload 1 /* intrinsicMethod */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            aload 2 /* methodHandleAccess */
            aload 7 /* memberNameNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.MethodHandleAccessProvider.resolveLinkToTarget:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 3 /* original */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getTargetInvokeNode:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
         3: .line 164
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aconst_null
            areturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode memberNameNode
        end local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 4 // int bci
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 2 // jdk.vm.ci.meta.MethodHandleAccessProvider methodHandleAccess
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0         assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    4     1     intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0    4     2  methodHandleAccess  Ljdk/vm/ci/meta/MethodHandleAccessProvider;
            0    4     3            original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    4     4                 bci  I
            0    4     5         returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    4     6           arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            1    4     7      memberNameNode  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                    Name  Flags
      assumptions         
      intrinsicMethod     
      methodHandleAccess  
      original            
      bci                 
      returnStamp         
      arguments           

  private static org.graalvm.compiler.nodes.InvokeNode getTargetInvokeNode(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[], jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=7
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 2 // int bci
        start local 3 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 4 // org.graalvm.compiler.nodes.ValueNode[] originalArguments
        start local 5 // jdk.vm.ci.meta.ResolvedJavaMethod target
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod original
         0: .line 176
            aload 5 /* target */
            ifnonnull 2
         1: .line 177
            aconst_null
            areturn
         2: .line 184
      StackMap locals:
      StackMap stack:
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            astore 7 /* signature */
        start local 7 // jdk.vm.ci.meta.Signature signature
         3: .line 185
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isStatic:()Z
            istore 8 /* isStatic */
        start local 8 // boolean isStatic
         4: .line 186
            iload 8 /* isStatic */
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: jdk.vm.ci.meta.Signature int
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 9 /* receiverSkip */
        start local 9 // int receiverSkip
         7: .line 189
            aload 4 /* originalArguments */
            invokevirtual org.graalvm.compiler.nodes.ValueNode[].clone:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode[]
            astore 10 /* arguments */
        start local 10 // org.graalvm.compiler.nodes.ValueNode[] arguments
         8: .line 192
            iload 8 /* isStatic */
            ifne 11
         9: .line 193
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 11 /* receiverType */
        start local 11 // jdk.vm.ci.meta.JavaType receiverType
        10: .line 194
            aload 0 /* assumptions */
            aload 10 /* arguments */
            iconst_0
            aload 11 /* receiverType */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.maybeCastArgument:(Ljdk/vm/ci/meta/Assumptions;[Lorg/graalvm/compiler/nodes/ValueNode;ILjdk/vm/ci/meta/JavaType;)V
        end local 11 // jdk.vm.ci.meta.JavaType receiverType
        11: .line 198
      StackMap locals: int org.graalvm.compiler.nodes.ValueNode[]
      StackMap stack:
            iconst_0
            istore 11 /* index */
        start local 11 // int index
        12: goto 16
        13: .line 199
      StackMap locals: int
      StackMap stack:
            aload 7 /* signature */
            iload 11 /* index */
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.Signature.getParameterType:(ILjdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
            astore 12 /* parameterType */
        start local 12 // jdk.vm.ci.meta.JavaType parameterType
        14: .line 200
            aload 0 /* assumptions */
            aload 10 /* arguments */
            iload 9 /* receiverSkip */
            iload 11 /* index */
            iadd
            aload 12 /* parameterType */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.maybeCastArgument:(Ljdk/vm/ci/meta/Assumptions;[Lorg/graalvm/compiler/nodes/ValueNode;ILjdk/vm/ci/meta/JavaType;)V
        end local 12 // jdk.vm.ci.meta.JavaType parameterType
        15: .line 198
            iinc 11 /* index */ 1
      StackMap locals:
      StackMap stack:
        16: iload 11 /* index */
            aload 7 /* signature */
            iconst_0
            invokeinterface jdk.vm.ci.meta.Signature.getParameterCount:(Z)I
            if_icmplt 13
        end local 11 // int index
        17: .line 203
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.canBeStaticallyBound:()Z
            ifeq 19
        18: .line 204
            aload 0 /* assumptions */
            aload 1 /* intrinsicMethod */
            aload 5 /* target */
            aload 6 /* original */
            iload 2 /* bci */
            aload 3 /* returnStamp */
            aload 10 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.createTargetInvokeNode:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
        19: .line 208
      StackMap locals:
      StackMap stack:
            aload 1 /* intrinsicMethod */
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_VIRTUAL:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            if_acmpeq 20
            aload 1 /* intrinsicMethod */
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_INTERFACE:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            if_acmpne 27
        20: .line 209
      StackMap locals:
      StackMap stack:
            aload 10 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.getReceiver:([Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* receiver */
        start local 11 // org.graalvm.compiler.nodes.ValueNode receiver
        21: .line 210
            aload 11 /* receiver */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            astore 12 /* receiverType */
        start local 12 // org.graalvm.compiler.core.common.type.TypeReference receiverType
        22: .line 211
            aload 12 /* receiverType */
            ifnull 31
        23: .line 212
            aload 12 /* receiverType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.findUniqueConcreteMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/Assumptions$AssumptionResult;
            astore 13 /* concreteMethod */
        start local 13 // jdk.vm.ci.meta.Assumptions$AssumptionResult concreteMethod
        24: .line 213
            aload 13 /* concreteMethod */
            ifnull 31
            aload 13 /* concreteMethod */
            aload 0 /* assumptions */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.canRecordTo:(Ljdk/vm/ci/meta/Assumptions;)Z
            ifeq 31
        25: .line 214
            aload 13 /* concreteMethod */
            aload 0 /* assumptions */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.recordTo:(Ljdk/vm/ci/meta/Assumptions;)V
        26: .line 215
            aload 0 /* assumptions */
            aload 1 /* intrinsicMethod */
            aload 13 /* concreteMethod */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.getResult:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            aload 6 /* original */
            iload 2 /* bci */
            aload 3 /* returnStamp */
            aload 10 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.createTargetInvokeNode:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
        end local 13 // jdk.vm.ci.meta.Assumptions$AssumptionResult concreteMethod
        end local 12 // org.graalvm.compiler.core.common.type.TypeReference receiverType
        end local 11 // org.graalvm.compiler.nodes.ValueNode receiver
        27: .line 219
      StackMap locals:
      StackMap stack:
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 5 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.findUniqueConcreteMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/Assumptions$AssumptionResult;
            astore 11 /* concreteMethod */
        start local 11 // jdk.vm.ci.meta.Assumptions$AssumptionResult concreteMethod
        28: .line 220
            aload 11 /* concreteMethod */
            ifnull 31
            aload 11 /* concreteMethod */
            aload 0 /* assumptions */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.canRecordTo:(Ljdk/vm/ci/meta/Assumptions;)Z
            ifeq 31
        29: .line 221
            aload 11 /* concreteMethod */
            aload 0 /* assumptions */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.recordTo:(Ljdk/vm/ci/meta/Assumptions;)V
        30: .line 222
            aload 0 /* assumptions */
            aload 1 /* intrinsicMethod */
            aload 11 /* concreteMethod */
            invokevirtual jdk.vm.ci.meta.Assumptions$AssumptionResult.getResult:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            aload 6 /* original */
            iload 2 /* bci */
            aload 3 /* returnStamp */
            aload 10 /* arguments */
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.createTargetInvokeNode:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
            areturn
        end local 11 // jdk.vm.ci.meta.Assumptions$AssumptionResult concreteMethod
        31: .line 226
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 10 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 9 // int receiverSkip
        end local 8 // boolean isStatic
        end local 7 // jdk.vm.ci.meta.Signature signature
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 5 // jdk.vm.ci.meta.ResolvedJavaMethod target
        end local 4 // org.graalvm.compiler.nodes.ValueNode[] originalArguments
        end local 3 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 2 // int bci
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0        assumptions  Ljdk/vm/ci/meta/Assumptions;
            0   32     1    intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0   32     2                bci  I
            0   32     3        returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0   32     4  originalArguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            0   32     5             target  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   32     6           original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            3   32     7          signature  Ljdk/vm/ci/meta/Signature;
            4   32     8           isStatic  Z
            7   32     9       receiverSkip  I
            8   32    10          arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
           10   11    11       receiverType  Ljdk/vm/ci/meta/JavaType;
           12   17    11              index  I
           14   15    12      parameterType  Ljdk/vm/ci/meta/JavaType;
           21   27    11           receiver  Lorg/graalvm/compiler/nodes/ValueNode;
           22   27    12       receiverType  Lorg/graalvm/compiler/core/common/type/TypeReference;
           24   27    13     concreteMethod  Ljdk/vm/ci/meta/Assumptions$AssumptionResult<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
           28   31    11     concreteMethod  Ljdk/vm/ci/meta/Assumptions$AssumptionResult<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
    MethodParameters:
                   Name  Flags
      assumptions        
      intrinsicMethod    
      bci                
      returnStamp        
      originalArguments  
      target             
      original           

  private static void maybeCastArgument(jdk.vm.ci.meta.Assumptions, org.graalvm.compiler.nodes.ValueNode[], int, jdk.vm.ci.meta.JavaType);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;[Lorg/graalvm/compiler/nodes/ValueNode;ILjdk/vm/ci/meta/JavaType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // org.graalvm.compiler.nodes.ValueNode[] arguments
        start local 2 // int index
        start local 3 // jdk.vm.ci.meta.JavaType type
         0: .line 237
            aload 3 /* type */
            instanceof jdk.vm.ci.meta.ResolvedJavaType
            ifeq 8
         1: .line 238
            aload 0 /* assumptions */
            aload 3 /* type */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            invokestatic org.graalvm.compiler.core.common.type.TypeReference.create:(Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            astore 4 /* targetType */
        start local 4 // org.graalvm.compiler.core.common.type.TypeReference targetType
         2: .line 239
            aload 1 /* arguments */
            iload 2 /* index */
            aaload
            astore 5 /* argument */
        start local 5 // org.graalvm.compiler.nodes.ValueNode argument
         3: .line 245
            aload 4 /* targetType */
            ifnull 8
            aload 4 /* targetType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isPrimitive:()Z
            ifne 8
            aload 5 /* argument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isPrimitive:()Z
            ifne 8
         4: .line 246
            aload 5 /* argument */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* argumentType */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType argumentType
         5: .line 247
            aload 6 /* argumentType */
            ifnull 6
            aload 6 /* argumentType */
            aload 4 /* targetType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 8
            aload 6 /* argumentType */
            aload 4 /* targetType */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 8
         6: .line 248
      StackMap locals: org.graalvm.compiler.core.common.type.TypeReference org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            new org.graalvm.compiler.nodes.PiNode
            dup
            aload 5 /* argument */
            aload 4 /* targetType */
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            invokespecial org.graalvm.compiler.nodes.PiNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)V
            astore 7 /* piNode */
        start local 7 // org.graalvm.compiler.nodes.PiNode piNode
         7: .line 249
            aload 1 /* arguments */
            iload 2 /* index */
            aload 7 /* piNode */
            aastore
        end local 7 // org.graalvm.compiler.nodes.PiNode piNode
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType argumentType
        end local 5 // org.graalvm.compiler.nodes.ValueNode argument
        end local 4 // org.graalvm.compiler.core.common.type.TypeReference targetType
         8: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 3 // jdk.vm.ci.meta.JavaType type
        end local 2 // int index
        end local 1 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0   assumptions  Ljdk/vm/ci/meta/Assumptions;
            0    9     1     arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     2         index  I
            0    9     3          type  Ljdk/vm/ci/meta/JavaType;
            2    8     4    targetType  Lorg/graalvm/compiler/core/common/type/TypeReference;
            3    8     5      argument  Lorg/graalvm/compiler/nodes/ValueNode;
            5    8     6  argumentType  Ljdk/vm/ci/meta/ResolvedJavaType;
            7    8     7        piNode  Lorg/graalvm/compiler/nodes/PiNode;
    MethodParameters:
             Name  Flags
      assumptions  
      arguments    
      index        
      type         

  private static org.graalvm.compiler.nodes.InvokeNode createTargetInvokeNode(jdk.vm.ci.meta.Assumptions, jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.core.common.type.StampPair, org.graalvm.compiler.nodes.ValueNode[]);
    descriptor: (Ljdk/vm/ci/meta/Assumptions;Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/InvokeNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=7
        start local 0 // jdk.vm.ci.meta.Assumptions assumptions
        start local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod target
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 4 // int bci
        start local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        start local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
         0: .line 263
            aload 2 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isStatic:()Z
            ifeq 1
            getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Static:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Special:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.CallTargetNode$InvokeKind
         2: astore 7 /* targetInvokeKind */
        start local 7 // org.graalvm.compiler.nodes.CallTargetNode$InvokeKind targetInvokeKind
         3: .line 264
            aload 2 /* target */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            aconst_null
            invokeinterface jdk.vm.ci.meta.Signature.getReturnType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
            astore 8 /* targetReturnType */
        start local 8 // jdk.vm.ci.meta.JavaType targetReturnType
         4: .line 269
            invokestatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod:()[I
            aload 1 /* intrinsicMethod */
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 5
                    2: 7
                    3: 7
                    4: 7
                    5: 7
              default: 9
          }
         5: .line 271
      StackMap locals: org.graalvm.compiler.nodes.CallTargetNode$InvokeKind jdk.vm.ci.meta.JavaType
      StackMap stack:
            aload 6 /* arguments */
            astore 9 /* targetArguments */
        start local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         6: .line 272
            goto 10
        end local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         7: .line 277
      StackMap locals:
      StackMap stack:
            aload 6 /* arguments */
            iconst_0
            aload 6 /* arguments */
            arraylength
            iconst_1
            isub
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode[]
            astore 9 /* targetArguments */
        start local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         8: .line 278
            goto 10
        end local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
         9: .line 280
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
        10: .line 282
      StackMap locals: org.graalvm.compiler.nodes.ValueNode[]
      StackMap stack:
            aload 0 /* assumptions */
            aload 8 /* targetReturnType */
            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 10 /* targetReturnStamp */
        start local 10 // org.graalvm.compiler.core.common.type.StampPair targetReturnStamp
        11: .line 284
            aload 7 /* targetInvokeKind */
            aload 2 /* target */
            aload 9 /* targetArguments */
            aload 10 /* targetReturnStamp */
            aload 3 /* original */
            aload 6 /* arguments */
            aload 5 /* returnStamp */
            invokestatic org.graalvm.compiler.replacements.nodes.ResolvedMethodHandleCallTargetNode.create:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/StampPair;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/StampPair;)Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            astore 11 /* callTarget */
        start local 11 // org.graalvm.compiler.nodes.java.MethodCallTargetNode callTarget
        12: .line 291
            aload 5 /* returnStamp */
            invokevirtual org.graalvm.compiler.core.common.type.StampPair.getTrustedStamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 14
        13: .line 292
            new org.graalvm.compiler.nodes.InvokeNode
            dup
            aload 11 /* callTarget */
            iload 4 /* bci */
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forVoid:()Lorg/graalvm/compiler/core/common/type/Stamp;
            invokespecial org.graalvm.compiler.nodes.InvokeNode.<init>:(Lorg/graalvm/compiler/nodes/CallTargetNode;ILorg/graalvm/compiler/core/common/type/Stamp;)V
            areturn
        14: .line 294
      StackMap locals: org.graalvm.compiler.core.common.type.StampPair org.graalvm.compiler.nodes.java.MethodCallTargetNode
      StackMap stack:
            new org.graalvm.compiler.nodes.InvokeNode
            dup
            aload 11 /* callTarget */
            iload 4 /* bci */
            invokespecial org.graalvm.compiler.nodes.InvokeNode.<init>:(Lorg/graalvm/compiler/nodes/CallTargetNode;I)V
            areturn
        end local 11 // org.graalvm.compiler.nodes.java.MethodCallTargetNode callTarget
        end local 10 // org.graalvm.compiler.core.common.type.StampPair targetReturnStamp
        end local 9 // org.graalvm.compiler.nodes.ValueNode[] targetArguments
        end local 8 // jdk.vm.ci.meta.JavaType targetReturnType
        end local 7 // org.graalvm.compiler.nodes.CallTargetNode$InvokeKind targetInvokeKind
        end local 6 // org.graalvm.compiler.nodes.ValueNode[] arguments
        end local 5 // org.graalvm.compiler.core.common.type.StampPair returnStamp
        end local 4 // int bci
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod target
        end local 1 // jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod intrinsicMethod
        end local 0 // jdk.vm.ci.meta.Assumptions assumptions
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0        assumptions  Ljdk/vm/ci/meta/Assumptions;
            0   15     1    intrinsicMethod  Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            0   15     2             target  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   15     3           original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   15     4                bci  I
            0   15     5        returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0   15     6          arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            3   15     7   targetInvokeKind  Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            4   15     8   targetReturnType  Ljdk/vm/ci/meta/JavaType;
            6    7     9    targetArguments  [Lorg/graalvm/compiler/nodes/ValueNode;
            8    9     9    targetArguments  [Lorg/graalvm/compiler/nodes/ValueNode;
           10   15     9    targetArguments  [Lorg/graalvm/compiler/nodes/ValueNode;
           11   15    10  targetReturnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
           12   15    11         callTarget  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
    MethodParameters:
                 Name  Flags
      assumptions      
      intrinsicMethod  
      target           
      original         
      bci              
      returnStamp      
      arguments        

  static int[] $SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 63
            getstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.values:()[Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.INVOKE_BASIC:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_INTERFACE:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iconst_5
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_SPECIAL:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_STATIC:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.LINK_TO_VIRTUAL:Ljdk/vm/ci/meta/MethodHandleAccessProvider$IntrinsicMethod;
            invokevirtual jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.graalvm.compiler.replacements.nodes.MethodHandleNode.$SWITCH_TABLE$jdk$vm$ci$meta$MethodHandleAccessProvider$IntrinsicMethod:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "MethodHandleNode.java"
InnerClasses:
  public AssumptionResult = jdk.vm.ci.meta.Assumptions$AssumptionResult of jdk.vm.ci.meta.Assumptions
  public final IntrinsicMethod = jdk.vm.ci.meta.MethodHandleAccessProvider$IntrinsicMethod of jdk.vm.ci.meta.MethodHandleAccessProvider
  public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_UNKNOWN:Lorg/graalvm/compiler/nodeinfo/NodeSize;)