aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/lib/memcpy.c
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2011-06-02 16:07:33 +1000
committerGreg Ungerer <gerg@uclinux.org>2011-06-14 11:42:29 +1000
commit734c3ce3bd4d51c932893b9f6d32b9ded31acdff (patch)
tree05e4d44e3828c8620595674341236e71c4f86e7e /arch/m68k/lib/memcpy.c
parent62356725987fa44bbebeb656b2a0d8c803e32ef2 (diff)
downloadkernel_samsung_smdk4412-734c3ce3bd4d51c932893b9f6d32b9ded31acdff.zip
kernel_samsung_smdk4412-734c3ce3bd4d51c932893b9f6d32b9ded31acdff.tar.gz
kernel_samsung_smdk4412-734c3ce3bd4d51c932893b9f6d32b9ded31acdff.tar.bz2
m68k: use kernel processor defines for conditional optimizations
Older m68k-linux compilers will include pre-defined symbols that confuse what processor it is being targeted for. For example gcc-4.1.2 will pre-define __mc68020__ even if you specify the target processor as -m68000 on the gcc command line. Newer versions of gcc have this corrected. In a few places the m68k code uses defined(__mc68020__) for optimizations that include instructions that are specific to the CPU 68020 and above. When compiling with older compilers this will be true even when we have selected to compile for the older 68000 processors. Switch to using the kernel processor defines, CONFIG_M68020 and friends. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/lib/memcpy.c')
-rw-r--r--arch/m68k/lib/memcpy.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/m68k/lib/memcpy.c b/arch/m68k/lib/memcpy.c
index 62182c8..0648893 100644
--- a/arch/m68k/lib/memcpy.c
+++ b/arch/m68k/lib/memcpy.c
@@ -34,8 +34,10 @@ void *memcpy(void *to, const void *from, size_t n)
if (temp) {
long *lto = to;
const long *lfrom = from;
-#if defined(__mc68020__) || defined(__mc68030__) || \
- defined(__mc68040__) || defined(__mc68060__) || defined(__mcpu32__)
+#if defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)
+ for (; temp; temp--)
+ *lto++ = *lfrom++;
+#else
asm volatile (
" movel %2,%3\n"
" andw #7,%3\n"
@@ -56,9 +58,6 @@ void *memcpy(void *to, const void *from, size_t n)
" jpl 4b"
: "=a" (lfrom), "=a" (lto), "=d" (temp), "=&d" (temp1)
: "0" (lfrom), "1" (lto), "2" (temp));
-#else
- for (; temp; temp--)
- *lto++ = *lfrom++;
#endif
to = lto;
from = lfrom;