Add EF_MIPS_ARCH_32R2 and EF_MIPS_ARCH_64R2 for tagging of R2 binaries.
[powerpc.git] / include / asm-mips / system.h
index ec29c93..36f34d8 100644 (file)
@@ -176,9 +176,11 @@ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
                unsigned long dummy;
 
                __asm__ __volatile__(
-               "       .set    mips2                                   \n"
+               "       .set    mips3                                   \n"
                "1:     ll      %0, %3                  # xchg_u32      \n"
+               "       .set    mips0                                   \n"
                "       move    %2, %z4                                 \n"
+               "       .set    mips3                                   \n"
                "       sc      %2, %1                                  \n"
                "       beqzl   %2, 1b                                  \n"
                ROT_IN_PIECES
@@ -193,9 +195,11 @@ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
                unsigned long dummy;
 
                __asm__ __volatile__(
-               "       .set    mips2                                   \n"
+               "       .set    mips3                                   \n"
                "1:     ll      %0, %3                  # xchg_u32      \n"
+               "       .set    mips0                                   \n"
                "       move    %2, %z4                                 \n"
+               "       .set    mips3                                   \n"
                "       sc      %2, %1                                  \n"
                "       beqz    %2, 1b                                  \n"
 #ifdef CONFIG_SMP
@@ -301,7 +305,7 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
                __asm__ __volatile__(
                "       .set    push                                    \n"
                "       .set    noat                                    \n"
-               "       .set    mips2                                   \n"
+               "       .set    mips3                                   \n"
                "1:     ll      %0, %2                  # __cmpxchg_u32 \n"
                "       bne     %0, %z3, 2f                             \n"
                "       move    $1, %z4                                 \n"
@@ -320,7 +324,7 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
                __asm__ __volatile__(
                "       .set    push                                    \n"
                "       .set    noat                                    \n"
-               "       .set    mips2                                   \n"
+               "       .set    mips3                                   \n"
                "1:     ll      %0, %2                  # __cmpxchg_u32 \n"
                "       bne     %0, %z3, 2f                             \n"
                "       move    $1, %z4                                 \n"
@@ -376,7 +380,7 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
                __asm__ __volatile__(
                "       .set    push                                    \n"
                "       .set    noat                                    \n"
-               "       .set    mips2                                   \n"
+               "       .set    mips3                                   \n"
                "1:     lld     %0, %2                  # __cmpxchg_u64 \n"
                "       bne     %0, %z3, 2f                             \n"
                "       move    $1, %z4                                 \n"
@@ -431,7 +435,7 @@ extern void *set_except_vector(int n, void *addr);
 extern void per_cpu_trap_init(void);
 
 extern NORET_TYPE void __die(const char *, struct pt_regs *, const char *file,
-       const char *func, unsigned long line);
+       const char *func, unsigned long line) ATTRIB_NORET;
 extern void __die_if_kernel(const char *, struct pt_regs *, const char *file,
        const char *func, unsigned long line);