public final class org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver extends org.graalvm.compiler.lir.alloc.lsra.MoveResolver
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver
  super_class: org.graalvm.compiler.lir.alloc.lsra.MoveResolver
{
  private static final int STACK_SLOT_IN_CALLER_FRAME_IDX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private int[] stackBlocked;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private final int firstVirtualStackIndex;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 48
            ldc Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            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.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
         3: .line 50
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan);
    descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
         0: .line 55
            aload 0 /* this */
            aload 1 /* allocator */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
         1: .line 56
            aload 1 /* allocator */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFrameMapBuilder:()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
            checkcast org.graalvm.compiler.lir.framemap.FrameMapBuilderTool
            astore 2 /* frameMapBuilderTool */
        start local 2 // org.graalvm.compiler.lir.framemap.FrameMapBuilderTool frameMapBuilderTool
         2: .line 57
            aload 2 /* frameMapBuilderTool */
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilderTool.getFrameMap:()Lorg/graalvm/compiler/lir/framemap/FrameMap;
            astore 3 /* frameMap */
        start local 3 // org.graalvm.compiler.lir.framemap.FrameMap frameMap
         3: .line 58
            aload 0 /* this */
            aload 2 /* frameMapBuilderTool */
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilderTool.getNumberOfStackSlots:()I
            newarray 10
            putfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
         4: .line 59
            aload 0 /* this */
            aload 3 /* frameMap */
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.frameNeedsAllocating:()Z
            ifne 5
            iconst_0
            goto 6
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.framemap.FrameMapBuilderTool org.graalvm.compiler.lir.framemap.FrameMap
      StackMap stack: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver
         5: aload 3 /* frameMap */
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.currentFrameSize:()I
            iconst_1
            iadd
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.framemap.FrameMapBuilderTool org.graalvm.compiler.lir.framemap.FrameMap
      StackMap stack: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver int
         6: putfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.firstVirtualStackIndex:I
         7: .line 60
            return
        end local 3 // org.graalvm.compiler.lir.framemap.FrameMap frameMap
        end local 2 // org.graalvm.compiler.lir.framemap.FrameMapBuilderTool frameMapBuilderTool
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    8     1            allocator  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            2    8     2  frameMapBuilderTool  Lorg/graalvm/compiler/lir/framemap/FrameMapBuilderTool;
            3    8     3             frameMap  Lorg/graalvm/compiler/lir/framemap/FrameMap;
    MethodParameters:
           Name  Flags
      allocator  

  public boolean checkEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
         0: .line 64
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 65
      StackMap locals: int
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            iload 1 /* i */
            iaload
            ifeq 3
            new java.lang.AssertionError
            dup
            ldc "stack map must be empty before and after processing"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 64
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            arraylength
            if_icmplt 2
        end local 1 // int i
         5: .line 67
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.checkEmpty:()Z
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            1    5     1     i  I

  protected void checkMultipleReads();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
         0: .line 73
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;

  protected void verifyStackSlotMapping();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
         0: .line 78
            return
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;

  protected boolean areMultipleReadsAllowed();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
         0: .line 82
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;

  protected boolean mightBeBlocked(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.meta.Value location
         0: .line 87
            aload 0 /* this */
            aload 1 /* location */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.mightBeBlocked:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
         1: .line 88
            iconst_1
            ireturn
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* location */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
         3: .line 91
            iconst_1
            ireturn
         4: .line 93
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.vm.ci.meta.Value location
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    5     1  location  Ljdk/vm/ci/meta/Value;
    MethodParameters:
          Name  Flags
      location  

  private int getStackArrayIndex(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.meta.Value stackSlotValue
         0: .line 97
            aload 1 /* stackSlotValue */
            invokestatic jdk.vm.ci.code.ValueUtil.isStackSlot:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
         1: .line 98
            aload 0 /* this */
            aload 1 /* stackSlotValue */
            invokestatic jdk.vm.ci.code.ValueUtil.asStackSlot:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/StackSlot;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getStackArrayIndex:(Ljdk/vm/ci/code/StackSlot;)I
            ireturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* stackSlotValue */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 4
         3: .line 101
            aload 0 /* this */
            aload 1 /* stackSlotValue */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getStackArrayIndex:(Lorg/graalvm/compiler/lir/VirtualStackSlot;)I
            ireturn
         4: .line 103
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "value is not a stack slot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* stackSlotValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // jdk.vm.ci.meta.Value stackSlotValue
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    5     1  stackSlotValue  Ljdk/vm/ci/meta/Value;
    MethodParameters:
                Name  Flags
      stackSlotValue  

  private int getStackArrayIndex(jdk.vm.ci.code.StackSlot);
    descriptor: (Ljdk/vm/ci/code/StackSlot;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.code.StackSlot stackSlot
         0: .line 108
            aload 1 /* stackSlot */
            invokevirtual jdk.vm.ci.code.StackSlot.isInCallerFrame:()Z
            ifeq 3
         1: .line 110
            iconst_m1
            istore 2 /* stackIdx */
        start local 2 // int stackIdx
         2: .line 111
            goto 8
        end local 2 // int stackIdx
         3: .line 112
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
            ifne 4
            aload 1 /* stackSlot */
            invokevirtual jdk.vm.ci.code.StackSlot.getRawAddFrameSize:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected stack slot: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* stackSlot */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 113
      StackMap locals:
      StackMap stack:
            aload 1 /* stackSlot */
            invokevirtual jdk.vm.ci.code.StackSlot.getRawOffset:()I
            ineg
            istore 3 /* offset */
        start local 3 // int offset
         5: .line 114
            getstatic org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
            ifne 7
            iload 3 /* offset */
            iflt 6
            iload 3 /* offset */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.firstVirtualStackIndex:I
            if_icmplt 7
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver jdk.vm.ci.code.StackSlot top int
      StackMap stack:
         6: new java.lang.AssertionError
            dup
            ldc "Wrong stack slot offset: %d (first virtual stack slot index: %d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* offset */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.firstVirtualStackIndex:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 115
      StackMap locals:
      StackMap stack:
            iload 3 /* offset */
            istore 2 /* stackIdx */
        end local 3 // int offset
        start local 2 // int stackIdx
         8: .line 117
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver jdk.vm.ci.code.StackSlot int
      StackMap stack:
            iload 2 /* stackIdx */
            ireturn
        end local 2 // int stackIdx
        end local 1 // jdk.vm.ci.code.StackSlot stackSlot
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    9     1  stackSlot  Ljdk/vm/ci/code/StackSlot;
            2    3     2   stackIdx  I
            8    9     2   stackIdx  I
            5    8     3     offset  I
    MethodParameters:
           Name  Flags
      stackSlot  

  private int getStackArrayIndex(org.graalvm.compiler.lir.VirtualStackSlot);
    descriptor: (Lorg/graalvm/compiler/lir/VirtualStackSlot;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // org.graalvm.compiler.lir.VirtualStackSlot virtualStackSlot
         0: .line 121
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.firstVirtualStackIndex:I
            aload 1 /* virtualStackSlot */
            invokevirtual org.graalvm.compiler.lir.VirtualStackSlot.getId:()I
            iadd
            ireturn
        end local 1 // org.graalvm.compiler.lir.VirtualStackSlot virtualStackSlot
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    1     1  virtualStackSlot  Lorg/graalvm/compiler/lir/VirtualStackSlot;
    MethodParameters:
                  Name  Flags
      virtualStackSlot  

  protected void setValueBlocked(jdk.vm.ci.meta.Value, int);
    descriptor: (Ljdk/vm/ci/meta/Value;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.meta.Value location
        start local 2 // int direction
         0: .line 126
            getstatic org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
            ifne 1
            iload 2 /* direction */
            iconst_1
            if_icmpeq 1
            iload 2 /* direction */
            iconst_m1
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            ldc "out of bounds"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* location */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 9
         2: .line 128
            aload 0 /* this */
            aload 1 /* location */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getStackArrayIndex:(Ljdk/vm/ci/meta/Value;)I
            istore 3 /* stackIdx */
        start local 3 // int stackIdx
         3: .line 129
            iload 3 /* stackIdx */
            iconst_m1
            if_icmpne 5
         4: .line 131
            return
         5: .line 133
      StackMap locals: int
      StackMap stack:
            iload 3 /* stackIdx */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            arraylength
            if_icmplt 7
         6: .line 134
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            iload 3 /* stackIdx */
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([II)[I
            putfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
         7: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            iload 3 /* stackIdx */
            dup2
            iaload
            iload 2 /* direction */
            iadd
            iastore
        end local 3 // int stackIdx
         8: .line 137
            goto 10
         9: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* location */
            iload 2 /* direction */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.setValueBlocked:(Ljdk/vm/ci/meta/Value;I)V
        10: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int direction
        end local 1 // jdk.vm.ci.meta.Value location
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0   11     1   location  Ljdk/vm/ci/meta/Value;
            0   11     2  direction  I
            3    8     3   stackIdx  I
    MethodParameters:
           Name  Flags
      location   
      direction  

  protected int valueBlocked(jdk.vm.ci.meta.Value);
    descriptor: (Ljdk/vm/ci/meta/Value;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.meta.Value location
         0: .line 144
            aload 1 /* location */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 7
         1: .line 145
            aload 0 /* this */
            aload 1 /* location */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getStackArrayIndex:(Ljdk/vm/ci/meta/Value;)I
            istore 2 /* stackIdx */
        start local 2 // int stackIdx
         2: .line 146
            iload 2 /* stackIdx */
            iconst_m1
            if_icmpne 4
         3: .line 148
            iconst_1
            ireturn
         4: .line 150
      StackMap locals: int
      StackMap stack:
            iload 2 /* stackIdx */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            arraylength
            if_icmplt 6
         5: .line 151
            iconst_0
            ireturn
         6: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.stackBlocked:[I
            iload 2 /* stackIdx */
            iaload
            ireturn
        end local 2 // int stackIdx
         7: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* location */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.valueBlocked:(Ljdk/vm/ci/meta/Value;)I
            ireturn
        end local 1 // jdk.vm.ci.meta.Value location
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    8     1  location  Ljdk/vm/ci/meta/Value;
            2    7     2  stackIdx  I
    MethodParameters:
          Name  Flags
      location  

  protected org.graalvm.compiler.lir.LIRInstruction createMove(jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.AllocatableValue, jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/LIRInstruction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // jdk.vm.ci.meta.AllocatableValue fromOpr
        start local 2 // jdk.vm.ci.meta.AllocatableValue toOpr
        start local 3 // jdk.vm.ci.meta.AllocatableValue fromLocation
        start local 4 // jdk.vm.ci.meta.AllocatableValue toLocation
         0: .line 160
            aload 4 /* toLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
            aload 3 /* fromLocation */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
         1: .line 161
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getAllocator:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getSpillMoveFactory:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            aload 2 /* toOpr */
            aload 1 /* fromOpr */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createStackMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/LIRInstruction;
            areturn
         2: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fromOpr */
            aload 2 /* toOpr */
            aload 3 /* fromLocation */
            aload 4 /* toLocation */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.createMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/LIRInstruction;
            areturn
        end local 4 // jdk.vm.ci.meta.AllocatableValue toLocation
        end local 3 // jdk.vm.ci.meta.AllocatableValue fromLocation
        end local 2 // jdk.vm.ci.meta.AllocatableValue toOpr
        end local 1 // jdk.vm.ci.meta.AllocatableValue fromOpr
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    3     1       fromOpr  Ljdk/vm/ci/meta/AllocatableValue;
            0    3     2         toOpr  Ljdk/vm/ci/meta/AllocatableValue;
            0    3     3  fromLocation  Ljdk/vm/ci/meta/AllocatableValue;
            0    3     4    toLocation  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
              Name  Flags
      fromOpr       
      toOpr         
      fromLocation  
      toLocation    

  protected void breakCycle(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
        start local 1 // int spillCandidate
         0: .line 168
            iload 1 /* spillCandidate */
            iconst_m1
            if_icmpeq 3
         1: .line 169
            aload 0 /* this */
            iload 1 /* spillCandidate */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.breakCycle:(I)V
         2: .line 170
            return
         3: .line 172
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.mappingFromSize:()I
            iconst_1
            if_icmpgt 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 174
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* stackSpillCandidate */
        start local 2 // int stackSpillCandidate
         5: .line 175
            aload 0 /* this */
            iload 2 /* stackSpillCandidate */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getMappingFrom:(I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 3 /* fromInterval */
        start local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval fromInterval
         6: .line 177
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.getAllocator:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFrameMapBuilder:()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
            aload 3 /* fromInterval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
            astore 4 /* spillSlot */
        start local 4 // org.graalvm.compiler.lir.VirtualStackSlot spillSlot
         7: .line 178
            aload 0 /* this */
            iload 2 /* stackSpillCandidate */
            aload 3 /* fromInterval */
            aload 4 /* spillSlot */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver.spillInterval:(ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Ljdk/vm/ci/meta/AllocatableValue;)V
         8: .line 179
            return
        end local 4 // org.graalvm.compiler.lir.VirtualStackSlot spillSlot
        end local 3 // org.graalvm.compiler.lir.alloc.lsra.Interval fromInterval
        end local 2 // int stackSpillCandidate
        end local 1 // int spillCandidate
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.ssa.SSAMoveResolver this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lorg/graalvm/compiler/lir/alloc/lsra/ssa/SSAMoveResolver;
            0    9     1       spillCandidate  I
            5    9     2  stackSpillCandidate  I
            6    9     3         fromInterval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            7    9     4            spillSlot  Lorg/graalvm/compiler/lir/VirtualStackSlot;
    MethodParameters:
                Name  Flags
      spillCandidate  
}
SourceFile: "SSAMoveResolver.java"
InnerClasses:
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool