Commit Graph

15 Commits

Author SHA1 Message Date
Adam Stylinski
724dc0cfb4 Explicit SSE2 vectorization of Chorba CRC method
The version that's currently in the generic implementation for 32768
byte buffers leverages the stack. It manages to autovectorize but
unfortunately the trips to the stack hurt its performance for CPUs which
need this the most. This version is explicitly SIMD vectorized and
doesn't use trips to the stack.  In my testing it's ~10% faster than the
"small" variant, and about 42% faster than the "32768" variant.
2025-03-28 20:43:59 +01:00
Hans Kristian Rosbach
5fb2a1c493 Move Chorba defines 2025-02-18 23:59:16 +01:00
Hans Kristian Rosbach
06895bc1b3 Move crc32 C fallbacks to arch/generic 2024-01-19 15:22:34 +01:00
Nathan Moinvaziri
4490d52d0a Rename table headers with tbl suffix. 2020-08-27 19:19:30 +02:00
Hans Kristian Rosbach
bc29c36ea5 Add makecrct test and clean up makecrct.c code
Update crc32.h tables to match makecrct output.
2019-09-20 22:29:21 +02:00
Mark Adler
9a143bb48f Add tables for crc32_combine(), to speed it up by a factor of 200. 2018-12-08 12:36:30 +01:00
Hans Kristian Rosbach
d9b63c782f Style cleanup for adler/crc code 2015-05-25 23:03:25 +02:00
Daniel Axtens
4db4cfdb5b Kill z_crc_t
Signed-off-by: Daniel Axtens <dja@axtens.net>

Conflicts:
	crc32.c
2015-05-13 14:31:52 +02:00
Daniel Axtens
3fc5d4e5e4 crc32: unsigned long -> uint32_t
Authored by Danial Axtens, plus merge fixups by Hans Kristian Rosbach.

Conflicts:
	arch/x86/crc_folding.c
	crc32.c
	zlib.h
	zutil.h
2015-05-11 20:59:41 +02:00
Daniel Axtens
e43b966b03 crc32: local -> static
Authored by Danial Axtens, with some minor merge fixups by Hans Kristian Rosbach.

Conflicts:
	crc32.c
2015-05-11 20:46:28 +02:00
Daniel Axtens
3dd2ae0929 Kill BYFOUR --- there's no reason to disabled it (NOBYFOUR)
Signed-off-by: Daniel Axtens <dja@axtens.net>
2015-05-11 11:45:27 +02:00
hansr
0db1040667 Remove FAR definition
Remove a few leftovers from the legacy OS support removal
2014-10-09 13:55:20 +02:00
Mark Adler
6c9bd474aa Fix type mismatch between get_crc_table() and crc_table.
crc_table is made using a four-byte integer (when that can be
determined).  However get_crc_table() returned a pointer to an
unsigned long, which could be eight bytes.  This fixes that by
creating a new z_crc_t type for the crc_table.

This type is also used for the BYFOUR crc calculations that depend
on a four-byte type.  The four-byte type can now be determined by
./configure, which also solves a problem where ./configure --solo
would never use BYFOUR.  No the Z_U4 #define indicates that four-
byte integer was found either by ./configure or by zconf.h.
2012-04-29 16:18:12 -07:00
Mark Adler
10daf0d4d7 zlib 1.2.5.1 2011-09-11 11:04:49 -07:00
Mark Adler
7c2a874e50 zlib 1.2.0 2011-09-09 23:21:47 -07:00