comparison src/share/vm/classfile/altHashing.hpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 4ca6dc0799b6
children
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
1 /* 1 /*
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
37 */ 37 */
38 38
39 class AltHashing : AllStatic { 39 class AltHashing : AllStatic {
40 40
41 // utility function copied from java/lang/Integer 41 // utility function copied from java/lang/Integer
42 static jint Integer_rotateLeft(jint i, int distance) { 42 static juint Integer_rotateLeft(juint i, int distance) {
43 return (i << distance) | (((juint)i) >> (32-distance)); 43 return (i << distance) | (i >> (32-distance));
44 } 44 }
45 static jint murmur3_32(const int* data, int len); 45 static juint murmur3_32(const int* data, int len);
46 static jint murmur3_32(jint seed, const int* data, int len); 46 static juint murmur3_32(juint seed, const int* data, int len);
47 47
48 #ifndef PRODUCT 48 #ifndef PRODUCT
49 // Hashing functions used for internal testing 49 // Hashing functions used for internal testing
50 static jint murmur3_32(const jbyte* data, int len); 50 static juint murmur3_32(const jbyte* data, int len);
51 static jint murmur3_32(const jchar* data, int len); 51 static juint murmur3_32(const jchar* data, int len);
52 static void testMurmur3_32_ByteArray(); 52 static void testMurmur3_32_ByteArray();
53 static void testEquivalentHashes(); 53 static void testEquivalentHashes();
54 #endif // PRODUCT 54 #endif // PRODUCT
55 55
56 public: 56 public:
57 static jint compute_seed(); 57 static juint compute_seed();
58 static jint murmur3_32(jint seed, const jbyte* data, int len); 58 static juint murmur3_32(juint seed, const jbyte* data, int len);
59 static jint murmur3_32(jint seed, const jchar* data, int len); 59 static juint murmur3_32(juint seed, const jchar* data, int len);
60 NOT_PRODUCT(static void test_alt_hash();) 60 NOT_PRODUCT(static void test_alt_hash();)
61 }; 61 };
62 #endif // SHARE_VM_CLASSFILE_ALTHASHING_HPP 62 #endif // SHARE_VM_CLASSFILE_ALTHASHING_HPP