]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
[ARM/AArch64] Allow disabling NEON support in adler32_stub.
authorMika Lindqvist <postmaster@raasu.org>
Tue, 6 Feb 2018 08:16:44 +0000 (10:16 +0200)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Fri, 9 Feb 2018 10:20:17 +0000 (11:20 +0100)
CMakeLists.txt
configure
functable.c

index 07a98e7f6e63b9fcbfa82500f2c581082fba4004..01a75647dd07cacb71f0693c1cd64f170a3acac7 100644 (file)
@@ -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}\"")
index 26a1544b3cebcef7bb49c50f039a3e2e4b571c69..595713f2eb655e66ec9ef290f174f3f5e7cecbc3 100755 (executable)
--- 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
index 659e3fbd057a97033e257ccdb980dfa62888163a..06dc41fb1b29d46f3c8b6b99476996b75cd30ac8 100644 (file)
@@ -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