summaryrefslogtreecommitdiffstats
path: root/mysys/crc32ieee.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--mysys/crc32ieee.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/mysys/crc32ieee.cc b/mysys/crc32ieee.cc
index 14e8017d..c11bdacf 100644
--- a/mysys/crc32ieee.cc
+++ b/mysys/crc32ieee.cc
@@ -26,23 +26,22 @@ static unsigned int my_crc32_zlib(unsigned int crc, const void *data,
return (unsigned int) crc32(crc, (const Bytef *)data, (unsigned int) len);
}
-#ifdef HAVE_PCLMUL
-extern "C" int crc32_pclmul_enabled();
-extern "C" unsigned int crc32_pclmul(unsigned int, const void *, size_t);
-#elif defined(__GNUC__) && defined(HAVE_ARMV8_CRC)
+typedef unsigned int (*my_crc32_t)(unsigned int, const void *, size_t);
+
+#if defined _M_IX86 || defined _M_X64 || defined __i386__ || defined __x86_64__
+extern "C" my_crc32_t crc32_pclmul_enabled();
+#elif defined HAVE_ARMV8_CRC
extern "C" int crc32_aarch64_available();
extern "C" unsigned int crc32_aarch64(unsigned int, const void *, size_t);
#endif
-typedef unsigned int (*my_crc32_t)(unsigned int, const void *, size_t);
-
static my_crc32_t init_crc32()
{
-#ifdef HAVE_PCLMUL
- if (crc32_pclmul_enabled())
- return crc32_pclmul;
-#elif defined(__GNUC__) && defined(HAVE_ARMV8_CRC)
+#if defined _M_IX86 || defined _M_X64 || defined __i386__ || defined __x86_64__
+ if (my_crc32_t crc= crc32_pclmul_enabled())
+ return crc;
+#elif defined HAVE_ARMV8_CRC
if (crc32_aarch64_available())
return crc32_aarch64;
#endif