From 39e68648c74b4d940f3df3edfd8a8e59b9f18963 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Wed, 23 Jan 2019 13:15:33 -0600 Subject: cleanup: move code from arch/x86/crc_pclmulqdq.c to crc32.c --- CMakeLists.txt | 2 +- Makefile.in | 2 -- arch/x86/Makefile.in | 8 -------- arch/x86/crc_pclmulqdq.c | 34 ---------------------------------- configure | 8 ++++---- crc32.c | 24 ++++++++++++++++++++++-- win32/Makefile.msc | 2 +- 7 files changed, 28 insertions(+), 52 deletions(-) delete mode 100644 arch/x86/crc_pclmulqdq.c 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 -- cgit 0.0.5-2-1-g0f52