public abstract class org.graalvm.compiler.replacements.nodes.MacroStateSplitNode extends org.graalvm.compiler.replacements.nodes.MacroNode implements org.graalvm.compiler.nodes.StateSplit, org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode
  super_class: org.graalvm.compiler.replacements.nodes.MacroNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.replacements.nodes.MacroStateSplitNode> 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/MacroStateSplitNode;>;

  protected org.graalvm.compiler.nodes.FrameState stateAfter;
    descriptor: Lorg/graalvm/compiler/nodes/FrameState;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.graph.Node$OptionalInput(value = org.graalvm.compiler.nodeinfo.InputType.State:Lorg/graalvm/compiler/nodeinfo/InputType;)

  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 51
            ldc Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;
            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.MacroStateSplitNode.$assertionsDisabled:Z
         3: .line 53
            ldc Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.replacements.nodes.MacroNode>, 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: (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
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        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 57
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* invokeKind */
            aload 3 /* targetMethod */
            iload 4 /* bci */
            aload 5 /* returnStamp */
            aload 6 /* arguments */
            invokespecial org.graalvm.compiler.replacements.nodes.MacroNode.<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 58
            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 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;
            0    2     1             c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/replacements/nodes/MacroNode;>;
            0    2     2    invokeKind  Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
            0    2     3  targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    2     4           bci  I
            0    2     5   returnStamp  Lorg/graalvm/compiler/core/common/type/StampPair;
            0    2     6     arguments  [Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/replacements/nodes/MacroNode;>;Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/core/common/type/StampPair;[Lorg/graalvm/compiler/nodes/ValueNode;)V
    MethodParameters:
              Name  Flags
      c             
      invokeKind    
      targetMethod  
      bci           
      returnStamp   
      arguments     

  public org.graalvm.compiler.nodes.FrameState stateAfter();
    descriptor: ()Lorg/graalvm/compiler/nodes/FrameState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
         0: .line 62
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.stateAfter:Lorg/graalvm/compiler/nodes/FrameState;
            areturn
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;

  public void setStateAfter(org.graalvm.compiler.nodes.FrameState);
    descriptor: (Lorg/graalvm/compiler/nodes/FrameState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
        start local 1 // org.graalvm.compiler.nodes.FrameState x
         0: .line 67
            getstatic org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.$assertionsDisabled:Z
            ifne 1
            aload 1 /* x */
            ifnull 1
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.FrameState.isAlive:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "frame state must be in a graph"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.stateAfter:Lorg/graalvm/compiler/nodes/FrameState;
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.updateUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)V
         2: .line 69
            aload 0 /* this */
            aload 1 /* x */
            putfield org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.stateAfter:Lorg/graalvm/compiler/nodes/FrameState;
         3: .line 70
            return
        end local 1 // org.graalvm.compiler.nodes.FrameState x
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;
            0    4     1     x  Lorg/graalvm/compiler/nodes/FrameState;
    MethodParameters:
      Name  Flags
      x     

  public boolean hasSideEffect();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
         0: .line 74
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;

  public jdk.internal.vm.compiler.word.LocationIdentity getLocationIdentity();
    descriptor: ()Ljdk/internal/vm/compiler/word/LocationIdentity;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
         0: .line 79
            invokestatic jdk.internal.vm.compiler.word.LocationIdentity.any:()Ljdk/internal/vm/compiler/word/LocationIdentity;
            areturn
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;

  protected void replaceSnippetInvokes(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
         0: .line 83
            aload 1 /* snippetGraph */
            getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 2 /* call */
        start local 2 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
         2: .line 84
            aload 2 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.invoke:()Lorg/graalvm/compiler/nodes/Invoke;
            astore 4 /* invoke */
        start local 4 // org.graalvm.compiler.nodes.Invoke invoke
         3: .line 85
            aload 2 /* call */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.getTargetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 86
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "unexpected invoke %s in snippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         5: .line 88
      StackMap locals: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator org.graalvm.compiler.nodes.Invoke
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.$assertionsDisabled:Z
            ifne 6
            aload 4 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            bipush -3
            if_icmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* snippetGraph */
            new org.graalvm.compiler.nodes.InvokeNode
            dup
            aload 4 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.nodes.MacroStateSplitNode.bci:()I
            invokespecial org.graalvm.compiler.nodes.InvokeNode.<init>:(Lorg/graalvm/compiler/nodes/CallTargetNode;I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.InvokeNode
            astore 5 /* newInvoke */
        start local 5 // org.graalvm.compiler.nodes.InvokeNode newInvoke
         7: .line 91
            aload 5 /* newInvoke */
            aload 4 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.InvokeNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
         8: .line 92
            aload 1 /* snippetGraph */
            aload 4 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.asNode:()Lorg/graalvm/compiler/nodes/FixedNode;
            checkcast org.graalvm.compiler.nodes.InvokeNode
            aload 5 /* newInvoke */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 5 // org.graalvm.compiler.nodes.InvokeNode newInvoke
        end local 4 // org.graalvm.compiler.nodes.Invoke invoke
        end local 2 // org.graalvm.compiler.nodes.java.MethodCallTargetNode call
         9: .line 83
      StackMap locals: org.graalvm.compiler.replacements.nodes.MacroStateSplitNode org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 94
            return
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph snippetGraph
        end local 0 // org.graalvm.compiler.replacements.nodes.MacroStateSplitNode this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/graalvm/compiler/replacements/nodes/MacroStateSplitNode;
            0   11     1  snippetGraph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    9     2          call  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
            3    9     4        invoke  Lorg/graalvm/compiler/nodes/Invoke;
            7    9     5     newInvoke  Lorg/graalvm/compiler/nodes/InvokeNode;
    MethodParameters:
              Name  Flags
      snippetGraph  
}
SourceFile: "MacroStateSplitNode.java"
InnerClasses:
  public abstract OptionalInput = org.graalvm.compiler.graph.Node$OptionalInput of org.graalvm.compiler.graph.Node
  public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode
  public abstract Single = org.graalvm.compiler.nodes.memory.MemoryCheckpoint$Single of org.graalvm.compiler.nodes.memory.MemoryCheckpoint
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo()