mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 19:01:57 -04:00
Uses util_ prefix for rol operations.
This commit is contained in:
parent
3df99a03ee
commit
209985ab9d
3 changed files with 49 additions and 46 deletions
24
murmur3.c
24
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;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
48
spooky2.c
48
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]; \
|
||||
|
|
|
|||
23
util.c
23
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"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue