vppinfra: don't use memcmp to compare keys in cuckoo
[vpp.git] / src / vppinfra / cuckoo_8_8.h
index 127e4e5..67af79c 100644 (file)
 #include <vppinfra/cuckoo_common.h>
 
 #undef CLIB_CUCKOO_OPTIMIZE_PREFETCH
-#undef CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH
 #undef CLIB_CUCKOO_OPTIMIZE_UNROLL
 #undef CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH
 #define CLIB_CUCKOO_OPTIMIZE_PREFETCH 1
-#define CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH 1
 #define CLIB_CUCKOO_OPTIMIZE_UNROLL 1
 #define CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH 1
 
+#if __SSE4_2__ && !defined (__i386__)
 #include <x86intrin.h>
+#endif
 
 /** 8 octet key, 8 octet key value pair */
 typedef struct
@@ -62,7 +62,7 @@ clib_cuckoo_kv_is_free_8_8 (const clib_cuckoo_kv_8_8_t * v)
 always_inline void
 clib_cuckoo_kv_set_free_8_8 (clib_cuckoo_kv_8_8_t * v)
 {
-  memset (v, 0xff, sizeof (*v));
+  clib_memset (v, 0xff, sizeof (*v));
 }
 
 /** Format a clib_cuckoo_kv_8_8_t instance
@@ -77,7 +77,7 @@ format_cuckoo_kvp_8_8 (u8 * s, va_list * args)
 
   if (clib_cuckoo_kv_is_free_8_8 (v))
     {
-      s = format (s, " -- empty -- ", v->key, v->value);
+      s = format (s, " -- empty -- ");
     }
   else
     {
@@ -89,8 +89,8 @@ format_cuckoo_kvp_8_8 (u8 * s, va_list * args)
 always_inline u64
 clib_cuckoo_hash_8_8 (clib_cuckoo_kv_8_8_t * v)
 {
-#if __SSE4_2__ && !defined (__i386__)
-  return _mm_crc32_u64 (0, v->key);
+#if defined(clib_crc32c_uses_intrinsics) && !defined (__i386__)
+  return crc32_u64 (0, v->key);
 #else
   return clib_xxhash (v->key);
 #endif
@@ -106,10 +106,8 @@ clib_cuckoo_key_compare_8_8 (u64 a, u64 b)
   return a == b;
 }
 
-#if 0
 #undef __included_cuckoo_template_h__
 #include <vppinfra/cuckoo_template.h>
-#endif
 
 #endif /* __included_cuckoo_8_8_h__ */