aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog9
-rw-r--r--linuxthreads/sysdeps/ia64/pt-machine.h6
-rw-r--r--linuxthreads/sysdeps/s390/pspinlock.c6
3 files changed, 15 insertions, 6 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 69209f8..75dea58 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,12 @@
+2004-07-05 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/s390/pspinlock.c (__pthread_spin_lock,
+ __pthread_spin_trylock): Use constraint "m" instead of "0" for
+ futex.
+ * sysdeps/ia64/pt-machine.h (__compare_and_swap,
+ __compare_and_swap_with_release_semantic, testandset): Use
+ constraint "m" instead of "0" for futex.
+
2004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Fix
diff --git a/linuxthreads/sysdeps/ia64/pt-machine.h b/linuxthreads/sysdeps/ia64/pt-machine.h
index a04ae81..6c5dfe9 100644
--- a/linuxthreads/sysdeps/ia64/pt-machine.h
+++ b/linuxthreads/sysdeps/ia64/pt-machine.h
@@ -89,7 +89,7 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
("mov ar.ccv=%4;;\n\t"
"cmpxchg8.acq %0=%1,%2,ar.ccv"
: "=r" (readval), "=m" (__atomic_fool_gcc (p))
- : "r"(newval), "1" (__atomic_fool_gcc (p)), "r" (oldval)
+ : "r"(newval), "m" (__atomic_fool_gcc (p)), "r" (oldval)
: "memory");
return readval == oldval;
}
@@ -105,7 +105,7 @@ __compare_and_swap_with_release_semantics (long int *p,
("mov ar.ccv=%4;;\n\t"
"cmpxchg8.rel %0=%1,%2,ar.ccv"
: "=r" (readval), "=m" (__atomic_fool_gcc (p))
- : "r"(newval), "1" (__atomic_fool_gcc (p)), "r" (oldval)
+ : "r"(newval), "m" (__atomic_fool_gcc (p)), "r" (oldval)
: "memory");
return readval == oldval;
}
@@ -121,7 +121,7 @@ testandset (int *spinlock)
__asm__ __volatile__(
"xchg4 %0=%1,%2"
: "=r"(ret), "=m"(__atomic_fool_gcc (spinlock))
- : "r"(1), "1"(__atomic_fool_gcc (spinlock))
+ : "r"(1), "m"(__atomic_fool_gcc (spinlock))
: "memory");
return ret;
diff --git a/linuxthreads/sysdeps/s390/pspinlock.c b/linuxthreads/sysdeps/s390/pspinlock.c
index 71ec6b2..f963f35 100644
--- a/linuxthreads/sysdeps/s390/pspinlock.c
+++ b/linuxthreads/sysdeps/s390/pspinlock.c
@@ -1,5 +1,5 @@
/* POSIX spinlock implementation. S/390 version.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2004 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -39,7 +39,7 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
" cs 0,1,%1\n"
" jl 0b\n"
: "=m" (*lock)
- : "0" (*lock) : "0", "1", "cc" );
+ : "m" (*lock) : "0", "1", "cc" );
return 0;
}
weak_alias (__pthread_spin_lock, pthread_spin_lock)
@@ -53,7 +53,7 @@ __pthread_spin_trylock (pthread_spinlock_t *lock)
" basr 1,0\n"
"0: cs %1,1,%0"
: "=m" (*lock), "=&d" (oldval)
- : "0" (*lock) : "1", "cc" );
+ : "m" (*lock) : "1", "cc" );
return oldval == 0 ? 0 : EBUSY;
}
weak_alias (__pthread_spin_trylock, pthread_spin_trylock)