2000-04-11 Andreas Jaeger <aj@suse.de>

* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
	(__compare_and_swap): Mark as modifying memory.
2000-04-11  Andreas Jaeger  <aj@suse.de>

	* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
	(__compare_and_swap): Mark as modifying memory.
This commit is contained in:
Andreas Jaeger 2000-04-11 18:41:17 +00:00
parent 25728f0397
commit 2a086df9dd
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2000-04-11 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Geoff Keating <geoffk@cygnus.com>
* sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be

View File

@ -1,8 +1,8 @@
/* Machine-dependent pthreads configuration and inline functions.
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
Contributed by Ralf Baechle <ralf@gnu.org>.
Based on the Alpha version by Richard Henderson <rth@tamu.edu>.
The GNU C Library is free software; you can redistribute it and/or
@ -30,6 +30,9 @@
# define PT_EI extern inline
#endif
/* Memory barrier. */
#define MEMORY_BARRIER() __asm__ ("" : : : "memory")
/* Spinlock implementation; required. */
PT_EI long int
@ -84,7 +87,8 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
"2:\t.set\tmips0\n\t"
"/* End compare & swap */"
: "=&r"(ret), "=m"(*p)
: "r"(oldval), "r"(newval), "m"(*p));
: "r"(oldval), "r"(newval), "m"(*p)
: "memory");
return ret;
}