public final class com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  super_class: java.lang.Object
{
  private static final java.lang.String CHAR6;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._"

  private static final int DEFAULT_ID_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int MAX_BLOCK_DEPTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private final com.oracle.truffle.llvm.parser.scanner.BitStream bitstream;
    descriptor: Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.llvm.parser.listeners.ParserListener parser;
    descriptor: Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<com.oracle.truffle.llvm.parser.scanner.Block, java.util.List<com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[]>> defaultAbbreviations;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/scanner/Block;Ljava/util/List<[Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;>;>;

  private final java.util.List<com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[]> abbreviationDefinitions;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<[Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;>;

  private final java.util.Deque<com.oracle.truffle.llvm.parser.scanner.ScannerState> parents;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lcom/oracle/truffle/llvm/parser/scanner/ScannerState;>;

  private final com.oracle.truffle.llvm.parser.scanner.RecordBuffer recordBuffer;
    descriptor: Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.llvm.parser.scanner.Block block;
    descriptor: Lcom/oracle/truffle/llvm/parser/scanner/Block;
    flags: (0x0002) ACC_PRIVATE

  private int idSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long offset;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private void <init>(com.oracle.truffle.llvm.parser.scanner.BitStream, com.oracle.truffle.llvm.parser.listeners.ParserListener);
    descriptor: (Lcom/oracle/truffle/llvm/parser/scanner/BitStream;Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
        start local 2 // com.oracle.truffle.llvm.parser.listeners.ParserListener listener
         0: .line 75
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
         2: .line 65
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            iconst_3
            invokespecial java.util.ArrayDeque.<init>:(I)V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parents:Ljava/util/Deque;
         3: .line 67
            aload 0 /* this */
            new com.oracle.truffle.llvm.parser.scanner.RecordBuffer
            dup
            invokespecial com.oracle.truffle.llvm.parser.scanner.RecordBuffer.<init>:()V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
         4: .line 76
            aload 0 /* this */
            aload 1 /* bitstream */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
         5: .line 77
            aload 0 /* this */
            aload 2 /* listener */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
         6: .line 78
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Block.ROOT:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
         7: .line 79
            aload 0 /* this */
            iconst_2
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
         8: .line 80
            aload 0 /* this */
            lconst_0
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
         9: .line 81
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
        10: .line 82
            return
        end local 2 // com.oracle.truffle.llvm.parser.listeners.ParserListener listener
        end local 1 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0   11     1  bitstream  Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            0   11     2   listener  Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
    MethodParameters:
           Name  Flags
      bitstream  
      listener   

  public void <init>(com.oracle.truffle.llvm.parser.scanner.BitStream, com.oracle.truffle.llvm.parser.listeners.ParserListener, java.util.Map<com.oracle.truffle.llvm.parser.scanner.Block, java.util.List<com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[]>>, com.oracle.truffle.llvm.parser.scanner.Block, int, );
    descriptor: (Lcom/oracle/truffle/llvm/parser/scanner/BitStream;Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;Ljava/util/Map;Lcom/oracle/truffle/llvm/parser/scanner/Block;IJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=7
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
        start local 2 // com.oracle.truffle.llvm.parser.listeners.ParserListener parser
        start local 3 // java.util.Map defaultAbbreviations
        start local 4 // com.oracle.truffle.llvm.parser.scanner.Block block
        start local 5 // int idSize
        start local 6 // long offset
         0: .line 84
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
         2: .line 65
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            iconst_3
            invokespecial java.util.ArrayDeque.<init>:(I)V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parents:Ljava/util/Deque;
         3: .line 67
            aload 0 /* this */
            new com.oracle.truffle.llvm.parser.scanner.RecordBuffer
            dup
            invokespecial com.oracle.truffle.llvm.parser.scanner.RecordBuffer.<init>:()V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
         4: .line 85
            aload 0 /* this */
            aload 1 /* bitstream */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
         5: .line 86
            aload 0 /* this */
            aload 3 /* defaultAbbreviations */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
         6: .line 87
            aload 0 /* this */
            aload 4 /* block */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
         7: .line 88
            aload 0 /* this */
            iload 5 /* idSize */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
         8: .line 89
            aload 0 /* this */
            aload 2 /* parser */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
         9: .line 90
            aload 0 /* this */
            lload 6 /* offset */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
        10: .line 91
            return
        end local 6 // long offset
        end local 5 // int idSize
        end local 4 // com.oracle.truffle.llvm.parser.scanner.Block block
        end local 3 // java.util.Map defaultAbbreviations
        end local 2 // com.oracle.truffle.llvm.parser.listeners.ParserListener parser
        end local 1 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0   11     1             bitstream  Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            0   11     2                parser  Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            0   11     3  defaultAbbreviations  Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/scanner/Block;Ljava/util/List<[Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;>;>;
            0   11     4                 block  Lcom/oracle/truffle/llvm/parser/scanner/Block;
            0   11     5                idSize  I
            0   11     6                offset  J
    Signature: (Lcom/oracle/truffle/llvm/parser/scanner/BitStream;Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;Ljava/util/Map<Lcom/oracle/truffle/llvm/parser/scanner/Block;Ljava/util/List<[Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;>;>;Lcom/oracle/truffle/llvm/parser/scanner/Block;IJ)V
    MethodParameters:
                      Name  Flags
      bitstream             
      parser                
      defaultAbbreviations  
      block                 
      idSize                
      offset                

  public static void parseBitcode(org.graalvm.polyglot.io.ByteSequence, com.oracle.truffle.llvm.parser.model.ModelModule, com.oracle.truffle.api.source.Source);
    descriptor: (Lorg/graalvm/polyglot/io/ByteSequence;Lcom/oracle/truffle/llvm/parser/model/ModelModule;Lcom/oracle/truffle/api/source/Source;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.graalvm.polyglot.io.ByteSequence bitcode
        start local 1 // com.oracle.truffle.llvm.parser.model.ModelModule model
        start local 2 // com.oracle.truffle.api.source.Source bcSource
         0: .line 94
            aload 0 /* bitcode */
            invokestatic com.oracle.truffle.llvm.parser.scanner.BitStream.create:(Lorg/graalvm/polyglot/io/ByteSequence;)Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            astore 3 /* bitstream */
        start local 3 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
         1: .line 95
            new com.oracle.truffle.llvm.parser.listeners.BCFileRoot
            dup
            aload 1 /* model */
            aload 2 /* bcSource */
            invokespecial com.oracle.truffle.llvm.parser.listeners.BCFileRoot.<init>:(Lcom/oracle/truffle/llvm/parser/model/ModelModule;Lcom/oracle/truffle/api/source/Source;)V
            astore 4 /* fileParser */
        start local 4 // com.oracle.truffle.llvm.parser.listeners.BCFileRoot fileParser
         2: .line 96
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner
            dup
            aload 3 /* bitstream */
            aload 4 /* fileParser */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner.<init>:(Lcom/oracle/truffle/llvm/parser/scanner/BitStream;Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;)V
            astore 5 /* scanner */
        start local 5 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner scanner
         3: .line 97
            aload 5 /* scanner */
            bipush 32
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(I)J
            lstore 6 /* actualMagicWord */
        start local 6 // long actualMagicWord
         4: .line 98
            lload 6 /* actualMagicWord */
            getstatic com.oracle.truffle.llvm.runtime.Magic.BC_MAGIC_WORD:Lcom/oracle/truffle/llvm/runtime/Magic;
            getfield com.oracle.truffle.llvm.runtime.Magic.magic:J
            lcmp
            ifeq 6
         5: .line 99
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            ldc "Not a valid Bitcode File!"
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 102
      StackMap locals: org.graalvm.polyglot.io.ByteSequence com.oracle.truffle.llvm.parser.model.ModelModule com.oracle.truffle.api.source.Source com.oracle.truffle.llvm.parser.scanner.BitStream com.oracle.truffle.llvm.parser.listeners.BCFileRoot com.oracle.truffle.llvm.parser.scanner.LLVMScanner long
      StackMap stack:
            aload 5 /* scanner */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.scanToEnd:()V
         7: .line 106
            aload 4 /* fileParser */
            invokevirtual com.oracle.truffle.llvm.parser.listeners.BCFileRoot.exit:()V
         8: .line 107
            return
        end local 6 // long actualMagicWord
        end local 5 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner scanner
        end local 4 // com.oracle.truffle.llvm.parser.listeners.BCFileRoot fileParser
        end local 3 // com.oracle.truffle.llvm.parser.scanner.BitStream bitstream
        end local 2 // com.oracle.truffle.api.source.Source bcSource
        end local 1 // com.oracle.truffle.llvm.parser.model.ModelModule model
        end local 0 // org.graalvm.polyglot.io.ByteSequence bitcode
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0          bitcode  Lorg/graalvm/polyglot/io/ByteSequence;
            0    9     1            model  Lcom/oracle/truffle/llvm/parser/model/ModelModule;
            0    9     2         bcSource  Lcom/oracle/truffle/api/source/Source;
            1    9     3        bitstream  Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            2    9     4       fileParser  Lcom/oracle/truffle/llvm/parser/listeners/BCFileRoot;
            3    9     5          scanner  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            4    9     6  actualMagicWord  J
    MethodParameters:
          Name  Flags
      bitcode   
      model     
      bcSource  

  private static <V> java.util.List<V> subList(java.util.List<V>, int);
    descriptor: (Ljava/util/List;I)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.util.List original
        start local 1 // int from
         0: .line 110
            new java.util.ArrayList
            dup
            aload 0 /* original */
            invokeinterface java.util.List.size:()I
            iload 1 /* from */
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* newList */
        start local 2 // java.util.List newList
         1: .line 111
            iload 1 /* from */
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 112
      StackMap locals: java.util.List int
      StackMap stack:
            aload 2 /* newList */
            aload 0 /* original */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 111
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* original */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 3 // int i
         6: .line 114
            aload 2 /* newList */
            areturn
        end local 2 // java.util.List newList
        end local 1 // int from
        end local 0 // java.util.List original
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  original  Ljava/util/List<TV;>;
            0    7     1      from  I
            1    7     2   newList  Ljava/util/List<TV;>;
            2    6     3         i  I
    Signature: <V:Ljava/lang/Object;>(Ljava/util/List<TV;>;I)Ljava/util/List<TV;>;
    MethodParameters:
          Name  Flags
      original  
      from      

  private long read(int);
    descriptor: (I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // int bits
         0: .line 118
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            iload 1 /* bits */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.BitStream.read:(JI)J
            lstore 2 /* value */
        start local 2 // long value
         1: .line 119
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            iload 1 /* bits */
            i2l
            ladd
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
         2: .line 120
            lload 2 /* value */
            lreturn
        end local 2 // long value
        end local 1 // int bits
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0    3     1   bits  I
            1    3     2  value  J
    MethodParameters:
      Name  Flags
      bits  

  private long read(com.oracle.truffle.llvm.parser.scanner.Primitive);
    descriptor: (Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // com.oracle.truffle.llvm.parser.scanner.Primitive primitive
         0: .line 124
            aload 1 /* primitive */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.Primitive.isFixed:()Z
            ifeq 2
         1: .line 125
            aload 0 /* this */
            aload 1 /* primitive */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.Primitive.getBits:()I
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(I)J
            lreturn
         2: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* primitive */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.Primitive.getBits:()I
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.readVBR:(I)J
            lreturn
        end local 1 // com.oracle.truffle.llvm.parser.scanner.Primitive primitive
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0    3     1  primitive  Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
    MethodParameters:
           Name  Flags
      primitive  

  private long readChar();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 132
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.CHAR6:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 1 /* value */
        start local 1 // long value
         1: .line 133
            ldc "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._"
            lload 1 /* value */
            l2i
            invokevirtual java.lang.String.charAt:(I)C
            i2l
            lreturn
        end local 1 // long value
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            1    2     1  value  J

  private long readVBR(int);
    descriptor: (I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // int width
         0: .line 137
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            iload 1 /* width */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.BitStream.readVBR:(JI)J
            lstore 2 /* value */
        start local 2 // long value
         1: .line 138
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 2 /* value */
            iload 1 /* width */
            i2l
            invokestatic com.oracle.truffle.llvm.parser.scanner.BitStream.widthVBR:(JJ)J
            ladd
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
         2: .line 139
            lload 2 /* value */
            lreturn
        end local 2 // long value
        end local 1 // int width
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0    3     1  width  I
            1    3     2  value  J
    MethodParameters:
       Name  Flags
      width  

  private void scanToEnd();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 143
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.BitStream.size:()J
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.scanToOffset:(J)V
         1: .line 144
            return
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;

  private void scanToOffset(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // long to
         0: .line 147
            goto 12
         1: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(I)J
            l2i
            istore 3 /* id */
        start local 3 // int id
         2: .line 150
            iload 3 /* id */
            tableswitch { // 0 - 3
                    0: 3
                    1: 5
                    2: 7
                    3: 9
              default: 11
          }
         3: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.exitBlock:()V
         4: .line 153
            goto 12
         5: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.enterSubBlock:()V
         6: .line 157
            goto 12
         7: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defineAbbreviation:()V
         8: .line 161
            goto 12
         9: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.unabbreviatedRecord:()V
        10: .line 165
            goto 12
        11: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* id */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviatedRecord:(I)V
        end local 3 // int id
        12: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 1 /* to */
            lcmp
            iflt 1
        13: .line 173
            return
        end local 1 // long to
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0   14     1    to  J
            2   12     3    id  I
    MethodParameters:
      Name  Flags
      to    

  private void abbreviatedRecord(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // int recordId
         0: .line 176
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            iload 1 /* recordId */
            iconst_4
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[]
            astore 2 /* records */
        start local 2 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] records
         1: .line 177
            aload 2 /* records */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.oracle.truffle.llvm.parser.scanner.LLVMScanner int com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] top int int com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* record */
        start local 3 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord record
         3: .line 178
            aload 3 /* record */
            ifnull 5
         4: .line 179
            aload 3 /* record */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord.scan:(Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;)V
        end local 3 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord record
         5: .line 177
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 182
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.passRecordToParser:()V
         8: .line 183
            return
        end local 2 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] records
        end local 1 // int recordId
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0    9     1  recordId  I
            1    9     2   records  [Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;
            3    5     3    record  Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;
    MethodParameters:
          Name  Flags
      recordId  

  private void alignInt();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 186
            ldc 31
            lstore 1 /* mask */
        start local 1 // long mask
         1: .line 187
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 1 /* mask */
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 188
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 1 /* mask */
            ldc -1
            lxor
            land
            ldc 32
            ladd
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
         3: .line 190
      StackMap locals: long
      StackMap stack:
            return
        end local 1 // long mask
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            1    4     1  mask  J

  private void defineAbbreviation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 283
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.ABBREVIATED_RECORD_OPERANDS:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 1 /* operandCount */
        start local 1 // long operandCount
         1: .line 285
            lload 1 /* operandCount */
            l2i
            anewarray com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord
            astore 3 /* operandScanners */
        start local 3 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] operandScanners
         2: .line 287
            iconst_0
            istore 4 /* containsArrayOperand */
        start local 4 // boolean containsArrayOperand
         3: .line 288
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 28
         5: .line 291
      StackMap locals: com.oracle.truffle.llvm.parser.scanner.LLVMScanner long com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] int int
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.USER_OPERAND_LITERALBIT:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lconst_1
            lcmp
            ifne 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* isLiteral */
        start local 6 // boolean isLiteral
         8: .line 292
            iload 6 /* isLiteral */
            ifeq 12
         9: .line 293
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.USER_OPERAND_LITERAL:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 7 /* fixedValue */
        start local 7 // long fixedValue
        10: .line 294
            aload 3 /* operandScanners */
            iload 5 /* i */
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ConstantAbbreviatedRecord
            dup
            lload 7 /* fixedValue */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ConstantAbbreviatedRecord.<init>:(J)V
            aastore
        end local 7 // long fixedValue
        11: .line 296
            goto 27
        12: .line 298
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.USER_OPERAND_TYPE:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 7 /* recordType */
        start local 7 // long recordType
        13: .line 300
            lload 7 /* recordType */
            l2i
            tableswitch { // 1 - 5
                    1: 14
                    2: 17
                    3: 20
                    4: 22
                    5: 24
              default: 26
          }
        14: .line 302
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.USER_OPERAND_DATA:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            l2i
            istore 9 /* width */
        start local 9 // int width
        15: .line 303
            aload 3 /* operandScanners */
            iload 5 /* i */
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$FixedAbbreviatedRecord
            dup
            iload 9 /* width */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$FixedAbbreviatedRecord.<init>:(I)V
            aastore
        16: .line 304
            goto 27
        end local 9 // int width
        17: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.USER_OPERAND_DATA:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            l2i
            istore 9 /* width */
        start local 9 // int width
        18: .line 309
            aload 3 /* operandScanners */
            iload 5 /* i */
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$VBRAbbreviatedRecord
            dup
            iload 9 /* width */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$VBRAbbreviatedRecord.<init>:(I)V
            aastore
        19: .line 310
            goto 27
        end local 9 // int width
        20: .line 317
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* containsArrayOperand */
        21: .line 318
            goto 27
        22: .line 321
      StackMap locals:
      StackMap stack:
            aload 3 /* operandScanners */
            iload 5 /* i */
            getstatic com.oracle.truffle.llvm.parser.scanner.LLVMScanner$Char6AbbreviatedRecord.INSTANCE:Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner$Char6AbbreviatedRecord;
            aastore
        23: .line 322
            goto 27
        24: .line 325
      StackMap locals:
      StackMap stack:
            aload 3 /* operandScanners */
            iload 5 /* i */
            getstatic com.oracle.truffle.llvm.parser.scanner.LLVMScanner$BlobAbbreviatedRecord.INSTANCE:Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner$BlobAbbreviatedRecord;
            aastore
        25: .line 326
            goto 27
        26: .line 329
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.llvm.runtime.except.LLVMParserException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown ID in for record abbreviation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 7 /* recordType */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // long recordType
        end local 6 // boolean isLiteral
        27: .line 288
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 5 /* i */
            i2l
            lload 1 /* operandCount */
            lcmp
            iflt 5
        end local 5 // int i
        29: .line 334
            iload 4 /* containsArrayOperand */
            ifeq 33
        30: .line 335
            aload 3 /* operandScanners */
            aload 3 /* operandScanners */
            arraylength
            iconst_1
            isub
            aaload
            astore 5 /* elementScanner */
        start local 5 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord elementScanner
        31: .line 336
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ArrayAbbreviatedRecord
            dup
            aload 5 /* elementScanner */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ArrayAbbreviatedRecord.<init>:(Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;)V
            astore 6 /* arrayScanner */
        start local 6 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord arrayScanner
        32: .line 337
            aload 3 /* operandScanners */
            aload 3 /* operandScanners */
            arraylength
            iconst_1
            isub
            aload 6 /* arrayScanner */
            aastore
        end local 6 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord arrayScanner
        end local 5 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord elementScanner
        33: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            aload 3 /* operandScanners */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        34: .line 341
            return
        end local 4 // boolean containsArrayOperand
        end local 3 // com.oracle.truffle.llvm.parser.scanner.AbbreviatedRecord[] operandScanners
        end local 1 // long operandCount
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   35     0                  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            1   35     1          operandCount  J
            2   35     3       operandScanners  [Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;
            3   35     4  containsArrayOperand  Z
            4   29     5                     i  I
            8   27     6             isLiteral  Z
           10   11     7            fixedValue  J
           13   27     7            recordType  J
           15   17     9                 width  I
           18   20     9                 width  I
           31   33     5        elementScanner  Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;
           32   33     6          arrayScanner  Lcom/oracle/truffle/llvm/parser/scanner/AbbreviatedRecord;

  private void enterSubBlock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=11, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 344
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.SUBBLOCK_ID:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 1 /* blockId */
        start local 1 // long blockId
         1: .line 345
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.SUBBLOCK_ID_SIZE:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 3 /* newIdSize */
        start local 3 // long newIdSize
         2: .line 346
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.alignInt:()V
         3: .line 347
            aload 0 /* this */
            bipush 32
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(I)J
            lstore 5 /* numWords */
        start local 5 // long numWords
         4: .line 348
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 5 /* numWords */
            ldc 32
            lmul
            ladd
            lstore 7 /* endingOffset */
        start local 7 // long endingOffset
         5: .line 350
            lload 1 /* blockId */
            invokestatic com.oracle.truffle.llvm.parser.scanner.Block.lookup:(J)Lcom/oracle/truffle/llvm/parser/scanner/Block;
            astore 9 /* subBlock */
        start local 9 // com.oracle.truffle.llvm.parser.scanner.Block subBlock
         6: .line 351
            aload 9 /* subBlock */
            ifnull 7
            aload 9 /* subBlock */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.Block.skip:()Z
            ifeq 9
         7: .line 352
      StackMap locals: com.oracle.truffle.llvm.parser.scanner.LLVMScanner long long long long com.oracle.truffle.llvm.parser.scanner.Block
      StackMap stack:
            aload 0 /* this */
            lload 7 /* endingOffset */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
         8: .line 354
            goto 18
      StackMap locals:
      StackMap stack:
         9: aload 9 /* subBlock */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.Block.parseLazily:()Z
            ifeq 14
        10: .line 355
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.bitstream:Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
            lload 7 /* endingOffset */
            lload 3 /* newIdSize */
            l2i
            aload 9 /* subBlock */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner.<init>:(Lcom/oracle/truffle/llvm/parser/scanner/BitStream;Ljava/util/Map;JJILcom/oracle/truffle/llvm/parser/scanner/Block;)V
            astore 10 /* lazyScanner */
        start local 10 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner lazyScanner
        11: .line 356
            aload 0 /* this */
            lload 7 /* endingOffset */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.offset:J
        12: .line 357
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            aload 9 /* subBlock */
            aload 10 /* lazyScanner */
            invokeinterface com.oracle.truffle.llvm.parser.listeners.ParserListener.skip:(Lcom/oracle/truffle/llvm/parser/scanner/Block;Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner$LazyScanner;)V
        end local 10 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner lazyScanner
        13: .line 359
            goto 18
        14: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.size:()I
            istore 10 /* localAbbreviationDefinitionsOffset */
        start local 10 // int localAbbreviationDefinitionsOffset
        15: .line 361
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parents:Ljava/util/Deque;
            new com.oracle.truffle.llvm.parser.scanner.ScannerState
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            iload 10 /* localAbbreviationDefinitionsOffset */
            invokestatic com.oracle.truffle.llvm.parser.scanner.LLVMScanner.subList:(Ljava/util/List;I)Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            invokespecial com.oracle.truffle.llvm.parser.scanner.ScannerState.<init>:(Ljava/util/List;Lcom/oracle/truffle/llvm/parser/scanner/Block;ILcom/oracle/truffle/llvm/parser/listeners/ParserListener;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        16: .line 362
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            aload 9 /* subBlock */
            invokeinterface com.oracle.truffle.llvm.parser.listeners.ParserListener.enter:(Lcom/oracle/truffle/llvm/parser/scanner/Block;)Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
        17: .line 363
            aload 0 /* this */
            aload 9 /* subBlock */
            lload 3 /* newIdSize */
            l2i
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.startSubBlock:(Lcom/oracle/truffle/llvm/parser/scanner/Block;I)V
        end local 10 // int localAbbreviationDefinitionsOffset
        18: .line 365
      StackMap locals:
      StackMap stack:
            return
        end local 9 // com.oracle.truffle.llvm.parser.scanner.Block subBlock
        end local 7 // long endingOffset
        end local 5 // long numWords
        end local 3 // long newIdSize
        end local 1 // long blockId
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot                                Name  Signature
            0   19     0                                this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            1   19     1                             blockId  J
            2   19     3                           newIdSize  J
            4   19     5                            numWords  J
            5   19     7                        endingOffset  J
            6   19     9                            subBlock  Lcom/oracle/truffle/llvm/parser/scanner/Block;
           11   13    10                         lazyScanner  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner$LazyScanner;
           15   18    10  localAbbreviationDefinitionsOffset  I

  private void startSubBlock(com.oracle.truffle.llvm.parser.scanner.Block, int);
    descriptor: (Lcom/oracle/truffle/llvm/parser/scanner/Block;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
        start local 1 // com.oracle.truffle.llvm.parser.scanner.Block subBlock
        start local 2 // int newIdSize
         0: .line 368
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 369
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
            aload 1 /* subBlock */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 370
            aload 0 /* this */
            aload 1 /* subBlock */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
         3: .line 371
            aload 0 /* this */
            iload 2 /* newIdSize */
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
         4: .line 373
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            getstatic com.oracle.truffle.llvm.parser.scanner.Block.BLOCKINFO:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            if_acmpne 7
         5: .line 374
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            astore 3 /* parentListener */
        start local 3 // com.oracle.truffle.llvm.parser.listeners.ParserListener parentListener
         6: .line 375
            aload 0 /* this */
            new com.oracle.truffle.llvm.parser.scanner.LLVMScanner$1
            dup
            aload 0 /* this */
            aload 3 /* parentListener */
            invokespecial com.oracle.truffle.llvm.parser.scanner.LLVMScanner$1.<init>:(Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;)V
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
        end local 3 // com.oracle.truffle.llvm.parser.listeners.ParserListener parentListener
         7: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int newIdSize
        end local 1 // com.oracle.truffle.llvm.parser.scanner.Block subBlock
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            0    8     1        subBlock  Lcom/oracle/truffle/llvm/parser/scanner/Block;
            0    8     2       newIdSize  I
            6    7     3  parentListener  Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
    MethodParameters:
           Name  Flags
      subBlock   
      newIdSize  

  private void exitBlock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 414
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.alignInt:()V
         1: .line 415
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            invokeinterface com.oracle.truffle.llvm.parser.listeners.ParserListener.exit:()V
         2: .line 417
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parents:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 4
         3: .line 419
            return
         4: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parents:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.parser.scanner.ScannerState
            astore 1 /* parentState */
        start local 1 // com.oracle.truffle.llvm.parser.scanner.ScannerState parentState
         5: .line 423
            aload 0 /* this */
            aload 1 /* parentState */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.ScannerState.getBlock:()Lcom/oracle/truffle/llvm/parser/scanner/Block;
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
         6: .line 425
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         7: .line 426
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.defaultAbbreviations:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.block:Lcom/oracle/truffle/llvm/parser/scanner/Block;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 427
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.abbreviationDefinitions:Ljava/util/List;
            aload 1 /* parentState */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.ScannerState.getAbbreviatedRecords:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 429
            aload 0 /* this */
            aload 1 /* parentState */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.ScannerState.getIdSize:()I
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.idSize:I
        10: .line 430
            aload 0 /* this */
            aload 1 /* parentState */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.ScannerState.getParser:()Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            putfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
        11: .line 431
            return
        end local 1 // com.oracle.truffle.llvm.parser.scanner.ScannerState parentState
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            5   12     1  parentState  Lcom/oracle/truffle/llvm/parser/scanner/ScannerState;

  private void passRecordToParser();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 434
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.parser:Lcom/oracle/truffle/llvm/parser/listeners/ParserListener;
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
            invokeinterface com.oracle.truffle.llvm.parser.listeners.ParserListener.record:(Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;)V
         1: .line 435
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.RecordBuffer.invalidate:()V
         2: .line 436
            return
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;

  private void unabbreviatedRecord();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
         0: .line 439
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.UNABBREVIATED_RECORD_ID:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 1 /* recordId */
        start local 1 // long recordId
         1: .line 440
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
            lload 1 /* recordId */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.RecordBuffer.addOp:(J)V
         2: .line 442
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.UNABBREVIATED_RECORD_OPS:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 3 /* opCount */
        start local 3 // long opCount
         3: .line 443
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
            lload 3 /* opCount */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.RecordBuffer.ensureFits:(J)V
         4: .line 446
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 9
         6: .line 447
      StackMap locals: com.oracle.truffle.llvm.parser.scanner.LLVMScanner long long top top int
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.llvm.parser.scanner.Primitive.UNABBREVIATED_RECORD_OPERAND:Lcom/oracle/truffle/llvm/parser/scanner/Primitive;
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.read:(Lcom/oracle/truffle/llvm/parser/scanner/Primitive;)J
            lstore 5 /* op */
        start local 5 // long op
         7: .line 448
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.parser.scanner.LLVMScanner.recordBuffer:Lcom/oracle/truffle/llvm/parser/scanner/RecordBuffer;
            lload 5 /* op */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.RecordBuffer.addOpNoCheck:(J)V
         8: .line 446
            iinc 7 /* i */ 1
        end local 5 // long op
      StackMap locals:
      StackMap stack:
         9: iload 7 /* i */
            i2l
            lload 3 /* opCount */
            lcmp
            iflt 6
        end local 7 // int i
        10: .line 450
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.parser.scanner.LLVMScanner.passRecordToParser:()V
        11: .line 451
            return
        end local 3 // long opCount
        end local 1 // long recordId
        end local 0 // com.oracle.truffle.llvm.parser.scanner.LLVMScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/oracle/truffle/llvm/parser/scanner/LLVMScanner;
            1   12     1  recordId  J
            3   12     3   opCount  J
            7    9     5        op  J
            5   10     7         i  I
}
SourceFile: "LLVMScanner.java"
NestMembers:
  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$1  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ArrayAbbreviatedRecord  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$BlobAbbreviatedRecord  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$Char6AbbreviatedRecord  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ConstantAbbreviatedRecord  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$FixedAbbreviatedRecord  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$VBRAbbreviatedRecord
InnerClasses:
  com.oracle.truffle.llvm.parser.scanner.LLVMScanner$1
  private final ArrayAbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ArrayAbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  private final BlobAbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$BlobAbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  private final Char6AbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$Char6AbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  private final ConstantAbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$ConstantAbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  private final FixedAbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$FixedAbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  public final LazyScanner = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$LazyScanner of com.oracle.truffle.llvm.parser.scanner.LLVMScanner
  private final VBRAbbreviatedRecord = com.oracle.truffle.llvm.parser.scanner.LLVMScanner$VBRAbbreviatedRecord of com.oracle.truffle.llvm.parser.scanner.LLVMScanner