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