summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pop <s.pop@samsung.com>2019-01-23 13:15:33 -0600
committerHans Kristian Rosbach <hk-github@circlestorm.org>2019-01-31 13:56:00 +0100
commit39e68648c74b4d940f3df3edfd8a8e59b9f18963 (patch)
treefd74471c1de77904b5c54ee0d43faf6cef7985b3
parentdeea1b8d3fce6f83e74540595264619b911e7a7b (diff)
downloadProject-Tick-39e68648c74b4d940f3df3edfd8a8e59b9f18963.tar.gz
Project-Tick-39e68648c74b4d940f3df3edfd8a8e59b9f18963.zip
cleanup: move code from arch/x86/crc_pclmulqdq.c to crc32.c
-rw-r--r--CMakeLists.txt2
-rw-r--r--Makefile.in2
-rw-r--r--arch/x86/Makefile.in8
-rw-r--r--arch/x86/crc_pclmulqdq.c34
-rwxr-xr-xconfigure8
-rw-r--r--crc32.c24
-rw-r--r--win32/Makefile.msc2
7 files changed, 28 insertions, 52 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b51f3f88f9..36ef939304 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -584,7 +584,7 @@ if(WITH_OPTIM)
endif()
if(HAVE_PCLMULQDQ_INTRIN)
add_definitions(-DX86_PCLMULQDQ_CRC)
- set(ZLIB_ARCH_SRCS ${ZLIB_ARCH_SRCS} ${ARCHDIR}/crc_folding.c ${ARCHDIR}/crc_pclmulqdq.c)
+ set(ZLIB_ARCH_SRCS ${ZLIB_ARCH_SRCS} ${ARCHDIR}/crc_folding.c)
add_intrinsics_option("${PCLMULFLAG}")
if(HAVE_SSE42_INTRIN)
add_feature_info(PCLMUL_CRC 1 "Support CRC hash generation using PCLMULQDQ, using \"${PCLMULFLAG}\"")
diff --git a/Makefile.in b/Makefile.in
index 0747ec8569..0f8155b629 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -393,7 +393,6 @@ arch/arm/crc32_acle.o: zconf$(SUFFIX).h
arch/arm/fill_window_arm.o: $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/arm/insert_string_acle.o: $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/crc_folding.o: $(SRCDIR)/arch/x86/crc_folding.h $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
-arch/x86/crc_pclmulqdq.o: $(SRCDIR)/arch/x86/x86.h $(SRCDIR)/arch/x86/crc_folding.h $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/deflate_quick.o: $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/fill_window_sse.o: $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/x86.o: $(SRCDIR)/arch/x86/x86.h
@@ -422,7 +421,6 @@ arch/arm/crc32_acle.lo: zconf$(SUFFIX).h
arch/arm/fill_window_arm.lo: $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/arm/insert_string_acle.lo: $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/crc_folding.lo: $(SRCDIR)/arch/x86/crc_folding.h $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
-arch/x86/crc_pclmulqdq.lo: $(SRCDIR)/arch/x86/x86.h $(SRCDIR)/arch/x86/crc_folding.h $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/deflate_quick.lo: $(SRCDIR)/deflate.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/fill_window_sse.lo: $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/zutil.h $(SRCDIR)/zlib$(SUFFIX).h zconf$(SUFFIX).h
arch/x86/x86.lo: $(SRCDIR)/arch/x86/x86.h
diff --git a/arch/x86/Makefile.in b/arch/x86/Makefile.in
index 7de12bf3b2..b041b087f4 100644
--- a/arch/x86/Makefile.in
+++ b/arch/x86/Makefile.in
@@ -48,12 +48,6 @@ crc_folding.o: $(SRCDIR)/crc_folding.c
crc_folding.lo: $(SRCDIR)/crc_folding.c
$(CC) $(SFLAGS) $(PCLMULFLAG) $(SSE4FLAG) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/crc_folding.c
-crc_pclmulqdq.o: $(SRCDIR)/crc_pclmulqdq.c
- $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/crc_pclmulqdq.c
-
-crc_pclmulqdq.lo: $(SRCDIR)/crc_pclmulqdq.c
- $(CC) $(SFLAGS) -DPIC $(INCLUDES) -c -o $@ $(SRCDIR)/crc_pclmulqdq.c
-
mostlyclean: clean
clean:
rm -f *.o *.lo *~
@@ -72,13 +66,11 @@ depend:
# DO NOT DELETE THIS LINE -- make depend depends on it.
crc_folding.o: $(SRCDIR)/crc_folding.h $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
-crc_pclmulqdq.o: $(SRCDIR)/x86.h $(SRCDIR)/crc_folding.h $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
deflate_quick.o: $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
fill_window_sse.o: $(SRCTOP)/deflate.h $(SRCTOP)/deflate_p.h $(SRCTOP)/functable.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
x86.o: $(SRCDIR)/x86.h
crc_folding.lo: $(SRCDIR)/crc_folding.h $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
-crc_pclmulqdq.lo: $(SRCDIR)/x86.h $(SRCDIR)/crc_folding.h $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
deflate_quick.lo: $(SRCTOP)/deflate.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
fill_window_sse.lo: $(SRCTOP)/deflate.h $(SRCTOP)/deflate_p.h $(SRCTOP)/functable.h $(SRCTOP)/zutil.h $(SRCTOP)/zlib$(SUFFIX).h $(TOPDIR)/zconf$(SUFFIX).h
x86.lo: $(SRCDIR)/x86.h
diff --git a/arch/x86/crc_pclmulqdq.c b/arch/x86/crc_pclmulqdq.c
deleted file mode 100644
index 0c2896a000..0000000000
--- a/arch/x86/crc_pclmulqdq.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* crc_pclmulqdq.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2006, 2010, 2011, 2012 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- */
-
-#include "zbuild.h"
-#include "x86.h"
-#include "crc_folding.h"
-#include "deflate.h"
-
-#ifdef X86_PCLMULQDQ_CRC
-ZLIB_INTERNAL void crc_reset(deflate_state *const s) {
- if (x86_cpu_has_pclmulqdq) {
- crc_fold_init(s);
- return;
- }
- s->strm->adler = PREFIX(crc32)(0L, NULL, 0);
-}
-
-ZLIB_INTERNAL void crc_finalize(deflate_state *const s) {
- if (x86_cpu_has_pclmulqdq)
- s->strm->adler = crc_fold_512to32(s);
-}
-
-ZLIB_INTERNAL void copy_with_crc(PREFIX3(stream) *strm, unsigned char *dst, unsigned long size) {
- if (x86_cpu_has_pclmulqdq) {
- crc_fold_copy(strm->state, dst, strm->next_in, size);
- return;
- }
- memcpy(dst, strm->next_in, size);
- strm->adler = PREFIX(crc32)(strm->adler, dst, size);
-}
-#endif
diff --git a/configure b/configure
index f006c644f2..7725476d97 100755
--- a/configure
+++ b/configure
@@ -1003,8 +1003,8 @@ case "${ARCH}" in
if test ${HAVE_PCLMULQDQ_INTRIN} -eq 1; then
CFLAGS="${CFLAGS} -DX86_PCLMULQDQ_CRC"
SFLAGS="${SFLAGS} -DX86_PCLMULQDQ_CRC"
- ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} crc_folding.o crc_pclmulqdq.o"
- ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} crc_folding.lo crc_pclmulqdq.lo"
+ ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} crc_folding.o"
+ ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} crc_folding.lo"
fi
fi
@@ -1033,8 +1033,8 @@ case "${ARCH}" in
if test ${HAVE_PCLMULQDQ_INTRIN} -eq 1; then
CFLAGS="${CFLAGS} -DX86_PCLMULQDQ_CRC"
SFLAGS="${SFLAGS} -DX86_PCLMULQDQ_CRC"
- ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} crc_folding.o crc_pclmulqdq.o"
- ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} crc_folding.lo crc_pclmulqdq.lo"
+ ARCH_STATIC_OBJS="${ARCH_STATIC_OBJS} crc_folding.o"
+ ARCH_SHARED_OBJS="${ARCH_SHARED_OBJS} crc_folding.lo"
fi
# Enable deflate_quick at level 1?
diff --git a/crc32.c b/crc32.c
index 33e82d34c0..ddc2e12dc7 100644
--- a/crc32.c
+++ b/crc32.c
@@ -400,16 +400,36 @@ uint32_t ZEXPORT PREFIX(crc32_combine64)(uint32_t crc1, uint32_t crc2, z_off64_t
return crc32_combine_(crc1, crc2, len2);
}
-#ifndef X86_PCLMULQDQ_CRC
+#ifdef X86_PCLMULQDQ_CRC
+#include "arch/x86/x86.h"
+#include "arch/x86/crc_folding.h"
+
+ZLIB_INTERNAL void crc_finalize(deflate_state *const s) {
+ if (x86_cpu_has_pclmulqdq)
+ s->strm->adler = crc_fold_512to32(s);
+}
+#endif
+
ZLIB_INTERNAL void crc_reset(deflate_state *const s) {
+#ifdef X86_PCLMULQDQ_CRC
+ if (x86_cpu_has_pclmulqdq) {
+ crc_fold_init(s);
+ return;
+ }
+#endif
s->strm->adler = PREFIX(crc32)(0L, NULL, 0);
}
ZLIB_INTERNAL void copy_with_crc(PREFIX3(stream) *strm, unsigned char *dst, unsigned long size) {
+#ifdef X86_PCLMULQDQ_CRC
+ if (x86_cpu_has_pclmulqdq) {
+ crc_fold_copy(strm->state, dst, strm->next_in, size);
+ return;
+ }
+#endif
memcpy(dst, strm->next_in, size);
strm->adler = PREFIX(crc32)(strm->adler, dst, size);
}
-#endif
/* ========================================================================= */
static void crc32_combine_gen_(uint32_t *op, z_off64_t len2)
diff --git a/win32/Makefile.msc b/win32/Makefile.msc
index a99099e5e0..36e9ea6be1 100644
--- a/win32/Makefile.msc
+++ b/win32/Makefile.msc
@@ -36,7 +36,7 @@ SUFFIX =
OBJS = adler32.obj compress.obj crc32.obj deflate.obj deflate_fast.obj deflate_quick.obj deflate_slow.obj \
functable.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj \
- x86.obj fill_window_sse.obj insert_string_sse.obj crc_folding.obj crc_pclmulqdq.obj
+ x86.obj fill_window_sse.obj insert_string_sse.obj crc_folding.obj
!if "$(ZLIB_COMPAT)" != ""
WITH_GZFILEOP = yes
WFLAGS = $(WFLAGS) -DZLIB_COMPAT