final class com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser
  super_class: java.lang.Object
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser;
            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 com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser;

  private static void addIfMissing(java.util.List<com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification>, com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification);
    descriptor: (Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.List specs
        start local 1 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification newSpec
         0: .line 107
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.$assertionsDisabled:Z
            ifne 1
            aload 1 /* newSpec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpeq 1
            aload 1 /* newSpec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.POINTER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpeq 1
            aload 1 /* newSpec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.FLOAT:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* specs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.List com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            astore 2 /* spec */
        start local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
         3: .line 109
            aload 2 /* spec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            aload 1 /* newSpec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 5
            aload 2 /* spec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getSize:()I
            aload 1 /* newSpec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getSize:()I
            if_icmpne 5
         4: .line 110
            return
        end local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
         5: .line 108
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 113
            aload 0 /* specs */
            aload 1 /* newSpec */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 114
            return
        end local 1 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification newSpec
        end local 0 // java.util.List specs
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0    specs  Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;
            0    8     1  newSpec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
            3    5     2     spec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;)V
    MethodParameters:
         Name  Flags
      specs    
      newSpec  

  static java.nio.ByteOrder parseDataLayout(java.lang.String, java.util.List<com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Ljava/nio/ByteOrder;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // java.lang.String layout
        start local 1 // java.util.List specs
         0: .line 126
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            astore 2 /* byteOrder */
        start local 2 // java.nio.ByteOrder byteOrder
         1: .line 127
            aload 0 /* layout */
            ldc "-"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* layoutSpecs */
        start local 3 // java.lang.String[] layoutSpecs
         2: .line 128
            aload 3 /* layoutSpecs */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* spec */
        start local 4 // java.lang.String spec
         4: .line 129
            aload 4 /* spec */
            ldc "E"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 130
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            astore 2 /* byteOrder */
         6: .line 131
            goto 14
         7: .line 133
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 4 /* spec */
            ldc "e"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 134
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            astore 2 /* byteOrder */
         9: .line 135
            goto 14
        10: .line 138
      StackMap locals:
      StackMap stack:
            aload 4 /* spec */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.getDataType:(Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            astore 8 /* type */
        start local 8 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType type
        11: .line 139
            aload 8 /* type */
            aload 4 /* spec */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.createDataTypeSpec:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
            astore 9 /* dataTypeSpec */
        start local 9 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification dataTypeSpec
        12: .line 140
            aload 9 /* dataTypeSpec */
            ifnull 14
        13: .line 141
            aload 1 /* specs */
            aload 9 /* dataTypeSpec */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification dataTypeSpec
        end local 8 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType type
        end local 4 // java.lang.String spec
        14: .line 128
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 3
        16: .line 146
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        17: goto 26
        18: .line 147
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] int
      StackMap stack:
            aload 1 /* specs */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            astore 5 /* spec */
        start local 5 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
        19: .line 148
            aload 5 /* spec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getType:()Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER_WIDTHS:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 25
        20: .line 149
            aload 5 /* spec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getValues:()[I
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 24
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] int com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification top int int int[]
      StackMap stack:
        21: aload 9
            iload 7
            iaload
            istore 6 /* value */
        start local 6 // int value
        22: .line 150
            aload 1 /* specs */
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            iload 6 /* value */
            iload 6 /* value */
            iload 6 /* value */
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.addIfMissing:(Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;)V
        end local 6 // int value
        23: .line 149
            iinc 7 1
      StackMap locals:
      StackMap stack:
        24: iload 7
            iload 8
            if_icmplt 21
        end local 5 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
        25: .line 146
      StackMap locals: java.lang.String java.util.List java.nio.ByteOrder java.lang.String[] int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 1 /* specs */
            invokeinterface java.util.List.size:()I
            if_icmplt 18
        end local 4 // int i
        27: .line 157
            aload 1 /* specs */
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.FLOAT:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            bipush 32
            bipush 32
            bipush 32
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.addIfMissing:(Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;)V
        28: .line 158
            aload 1 /* specs */
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.FLOAT:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            bipush 64
            bipush 64
            bipush 64
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.addIfMissing:(Ljava/util/List;Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;)V
        29: .line 161
            aload 1 /* specs */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.checkPointerType:(Ljava/util/List;)V
        30: .line 162
            aload 2 /* byteOrder */
            areturn
        end local 3 // java.lang.String[] layoutSpecs
        end local 2 // java.nio.ByteOrder byteOrder
        end local 1 // java.util.List specs
        end local 0 // java.lang.String layout
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   31     0        layout  Ljava/lang/String;
            0   31     1         specs  Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;
            1   31     2     byteOrder  Ljava/nio/ByteOrder;
            2   31     3   layoutSpecs  [Ljava/lang/String;
            4   14     4          spec  Ljava/lang/String;
           11   14     8          type  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
           12   14     9  dataTypeSpec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
           17   27     4             i  I
           19   25     5          spec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
           22   23     6         value  I
    Signature: (Ljava/lang/String;Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;)Ljava/nio/ByteOrder;
    MethodParameters:
        Name  Flags
      layout  
      specs   

  private static void checkPointerType(java.util.List<com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification>);
    descriptor: (Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // java.util.List specs
         0: .line 166
            iconst_0
            istore 1 /* isPointerTypeFound */
        start local 1 // boolean isPointerTypeFound
         1: .line 167
            aload 0 /* specs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.List int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            astore 2 /* spec */
        start local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
         3: .line 168
            aload 2 /* spec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.POINTER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 6
         4: .line 169
            iconst_1
            istore 1 /* isPointerTypeFound */
         5: .line 170
            goto 7
        end local 2 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
         6: .line 167
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 173
      StackMap locals: java.util.List int
      StackMap stack:
            iload 1 /* isPointerTypeFound */
            ifne 16
         8: .line 175
            iconst_m1
            istore 2 /* largestIntegerTypeSize */
        start local 2 // int largestIntegerTypeSize
         9: .line 176
            aload 0 /* specs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: java.util.List int int top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            astore 3 /* spec */
        start local 3 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
        11: .line 177
            aload 3 /* spec */
            getfield com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.type:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 13
            aload 3 /* spec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getSize:()I
            iload 2 /* largestIntegerTypeSize */
            if_icmple 13
        12: .line 178
            aload 3 /* spec */
            invokevirtual com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.getSize:()I
            istore 2 /* largestIntegerTypeSize */
        end local 3 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification spec
        13: .line 176
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 181
            iload 2 /* largestIntegerTypeSize */
            ifle 16
        15: .line 182
            aload 0 /* specs */
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.POINTER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            iload 2 /* largestIntegerTypeSize */
            iload 2 /* largestIntegerTypeSize */
            iload 2 /* largestIntegerTypeSize */
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // int largestIntegerTypeSize
        16: .line 185
      StackMap locals: java.util.List int
      StackMap stack:
            return
        end local 1 // boolean isPointerTypeFound
        end local 0 // java.util.List specs
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   17     0                   specs  Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;
            1   17     1      isPointerTypeFound  Z
            3    6     2                    spec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
            9   16     2  largestIntegerTypeSize  I
           11   13     3                    spec  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
    Signature: (Ljava/util/List<Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;>;)V
    MethodParameters:
       Name  Flags
      specs  

  private static com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification createDataTypeSpec(com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType, java.lang.String);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutParser$DataTypeSpecification;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType type
        start local 1 // java.lang.String spec
         0: .line 188
            aload 1 /* spec */
            ldc ":"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* components */
        start local 2 // java.lang.String[] components
         1: .line 190
            aload 2 /* components */
            iconst_0
            aload 2 /* components */
            iconst_0
            aaload
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
         2: .line 192
            aload 0 /* type */
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpeq 3
            aload 0 /* type */
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.FLOAT:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 8
         3: .line 193
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.$assertionsDisabled:Z
            ifne 4
            aload 2 /* components */
            arraylength
            iconst_1
            if_icmpge 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 194
      StackMap locals:
      StackMap stack:
            aload 2 /* components */
            iconst_0
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;I)I
            istore 3 /* size */
        start local 3 // int size
         5: .line 195
            aload 2 /* components */
            iconst_1
            iload 3 /* size */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;II)I
            istore 4 /* abiAlignment */
        start local 4 // int abiAlignment
         6: .line 196
            aload 2 /* components */
            iconst_2
            iload 4 /* abiAlignment */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;II)I
            istore 5 /* preferredAlignment */
        start local 5 // int preferredAlignment
         7: .line 197
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            aload 0 /* type */
            iload 3 /* size */
            iload 4 /* abiAlignment */
            iload 5 /* preferredAlignment */
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            areturn
        end local 5 // int preferredAlignment
        end local 4 // int abiAlignment
        end local 3 // int size
         8: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.POINTER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 14
         9: .line 199
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.$assertionsDisabled:Z
            ifne 10
            aload 2 /* components */
            arraylength
            iconst_2
            if_icmpge 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 200
      StackMap locals:
      StackMap stack:
            aload 2 /* components */
            iconst_1
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;I)I
            istore 3 /* size */
        start local 3 // int size
        11: .line 201
            aload 2 /* components */
            iconst_2
            iload 3 /* size */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;II)I
            istore 4 /* abiAlignment */
        start local 4 // int abiAlignment
        12: .line 202
            aload 2 /* components */
            iconst_3
            iload 4 /* abiAlignment */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;II)I
            istore 5 /* preferredAlignment */
        start local 5 // int preferredAlignment
        13: .line 203
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            aload 0 /* type */
            iload 3 /* size */
            iload 4 /* abiAlignment */
            iload 5 /* preferredAlignment */
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;III)V
            areturn
        end local 5 // int preferredAlignment
        end local 4 // int abiAlignment
        end local 3 // int size
        14: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER_WIDTHS:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            if_acmpne 16
        15: .line 205
            new com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
            dup
            aload 0 /* type */
            aload 2 /* components */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;)[I
            invokespecial com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification.<init>:(Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;[I)V
            areturn
        16: .line 207
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String[] components
        end local 1 // java.lang.String spec
        end local 0 // com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType type
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                type  Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            0   17     1                spec  Ljava/lang/String;
            1   17     2          components  [Ljava/lang/String;
            5    8     3                size  I
            6    8     4        abiAlignment  I
            7    8     5  preferredAlignment  I
           11   14     3                size  I
           12   14     4        abiAlignment  I
           13   14     5  preferredAlignment  I
    MethodParameters:
      Name  Flags
      type  
      spec  

  private static int[] convertToInt(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String[] components
         0: .line 212
            aload 0 /* components */
            arraylength
            newarray 10
            astore 1 /* values */
        start local 1 // int[] values
         1: .line 213
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 214
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* values */
            iload 2 /* i */
            aload 0 /* components */
            iload 2 /* i */
            invokestatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser.convertToInt:([Ljava/lang/String;I)I
            iastore
         4: .line 213
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* values */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 216
            aload 1 /* values */
            areturn
        end local 1 // int[] values
        end local 0 // java.lang.String[] components
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  components  [Ljava/lang/String;
            1    7     1      values  [I
            2    6     2           i  I
    MethodParameters:
            Name  Flags
      components  

  private static int convertToInt(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String[] components
        start local 1 // int index
         0: .line 220
            aload 0 /* components */
            iload 1 /* index */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ireturn
        end local 1 // int index
        end local 0 // java.lang.String[] components
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  components  [Ljava/lang/String;
            0    1     1       index  I
    MethodParameters:
            Name  Flags
      components  
      index       

  private static int convertToInt(java.lang.String[], int, int);
    descriptor: ([Ljava/lang/String;II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.String[] components
        start local 1 // int index
        start local 2 // int defaultValue
         0: .line 224
            iload 1 /* index */
            aload 0 /* components */
            arraylength
            if_icmplt 2
         1: .line 225
            iload 2 /* defaultValue */
            ireturn
         2: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* components */
            iload 1 /* index */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ireturn
        end local 2 // int defaultValue
        end local 1 // int index
        end local 0 // java.lang.String[] components
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0    components  [Ljava/lang/String;
            0    3     1         index  I
            0    3     2  defaultValue  I
    MethodParameters:
              Name  Flags
      components    
      index         
      defaultValue  

  private static com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType getDataType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String spec
         0: .line 232
            aload 0 /* spec */
            ldc "i"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 233
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            areturn
         2: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            ldc "f"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 235
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.FLOAT:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            areturn
         4: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            ldc "p"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 237
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.POINTER:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            areturn
         6: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            ldc "n"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 0 /* spec */
            ldc "ni"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 8
         7: .line 239
            getstatic com.oracle.truffle.llvm.runtime.datalayout.DataLayoutType.INTEGER_WIDTHS:Lcom/oracle/truffle/llvm/runtime/datalayout/DataLayoutType;
            areturn
         8: .line 241
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String spec
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  spec  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      spec  
}
SourceFile: "DataLayoutParser.java"
NestMembers:
  com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification
InnerClasses:
  final DataTypeSpecification = com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser$DataTypeSpecification of com.oracle.truffle.llvm.runtime.datalayout.DataLayoutParser