ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
[sfrench/cifs-2.6.git] / arch / arm / nwfpe / entry.S
index d18dde95b8aae6a12dd319e71747ff58dfad8d84..5d65be1f1e8a758b297f142254ad9eeb77146c9d 100644 (file)
@@ -19,7 +19,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
-
+#include <asm/assembler.h>
 #include <asm/opcodes.h>
 
 /* This is the kernel's entry point into the floating point emulator.
@@ -92,7 +92,7 @@ emulate:
        mov     r0, r6                  @ prepare for EmulateAll()
        bl      EmulateAll              @ emulate the instruction
        cmp     r0, #0                  @ was emulation successful
-       moveq   pc, r4                  @ no, return failure
+       reteq   r4                      @ no, return failure
 
 next:
 .Lx1:  ldrt    r6, [r5], #4            @ get the next instruction and
@@ -102,7 +102,7 @@ next:
        teq     r2, #0x0C000000
        teqne   r2, #0x0D000000
        teqne   r2, #0x0E000000
-       movne   pc, r9                  @ return ok if not a fp insn
+       retne   r9                      @ return ok if not a fp insn
 
        str     r5, [sp, #S_PC]         @ update PC copy in regs
 
@@ -115,7 +115,7 @@ next:
        @ plain LDR instruction.  Weird, but it seems harmless.
        .pushsection .fixup,"ax"
        .align  2
-.Lfix: mov     pc, r9                  @ let the user eat segfaults
+.Lfix: ret     r9                      @ let the user eat segfaults
        .popsection
 
        .pushsection __ex_table,"a"