Classfile /Users/mgaido/apache/spark/common/unsafe/target/scala-2.11/classes/org/apache/spark/unsafe/hash/Murmur3_x86_32.class Last modified Sep 4, 2018; size 4912 bytes MD5 checksum 0bf553450f229ac9f8b1732cc96abc61 Compiled from "Murmur3_x86_32.java" public final class org.apache.spark.unsafe.hash.Murmur3_x86_32 minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER Constant pool: #1 = Methodref #44.#109 // java/lang/Object."":()V #2 = Fieldref #36.#110 // org/apache/spark/unsafe/hash/Murmur3_x86_32.seed:I #3 = Class #111 // java/lang/StringBuilder #4 = Methodref #3.#109 // java/lang/StringBuilder."":()V #5 = String #112 // Murmur3_32(seed= #6 = Methodref #3.#113 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; #7 = Methodref #3.#114 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; #8 = String #115 // ) #9 = Methodref #3.#116 // java/lang/StringBuilder.toString:()Ljava/lang/String; #10 = Methodref #36.#117 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashInt:(II)I #11 = Methodref #36.#118 // org/apache/spark/unsafe/hash/Murmur3_x86_32.mixK1:(I)I #12 = Methodref #36.#119 // org/apache/spark/unsafe/hash/Murmur3_x86_32.mixH1:(II)I #13 = Methodref #36.#120 // org/apache/spark/unsafe/hash/Murmur3_x86_32.fmix:(II)I #14 = Methodref #121.#122 // org/apache/spark/unsafe/memory/MemoryBlock.allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; #15 = Methodref #36.#123 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashUnsafeWordsBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #16 = Methodref #121.#124 // org/apache/spark/unsafe/memory/MemoryBlock.size:()J #17 = Methodref #125.#126 // com/google/common/primitives/Ints.checkedCast:(J)I #18 = Fieldref #36.#127 // org/apache/spark/unsafe/hash/Murmur3_x86_32.$assertionsDisabled:Z #19 = Class #128 // java/lang/AssertionError #20 = String #129 // lengthInBytes must be a multiple of 8 (word-aligned) #21 = Methodref #19.#130 // java/lang/AssertionError."":(Ljava/lang/Object;)V #22 = Methodref #36.#131 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashBytesByIntBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I #23 = Methodref #36.#132 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I #24 = String #133 // lengthInBytes cannot be negative #25 = Methodref #121.#134 // org/apache/spark/unsafe/memory/MemoryBlock.getBaseOffset:()J #26 = Methodref #121.#135 // org/apache/spark/unsafe/memory/MemoryBlock.getBaseObject:()Ljava/lang/Object; #27 = Methodref #136.#137 // org/apache/spark/unsafe/Platform.getByte:(Ljava/lang/Object;J)B #28 = Methodref #138.#139 // org/apache/spark/unsafe/types/UTF8String.getMemoryBlock:()Lorg/apache/spark/unsafe/memory/MemoryBlock; #29 = Methodref #138.#140 // org/apache/spark/unsafe/types/UTF8String.numBytes:()I #30 = Methodref #36.#141 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #31 = Methodref #36.#142 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashUnsafeBytes2Block:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #32 = Methodref #121.#143 // org/apache/spark/unsafe/memory/MemoryBlock.getByte:(J)B #33 = Methodref #19.#109 // java/lang/AssertionError."":()V #34 = Methodref #136.#144 // org/apache/spark/unsafe/Platform.getInt:(Ljava/lang/Object;J)I #35 = Methodref #36.#145 // org/apache/spark/unsafe/hash/Murmur3_x86_32.hashLong:(JI)I #36 = Class #146 // org/apache/spark/unsafe/hash/Murmur3_x86_32 #37 = Integer -862048943 #38 = Methodref #147.#148 // java/lang/Integer.rotateLeft:(II)I #39 = Integer 461845907 #40 = Integer -430675100 #41 = Integer -2048144789 #42 = Integer -1028477387 #43 = Methodref #149.#150 // java/lang/Class.desiredAssertionStatus:()Z #44 = Class #151 // java/lang/Object #45 = Utf8 C1 #46 = Utf8 I #47 = Utf8 ConstantValue #48 = Utf8 C2 #49 = Utf8 seed #50 = Utf8 $assertionsDisabled #51 = Utf8 Z #52 = Utf8 #53 = Utf8 (I)V #54 = Utf8 Code #55 = Utf8 LineNumberTable #56 = Utf8 LocalVariableTable #57 = Utf8 this #58 = Utf8 Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; #59 = Utf8 toString #60 = Utf8 ()Ljava/lang/String; #61 = Utf8 hashInt #62 = Utf8 (I)I #63 = Utf8 input #64 = Utf8 (II)I #65 = Utf8 k1 #66 = Utf8 h1 #67 = Utf8 hashUnsafeWords #68 = Utf8 (Ljava/lang/Object;JI)I #69 = Utf8 base #70 = Utf8 Ljava/lang/Object; #71 = Utf8 offset #72 = Utf8 J #73 = Utf8 lengthInBytes #74 = Utf8 hashUnsafeWordsBlock #75 = Utf8 (Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #76 = Utf8 Lorg/apache/spark/unsafe/memory/MemoryBlock; #77 = Utf8 StackMapTable #78 = Utf8 (Ljava/lang/Object;JII)I #79 = Utf8 hashUnsafeBytesBlock #80 = Utf8 (Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I #81 = Utf8 halfWord #82 = Utf8 i #83 = Utf8 lengthAligned #84 = Utf8 o #85 = Class #152 // org/apache/spark/unsafe/memory/MemoryBlock #86 = Class #151 // java/lang/Object #87 = Utf8 hashUTF8String #88 = Utf8 (Lorg/apache/spark/unsafe/types/UTF8String;I)I #89 = Utf8 str #90 = Utf8 Lorg/apache/spark/unsafe/types/UTF8String; #91 = Utf8 hashUnsafeBytes #92 = Utf8 hashUnsafeBytes2 #93 = Utf8 hashUnsafeBytes2Block #94 = Utf8 shift #95 = Utf8 hashBytesByIntBlock #96 = Utf8 hashLong #97 = Utf8 (J)I #98 = Utf8 (JI)I #99 = Utf8 low #100 = Utf8 high #101 = Utf8 mixK1 #102 = Utf8 mixH1 #103 = Utf8 fmix #104 = Utf8 length #105 = Utf8 #106 = Utf8 ()V #107 = Utf8 SourceFile #108 = Utf8 Murmur3_x86_32.java #109 = NameAndType #52:#106 // "":()V #110 = NameAndType #49:#46 // seed:I #111 = Utf8 java/lang/StringBuilder #112 = Utf8 Murmur3_32(seed= #113 = NameAndType #153:#154 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; #114 = NameAndType #153:#155 // append:(I)Ljava/lang/StringBuilder; #115 = Utf8 ) #116 = NameAndType #59:#60 // toString:()Ljava/lang/String; #117 = NameAndType #61:#64 // hashInt:(II)I #118 = NameAndType #101:#62 // mixK1:(I)I #119 = NameAndType #102:#64 // mixH1:(II)I #120 = NameAndType #103:#64 // fmix:(II)I #121 = Class #152 // org/apache/spark/unsafe/memory/MemoryBlock #122 = NameAndType #156:#157 // allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; #123 = NameAndType #74:#75 // hashUnsafeWordsBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #124 = NameAndType #158:#159 // size:()J #125 = Class #160 // com/google/common/primitives/Ints #126 = NameAndType #161:#97 // checkedCast:(J)I #127 = NameAndType #50:#51 // $assertionsDisabled:Z #128 = Utf8 java/lang/AssertionError #129 = Utf8 lengthInBytes must be a multiple of 8 (word-aligned) #130 = NameAndType #52:#162 // "":(Ljava/lang/Object;)V #131 = NameAndType #95:#80 // hashBytesByIntBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I #132 = NameAndType #79:#80 // hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I #133 = Utf8 lengthInBytes cannot be negative #134 = NameAndType #163:#159 // getBaseOffset:()J #135 = NameAndType #164:#165 // getBaseObject:()Ljava/lang/Object; #136 = Class #166 // org/apache/spark/unsafe/Platform #137 = NameAndType #167:#168 // getByte:(Ljava/lang/Object;J)B #138 = Class #169 // org/apache/spark/unsafe/types/UTF8String #139 = NameAndType #170:#171 // getMemoryBlock:()Lorg/apache/spark/unsafe/memory/MemoryBlock; #140 = NameAndType #172:#173 // numBytes:()I #141 = NameAndType #79:#75 // hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #142 = NameAndType #93:#75 // hashUnsafeBytes2Block:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I #143 = NameAndType #167:#174 // getByte:(J)B #144 = NameAndType #175:#176 // getInt:(Ljava/lang/Object;J)I #145 = NameAndType #96:#98 // hashLong:(JI)I #146 = Utf8 org/apache/spark/unsafe/hash/Murmur3_x86_32 #147 = Class #177 // java/lang/Integer #148 = NameAndType #178:#64 // rotateLeft:(II)I #149 = Class #179 // java/lang/Class #150 = NameAndType #180:#181 // desiredAssertionStatus:()Z #151 = Utf8 java/lang/Object #152 = Utf8 org/apache/spark/unsafe/memory/MemoryBlock #153 = Utf8 append #154 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; #155 = Utf8 (I)Ljava/lang/StringBuilder; #156 = Utf8 allocateFromObject #157 = Utf8 (Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; #158 = Utf8 size #159 = Utf8 ()J #160 = Utf8 com/google/common/primitives/Ints #161 = Utf8 checkedCast #162 = Utf8 (Ljava/lang/Object;)V #163 = Utf8 getBaseOffset #164 = Utf8 getBaseObject #165 = Utf8 ()Ljava/lang/Object; #166 = Utf8 org/apache/spark/unsafe/Platform #167 = Utf8 getByte #168 = Utf8 (Ljava/lang/Object;J)B #169 = Utf8 org/apache/spark/unsafe/types/UTF8String #170 = Utf8 getMemoryBlock #171 = Utf8 ()Lorg/apache/spark/unsafe/memory/MemoryBlock; #172 = Utf8 numBytes #173 = Utf8 ()I #174 = Utf8 (J)B #175 = Utf8 getInt #176 = Utf8 (Ljava/lang/Object;J)I #177 = Utf8 java/lang/Integer #178 = Utf8 rotateLeft #179 = Utf8 java/lang/Class #180 = Utf8 desiredAssertionStatus #181 = Utf8 ()Z { private static final int C1; descriptor: I flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL ConstantValue: int -862048943 private static final int C2; descriptor: I flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL ConstantValue: int 461845907 private final int seed; descriptor: I flags: ACC_PRIVATE, ACC_FINAL static final boolean $assertionsDisabled; descriptor: Z flags: ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC public org.apache.spark.unsafe.hash.Murmur3_x86_32(int); descriptor: (I)V flags: ACC_PUBLIC Code: stack=2, locals=2, args_size=2 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: aload_0 5: iload_1 6: putfield #2 // Field seed:I 9: return LineNumberTable: line 35: 0 line 36: 4 line 37: 9 LocalVariableTable: Start Length Slot Name Signature 0 10 0 this Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; 0 10 1 seed I public java.lang.String toString(); descriptor: ()Ljava/lang/String; flags: ACC_PUBLIC Code: stack=2, locals=1, args_size=1 0: new #3 // class java/lang/StringBuilder 3: dup 4: invokespecial #4 // Method java/lang/StringBuilder."":()V 7: ldc #5 // String Murmur3_32(seed= 9: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 12: aload_0 13: getfield #2 // Field seed:I 16: invokevirtual #7 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; 19: ldc #8 // String ) 21: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 24: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; 27: areturn LineNumberTable: line 41: 0 LocalVariableTable: Start Length Slot Name Signature 0 28 0 this Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; public int hashInt(int); descriptor: (I)I flags: ACC_PUBLIC Code: stack=2, locals=2, args_size=2 0: iload_1 1: aload_0 2: getfield #2 // Field seed:I 5: invokestatic #10 // Method hashInt:(II)I 8: ireturn LineNumberTable: line 45: 0 LocalVariableTable: Start Length Slot Name Signature 0 9 0 this Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; 0 9 1 input I public static int hashInt(int, int); descriptor: (II)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=4, args_size=2 0: iload_0 1: invokestatic #11 // Method mixK1:(I)I 4: istore_2 5: iload_1 6: iload_2 7: invokestatic #12 // Method mixH1:(II)I 10: istore_3 11: iload_3 12: iconst_4 13: invokestatic #13 // Method fmix:(II)I 16: ireturn LineNumberTable: line 49: 0 line 50: 5 line 52: 11 LocalVariableTable: Start Length Slot Name Signature 0 17 0 input I 0 17 1 seed I 5 12 2 k1 I 11 6 3 h1 I public int hashUnsafeWords(java.lang.Object, long, int); descriptor: (Ljava/lang/Object;JI)I flags: ACC_PUBLIC Code: stack=5, locals=5, args_size=4 0: aload_1 1: lload_2 2: iload 4 4: i2l 5: invokestatic #14 // Method org/apache/spark/unsafe/memory/MemoryBlock.allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; 8: aload_0 9: getfield #2 // Field seed:I 12: invokestatic #15 // Method hashUnsafeWordsBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I 15: ireturn LineNumberTable: line 56: 0 LocalVariableTable: Start Length Slot Name Signature 0 16 0 this Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; 0 16 1 base Ljava/lang/Object; 0 16 2 offset J 0 16 4 lengthInBytes I public static int hashUnsafeWordsBlock(org.apache.spark.unsafe.memory.MemoryBlock, int); descriptor: (Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=3, locals=4, args_size=2 0: aload_0 1: invokevirtual #16 // Method org/apache/spark/unsafe/memory/MemoryBlock.size:()J 4: invokestatic #17 // Method com/google/common/primitives/Ints.checkedCast:(J)I 7: istore_2 8: getstatic #18 // Field $assertionsDisabled:Z 11: ifne 31 14: iload_2 15: bipush 8 17: irem 18: ifeq 31 21: new #19 // class java/lang/AssertionError 24: dup 25: ldc #20 // String lengthInBytes must be a multiple of 8 (word-aligned) 27: invokespecial #21 // Method java/lang/AssertionError."":(Ljava/lang/Object;)V 30: athrow 31: aload_0 32: iload_2 33: iload_1 34: invokestatic #22 // Method hashBytesByIntBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I 37: istore_3 38: iload_3 39: iload_2 40: invokestatic #13 // Method fmix:(II)I 43: ireturn LineNumberTable: line 61: 0 line 62: 8 line 63: 31 line 64: 38 LocalVariableTable: Start Length Slot Name Signature 0 44 0 base Lorg/apache/spark/unsafe/memory/MemoryBlock; 0 44 1 seed I 8 36 2 lengthInBytes I 38 6 3 h1 I StackMapTable: number_of_entries = 1 frame_type = 252 /* append */ offset_delta = 31 locals = [ int ] public static int hashUnsafeWords(java.lang.Object, long, int, int); descriptor: (Ljava/lang/Object;JII)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=5, locals=5, args_size=4 0: aload_0 1: lload_1 2: iload_3 3: i2l 4: invokestatic #14 // Method org/apache/spark/unsafe/memory/MemoryBlock.allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; 7: iload 4 9: invokestatic #15 // Method hashUnsafeWordsBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I 12: ireturn LineNumberTable: line 69: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 base Ljava/lang/Object; 0 13 1 offset J 0 13 3 lengthInBytes I 0 13 4 seed I public static int hashUnsafeBytesBlock(org.apache.spark.unsafe.memory.MemoryBlock, int); descriptor: (Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=3, locals=2, args_size=2 0: aload_0 1: aload_0 2: invokevirtual #16 // Method org/apache/spark/unsafe/memory/MemoryBlock.size:()J 5: invokestatic #17 // Method com/google/common/primitives/Ints.checkedCast:(J)I 8: iload_1 9: invokestatic #23 // Method hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I 12: ireturn LineNumberTable: line 73: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 base Lorg/apache/spark/unsafe/memory/MemoryBlock; 0 13 1 seed I private static int hashUnsafeBytesBlock(org.apache.spark.unsafe.memory.MemoryBlock, int, int); descriptor: (Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I flags: ACC_PRIVATE, ACC_STATIC Code: stack=5, locals=11, args_size=3 0: getstatic #18 // Field $assertionsDisabled:Z 3: ifne 20 6: iload_1 7: ifge 20 10: new #19 // class java/lang/AssertionError 13: dup 14: ldc #24 // String lengthInBytes cannot be negative 16: invokespecial #21 // Method java/lang/AssertionError."":(Ljava/lang/Object;)V 19: athrow 20: iload_1 21: iload_1 22: iconst_4 23: irem 24: isub 25: istore_3 26: aload_0 27: iload_3 28: iload_2 29: invokestatic #22 // Method hashBytesByIntBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I 32: istore 4 34: aload_0 35: invokevirtual #25 // Method org/apache/spark/unsafe/memory/MemoryBlock.getBaseOffset:()J 38: lstore 5 40: aload_0 41: invokevirtual #26 // Method org/apache/spark/unsafe/memory/MemoryBlock.getBaseObject:()Ljava/lang/Object; 44: astore 7 46: iload_3 47: istore 8 49: iload 8 51: iload_1 52: if_icmpge 90 55: aload 7 57: lload 5 59: iload 8 61: i2l 62: ladd 63: invokestatic #27 // Method org/apache/spark/unsafe/Platform.getByte:(Ljava/lang/Object;J)B 66: istore 9 68: iload 9 70: invokestatic #11 // Method mixK1:(I)I 73: istore 10 75: iload 4 77: iload 10 79: invokestatic #12 // Method mixH1:(II)I 82: istore 4 84: iinc 8, 1 87: goto 49 90: iload 4 92: iload_1 93: invokestatic #13 // Method fmix:(II)I 96: ireturn LineNumberTable: line 79: 0 line 80: 20 line 81: 26 line 82: 34 line 83: 40 line 84: 46 line 85: 55 line 86: 68 line 87: 75 line 84: 84 line 89: 90 LocalVariableTable: Start Length Slot Name Signature 68 16 9 halfWord I 75 9 10 k1 I 49 41 8 i I 0 97 0 base Lorg/apache/spark/unsafe/memory/MemoryBlock; 0 97 1 lengthInBytes I 0 97 2 seed I 26 71 3 lengthAligned I 34 63 4 h1 I 40 57 5 offset J 46 51 7 o Ljava/lang/Object; StackMapTable: number_of_entries = 3 frame_type = 20 /* same */ frame_type = 255 /* full_frame */ offset_delta = 28 locals = [ class org/apache/spark/unsafe/memory/MemoryBlock, int, int, int, int, long, class java/lang/Object, int ] stack = [] frame_type = 250 /* chop */ offset_delta = 40 public static int hashUTF8String(org.apache.spark.unsafe.types.UTF8String, int); descriptor: (Lorg/apache/spark/unsafe/types/UTF8String;I)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=3, locals=2, args_size=2 0: aload_0 1: invokevirtual #28 // Method org/apache/spark/unsafe/types/UTF8String.getMemoryBlock:()Lorg/apache/spark/unsafe/memory/MemoryBlock; 4: aload_0 5: invokevirtual #29 // Method org/apache/spark/unsafe/types/UTF8String.numBytes:()I 8: iload_1 9: invokestatic #23 // Method hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I 12: ireturn LineNumberTable: line 93: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 str Lorg/apache/spark/unsafe/types/UTF8String; 0 13 1 seed I public static int hashUnsafeBytes(java.lang.Object, long, int, int); descriptor: (Ljava/lang/Object;JII)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=5, locals=5, args_size=4 0: aload_0 1: lload_1 2: iload_3 3: i2l 4: invokestatic #14 // Method org/apache/spark/unsafe/memory/MemoryBlock.allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; 7: iload 4 9: invokestatic #30 // Method hashUnsafeBytesBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I 12: ireturn LineNumberTable: line 97: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 base Ljava/lang/Object; 0 13 1 offset J 0 13 3 lengthInBytes I 0 13 4 seed I public static int hashUnsafeBytes2(java.lang.Object, long, int, int); descriptor: (Ljava/lang/Object;JII)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=5, locals=5, args_size=4 0: aload_0 1: lload_1 2: iload_3 3: i2l 4: invokestatic #14 // Method org/apache/spark/unsafe/memory/MemoryBlock.allocateFromObject:(Ljava/lang/Object;JJ)Lorg/apache/spark/unsafe/memory/MemoryBlock; 7: iload 4 9: invokestatic #31 // Method hashUnsafeBytes2Block:(Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I 12: ireturn LineNumberTable: line 101: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 base Ljava/lang/Object; 0 13 1 offset J 0 13 3 lengthInBytes I 0 13 4 seed I public static int hashUnsafeBytes2Block(org.apache.spark.unsafe.memory.MemoryBlock, int); descriptor: (Lorg/apache/spark/unsafe/memory/MemoryBlock;I)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=4, locals=8, args_size=2 0: aload_0 1: invokevirtual #16 // Method org/apache/spark/unsafe/memory/MemoryBlock.size:()J 4: invokestatic #17 // Method com/google/common/primitives/Ints.checkedCast:(J)I 7: istore_2 8: getstatic #18 // Field $assertionsDisabled:Z 11: ifne 28 14: iload_2 15: ifge 28 18: new #19 // class java/lang/AssertionError 21: dup 22: ldc #24 // String lengthInBytes cannot be negative 24: invokespecial #21 // Method java/lang/AssertionError."":(Ljava/lang/Object;)V 27: athrow 28: iload_2 29: iload_2 30: iconst_4 31: irem 32: isub 33: istore_3 34: aload_0 35: iload_3 36: iload_1 37: invokestatic #22 // Method hashBytesByIntBlock:(Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I 40: istore 4 42: iconst_0 43: istore 5 45: iload_3 46: istore 6 48: iconst_0 49: istore 7 51: iload 6 53: iload_2 54: if_icmpge 85 57: iload 5 59: aload_0 60: iload 6 62: i2l 63: invokevirtual #32 // Method org/apache/spark/unsafe/memory/MemoryBlock.getByte:(J)B 66: sipush 255 69: iand 70: iload 7 72: ishl 73: ixor 74: istore 5 76: iinc 6, 1 79: iinc 7, 8 82: goto 51 85: iload 4 87: iload 5 89: invokestatic #11 // Method mixK1:(I)I 92: ixor 93: istore 4 95: iload 4 97: iload_2 98: invokestatic #13 // Method fmix:(II)I 101: ireturn LineNumberTable: line 107: 0 line 108: 8 line 109: 28 line 110: 34 line 111: 42 line 112: 45 line 113: 57 line 112: 76 line 115: 85 line 116: 95 LocalVariableTable: Start Length Slot Name Signature 48 37 6 i I 51 34 7 shift I 0 102 0 base Lorg/apache/spark/unsafe/memory/MemoryBlock; 0 102 1 seed I 8 94 2 lengthInBytes I 34 68 3 lengthAligned I 42 60 4 h1 I 45 57 5 k1 I StackMapTable: number_of_entries = 3 frame_type = 252 /* append */ offset_delta = 28 locals = [ int ] frame_type = 255 /* full_frame */ offset_delta = 22 locals = [ class org/apache/spark/unsafe/memory/MemoryBlock, int, int, int, int, int, int, int ] stack = [] frame_type = 249 /* chop */ offset_delta = 33 private static int hashBytesByIntBlock(org.apache.spark.unsafe.memory.MemoryBlock, int, int); descriptor: (Lorg/apache/spark/unsafe/memory/MemoryBlock;II)I flags: ACC_PRIVATE, ACC_STATIC Code: stack=5, locals=10, args_size=3 0: aload_0 1: invokevirtual #26 // Method org/apache/spark/unsafe/memory/MemoryBlock.getBaseObject:()Ljava/lang/Object; 4: astore_3 5: aload_0 6: invokevirtual #25 // Method org/apache/spark/unsafe/memory/MemoryBlock.getBaseOffset:()J 9: lstore 4 11: getstatic #18 // Field $assertionsDisabled:Z 14: ifne 31 17: iload_1 18: iconst_4 19: irem 20: ifeq 31 23: new #19 // class java/lang/AssertionError 26: dup 27: invokespecial #33 // Method java/lang/AssertionError."":()V 30: athrow 31: iload_2 32: istore 6 34: iconst_0 35: istore 7 37: iload 7 39: iload_1 40: if_icmpge 77 43: aload_3 44: lload 4 46: iload 7 48: i2l 49: ladd 50: invokestatic #34 // Method org/apache/spark/unsafe/Platform.getInt:(Ljava/lang/Object;J)I 53: istore 8 55: iload 8 57: invokestatic #11 // Method mixK1:(I)I 60: istore 9 62: iload 6 64: iload 9 66: invokestatic #12 // Method mixH1:(II)I 69: istore 6 71: iinc 7, 4 74: goto 37 77: iload 6 79: ireturn LineNumberTable: line 120: 0 line 121: 5 line 122: 11 line 123: 31 line 124: 34 line 125: 43 line 126: 55 line 127: 62 line 124: 71 line 129: 77 LocalVariableTable: Start Length Slot Name Signature 55 16 8 halfWord I 62 9 9 k1 I 37 40 7 i I 0 80 0 base Lorg/apache/spark/unsafe/memory/MemoryBlock; 0 80 1 lengthInBytes I 0 80 2 seed I 5 75 3 o Ljava/lang/Object; 11 69 4 offset J 34 46 6 h1 I StackMapTable: number_of_entries = 3 frame_type = 253 /* append */ offset_delta = 31 locals = [ class java/lang/Object, long ] frame_type = 253 /* append */ offset_delta = 5 locals = [ int, int ] frame_type = 250 /* chop */ offset_delta = 39 public int hashLong(long); descriptor: (J)I flags: ACC_PUBLIC Code: stack=3, locals=3, args_size=2 0: lload_1 1: aload_0 2: getfield #2 // Field seed:I 5: invokestatic #35 // Method hashLong:(JI)I 8: ireturn LineNumberTable: line 133: 0 LocalVariableTable: Start Length Slot Name Signature 0 9 0 this Lorg/apache/spark/unsafe/hash/Murmur3_x86_32; 0 9 1 input J public static int hashLong(long, int); descriptor: (JI)I flags: ACC_PUBLIC, ACC_STATIC Code: stack=3, locals=7, args_size=2 0: lload_0 1: l2i 2: istore_3 3: lload_0 4: bipush 32 6: lushr 7: l2i 8: istore 4 10: iload_3 11: invokestatic #11 // Method mixK1:(I)I 14: istore 5 16: iload_2 17: iload 5 19: invokestatic #12 // Method mixH1:(II)I 22: istore 6 24: iload 4 26: invokestatic #11 // Method mixK1:(I)I 29: istore 5 31: iload 6 33: iload 5 35: invokestatic #12 // Method mixH1:(II)I 38: istore 6 40: iload 6 42: bipush 8 44: invokestatic #13 // Method fmix:(II)I 47: ireturn LineNumberTable: line 137: 0 line 138: 3 line 140: 10 line 141: 16 line 143: 24 line 144: 31 line 146: 40 LocalVariableTable: Start Length Slot Name Signature 0 48 0 input J 0 48 2 seed I 3 45 3 low I 10 38 4 high I 16 32 5 k1 I 24 24 6 h1 I private static int mixK1(int); descriptor: (I)I flags: ACC_PRIVATE, ACC_STATIC Code: stack=2, locals=1, args_size=1 0: iload_0 1: ldc #37 // int -862048943 3: imul 4: istore_0 5: iload_0 6: bipush 15 8: invokestatic #38 // Method java/lang/Integer.rotateLeft:(II)I 11: istore_0 12: iload_0 13: ldc #39 // int 461845907 15: imul 16: istore_0 17: iload_0 18: ireturn LineNumberTable: line 150: 0 line 151: 5 line 152: 12 line 153: 17 LocalVariableTable: Start Length Slot Name Signature 0 19 0 k1 I private static int mixH1(int, int); descriptor: (II)I flags: ACC_PRIVATE, ACC_STATIC Code: stack=2, locals=2, args_size=2 0: iload_0 1: iload_1 2: ixor 3: istore_0 4: iload_0 5: bipush 13 7: invokestatic #38 // Method java/lang/Integer.rotateLeft:(II)I 10: istore_0 11: iload_0 12: iconst_5 13: imul 14: ldc #40 // int -430675100 16: iadd 17: istore_0 18: iload_0 19: ireturn LineNumberTable: line 157: 0 line 158: 4 line 159: 11 line 160: 18 LocalVariableTable: Start Length Slot Name Signature 0 20 0 h1 I 0 20 1 k1 I private static int fmix(int, int); descriptor: (II)I flags: ACC_PRIVATE, ACC_STATIC Code: stack=3, locals=2, args_size=2 0: iload_0 1: iload_1 2: ixor 3: istore_0 4: iload_0 5: iload_0 6: bipush 16 8: iushr 9: ixor 10: istore_0 11: iload_0 12: ldc #41 // int -2048144789 14: imul 15: istore_0 16: iload_0 17: iload_0 18: bipush 13 20: iushr 21: ixor 22: istore_0 23: iload_0 24: ldc #42 // int -1028477387 26: imul 27: istore_0 28: iload_0 29: iload_0 30: bipush 16 32: iushr 33: ixor 34: istore_0 35: iload_0 36: ireturn LineNumberTable: line 165: 0 line 166: 4 line 167: 11 line 168: 16 line 169: 23 line 170: 28 line 171: 35 LocalVariableTable: Start Length Slot Name Signature 0 37 0 h1 I 0 37 1 length I static {}; descriptor: ()V flags: ACC_STATIC Code: stack=1, locals=0, args_size=0 0: ldc #36 // class org/apache/spark/unsafe/hash/Murmur3_x86_32 2: invokevirtual #43 // Method java/lang/Class.desiredAssertionStatus:()Z 5: ifne 12 8: iconst_1 9: goto 13 12: iconst_0 13: putstatic #18 // Field $assertionsDisabled:Z 16: return LineNumberTable: line 29: 0 StackMapTable: number_of_entries = 2 frame_type = 12 /* same */ frame_type = 64 /* same_locals_1_stack_item */ stack = [ int ] } SourceFile: "Murmur3_x86_32.java"