[dpdk-dev,v6,4/7] hash: add rte_hash_crc_8byte function

Message ID 395e2ab8e7a5e58b7dc5eb8b7520a5039a7e9e54.1417092208.git.e_zhumabekov@sts.kz (mailing list archive)
State Accepted, archived
Headers

Commit Message

Yerden Zhumabekov Jan. 29, 2015, 8:49 a.m. UTC
  SSE4.2 provides CRC32 intrinsic with 8-byte operand.

Signed-off-by: Yerden Zhumabekov <e_zhumabekov@sts.kz>
---
 lib/librte_hash/rte_hash_crc.h |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)
  

Patch

diff --git a/lib/librte_hash/rte_hash_crc.h b/lib/librte_hash/rte_hash_crc.h
index 45b0dce..6cc67cd 100644
--- a/lib/librte_hash/rte_hash_crc.h
+++ b/lib/librte_hash/rte_hash_crc.h
@@ -413,6 +413,22 @@  rte_hash_crc_4byte(uint32_t data, uint32_t 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.
  *
  * @param data