static uintptr_t bits_hash(const void *b, size_t sz) { switch (sz) { case 1: return int32hash(*(const int8_t*)b); case 2: return int32hash(jl_load_unaligned_i16(b)); case 4: return int32hash(jl_load_unaligned_i32(b)); #ifdef _P64 case 8: return int64hash(jl_load_unaligned_i64(b)); #else case 8: return int64to32hash(jl_load_unaligned_i64(b)); #endif default: #ifdef _P64 return memhash((const char*)b, sz); #else return memhash32((const char*)b, sz); #endif } }
static uintptr_t bits_hash(void *b, size_t sz) { switch (sz) { case 1: return int32hash(*(int8_t*)b); case 2: return int32hash(*(int16_t*)b); case 4: return int32hash(*(int32_t*)b); #ifdef _P64 case 8: return int64hash(*(int64_t*)b); #else case 8: return int64to32hash(*(int64_t*)b); #endif default: #ifdef _P64 return memhash((char*)b, sz); #else return memhash32((char*)b, sz); #endif } }