From: Sebastian Pop Date: Wed, 23 Jan 2019 19:15:33 +0000 (-0600) Subject: cleanup: move code from arch/x86/crc_pclmulqdq.c to crc32.c X-Git-Tag: 1.9.9-b1~528 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39e68648c74b4d940f3df3edfd8a8e59b9f18963;p=thirdparty%2Fzlib-ng.git cleanup: move code from arch/x86/crc_pclmulqdq.c to crc32.c --- diff --git a/CMakeLists.txt b/CMakeLists.txt index b51f3f88..36ef9393 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 0747ec85..0f8155b6 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 7de12bf3..b041b087 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 0c2896a0..00000000 --- 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 f006c644..7725476d 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 33e82d34..ddc2e12d 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 a99099e5..36e9ea6b 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