final class com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher extends com.google.common.hash.AbstractStreamingHasher
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher
super_class: com.google.common.hash.AbstractStreamingHasher
{
private static final int CHUNK_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final long C1;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -8663945395140668459
private static final long C2;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5545529020109919103
private long h1;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long h2;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int length;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
bipush 16
invokespecial com.google.common.hash.AbstractStreamingHasher.<init>:(I)V
1: aload 0
iload 1
i2l
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
2: aload 0
iload 1
i2l
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
3: aload 0
iconst_0
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/hash/Murmur3_128HashFunction$Murmur3_128Hasher;
0 5 1 seed I
MethodParameters:
Name Flags
seed
protected void process(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.getLong:()J
lstore 2
start local 2 1: aload 1
invokevirtual java.nio.ByteBuffer.getLong:()J
lstore 4
start local 4 2: aload 0
lload 2
lload 4
invokevirtual com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.bmix64:(JJ)V
3: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
bipush 16
iadd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
4: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/hash/Murmur3_128HashFunction$Murmur3_128Hasher;
0 5 1 bb Ljava/nio/ByteBuffer;
1 5 2 k1 J
2 5 4 k2 J
MethodParameters:
Name Flags
bb
private void bmix64(long, long);
descriptor: (JJ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
lload 1
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.mixK1:(J)J
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
1: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
bipush 27
invokestatic java.lang.Long.rotateLeft:(JI)J
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
2: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
3: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
ldc 5
lmul
ldc 1390208809
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
4: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
lload 3
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.mixK2:(J)J
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
5: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
bipush 31
invokestatic java.lang.Long.rotateLeft:(JI)J
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
6: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
7: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
ldc 5
lmul
ldc 944331445
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
8: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/hash/Murmur3_128HashFunction$Murmur3_128Hasher;
0 9 1 k1 J
0 9 3 k2 J
MethodParameters:
Name Flags
k1
k2
protected void processRemaining(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: lconst_0
lstore 2
start local 2 1: lconst_0
lstore 4
start local 4 2: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
3: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
tableswitch { // 1 - 15
1: 19
2: 18
3: 17
4: 16
5: 15
6: 14
7: 13
8: 11
9: 10
10: 9
11: 8
12: 7
13: 6
14: 5
15: 4
default: 21
}
4: StackMap locals: long long
StackMap stack:
lload 4
aload 1
bipush 14
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 48
lshl
lxor
lstore 4
5: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 13
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 40
lshl
lxor
lstore 4
6: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 12
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 32
lshl
lxor
lstore 4
7: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 11
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 24
lshl
lxor
lstore 4
8: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 10
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 16
lshl
lxor
lstore 4
9: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 9
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 8
lshl
lxor
lstore 4
10: StackMap locals:
StackMap stack:
lload 4
aload 1
bipush 8
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
lxor
lstore 4
11: StackMap locals:
StackMap stack:
lload 2
aload 1
invokevirtual java.nio.ByteBuffer.getLong:()J
lxor
lstore 2
12: goto 22
13: StackMap locals:
StackMap stack:
lload 2
aload 1
bipush 6
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 48
lshl
lxor
lstore 2
14: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_5
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 40
lshl
lxor
lstore 2
15: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_4
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 32
lshl
lxor
lstore 2
16: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_3
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 24
lshl
lxor
lstore 2
17: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_2
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 16
lshl
lxor
lstore 2
18: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_1
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
bipush 8
lshl
lxor
lstore 2
19: StackMap locals:
StackMap stack:
lload 2
aload 1
iconst_0
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
i2l
lxor
lstore 2
20: goto 22
21: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Should never get here."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
lload 2
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.mixK1:(J)J
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
23: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
lload 4
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.mixK2:(J)J
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
24: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/google/common/hash/Murmur3_128HashFunction$Murmur3_128Hasher;
0 25 1 bb Ljava/nio/ByteBuffer;
1 25 2 k1 J
2 25 4 k2 J
MethodParameters:
Name Flags
bb
public com.google.common.hash.HashCode makeHash();
descriptor: ()Lcom/google/common/hash/HashCode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
i2l
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
1: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.length:I
i2l
lxor
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
2: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
3: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
4: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.fmix64:(J)J
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
5: aload 0
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
invokestatic com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.fmix64:(J)J
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
6: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
7: aload 0
dup
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
ladd
putfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
8: bipush 16
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
9: getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
10: aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h1:J
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
11: aload 0
getfield com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher.h2:J
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
12: invokevirtual java.nio.ByteBuffer.array:()[B
13: invokestatic com.google.common.hash.HashCode.fromBytesNoCopy:([B)Lcom/google/common/hash/HashCode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/common/hash/Murmur3_128HashFunction$Murmur3_128Hasher;
private static long fmix64(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: lload 0
lload 0
bipush 33
lushr
lxor
lstore 0
1: lload 0
ldc -49064778989728563
lmul
lstore 0
2: lload 0
lload 0
bipush 33
lushr
lxor
lstore 0
3: lload 0
ldc -4265267296055464877
lmul
lstore 0
4: lload 0
lload 0
bipush 33
lushr
lxor
lstore 0
5: lload 0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 k J
MethodParameters:
Name Flags
k
private static long mixK1(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc -8663945395140668459
lmul
lstore 0
1: lload 0
bipush 31
invokestatic java.lang.Long.rotateLeft:(JI)J
lstore 0
2: lload 0
ldc 5545529020109919103
lmul
lstore 0
3: lload 0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 k1 J
MethodParameters:
Name Flags
k1
private static long mixK2(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 5545529020109919103
lmul
lstore 0
1: lload 0
bipush 33
invokestatic java.lang.Long.rotateLeft:(JI)J
lstore 0
2: lload 0
ldc -8663945395140668459
lmul
lstore 0
3: lload 0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 k2 J
MethodParameters:
Name Flags
k2
}
SourceFile: "Murmur3_128HashFunction.java"
NestHost: com.google.common.hash.Murmur3_128HashFunction
InnerClasses:
private final Murmur3_128Hasher = com.google.common.hash.Murmur3_128HashFunction$Murmur3_128Hasher of com.google.common.hash.Murmur3_128HashFunction