From 2a086df9ddfdd925cf81b67859bab5d882a3d8fb Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Tue, 11 Apr 2000 18:41:17 +0000 Subject: 2000-04-11 Andreas Jaeger * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define. (__compare_and_swap): Mark as modifying memory. 2000-04-11 Andreas Jaeger * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define. (__compare_and_swap): Mark as modifying memory. --- linuxthreads/ChangeLog | 5 +++++ linuxthreads/sysdeps/mips/pt-machine.h | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 48a24b1251..e81ec47b0c 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2000-04-11 Andreas Jaeger + + * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define. + (__compare_and_swap): Mark as modifying memory. + 2000-04-11 Geoff Keating * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be diff --git a/linuxthreads/sysdeps/mips/pt-machine.h b/linuxthreads/sysdeps/mips/pt-machine.h index 5273923080..50765b183c 100644 --- a/linuxthreads/sysdeps/mips/pt-machine.h +++ b/linuxthreads/sysdeps/mips/pt-machine.h @@ -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 . + Contributed by Ralf Baechle . Based on the Alpha version by Richard Henderson . 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; } -- cgit v1.2.3