aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/sparc/sparc64/pt-machine.h6
2 files changed, 8 insertions, 3 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index a337302..9c45f6e 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+1999-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
+ instruction does not allow memory element to use offset.
+
1999-04-28 Ulrich Drepper <drepper@cygnus.com>
* manager.c (pthread_allocate_stack): Optimize initialization of new
diff --git a/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h b/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h
index c4489b3..101b855 100644
--- a/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h
+++ b/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
Sparc v9 version.
- Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@@ -63,9 +63,9 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
{
long int readval;
- __asm__ __volatile__ ("cas %1, %2, %0"
+ __asm__ __volatile__ ("cas [%4], %2, %0"
: "=r"(readval), "=m"(*p)
- : "r"(oldval), "m"(*p), "0"(newval));
+ : "r"(oldval), "m"(*p), "r"(p), "0"(newval));
return readval == newval;
}