public abstract class org.graalvm.compiler.core.gen.NodeMatchRules
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.core.gen.NodeMatchRules
  super_class: java.lang.Object
{
  org.graalvm.compiler.core.gen.NodeLIRBuilder lirBuilder;
    descriptor: Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
    flags: (0x0000) 

  protected final org.graalvm.compiler.lir.gen.LIRGeneratorTool gen;
    descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected void <init>(org.graalvm.compiler.lir.gen.LIRGeneratorTool);
    descriptor: (Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
         0: .line 111
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 112
            aload 0 /* this */
            aload 1 /* gen */
            putfield org.graalvm.compiler.core.gen.NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
         2: .line 113
            return
        end local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;
            0    3     1   gen  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    MethodParameters:
      Name  Flags
      gen   

  protected org.graalvm.compiler.lir.gen.LIRGeneratorTool getLIRGeneratorTool();
    descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
         0: .line 116
            aload 0 /* this */
            getfield org.graalvm.compiler.core.gen.NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            areturn
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;

  protected final jdk.vm.ci.meta.Value operand(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
        start local 1 // org.graalvm.compiler.graph.Node node
         0: .line 126
            aload 0 /* this */
            getfield org.graalvm.compiler.core.gen.NodeMatchRules.lirBuilder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;
            0    1     1  node  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  protected final org.graalvm.compiler.lir.LIRFrameState state(org.graalvm.compiler.nodes.DeoptimizingNode);
    descriptor: (Lorg/graalvm/compiler/nodes/DeoptimizingNode;)Lorg/graalvm/compiler/lir/LIRFrameState;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.DeoptimizingNode deopt
         0: .line 130
            aload 0 /* this */
            getfield org.graalvm.compiler.core.gen.NodeMatchRules.lirBuilder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            aload 1 /* deopt */
            invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.state:(Lorg/graalvm/compiler/nodes/DeoptimizingNode;)Lorg/graalvm/compiler/lir/LIRFrameState;
            areturn
        end local 1 // org.graalvm.compiler.nodes.DeoptimizingNode deopt
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;
            0    1     1  deopt  Lorg/graalvm/compiler/nodes/DeoptimizingNode;
    MethodParameters:
       Name  Flags
      deopt  

  protected final org.graalvm.compiler.lir.LabelRef getLIRBlock(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.FixedNode b
         0: .line 134
            aload 0 /* this */
            getfield org.graalvm.compiler.core.gen.NodeMatchRules.lirBuilder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            aload 1 /* b */
            invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.getLIRBlock:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
            areturn
        end local 1 // org.graalvm.compiler.nodes.FixedNode b
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;
            0    1     1     b  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
      Name  Flags
      b     

  protected final void append(org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
         0: .line 138
            aload 0 /* this */
            getfield org.graalvm.compiler.core.gen.NodeMatchRules.lirBuilder:Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.core.gen.NodeLIRBuilder.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)V
         1: .line 139
            return
        end local 1 // org.graalvm.compiler.lir.LIRInstruction op
        end local 0 // org.graalvm.compiler.core.gen.NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/core/gen/NodeMatchRules;
            0    2     1    op  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      op    
}
SourceFile: "NodeMatchRules.java"
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchableNodes(value = {org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/ConstantNode;, shareable = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/FloatConvertNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/memory/FloatingReadNode;, inputs = {"address"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/IfNode;, inputs = {"condition"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/SubNode;, inputs = {"x", "y"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;, inputs = {"x", "y"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/NarrowNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/memory/ReadNode;, inputs = {"address"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/memory/VolatileReadNode;, inputs = {"address"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/ReinterpretNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/SignExtendNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;, inputs = {"x", "y"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/memory/WriteNode;, inputs = {"address", "value"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/AndNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/NegateNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/NotNode;, inputs = {"value"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/FloatEqualsNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/FloatLessThanNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/PointerEqualsNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/AddNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/IntegerBelowNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/IntegerEqualsNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/MulNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/IntegerTestNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/ObjectEqualsNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/OrNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/XorNode;, inputs = {"x", "y"}, commutative = true, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/PiNode;, inputs = {"object"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/java/LogicCompareAndSwapNode;, inputs = {"address", "expectedValue", "newValue"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/java/ValueCompareAndSwapNode;, inputs = {"address", "expectedValue", "newValue"}), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/RightShiftNode;, inputs = {"x", "y"}, ignoresSideEffects = true), org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/nodes/calc/SqrtNode;, inputs = {"value"}, ignoresSideEffects = true)})