From: Mika Lindqvist Date: Tue, 6 Feb 2018 08:16:44 +0000 (+0200) Subject: [ARM/AArch64] Allow disabling NEON support in adler32_stub. X-Git-Tag: 1.9.9-b1~651 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5478c6e8ac4b2a99c186f3bb642491f2d8628c75;p=thirdparty%2Fzlib-ng.git [ARM/AArch64] Allow disabling NEON support in adler32_stub. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 07a98e7f6..01a75647d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -401,6 +401,7 @@ if(WITH_OPTIM) endif() if(WITH_NEON) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEONFLAG}") + add_definitions("-DARM_NEON_ADLER32") if(MSVC) add_definitions("-D__ARM_NEON__=1") endif(MSVC) @@ -415,6 +416,7 @@ if(WITH_OPTIM) endif() # We need to check WITH_NEON first if(WITH_NEON) + add_definitions("-DARM_NEON_ADLER32") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEONFLAG}") set(ZLIB_ARCH_SRCS ${ZLIB_ARCH_SRCS} ${ARCHDIR}/adler32_neon.c) add_feature_info(NEON_FILLWINDOW 1 "Support NEON instructions in fill_window_arm, using \"${NEONFLAG}\"") diff --git a/configure b/configure index 26a1544b3..595713f2e 100755 --- a/configure +++ b/configure @@ -876,8 +876,8 @@ case "${ARCH}" in SFLAGS="${SFLAGS} -DUNALIGNED_OK -DUNROLL_LESS" if test $buildneon -eq 1; then - CFLAGS="${CFLAGS} ${floatabi} -mfpu=neon" - SFLAGS="${SFLAGS} ${floatabi} -mfpu=neon" + CFLAGS="${CFLAGS} ${floatabi} -mfpu=neon -DARM_NEON_ADLER32" + SFLAGS="${SFLAGS} ${floatabi} -mfpu=neon -DARM_NEON_ADLER32" ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} adler32_neon.o" ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} adler32_neon.lo" @@ -891,8 +891,8 @@ case "${ARCH}" in ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} crc32_acle.lo insert_string_acle.lo" if test $buildneon -eq 1; then - CFLAGS="${CFLAGS} ${floatabi} -mfpu=neon" - SFLAGS="${SFLAGS} ${floatabi} -mfpu=neon" + CFLAGS="${CFLAGS} ${floatabi} -mfpu=neon -DARM_NEON_ADLER32" + SFLAGS="${SFLAGS} ${floatabi} -mfpu=neon -DARM_NEON_ADLER32" ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} adler32_neon.o" ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} adler32_neon.lo" @@ -925,6 +925,8 @@ case "${ARCH}" in if test $native -eq 0; then ARCH="${ARCH}+simd" fi + CFLAGS="${CFLAGS} -DARM_NEON_ADLER32" + SFLAGS="${SFLAGS} -DARM_NEON_ADLER32" ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} adler32_neon.o" ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} adler32_neon.lo" fi diff --git a/functable.c b/functable.c index 659e3fbd0..06dc41fb1 100644 --- a/functable.c +++ b/functable.c @@ -28,7 +28,7 @@ extern void fill_window_arm(deflate_state *s); /* adler32 */ extern uint32_t adler32_c(uint32_t adler, const unsigned char *buf, size_t len); -#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) +#if ((defined(__ARM_NEON__) || defined(__ARM_NEON)) && defined(ARM_NEON_ADLER32)) extern uint32_t adler32_neon(uint32_t adler, const unsigned char *buf, size_t len); #endif @@ -76,7 +76,7 @@ ZLIB_INTERNAL uint32_t adler32_stub(uint32_t adler, const unsigned char *buf, si // Initialize default functable.adler32=&adler32_c; - #if (defined(__ARM_NEON__) || defined(__ARM_NEON)) + #if ((defined(__ARM_NEON__) || defined(__ARM_NEON)) && defined(ARM_NEON_ADLER32)) functable.adler32=&adler32_neon; #endif