diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2008-12-05 21:17:54 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-12-05 21:17:54 +0000 |
| commit | 264017312035762853de9fc469ab76e42ab5e87f (patch) | |
| tree | 4e5d49a323133d940541ef8714de5f3c002d6bc3 /sys/i386/include/atomic.h | |
| parent | aeb325719a6e802d1aeff41c75894f6a1cb8c71b (diff) | |
Notes
Diffstat (limited to 'sys/i386/include/atomic.h')
| -rw-r--r-- | sys/i386/include/atomic.h | 17 |
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 |
