aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/include/atomic.h
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2008-12-05 21:17:54 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2008-12-05 21:17:54 +0000
commit264017312035762853de9fc469ab76e42ab5e87f (patch)
tree4e5d49a323133d940541ef8714de5f3c002d6bc3 /sys/i386/include/atomic.h
parentaeb325719a6e802d1aeff41c75894f6a1cb8c71b (diff)
Notes
Diffstat (limited to 'sys/i386/include/atomic.h')
-rw-r--r--sys/i386/include/atomic.h17
1 files changed, 3 insertions, 14 deletions
diff --git a/sys/i386/include/atomic.h b/sys/i386/include/atomic.h
index f6bcf0c1650b0..e800d0ee6b85f 100644
--- a/sys/i386/include/atomic.h
+++ b/sys/i386/include/atomic.h
@@ -32,20 +32,9 @@
#error this file needs sys/cdefs.h as a prerequisite
#endif
-
-#if defined(I686_CPU)
-#define mb() __asm__ __volatile__ ("mfence;": : :"memory")
-#define wmb() __asm__ __volatile__ ("sfence;": : :"memory")
-#define rmb() __asm__ __volatile__ ("lfence;": : :"memory")
-#else
-/*
- * do we need a serializing instruction?
- */
-#define mb()
-#define wmb()
-#define rmb()
-#endif
-
+#define mb() __asm __volatile("lock;addl $0,(%esp)")
+#define wmb() __asm __volatile("lock;addl $0,(%esp)")
+#define rmb() __asm __volatile("lock;addl $0,(%esp)")
/*
* Various simple operations on memory, each of which is atomic in the