class org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2 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$2
  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.memory.LIRLowerableAccess val$access;
    descriptor: Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

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

  void <init>(org.graalvm.compiler.core.amd64.AMD64NodeMatchRules, org.graalvm.compiler.nodes.memory.LIRLowerableAccess, org.graalvm.compiler.nodes.calc.NarrowNode);
    descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;Lorg/graalvm/compiler/nodes/calc/NarrowNode;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2 this
         0: .line 557
            aload 0 /* this */
            aload 1
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            aload 2
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.val$access:Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
            aload 0 /* this */
            aload 3
            putfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.val$root:Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules$2;
    MethodParameters:
            Name  Flags
      this$0      final
      val$access  final
      val$root    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=6, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2 this
        start local 1 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 560
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.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 2 /* address */
        start local 2 // org.graalvm.compiler.lir.amd64.AMD64AddressValue address
         1: .line 561
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.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$2.val$root:Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.asNode:()Lorg/graalvm/compiler/nodes/calc/FloatingNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.calc.FloatingNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
         2: .line 562
            aload 2 /* address */
            invokevirtual org.graalvm.compiler.lir.amd64.AMD64AddressValue.getBase:()Ljdk/vm/ci/meta/AllocatableValue;
            aload 2 /* address */
            invokevirtual org.graalvm.compiler.lir.amd64.AMD64AddressValue.getIndex:()Ljdk/vm/ci/meta/AllocatableValue;
         3: .line 561
            invokestatic org.graalvm.compiler.core.common.LIRKind.combineDerived:(Lorg/graalvm/compiler/core/common/LIRKind;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 3 /* addressKind */
        start local 3 // org.graalvm.compiler.core.common.LIRKind addressKind
         4: .line 563
            aload 2 /* address */
            aload 3 /* addressKind */
            invokevirtual org.graalvm.compiler.lir.amd64.AMD64AddressValue.withKind:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;
            astore 4 /* newAddress */
        start local 4 // org.graalvm.compiler.lir.amd64.AMD64AddressValue newAddress
         5: .line 564
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.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$2.val$root:Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64LIRGenerator.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 5 /* readKind */
        start local 5 // org.graalvm.compiler.core.common.LIRKind readKind
         6: .line 565
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/amd64/AMD64ArithmeticLIRGenerator;
            aload 5 /* readKind */
            invokevirtual org.graalvm.compiler.core.common.LIRKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.amd64.AMD64Kind
         7: .line 566
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.val$root:Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getResultBits:()I
            aload 4 /* newAddress */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.this$0:Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules;
            aload 0 /* this */
            getfield org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2.val$access:Lorg/graalvm/compiler/nodes/memory/LIRLowerableAccess;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.getState:(Lorg/graalvm/compiler/nodes/memory/Access;)Lorg/graalvm/compiler/lir/LIRFrameState;
         8: .line 565
            invokevirtual org.graalvm.compiler.core.amd64.AMD64ArithmeticLIRGenerator.emitZeroExtendMemory:(Ljdk/vm/ci/amd64/AMD64Kind;ILorg/graalvm/compiler/lir/amd64/AMD64AddressValue;Lorg/graalvm/compiler/lir/LIRFrameState;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 5 // org.graalvm.compiler.core.common.LIRKind readKind
        end local 4 // org.graalvm.compiler.lir.amd64.AMD64AddressValue newAddress
        end local 3 // org.graalvm.compiler.core.common.LIRKind addressKind
        end local 2 // org.graalvm.compiler.lir.amd64.AMD64AddressValue address
        end local 1 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.amd64.AMD64NodeMatchRules$2 this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/graalvm/compiler/core/amd64/AMD64NodeMatchRules$2;
            0    9     1      builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    9     2      address  Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;
            4    9     3  addressKind  Lorg/graalvm/compiler/core/common/LIRKind;
            5    9     4   newAddress  Lorg/graalvm/compiler/lir/amd64/AMD64AddressValue;
            6    9     5     readKind  Lorg/graalvm/compiler/core/common/LIRKind;
    MethodParameters:
         Name  Flags
      builder  
}
SourceFile: "AMD64NodeMatchRules.java"
EnclosingMethod: org.graalvm.compiler.core.amd64.AMD64NodeMatchRules.narrowRead:(Lorg/graalvm/compiler/nodes/calc/NarrowNode;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$2