summaryrefslogtreecommitdiff
path: root/cpu_features.h
diff options
context:
space:
mode:
authorNathan Moinvaziri <nathan@nathanm.com>2022-05-24 11:44:20 -0700
committerHans Kristian Rosbach <hk-github@circlestorm.org>2022-05-25 12:04:35 +0200
commita6155234a2aa34b4562570dbd359a2a505962a01 (patch)
treefffecc2105016a315c3da7d3d77caaf4d9ff05e4 /cpu_features.h
parentd79984b5bcaccab15e6cd13d7d1edea32ac36977 (diff)
downloadProject-Tick-a6155234a2aa34b4562570dbd359a2a505962a01.tar.gz
Project-Tick-a6155234a2aa34b4562570dbd359a2a505962a01.zip
Speed up software CRC-32 computation by a factor of 1.5 to 3.
Use the interleaved method of Kadatch and Jenkins in order to make use of pipelined instructions through multiple ALUs in a single core. This also speeds up and simplifies the combination of CRCs, and updates the functions to pre-calculate and use an operator for CRC combination. Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
Diffstat (limited to 'cpu_features.h')
-rw-r--r--cpu_features.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpu_features.h b/cpu_features.h
index fc1b5d7339..ca1465d5d2 100644
--- a/cpu_features.h
+++ b/cpu_features.h
@@ -118,7 +118,7 @@ extern uint8_t* chunkmemset_safe_power8(uint8_t *out, unsigned dist, unsigned le
/* CRC32 */
typedef uint32_t (*crc32_func)(uint32_t crc32, const unsigned char * buf, uint64_t len);
-extern uint32_t crc32_byfour(uint32_t crc, const unsigned char *buf, uint64_t len);
+extern uint32_t crc32_braid(uint32_t crc, const unsigned char *buf, uint64_t len);
#ifdef ARM_ACLE_CRC_HASH
extern uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len);
#elif defined(POWER8_VSX_CRC32)