From 209985ab9dfe322db70d05e25f27351d25907c1b Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Wed, 18 Dec 2013 19:33:19 +0100 Subject: [PATCH] Uses util_ prefix for rol operations. --- murmur3.c | 24 ++++++++++++------------ spooky2.c | 48 ++++++++++++++++++++++++------------------------ util.c | 23 +++++++++++++---------- 3 files changed, 49 insertions(+), 46 deletions(-) diff --git a/murmur3.c b/murmur3.c index 6bbc03d2..dddf62b3 100644 --- a/murmur3.c +++ b/murmur3.c @@ -111,21 +111,21 @@ void MurmurHash3_x86_128(const void* key, unsigned len, const uint8_t* seed, voi k4 = util_swap32(k4); #endif - k1 *= c1; k1 = rotl32(k1,15); k1 *= c2; h1 ^= k1; + k1 *= c1; k1 = util_rotl32(k1,15); k1 *= c2; h1 ^= k1; - h1 = rotl32(h1,19); h1 += h2; h1 = h1*5+0x561ccd1b; + h1 = util_rotl32(h1,19); h1 += h2; h1 = h1*5+0x561ccd1b; - k2 *= c2; k2 = rotl32(k2,16); k2 *= c3; h2 ^= k2; + k2 *= c2; k2 = util_rotl32(k2,16); k2 *= c3; h2 ^= k2; - h2 = rotl32(h2,17); h2 += h3; h2 = h2*5+0x0bcaa747; + h2 = util_rotl32(h2,17); h2 += h3; h2 = h2*5+0x0bcaa747; - k3 *= c3; k3 = rotl32(k3,17); k3 *= c4; h3 ^= k3; + k3 *= c3; k3 = util_rotl32(k3,17); k3 *= c4; h3 ^= k3; - h3 = rotl32(h3,15); h3 += h4; h3 = h3*5+0x96cd1c35; + h3 = util_rotl32(h3,15); h3 += h4; h3 = h3*5+0x96cd1c35; - k4 *= c4; k4 = rotl32(k4,18); k4 *= c1; h4 ^= k4; + k4 *= c4; k4 = util_rotl32(k4,18); k4 *= c1; h4 ^= k4; - h4 = rotl32(h4,13); h4 += h1; h4 = h4*5+0x32ac3b17; + h4 = util_rotl32(h4,13); h4 += h1; h4 = h4*5+0x32ac3b17; blocks += 4; } @@ -143,22 +143,22 @@ void MurmurHash3_x86_128(const void* key, unsigned len, const uint8_t* seed, voi case 15 : k4 ^= tail[14] << 16; case 14 : k4 ^= tail[13] << 8; case 13 : k4 ^= tail[12] << 0; - k4 *= c4; k4 = rotl32(k4,18); k4 *= c1; h4 ^= k4; + k4 *= c4; k4 = util_rotl32(k4,18); k4 *= c1; h4 ^= k4; case 12 : k3 ^= tail[11] << 24; case 11 : k3 ^= tail[10] << 16; case 10 : k3 ^= tail[ 9] << 8; case 9 : k3 ^= tail[ 8] << 0; - k3 *= c3; k3 = rotl32(k3,17); k3 *= c4; h3 ^= k3; + k3 *= c3; k3 = util_rotl32(k3,17); k3 *= c4; h3 ^= k3; case 8 : k2 ^= tail[ 7] << 24; case 7 : k2 ^= tail[ 6] << 16; case 6 : k2 ^= tail[ 5] << 8; case 5 : k2 ^= tail[ 4] << 0; - k2 *= c2; k2 = rotl32(k2,16); k2 *= c3; h2 ^= k2; + k2 *= c2; k2 = util_rotl32(k2,16); k2 *= c3; h2 ^= k2; case 4 : k1 ^= tail[ 3] << 24; case 3 : k1 ^= tail[ 2] << 16; case 2 : k1 ^= tail[ 1] << 8; case 1 : k1 ^= tail[ 0] << 0; - k1 *= c1; k1 = rotl32(k1,15); k1 *= c2; h1 ^= k1; + k1 *= c1; k1 = util_rotl32(k1,15); k1 *= c2; h1 ^= k1; }; } diff --git a/spooky2.c b/spooky2.c index 1e4cb412..c4a393e5 100644 --- a/spooky2.c +++ b/spooky2.c @@ -58,32 +58,32 @@ // #define Mix(data, s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11) \ - s0 += data[0]; s2 ^= s10; s11^= s0; s0 = rotl64(s0,11); s11 += s1; \ - s1 += data[1]; s3 ^= s11; s0 ^= s1; s1 = rotl64(s1,32); s0 += s2; \ - s2 += data[2]; s4 ^= s0; s1 ^= s2; s2 = rotl64(s2,43); s1 += s3; \ - s3 += data[3]; s5 ^= s1; s2 ^= s3; s3 = rotl64(s3,31); s2 += s4; \ - s4 += data[4]; s6 ^= s2; s3 ^= s4; s4 = rotl64(s4,17); s3 += s5; \ - s5 += data[5]; s7 ^= s3; s4 ^= s5; s5 = rotl64(s5,28); s4 += s6; \ - s6 += data[6]; s8 ^= s4; s5 ^= s6; s6 = rotl64(s6,39); s5 += s7; \ - s7 += data[7]; s9 ^= s5; s6 ^= s7; s7 = rotl64(s7,57); s6 += s8; \ - s8 += data[8]; s10^= s6; s7 ^= s8; s8 = rotl64(s8,55); s7 += s9; \ - s9 += data[9]; s11^= s7; s8 ^= s9; s9 = rotl64(s9,54); s8 += s10; \ - s10+= data[10]; s0 ^= s8; s9 ^= s10; s10= rotl64(s10,22); s9 += s11; \ - s11+= data[11]; s1 ^= s9; s10^= s11; s11= rotl64(s11,46); s10 += s0; + s0 += data[0]; s2 ^= s10; s11^= s0; s0 = util_rotl64(s0,11); s11 += s1; \ + s1 += data[1]; s3 ^= s11; s0 ^= s1; s1 = util_rotl64(s1,32); s0 += s2; \ + s2 += data[2]; s4 ^= s0; s1 ^= s2; s2 = util_rotl64(s2,43); s1 += s3; \ + s3 += data[3]; s5 ^= s1; s2 ^= s3; s3 = util_rotl64(s3,31); s2 += s4; \ + s4 += data[4]; s6 ^= s2; s3 ^= s4; s4 = util_rotl64(s4,17); s3 += s5; \ + s5 += data[5]; s7 ^= s3; s4 ^= s5; s5 = util_rotl64(s5,28); s4 += s6; \ + s6 += data[6]; s8 ^= s4; s5 ^= s6; s6 = util_rotl64(s6,39); s5 += s7; \ + s7 += data[7]; s9 ^= s5; s6 ^= s7; s7 = util_rotl64(s7,57); s6 += s8; \ + s8 += data[8]; s10^= s6; s7 ^= s8; s8 = util_rotl64(s8,55); s7 += s9; \ + s9 += data[9]; s11^= s7; s8 ^= s9; s9 = util_rotl64(s9,54); s8 += s10; \ + s10+= data[10]; s0 ^= s8; s9 ^= s10; s10= util_rotl64(s10,22); s9 += s11; \ + s11+= data[11]; s1 ^= s9; s10^= s11; s11= util_rotl64(s11,46); s10 += s0; #define EndPartial(h0, h1, h2, h3, h4, h5, h6, h7, h8, h9, h10, h11) \ - h11+= h1; h2 ^= h11; h1 = rotl64(h1,44); \ - h0 += h2; h3 ^= h0; h2 = rotl64(h2,15); \ - h1 += h3; h4 ^= h1; h3 = rotl64(h3,34); \ - h2 += h4; h5 ^= h2; h4 = rotl64(h4,21); \ - h3 += h5; h6 ^= h3; h5 = rotl64(h5,38); \ - h4 += h6; h7 ^= h4; h6 = rotl64(h6,33); \ - h5 += h7; h8 ^= h5; h7 = rotl64(h7,10); \ - h6 += h8; h9 ^= h6; h8 = rotl64(h8,13); \ - h7 += h9; h10^= h7; h9 = rotl64(h9,38); \ - h8 += h10; h11^= h8; h10= rotl64(h10,53); \ - h9 += h11; h0 ^= h9; h11= rotl64(h11,42); \ - h10+= h0; h1 ^= h10; h0 = rotl64(h0,54); + h11+= h1; h2 ^= h11; h1 = util_rotl64(h1,44); \ + h0 += h2; h3 ^= h0; h2 = util_rotl64(h2,15); \ + h1 += h3; h4 ^= h1; h3 = util_rotl64(h3,34); \ + h2 += h4; h5 ^= h2; h4 = util_rotl64(h4,21); \ + h3 += h5; h6 ^= h3; h5 = util_rotl64(h5,38); \ + h4 += h6; h7 ^= h4; h6 = util_rotl64(h6,33); \ + h5 += h7; h8 ^= h5; h7 = util_rotl64(h7,10); \ + h6 += h8; h9 ^= h6; h8 = util_rotl64(h8,13); \ + h7 += h9; h10^= h7; h9 = util_rotl64(h9,38); \ + h8 += h10; h11^= h8; h10= util_rotl64(h10,53); \ + h9 += h11; h0 ^= h9; h11= util_rotl64(h11,42); \ + h10+= h0; h1 ^= h10; h0 = util_rotl64(h0,54); #define End(data, h0, h1, h2, h3, h4, h5, h6, h7, h8, h9, h10,h11) \ h0 += data[0]; h1 += data[1]; h2 += data[2]; h3 += data[3]; \ diff --git a/util.c b/util.c index 123ccde6..e5f48e58 100644 --- a/util.c +++ b/util.c @@ -1491,15 +1491,15 @@ char* strdup_nofail(const char* str) } /****************************************************************************/ -/* hash */ +/* byte operations */ -/* Rotate left 32 */ -inline uint32_t rotl32(uint32_t x, int8_t r) +/* Rotate left */ +static inline uint32_t util_rotl32(uint32_t x, int8_t r) { return (x << r) | (x >> (32 - r)); } -inline uint64_t rotl64(uint64_t x, int8_t r) +static inline uint64_t util_rotl64(uint64_t x, int8_t r) { return (x << r) | (x >> (64 - r)); } @@ -1515,19 +1515,22 @@ inline uint64_t rotl64(uint64_t x, int8_t r) #else static inline uint32_t util_swap32(uint32_t v) { - return (rotl32(v, 8) & 0x00ff00ff) - | (rotl32(v, 24) & 0xff00ff00); + return (util_rotl32(v, 8) & 0x00ff00ff) + | (util_rotl32(v, 24) & 0xff00ff00); } static inline uint64_t util_swap64(uint64_t v) { - return (rotl64(v, 8) & 0x000000ff000000ffLLU) - | (rotl64(v, 24) & 0x0000ff000000ff00LLU) - | (rotl64(v, 40) & 0x00ff000000ff0000LLU) - | (rotl64(v, 56) & 0xff000000ff000000LLU); + return (util_rotl64(v, 8) & 0x000000ff000000ffLLU) + | (util_rotl64(v, 24) & 0x0000ff000000ff00LLU) + | (util_rotl64(v, 40) & 0x00ff000000ff0000LLU) + | (util_rotl64(v, 56) & 0xff000000ff000000LLU); } #endif +/****************************************************************************/ +/* hash */ + #include "murmur3.c" #include "spooky2.c"