11 #include "src/base/functional.h" 15 #include "src/base/bits.h" 25 V8_INLINE
size_t hash_value_unsigned(T v) {
35 return static_cast<size_t>(v);
38 switch (
sizeof(
size_t)) {
47 return static_cast<size_t>(v);
53 v = (v + (v << 3)) + (v << 8);
55 v = (v + (v << 2)) + (v << 4);
58 return static_cast<size_t>(v);
70 size_t hash_combine(
size_t seed,
size_t value) {
71 #if V8_HOST_ARCH_32_BIT 76 value = bits::RotateRight32(value, 15);
80 seed = bits::RotateRight32(seed, 13);
81 seed = seed * 5 + 0xE6546B64;
83 const uint64_t m = uint64_t{0xC6A4A7935BD1E995};
92 #endif // V8_HOST_ARCH_32_BIT 97 size_t hash_value(
unsigned int v) {
return hash_value_unsigned(v); }
100 size_t hash_value(
unsigned long v) {
101 return hash_value_unsigned(v);
105 size_t hash_value(
unsigned long long v) {
106 return hash_value_unsigned(v);