]> git.ipfire.org Git - thirdparty/zlib-ng.git/commit
IBM Z: Add vectorized CRC32 implementation
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 6 Apr 2021 11:51:16 +0000 (13:51 +0200)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Wed, 7 Jul 2021 17:54:01 +0000 (19:54 +0200)
commit0573840dd07fdd85f249af267fcfc3a6dafaed35
tree8d878011555f07989dcae23f517517771f74d4a1
parentb937afdc758381a152390342e281ac1e51033ebd
IBM Z: Add vectorized CRC32 implementation

While DFLTCC takes care of accelerating compression on level 1, other
levels can be sped up too by computing CRC32 using various vector
instructions.

Take the Linux kernel assembly code that does that - its original
author (Hendrik Brueckner) works for IBM at the time of writing and has
allowed reusing the code under the zlib license. Rewrite it in C for
better maintainability, but keep the original structure, variable names
and comments.

Update the documentation.

Add CI configurations.
13 files changed:
.github/workflows/cmake.yml
.github/workflows/configure.yml
CMakeLists.txt
README.md
arch/s390/Makefile.in
arch/s390/crc32-vx.c [new file with mode: 0644]
arch/s390/s390.c [new file with mode: 0644]
arch/s390/s390.h [new file with mode: 0644]
cmake/detect-intrinsics.cmake
configure
crc32_p.h
functable.c
zutil.h