33 #define ALLOW_UNALIGNED_READS 1 59 u.p8 = (
const uint8_t *)message;
63 memcpy(buf, message, length);
67 size_t remainder = length%32;
78 for (; u.p64 <
end; u.p64 += 4)
169 Short(message, length, hash1, hash2);
173 uint64_t h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11;
184 h0=h3=h6=h9 = *hash1;
185 h1=h4=h7=h10 = *hash2;
188 u.p8 = (
const uint8_t *)message;
196 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
205 Mix(buf, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
212 memcpy(buf, end, remainder);
215 Mix(buf, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
218 End(h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
238 uint64_t h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11;
254 m_remainder = (
uint8_t)newLength;
286 memcpy(&(((
uint8_t *)
m_data)[m_remainder]), message, prefix);
288 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
289 Mix(&u.p64[
sc_numVars], h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
295 u.p8 = (
const uint8_t *)message;
305 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
314 Mix(
m_data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
320 m_remainder = remainder;
321 memcpy(
m_data, end, remainder);
370 Mix(data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
379 Mix(data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
382 End(h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
static const size_t sc_numVars
static void Mix(const uint64_t *data, uint64_t &s0, uint64_t &s1, uint64_t &s2, uint64_t &s3, uint64_t &s4, uint64_t &s5, uint64_t &s6, uint64_t &s7, uint64_t &s8, uint64_t &s9, uint64_t &s10, uint64_t &s11)
static const uint64_t sc_const
uint64_t m_state[sc_numVars]
void Final(uint64_t *hash1, uint64_t *hash2)
static void Hash128(const void *message, size_t length, uint64_t *hash1, uint64_t *hash2)
—— Concurrent Priority Queue Implementation ——
bool prefix(Cursor &c, uint32_t expected)
void Update(const void *message, size_t length)
uint64_t m_data[2 *sc_numVars]
void Init(uint64_t seed1, uint64_t seed2)
#define ALLOW_UNALIGNED_READS
static const size_t sc_bufSize
auto end(TestAdlIterable &instance)
constexpr auto data(C &c) -> decltype(c.data())
static void ShortEnd(uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3)
static const size_t sc_blockSize
static void Short(const void *message, size_t length, uint64_t *hash1, uint64_t *hash2)
static void ShortMix(uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3)
#define FOLLY_FALLTHROUGH
static void End(uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3, uint64_t &h4, uint64_t &h5, uint64_t &h6, uint64_t &h7, uint64_t &h8, uint64_t &h9, uint64_t &h10, uint64_t &h11)