From: Mika Lindqvist Date: Sat, 25 Apr 2020 09:38:41 +0000 (+0300) Subject: Fix ARM64 build with Visual C++. X-Git-Tag: 1.9.9-b1~313 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a31408e13816410c1276e53f68eec7777281704;p=thirdparty%2Fzlib-ng.git Fix ARM64 build with Visual C++. --- diff --git a/arch/arm/adler32_neon.c b/arch/arm/adler32_neon.c index 71973a1ec..3e0540cda 100644 --- a/arch/arm/adler32_neon.c +++ b/arch/arm/adler32_neon.c @@ -18,7 +18,11 @@ */ #include "adler32_neon.h" #if defined(__ARM_NEON__) || defined(__ARM_NEON) -#include +#ifdef _M_ARM64 +# include +#else +# include +#endif #include "../../adler32_p.h" static void NEON_accum32(uint32_t *s, const unsigned char *buf, size_t len) { diff --git a/arch/arm/slide_neon.c b/arch/arm/slide_neon.c index 352d5a60e..c37073450 100644 --- a/arch/arm/slide_neon.c +++ b/arch/arm/slide_neon.c @@ -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 @@ -9,7 +9,11 @@ */ #if defined(ARM_NEON_SLIDEHASH) -#include +#ifdef _M_ARM64 +# include +#else +# include +#endif #include "../../zbuild.h" #include "../../deflate.h" diff --git a/functable.c b/functable.c index 8f634500f..ca9b82f14 100644 --- a/functable.c +++ b/functable.c @@ -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 diff --git a/memcopy.h b/memcopy.h index 47bfbdac7..6589daa68 100644 --- 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 +#ifdef _M_ARM64 +# include +#else +# include +#endif typedef uint8x16_t inffast_chunk_t; #define INFFAST_CHUNKSIZE sizeof(inffast_chunk_t) #endif diff --git a/win32/Makefile.a64 b/win32/Makefile.a64 index 94e7f57da..52aafd360 100644 --- a/win32/Makefile.a64 +++ b/win32/Makefile.a64 @@ -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) \