@ -42,23 +42,23 @@
# define PRIME32_4 668265263U
# define PRIME32_5 374761393U
# define TB_HASH_XX _SEED 1
# define QEMU_XXHASH _SEED 1
/*
* xxhash32 , customized for input variables that are not guaranteed to be
* contiguous in memory .
*/
static inline uint32_t
tb_hash_func7 ( uint64_t a0 , uint64_t b0 , uint32_t e , uint32_t f , uint32_t g )
qemu_xxhash7 ( uint64_t ab , uint64_t cd , uint32_t e , uint32_t f , uint32_t g )
{
uint32_t v1 = TB_HASH_XX _SEED + PRIME32_1 + PRIME32_2 ;
uint32_t v2 = TB_HASH_XX _SEED + PRIME32_2 ;
uint32_t v3 = TB_HASH_XX _SEED + 0 ;
uint32_t v4 = TB_HASH_XX _SEED - PRIME32_1 ;
uint32_t a = a0 > > 32 ;
uint32_t b = a0 ;
uint32_t c = b0 > > 32 ;
uint32_t d = b0 ;
uint32_t v1 = QEMU_XXHASH _SEED + PRIME32_1 + PRIME32_2 ;
uint32_t v2 = QEMU_XXHASH _SEED + PRIME32_2 ;
uint32_t v3 = QEMU_XXHASH _SEED + 0 ;
uint32_t v4 = QEMU_XXHASH _SEED - PRIME32_1 ;
uint32_t a = ab > > 32 ;
uint32_t b = ab ;
uint32_t c = cd > > 32 ;
uint32_t d = cd ;
uint32_t h32 ;
v1 + = a * PRIME32_2 ;
@ -98,4 +98,25 @@ tb_hash_func7(uint64_t a0, uint64_t b0, uint32_t e, uint32_t f, uint32_t g)
return h32 ;
}
static inline uint32_t qemu_xxhash2 ( uint64_t ab )
{
return qemu_xxhash7 ( ab , 0 , 0 , 0 , 0 ) ;
}
static inline uint32_t qemu_xxhash4 ( uint64_t ab , uint64_t cd )
{
return qemu_xxhash7 ( ab , cd , 0 , 0 , 0 ) ;
}
static inline uint32_t qemu_xxhash5 ( uint64_t ab , uint64_t cd , uint32_t e )
{
return qemu_xxhash7 ( ab , cd , e , 0 , 0 ) ;
}
static inline uint32_t qemu_xxhash6 ( uint64_t ab , uint64_t cd , uint32_t e ,
uint32_t f )
{
return qemu_xxhash7 ( ab , cd , e , f , 0 ) ;
}
# endif /* EXEC_TB_HASH_XX_H */