public class org.graalvm.compiler.lir.LIRFrameState
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.LIRFrameState
  super_class: java.lang.Object
{
  public final jdk.vm.ci.code.BytecodeFrame topFrame;
    descriptor: Ljdk/vm/ci/code/BytecodeFrame;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final jdk.vm.ci.code.VirtualObject[] virtualObjects;
    descriptor: [Ljdk/vm/ci/code/VirtualObject;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public final org.graalvm.compiler.lir.LabelRef exceptionEdge;
    descriptor: Lorg/graalvm/compiler/lir/LabelRef;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  protected jdk.vm.ci.code.DebugInfo debugInfo;
    descriptor: Ljdk/vm/ci/code/DebugInfo;
    flags: (0x0004) ACC_PROTECTED

  private org.graalvm.compiler.lir.util.IndexedValueMap liveBasePointers;
    descriptor: Lorg/graalvm/compiler/lir/util/IndexedValueMap;
    flags: (0x0002) ACC_PRIVATE

  protected static final java.util.EnumSet<org.graalvm.compiler.lir.LIRInstruction$OperandFlag> STATE_FLAGS;
    descriptor: Ljava/util/EnumSet;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;

  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=2, locals=0, args_size=0
         0: .line 51
            ldc Lorg/graalvm/compiler/lir/LIRFrameState;
            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.LIRFrameState.$assertionsDisabled:Z
         3: .line 117
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandFlag.STACK:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            putstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(jdk.vm.ci.code.BytecodeFrame, jdk.vm.ci.code.VirtualObject[], org.graalvm.compiler.lir.LabelRef);
    descriptor: (Ljdk/vm/ci/code/BytecodeFrame;[Ljdk/vm/ci/code/VirtualObject;Lorg/graalvm/compiler/lir/LabelRef;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // jdk.vm.ci.code.BytecodeFrame topFrame
        start local 2 // jdk.vm.ci.code.VirtualObject[] virtualObjects
        start local 3 // org.graalvm.compiler.lir.LabelRef exceptionEdge
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            aload 1 /* topFrame */
            putfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
         2: .line 62
            aload 0 /* this */
            aload 2 /* virtualObjects */
            putfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
         3: .line 63
            aload 0 /* this */
            aload 3 /* exceptionEdge */
            putfield org.graalvm.compiler.lir.LIRFrameState.exceptionEdge:Lorg/graalvm/compiler/lir/LabelRef;
         4: .line 64
            return
        end local 3 // org.graalvm.compiler.lir.LabelRef exceptionEdge
        end local 2 // jdk.vm.ci.code.VirtualObject[] virtualObjects
        end local 1 // jdk.vm.ci.code.BytecodeFrame topFrame
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    5     1        topFrame  Ljdk/vm/ci/code/BytecodeFrame;
            0    5     2  virtualObjects  [Ljdk/vm/ci/code/VirtualObject;
            0    5     3   exceptionEdge  Lorg/graalvm/compiler/lir/LabelRef;
    MethodParameters:
                Name  Flags
      topFrame        
      virtualObjects  
      exceptionEdge   

  public boolean hasDebugInfo();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
         0: .line 67
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;

  public jdk.vm.ci.code.DebugInfo debugInfo();
    descriptor: ()Ljdk/vm/ci/code/DebugInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
         0: .line 71
            getstatic org.graalvm.compiler.lir.LIRFrameState.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "debug info not allocated yet"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            areturn
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;

  public void forEachState(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.InstructionValueProcedure);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        start local 2 // org.graalvm.compiler.lir.InstructionValueProcedure proc
         0: .line 81
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
            astore 3 /* cur */
        start local 3 // jdk.vm.ci.code.BytecodeFrame cur
         1: goto 4
         2: .line 82
      StackMap locals: jdk.vm.ci.code.BytecodeFrame
      StackMap stack:
            aload 0 /* this */
            aload 1 /* inst */
            aload 3 /* cur */
            getfield jdk.vm.ci.code.BytecodeFrame.values:[Ljdk/vm/ci/meta/JavaValue;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.processValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
         3: .line 81
            aload 3 /* cur */
            invokevirtual jdk.vm.ci.code.BytecodeFrame.caller:()Ljdk/vm/ci/code/BytecodeFrame;
            astore 3 /* cur */
      StackMap locals:
      StackMap stack:
         4: aload 3 /* cur */
            ifnonnull 2
        end local 3 // jdk.vm.ci.code.BytecodeFrame cur
         5: .line 84
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            ifnull 11
         6: .line 85
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: org.graalvm.compiler.lir.LIRFrameState org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.lir.InstructionValueProcedure top int int jdk.vm.ci.code.VirtualObject[]
      StackMap stack:
         7: aload 6
            iload 4
            aaload
            astore 3 /* obj */
        start local 3 // jdk.vm.ci.code.VirtualObject obj
         8: .line 86
            aload 0 /* this */
            aload 1 /* inst */
            aload 3 /* obj */
            invokevirtual jdk.vm.ci.code.VirtualObject.getValues:()[Ljdk/vm/ci/meta/JavaValue;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.processValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        end local 3 // jdk.vm.ci.code.VirtualObject obj
         9: .line 85
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 7
        11: .line 89
      StackMap locals: org.graalvm.compiler.lir.LIRFrameState org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.lir.InstructionValueProcedure
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
            ifnull 13
        12: .line 90
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
            aload 1 /* inst */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.util.IndexedValueMap.forEach:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
        13: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.lir.InstructionValueProcedure proc
        end local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   14     1  inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   14     2  proc  Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            1    5     3   cur  Ljdk/vm/ci/code/BytecodeFrame;
            8    9     3   obj  Ljdk/vm/ci/code/VirtualObject;
    MethodParameters:
      Name  Flags
      inst  
      proc  

  public void visitEachState(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.InstructionValueConsumer);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        start local 2 // org.graalvm.compiler.lir.InstructionValueConsumer proc
         0: .line 100
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
            astore 3 /* cur */
        start local 3 // jdk.vm.ci.code.BytecodeFrame cur
         1: goto 4
         2: .line 101
      StackMap locals: jdk.vm.ci.code.BytecodeFrame
      StackMap stack:
            aload 0 /* this */
            aload 1 /* inst */
            aload 3 /* cur */
            getfield jdk.vm.ci.code.BytecodeFrame.values:[Ljdk/vm/ci/meta/JavaValue;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.visitValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
         3: .line 100
            aload 3 /* cur */
            invokevirtual jdk.vm.ci.code.BytecodeFrame.caller:()Ljdk/vm/ci/code/BytecodeFrame;
            astore 3 /* cur */
      StackMap locals:
      StackMap stack:
         4: aload 3 /* cur */
            ifnonnull 2
        end local 3 // jdk.vm.ci.code.BytecodeFrame cur
         5: .line 103
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            ifnull 11
         6: .line 104
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: org.graalvm.compiler.lir.LIRFrameState org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.lir.InstructionValueConsumer top int int jdk.vm.ci.code.VirtualObject[]
      StackMap stack:
         7: aload 6
            iload 4
            aaload
            astore 3 /* obj */
        start local 3 // jdk.vm.ci.code.VirtualObject obj
         8: .line 105
            aload 0 /* this */
            aload 1 /* inst */
            aload 3 /* obj */
            invokevirtual jdk.vm.ci.code.VirtualObject.getValues:()[Ljdk/vm/ci/meta/JavaValue;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.visitValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
        end local 3 // jdk.vm.ci.code.VirtualObject obj
         9: .line 104
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 7
        11: .line 108
      StackMap locals: org.graalvm.compiler.lir.LIRFrameState org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.lir.InstructionValueConsumer
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
            ifnull 13
        12: .line 109
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
            aload 1 /* inst */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            aload 2 /* proc */
            invokevirtual org.graalvm.compiler.lir.util.IndexedValueMap.visitEach:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
        13: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.lir.InstructionValueConsumer proc
        end local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   14     1  inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   14     2  proc  Lorg/graalvm/compiler/lir/InstructionValueConsumer;
            1    5     3   cur  Ljdk/vm/ci/code/BytecodeFrame;
            8    9     3   obj  Ljdk/vm/ci/code/VirtualObject;
    MethodParameters:
      Name  Flags
      inst  
      proc  

  protected void processValues(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.JavaValue[], org.graalvm.compiler.lir.InstructionValueProcedure);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        start local 2 // jdk.vm.ci.meta.JavaValue[] values
        start local 3 // org.graalvm.compiler.lir.InstructionValueProcedure proc
         0: .line 120
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 22
         2: .line 121
      StackMap locals: int
      StackMap stack:
            aload 2 /* values */
            iload 4 /* i */
            aaload
            astore 5 /* value */
        start local 5 // jdk.vm.ci.meta.JavaValue value
         3: .line 122
            aload 5 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegalJavaValue:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifeq 5
         4: .line 123
            goto 21
         5: .line 125
      StackMap locals: jdk.vm.ci.meta.JavaValue
      StackMap stack:
            aload 5 /* value */
            instanceof jdk.vm.ci.meta.AllocatableValue
            ifeq 11
         6: .line 126
            aload 5 /* value */
            checkcast jdk.vm.ci.meta.AllocatableValue
            astore 6 /* allocatable */
        start local 6 // jdk.vm.ci.meta.AllocatableValue allocatable
         7: .line 127
            aload 3 /* proc */
            aload 1 /* inst */
            aload 6 /* allocatable */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueProcedure.doValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
            astore 7 /* result */
        start local 7 // jdk.vm.ci.meta.Value result
         8: .line 128
            aload 6 /* allocatable */
            aload 7 /* result */
            invokevirtual jdk.vm.ci.meta.AllocatableValue.identityEquals:(Ljdk/vm/ci/meta/Value;)Z
            ifne 21
         9: .line 129
            aload 2 /* values */
            iload 4 /* i */
            aload 7 /* result */
            checkcast jdk.vm.ci.meta.JavaValue
            aastore
        end local 7 // jdk.vm.ci.meta.Value result
        end local 6 // jdk.vm.ci.meta.AllocatableValue allocatable
        10: .line 131
            goto 21
      StackMap locals:
      StackMap stack:
        11: aload 5 /* value */
            instanceof jdk.vm.ci.code.StackLockValue
            ifeq 20
        12: .line 132
            aload 5 /* value */
            checkcast jdk.vm.ci.code.StackLockValue
            astore 6 /* monitor */
        start local 6 // jdk.vm.ci.code.StackLockValue monitor
        13: .line 133
            aload 6 /* monitor */
            invokevirtual jdk.vm.ci.code.StackLockValue.getOwner:()Ljdk/vm/ci/meta/JavaValue;
            astore 7 /* owner */
        start local 7 // jdk.vm.ci.meta.JavaValue owner
        14: .line 134
            aload 7 /* owner */
            instanceof jdk.vm.ci.meta.AllocatableValue
            ifeq 16
        15: .line 135
            aload 6 /* monitor */
            aload 3 /* proc */
            aload 1 /* inst */
            aload 7 /* owner */
            checkcast jdk.vm.ci.meta.AllocatableValue
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueProcedure.doValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
            checkcast jdk.vm.ci.meta.JavaValue
            invokevirtual jdk.vm.ci.code.StackLockValue.setOwner:(Ljdk/vm/ci/meta/JavaValue;)V
        16: .line 137
      StackMap locals: jdk.vm.ci.code.StackLockValue jdk.vm.ci.meta.JavaValue
      StackMap stack:
            aload 6 /* monitor */
            invokevirtual jdk.vm.ci.code.StackLockValue.getSlot:()Ljdk/vm/ci/meta/Value;
            astore 8 /* slot */
        start local 8 // jdk.vm.ci.meta.Value slot
        17: .line 138
            aload 8 /* slot */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 21
        18: .line 139
            aload 6 /* monitor */
            aload 3 /* proc */
            aload 1 /* inst */
            aload 8 /* slot */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueProcedure.doValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
            invokestatic jdk.vm.ci.code.ValueUtil.asAllocatableValue:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual jdk.vm.ci.code.StackLockValue.setSlot:(Ljdk/vm/ci/meta/AllocatableValue;)V
        end local 8 // jdk.vm.ci.meta.Value slot
        end local 7 // jdk.vm.ci.meta.JavaValue owner
        end local 6 // jdk.vm.ci.code.StackLockValue monitor
        19: .line 141
            goto 21
        20: .line 142
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.LIRFrameState.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            aload 5 /* value */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.unprocessed:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // jdk.vm.ci.meta.JavaValue value
        21: .line 120
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            aload 2 /* values */
            arraylength
            if_icmplt 2
        end local 4 // int i
        23: .line 145
            return
        end local 3 // org.graalvm.compiler.lir.InstructionValueProcedure proc
        end local 2 // jdk.vm.ci.meta.JavaValue[] values
        end local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   24     1         inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   24     2       values  [Ljdk/vm/ci/meta/JavaValue;
            0   24     3         proc  Lorg/graalvm/compiler/lir/InstructionValueProcedure;
            1   23     4            i  I
            3   21     5        value  Ljdk/vm/ci/meta/JavaValue;
            7   10     6  allocatable  Ljdk/vm/ci/meta/AllocatableValue;
            8   10     7       result  Ljdk/vm/ci/meta/Value;
           13   19     6      monitor  Ljdk/vm/ci/code/StackLockValue;
           14   19     7        owner  Ljdk/vm/ci/meta/JavaValue;
           17   19     8         slot  Ljdk/vm/ci/meta/Value;
    MethodParameters:
        Name  Flags
      inst    
      values  
      proc    

  protected void visitValues(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.JavaValue[], org.graalvm.compiler.lir.InstructionValueConsumer);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;[Ljdk/vm/ci/meta/JavaValue;Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        start local 2 // jdk.vm.ci.meta.JavaValue[] values
        start local 3 // org.graalvm.compiler.lir.InstructionValueConsumer proc
         0: .line 148
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 19
         2: .line 149
      StackMap locals: int
      StackMap stack:
            aload 2 /* values */
            iload 4 /* i */
            aaload
            astore 5 /* value */
        start local 5 // jdk.vm.ci.meta.JavaValue value
         3: .line 150
            aload 5 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegalJavaValue:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifeq 5
         4: .line 151
            goto 18
         5: .line 152
      StackMap locals: jdk.vm.ci.meta.JavaValue
      StackMap stack:
            aload 5 /* value */
            instanceof jdk.vm.ci.meta.AllocatableValue
            ifeq 8
         6: .line 153
            aload 3 /* proc */
            aload 1 /* inst */
            aload 5 /* value */
            checkcast jdk.vm.ci.meta.AllocatableValue
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueConsumer.visitValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
         7: .line 154
            goto 18
      StackMap locals:
      StackMap stack:
         8: aload 5 /* value */
            instanceof jdk.vm.ci.code.StackLockValue
            ifeq 17
         9: .line 155
            aload 5 /* value */
            checkcast jdk.vm.ci.code.StackLockValue
            astore 6 /* monitor */
        start local 6 // jdk.vm.ci.code.StackLockValue monitor
        10: .line 156
            aload 6 /* monitor */
            invokevirtual jdk.vm.ci.code.StackLockValue.getOwner:()Ljdk/vm/ci/meta/JavaValue;
            astore 7 /* owner */
        start local 7 // jdk.vm.ci.meta.JavaValue owner
        11: .line 157
            aload 7 /* owner */
            instanceof jdk.vm.ci.meta.AllocatableValue
            ifeq 13
        12: .line 158
            aload 3 /* proc */
            aload 1 /* inst */
            aload 7 /* owner */
            checkcast jdk.vm.ci.meta.AllocatableValue
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueConsumer.visitValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
        13: .line 160
      StackMap locals: jdk.vm.ci.code.StackLockValue jdk.vm.ci.meta.JavaValue
      StackMap stack:
            aload 6 /* monitor */
            invokevirtual jdk.vm.ci.code.StackLockValue.getSlot:()Ljdk/vm/ci/meta/Value;
            astore 8 /* slot */
        start local 8 // jdk.vm.ci.meta.Value slot
        14: .line 161
            aload 8 /* slot */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 18
        15: .line 162
            aload 3 /* proc */
            aload 1 /* inst */
            aload 8 /* slot */
            getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.ALIVE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            getstatic org.graalvm.compiler.lir.LIRFrameState.STATE_FLAGS:Ljava/util/EnumSet;
            invokeinterface org.graalvm.compiler.lir.InstructionValueConsumer.visitValue:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
        end local 8 // jdk.vm.ci.meta.Value slot
        end local 7 // jdk.vm.ci.meta.JavaValue owner
        end local 6 // jdk.vm.ci.code.StackLockValue monitor
        16: .line 164
            goto 18
        17: .line 165
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.LIRFrameState.$assertionsDisabled:Z
            ifne 18
            aload 0 /* this */
            aload 5 /* value */
            invokevirtual org.graalvm.compiler.lir.LIRFrameState.unprocessed:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 5 // jdk.vm.ci.meta.JavaValue value
        18: .line 148
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 4 /* i */
            aload 2 /* values */
            arraylength
            if_icmplt 2
        end local 4 // int i
        20: .line 168
            return
        end local 3 // org.graalvm.compiler.lir.InstructionValueConsumer proc
        end local 2 // jdk.vm.ci.meta.JavaValue[] values
        end local 1 // org.graalvm.compiler.lir.LIRInstruction inst
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0   21     1     inst  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   21     2   values  [Ljdk/vm/ci/meta/JavaValue;
            0   21     3     proc  Lorg/graalvm/compiler/lir/InstructionValueConsumer;
            1   20     4        i  I
            3   18     5    value  Ljdk/vm/ci/meta/JavaValue;
           10   16     6  monitor  Ljdk/vm/ci/code/StackLockValue;
           11   16     7    owner  Ljdk/vm/ci/meta/JavaValue;
           14   16     8     slot  Ljdk/vm/ci/meta/Value;
    MethodParameters:
        Name  Flags
      inst    
      values  
      proc    

  private boolean unprocessed(jdk.vm.ci.meta.JavaValue);
    descriptor: (Ljdk/vm/ci/meta/JavaValue;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // jdk.vm.ci.meta.JavaValue value
         0: .line 171
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isIllegalJavaValue:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifeq 2
         1: .line 173
            iconst_1
            ireturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isConstantJavaValue:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifeq 4
         3: .line 176
            iconst_1
            ireturn
         4: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokestatic jdk.vm.ci.code.ValueUtil.isVirtualObject:(Ljdk/vm/ci/meta/JavaValue;)Z
            ifeq 7
         5: .line 178
            getstatic org.graalvm.compiler.lir.LIRFrameState.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 1 /* value */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 179
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 181
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.vm.ci.meta.JavaValue value
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    8     1  value  Ljdk/vm/ci/meta/JavaValue;
    MethodParameters:
       Name  Flags
      value  

  public void initDebugInfo(org.graalvm.compiler.lir.framemap.FrameMap, boolean);
    descriptor: (Lorg/graalvm/compiler/lir/framemap/FrameMap;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.framemap.FrameMap frameMap
        start local 2 // boolean canHaveRegisters
         0: .line 192
            aload 0 /* this */
            new jdk.vm.ci.code.DebugInfo
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.virtualObjects:[Ljdk/vm/ci/code/VirtualObject;
            invokespecial jdk.vm.ci.code.DebugInfo.<init>:(Ljdk/vm/ci/code/BytecodePosition;[Ljdk/vm/ci/code/VirtualObject;)V
            putfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
         1: .line 193
            return
        end local 2 // boolean canHaveRegisters
        end local 1 // org.graalvm.compiler.lir.framemap.FrameMap frameMap
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    2     1          frameMap  Lorg/graalvm/compiler/lir/framemap/FrameMap;
            0    2     2  canHaveRegisters  Z
    MethodParameters:
                  Name  Flags
      frameMap          
      canHaveRegisters  

  public org.graalvm.compiler.lir.util.IndexedValueMap getLiveBasePointers();
    descriptor: ()Lorg/graalvm/compiler/lir/util/IndexedValueMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
         0: .line 196
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
            areturn
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;

  public void setLiveBasePointers(org.graalvm.compiler.lir.util.IndexedValueMap);
    descriptor: (Lorg/graalvm/compiler/lir/util/IndexedValueMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
        start local 1 // org.graalvm.compiler.lir.util.IndexedValueMap liveBasePointers
         0: .line 200
            aload 0 /* this */
            aload 1 /* liveBasePointers */
            putfield org.graalvm.compiler.lir.LIRFrameState.liveBasePointers:Lorg/graalvm/compiler/lir/util/IndexedValueMap;
         1: .line 201
            return
        end local 1 // org.graalvm.compiler.lir.util.IndexedValueMap liveBasePointers
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/graalvm/compiler/lir/LIRFrameState;
            0    2     1  liveBasePointers  Lorg/graalvm/compiler/lir/util/IndexedValueMap;
    MethodParameters:
                  Name  Flags
      liveBasePointers  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRFrameState this
         0: .line 205
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            ifnull 1
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.debugInfo:Ljdk/vm/ci/code/DebugInfo;
            invokevirtual jdk.vm.ci.code.DebugInfo.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
            ifnull 2
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.LIRFrameState.topFrame:Ljdk/vm/ci/code/BytecodeFrame;
            invokevirtual jdk.vm.ci.code.BytecodeFrame.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc "<empty>"
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 0 // org.graalvm.compiler.lir.LIRFrameState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/lir/LIRFrameState;
}
SourceFile: "LIRFrameState.java"
InnerClasses:
  public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction