From 18488d6212331fee647ecfded85353ab3ad91de8 Mon Sep 17 00:00:00 2001 From: alkis Date: Tue, 6 Jun 2017 01:05:05 -0700 Subject: [PATCH] Use 64 bit little endian on ppc64le. This has tangible performance benefits. This lands https://github.com/google/snappy/pull/27 --- snappy-internal.h | 5 ++--- snappy-stubs-internal.h | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/snappy-internal.h b/snappy-internal.h index d2a22e8..0cccba1 100644 --- a/snappy-internal.h +++ b/snappy-internal.h @@ -80,9 +80,8 @@ char* CompressFragment(const char* input, // Does not read *(s1 + (s2_limit - s2)) or beyond. // Requires that s2_limit >= s2. // -// Separate implementation for x86_64, for speed. Uses the fact that -// x86_64 is little endian. -#if defined(ARCH_K8) +// Separate implementation for 64-bit, little-endian cpus. +#if defined(ARCH_K8) || (defined(ARCH_PPC) && !defined(WORDS_BIGENDIAN)) static inline std::pair FindMatchLength(const char* s1, const char* s2, const char* s2_limit) { diff --git a/snappy-stubs-internal.h b/snappy-stubs-internal.h index f818970..6979e1a 100644 --- a/snappy-stubs-internal.h +++ b/snappy-stubs-internal.h @@ -52,6 +52,10 @@ // Enable 64-bit optimized versions of some routines. #define ARCH_K8 1 +#elif defined(__ppc64__) + +#define ARCH_PPC 1 + #endif // Needed by OS X, among others.