]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Clean up header includes for Win32 and ARM.
authorNathan Moinvaziri <nathan@nathanm.com>
Fri, 26 Jun 2020 07:25:45 +0000 (00:25 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sun, 28 Jun 2020 09:16:05 +0000 (11:16 +0200)
Fixed MSVC compiler warning in storechunk for ARM Neon.
Fixed arm_neon.h include for memchunk for ARM Neon.

arch/arm/crc32_acle.c
arch/arm/insert_string_acle.c
arch/arm/memchunk_neon.c
arch/x86/memchunk_sse.c
memchunk.c

index 581bad160e4283a76133a52a5c0023ecace3e676..8c29577a5cc36bee3eb3c426116c2ae612cd595d 100644 (file)
@@ -6,15 +6,11 @@
 */
 
 #ifdef ARM_ACLE_CRC_HASH
-# include <arm_acle.h>
-# ifdef ZLIB_COMPAT
-#  include <zconf.h>
-# else
-#  include <zconf-ng.h>
-# endif
-# ifdef __linux__
-#  include <stddef.h>
-# endif
+#ifndef _MSC_VER
+#  include <arm_acle.h>
+#endif
+#include "../../zbuild.h"
+#include "../../zutil.h"
 
 uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
     register uint32_t c;
@@ -36,7 +32,7 @@ uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
         buf4 = (const uint32_t *) buf;
     }
 
-# if defined(__aarch64__)
+#if defined(__aarch64__)
     if ((len > sizeof(uint32_t)) && ((ptrdiff_t)buf & sizeof(uint32_t))) {
         c = __crc32w(c, *buf4++);
         len -= sizeof(uint32_t);
@@ -44,7 +40,7 @@ uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
 
     const uint64_t *buf8 = (const uint64_t *) buf4;
 
-#  ifdef UNROLL_MORE
+#ifdef UNROLL_MORE
     while (len >= 4 * sizeof(uint64_t)) {
         c = __crc32d(c, *buf8++);
         c = __crc32d(c, *buf8++);
@@ -52,7 +48,7 @@ uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
         c = __crc32d(c, *buf8++);
         len -= 4 * sizeof(uint64_t);
     }
-#  endif
+#endif
 
     while (len >= sizeof(uint64_t)) {
         c = __crc32d(c, *buf8++);
@@ -74,7 +70,7 @@ uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
     }
 
     buf = (const unsigned char *) buf2;
-# else /* __aarch64__ */
+#else /* __aarch64__ */
 
 #  ifdef UNROLL_MORE
     while (len >= 8 * sizeof(uint32_t)) {
@@ -103,7 +99,7 @@ uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len) {
     } else {
         buf = (const unsigned char *) buf4;
     }
-# endif /* __aarch64__ */
+#endif /* __aarch64__ */
 
     if (len) {
         c = __crc32b(c, *buf);
index 2fdbe6ffeb1118db7186664f394663b1970c4df4..2daf9ba3e1a9c0d6ddddb40a49ce55275a8227e2 100644 (file)
@@ -6,7 +6,9 @@
  */
 
 #ifdef ARM_ACLE_CRC_HASH
-#include <arm_acle.h>
+#ifndef _MSC_VER
+#  include <arm_acle.h>
+#endif
 #include "../../zbuild.h"
 #include "../../deflate.h"
 
index 17c484b0f3d451cd7e35a6f3b6482df57d439fb2..cc165afef24f5b73c24057945b9ecfc4e0921814 100644 (file)
@@ -2,14 +2,14 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#ifndef MEMCHUNK_NEON_H_
-#define MEMCHUNK_NEON_H_
-
 #ifdef ARM_NEON_MEMCHUNK
-#include "zbuild.h"
-#include "zutil.h"
-
-#include <arm_neon.h>
+#ifdef _M_ARM64
+#  include <arm64_neon.h>
+#else
+#  include <arm_neon.h>
+#endif
+#include "../../zbuild.h"
+#include "../../zutil.h"
 
 typedef uint8x16_t memchunk_t;
 
@@ -118,10 +118,15 @@ static inline void loadchunk(uint8_t const *s, memchunk_t *chunk) {
 }
 
 static inline void storechunk(uint8_t *out, memchunk_t *chunk) {
+#ifdef _MSC_VER
+    /* Cast to memchunk_t pointer to avoid compiler error on MSVC ARM */
+    memchunk_t *target = (memchunk_t *)chunk;
+    memcpy(target, &chunk, sizeof(chunk));
+#else
     memcpy(out, chunk, sizeof(memchunk_t));
+#endif
 }
 
 #include "memchunk_tpl.h"
 
 #endif
-#endif
index 4955e2963c0dadde491416579b9dc824f5c19e62..d92198dd38418511813f16b6d4dd1d2430ffccc3 100644 (file)
@@ -1,8 +1,6 @@
 /* memchunk_sse.c -- SSE inline functions to copy small data chunks.
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#ifndef MEMCHUNK_SSE_H_
-#define MEMCHUNK_SSE_H_
 
 #include "zbuild.h"
 #include "zutil.h"
@@ -51,4 +49,3 @@ static inline void storechunk(uint8_t *out, memchunk_t *chunk) {
 #include "memchunk_tpl.h"
 
 #endif
-#endif
index f470df8cd9487149a2c853b391761acc7bffd9ec..1dbde6736be27609a60d574f0c8b321481e6fe7f 100644 (file)
@@ -1,8 +1,6 @@
 /* memchunk.c -- inline functions to copy small data chunks.
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#ifndef MEMCHUNK_H_
-#define MEMCHUNK_H_
 
 #include "zbuild.h"
 #include "zutil.h"
@@ -69,5 +67,3 @@ static inline void storechunk(uint8_t *out, memchunk_t *chunk) {
 #define CHUNKMEMSET_SAFE chunkmemset_safe_c
 
 #include "memchunk_tpl.h"
-
-#endif