public class org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules extends org.graalvm.compiler.core.gen.NodeMatchRules
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules
  super_class: org.graalvm.compiler.core.gen.NodeMatchRules
{
  private static final jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.graph.Node>, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp> nodeOpMap;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;>;

  private static final jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType> shiftTypeMap;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;>;

  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=3, locals=0, args_size=0
         0: .line 61
            ldc Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            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.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
         3: .line 67
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            iconst_5
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
         4: .line 68
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AddNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ADD:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 69
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/SubNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SUB:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 70
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AndNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.AND:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 71
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/OrNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.OR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 72
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/XorNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.XOR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 74
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            iconst_3
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
        10: .line 75
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.LSL:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 76
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/RightShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.ASR:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 77
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.LSR:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 78
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.lir.gen.LIRGeneratorTool);
    descriptor: (Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
         0: .line 81
            aload 0 /* this */
            aload 1 /* gen */
            invokespecial org.graalvm.compiler.core.gen.NodeMatchRules.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
         1: .line 82
            return
        end local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    2     1   gen  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    MethodParameters:
      Name  Flags
      gen   

  protected org.graalvm.compiler.lir.LIRFrameState getState(org.graalvm.compiler.nodes.memory.Access);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/Access;)Lorg/graalvm/compiler/lir/LIRFrameState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.memory.Access access
         0: .line 85
            aload 1 /* access */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 2
         1: .line 86
            aload 0 /* this */
            aload 1 /* access */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.state:(Lorg/graalvm/compiler/nodes/DeoptimizingNode;)Lorg/graalvm/compiler/lir/LIRFrameState;
            areturn
         2: .line 88
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.Access access
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1  access  Lorg/graalvm/compiler/nodes/memory/Access;
    MethodParameters:
        Name  Flags
      access  

  protected jdk.vm.ci.aarch64.AArch64Kind getMemoryKind(org.graalvm.compiler.nodes.memory.Access);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/Access;)Ljdk/vm/ci/aarch64/AArch64Kind;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.memory.Access access
         0: .line 92
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 1 /* access */
            invokeinterface org.graalvm.compiler.nodes.memory.Access.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual org.graalvm.compiler.core.common.LIRKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.aarch64.AArch64Kind
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.Access access
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     1  access  Lorg/graalvm/compiler/nodes/memory/Access;
    MethodParameters:
        Name  Flags
      access  

  private jdk.vm.ci.meta.AllocatableValue moveSp(jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // jdk.vm.ci.meta.AllocatableValue value
         0: .line 96
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            aload 1 /* value */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64LIRGenerator.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            areturn
        end local 1 // jdk.vm.ci.meta.AllocatableValue value
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     1  value  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
       Name  Flags
      value  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitBinaryShift(org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode, boolean);
    descriptor: (Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        start local 4 // boolean isShiftNot
         0: .line 100
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 3 /* shift */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType
            astore 5 /* shiftType */
        start local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType shiftType
         1: .line 101
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 5 /* shiftType */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 102
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 3
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 103
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 4
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 104
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 5
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            aload 3 /* shift */
            aload 1 /* op */
            aload 5 /* shiftType */
            iload 4 /* isShiftNot */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$0(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;ZLorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType shiftType
        end local 4 // boolean isShiftNot
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    6     1          op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            0    6     2       value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     3       shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    6     4  isShiftNot  Z
            1    6     5   shiftType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
    MethodParameters:
            Name  Flags
      op          
      value       
      shift       
      isShiftNot  

  public org.graalvm.compiler.core.match.ComplexMatchResult addSubShift(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
         0: .line 125
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 4 /* op */
        start local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         1: .line 126
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* op */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 127
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBinaryShift:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1  binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    3     2       a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3   shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            1    3     4      op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (UnsignedRightShift=shift b Constant))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      shift   

  public org.graalvm.compiler.core.match.ComplexMatchResult logicShift(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
         0: .line 149
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.nodeOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 4 /* op */
        start local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         1: .line 150
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* op */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 151
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* a */
            if_acmpne 3
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         4: astore 5 /* operand */
        start local 5 // org.graalvm.compiler.nodes.ValueNode operand
         5: .line 152
            aload 5 /* operand */
            instanceof org.graalvm.compiler.nodes.calc.NotNode
            istore 6 /* isShiftNot */
        start local 6 // boolean isShiftNot
         6: .line 153
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            iload 6 /* isShiftNot */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBinaryShift:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 6 // boolean isShiftNot
        end local 5 // org.graalvm.compiler.nodes.ValueNode operand
        end local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     1      binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    7     2           a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     3       shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            1    7     4          op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            5    7     5     operand  Lorg/graalvm/compiler/nodes/ValueNode;
            6    7     6  isShiftNot  Z
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (UnsignedRightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (UnsignedRightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (UnsignedRightShift=shift b Constant)))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      shift   

  public org.graalvm.compiler.core.match.ComplexMatchResult multiplyNegate(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.ValueNode a
        start local 2 // org.graalvm.compiler.nodes.ValueNode b
         0: .line 159
            aload 1 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 2
            aload 2 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 2
         1: .line 160
            aload 0 /* this */
            aload 1 /* a */
            aload 2 /* b */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$1(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         2: .line 162
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode b
        end local 1 // org.graalvm.compiler.nodes.ValueNode a
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1     a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2     b  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Mul (Negate a) b)"), org.graalvm.compiler.core.match.MatchRule(value = "(Negate (Mul a b))")})
    MethodParameters:
      Name  Flags
      a     
      b     

  public org.graalvm.compiler.core.match.ComplexMatchResult multiplyAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ValueNode b
        start local 4 // org.graalvm.compiler.nodes.ValueNode c
         0: .line 168
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kindA */
        start local 5 // jdk.vm.ci.meta.JavaKind kindA
         1: .line 169
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* kindB */
        start local 6 // jdk.vm.ci.meta.JavaKind kindB
         2: .line 170
            aload 4 /* c */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 7 /* kindC */
        start local 7 // jdk.vm.ci.meta.JavaKind kindC
         3: .line 171
            aload 5 /* kindA */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 4
            aload 6 /* kindB */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 4
            aload 7 /* kindC */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 5
         4: .line 172
      StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aconst_null
            areturn
         5: .line 175
      StackMap locals:
      StackMap stack:
            aload 1 /* binary */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 7
         6: .line 176
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$2(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         7: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$3(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 7 // jdk.vm.ci.meta.JavaKind kindC
        end local 6 // jdk.vm.ci.meta.JavaKind kindB
        end local 5 // jdk.vm.ci.meta.JavaKind kindA
        end local 4 // org.graalvm.compiler.nodes.ValueNode c
        end local 3 // org.graalvm.compiler.nodes.ValueNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    8     1  binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    8     2       a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3       b  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     4       c  Lorg/graalvm/compiler/nodes/ValueNode;
            1    8     5   kindA  Ljdk/vm/ci/meta/JavaKind;
            2    8     6   kindB  Ljdk/vm/ci/meta/JavaKind;
            3    8     7   kindC  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary (Mul a b) c)"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary c (Mul a b))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      b       
      c       

  public org.graalvm.compiler.core.aarch64.AArch64LIRGenerator getLIRGeneratorTool();
    descriptor: ()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
         0: .line 183
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            checkcast org.graalvm.compiler.core.aarch64.AArch64LIRGenerator
            areturn
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;

  protected org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator getArithmeticLIRGenerator();
    descriptor: ()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
         0: .line 187
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64LIRGenerator.getArithmetic:()Lorg/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool;
            checkcast org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator
            areturn
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;

  public org.graalvm.compiler.lir.gen.LIRGeneratorTool getLIRGeneratorTool();
    descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private jdk.vm.ci.meta.Value lambda$0(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType, boolean, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;ZLorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=10, locals=13, args_size=7
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 107
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 7 /* a */
        start local 7 // jdk.vm.ci.meta.Value a
         1: .line 108
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 8 /* b */
        start local 8 // jdk.vm.ci.meta.Value b
         2: .line 109
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 7 /* a */
            aastore
            dup
            iconst_1
            aload 8 /* b */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 9 /* result */
        start local 9 // org.graalvm.compiler.lir.Variable result
         3: .line 110
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 10 /* x */
        start local 10 // jdk.vm.ci.meta.AllocatableValue x
         4: .line 111
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 8 /* b */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 11 /* y */
        start local 11 // jdk.vm.ci.meta.AllocatableValue y
         5: .line 112
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 12 /* shiftAmount */
        start local 12 // int shiftAmount
         6: .line 113
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp
            dup
            aload 3
            aload 9 /* result */
            aload 10 /* x */
            aload 11 /* y */
            aload 4
            iload 12 /* shiftAmount */
            iload 5
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp.<init>:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;IZ)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         7: .line 114
            aload 9 /* result */
            areturn
        end local 12 // int shiftAmount
        end local 11 // jdk.vm.ci.meta.AllocatableValue y
        end local 10 // jdk.vm.ci.meta.AllocatableValue x
        end local 9 // org.graalvm.compiler.lir.Variable result
        end local 8 // jdk.vm.ci.meta.Value b
        end local 7 // jdk.vm.ci.meta.Value a
        end local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    8     6      builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    8     7            a  Ljdk/vm/ci/meta/Value;
            2    8     8            b  Ljdk/vm/ci/meta/Value;
            3    8     9       result  Lorg/graalvm/compiler/lir/Variable;
            4    8    10            x  Ljdk/vm/ci/meta/AllocatableValue;
            5    8    11            y  Ljdk/vm/ci/meta/AllocatableValue;
            6    8    12  shiftAmount  I

  private jdk.vm.ci.meta.Value lambda$1(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 3 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 160
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitMNeg:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 3 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     3  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$2(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 176
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitMAdd:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$3(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 178
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitMSub:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
}
SourceFile: "AArch64NodeMatchRules.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ShiftType = org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType of org.graalvm.compiler.asm.aarch64.AArch64Assembler
  public BinaryShiftOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp of org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp