class org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 implements org.graalvm.compiler.core.match.ComplexMatchResult
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1
  super_class: java.lang.Object
{
  final org.graalvm.compiler.core.amd64.AMD64NodeMatchRules this$0;
    descriptor: Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final org.graalvm.compiler.nodes.IfNode val$ifNode;
    descriptor: Lorg/graalvm/compiler/nodes/IfNode;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.graalvm.compiler.nodes.calc.CompareNode val$compare;
    descriptor: Lorg/graalvm/compiler/nodes/calc/CompareNode;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.graalvm.compiler.nodes.ValueNode val$value;
    descriptor: Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final boolean val$matchedAsConstantFinal;
    descriptor: Z
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.graalvm.compiler.nodes.memory.LIRLowerableAccess val$access;
    descriptor: Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final jdk.vm.ci.amd64.AMD64Kind val$kind;
    descriptor: Ljdk/vm/ci/amd64/AMD64Kind;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.graalvm.compiler.core.common.calc.Condition val$finalCondition;
    descriptor: Lorg/graalvm/compiler/core/common/calc/Condition;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.graalvm.compiler.core.amd64.AMD64NodeMatchRules, org.graalvm.compiler.nodes.IfNode, org.graalvm.compiler.nodes.calc.CompareNode, org.graalvm.compiler.nodes.ValueNode, boolean, org.graalvm.compiler.nodes.memory.LIRLowerableAccess, jdk.vm.ci.amd64.AMD64Kind, org.graalvm.compiler.core.common.calc.Condition);
    descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;ZLorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;Ljdk/vm/ci/amd64/AMD64Kind;Lorg/graalvm/compiler/core/common/calc/Condition;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=9, args_size=9
        start local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 this
         0: .line 169
            aload 0 /* this */
            aload 1
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            aload 2
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$ifNode:Lorg/graalvm/compiler/nodes/IfNode;
            aload 0 /* this */
            aload 3
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$compare:Lorg/graalvm/compiler/nodes/calc/CompareNode;
            aload 0 /* this */
            aload 4
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$value:Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            iload 5
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$matchedAsConstantFinal:Z
            aload 0 /* this */
            aload 6
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$access:Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
            aload 0 /* this */
            aload 7
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$kind:Ljdk/vm/ci/amd64/AMD64Kind;
            aload 0 /* this */
            aload 8
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$finalCondition:Lorg/graalvm/compiler/core/common/calc/Condition;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules$1;
    MethodParameters:
                            Name  Flags
      this$0                      final
      val$ifNode                  final
      val$compare                 final
      val$value                   final
      val$matchedAsConstantFinal  final
      val$access                  final
      val$kind                    final
      val$finalCondition          final

  public jdk.vm.ci.meta.Value evaluate(org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 this
        start local 1 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 172
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$ifNode:Lorg/graalvm/compiler/nodes/IfNode;
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.access$2:(Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
            astore 2 /* trueLabel */
        start local 2 // org.graalvm.compiler.lir.LabelRef trueLabel
         1: .line 173
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$ifNode:Lorg/graalvm/compiler/nodes/IfNode;
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.access$2:(Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
            astore 3 /* falseLabel */
        start local 3 // org.graalvm.compiler.lir.LabelRef falseLabel
         2: .line 174
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$compare:Lorg/graalvm/compiler/nodes/calc/CompareNode;
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
            istore 4 /* unorderedIsTrue */
        start local 4 // boolean unorderedIsTrue
         3: .line 175
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$ifNode:Lorg/graalvm/compiler/nodes/IfNode;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$ifNode:Lorg/graalvm/compiler/nodes/IfNode;
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.IfNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
            dstore 5 /* trueLabelProbability */
        start local 5 // double trueLabelProbability
         4: .line 176
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$value:Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.access$3:(Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 7 /* other */
        start local 7 // jdk.vm.ci.meta.Value other
         5: .line 181
            getstatic org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$matchedAsConstantFinal:Z
            ifeq 6
            aload 7 /* other */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 6
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "expected constant value "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$value:Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 182
      StackMap locals: org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 org.graalvm.compiler.core.gen.NodeLIRBuilder org.graalvm.compiler.lir.LabelRef org.graalvm.compiler.lir.LabelRef int double jdk.vm.ci.meta.Value
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$access:Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
            invokeinterface org.graalvm.compiler.nodes.memory.LIRLowerableAccess.getAddress:()Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.access$3:(Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            checkcast org.graalvm.compiler.lir.amd64.AMD64AddressValue
            astore 8 /* address */
        start local 8 // org.graalvm.compiler.lir.amd64.AMD64AddressValue address
         7: .line 183
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/amd64/AMD64LIRGenerator;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$kind:Ljdk/vm/ci/amd64/AMD64Kind;
            aload 7 /* other */
            aload 8 /* address */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$access:Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.getState:(Lorg/graalvm/compiler/nodes/memory/MemoryAccess;)Lorg/graalvm/compiler/lir/LIRFrameState;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1.val$finalCondition:Lorg/graalvm/compiler/core/common/calc/Condition;
            iload 4 /* unorderedIsTrue */
            aload 2 /* trueLabel */
            aload 3 /* falseLabel */
            dload 5 /* trueLabelProbability */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.emitCompareBranchMemory:(Ljdk/vm/ci/amd64/AMD64Kind;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;Lorg/graalvm/compiler/lir/LIRFrameState;Lorg/graalvm/compiler/core/common/calc/Condition;ZLorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;D)V
         8: .line 184
            aconst_null
            areturn
        end local 8 // org.graalvm.compiler.lir.amd64.AMD64AddressValue address
        end local 7 // jdk.vm.ci.meta.Value other
        end local 5 // double trueLabelProbability
        end local 4 // boolean unorderedIsTrue
        end local 3 // org.graalvm.compiler.lir.LabelRef falseLabel
        end local 2 // org.graalvm.compiler.lir.LabelRef trueLabel
        end local 1 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1 this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules$1;
            0    9     1               builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    9     2             trueLabel  Lorg/graalvm/compiler/lir/LabelRef;
            2    9     3            falseLabel  Lorg/graalvm/compiler/lir/LabelRef;
            3    9     4       unorderedIsTrue  Z
            4    9     5  trueLabelProbability  D
            5    9     7                 other  Ljdk/vm/ci/meta/Value;
            7    9     8               address  Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;
    MethodParameters:
         Name  Flags
      builder  
}
SourceFile: "AMD64NodeMatchRules.java"
EnclosingMethod: org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.emitCompareBranchMemory:(Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
NestHost: org.graalvm.compiler.core.amd64.AMD64NodeMatchRules
InnerClasses:
  org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$1