Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / arch / arm / lib / copy_to_user.S
index 878820f..027b69b 100644 (file)
  *     Number of bytes NOT copied.
  */
 
+#define LDR1W_SHIFT    0
+#ifndef CONFIG_THUMB2_KERNEL
+#define STR1W_SHIFT    0
+#else
+#define STR1W_SHIFT    1
+#endif
+
        .macro ldr1w ptr reg abort
-       ldr \reg, [\ptr], #4
+       W(ldr) \reg, [\ptr], #4
        .endm
 
        .macro ldr4w ptr reg1 reg2 reg3 reg4 abort
        .endm
 
        .macro str1w ptr reg abort
-100:   strt \reg, [\ptr], #4
-       .section __ex_table, "a"
-       .long 100b, \abort
-       .previous
+       strusr  \reg, \ptr, 4, abort=\abort
        .endm
 
        .macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
        .endm
 
        .macro str1b ptr reg cond=al abort
-100:   str\cond\()bt \reg, [\ptr], #1
-       .section __ex_table, "a"
-       .long 100b, \abort
-       .previous
+       strusr  \reg, \ptr, 1, \cond, abort=\abort
        .endm
 
        .macro enter reg1 reg2
@@ -93,12 +94,12 @@ WEAK(__copy_to_user)
 
 ENDPROC(__copy_to_user)
 
-       .section .fixup,"ax"
+       .pushsection .fixup,"ax"
        .align 0
        copy_abort_preamble
        ldmfd   sp!, {r1, r2, r3}
        sub     r0, r0, r1
        rsb     r0, r0, r2
        copy_abort_end
-       .previous
+       .popsection