MIPS: lib: Use kernel_pref & user_pref in memcpy()
authorPaul Burton <paul.burton@mips.com>
Mon, 15 Oct 2018 18:33:22 +0000 (18:33 +0000)
committerPaul Burton <paul.burton@mips.com>
Tue, 16 Oct 2018 06:11:14 +0000 (23:11 -0700)
memcpy() is the only user of the PREF() & PREFE() macros from asm/asm.h.
Switch to using the kernel_pref() & user_pref() macros from
asm/asm-eva.h which fit more consistently with other abstractions of EVA
vs non-EVA instructions.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/20907/
Cc: linux-mips@linux-mips.org
arch/mips/lib/memcpy.S

index 207b320..cdd19d8 100644 (file)
 #define LOADB(reg, addr, handler)      EXC(lb, LD_INSN, reg, addr, handler)
 #define STOREB(reg, addr, handler)     EXC(sb, ST_INSN, reg, addr, handler)
 
-#define _PREF(hint, addr, type)                                                \
+#ifdef CONFIG_CPU_HAS_PREFETCH
+# define _PREF(hint, addr, type)                                       \
        .if \mode == LEGACY_MODE;                                       \
-               PREF(hint, addr);                                       \
+               kernel_pref(hint, addr);                                \
        .else;                                                          \
                .if ((\from == USEROP) && (type == SRC_PREFETCH)) ||    \
                    ((\to == USEROP) && (type == DST_PREFETCH));        \
                         * used later on. Therefore use $v1.            \
                         */                                             \
                        .set at=v1;                                     \
-                       PREFE(hint, addr);                              \
+                       user_pref(hint, addr);                          \
                        .set noat;                                      \
                .else;                                                  \
-                       PREF(hint, addr);                               \
+                       kernel_pref(hint, addr);                        \
                .endif;                                                 \
        .endif
+#else
+# define _PREF(hint, addr, type)
+#endif
 
 #define PREFS(hint, addr) _PREF(hint, addr, SRC_PREFETCH)
 #define PREFD(hint, addr) _PREF(hint, addr, DST_PREFETCH)