isa-l/crc
Jerry Yu a2fc2c000d crc32:Add optimization implementation for Neoverse N1
This patch is base on reference(1) algorithm with some changes.
- Redefine the block number to two.
  - That's due to only two pipe-line can be used in CRC32 calculate.
- Redefine the block size:
  - The block size of CRC is 1536B and PMULL is 512B
- Interleave CRC and PMULL instructions.
The optimization parameters are calculated base on reference(2)

References:
- https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
- https://developer.arm.com/docs/swog309707/a

Change-Id: I1c9e593d59b521f56e4b3c807b396c083c181636
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
2020-03-30 09:20:29 -07:00
..
aarch64 crc32:Add optimization implementation for Neoverse N1 2020-03-30 09:20:29 -07:00
crc16_t10dif_01.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_02.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_by4.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_by16_10.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_copy_by4_02.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_copy_by4.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc16_t10dif_copy_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc16_t10dif_copy_test.c crc: implement table-driven crc algorithm 2019-05-08 17:50:03 -07:00
crc16_t10dif_op_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc16_t10dif_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc16_t10dif_test.c test: Increase size of crc tests and simplify output 2019-09-14 16:01:28 -07:00
crc32_funcs_test.c test: Increase size of crc tests and simplify output 2019-09-14 16:01:28 -07:00
crc32_gzip_refl_by8_02.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_gzip_refl_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_gzip_refl_by16_10.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_gzip_refl_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc32_ieee_01.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_ieee_02.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_ieee_by4.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_ieee_by16_10.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_ieee_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc32_iscsi_00.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_iscsi_01.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc32_iscsi_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc64_base.c crc: implement table-driven crc algorithm 2019-05-08 17:50:03 -07:00
crc64_ecma_norm_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_ecma_norm_by16_10.asm crc: Add new ecma_norm 2019-09-16 17:01:25 -07:00
crc64_ecma_refl_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_ecma_refl_by16_10.asm crc: Add new ecma_refl 2019-09-16 17:01:25 -07:00
crc64_example.c crc64: add jones and iso format, crc64 code clean 2016-12-06 13:48:13 -07:00
crc64_funcs_perf.c all: Revamp performance testing to be time based 2019-03-07 09:28:04 -07:00
crc64_funcs_test.c test: Increase size of crc tests and simplify output 2019-09-14 16:01:28 -07:00
crc64_iso_norm_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_iso_norm_by16_10.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_iso_refl_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_iso_refl_by16_10.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_jones_norm_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_jones_norm_by16_10.asm crc: Add new jones_norm 2019-09-16 17:01:25 -07:00
crc64_jones_refl_by8.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc64_jones_refl_by16_10.asm crc: Add new jones_refl 2019-09-16 17:01:25 -07:00
crc64_multibinary.asm crc: Add new ecma_norm 2019-09-16 17:01:25 -07:00
crc64_ref.h crc: implement table-driven crc algorithm 2019-05-08 17:50:03 -07:00
crc_base_aliases.c crc: Add t10dif+copy function 2017-12-18 15:59:17 -07:00
crc_base.c crc: implement table-driven crc algorithm 2019-05-08 17:50:03 -07:00
crc_multibinary.asm build: Fix for windows to allow nasm use 2020-03-17 18:05:46 -07:00
crc_ref.h crc: implement table-driven crc algorithm 2019-05-08 17:50:03 -07:00
crc_simple_test.c igzip: Add unit tests for adler and crc32_gzip 2017-06-26 04:03:35 -04:00
Makefile.am crc: Add new vclmul version of crc16_t10dif 2020-02-21 19:54:19 -07:00