eal: memory barriers use intrinsic functions
authorIntel <intel.com>
Mon, 3 Jun 2013 00:00:00 +0000 (00:00 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 16 Sep 2013 13:19:04 +0000 (15:19 +0200)
Signed-off-by: Intel
lib/librte_eal/common/include/rte_atomic.h

index 67eff12..069ce46 100644 (file)
@@ -64,7 +64,7 @@ extern "C" {
  * Guarantees that the LOAD and STORE operations generated before the
  * barrier occur before the LOAD and STORE operations generated after.
  */
-#define rte_mb()  asm volatile("mfence;" : : : "memory")
+#define        rte_mb() _mm_mfence()
 
 /**
  * Write memory barrier.
@@ -72,7 +72,7 @@ extern "C" {
  * Guarantees that the STORE operations generated before the barrier
  * occur before the STORE operations generated after.
  */
-#define rte_wmb() asm volatile("sfence;" : : : "memory")
+#define        rte_wmb() _mm_sfence()
 
 /**
  * Read memory barrier.
@@ -80,7 +80,7 @@ extern "C" {
  * Guarantees that the LOAD operations generated before the barrier
  * occur before the LOAD operations generated after.
  */
-#define rte_rmb() asm volatile("lfence;" : : : "memory")
+#define        rte_rmb() _mm_lfence()
 
 #include <emmintrin.h>