]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Split CPU features checks and CPU-specific function prototypes and reduce include...
authorVladislav Shchapov <vladislav@shchapov.ru>
Sat, 3 Feb 2024 16:26:57 +0000 (21:26 +0500)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Thu, 22 Feb 2024 19:11:46 +0000 (20:11 +0100)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
37 files changed:
CMakeLists.txt
arch/arm/arm_features.h
arch/arm/arm_functions.h [new file with mode: 0644]
arch/generic/Makefile.in
arch/generic/adler32_fold_c.c
arch/generic/adler32_fold_c.h [deleted file]
arch/generic/crc32_fold_c.c
arch/generic/crc32_fold_c.h [deleted file]
arch/generic/generic_functions.h [moved from arch/generic/generic_features.h with 78% similarity]
arch/power/power_features.h
arch/power/power_functions.h [new file with mode: 0644]
arch/riscv/riscv_features.h
arch/riscv/riscv_functions.h [new file with mode: 0644]
arch/s390/crc32-vx.c
arch/s390/s390_features.h
arch/s390/s390_functions.h [new file with mode: 0644]
arch/x86/adler32_avx512.c
arch/x86/adler32_avx512_vnni.c
arch/x86/x86_features.h
arch/x86/x86_functions.h [new file with mode: 0644]
cpu_features.h
cpu_functions.h [new file with mode: 0644]
crc32_braid_p.h
functable.c
functable.h
test/benchmarks/benchmark_adler32.cc
test/benchmarks/benchmark_adler32_copy.cc
test/benchmarks/benchmark_compare256.cc
test/benchmarks/benchmark_compare256_rle.cc
test/benchmarks/benchmark_crc32.cc
test/benchmarks/benchmark_slidehash.cc
test/test_adler32.cc
test/test_compare256.cc
test/test_crc32.cc
win32/Makefile.a64
win32/Makefile.arm
win32/Makefile.msc

index 18ef824910e4672167c957b690e88f2409dab36b..f13abb1626fd996370346b7ba19d3ae546396192 100644 (file)
@@ -560,7 +560,7 @@ endif()
 set(GENERIC_ARCHDIR "arch/generic")
 
 set(ZLIB_ARCH_SRCS)
-set(ZLIB_ARCH_HDRS ${GENERIC_ARCHDIR}/generic_features.h)
+set(ZLIB_ARCH_HDRS ${GENERIC_ARCHDIR}/generic_functions.h)
 
 if(BASEARCH_ARM_FOUND)
     set(ARCHDIR "arch/arm")
@@ -647,7 +647,7 @@ if(WITH_OPTIM)
                 endif()
             endif()
         endif()
-        list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/arm_features.h)
+        list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/arm_features.h ${ARCHDIR}/arm_functions.h)
         list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/arm_features.c)
         if(WITH_ACLE)
             check_acle_compiler_flag()
@@ -719,7 +719,7 @@ if(WITH_OPTIM)
             add_definitions(-DPOWER_FEATURES)
         endif()
         if(HAVE_VMX OR HAVE_POWER8_INTRIN OR HAVE_POWER9_INTRIN)
-            list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/power_features.h)
+            list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/power_features.h ${ARCHDIR}/power_functions.h)
             list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/power_features.c)
         endif()
         # VMX specific options and files
@@ -769,7 +769,7 @@ if(WITH_OPTIM)
             if(HAVE_RVV_INTRIN)
                 add_definitions(-DRISCV_FEATURES)
                 add_definitions(-DRISCV_RVV)
-                list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/riscv_features.h)
+                list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/riscv_features.h ${ARCHDIR}/riscv_functions.h)
                 list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/riscv_features.c)
                 # FIXME: we will not set compile flags for riscv_features.c when
                 # the kernels update hwcap or hwprobe for riscv
@@ -784,7 +784,7 @@ if(WITH_OPTIM)
         check_s390_intrinsics()
         if(HAVE_S390_INTRIN)
             add_definitions(-DS390_FEATURES)
-            list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/s390_features.h)
+            list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/s390_features.h ${ARCHDIR}/s390_functions.h)
             list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/s390_features.c)
         endif()
         if(WITH_DFLTCC_DEFLATE OR WITH_DFLTCC_INFLATE)
@@ -811,7 +811,7 @@ if(WITH_OPTIM)
         endif()
     elseif(BASEARCH_X86_FOUND)
         add_definitions(-DX86_FEATURES)
-        list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/x86_features.h)
+        list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/x86_features.h ${ARCHDIR}/x86_functions.h)
         list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/x86_features.c)
         if(MSVC)
             list(APPEND ZLIB_ARCH_HDRS fallback_builtins.h)
