public class org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse extends org.graalvm.compiler.phases.common.AddressLoweringByUsePhase$AddressLoweringByUse
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse
  super_class: org.graalvm.compiler.phases.common.AddressLoweringByUsePhase$AddressLoweringByUse
{
  private org.graalvm.compiler.core.aarch64.AArch64LIRKindTool kindtool;
    descriptor: Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$asm$aarch64$AArch64Address$AddressingMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(org.graalvm.compiler.core.aarch64.AArch64LIRKindTool);
    descriptor: (Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.core.aarch64.AArch64LIRKindTool kindtool
         0: .line 43
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.common.AddressLoweringByUsePhase$AddressLoweringByUse.<init>:()V
         1: .line 44
            aload 0 /* this */
            aload 1 /* kindtool */
            putfield org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.kindtool:Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;
         2: .line 45
            return
        end local 1 // org.graalvm.compiler.core.aarch64.AArch64LIRKindTool kindtool
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    3     1  kindtool  Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;
    MethodParameters:
          Name  Flags
      kindtool  

  public org.graalvm.compiler.nodes.memory.address.AddressNode lower(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.memory.address.AddressNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.nodes.ValueNode use
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 3 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         0: .line 49
            aload 3 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 3
         1: .line 50
            aload 3 /* address */
            checkcast org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            astore 4 /* offsetAddress */
        start local 4 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode offsetAddress
         2: .line 51
            aload 0 /* this */
            aload 2 /* stamp */
            aload 4 /* offsetAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 4 /* offsetAddress */
            invokevirtual org.graalvm.compiler.nodes.memory.address.OffsetAddressNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.doLower:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            areturn
        end local 4 // org.graalvm.compiler.nodes.memory.address.OffsetAddressNode offsetAddress
         3: .line 54
      StackMap locals:
      StackMap stack:
            aload 3 /* address */
            areturn
        end local 3 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 1 // org.graalvm.compiler.nodes.ValueNode use
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    4     1            use  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2          stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    4     3        address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            2    3     4  offsetAddress  Lorg/graalvm/compiler/nodes/memory/address/OffsetAddressNode;
    MethodParameters:
         Name  Flags
      use      
      stamp    
      address  

  public org.graalvm.compiler.nodes.memory.address.AddressNode lower(org.graalvm.compiler.nodes.memory.address.AddressNode);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/address/AddressNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
         0: .line 60
            aload 0 /* this */
            aconst_null
            aconst_null
            aload 1 /* address */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.lower:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/memory/address/AddressNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.address.AddressNode address
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    1     1  address  Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    MethodParameters:
         Name  Flags
      address  

  private org.graalvm.compiler.nodes.memory.address.AddressNode doLower(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/memory/address/AddressNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 2 // org.graalvm.compiler.nodes.ValueNode base
        start local 3 // org.graalvm.compiler.nodes.ValueNode index
         0: .line 64
            new org.graalvm.compiler.core.aarch64.AArch64AddressNode
            dup
            aload 2 /* base */
            aload 3 /* index */
            invokespecial org.graalvm.compiler.core.aarch64.AArch64AddressNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 4 /* ret */
        start local 4 // org.graalvm.compiler.core.aarch64.AArch64AddressNode ret
         1: .line 65
            aload 1 /* stamp */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64AddressNode
      StackMap stack:
         2: aload 0 /* this */
            aload 1 /* stamp */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.getAArch64Kind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/aarch64/AArch64Kind;
      StackMap locals:
      StackMap stack: jdk.vm.ci.aarch64.AArch64Kind
         3: astore 5 /* aarch64Kind */
        start local 5 // jdk.vm.ci.aarch64.AArch64Kind aarch64Kind
         4: .line 70
      StackMap locals: jdk.vm.ci.aarch64.AArch64Kind
      StackMap stack:
            aload 0 /* this */
            aload 5 /* aarch64Kind */
            aload 4 /* ret */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.improve:(Ljdk/vm/ci/aarch64/AArch64Kind;Lorg/graalvm/compiler/core/aarch64/AArch64AddressNode;)Z
            istore 6 /* changed */
        start local 6 // boolean changed
         5: .line 71
            iload 6 /* changed */
            ifne 4
         6: .line 74
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 4 /* 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 6 // boolean changed
        end local 5 // jdk.vm.ci.aarch64.AArch64Kind aarch64Kind
        end local 4 // org.graalvm.compiler.core.aarch64.AArch64AddressNode ret
        end local 3 // org.graalvm.compiler.nodes.ValueNode index
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    7     1        stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    7     2         base  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     3        index  Lorg/graalvm/compiler/nodes/ValueNode;
            1    7     4          ret  Lorg/graalvm/compiler/core/aarch64/AArch64AddressNode;
            4    7     5  aarch64Kind  Ljdk/vm/ci/aarch64/AArch64Kind;
            5    7     6      changed  Z
    MethodParameters:
       Name  Flags
      stamp  
      base   
      index  

  protected boolean improve(jdk.vm.ci.aarch64.AArch64Kind, org.graalvm.compiler.core.aarch64.AArch64AddressNode);
    descriptor: (Ljdk/vm/ci/aarch64/AArch64Kind;Lorg/graalvm/compiler/core/aarch64/AArch64AddressNode;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // jdk.vm.ci.aarch64.AArch64Kind kind
        start local 2 // org.graalvm.compiler.core.aarch64.AArch64AddressNode ret
         0: .line 78
            aload 2 /* ret */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.getAddressingMode:()Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            astore 3 /* mode */
        start local 3 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode mode
         1: .line 80
            aload 3 /* mode */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.isDisplacementMode:(Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
            ifne 2
            aload 0 /* this */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.isBaseOnlyMode:(Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
            ifeq 3
         2: .line 81
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode
      StackMap stack:
            iconst_0
            ireturn
         3: .line 83
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* base */
        start local 4 // org.graalvm.compiler.nodes.ValueNode base
         4: .line 84
            aload 2 /* ret */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.getIndex:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* index */
        start local 5 // org.graalvm.compiler.nodes.ValueNode index
         5: .line 87
            aload 4 /* base */
            ifnonnull 9
         6: .line 88
            aload 2 /* ret */
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         7: .line 89
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         8: .line 90
            iconst_1
            ireturn
         9: .line 96
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 14
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 14
        10: .line 97
            aload 5 /* index */
            ifnull 14
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifne 14
        11: .line 98
            aload 2 /* ret */
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        12: .line 99
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        13: .line 100
            iconst_1
            ireturn
        14: .line 104
      StackMap locals:
      StackMap stack:
            aload 5 /* index */
            ifnonnull 19
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 19
        15: .line 105
            aload 4 /* base */
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            astore 6 /* add */
        start local 6 // org.graalvm.compiler.nodes.calc.AddNode add
        16: .line 106
            aload 2 /* ret */
            aload 6 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        17: .line 107
            aload 2 /* ret */
            aload 6 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        18: .line 108
            iconst_1
            ireturn
        end local 6 // org.graalvm.compiler.nodes.calc.AddNode add
        19: .line 112
      StackMap locals:
      StackMap stack:
            aload 5 /* index */
            ifnull 60
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 60
        20: .line 113
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            astore 6 /* javaConstant */
        start local 6 // jdk.vm.ci.meta.JavaConstant javaConstant
        21: .line 114
            aload 6 /* javaConstant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 60
        22: .line 115
            aload 6 /* javaConstant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 7 /* disp */
        start local 7 // long disp
        23: .line 116
            aload 1 /* kind */
            lload 7 /* disp */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.immediateMode:(Ljdk/vm/ci/aarch64/AArch64Kind;J)Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            astore 3 /* mode */
        24: .line 117
            aload 3 /* mode */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.isDisplacementMode:(Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
            ifeq 60
        25: .line 118
            aconst_null
            astore 5 /* index */
        26: .line 122
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            istore 9 /* tryNextBase */
        start local 9 // boolean tryNextBase
        27: .line 123
            goto 51
        28: .line 124
      StackMap locals: jdk.vm.ci.meta.JavaConstant long int
      StackMap stack:
            aload 4 /* base */
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            astore 10 /* add */
        start local 10 // org.graalvm.compiler.nodes.calc.AddNode add
        29: .line 125
            iconst_0
            istore 9 /* tryNextBase */
        30: .line 126
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* child */
        start local 11 // org.graalvm.compiler.nodes.ValueNode child
        31: .line 127
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 41
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 41
        32: .line 128
            lload 7 /* disp */
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            ladd
            lstore 12 /* newDisp */
        start local 12 // long newDisp
        33: .line 129
            aload 1 /* kind */
            lload 12 /* newDisp */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.immediateMode:(Ljdk/vm/ci/aarch64/AArch64Kind;J)Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            astore 14 /* newMode */
        start local 14 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode newMode
        34: .line 130
            aload 14 /* newMode */
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.REGISTER_OFFSET:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            if_acmpeq 51
        35: .line 131
            lload 12 /* newDisp */
            lstore 7 /* disp */
        36: .line 132
            aload 14 /* newMode */
            astore 3 /* mode */
        37: .line 133
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* base */
        38: .line 134
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        39: .line 135
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            istore 9 /* tryNextBase */
        end local 14 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode newMode
        end local 12 // long newDisp
        40: .line 137
            goto 51
        41: .line 138
      StackMap locals: org.graalvm.compiler.nodes.calc.AddNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* child */
        42: .line 139
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 51
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 51
        43: .line 140
            lload 7 /* disp */
            aload 11 /* child */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            ladd
            lstore 12 /* newDisp */
        start local 12 // long newDisp
        44: .line 141
            aload 1 /* kind */
            lload 12 /* newDisp */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.immediateMode:(Ljdk/vm/ci/aarch64/AArch64Kind;J)Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            astore 14 /* newMode */
        start local 14 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode newMode
        45: .line 142
            aload 14 /* newMode */
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.REGISTER_OFFSET:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            if_acmpeq 51
        46: .line 143
            lload 12 /* newDisp */
            lstore 7 /* disp */
        47: .line 144
            aload 14 /* newMode */
            astore 3 /* mode */
        48: .line 145
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* base */
        49: .line 146
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        50: .line 147
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            istore 9 /* tryNextBase */
        end local 14 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode newMode
        end local 12 // long newDisp
        end local 11 // org.graalvm.compiler.nodes.ValueNode child
        end local 10 // org.graalvm.compiler.nodes.calc.AddNode add
        51: .line 123
      StackMap locals:
      StackMap stack:
            iload 9 /* tryNextBase */
            ifne 28
        52: .line 152
            lload 7 /* disp */
            lconst_0
            lcmp
            ifeq 57
        53: .line 154
            aload 2 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        54: .line 155
            aload 1 /* kind */
            aload 3 /* mode */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.computeScaleFactor:(Ljdk/vm/ci/aarch64/AArch64Kind;Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)I
            istore 10 /* scaleFactor */
        start local 10 // int scaleFactor
        55: .line 156
            aload 2 /* ret */
            lload 7 /* disp */
            iload 10 /* scaleFactor */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setDisplacement:(JILorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)V
        end local 10 // int scaleFactor
        56: .line 157
            goto 59
        57: .line 159
      StackMap locals:
      StackMap stack:
            aload 2 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        58: .line 160
            aload 2 /* ret */
            lconst_0
            iconst_1
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.BASE_REGISTER_ONLY:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setDisplacement:(JILorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)V
        59: .line 162
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 9 // boolean tryNextBase
        end local 7 // long disp
        end local 6 // jdk.vm.ci.meta.JavaConstant javaConstant
        60: .line 167
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode index
        end local 4 // org.graalvm.compiler.nodes.ValueNode base
        end local 3 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode mode
        end local 2 // org.graalvm.compiler.core.aarch64.AArch64AddressNode ret
        end local 1 // jdk.vm.ci.aarch64.AArch64Kind kind
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   61     0          this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0   61     1          kind  Ljdk/vm/ci/aarch64/AArch64Kind;
            0   61     2           ret  Lorg/graalvm/compiler/core/aarch64/AArch64AddressNode;
            1   61     3          mode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            4   61     4          base  Lorg/graalvm/compiler/nodes/ValueNode;
            5   61     5         index  Lorg/graalvm/compiler/nodes/ValueNode;
           16   19     6           add  Lorg/graalvm/compiler/nodes/calc/AddNode;
           21   60     6  javaConstant  Ljdk/vm/ci/meta/JavaConstant;
           23   60     7          disp  J
           27   60     9   tryNextBase  Z
           29   51    10           add  Lorg/graalvm/compiler/nodes/calc/AddNode;
           31   51    11         child  Lorg/graalvm/compiler/nodes/ValueNode;
           33   40    12       newDisp  J
           34   40    14       newMode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
           44   51    12       newDisp  J
           45   51    14       newMode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
           55   56    10   scaleFactor  I
    MethodParameters:
      Name  Flags
      kind  
      ret   

  private jdk.vm.ci.aarch64.AArch64Kind getAArch64Kind(org.graalvm.compiler.core.common.type.Stamp);
    descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;)Ljdk/vm/ci/aarch64/AArch64Kind;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
         0: .line 171
            aload 1 /* stamp */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.kindtool:Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getLIRKind:(Lorg/graalvm/compiler/core/common/spi/LIRKindTool;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 2 /* lirKind */
        start local 2 // org.graalvm.compiler.core.common.LIRKind lirKind
         1: .line 172
            aload 2 /* lirKind */
            invokevirtual org.graalvm.compiler.core.common.LIRKind.isValue:()Z
            ifne 4
         2: .line 173
            aload 2 /* lirKind */
            iconst_0
            invokevirtual org.graalvm.compiler.core.common.LIRKind.isReference:(I)Z
            ifeq 3
            aload 2 /* lirKind */
            invokevirtual org.graalvm.compiler.core.common.LIRKind.getReferenceCount:()I
            iconst_1
            if_icmpeq 4
         3: .line 174
      StackMap locals: org.graalvm.compiler.core.common.LIRKind
      StackMap stack:
            aconst_null
            areturn
         4: .line 178
      StackMap locals:
      StackMap stack:
            aload 2 /* lirKind */
            invokevirtual org.graalvm.compiler.core.common.LIRKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.aarch64.AArch64Kind
            areturn
        end local 2 // org.graalvm.compiler.core.common.LIRKind lirKind
        end local 1 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    5     1    stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            1    5     2  lirKind  Lorg/graalvm/compiler/core/common/LIRKind;
    MethodParameters:
       Name  Flags
      stamp  

  private static org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode immediateMode(jdk.vm.ci.aarch64.AArch64Kind, long);
    descriptor: (Ljdk/vm/ci/aarch64/AArch64Kind;J)Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // jdk.vm.ci.aarch64.AArch64Kind kind
        start local 1 // long value
         0: .line 182
            aload 0 /* kind */
            ifnull 6
         1: .line 183
            aload 0 /* kind */
            invokevirtual jdk.vm.ci.aarch64.AArch64Kind.getSizeInBytes:()I
            istore 3 /* size */
        start local 3 // int size
         2: .line 185
            lload 1 /* value */
            iload 3 /* size */
            iconst_1
            isub
            i2l
            land
            lconst_0
            lcmp
            ifne 6
         3: .line 186
            lload 1 /* value */
            iload 3 /* size */
            i2l
            ldiv
            lstore 4 /* encodedValue */
        start local 4 // long encodedValue
         4: .line 189
            bipush 12
            lload 4 /* encodedValue */
            invokestatic org.graalvm.compiler.core.common.NumUtil.isUnsignedNbit:(IJ)Z
            ifeq 6
         5: .line 190
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_SCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            areturn
        end local 4 // long encodedValue
        end local 3 // int size
         6: .line 196
      StackMap locals:
      StackMap stack:
            bipush 9
            lload 1 /* value */
            invokestatic org.graalvm.compiler.core.common.NumUtil.isSignedNbit:(IJ)Z
            ifeq 8
         7: .line 197
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_UNSCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            areturn
         8: .line 201
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.REGISTER_OFFSET:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            areturn
        end local 1 // long value
        end local 0 // jdk.vm.ci.aarch64.AArch64Kind kind
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          kind  Ljdk/vm/ci/aarch64/AArch64Kind;
            0    9     1         value  J
            2    6     3          size  I
            4    6     4  encodedValue  J
    MethodParameters:
       Name  Flags
      kind   
      value  

  private static int computeScaleFactor(jdk.vm.ci.aarch64.AArch64Kind, org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode);
    descriptor: (Ljdk/vm/ci/aarch64/AArch64Kind;Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.vm.ci.aarch64.AArch64Kind kind
        start local 1 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode mode
         0: .line 205
            aload 1 /* mode */
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_SCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            if_acmpne 2
         1: .line 206
            aload 0 /* kind */
            invokevirtual jdk.vm.ci.aarch64.AArch64Kind.getSizeInBytes:()I
            ireturn
         2: .line 208
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode mode
        end local 0 // jdk.vm.ci.aarch64.AArch64Kind kind
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  kind  Ljdk/vm/ci/aarch64/AArch64Kind;
            0    3     1  mode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
    MethodParameters:
      Name  Flags
      kind  
      mode  

  boolean isBaseOnlyMode(org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode);
    descriptor: (Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
        start local 1 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode addressingMode
         0: .line 212
            aload 1 /* addressingMode */
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.BASE_REGISTER_ONLY:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode addressingMode
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/graalvm/compiler/core/aarch64/AArch64AddressLoweringByUse;
            0    2     1  addressingMode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
    MethodParameters:
                Name  Flags
      addressingMode  

  private static boolean isDisplacementMode(org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode);
    descriptor: (Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode addressingMode
         0: .line 216
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.$SWITCH_TABLE$org$graalvm$compiler$asm$aarch64$AArch64Address$AddressingMode:()[I
            aload 0 /* addressingMode */
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 1
                    2: 1
                    3: 2
                    4: 2
                    5: 2
                    6: 2
                    7: 1
                    8: 1
              default: 2
          }
         1: .line 221
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 223
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode addressingMode
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  addressingMode  Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
    MethodParameters:
                Name  Flags
      addressingMode  

  static int[] $SWITCH_TABLE$org$graalvm$compiler$asm$aarch64$AArch64Address$AddressingMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 40
            getstatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.$SWITCH_TABLE$org$graalvm$compiler$asm$aarch64$AArch64Address$AddressingMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.values:()[Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.AddressingMode:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            bipush 9
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.BASE_REGISTER_ONLY:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.EXTENDED_REGISTER_OFFSET:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_POST_INDEXED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            bipush 7
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_PRE_INDEXED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            bipush 8
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_SCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iconst_1
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_UNSCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iconst_2
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.PC_LITERAL:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            bipush 6
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.REGISTER_OFFSET:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            invokevirtual org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.ordinal:()I
            iconst_4
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            dup
            putstatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.$SWITCH_TABLE$org$graalvm$compiler$asm$aarch64$AArch64Address$AddressingMode:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
}
SourceFile: "AArch64AddressLoweringByUse.java"
InnerClasses:
  public final AddressingMode = org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode of org.graalvm.compiler.asm.aarch64.AArch64Address
  public abstract ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  public abstract AddressLoweringByUse = org.graalvm.compiler.phases.common.AddressLoweringByUsePhase$AddressLoweringByUse of org.graalvm.compiler.phases.common.AddressLoweringByUsePhase