aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/sysdeps/mips/pspinlock.c7
-rw-r--r--linuxthreads/sysdeps/mips/pt-machine.h5
3 files changed, 10 insertions, 9 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index d7af2dcedc..391a4b23de 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2002-02-07 H.J. Lu <hjl@gnu.org>
+
+ * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
+ gcc warning.
+ (__pthread_spin_lock): Remove ".set noreorder".
+ * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
+
2002-02-05 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
diff --git a/linuxthreads/sysdeps/mips/pspinlock.c b/linuxthreads/sysdeps/mips/pspinlock.c
index 3a4f586fc1..1aa372b4b8 100644
--- a/linuxthreads/sysdeps/mips/pspinlock.c
+++ b/linuxthreads/sysdeps/mips/pspinlock.c
@@ -35,11 +35,8 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
("\t\t\t# spin_lock\n"
"1:\n\t"
"ll %1,%3\n\t"
- ".set push\n\t"
- ".set noreorder\n\t"
+ "li %2,1\n\t"
"bnez %1,1b\n\t"
- " li %2,1\n\t"
- ".set pop\n\t"
"sc %2,%0\n\t"
"beqz %2,1b"
: "=m" (*lock), "=&r" (tmp1), "=&r" (tmp2)
@@ -54,7 +51,7 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
int
__pthread_spin_lock (pthread_spinlock_t *lock)
{
- while (_test_and_set (lock, 1));
+ while (_test_and_set ((int *) lock, 1));
return 0;
}
diff --git a/linuxthreads/sysdeps/mips/pt-machine.h b/linuxthreads/sysdeps/mips/pt-machine.h
index 506cc3f979..78bd6828a1 100644
--- a/linuxthreads/sysdeps/mips/pt-machine.h
+++ b/linuxthreads/sysdeps/mips/pt-machine.h
@@ -60,11 +60,8 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
("/* Inline compare & swap */\n"
"1:\n\t"
"ll %1,%5\n\t"
- ".set push\n\t"
- ".set noreorder\n\t"
+ "move %0,$0\n\t"
"bne %1,%3,2f\n\t"
- " move %0,$0\n\t"
- ".set pop\n\t"
"move %0,%4\n\t"
"sc %0,%2\n\t"
"beqz %0,1b\n"