#ifndef PERL_SEEN_HV_FUNC_H /* compile once */
#define PERL_SEEN_HV_FUNC_H
-#if IVSZIE == 8
-#define CAN64BITHASH
-#endif
-
#if !( 0 \
|| defined(PERL_HASH_FUNC_SIPHASH) \
|| defined(PERL_HASH_FUNC_SIPHASH13) \
|| defined(PERL_HASH_FUNC_HYBRID_OAATHU_SIPHASH13) \
|| defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD) \
)
-#ifdef CAN64BITHASH
+#if IVSIZE == 8
#define PERL_HASH_FUNC_HYBRID_OAATHU_SIPHASH13
#else
#define PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
#define UNALIGNED_SAFE
#endif
-#ifdef CAN64BITHASH
+#ifdef HAS_QUAD
#ifndef U64TYPE
/* This probably isn't going to work, but failing with a compiler error due to
lack of uint64_t is no worse than failing right now with an #error. */
#if defined(_MSC_VER)
#include <stdlib.h> /* Microsoft put _rotl declaration in here */
#define ROTL32(x,r) _rotl(x,r)
- #ifdef CAN64BITHASH
+ #ifdef HAS_QUAD
#define ROTL64(x,r) _rotl64(x,r)
#endif
#else
/* gcc recognises this code and generates a rotate instruction for CPUs with one */
#define ROTL32(x,r) (((U32)x << r) | ((U32)x >> (32 - r)))
- #ifdef CAN64BITHASH
+ #ifdef HAS_QUAD
#define ROTL64(x,r) (((U64)x << r) | ((U64)x >> (64 - r)))
#endif
#endif
* It is 64 bit only.
*/
-#ifdef CAN64BITHASH
+#ifdef HAS_QUAD
#define U8TO64_LE(p) \
(((U64)((p)[0]) ) | \
,SIPROUND;SIPROUND;SIPROUND;SIPROUND;
)
-#endif /* defined(CAN64BITHASH) */
+#endif /* defined(HAS_QUAD) */
/* - ONE_AT_A_TIME_HARD is the 5.17+ recommend ONE_AT_A_TIME variant */
return (hash + (hash << 15));
}
-#ifdef CAN64BITHASH
+#ifdef HAS_QUAD
/* Hybrid hash function
*
}
return S_perl_hash_siphash_1_3(seed+8, str, len);
}
-#endif /* defined(CAN64BITHASH) */
+#endif /* defined(HAS_QUAD) */
#endif /*compile once*/