mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
csiphash: don't attempt unaligned access
In digestmap_set/get benchmarks, doing unaligned access on x86 doesn't save more than a percent or so in the fast case. In the slow case (where we cross a cache line), it could be pretty expensive. It also makes ubsan unhappy.
This commit is contained in:
@@ -81,11 +81,16 @@
|
||||
HALF_ROUND(v0,v1,v2,v3,13,16); \
|
||||
HALF_ROUND(v2,v1,v0,v3,17,21);
|
||||
|
||||
#if 0
|
||||
/* This does not seem to save very much runtime in the fast case, and it's
|
||||
* potentially a big loss in the slow case where we're misaligned and we cross
|
||||
* a cache line. */
|
||||
#if (defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
|
||||
defined(__x86_64) || defined(__x86_64__) || \
|
||||
defined(_M_AMD64) || defined(_M_X64) || defined(__INTEL__))
|
||||
# define UNALIGNED_OK 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
uint64_t siphash24(const void *src, unsigned long src_sz, const struct sipkey *key) {
|
||||
uint64_t k0 = key->k0;
|
||||
|
||||
Reference in New Issue
Block a user