mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-05 19:35:52 +03:00
* 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-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.
This commit is contained in:
@@ -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>
|
2002-02-05 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
* sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
|
* sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
|
||||||
|
@@ -35,11 +35,8 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
|
|||||||
("\t\t\t# spin_lock\n"
|
("\t\t\t# spin_lock\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
"ll %1,%3\n\t"
|
"ll %1,%3\n\t"
|
||||||
".set push\n\t"
|
"li %2,1\n\t"
|
||||||
".set noreorder\n\t"
|
|
||||||
"bnez %1,1b\n\t"
|
"bnez %1,1b\n\t"
|
||||||
" li %2,1\n\t"
|
|
||||||
".set pop\n\t"
|
|
||||||
"sc %2,%0\n\t"
|
"sc %2,%0\n\t"
|
||||||
"beqz %2,1b"
|
"beqz %2,1b"
|
||||||
: "=m" (*lock), "=&r" (tmp1), "=&r" (tmp2)
|
: "=m" (*lock), "=&r" (tmp1), "=&r" (tmp2)
|
||||||
@@ -54,7 +51,7 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
|
|||||||
int
|
int
|
||||||
__pthread_spin_lock (pthread_spinlock_t *lock)
|
__pthread_spin_lock (pthread_spinlock_t *lock)
|
||||||
{
|
{
|
||||||
while (_test_and_set (lock, 1));
|
while (_test_and_set ((int *) lock, 1));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -60,11 +60,8 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
|
|||||||
("/* Inline compare & swap */\n"
|
("/* Inline compare & swap */\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
"ll %1,%5\n\t"
|
"ll %1,%5\n\t"
|
||||||
".set push\n\t"
|
"move %0,$0\n\t"
|
||||||
".set noreorder\n\t"
|
|
||||||
"bne %1,%3,2f\n\t"
|
"bne %1,%3,2f\n\t"
|
||||||
" move %0,$0\n\t"
|
|
||||||
".set pop\n\t"
|
|
||||||
"move %0,%4\n\t"
|
"move %0,%4\n\t"
|
||||||
"sc %0,%2\n\t"
|
"sc %0,%2\n\t"
|
||||||
"beqz %0,1b\n"
|
"beqz %0,1b\n"
|
||||||
|
Reference in New Issue
Block a user