public class org.graalvm.compiler.core.amd64.AMD64AddressLowering extends org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.amd64.AMD64AddressLowering
  super_class: org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering
{
  private static final int ADDRESS_BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  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 43
            ldc Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
            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.amd64.AMD64AddressLowering.$assertionsDisabled:Z
         3: .line 44
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
         0: .line 43
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;

  public org.graalvm.compiler.nodes.memory.address.AddressNode lower(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
        start local 1 // org.graalvm.compiler.nodes.ValueNode base
        start local 2 // org.graalvm.compiler.nodes.ValueNode offset
         0: .line 48
            new org.graalvm.compiler.core.amd64.AMD64AddressNode
            dup
            aload 1 /* base */
            aload 2 /* offset */
            invokespecial org.graalvm.compiler.core.amd64.AMD64AddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 3 /* ret */
        start local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
         1: .line 49
            aload 1 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 53
      StackMap locals: org.graalvm.compiler.core.amd64.AMD64AddressNode org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aload 0 /* this */
            aload 4 /* graph */
            aload 1 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            aload 3 /* ret */
            iconst_0
            iconst_0
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
            istore 5 /* changed */
        start local 5 // boolean changed
         3: .line 54
            iload 5 /* changed */
            ifne 2
         4: .line 56
            getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
            ifne 5
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.checkAddressBitWidth:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 57
      StackMap locals: int
      StackMap stack:
            getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
            ifne 6
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.checkAddressBitWidth:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 58
      StackMap locals:
      StackMap stack:
            aload 4 /* graph */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.memory.address.AddressNode
            areturn
        end local 5 // boolean changed
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
        end local 2 // org.graalvm.compiler.nodes.ValueNode offset
        end local 1 // org.graalvm.compiler.nodes.ValueNode base
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
            0    7     1     base  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     2   offset  Lorg/graalvm/compiler/nodes/ValueNode;
            1    7     3      ret  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            2    7     4    graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3    7     5  changed  Z
    MethodParameters:
        Name  Flags
      base    
      offset  

  private static boolean checkAddressBitWidth(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 62
            aload 0 /* value */
            ifnull 1
            aload 0 /* value */
            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;
            instanceof org.graalvm.compiler.core.common.type.AbstractPointerStamp
            ifne 1
            aload 0 /* value */
            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;
            invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
            bipush 64
            if_icmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  value  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
       Name  Flags
      value  

  protected boolean improve(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.amd64.AMD64AddressNode, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
        start local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
        start local 4 // boolean isBaseNegated
        start local 5 // boolean isIndexNegated
         0: .line 79
            aload 3 /* ret */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            iconst_0
            iload 4 /* isBaseNegated */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* newBase */
        start local 6 // org.graalvm.compiler.nodes.ValueNode newBase
         1: .line 80
            aload 6 /* newBase */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpeq 4
         2: .line 81
            aload 3 /* ret */
            aload 6 /* newBase */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         3: .line 82
            iconst_1
            ireturn
         4: .line 85
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* ret */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
            getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
            iload 5 /* isIndexNegated */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveInput:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* newIdx */
        start local 7 // org.graalvm.compiler.nodes.ValueNode newIdx
         5: .line 86
            aload 7 /* newIdx */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpeq 8
         6: .line 87
            aload 3 /* ret */
            aload 7 /* newIdx */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         7: .line 88
            iconst_1
            ireturn
         8: .line 91
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 17
         9: .line 92
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
            astore 8 /* shift */
        start local 8 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
        10: .line 93
            aload 8 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 17
        11: .line 94
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
            getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
            aload 8 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.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
            iadd
            istore 9 /* amount */
        start local 9 // int amount
        12: .line 95
            iload 9 /* amount */
            invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromShift:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
            astore 10 /* scale */
        start local 10 // org.graalvm.compiler.asm.amd64.AMD64Address$Scale scale
        13: .line 96
            aload 10 /* scale */
            ifnull 17
        14: .line 97
            aload 3 /* ret */
            aload 8 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        15: .line 98
            aload 3 /* ret */
            aload 10 /* scale */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setScale:(Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)V
        16: .line 99
            iconst_1
            ireturn
        end local 10 // org.graalvm.compiler.asm.amd64.AMD64Address$Scale scale
        end local 9 // int amount
        end local 8 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
        17: .line 104
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getScale:()Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
            getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
            if_acmpne 33
        18: .line 105
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            ifnonnull 23
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 23
        19: .line 106
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            astore 8 /* add */
        start local 8 // org.graalvm.compiler.nodes.calc.AddNode add
        20: .line 107
            aload 3 /* ret */
            aload 8 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        21: .line 108
            aload 3 /* ret */
            aload 1 /* graph */
            aload 8 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 4 /* isBaseNegated */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        22: .line 109
            iconst_1
            ireturn
        end local 8 // org.graalvm.compiler.nodes.calc.AddNode add
        23: .line 110
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            ifnonnull 28
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 28
        24: .line 111
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            astore 8 /* add */
        start local 8 // org.graalvm.compiler.nodes.calc.AddNode add
        25: .line 112
            aload 3 /* ret */
            aload 1 /* graph */
            aload 8 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 5 /* isIndexNegated */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        26: .line 113
            aload 3 /* ret */
            aload 8 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        27: .line 114
            iconst_1
            ireturn
        end local 8 // org.graalvm.compiler.nodes.calc.AddNode add
        28: .line 117
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 33
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifne 33
        29: .line 118
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* tmp */
        start local 8 // org.graalvm.compiler.nodes.ValueNode tmp
        30: .line 119
            aload 3 /* ret */
            aload 1 /* graph */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 5 /* isIndexNegated */
            iload 4 /* isBaseNegated */
            ixor
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        31: .line 120
            aload 3 /* ret */
            aload 1 /* graph */
            aload 8 /* tmp */
            iload 5 /* isIndexNegated */
            iload 4 /* isBaseNegated */
            ixor
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.considerNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        32: .line 121
            iconst_1
            ireturn
        end local 8 // org.graalvm.compiler.nodes.ValueNode tmp
        33: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* debug */
            aload 3 /* ret */
            iload 4 /* isBaseNegated */
            iload 5 /* isIndexNegated */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveNegation:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
            ireturn
        end local 7 // org.graalvm.compiler.nodes.ValueNode newIdx
        end local 6 // org.graalvm.compiler.nodes.ValueNode newBase
        end local 5 // boolean isIndexNegated
        end local 4 // boolean isBaseNegated
        end local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
            0   34     1           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   34     2           debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   34     3             ret  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            0   34     4   isBaseNegated  Z
            0   34     5  isIndexNegated  Z
            1   34     6         newBase  Lorg/graalvm/compiler/nodes/ValueNode;
            5   34     7          newIdx  Lorg/graalvm/compiler/nodes/ValueNode;
           10   17     8           shift  Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
           12   17     9          amount  I
           13   17    10           scale  Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
           20   23     8             add  Lorg/graalvm/compiler/nodes/calc/AddNode;
           25   28     8             add  Lorg/graalvm/compiler/nodes/calc/AddNode;
           30   33     8             tmp  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
                Name  Flags
      graph           
      debug           
      ret             
      isBaseNegated   
      isIndexNegated  

  private boolean improveNegation(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.debug.DebugContext, org.graalvm.compiler.core.amd64.AMD64AddressNode, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=6
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
        start local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
        start local 4 // boolean originalBaseNegated
        start local 5 // boolean originalIndexNegated
         0: .line 129
            iload 4 /* originalBaseNegated */
            istore 6 /* baseNegated */
        start local 6 // boolean baseNegated
         1: .line 130
            iload 5 /* originalIndexNegated */
            istore 7 /* indexNegated */
        start local 7 // boolean indexNegated
         2: .line 132
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* originalBase */
        start local 8 // org.graalvm.compiler.nodes.ValueNode originalBase
         3: .line 133
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* originalIndex */
        start local 9 // org.graalvm.compiler.nodes.ValueNode originalIndex
         4: .line 135
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.NegateNode
            ifeq 10
         5: .line 136
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.NegateNode
            astore 10 /* negate */
        start local 10 // org.graalvm.compiler.nodes.calc.NegateNode negate
         6: .line 137
            aload 3 /* ret */
            aload 10 /* negate */
            invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         7: .line 138
            iload 6 /* baseNegated */
            ifeq 8
            iconst_0
            goto 9
      StackMap locals: org.graalvm.compiler.core.amd64.AMD64AddressLowering org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.amd64.AMD64AddressNode int int int int org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.NegateNode
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 6 /* baseNegated */
        end local 10 // org.graalvm.compiler.nodes.calc.NegateNode negate
        10: .line 141
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.calc.NegateNode
            ifeq 16
        11: .line 142
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.NegateNode
            astore 10 /* negate */
        start local 10 // org.graalvm.compiler.nodes.calc.NegateNode negate
        12: .line 143
            aload 3 /* ret */
            aload 10 /* negate */
            invokevirtual org.graalvm.compiler.nodes.calc.NegateNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        13: .line 144
            iload 7 /* indexNegated */
            ifeq 14
            iconst_0
            goto 15
      StackMap locals: org.graalvm.compiler.nodes.calc.NegateNode
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 7 /* indexNegated */
        end local 10 // org.graalvm.compiler.nodes.calc.NegateNode negate
        16: .line 147
      StackMap locals:
      StackMap stack:
            iload 6 /* baseNegated */
            iload 4 /* originalBaseNegated */
            if_icmpne 17
            iload 7 /* indexNegated */
            iload 5 /* originalIndexNegated */
            if_icmpeq 33
        17: .line 148
      StackMap locals:
      StackMap stack:
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* base */
        start local 10 // org.graalvm.compiler.nodes.ValueNode base
        18: .line 149
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* index */
        start local 11 // org.graalvm.compiler.nodes.ValueNode index
        19: .line 151
            aload 0 /* this */
            aload 1 /* graph */
            aload 2 /* debug */
            aload 3 /* ret */
            iload 6 /* baseNegated */
            iload 7 /* indexNegated */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressLowering.improve:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;ZZ)Z
            istore 12 /* improved */
        start local 12 // boolean improved
        20: .line 152
            iload 6 /* baseNegated */
            iload 4 /* originalBaseNegated */
            if_icmpeq 26
        21: .line 153
            aload 10 /* base */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 24
        22: .line 154
            aload 3 /* ret */
            aload 8 /* originalBase */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        23: .line 155
            goto 26
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
        24: aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            ifnull 26
        25: .line 156
            aload 3 /* ret */
            aload 1 /* graph */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        26: .line 160
      StackMap locals:
      StackMap stack:
            iload 7 /* indexNegated */
            iload 5 /* originalIndexNegated */
            if_icmpeq 32
        27: .line 161
            aload 11 /* index */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 30
        28: .line 162
            aload 3 /* ret */
            aload 9 /* originalIndex */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        29: .line 163
            goto 32
      StackMap locals:
      StackMap stack:
        30: aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            ifnull 32
        31: .line 164
            aload 3 /* ret */
            aload 1 /* graph */
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        32: .line 167
      StackMap locals:
      StackMap stack:
            iload 12 /* improved */
            ireturn
        end local 12 // boolean improved
        end local 11 // org.graalvm.compiler.nodes.ValueNode index
        end local 10 // org.graalvm.compiler.nodes.ValueNode base
        33: .line 169
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
            ifne 35
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 8 /* originalBase */
            if_acmpne 34
            aload 3 /* ret */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 9 /* originalIndex */
            if_acmpeq 35
      StackMap locals:
      StackMap stack:
        34: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 171
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // org.graalvm.compiler.nodes.ValueNode originalIndex
        end local 8 // org.graalvm.compiler.nodes.ValueNode originalBase
        end local 7 // boolean indexNegated
        end local 6 // boolean baseNegated
        end local 5 // boolean originalIndexNegated
        end local 4 // boolean originalBaseNegated
        end local 3 // org.graalvm.compiler.core.amd64.AMD64AddressNode ret
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressLowering this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   36     0                  this  Lorg/graalvm/compiler/core/amd64/AMD64AddressLowering;
            0   36     1                 graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   36     2                 debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   36     3                   ret  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            0   36     4   originalBaseNegated  Z
            0   36     5  originalIndexNegated  Z
            1   36     6           baseNegated  Z
            2   36     7          indexNegated  Z
            3   36     8          originalBase  Lorg/graalvm/compiler/nodes/ValueNode;
            4   36     9         originalIndex  Lorg/graalvm/compiler/nodes/ValueNode;
            6   10    10                negate  Lorg/graalvm/compiler/nodes/calc/NegateNode;
           12   16    10                negate  Lorg/graalvm/compiler/nodes/calc/NegateNode;
           18   33    10                  base  Lorg/graalvm/compiler/nodes/ValueNode;
           19   33    11                 index  Lorg/graalvm/compiler/nodes/ValueNode;
           20   33    12              improved  Z
    MethodParameters:
                      Name  Flags
      graph                 
      debug                 
      ret                   
      originalBaseNegated   
      originalIndexNegated  

  private static org.graalvm.compiler.nodes.ValueNode considerNegation(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // org.graalvm.compiler.nodes.ValueNode value
        start local 2 // boolean negate
         0: .line 175
            iload 2 /* negate */
            ifeq 2
            aload 1 /* value */
            ifnull 2
         1: .line 176
            aload 0 /* graph */
            aload 1 /* value */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.NegateNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.maybeAddOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            areturn
        end local 2 // boolean negate
        end local 1 // org.graalvm.compiler.nodes.ValueNode value
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    3     1   value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2  negate  Z
    MethodParameters:
        Name  Flags
      graph   
      value   
      negate  

  private static org.graalvm.compiler.nodes.ValueNode improveInput(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.nodes.ValueNode, int, boolean);
    descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
        start local 1 // org.graalvm.compiler.nodes.ValueNode node
        start local 2 // int shift
        start local 3 // boolean negateExtractedDisplacement
         0: .line 182
            aload 1 /* node */
            ifnonnull 2
         1: .line 183
            aconst_null
            areturn
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            astore 4 /* c */
        start local 4 // jdk.vm.ci.meta.JavaConstant c
         3: .line 187
            aload 4 /* c */
            ifnull 5
         4: .line 188
            aload 0 /* address */
            aload 1 /* node */
            aload 4 /* c */
            aconst_null
            iload 2 /* shift */
            iload 3 /* negateExtractedDisplacement */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         5: .line 190
      StackMap locals: jdk.vm.ci.meta.JavaConstant
      StackMap stack:
            aload 1 /* node */
            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;
            instanceof org.graalvm.compiler.core.common.type.IntegerStamp
            ifeq 13
         6: .line 191
            getstatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.$assertionsDisabled:Z
            ifne 7
            aload 1 /* node */
            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;
            invokestatic org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:(Lorg/graalvm/compiler/core/common/type/Stamp;)I
            bipush 64
            if_icmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 211
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 13
         8: .line 212
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            astore 5 /* add */
        start local 5 // org.graalvm.compiler.nodes.calc.AddNode add
         9: .line 213
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 11
        10: .line 214
            aload 0 /* address */
            aload 1 /* node */
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 2 /* shift */
            iload 3 /* negateExtractedDisplacement */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        11: .line 215
      StackMap locals: org.graalvm.compiler.nodes.calc.AddNode
      StackMap stack:
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 13
        12: .line 216
            aload 0 /* address */
            aload 1 /* node */
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            aload 5 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 2 /* shift */
            iload 3 /* negateExtractedDisplacement */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.improveConstDisp:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 5 // org.graalvm.compiler.nodes.calc.AddNode add
        13: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            areturn
        end local 4 // jdk.vm.ci.meta.JavaConstant c
        end local 3 // boolean negateExtractedDisplacement
        end local 2 // int shift
        end local 1 // org.graalvm.compiler.nodes.ValueNode node
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   14     0                      address  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            0   14     1                         node  Lorg/graalvm/compiler/nodes/ValueNode;
            0   14     2                        shift  I
            0   14     3  negateExtractedDisplacement  Z
            3   14     4                            c  Ljdk/vm/ci/meta/JavaConstant;
            9   13     5                          add  Lorg/graalvm/compiler/nodes/calc/AddNode;
    MethodParameters:
                             Name  Flags
      address                      
      node                         
      shift                        
      negateExtractedDisplacement  

  private static org.graalvm.compiler.nodes.ValueNode improveConstDisp(org.graalvm.compiler.core.amd64.AMD64AddressNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaConstant, org.graalvm.compiler.nodes.ValueNode, int, boolean);
    descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaConstant;Lorg/graalvm/compiler/nodes/ValueNode;IZ)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
        start local 1 // org.graalvm.compiler.nodes.ValueNode original
        start local 2 // jdk.vm.ci.meta.JavaConstant c
        start local 3 // org.graalvm.compiler.nodes.ValueNode other
        start local 4 // int shift
        start local 5 // boolean negateExtractedDisplacement
         0: .line 226
            aload 2 /* c */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 4
         1: .line 227
            aload 2 /* c */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            iload 4 /* shift */
            lshl
            lstore 6 /* delta */
        start local 6 // long delta
         2: .line 228
            aload 0 /* address */
            lload 6 /* delta */
            iload 5 /* negateExtractedDisplacement */
            invokestatic org.graalvm.compiler.core.amd64.AMD64AddressLowering.updateDisplacement:(Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;JZ)Z
            ifeq 4
         3: .line 229
            aload 3 /* other */
            areturn
        end local 6 // long delta
         4: .line 232
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 5 // boolean negateExtractedDisplacement
        end local 4 // int shift
        end local 3 // org.graalvm.compiler.nodes.ValueNode other
        end local 2 // jdk.vm.ci.meta.JavaConstant c
        end local 1 // org.graalvm.compiler.nodes.ValueNode original
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    5     0                      address  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            0    5     1                     original  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     2                            c  Ljdk/vm/ci/meta/JavaConstant;
            0    5     3                        other  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     4                        shift  I
            0    5     5  negateExtractedDisplacement  Z
            2    4     6                        delta  J
    MethodParameters:
                             Name  Flags
      address                      
      original                     
      c                            
      other                        
      shift                        
      negateExtractedDisplacement  

  protected static boolean updateDisplacement(org.graalvm.compiler.core.amd64.AMD64AddressNode, long, boolean);
    descriptor: (Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;JZ)Z
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
        start local 1 // long displacementDelta
        start local 3 // boolean negateDelta
         0: .line 236
            iload 3 /* negateDelta */
            ifeq 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: i2l
            lstore 4 /* sign */
        start local 4 // long sign
         3: .line 237
            aload 0 /* address */
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.getDisplacement:()I
            i2l
            lload 1 /* displacementDelta */
            lload 4 /* sign */
            lmul
            ladd
            lstore 6 /* disp */
        start local 6 // long disp
         4: .line 238
            lload 6 /* disp */
            invokestatic org.graalvm.compiler.core.common.NumUtil.isInt:(J)Z
            ifeq 7
         5: .line 239
            aload 0 /* address */
            lload 6 /* disp */
            l2i
            invokevirtual org.graalvm.compiler.core.amd64.AMD64AddressNode.setDisplacement:(I)V
         6: .line 240
            iconst_1
            ireturn
         7: .line 242
      StackMap locals: long long
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // long disp
        end local 4 // long sign
        end local 3 // boolean negateDelta
        end local 1 // long displacementDelta
        end local 0 // org.graalvm.compiler.core.amd64.AMD64AddressNode address
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0            address  Lorg/graalvm/compiler/core/amd64/AMD64AddressNode;
            0    8     1  displacementDelta  J
            0    8     3        negateDelta  Z
            3    8     4               sign  J
            4    8     6               disp  J
    MethodParameters:
                   Name  Flags
      address            
      displacementDelta  
      negateDelta        
}
SourceFile: "AMD64AddressLowering.java"
InnerClasses:
  public final Scale = org.graalvm.compiler.asm.amd64.AMD64Address$Scale of org.graalvm.compiler.asm.amd64.AMD64Address
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public abstract AddressLowering = org.graalvm.compiler.phases.common.AddressLoweringPhase$AddressLowering of org.graalvm.compiler.phases.common.AddressLoweringPhase