@@ -1002,11 +1002,10 @@ set(ZLIB_PUBLIC_HDRS
     ${CMAKE_CURRENT_BINARY_DIR}/zlib${SUFFIX}.h
 )
 set(ZLIB_PRIVATE_HDRS
-    arch/generic/adler32_fold_c.h
-    arch/generic/crc32_fold_c.h
     adler32_p.h
     chunkset_tpl.h
     compare256_rle.h
+    cpu_functions.h
     cpu_features.h
     crc32_braid_p.h
     crc32_braid_comb_p.h
index e0faaaf7381315cbdb93a9100170ddb3c1204afd..d968e02fbb6cfc6eb77942f0913bfcc057156cac 100644 (file)
@@ -2,8 +2,8 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#ifndef ARM_H_
-#define ARM_H_
+#ifndef ARM_FEATURES_H_
+#define ARM_FEATURES_H_
 
 struct arm_cpu_features {
     int has_simd;
@@ -13,44 +13,4 @@ struct arm_cpu_features {
 
 void Z_INTERNAL arm_check_features(struct arm_cpu_features *features);
 
-#ifdef CPU_FEATURES_H_
-
-#ifdef ARM_NEON
-uint32_t adler32_neon(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t chunksize_neon(void);
-uint8_t* chunkmemset_safe_neon(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-
-#  ifdef HAVE_BUILTIN_CTZLL
-    uint32_t compare256_neon(const uint8_t *src0, const uint8_t *src1);
-#    ifdef DEFLATE_H_
-        uint32_t longest_match_neon(deflate_state *const s, Pos cur_match);
-        uint32_t longest_match_slow_neon(deflate_state *const s, Pos cur_match);
-#    endif
-#  endif
-#  ifdef DEFLATE_H_
-    void slide_hash_neon(deflate_state *s);
-#  endif
-#  ifdef INFLATE_H_
-    void inflate_fast_neon(PREFIX3(stream) *strm, uint32_t start);
-#  endif
-#endif
-
-#ifdef ARM_ACLE
-uint32_t crc32_acle(uint32_t crc, const uint8_t *buf, size_t len);
-
-#  ifdef DEFLATE_H_
-    void insert_string_acle(deflate_state *const s, const uint32_t str, uint32_t count);
-    Pos quick_insert_string_acle(deflate_state *const s, const uint32_t str);
-    uint32_t update_hash_acle(deflate_state *const s, uint32_t h, uint32_t val);
-#  endif
-#endif
-
-#ifdef ARM_SIMD
-#  ifdef DEFLATE_H_
-    void slide_hash_armv6(deflate_state *s);
-#  endif
-#endif
-
-#endif
-
-#endif /* ARM_H_ */
+#endif /* ARM_FEATURES_H_ */
diff --git a/arch/arm/arm_functions.h b/arch/arm/arm_functions.h
new file mode 100644 (file)
index 0000000..bf867e9
--- /dev/null
@@ -0,0 +1,35 @@
+/* arm_functions.h -- ARM implementations for arch-specific functions.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef ARM_FUNCTIONS_H_
+#define ARM_FUNCTIONS_H_
+
+
+#ifdef ARM_NEON
+uint32_t adler32_neon(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t chunksize_neon(void);
+uint8_t* chunkmemset_safe_neon(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+
+#  ifdef HAVE_BUILTIN_CTZLL
+uint32_t compare256_neon(const uint8_t *src0, const uint8_t *src1);
+uint32_t longest_match_neon(deflate_state *const s, Pos cur_match);
+uint32_t longest_match_slow_neon(deflate_state *const s, Pos cur_match);
+#  endif
+void slide_hash_neon(deflate_state *s);
+void inflate_fast_neon(PREFIX3(stream) *strm, uint32_t start);
+#endif
+
+#ifdef ARM_ACLE
+uint32_t crc32_acle(uint32_t crc, const uint8_t *buf, size_t len);
+
+void insert_string_acle(deflate_state *const s, const uint32_t str, uint32_t count);
+Pos quick_insert_string_acle(deflate_state *const s, const uint32_t str);
+uint32_t update_hash_acle(deflate_state *const s, uint32_t h, uint32_t val);
+#endif
+
+#ifdef ARM_SIMD
+void slide_hash_armv6(deflate_state *s);
+#endif
+
+#endif /* ARM_FUNCTIONS_H_ */
index fd32b3ec543b26e6d96d21001fe31b83c3fecbda..412b41a5ee3145de20cb89515cfa17fa1e6f8339 100644 (file)
@@ -29,10 +29,10 @@ adler32_c.o: $(SRCDIR)/adler32_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/adler32_p.h
 adler32_c.lo: $(SRCDIR)/adler32_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/adler32_p.h
        $(CC) $(SFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_c.c
 
-adler32_fold_c.o: $(SRCDIR)/adler32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h $(SRCDIR)/adler32_fold_c.h
+adler32_fold_c.o: $(SRCDIR)/adler32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h
        $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_fold_c.c
 
-adler32_fold_c.lo: $(SRCDIR)/adler32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h $(SRCDIR)/adler32_fold_c.h
+adler32_fold_c.lo: $(SRCDIR)/adler32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h
        $(CC) $(SFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/adler32_fold_c.c
 
 chunkset_c.o: $(SRCDIR)/chunkset_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/chunkset_tpl.h $(SRCTOP)/inffast_tpl.h
@@ -53,10 +53,10 @@ crc32_braid_c.o: $(SRCDIR)/crc32_braid_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/crc32_b
 crc32_braid_c.lo: $(SRCDIR)/crc32_braid_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/crc32_braid_p.h $(SRCTOP)/crc32_braid_tbl.h
        $(CC) $(SFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_braid_c.c
 
-crc32_fold_c.o: $(SRCDIR)/crc32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h $(SRCDIR)/crc32_fold_c.h
+crc32_fold_c.o: $(SRCDIR)/crc32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h
        $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_c.c
 
-crc32_fold_c.lo: $(SRCDIR)/crc32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h $(SRCDIR)/crc32_fold_c.h
+crc32_fold_c.lo: $(SRCDIR)/crc32_fold_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/functable.h
        $(CC) $(SFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/crc32_fold_c.c
 
 insert_string_c.o: $(SRCDIR)/insert_string_c.c  $(SRCTOP)/zbuild.h $(SRCTOP)/deflate.h $(SRCTOP)/insert_string_tpl.h
index abefdc5b633092f3976708ab0f866dd5bb695053..24aa1cf1bc60fa539a20c4c45c39f2fec18c22da 100644 (file)
@@ -5,7 +5,6 @@
 
 #include "zbuild.h"
 #include "functable.h"
-#include "adler32_fold_c.h"
 
 #include <limits.h>
 
diff --git a/arch/generic/adler32_fold_c.h b/arch/generic/adler32_fold_c.h
deleted file mode 100644 (file)
index b231b1a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/* adler32_fold.h -- adler32 folding interface
- * Copyright (C) 2022 Adam Stylinski
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#ifndef ADLER32_FOLD_C_H_
-#define ADLER32_FOLD_C_H_
-
-Z_INTERNAL uint32_t adler32_fold_copy_c(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-
-#endif
index 404c6e21106288170d13a6215da838a6bd483f6d..762893278048e081b811eba10bcb0c5644a1c403 100644 (file)
@@ -3,11 +3,10 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 #include "zbuild.h"
+#include "zutil.h"
 #include "functable.h"
 #include "crc32.h"
 
-#include "crc32_fold_c.h"
-
 Z_INTERNAL uint32_t crc32_fold_reset_c(crc32_fold *crc) {
     crc->value = CRC32_INITIAL_VALUE;
     return crc->value;
diff --git a/arch/generic/crc32_fold_c.h b/arch/generic/crc32_fold_c.h
deleted file mode 100644 (file)
index f68689c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* crc32_fold.h -- crc32 folding interface
- * Copyright (C) 2021 Nathan Moinvaziri
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-#ifndef CRC32_FOLD_C_H_
-#define CRC32_FOLD_C_H_
-
-Z_INTERNAL uint32_t crc32_fold_reset_c(crc32_fold *crc);
-Z_INTERNAL void     crc32_fold_copy_c(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
-Z_INTERNAL void     crc32_fold_c(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
-Z_INTERNAL uint32_t crc32_fold_final_c(crc32_fold *crc);
-
-#endif
similarity index 78%
rename from arch/generic/generic_features.h
rename to arch/generic/generic_functions.h
index 511bce0336e8bf8ff1879d75c7e7f4c3fd996084..a12b47cea5dd863b3653619c4e2b6bb41a9971bd 100644 (file)
@@ -1,20 +1,29 @@
-/* generic_features.h -- generic C implementations for arch-specific features
+/* generic_functions.h -- generic C implementations for arch-specific functions.
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#ifndef GENERIC_FEATURES_H_
-#define GENERIC_FEATURES_H_
+#ifndef GENERIC_FUNCTIONS_H_
+#define GENERIC_FUNCTIONS_H_
+
+#include "zendian.h"
+
+Z_INTERNAL uint32_t crc32_fold_reset_c(crc32_fold *crc);
+Z_INTERNAL void     crc32_fold_copy_c(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
+Z_INTERNAL void     crc32_fold_c(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
+Z_INTERNAL uint32_t crc32_fold_final_c(crc32_fold *crc);
+
+Z_INTERNAL uint32_t adler32_fold_copy_c(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+
 
 typedef uint32_t (*adler32_func)(uint32_t adler, const uint8_t *buf, size_t len);
 typedef uint32_t (*compare256_func)(const uint8_t *src0, const uint8_t *src1);
 typedef uint32_t (*crc32_func)(uint32_t crc32, const uint8_t *buf, size_t len);
 
 uint32_t adler32_c(uint32_t adler, const uint8_t *buf, size_t len);
+
 uint32_t chunksize_c(void);
 uint8_t* chunkmemset_safe_c(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-#ifdef INFLATE_H_
 void     inflate_fast_c(PREFIX3(stream) *strm, uint32_t start);
-#endif
 
 uint32_t PREFIX(crc32_braid)(uint32_t crc, const uint8_t *buf, size_t len);
 
@@ -29,8 +38,7 @@ uint32_t compare256_unaligned_16(const uint8_t *src0, const uint8_t *src1);
 #  endif
 #endif
 
-#ifdef DEFLATE_H_
-typedef void    (*slide_hash_func)(deflate_state *s);
+typedef void (*slide_hash_func)(deflate_state *s);
 
 void     insert_string_c(deflate_state *const s, const uint32_t str, uint32_t count);
 Pos      quick_insert_string_c(deflate_state *const s, const uint32_t str);
@@ -58,5 +66,3 @@ uint32_t longest_match_slow_c(deflate_state *const s, Pos cur_match);
 #  endif
 
 #endif
-
-#endif
index acb618115ee0b868c9741e025c28b327322816ee..1ff51de5ddc58173264eb02de15596528b981295 100644 (file)
@@ -4,8 +4,8 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#ifndef POWER_H_
-#define POWER_H_
+#ifndef POWER_FEATURES_H_
+#define POWER_FEATURES_H_
 
 struct power_cpu_features {
     int has_altivec;
@@ -15,36 +15,4 @@ struct power_cpu_features {
 
 void Z_INTERNAL power_check_features(struct power_cpu_features *features);
 
-#ifdef CPU_FEATURES_H_
-
-#ifdef PPC_VMX
-uint32_t adler32_vmx(uint32_t adler, const uint8_t *buf, size_t len);
-#  ifdef DEFLATE_H_
-    void slide_hash_vmx(deflate_state *s);
-#  endif
-#endif
-
-#ifdef POWER8_VSX
-uint32_t adler32_power8(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t chunksize_power8(void);
-uint8_t* chunkmemset_safe_power8(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-uint32_t crc32_power8(uint32_t crc, const uint8_t *buf, size_t len);
-#  ifdef DEFLATE_H_
-    void slide_hash_power8(deflate_state *s);
-#  endif
-#  ifdef INFLATE_H_
-    void inflate_fast_power8(PREFIX3(stream) *strm, uint32_t start);
-#  endif
-#endif
-
-#ifdef POWER9
-uint32_t compare256_power9(const uint8_t *src0, const uint8_t *src1);
-#  ifdef DEFLATE_H_
-    uint32_t longest_match_power9(deflate_state *const s, Pos cur_match);
-    uint32_t longest_match_slow_power9(deflate_state *const s, Pos cur_match);
-#  endif
-#endif
-
-#endif
-
-#endif /* POWER_H_ */
+#endif /* POWER_FEATURES_H_ */
diff --git a/arch/power/power_functions.h b/arch/power/power_functions.h
new file mode 100644 (file)
index 0000000..c64eafc
--- /dev/null
@@ -0,0 +1,30 @@
+/* power_functions.h -- POWER implementations for arch-specific functions.
+ * Copyright (C) 2020 Matheus Castanho <msc@linux.ibm.com>, IBM
+ * Copyright (C) 2021 Mika T. Lindqvist <postmaster@raasu.org>
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef POWER_FUNCTIONS_H_
+#define POWER_FUNCTIONS_H_
+
+#ifdef PPC_VMX
+uint32_t adler32_vmx(uint32_t adler, const uint8_t *buf, size_t len);
+void slide_hash_vmx(deflate_state *s);
+#endif
+
+#ifdef POWER8_VSX
+uint32_t adler32_power8(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t chunksize_power8(void);
+uint8_t* chunkmemset_safe_power8(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+uint32_t crc32_power8(uint32_t crc, const uint8_t *buf, size_t len);
+void slide_hash_power8(deflate_state *s);
+void inflate_fast_power8(PREFIX3(stream) *strm, uint32_t start);
+#endif
+
+#ifdef POWER9
+uint32_t compare256_power9(const uint8_t *src0, const uint8_t *src1);
+uint32_t longest_match_power9(deflate_state *const s, Pos cur_match);
+uint32_t longest_match_slow_power9(deflate_state *const s, Pos cur_match);
+#endif
+
+#endif /* POWER_FUNCTIONS_H_ */
index 51901e83c8d55f7844f61c9c7d517623138bf370..b1593acc256703693120861bf70bdbb9dd9498f0 100644 (file)
@@ -6,8 +6,8 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#ifndef RISCV_H_
-#define RISCV_H_
+#ifndef RISCV_FEATURES_H_
+#define RISCV_FEATURES_H_
 
 struct riscv_cpu_features {
     int has_rvv;
@@ -15,25 +15,4 @@ struct riscv_cpu_features {
 
 void Z_INTERNAL riscv_check_features(struct riscv_cpu_features *features);
 
-#ifdef CPU_FEATURES_H_
-
-#ifdef RISCV_RVV
-uint32_t adler32_rvv(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t adler32_fold_copy_rvv(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-uint32_t chunksize_rvv(void);
-uint8_t* chunkmemset_safe_rvv(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-uint32_t compare256_rvv(const uint8_t *src0, const uint8_t *src1);
-
-#  ifdef DEFLATE_H_
-    uint32_t longest_match_rvv(deflate_state *const s, Pos cur_match);
-    uint32_t longest_match_slow_rvv(deflate_state *const s, Pos cur_match);
-    void slide_hash_rvv(deflate_state *s);
-#  endif
-#  ifdef INFLATE_H_
-    void inflate_fast_rvv(PREFIX3(stream) *strm, uint32_t start);
-#  endif
-#endif
-
-#endif
-
-#endif /* RISCV_H_ */
+#endif /* RISCV_FEATURES_H_ */
diff --git a/arch/riscv/riscv_functions.h b/arch/riscv/riscv_functions.h
new file mode 100644 (file)
index 0000000..90b398f
--- /dev/null
@@ -0,0 +1,25 @@
+/* riscv_functions.h -- RISCV implementations for arch-specific functions.
+ *
+ * Copyright (C) 2023 SiFive, Inc. All rights reserved.
+ * Contributed by Alex Chiang <alex.chiang@sifive.com>
+ *
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef RISCV_FUNCTIONS_H_
+#define RISCV_FUNCTIONS_H_
+
+#ifdef RISCV_RVV
+uint32_t adler32_rvv(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t adler32_fold_copy_rvv(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+uint32_t chunksize_rvv(void);
+uint8_t* chunkmemset_safe_rvv(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+uint32_t compare256_rvv(const uint8_t *src0, const uint8_t *src1);
+
+uint32_t longest_match_rvv(deflate_state *const s, Pos cur_match);
+uint32_t longest_match_slow_rvv(deflate_state *const s, Pos cur_match);
+void slide_hash_rvv(deflate_state *s);
+void inflate_fast_rvv(PREFIX3(stream) *strm, uint32_t start);
+#endif
+
+#endif /* RISCV_FUNCTIONS_H_ */
index 82b8532e5a939573271199a2422067550be53bbe..f794e3bdd2b2cb263e506f49d598d10430053c0f 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 #include "zbuild.h"
-#include "crc32_braid_p.h"
+#include "cpu_functions.h"
 
 #include <vecintrin.h>
 
index 02eec995bac0e8a5b84467e3124aaf196e41fc22..fb2ac14b26b5d0f1a3a2ad6d3599d3ef078c9e72 100644 (file)
@@ -1,3 +1,7 @@
+/* s390_features.h -- check for s390 features.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
 #ifndef S390_FEATURES_H_
 #define S390_FEATURES_H_
 
@@ -7,12 +11,4 @@ struct s390_cpu_features {
 
 void Z_INTERNAL s390_check_features(struct s390_cpu_features *features);
 
-#ifdef CPU_FEATURES_H_
-
-#ifdef S390_CRC32_VX
-uint32_t crc32_s390_vx(uint32_t crc, const uint8_t *buf, size_t len);
-#endif
-
-#endif
-
 #endif
diff --git a/arch/s390/s390_functions.h b/arch/s390/s390_functions.h
new file mode 100644 (file)
index 0000000..e9f3cda
--- /dev/null
@@ -0,0 +1,12 @@
+/* s390_functions.h -- s390 implementations for arch-specific functions.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef S390_FUNCTIONS_H_
+#define S390_FUNCTIONS_H_
+
+#ifdef S390_CRC32_VX
+uint32_t crc32_s390_vx(uint32_t crc, const uint8_t *buf, size_t len);
+#endif
+
+#endif
index cc6bfa641deaddaf4d3f258b79d3c2f34da1d773..49101f09151565c2a5e06f77d8ae5affc68de245 100644 (file)
@@ -10,7 +10,7 @@
 
 #include "zbuild.h"
 #include "adler32_p.h"
-#include "cpu_features.h"
+#include "cpu_functions.h"
 #include <immintrin.h>
 #include "x86_intrins.h"
 #include "adler32_avx512_p.h"
index 3dd26d7db73d88252f016a7ccb934ea748ca67e7..bfcb944c757fe1795803a40ba2bd417747780b38 100644 (file)
@@ -11,7 +11,7 @@
 
 #include "zbuild.h"
 #include "adler32_p.h"
-#include "cpu_features.h"
+#include "cpu_functions.h"
 #include <immintrin.h>
 #include "x86_intrins.h"
 #include "adler32_avx512_p.h"
index 6e8ba799a8358cb83a6300111ca31e1311059115..fc56ae2f446a479fc21332d0134e42367acea10f 100644 (file)
@@ -21,87 +21,4 @@ struct x86_cpu_features {
 
 void Z_INTERNAL x86_check_features(struct x86_cpu_features *features);
 
-#ifdef CPU_FEATURES_H_
-
-#include "fallback_builtins.h"
-#include "crc32.h"
-
-#ifdef X86_SSE2
-uint32_t chunksize_sse2(void);
-uint8_t* chunkmemset_safe_sse2(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-
-#  ifdef HAVE_BUILTIN_CTZ
-    uint32_t compare256_sse2(const uint8_t *src0, const uint8_t *src1);
-#    ifdef DEFLATE_H_
-        uint32_t longest_match_sse2(deflate_state *const s, Pos cur_match);
-        uint32_t longest_match_slow_sse2(deflate_state *const s, Pos cur_match);
-        void slide_hash_sse2(deflate_state *s);
-#    endif
-#  endif
-#  ifdef INFLATE_H_
-        void inflate_fast_sse2(PREFIX3(stream)* strm, uint32_t start);
-#  endif
-#endif
-
-#ifdef X86_SSSE3
-uint32_t adler32_ssse3(uint32_t adler, const uint8_t *buf, size_t len);
-uint8_t* chunkmemset_safe_ssse3(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-#  ifdef INFLATE_H_
-    void inflate_fast_ssse3(PREFIX3(stream) *strm, uint32_t start);
-#  endif
-#endif
-
-#ifdef X86_SSE42
-uint32_t adler32_fold_copy_sse42(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-#  ifdef DEFLATE_H_
-    void insert_string_sse42(deflate_state *const s, const uint32_t str, uint32_t count);
-    Pos quick_insert_string_sse42(deflate_state *const s, const uint32_t str);
-    uint32_t update_hash_sse42(deflate_state *const s, uint32_t h, uint32_t val);
-#  endif
-#endif
-
-#ifdef X86_AVX2
-uint32_t adler32_avx2(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t adler32_fold_copy_avx2(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-uint32_t chunksize_avx2(void);
-uint8_t* chunkmemset_safe_avx2(uint8_t *out, unsigned dist, unsigned len, unsigned left);
-
-#  ifdef HAVE_BUILTIN_CTZ
-    uint32_t compare256_avx2(const uint8_t *src0, const uint8_t *src1);
-#    ifdef DEFLATE_H_
-        uint32_t longest_match_avx2(deflate_state *const s, Pos cur_match);
-        uint32_t longest_match_slow_avx2(deflate_state *const s, Pos cur_match);
-        void slide_hash_avx2(deflate_state *s);
-#    endif
-#  endif
-#  ifdef INFLATE_H_
-        void inflate_fast_avx2(PREFIX3(stream)* strm, uint32_t start);
-#  endif
-#endif
-#ifdef X86_AVX512
-uint32_t adler32_avx512(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t adler32_fold_copy_avx512(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-#endif
-#ifdef X86_AVX512VNNI
-uint32_t adler32_avx512_vnni(uint32_t adler, const uint8_t *buf, size_t len);
-uint32_t adler32_fold_copy_avx512_vnni(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
-#endif
-
-#ifdef X86_PCLMULQDQ_CRC
-uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc);
-void     crc32_fold_pclmulqdq_copy(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
-void     crc32_fold_pclmulqdq(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
-uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc);
-uint32_t crc32_pclmulqdq(uint32_t crc32, const uint8_t *buf, size_t len);
-#endif
-#ifdef X86_VPCLMULQDQ_CRC
-uint32_t crc32_fold_vpclmulqdq_reset(crc32_fold *crc);
-void     crc32_fold_vpclmulqdq_copy(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
-void     crc32_fold_vpclmulqdq(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
-uint32_t crc32_fold_vpclmulqdq_final(crc32_fold *crc);
-uint32_t crc32_vpclmulqdq(uint32_t crc32, const uint8_t *buf, size_t len);
-#endif
-
-#endif
-
-#endif /* CPU_H_ */
+#endif /* X86_FEATURES_H_ */
diff --git a/arch/x86/x86_functions.h b/arch/x86/x86_functions.h
new file mode 100644 (file)
index 0000000..5807c96
--- /dev/null
@@ -0,0 +1,73 @@
+/* x86_functions.h -- x86 implementations for arch-specific functions.
+ * Copyright (C) 2013 Intel Corporation Jim Kukunas
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef X86_FUNCTIONS_H_
+#define X86_FUNCTIONS_H_
+
+#ifdef X86_SSE2
+uint32_t chunksize_sse2(void);
+uint8_t* chunkmemset_safe_sse2(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+
+#  ifdef HAVE_BUILTIN_CTZ
+    uint32_t compare256_sse2(const uint8_t *src0, const uint8_t *src1);
+    uint32_t longest_match_sse2(deflate_state *const s, Pos cur_match);
+    uint32_t longest_match_slow_sse2(deflate_state *const s, Pos cur_match);
+    void slide_hash_sse2(deflate_state *s);
+#  endif
+    void inflate_fast_sse2(PREFIX3(stream)* strm, uint32_t start);
+#endif
+
+#ifdef X86_SSSE3
+uint32_t adler32_ssse3(uint32_t adler, const uint8_t *buf, size_t len);
+uint8_t* chunkmemset_safe_ssse3(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+void inflate_fast_ssse3(PREFIX3(stream) *strm, uint32_t start);
+#endif
+
+#ifdef X86_SSE42
+uint32_t adler32_fold_copy_sse42(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+void insert_string_sse42(deflate_state *const s, const uint32_t str, uint32_t count);
+Pos quick_insert_string_sse42(deflate_state *const s, const uint32_t str);
+uint32_t update_hash_sse42(deflate_state *const s, uint32_t h, uint32_t val);
+#endif
+
+#ifdef X86_AVX2
+uint32_t adler32_avx2(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t adler32_fold_copy_avx2(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+uint32_t chunksize_avx2(void);
+uint8_t* chunkmemset_safe_avx2(uint8_t *out, unsigned dist, unsigned len, unsigned left);
+
+#  ifdef HAVE_BUILTIN_CTZ
+    uint32_t compare256_avx2(const uint8_t *src0, const uint8_t *src1);
+    uint32_t longest_match_avx2(deflate_state *const s, Pos cur_match);
+    uint32_t longest_match_slow_avx2(deflate_state *const s, Pos cur_match);
+    void slide_hash_avx2(deflate_state *s);
+#  endif
+    void inflate_fast_avx2(PREFIX3(stream)* strm, uint32_t start);
+#endif
+#ifdef X86_AVX512
+uint32_t adler32_avx512(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t adler32_fold_copy_avx512(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+#endif
+#ifdef X86_AVX512VNNI
+uint32_t adler32_avx512_vnni(uint32_t adler, const uint8_t *buf, size_t len);
+uint32_t adler32_fold_copy_avx512_vnni(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
+#endif
+
+#ifdef X86_PCLMULQDQ_CRC
+uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc);
+void     crc32_fold_pclmulqdq_copy(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
+void     crc32_fold_pclmulqdq(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
+uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc);
+uint32_t crc32_pclmulqdq(uint32_t crc32, const uint8_t *buf, size_t len);
+#endif
+#ifdef X86_VPCLMULQDQ_CRC
+uint32_t crc32_fold_vpclmulqdq_reset(crc32_fold *crc);
+void     crc32_fold_vpclmulqdq_copy(crc32_fold *crc, uint8_t *dst, const uint8_t *src, size_t len);
+void     crc32_fold_vpclmulqdq(crc32_fold *crc, const uint8_t *src, size_t len, uint32_t init_crc);
+uint32_t crc32_fold_vpclmulqdq_final(crc32_fold *crc);
+uint32_t crc32_vpclmulqdq(uint32_t crc32, const uint8_t *buf, size_t len);
+#endif
+
+#endif /* X86_FUNCTIONS_H_ */
index 149ed18724dda92fbbf17a2f9fc20d728a1135e9..d74b1d6e0373f8e8d2f71d1e79178929cddce5d1 100644 (file)
@@ -18,8 +18,6 @@
 #  include "arch/riscv/riscv_features.h"
 #endif
 
-#include "arch/generic/generic_features.h"
-
 struct cpu_features {
 #if defined(X86_FEATURES)
     struct x86_cpu_features x86;
diff --git a/cpu_functions.h b/cpu_functions.h
new file mode 100644 (file)
index 0000000..d2a925f
--- /dev/null
@@ -0,0 +1,29 @@
+/* cpu_functions.h -- CPU-specific function prototypes.
+ * Copyright (C) 2017 Hans Kristian Rosbach
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifndef CPU_FUNCTIONS_H_
+#define CPU_FUNCTIONS_H_
+
+#include "zbuild.h"
+#include "zutil.h"
+#include "crc32.h"
+#include "deflate.h"
+#include "fallback_builtins.h"
+
+#include "arch/generic/generic_functions.h"
+
+#if defined(X86_FEATURES)
+#  include "arch/x86/x86_functions.h"
+#elif defined(ARM_FEATURES)
+#  include "arch/arm/arm_functions.h"
+#elif defined(PPC_FEATURES) || defined(POWER_FEATURES)
+#  include "arch/power/power_functions.h"
+#elif defined(S390_FEATURES)
+#  include "arch/s390/s390_functions.h"
+#elif defined(RISCV_FEATURES)
+#  include "arch/riscv/riscv_functions.h"
+#endif
+
+#endif
index 45c05e3c4a45faae92466660b0b1c9b6ca2055ba..003bf91920fa9c798da6e8e6ceb4401091b5d099 100644 (file)
@@ -61,6 +61,4 @@
 /* CRC polynomial. */
 #define POLY 0xedb88320         /* p(x) reflected, with x^32 implied */
 
-extern uint32_t PREFIX(crc32_braid)(uint32_t crc, const uint8_t *buf, size_t len);
-
 #endif /* CRC32_BRAID_P_H_ */
index ac6bd99d733df21e87c061f00d6859f59b2db1aa..8905c16ca1f62c114fde176e3f1733c7c17b8aa6 100644 (file)
@@ -7,6 +7,7 @@
 #include "zendian.h"
 #include "functable.h"
 #include "cpu_features.h"
+#include "cpu_functions.h"
 
 #if defined(_MSC_VER)
 #  include <intrin.h>
index 353f7a6038b667122bccb7330f48d993eff88155..21021770cdbfdeb69bcad62d60f5751173cbd636 100644 (file)
@@ -7,10 +7,7 @@
 #define FUNCTABLE_H_
 
 #include "deflate.h"
-#include "arch/generic/crc32_fold_c.h"
-#include "arch/generic/adler32_fold_c.h"
-#include "inftrees.h"
-#include "inflate.h"
+#include "crc32.h"
 
 struct functable_s {
     void     (* force_init)         (void);
index 8c5bf67d391b53a23aca302bd36fd616c73097dc..1d0433f2ee116f43cf2b4e2d106427216965ec11 100644 (file)
@@ -11,6 +11,7 @@
 extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
+#  include "cpu_functions.h"
 #  include "../test_cpu_features.h"
 }
 
index 9a4a5ff420d18f656ac1f71ed6e1623cba5d150a..57d07aec5a080b75c2788972fe27709482ff6bf1 100644 (file)
@@ -12,6 +12,7 @@
 extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
+#  include "cpu_functions.h"
 #  include "../test_cpu_features.h"
 }
 
index db5ba83f6ccf3fd9cf44d3e31a90145c1b4d2f28..34e8557fd218a2a035d1751035518ae562a5fec6 100644 (file)
@@ -10,6 +10,7 @@
 extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
+#  include "cpu_functions.h"
 #  include "../test_cpu_features.h"
 }
 
index c96d1858107a8e4636dd59ff203d90c286ee4a3d..3b1eced453a2e8f4ff12429d4ca54c1b548f3d63 100644 (file)
@@ -11,7 +11,6 @@ extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
 #  include "compare256_rle.h"
-#  include "cpu_features.h"
 }
 
 #define MAX_COMPARE_SIZE (256)
index e78c0f1297b4cbb1c3508863339618ac17aa4c1d..5b45a3c32034c160039bfddda9884a73d4042cab 100644 (file)
@@ -11,6 +11,7 @@
 extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
+#  include "cpu_functions.h"
 #  include "../test_cpu_features.h"
 }
 
index e098c815e83a43bc259ac3ab00316828ea3d794c..b2af8fb9d3b2b7eeaf0feb04342f340b6cc149e3 100644 (file)
@@ -11,6 +11,7 @@ extern "C" {
 #  include "zbuild.h"
 #  include "zutil_p.h"
 #  include "deflate.h"
+#  include "cpu_functions.h"
 #  include "../test_cpu_features.h"
 }
 
index 1ed6e224861e2ed7e8bde659a43944a162edbfc7..87ae2588905134008af30182f13bb153c8fae365 100644 (file)
@@ -10,6 +10,7 @@
 
 extern "C" {
 #  include "zbuild.h"
+#  include "cpu_functions.h"
 #  include "test_cpu_features.h"
 }
 
index b85dc1b40b6eb0d18becb640546a7104a910f88c..4151fab12be21f796387108715411a94cdb71ed6 100644 (file)
@@ -10,6 +10,7 @@
 extern "C" {
 #  include "zbuild.h"
 #  include "zutil.h"
+#  include "cpu_functions.h"
 #  include "test_cpu_features.h"
 }
 
index 237112741ed6456463c51fc2a9dc9d24470d6ef3..40b5975d81cf10a2ed06af1bdbe77309591e3694 100644 (file)
@@ -11,6 +11,7 @@
 
 extern "C" {
 #  include "zbuild.h"
+#  include "cpu_functions.h"
 #  include "test_cpu_features.h"
 }
 
index b32b2ce1e5b24f9d9cb8dce06650bbd782f6643b..ecaaaa93e9329b87bcc8aadca9a5b65534cd6431 100644 (file)
@@ -183,7 +183,7 @@ SRCDIR = $(TOP)
 # Keep the dependences in sync with top-level Makefile.in
 adler32.obj: $(SRCDIR)/adler32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
 adler32_c.obj: $(SRCDIR)/arch/generic/adler32_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
-adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/adler32_fold_c.h
+adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 chunkset_c.obj: $(SRCDIR)/arch/generic/chunkset_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/chunkset_tpl.h $(SRCDIR)/inffast_tpl.h
 compare256_c.obj: $(SRCDIR)/arch/generic/compare256_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil_p.h $(SRCDIR)/deflate.h $(SRCDIR)/fallback_builtins.h
 functable.obj: $(SRCDIR)/functable.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/zendian.h $(SRCDIR)/arch/x86/x86_features.h
@@ -196,7 +196,7 @@ cpu_features.obj: $(SRCDIR)/cpu_features.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h
 crc32.obj: $(SRCDIR)/crc32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_c.obj: $(SRCDIR)/arch/generic/crc32_braid_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_comb.obj: $(SRCDIR)/crc32_braid_comb.c $(SRCDIR)/zutil.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h $(SRCDIR)/crc32_braid_comb_p.h
-crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/crc32_fold_c.h
+crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 deflate.obj: $(SRCDIR)/deflate.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_fast.obj: $(SRCDIR)/deflate_fast.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_huff.obj: $(SRCDIR)/deflate_huff.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
index 3f6ca3b931bdce8bd66a9a4716c19225ea1c1f8f..79ff7a5778432a7d2af6e5e55deff997b9d788bd 100644 (file)
@@ -204,7 +204,7 @@ SRCDIR = $(TOP)
 # Keep the dependences in sync with top-level Makefile.in
 adler32.obj: $(SRCDIR)/adler32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
 adler32_c.obj: $(SRCDIR)/arch/generic/adler32_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
-adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/adler32_fold_c.h
+adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 functable.obj: $(SRCDIR)/functable.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/zendian.h $(SRCDIR)/arch/x86/x86_features.h
 gzlib.obj: $(SRCDIR)/gzlib.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
 gzread.obj: $(SRCDIR)/gzread.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
@@ -217,7 +217,7 @@ cpu_features.obj: $(SRCDIR)/cpu_features.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h
 crc32.obj: $(SRCDIR)/crc32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_c.obj: $(SRCDIR)/arch/generic/crc32_braid_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_comb.obj: $(SRCDIR)/crc32_braid_comb.c $(SRCDIR)/zutil.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h $(SRCDIR)/crc32_braid_comb_p.h
-crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/crc32_fold_c.h
+crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 deflate.obj: $(SRCDIR)/deflate.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_fast.obj: $(SRCDIR)/deflate_fast.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_huff.obj: $(SRCDIR)/deflate_huff.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
index d3b2a85b2ae119685f8aa2dc99462bee57566b66..9bde54841be3b10ed80324f71897c843042f5932 100644 (file)
@@ -199,7 +199,7 @@ adler32_sse42.obj: $(SRCDIR)/arch/x86/adler32_sse42.c $(SRCDIR)/zbuild.h $(SRCDI
                    $(SRCDIR)/arch/x86/adler32_ssse3_p.h
 adler32_ssse3.obj: $(SRCDIR)/arch/x86/adler32_ssse3.c $(SRCDIR)/zbuild.h $(SRCDIR)/cpu_features.h $(SRCDIR)/adler32_p.h \
                    $(SRCDIR)/arch/x86/adler32_ssse3_p.h
-adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/adler32_fold_c.h
+adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 functable.obj: $(SRCDIR)/functable.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/zendian.h $(SRCDIR)/arch/x86/x86_features.h
 gzlib.obj: $(SRCDIR)/gzlib.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
 gzread.obj: $(SRCDIR)/gzread.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
@@ -217,9 +217,9 @@ cpu_features.obj: $(SRCDIR)/cpu_features.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h
 crc32.obj: $(SRCDIR)/crc32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_c.obj: $(SRCDIR)/arch/generic/crc32_braid_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h
 crc32_braid_comb.obj: $(SRCDIR)/crc32_braid_comb.c $(SRCDIR)/zutil.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h $(SRCDIR)/crc32_braid_comb_p.h
-crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/crc32_fold_c.h
+crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h
 crc32_pclmulqdq.obj: $(SRCDIR)/arch/x86/crc32_pclmulqdq.c $(SRCDIR)/arch/x86/crc32_pclmulqdq_tpl.h $(SRCDIR)/arch/x86/crc32_fold_pclmulqdq_tpl.h \
-                                $(SRCDIR)/arch/generic/crc32_fold_c.h $(SRCDIR)/zbuild.h
+                                $(SRCDIR)/zbuild.h
 deflate.obj: $(SRCDIR)/deflate.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_fast.obj: $(SRCDIR)/deflate_fast.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
 deflate_huff.obj: $(SRCDIR)/deflate_huff.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h