Unverified Commit 1d6fb222 authored by Paul Burton's avatar Paul Burton
Browse files

MIPS: lib: Use kernel_pref & user_pref in memcpy()



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: default avatarPaul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/20907/
Cc: linux-mips@linux-mips.org
parent e2b40543
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -204,9 +204,10 @@
#define LOADB(reg, addr, handler)	EXC(lb, LD_INSN, reg, addr, handler)
#define STOREB(reg, addr, handler)	EXC(sb, ST_INSN, reg, addr, handler)

#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));	\
@@ -218,12 +219,15 @@
			 * 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)