[PATCH] MIPS: Use `.set arch=mips2' to emulate LL/SC for the R5900 too
Fredrik Noring
noring@nocrew.org
Sat Oct 27 13:28:00 GMT 2018
`.set arch=' was implemented in Binutils by Thiemo Seufer 29 June 2003 in
commit fef14a42892a297bf, and the GNU C Library requires Binutils 2.25,
from 2014, or later, so it ought to be compatible as used here.
This change has been tested by compiling the GNU C Library 2.27 with a
GCC 8.2.0 cross-compiler for mipsr5900el-unknown-linux-gnu under Gentoo.
---
sysdeps/mips/sys/tas.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/mips/sys/tas.h b/sysdeps/mips/sys/tas.h
index 3e020a754e..40057f9d16 100644
--- a/sysdeps/mips/sys/tas.h
+++ b/sysdeps/mips/sys/tas.h
@@ -41,8 +41,8 @@ __NTH (_test_and_set (int *__p, int __v))
__asm__ __volatile__
("/* Inline test and set */\n"
".set push\n\t"
-#if _MIPS_SIM == _ABIO32 && __mips < 2
- ".set mips2\n\t"
+#if _MIPS_SIM == _ABIO32 && (__mips < 2 || defined(_MIPS_ARCH_R5900))
+ ".set arch=mips2\n\t"
#endif
"sync\n\t"
"1:\n\t"
--
2.18.1
More information about the Libc-alpha
mailing list