public class org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase extends org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase
  super_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase
{
  protected final org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator;
    descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final org.graalvm.compiler.lir.InstructionValueProcedure assignProc;
    descriptor: Lorg/graalvm/compiler/lir/InstructionValueProcedure;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.InstructionValueProcedure debugInfoProc;
    descriptor: Lorg/graalvm/compiler/lir/InstructionValueProcedure;
    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 57
            ldc Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            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.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            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=4, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
         0: .line 61
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAllocationPhase.<init>:()V
         1: .line 175
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$1
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$1.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;)V
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
         2: .line 184
            aload 0 /* this */
            new org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$2
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$2.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;)V
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.debugInfoProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
         3: .line 62
            aload 0 /* this */
            aload 1 /* allocator */
            putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
         4: .line 63
            return
        end local 1 // org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0    5     1  allocator  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
    MethodParameters:
           Name  Flags
      allocator  

  protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext);
    descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // jdk.vm.ci.code.TargetDescription target
        start local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        start local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
         0: .line 67
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignLocations:()V
         1: .line 68
            return
        end local 3 // org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext context
        end local 2 // org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes
        end local 1 // jdk.vm.ci.code.TargetDescription target
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0    2     1     target  Ljdk/vm/ci/code/TargetDescription;
            0    2     2  lirGenRes  Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
            0    2     3    context  Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
    MethodParameters:
           Name  Flags
      target     
      lirGenRes  
      context    

  protected jdk.vm.ci.meta.Value colorLirOperand(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.Variable, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
        start local 2 // org.graalvm.compiler.lir.Variable operand
        start local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         0: .line 79
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            istore 4 /* opId */
        start local 4 // int opId
         1: .line 80
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 5 /* interval */
        start local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
         2: .line 81
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            ifne 3
            aload 5 /* interval */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            ldc "interval must exist"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 83
      StackMap locals: int org.graalvm.compiler.lir.alloc.lsra.Interval
      StackMap stack:
            iload 4 /* opId */
            iconst_m1
            if_icmpeq 15
         4: .line 84
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
            ifeq 14
         5: .line 85
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 4 /* opId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 6 /* block */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         6: .line 86
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpgt 14
            iload 4 /* opId */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            if_icmpne 14
         7: .line 92
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 7 /* instr */
        start local 7 // org.graalvm.compiler.lir.LIRInstruction instr
         8: .line 93
            aload 7 /* instr */
            instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
            ifeq 14
         9: .line 94
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 6 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.liveOut:Ljava/util/BitSet;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 14
        10: .line 95
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            ifne 14
            new java.lang.AssertionError
            dup
        11: .line 96
            ldc "can't get split child for the last branch of a block because the information would be incorrect (moves are inserted before the branch in resolveDataFlow) block=%s, instruction=%s, operand=%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 97
            aload 6 /* block */
            aastore
            dup
            iconst_1
            aload 7 /* instr */
            aastore
            dup
            iconst_2
            aload 2 /* operand */
            aastore
        13: .line 95
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // org.graalvm.compiler.lir.LIRInstruction instr
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        14: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 5 /* interval */
            iload 4 /* opId */
            aload 3 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            astore 5 /* interval */
        15: .line 110
      StackMap locals:
      StackMap stack:
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 18
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
            ifeq 18
        16: .line 111
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            ifne 17
            aload 3 /* mode */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            if_acmpne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 112
      StackMap locals:
      StackMap stack:
            new org.graalvm.compiler.lir.ConstantValue
            dup
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.getMaterializedValue:()Ljdk/vm/ci/meta/Constant;
            invokespecial org.graalvm.compiler.lir.ConstantValue.<init>:(Ljdk/vm/ci/meta/ValueKind;Ljdk/vm/ci/meta/Constant;)V
            areturn
        18: .line 114
      StackMap locals:
      StackMap stack:
            aload 5 /* interval */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
            areturn
        end local 5 // org.graalvm.compiler.lir.alloc.lsra.Interval interval
        end local 4 // int opId
        end local 3 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 2 // org.graalvm.compiler.lir.Variable operand
        end local 1 // org.graalvm.compiler.lir.LIRInstruction op
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0   19     1        op  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   19     2   operand  Lorg/graalvm/compiler/lir/Variable;
            0   19     3      mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            1   19     4      opId  I
            2   19     5  interval  Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
            6   14     6     block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            8   14     7     instr  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
         Name  Flags
      op       
      operand  
      mode     

  private jdk.vm.ci.meta.Value debugInfoProcedure(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
        start local 2 // jdk.vm.ci.meta.Value operand
         0: .line 118
            aload 2 /* operand */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 2
         1: .line 119
            aload 2 /* operand */
            areturn
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            istore 3 /* tempOpId */
        start local 3 // int tempOpId
         3: .line 122
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.USE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            astore 4 /* mode */
        start local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
         4: .line 123
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 3 /* tempOpId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 5 /* block */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         5: .line 124
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
            iconst_1
            if_icmpne 11
            iload 3 /* tempOpId */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            if_icmpne 11
         6: .line 133
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 6 /* instr */
        start local 6 // org.graalvm.compiler.lir.LIRInstruction instr
         7: .line 134
            aload 6 /* instr */
            instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
            ifeq 11
         8: .line 135
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.liveOut:Ljava/util/BitSet;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* operand */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 11
         9: .line 136
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            iconst_0
            aaload
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
            istore 3 /* tempOpId */
        10: .line 137
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            astore 4 /* mode */
        end local 6 // org.graalvm.compiler.lir.LIRInstruction instr
        11: .line 147
      StackMap locals: int org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 0 /* this */
            aload 1 /* op */
            aload 2 /* operand */
            checkcast org.graalvm.compiler.lir.Variable
            aload 4 /* mode */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.colorLirOperand:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
            astore 6 /* result */
        start local 6 // jdk.vm.ci.meta.Value result
        12: .line 148
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            iload 3 /* tempOpId */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.hasCall:(I)Z
            ifeq 13
            aload 6 /* result */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
            ifne 13
            aload 6 /* result */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isJavaConstant:(Ljdk/vm/ci/meta/Value;)Z
            ifne 13
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.isCallerSave:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 13
            new java.lang.AssertionError
            dup
            ldc "cannot have caller-save register operands at calls"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        13: .line 149
      StackMap locals: jdk.vm.ci.meta.Value
      StackMap stack:
            aload 6 /* result */
            areturn
        end local 6 // jdk.vm.ci.meta.Value result
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 3 // int tempOpId
        end local 2 // jdk.vm.ci.meta.Value operand
        end local 1 // org.graalvm.compiler.lir.LIRInstruction op
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0   14     1        op  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   14     2   operand  Ljdk/vm/ci/meta/Value;
            3   14     3  tempOpId  I
            4   14     4      mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            5   14     5     block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            7   11     6     instr  Lorg/graalvm/compiler/lir/LIRInstruction;
           12   14     6    result  Ljdk/vm/ci/meta/Value;
    MethodParameters:
         Name  Flags
      op       
      operand  

  private void assignLocations(java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // java.util.ArrayList instructions
         0: .line 153
            aload 1 /* instructions */
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* numInst */
        start local 2 // int numInst
         1: .line 154
            iconst_0
            istore 3 /* hasDead */
        start local 3 // boolean hasDead
         2: .line 156
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         3: goto 12
         4: .line 157
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* instructions */
            iload 4 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 5 /* op */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction op
         5: .line 158
            aload 5 /* op */
            ifnonnull 8
         6: .line 162
            iconst_1
            istore 3 /* hasDead */
         7: .line 163
            goto 11
      StackMap locals: org.graalvm.compiler.lir.LIRInstruction
      StackMap stack:
         8: aload 0 /* this */
            aload 5 /* op */
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignLocations:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            ifeq 11
         9: .line 164
            aload 1 /* instructions */
            iload 4 /* j */
            aconst_null
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 165
            iconst_1
            istore 3 /* hasDead */
        end local 5 // org.graalvm.compiler.lir.LIRInstruction op
        11: .line 156
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* j */
            iload 2 /* numInst */
            if_icmplt 4
        end local 4 // int j
        13: .line 169
            iload 3 /* hasDead */
            ifeq 15
        14: .line 171
            aload 1 /* instructions */
            aconst_null
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual java.util.ArrayList.removeAll:(Ljava/util/Collection;)Z
            pop
        15: .line 173
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean hasDead
        end local 2 // int numInst
        end local 1 // java.util.ArrayList instructions
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0   16     1  instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            1   16     2       numInst  I
            2   16     3       hasDead  Z
            3   13     4             j  I
            5   11     5            op  Lorg/graalvm/compiler/lir/LIRInstruction;
    Signature: (Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;)V
    MethodParameters:
              Name  Flags
      instructions  

  protected boolean assignLocations(org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction op
         0: .line 198
            getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.$assertionsDisabled:Z
            ifne 1
            aload 1 /* op */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 201
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            invokestatic org.graalvm.compiler.lir.StandardOp$MoveOp.isMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            ifeq 5
         2: .line 202
            aload 1 /* op */
            invokestatic org.graalvm.compiler.lir.StandardOp$MoveOp.asMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$MoveOp;
            invokeinterface org.graalvm.compiler.lir.StandardOp$MoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
            astore 2 /* result */
        start local 2 // jdk.vm.ci.meta.AllocatableValue result
         3: .line 203
            aload 2 /* result */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 5
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            aload 2 /* result */
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.isMaterialized:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
            ifeq 5
         4: .line 209
            iconst_1
            ireturn
        end local 2 // jdk.vm.ci.meta.AllocatableValue result
         5: .line 213
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachInput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         6: .line 214
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         7: .line 215
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         8: .line 216
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         9: .line 219
            aload 1 /* op */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.debugInfoProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachState:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        10: .line 222
            aload 1 /* op */
            invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.isValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            ifeq 14
        11: .line 223
            aload 1 /* op */
            invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.asValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
            astore 2 /* move */
        start local 2 // org.graalvm.compiler.lir.StandardOp$ValueMoveOp move
        12: .line 224
            aload 2 /* move */
            invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
            aload 2 /* move */
            invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual jdk.vm.ci.meta.AllocatableValue.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 225
            iconst_1
            ireturn
        end local 2 // org.graalvm.compiler.lir.StandardOp$ValueMoveOp move
        14: .line 228
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.lir.LIRInstruction op
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            0   15     1      op  Lorg/graalvm/compiler/lir/LIRInstruction;
            3    5     2  result  Ljdk/vm/ci/meta/AllocatableValue;
           12   14     2    move  Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
    MethodParameters:
      Name  Flags
      op    

  private void assignLocations();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=1
        start local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
         0: .line 233
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 1 /* debug */
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 234
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 1 /* debug */
            ldc "assign locations"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         3: .line 235
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 15
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* block */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         5: .line 236
            aconst_null
            astore 9
            aconst_null
            astore 10
         6: aload 1 /* debug */
            ldc "assign locations in block B%d"
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;I)Lorg/graalvm/compiler/debug/Indent;
            astore 11 /* indent2 */
        start local 11 // org.graalvm.compiler.debug.Indent indent2
         7: .line 237
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.assignLocations:(Ljava/util/ArrayList;)V
         8: .line 238
            aload 11 /* indent2 */
            ifnull 14
            aload 11 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 14
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
         9: astore 9
            aload 11 /* indent2 */
            ifnull 10
            aload 11 /* indent2 */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 11 // org.graalvm.compiler.debug.Indent indent2
      StackMap locals:
      StackMap stack:
        10: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 10
            aload 9
            ifnonnull 12
            aload 10
            astore 9
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 9
            aload 10
            if_acmpeq 13
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 9
            athrow
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        14: .line 235
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        15: iload 6
            iload 7
            if_icmplt 4
        16: .line 240
            aload 4 /* indent */
            ifnull 22
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 22
      StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        17: astore 2
            aload 4 /* indent */
            ifnull 18
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        18: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 3
            aload 2
            ifnonnull 20
            aload 3
            astore 2
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 2
            aload 3
            if_acmpeq 21
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 2
            athrow
        22: .line 241
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
            1   23     1    debug  Lorg/graalvm/compiler/debug/DebugContext;
            3   18     4   indent  Lorg/graalvm/compiler/debug/Indent;
            5   14     5    block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            7   10    11  indent2  Lorg/graalvm/compiler/debug/Indent;
      Exception table:
        from    to  target  type
           7     8       9  any
           6    11      11  any
           3    16      17  any
           2    19      19  any
}
SourceFile: "LinearScanAssignLocationsPhase.java"
NestMembers:
  org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$1  org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$2
InnerClasses:
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  public JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
  public abstract MoveOp = org.graalvm.compiler.lir.StandardOp$MoveOp of org.graalvm.compiler.lir.StandardOp
  public abstract ValueMoveOp = org.graalvm.compiler.lir.StandardOp$ValueMoveOp of org.graalvm.compiler.lir.StandardOp
  public BlockData = org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData of org.graalvm.compiler.lir.alloc.lsra.LinearScan
  org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$1
  org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase$2
  public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase