libxc: Update rmb/wmb for x86.

Only the compiler needs to see the barriers; not the CPU.

Signed-off-by: Keir Fraser <keir@xen.org>
This commit is contained in:
Keir Fraser committed 2012-01-21 17:14:37 +00:00
1 parent cd95bce19e
commit 8d3f757328
1 file changed
+6 -4
+6 -4
View File
@@ -69,14 +69,16 @@
* DEFINITIONS FOR CPU BARRIERS
*/
#define xen_barrier() asm volatile ( "" : : : "memory")
#if defined(__i386__)
#define xen_mb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define xen_rmb() asm volatile ( "lock; addl $0,0(%%esp)" : : : "memory" )
#define xen_wmb() asm volatile ( "" : : : "memory")
#define xen_rmb() xen_barrier()
#define xen_wmb() xen_barrier()
#elif defined(__x86_64__)
#define xen_mb() asm volatile ( "mfence" : : : "memory")
#define xen_rmb() asm volatile ( "lfence" : : : "memory")
#define xen_wmb() asm volatile ( "" : : : "memory")
#define xen_rmb() xen_barrier()
#define xen_wmb() xen_barrier()
#elif defined(__ia64__)
#define xen_mb() asm volatile ("mf" ::: "memory")
#define xen_rmb() asm volatile ("mf" ::: "memory")
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.