public class com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder
  super_class: java.lang.Object
{
  static final int NO_SOURCE_POSITION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  static final int NO_CALLER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/code/DeoptimizationSourcePositionDecoder;

  public static org.graalvm.compiler.graph.NodeSourcePosition decode(int, org.graalvm.nativeimage.c.function.CodePointer);
    descriptor: (ILorg/graalvm/nativeimage/c/function/CodePointer;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // int deoptId
        start local 1 // org.graalvm.nativeimage.c.function.CodePointer ip
         0: .line 45
            aload 1 /* ip */
            invokestatic com.oracle.svm.core.code.CodeInfoTable.lookupCodeInfo:(Lorg/graalvm/nativeimage/c/function/CodePointer;)Lcom/oracle/svm/core/code/UntetheredCodeInfo;
            astore 2 /* untetheredInfo */
        start local 2 // com.oracle.svm.core.code.UntetheredCodeInfo untetheredInfo
         1: .line 46
            aload 2 /* untetheredInfo */
            invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.isNull:()Z
            ifne 2
            aload 2 /* untetheredInfo */
            invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeInfo:()Lcom/oracle/svm/core/code/CodeInfo;
            invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.equal:(Lorg/graalvm/word/ComparableWord;)Z
            ifeq 3
         2: .line 48
      StackMap locals: com.oracle.svm.core.code.UntetheredCodeInfo
      StackMap stack:
            aconst_null
            areturn
         3: .line 51
      StackMap locals:
      StackMap stack:
            aload 2 /* untetheredInfo */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.acquireTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;)Ljava/lang/Object;
            astore 3 /* tether */
        start local 3 // java.lang.Object tether
         4: .line 53
            aload 2 /* untetheredInfo */
            aload 3 /* tether */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.convert:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)Lcom/oracle/svm/core/code/CodeInfo;
            astore 4 /* info */
        start local 4 // com.oracle.svm.core.code.CodeInfo info
         5: .line 54
            iload 0 /* deoptId */
            aload 4 /* info */
            invokestatic com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder.decode0:(ILcom/oracle/svm/core/code/CodeInfo;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6
         6: .line 56
            aload 2 /* untetheredInfo */
            aload 3 /* tether */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.releaseTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)V
         7: .line 54
            aload 6
            areturn
        end local 4 // com.oracle.svm.core.code.CodeInfo info
         8: .line 55
      StackMap locals: int org.graalvm.nativeimage.c.function.CodePointer com.oracle.svm.core.code.UntetheredCodeInfo java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 5
         9: .line 56
            aload 2 /* untetheredInfo */
            aload 3 /* tether */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.releaseTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)V
        10: .line 57
            aload 5
            athrow
        end local 3 // java.lang.Object tether
        end local 2 // com.oracle.svm.core.code.UntetheredCodeInfo untetheredInfo
        end local 1 // org.graalvm.nativeimage.c.function.CodePointer ip
        end local 0 // int deoptId
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0         deoptId  I
            0   11     1              ip  Lorg/graalvm/nativeimage/c/function/CodePointer;
            1   11     2  untetheredInfo  Lcom/oracle/svm/core/code/UntetheredCodeInfo;
            4   11     3          tether  Ljava/lang/Object;
            5    8     4            info  Lcom/oracle/svm/core/code/CodeInfo;
      Exception table:
        from    to  target  type
           4     6       8  any
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Must prevent the GC from freeing the CodeInfo object.")
    MethodParameters:
         Name  Flags
      deoptId  
      ip       

  private static org.graalvm.compiler.graph.NodeSourcePosition decode0(int, com.oracle.svm.core.code.CodeInfo);
    descriptor: (ILcom/oracle/svm/core/code/CodeInfo;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int deoptId
        start local 1 // com.oracle.svm.core.code.CodeInfo info
         0: .line 62
            iload 0 /* deoptId */
            aload 1 /* info */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.getDeoptimizationStartOffsets:(Lcom/oracle/svm/core/code/CodeInfo;)Lcom/oracle/svm/core/c/NonmovableArray;
            aload 1 /* info */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.getDeoptimizationEncodings:(Lcom/oracle/svm/core/code/CodeInfo;)Lcom/oracle/svm/core/c/NonmovableArray;
            aload 1 /* info */
            invokestatic com.oracle.svm.core.code.CodeInfoAccess.getDeoptimizationObjectConstants:(Lcom/oracle/svm/core/code/CodeInfo;)Lcom/oracle/svm/core/c/NonmovableObjectArray;
            invokestatic com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder.decode:(ILcom/oracle/svm/core/c/NonmovableArray;Lcom/oracle/svm/core/c/NonmovableArray;Lcom/oracle/svm/core/c/NonmovableObjectArray;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
            areturn
        end local 1 // com.oracle.svm.core.code.CodeInfo info
        end local 0 // int deoptId
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  deoptId  I
            0    1     1     info  Lcom/oracle/svm/core/code/CodeInfo;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Wrap the now safe call to interruptibly decode the source position.", calleeMustBe = false)
    MethodParameters:
         Name  Flags
      deoptId  
      info     

  static org.graalvm.compiler.graph.NodeSourcePosition decode(int, com.oracle.svm.core.c.NonmovableArray<java.lang.Integer>, com.oracle.svm.core.c.NonmovableArray<java.lang.Byte>, com.oracle.svm.core.c.NonmovableObjectArray<java.lang.Object>);
    descriptor: (ILcom/oracle/svm/core/c/NonmovableArray;Lcom/oracle/svm/core/c/NonmovableArray;Lcom/oracle/svm/core/c/NonmovableObjectArray;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // int deoptId
        start local 1 // com.oracle.svm.core.c.NonmovableArray deoptimizationStartOffsets
        start local 2 // com.oracle.svm.core.c.NonmovableArray deoptimizationEncodings
        start local 3 // com.oracle.svm.core.c.NonmovableObjectArray deoptimizationObjectConstants
         0: .line 67
            iload 0 /* deoptId */
            iflt 1
            iload 0 /* deoptId */
            aload 1 /* deoptimizationStartOffsets */
            invokestatic com.oracle.svm.core.c.NonmovableArrays.lengthOf:(Lcom/oracle/svm/core/c/NonmovableArray;)I
            if_icmplt 2
         1: .line 68
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 71
      StackMap locals:
      StackMap stack:
            aload 1 /* deoptimizationStartOffsets */
            iload 0 /* deoptId */
            invokestatic com.oracle.svm.core.c.NonmovableArrays.getInt:(Lcom/oracle/svm/core/c/NonmovableArray;I)I
            istore 4 /* startOffset */
        start local 4 // int startOffset
         3: .line 72
            iload 4 /* startOffset */
            iconst_m1
            if_icmpne 5
         4: .line 73
            aconst_null
            areturn
         5: .line 76
      StackMap locals: int
      StackMap stack:
            new com.oracle.svm.core.util.NonmovableByteArrayTypeReader
            dup
            aload 2 /* deoptimizationEncodings */
            lconst_0
            invokespecial com.oracle.svm.core.util.NonmovableByteArrayTypeReader.<init>:(Lcom/oracle/svm/core/c/NonmovableArray;J)V
            astore 5 /* readBuffer */
        start local 5 // com.oracle.svm.core.util.NonmovableByteArrayTypeReader readBuffer
         6: .line 77
            iload 4 /* startOffset */
            i2l
            aload 3 /* deoptimizationObjectConstants */
            aload 5 /* readBuffer */
            invokestatic com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder.decodeSourcePosition:(JLcom/oracle/svm/core/c/NonmovableObjectArray;Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
            areturn
        end local 5 // com.oracle.svm.core.util.NonmovableByteArrayTypeReader readBuffer
        end local 4 // int startOffset
        end local 3 // com.oracle.svm.core.c.NonmovableObjectArray deoptimizationObjectConstants
        end local 2 // com.oracle.svm.core.c.NonmovableArray deoptimizationEncodings
        end local 1 // com.oracle.svm.core.c.NonmovableArray deoptimizationStartOffsets
        end local 0 // int deoptId
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    7     0                        deoptId  I
            0    7     1     deoptimizationStartOffsets  Lcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Integer;>;
            0    7     2        deoptimizationEncodings  Lcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Byte;>;
            0    7     3  deoptimizationObjectConstants  Lcom/oracle/svm/core/c/NonmovableObjectArray<Ljava/lang/Object;>;
            3    7     4                    startOffset  I
            6    7     5                     readBuffer  Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;
    Signature: (ILcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Integer;>;Lcom/oracle/svm/core/c/NonmovableArray<Ljava/lang/Byte;>;Lcom/oracle/svm/core/c/NonmovableObjectArray<Ljava/lang/Object;>;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    MethodParameters:
                               Name  Flags
      deoptId                        
      deoptimizationStartOffsets     
      deoptimizationEncodings        
      deoptimizationObjectConstants  

  private static org.graalvm.compiler.graph.NodeSourcePosition decodeSourcePosition(long, com.oracle.svm.core.c.NonmovableObjectArray<java.lang.Object>, com.oracle.svm.core.util.NonmovableByteArrayTypeReader);
    descriptor: (JLcom/oracle/svm/core/c/NonmovableObjectArray;Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // long startOffset
        start local 2 // com.oracle.svm.core.c.NonmovableObjectArray deoptimizationObjectConstants
        start local 3 // com.oracle.svm.core.util.NonmovableByteArrayTypeReader readBuffer
         0: .line 81
            aload 3 /* readBuffer */
            lload 0 /* startOffset */
            invokevirtual com.oracle.svm.core.util.NonmovableByteArrayTypeReader.setByteIndex:(J)V
         1: .line 82
            aload 3 /* readBuffer */
            invokevirtual com.oracle.svm.core.util.NonmovableByteArrayTypeReader.getUV:()J
            lstore 4 /* callerRelativeOffset */
        start local 4 // long callerRelativeOffset
         2: .line 83
            aload 3 /* readBuffer */
            invokevirtual com.oracle.svm.core.util.NonmovableByteArrayTypeReader.getSVInt:()I
            istore 6 /* bci */
        start local 6 // int bci
         3: .line 84
            aload 2 /* deoptimizationObjectConstants */
            aload 3 /* readBuffer */
            invokevirtual com.oracle.svm.core.util.NonmovableByteArrayTypeReader.getUVInt:()I
            invokestatic com.oracle.svm.core.c.NonmovableArrays.getObject:(Lcom/oracle/svm/core/c/NonmovableObjectArray;I)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            astore 7 /* method */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
         4: .line 86
            aconst_null
            astore 8 /* caller */
        start local 8 // org.graalvm.compiler.graph.NodeSourcePosition caller
         5: .line 87
            lload 4 /* callerRelativeOffset */
            lconst_0
            lcmp
            ifeq 7
         6: .line 88
            lload 0 /* startOffset */
            lload 4 /* callerRelativeOffset */
            lsub
            aload 2 /* deoptimizationObjectConstants */
            aload 3 /* readBuffer */
            invokestatic com.oracle.svm.core.code.DeoptimizationSourcePositionDecoder.decodeSourcePosition:(JLcom/oracle/svm/core/c/NonmovableObjectArray;Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 8 /* caller */
         7: .line 91
      StackMap locals: long com.oracle.svm.core.c.NonmovableObjectArray com.oracle.svm.core.util.NonmovableByteArrayTypeReader long int jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.graph.NodeSourcePosition
      StackMap stack:
            new org.graalvm.compiler.graph.NodeSourcePosition
            dup
            aload 8 /* caller */
            aload 7 /* method */
            iload 6 /* bci */
            invokespecial org.graalvm.compiler.graph.NodeSourcePosition.<init>:(Lorg/graalvm/compiler/graph/NodeSourcePosition;Ljdk/vm/ci/meta/ResolvedJavaMethod;I)V
            areturn
        end local 8 // org.graalvm.compiler.graph.NodeSourcePosition caller
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 6 // int bci
        end local 4 // long callerRelativeOffset
        end local 3 // com.oracle.svm.core.util.NonmovableByteArrayTypeReader readBuffer
        end local 2 // com.oracle.svm.core.c.NonmovableObjectArray deoptimizationObjectConstants
        end local 0 // long startOffset
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    8     0                    startOffset  J
            0    8     2  deoptimizationObjectConstants  Lcom/oracle/svm/core/c/NonmovableObjectArray<Ljava/lang/Object;>;
            0    8     3                     readBuffer  Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;
            2    8     4           callerRelativeOffset  J
            3    8     6                            bci  I
            4    8     7                         method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            5    8     8                         caller  Lorg/graalvm/compiler/graph/NodeSourcePosition;
    Signature: (JLcom/oracle/svm/core/c/NonmovableObjectArray<Ljava/lang/Object;>;Lcom/oracle/svm/core/util/NonmovableByteArrayTypeReader;)Lorg/graalvm/compiler/graph/NodeSourcePosition;
    MethodParameters:
                               Name  Flags
      startOffset                    
      deoptimizationObjectConstants  
      readBuffer                     
}
SourceFile: "DeoptimizationSourcePositionDecoder.java"