public final class com.oracle.truffle.llvm.parser.scanner.BitStream
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.llvm.parser.scanner.BitStream
super_class: java.lang.Object
{
private static final int BYTE_BITS_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int BYTE_BITS_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final long BYTE_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 255
private final org.graalvm.polyglot.io.ByteSequence bitstream;
descriptor: Lorg/graalvm/polyglot/io/ByteSequence;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void <init>(org.graalvm.polyglot.io.ByteSequence);
descriptor: (Lorg/graalvm/polyglot/io/ByteSequence;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
start local 1 // org.graalvm.polyglot.io.ByteSequence bitstream
0: .line 43
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 44
aload 0 /* this */
aload 1 /* bitstream */
putfield com.oracle.truffle.llvm.parser.scanner.BitStream.bitstream:Lorg/graalvm/polyglot/io/ByteSequence;
2: .line 45
return
end local 1 // org.graalvm.polyglot.io.ByteSequence bitstream
end local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
0 3 1 bitstream Lorg/graalvm/polyglot/io/ByteSequence;
MethodParameters:
Name Flags
bitstream
public static com.oracle.truffle.llvm.parser.scanner.BitStream create(org.graalvm.polyglot.io.ByteSequence);
descriptor: (Lorg/graalvm/polyglot/io/ByteSequence;)Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.graalvm.polyglot.io.ByteSequence bytes
0: .line 49
new com.oracle.truffle.llvm.parser.scanner.BitStream
dup
aload 0 /* bytes */
invokespecial com.oracle.truffle.llvm.parser.scanner.BitStream.<init>:(Lorg/graalvm/polyglot/io/ByteSequence;)V
areturn
end local 0 // org.graalvm.polyglot.io.ByteSequence bytes
LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes Lorg/graalvm/polyglot/io/ByteSequence;
MethodParameters:
Name Flags
bytes
public static com.oracle.truffle.llvm.parser.scanner.BitStream createFromBlob(long[], int);
descriptor: ([JI)Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 // long[] args
start local 1 // int blobStartIndex
0: .line 53
aload 0 /* args */
arraylength
iload 1 /* blobStartIndex */
isub
bipush 8
imul
newarray 8
astore 2 /* blob */
start local 2 // byte[] blob
1: .line 54
iconst_0
istore 3 /* to */
start local 3 // int to
2: .line 55
iload 1 /* blobStartIndex */
istore 4 /* from */
start local 4 // int from
3: goto 11
4: .line 56
StackMap locals: byte[] int int
StackMap stack:
aload 0 /* args */
iload 4 /* from */
laload
lstore 5 /* l */
start local 5 // long l
5: .line 57
iconst_0
istore 7 /* i */
start local 7 // int i
6: goto 9
7: .line 58
StackMap locals: long int
StackMap stack:
aload 2 /* blob */
iload 3 /* to */
iinc 3 /* to */ 1
lload 5 /* l */
bipush 8
iload 7 /* i */
imul
lshr
ldc 255
land
l2i
i2b
bastore
8: .line 57
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 7 /* i */
bipush 8
if_icmplt 7
end local 7 // int i
end local 5 // long l
10: .line 55
iinc 4 /* from */ 1
StackMap locals:
StackMap stack:
11: iload 4 /* from */
aload 0 /* args */
arraylength
if_icmplt 4
end local 4 // int from
12: .line 61
new com.oracle.truffle.llvm.parser.scanner.BitStream
dup
aload 2 /* blob */
invokestatic org.graalvm.polyglot.io.ByteSequence.create:([B)Lorg/graalvm/polyglot/io/ByteSequence;
invokespecial com.oracle.truffle.llvm.parser.scanner.BitStream.<init>:(Lorg/graalvm/polyglot/io/ByteSequence;)V
areturn
end local 3 // int to
end local 2 // byte[] blob
end local 1 // int blobStartIndex
end local 0 // long[] args
LocalVariableTable:
Start End Slot Name Signature
0 13 0 args [J
0 13 1 blobStartIndex I
1 13 2 blob [B
2 13 3 to I
3 12 4 from I
5 10 5 l J
6 10 7 i I
MethodParameters:
Name Flags
args
blobStartIndex
public static long widthVBR(long, long);
descriptor: (JJ)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 // long value
start local 2 // long width
0: .line 65
lconst_0
lstore 4 /* total */
start local 4 // long total
1: .line 66
lload 0 /* value */
lstore 6 /* v */
start local 6 // long v
2: .line 68
StackMap locals: long long
StackMap stack:
lload 4 /* total */
lload 2 /* width */
ladd
lstore 4 /* total */
3: .line 69
lload 6 /* v */
lload 2 /* width */
lconst_1
lsub
l2i
lushr
lstore 6 /* v */
4: .line 70
lload 6 /* v */
lconst_0
lcmp
ifne 2
5: .line 71
lload 4 /* total */
lreturn
end local 6 // long v
end local 4 // long total
end local 2 // long width
end local 0 // long value
LocalVariableTable:
Start End Slot Name Signature
0 6 0 value J
0 6 2 width J
1 6 4 total J
2 6 6 v J
MethodParameters:
Name Flags
value
width
public long read(long, int);
descriptor: (JI)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=3
start local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
start local 1 // long offset
start local 3 // int bits
0: .line 75
iload 3 /* bits */
i2l
ldc 64
invokestatic java.lang.Long.compareUnsigned:(JJ)I
ifle 2
1: .line 76
new com.oracle.truffle.llvm.runtime.except.LLVMParserException
dup
ldc "Cannot read more than %s bits (%s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
bipush 64
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3 /* bits */
invokestatic java.lang.Integer.toUnsignedString:(I)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
athrow
2: .line 78
StackMap locals:
StackMap stack:
lload 1 /* offset */
iconst_3
lshr
l2i
istore 4 /* byteIndex */
start local 4 // int byteIndex
3: .line 79
lload 1 /* offset */
ldc 7
land
l2i
istore 5 /* bitOffsetInByte */
start local 5 // int bitOffsetInByte
4: .line 80
bipush 8
iload 5 /* bitOffsetInByte */
isub
istore 6 /* availableBits */
start local 6 // int availableBits
5: .line 82
aload 0 /* this */
getfield com.oracle.truffle.llvm.parser.scanner.BitStream.bitstream:Lorg/graalvm/polyglot/io/ByteSequence;
iload 4 /* byteIndex */
iinc 4 /* byteIndex */ 1
invokeinterface org.graalvm.polyglot.io.ByteSequence.byteAt:(I)B
i2l
ldc 255
land
iload 5 /* bitOffsetInByte */
lshr
lstore 7 /* value */
start local 7 // long value
6: .line 83
iload 3 /* bits */
iload 6 /* availableBits */
if_icmpgt 8
7: .line 84
lload 7 /* value */
ldc 255
bipush 8
iload 3 /* bits */
isub
lshr
land
lreturn
8: .line 86
StackMap locals: com.oracle.truffle.llvm.parser.scanner.BitStream long int int int int long
StackMap stack:
iload 3 /* bits */
iload 6 /* availableBits */
isub
istore 9 /* remainingBits */
start local 9 // int remainingBits
9: .line 87
iload 6 /* availableBits */
istore 10 /* shift */
start local 10 // int shift
10: .line 89
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.llvm.parser.scanner.BitStream.bitstream:Lorg/graalvm/polyglot/io/ByteSequence;
iload 4 /* byteIndex */
iinc 4 /* byteIndex */ 1
invokeinterface org.graalvm.polyglot.io.ByteSequence.byteAt:(I)B
istore 11 /* byteValue */
start local 11 // byte byteValue
11: .line 91
iload 9 /* remainingBits */
bipush 8
if_icmple 16
12: .line 92
lload 7 /* value */
iload 11 /* byteValue */
i2l
ldc 255
land
iload 10 /* shift */
lshl
lor
lstore 7 /* value */
13: .line 93
iinc 9 /* remainingBits */ -8
14: .line 94
iinc 10 /* shift */ 8
15: .line 95
goto 10
16: .line 96
StackMap locals: int
StackMap stack:
lload 7 /* value */
iload 11 /* byteValue */
i2l
ldc 255
bipush 8
iload 9 /* remainingBits */
isub
lshr
land
iload 10 /* shift */
lshl
lor
lreturn
end local 11 // byte byteValue
end local 10 // int shift
end local 9 // int remainingBits
end local 7 // long value
end local 6 // int availableBits
end local 5 // int bitOffsetInByte
end local 4 // int byteIndex
end local 3 // int bits
end local 1 // long offset
end local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
0 17 1 offset J
0 17 3 bits I
3 17 4 byteIndex I
4 17 5 bitOffsetInByte I
5 17 6 availableBits I
6 17 7 value J
9 17 9 remainingBits I
10 17 10 shift I
11 17 11 byteValue B
MethodParameters:
Name Flags
offset
bits
public long readVBR(long, int);
descriptor: (JI)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=14, args_size=3
start local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
start local 1 // long offset
start local 3 // int width
0: .line 102
lconst_0
lstore 4 /* value */
start local 4 // long value
1: .line 103
lconst_0
lstore 6 /* shift */
start local 6 // long shift
2: .line 105
lload 1 /* offset */
lstore 10 /* o */
start local 10 // long o
3: .line 106
iconst_1
iload 3 /* width */
iconst_1
isub
ishl
i2l
lstore 12 /* dmask */
start local 12 // long dmask
4: .line 108
StackMap locals: com.oracle.truffle.llvm.parser.scanner.BitStream long int long long top top long long
StackMap stack:
aload 0 /* this */
lload 10 /* o */
iload 3 /* width */
invokevirtual com.oracle.truffle.llvm.parser.scanner.BitStream.read:(JI)J
lstore 8 /* datum */
start local 8 // long datum
5: .line 109
lload 10 /* o */
iload 3 /* width */
i2l
ladd
lstore 10 /* o */
6: .line 110
lload 4 /* value */
lload 8 /* datum */
lload 12 /* dmask */
lconst_1
lsub
land
lload 6 /* shift */
l2i
lshl
ladd
lstore 4 /* value */
7: .line 111
lload 6 /* shift */
iload 3 /* width */
iconst_1
isub
i2l
ladd
lstore 6 /* shift */
8: .line 112
lload 8 /* datum */
lload 12 /* dmask */
land
lconst_0
lcmp
ifne 4
9: .line 113
lload 4 /* value */
lreturn
end local 12 // long dmask
end local 10 // long o
end local 8 // long datum
end local 6 // long shift
end local 4 // long value
end local 3 // int width
end local 1 // long offset
end local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
0 10 1 offset J
0 10 3 width I
1 10 4 value J
2 10 6 shift J
5 10 8 datum J
3 10 10 o J
4 10 12 dmask J
MethodParameters:
Name Flags
offset
width
public long size();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
0: .line 117
aload 0 /* this */
getfield com.oracle.truffle.llvm.parser.scanner.BitStream.bitstream:Lorg/graalvm/polyglot/io/ByteSequence;
invokeinterface org.graalvm.polyglot.io.ByteSequence.length:()I
i2l
ldc 8
lmul
lreturn
end local 0 // com.oracle.truffle.llvm.parser.scanner.BitStream this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/llvm/parser/scanner/BitStream;
}
SourceFile: "BitStream.java"