From d2b989045f9bb0dcbf138a4e13130c41adbf71cf Mon Sep 17 00:00:00 2001 From: Yerden Zhumabekov Date: Thu, 29 Jan 2015 14:49:47 +0600 Subject: [PATCH] hash: add CRC function for 8 bytes SSE4.2 provides CRC32 intrinsic with 8-byte operand. Signed-off-by: Yerden Zhumabekov Acked-by: Bruce Richardson --- lib/librte_hash/rte_hash_crc.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/librte_hash/rte_hash_crc.h b/lib/librte_hash/rte_hash_crc.h index 45b0dcedfa..6cc67cd122 100644 --- a/lib/librte_hash/rte_hash_crc.h +++ b/lib/librte_hash/rte_hash_crc.h @@ -412,6 +412,22 @@ rte_hash_crc_4byte(uint32_t data, uint32_t init_val) return crc32c_sse42_u32(data, init_val); } +/** + * Use single crc32 instruction to perform a hash on a 8 byte value. + * + * @param data + * Data to perform hash on. + * @param init_val + * Value to initialise hash generator. + * @return + * 32bit calculated hash value. + */ +static inline uint32_t +rte_hash_crc_8byte(uint64_t data, uint32_t init_val) +{ + return crc32c_sse42_u64(data, init_val); +} + /** * Use crc32 instruction to perform a hash. * -- 2.20.1