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 45
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.common.AddressLoweringByUsePhase$AddressLoweringByUse.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* kindtool */
            putfield org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.kindtool:Lorg/graalvm/compiler/core/aarch64/AArch64LIRKindTool;
         2: .line 47
            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 51
            aload 3 /* address */
            instanceof org.graalvm.compiler.nodes.memory.address.OffsetAddressNode
            ifeq 3
         1: .line 52
            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 53
            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 56
      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 62
            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 66
            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 67
            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 72
      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 73
            iload 6 /* changed */
            ifne 4
         6: .line 76
            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 80
            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 82
            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 83
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode
      StackMap stack:
            iconst_0
            ireturn
         3: .line 85
      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 86
            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 89
            aload 4 /* base */
            ifnonnull 9
         6: .line 90
            aload 2 /* ret */
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         7: .line 91
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
         8: .line 92
            iconst_1
            ireturn
         9: .line 98
      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 99
            aload 5 /* index */
            ifnull 14
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifne 14
        11: .line 100
            aload 2 /* ret */
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        12: .line 101
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        13: .line 102
            iconst_1
            ireturn
        14: .line 106
      StackMap locals:
      StackMap stack:
            aload 5 /* index */
            ifnonnull 19
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 19
        15: .line 107
            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 108
            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 109
            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 110
            iconst_1
            ireturn
        end local 6 // org.graalvm.compiler.nodes.calc.AddNode add
        19: .line 114
      StackMap locals:
      StackMap stack:
            aload 5 /* index */
            ifnull 60
            aload 5 /* index */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isJavaConstant:()Z
            ifeq 60
        20: .line 115
            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 116
            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 117
            aload 6 /* javaConstant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 7 /* disp */
        start local 7 // long disp
        23: .line 118
            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 119
            aload 3 /* mode */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64AddressLoweringByUse.isDisplacementMode:(Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;)Z
            ifeq 60
        25: .line 120
            aconst_null
            astore 5 /* index */
        26: .line 124
            aload 4 /* base */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            istore 9 /* tryNextBase */
        start local 9 // boolean tryNextBase
        27: .line 125
            goto 51
        28: .line 126
      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 127
            iconst_0
            istore 9 /* tryNextBase */
        30: .line 128
            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 129
            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 130
            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 131
            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 132
            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 133
            lload 12 /* newDisp */
            lstore 7 /* disp */
        36: .line 134
            aload 14 /* newMode */
            astore 3 /* mode */
        37: .line 135
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* base */
        38: .line 136
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        39: .line 137
            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 139
            goto 51
        41: .line 140
      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 141
            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 142
            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 143
            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 144
            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 145
            lload 12 /* newDisp */
            lstore 7 /* disp */
        47: .line 146
            aload 14 /* newMode */
            astore 3 /* mode */
        48: .line 147
            aload 10 /* add */
            invokevirtual org.graalvm.compiler.nodes.calc.AddNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* base */
        49: .line 148
            aload 2 /* ret */
            aload 4 /* base */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setBase:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        50: .line 149
            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 125
      StackMap locals:
      StackMap stack:
            iload 9 /* tryNextBase */
            ifne 28
        52: .line 154
            lload 7 /* disp */
            lconst_0
            lcmp
            ifeq 57
        53: .line 156
            aload 2 /* ret */
            aconst_null
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64AddressNode.setIndex:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        54: .line 157
            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 158
            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 159
            goto 59
        57: .line 161
      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 162
            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 164
      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 169
      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 173
            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 174
            aload 2 /* lirKind */
            invokevirtual org.graalvm.compiler.core.common.LIRKind.isValue:()Z
            ifne 4
         2: .line 175
            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 176
      StackMap locals: org.graalvm.compiler.core.common.LIRKind
      StackMap stack:
            aconst_null
            areturn
         4: .line 180
      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 184
            aload 0 /* kind */
            ifnull 6
         1: .line 185
            aload 0 /* kind */
            invokevirtual jdk.vm.ci.aarch64.AArch64Kind.getSizeInBytes:()I
            istore 3 /* size */
        start local 3 // int size
         2: .line 187
            lload 1 /* value */
            iload 3 /* size */
            iconst_1
            isub
            i2l
            land
            lconst_0
            lcmp
            ifne 6
         3: .line 188
            lload 1 /* value */
            iload 3 /* size */
            i2l
            ldiv
            lstore 4 /* encodedValue */
        start local 4 // long encodedValue
         4: .line 191
            bipush 12
            lload 4 /* encodedValue */
            invokestatic org.graalvm.compiler.core.common.NumUtil.isUnsignedNbit:(IJ)Z
            ifeq 6
         5: .line 192
            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 198
      StackMap locals:
      StackMap stack:
            bipush 9
            lload 1 /* value */
            invokestatic org.graalvm.compiler.core.common.NumUtil.isSignedNbit:(IJ)Z
            ifeq 8
         7: .line 199
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Address$AddressingMode.IMMEDIATE_UNSCALED:Lorg/graalvm/compiler/asm/aarch64/AArch64Address$AddressingMode;
            areturn
         8: .line 203
      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 207
            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 208
            aload 0 /* kind */
            invokevirtual jdk.vm.ci.aarch64.AArch64Kind.getSizeInBytes:()I
            ireturn
         2: .line 210
      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 214
            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 218
            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 223
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 225
      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 42
            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