Package: src:libatomic-ops
Version: 7.4.8-1

MIPS r6 uses different encode for ll/sc pair with r5 and previous.
So if `.set mips3' in asm, it will generate previous encode for ll/sc.

-- 
YunQiang Su
Index: libatomic-ops-7.4.8/src/atomic_ops/sysdeps/gcc/mips.h
===================================================================
--- libatomic-ops-7.4.8.orig/src/atomic_ops/sysdeps/gcc/mips.h
+++ libatomic-ops-7.4.8/src/atomic_ops/sysdeps/gcc/mips.h
@@ -25,11 +25,19 @@
 #define AO_NO_DD_ORDERING
 
 #if defined(_ABI64) && (_MIPS_SIM == _ABI64)
+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 6)
+# define AO_MIPS_SET_ISA    "       \n"
+# else
 # define AO_MIPS_SET_ISA    "       .set mips3\n"
+# endif
 # define AO_MIPS_LL_1(args) "       lld " args "\n"
 # define AO_MIPS_SC(args)   "       scd " args "\n"
 #else
+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 6)
+# define AO_MIPS_SET_ISA    "       \n"
+# else
 # define AO_MIPS_SET_ISA    "       .set mips2\n"
+# endif
 # define AO_MIPS_LL_1(args) "       ll " args "\n"
 # define AO_MIPS_SC(args)   "       sc " args "\n"
 # define AO_T_IS_INT

Reply via email to