x86 barrier for Xeon Phi: use rsp on x86-64
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sat, 7 Dec 2013 06:00:53 +0000 (07:00 +0100)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sat, 7 Dec 2013 06:00:53 +0000 (07:00 +0100)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
urcu/arch/x86.h

index 5853604932793fb5fe40b5244fc5b33042393437..7af1ca524e091fb9f9aaa8b6c2d1d102d3abe270 100644 (file)
@@ -55,9 +55,15 @@ extern "C" {
  * IDT WinChip supports weak store ordering, and the kernel may enable it
  * under our feet; cmm_smp_wmb() ceases to be a nop for these processors.
  */
+#if (CAA_BITS_PER_LONG == 32)
 #define cmm_mb()    __asm__ __volatile__ ("lock; addl $0,0(%%esp)":::"memory")
-#define cmm_rmb()   __asm__ __volatile__ ("lock; addl $0,0(%%esp)":::"memory")
-#define cmm_wmb()   __asm__ __volatile__ ("lock; addl $0,0(%%esp)"::: "memory")
+#define cmm_rmb()    __asm__ __volatile__ ("lock; addl $0,0(%%esp)":::"memory")
+#define cmm_wmb()    __asm__ __volatile__ ("lock; addl $0,0(%%esp)":::"memory")
+#else
+#define cmm_mb()    __asm__ __volatile__ ("lock; addl $0,0(%%rsp)":::"memory")
+#define cmm_rmb()    __asm__ __volatile__ ("lock; addl $0,0(%%rsp)":::"memory")
+#define cmm_wmb()    __asm__ __volatile__ ("lock; addl $0,0(%%rsp)":::"memory")
+#endif
 #endif
 
 #define caa_cpu_relax()        __asm__ __volatile__ ("rep; nop" : : : "memory");
This page took 0.026622 seconds and 4 git commands to generate.