about summary refs log tree commit diff
path: root/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-04-11 17:03:03 +0000
committerUlrich Drepper <drepper@redhat.com>2000-04-11 17:03:03 +0000
commitde26253715b91e7fd4a9854fe836baef86dbc7af (patch)
treefad01a7fbfc9ebc7121551e0d8877c3fed149011 /linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
parente7c036b39ef12abc7ff131982df75e3ec35c0f31 (diff)
downloadglibc-de26253715b91e7fd4a9854fe836baef86dbc7af.tar.gz
glibc-de26253715b91e7fd4a9854fe836baef86dbc7af.tar.xz
glibc-de26253715b91e7fd4a9854fe836baef86dbc7af.zip
Upadte.
2000-04-11  Ulrich Drepper  <drepper@redhat.com>

	* internals.h: Define MEMORY_BARRIER as empty if not defined already.
	* spinlock.c (__pthread_lock): Add memory barriers.
	(__pthread_unlock): Likewise.
	* sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
	instruction.
	(RELEASE): Not needed anymore.
	(__compare_and_swap): Mark asm as modifying memory.
	* sysdeps/powerpc/pt-machine.h (sync): Remove.  Replace with definition
	of MEMORY_BARRIER.
	(__compare_and_swap): Use MEMORY_BARRIER instead of sync.
	* sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
	(MEMORY_BARRIER): Define using stbar.
	* sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
	stbar.
	(__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
	Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
	Mike Burrows <m3b@pa.dec.com>.
Diffstat (limited to 'linuxthreads/sysdeps/sparc/sparc32/pt-machine.h')
-rw-r--r--linuxthreads/sysdeps/sparc/sparc32/pt-machine.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h b/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
index 69af8579aa..ddf4932af9 100644
--- a/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
+++ b/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
@@ -37,9 +37,8 @@ testandset (int *spinlock)
 }
 
 
-/* Spinlock release; default is just set to zero.  */
-#define RELEASE(spinlock) \
-  __asm__ __volatile__("stbar; stb %1,%0" : "=m"(*(spinlock)) : "r"(0));
+/* Memory barrier; default is to do nothing */
+#define MEMORY_BARRIER() __asm__ __volatile__("stbar" : : : "memory")
 
 
 /* Get some notion of the current stack.  Need not be exactly the top