Speed up CRC32 calculation on ARM64
commit849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
authorChenxi Mao <chenxi.mao2013@gmail.com>
Tue, 9 Jan 2024 09:23:11 +0000 (9 17:23 +0800)
committerJia Tan <jiat0218@gmail.com>
Sat, 27 Jan 2024 13:49:26 +0000 (27 21:49 +0800)
tree2f8da4c7fcf61a8b9f6425f3075727c972e6bf94
parentb43c3e48bf6097095eef36d44cdbec811074940a
Speed up CRC32 calculation on ARM64

The CRC32 instructions in ARM64 can calculate the CRC32 result
for 8 bytes in a single operation, making the use of ARM64
instructions much faster compared to the general CRC32 algorithm.

Optimized CRC32 will be enabled if ARM64 has CRC extension
running on Linux.

Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
CMakeLists.txt
src/liblzma/check/Makefile.inc
src/liblzma/check/crc32_aarch64.h [new file with mode: 0644]
src/liblzma/check/crc32_fast.c
src/liblzma/check/crc64_fast.c
src/liblzma/check/crc_common.h