aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-07-16 00:58:07 +0000
committerUlrich Drepper <drepper@redhat.com>2002-07-16 00:58:07 +0000
commit176b5726d77f172215090df8fe6b1137d63971fa (patch)
tree8fda7454b108f012d1029e7b1488bff62ad7390d /sysdeps/unix
parent94c91a35d6b2eaa6313be5876ddf91c91ade6b51 (diff)
downloadglibc-176b5726d77f172215090df8fe6b1137d63971fa.tar
glibc-176b5726d77f172215090df8fe6b1137d63971fa.tar.gz
glibc-176b5726d77f172215090df8fe6b1137d63971fa.tar.bz2
glibc-176b5726d77f172215090df8fe6b1137d63971fa.zip
Don't include <sgidefs.h>. Always use ll/sc.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/tas.h17
1 files changed, 3 insertions, 14 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/sys/tas.h b/sysdeps/unix/sysv/linux/mips/sys/tas.h
index 2a1a04546e..7ad916c3c9 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/tas.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/tas.h
@@ -21,8 +21,6 @@
#define _SYS_TAS_H 1
#include <features.h>
-#include <sgidefs.h>
-#include <sys/sysmips.h>
__BEGIN_DECLS
@@ -34,8 +32,6 @@ extern int _test_and_set (int *p, int v) __THROW;
# define _EXTERN_INLINE extern __inline
# endif
-# if (_MIPS_ISA >= _MIPS_ISA_MIPS2)
-
_EXTERN_INLINE int
_test_and_set (int *p, int v) __THROW
{
@@ -44,10 +40,13 @@ _test_and_set (int *p, int v) __THROW
__asm__ __volatile__
("/* Inline test and set */\n"
"1:\n\t"
+ ".set push\n\t"
+ ".set mips2\n\t"
"ll %0,%3\n\t"
"move %1,%4\n\t"
"beq %0,%4,2f\n\t"
"sc %1,%2\n\t"
+ ".set pop\n\t"
"beqz %1,1b\n"
"2:\n\t"
"/* End test and set */"
@@ -58,16 +57,6 @@ _test_and_set (int *p, int v) __THROW
return r;
}
-# else /* !(_MIPS_ISA >= _MIPS_ISA_MIPS2) */
-
-_EXTERN_INLINE int
-_test_and_set (int *p, int v) __THROW
-{
- return sysmips (MIPS_ATOMIC_SET, (int) p, v, 0);
-}
-
-# endif /* !(_MIPS_ISA >= _MIPS_ISA_MIPS2) */
-
#endif /* __USE_EXTERN_INLINES */
__END_DECLS