diff options
-rw-r--r-- | linuxthreads/ChangeLog | 7 | ||||
-rw-r--r-- | linuxthreads/sysdeps/mips/pspinlock.c | 7 | ||||
-rw-r--r-- | linuxthreads/sysdeps/mips/pt-machine.h | 5 |
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" |