]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Fix ARM64 build with Visual C++.
authorMika Lindqvist <postmaster@raasu.org>
Sat, 25 Apr 2020 09:38:41 +0000 (12:38 +0300)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sat, 2 May 2020 10:41:10 +0000 (12:41 +0200)
arch/arm/adler32_neon.c
arch/arm/slide_neon.c
functable.c
memcopy.h
win32/Makefile.a64

index 71973a1ec6aa67d84d579cfcbffcd23d1ca901fd..3e0540cda3e3bb03e2d2186a91ddd46d66a2d428 100644 (file)
  */
 #include "adler32_neon.h"
 #if defined(__ARM_NEON__) || defined(__ARM_NEON)
-#include <arm_neon.h>
+#ifdef _M_ARM64
+#  include <arm64_neon.h>
+#else
+#  include <arm_neon.h>
+#endif
 #include "../../adler32_p.h"
 
 static void NEON_accum32(uint32_t *s, const unsigned char *buf, size_t len) {
index 352d5a60e4c33bb515c1ca56a7a42ba2c8451c53..c37073450b08e26b0a21806f2288d3c8ecd0c1e6 100644 (file)
@@ -1,5 +1,5 @@
 /* slide_neon.c -- Optimized hash table shifting for ARM with support for NEON instructions
- * Copyright (C) 2017 Mika T. Lindqvist
+ * Copyright (C) 2017-2020 Mika T. Lindqvist
  *
  * Authors:
  * Mika T. Lindqvist <postmaster@raasu.org>
@@ -9,7 +9,11 @@
  */
 
 #if defined(ARM_NEON_SLIDEHASH)
-#include <arm_neon.h>
+#ifdef _M_ARM64
+#  include <arm64_neon.h>
+#else
+#  include <arm_neon.h>
+#endif
 #include "../../zbuild.h"
 #include "../../deflate.h"
 
index 8f634500ffc41a73700ded7cb593fa3fc50191c3..ca9b82f14fa945cfa6a2b95c9c44943480361d5f 100644 (file)
@@ -131,7 +131,9 @@ ZLIB_INTERNAL void slide_hash_stub(deflate_state *s) {
 #  endif
         functable.slide_hash = &slide_hash_sse2;
 #elif defined(ARM_NEON_SLIDEHASH)
+#  ifndef ARM_NOCHECK_NEON
     if (arm_cpu_has_neon)
+#  endif
         functable.slide_hash = &slide_hash_neon;
 #endif
 #ifdef X86_AVX2
@@ -148,7 +150,9 @@ ZLIB_INTERNAL uint32_t adler32_stub(uint32_t adler, const unsigned char *buf, si
     cpu_check_features();
 
 #if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && defined(ARM_NEON_ADLER32)
+#  ifndef ARM_NOCHECK_NEON
     if (arm_cpu_has_neon)
+#  endif
         functable.adler32 = &adler32_neon;
 #endif
 
index 47bfbdac78eef38cfece3ee4a01a3c44efd6ba21..6589daa687b8d406e4370c21e2273c375e6cde62 100644 (file)
--- a/memcopy.h
+++ b/memcopy.h
@@ -19,7 +19,11 @@ static inline uint64_t load_64_bits(const unsigned char *in, unsigned bits) {
 }
 
 #if defined(__ARM_NEON__) || defined(__ARM_NEON)
-#include <arm_neon.h>
+#ifdef _M_ARM64
+#  include <arm64_neon.h>
+#else
+#  include <arm_neon.h>
+#endif
 typedef uint8x16_t inffast_chunk_t;
 #define INFFAST_CHUNKSIZE sizeof(inffast_chunk_t)
 #endif
index 94e7f57da62a1ae64c22847f4d26f2fa9efd1143..52aafd3606b88e12385c1d4262e1f68c68669595 100644 (file)
@@ -51,7 +51,7 @@ RESFILE = zlib-ng1.res
 SUFFIX = -ng
 !endif
 WFLAGS = $(WFLAGS) -DARM_ACLE_CRC_HASH -D__ARM_NEON__=1 -DARM_NEON_ADLER32 -DARM_NEON_SLIDEHASH -DARM_NOCHECK_NEON
-OBJS = $(OBJS) crc32_acle.obj insert_string_acle.obj slide_neon.obj .adler32_neon.obj
+OBJS = $(OBJS) crc32_acle.obj insert_string_acle.obj slide_neon.obj adler32_neon.obj
 
 # targets
 all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \