From 4deeca39fe08e68f64c1bb978b1e1d7f39e72172 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 5 Aug 2002 19:05:47 +0000 Subject: 2002-08-05 Joel Sherrill * Per PR260 eliminate use of make-target-options. This impacted RTEMS allowing a distinction between the CPU32 and CPU32+ in the SuperCore and required that the m68k optimized memcpy be moved to libcpu. * memcpy.c: Moved to libcpu. * Makefile.am: Modified to reflect above. --- cpukit/score/cpu/m68k/ChangeLog | 9 ++++ cpukit/score/cpu/m68k/Makefile.am | 4 +- cpukit/score/cpu/m68k/memcpy.c | 87 --------------------------------------- 3 files changed, 11 insertions(+), 89 deletions(-) delete mode 100644 cpukit/score/cpu/m68k/memcpy.c diff --git a/cpukit/score/cpu/m68k/ChangeLog b/cpukit/score/cpu/m68k/ChangeLog index b2a59f8d13..4326643639 100644 --- a/cpukit/score/cpu/m68k/ChangeLog +++ b/cpukit/score/cpu/m68k/ChangeLog @@ -1,3 +1,12 @@ +2002-08-05 Joel Sherrill + + * Per PR260 eliminate use of make-target-options. This impacted + RTEMS allowing a distinction between the CPU32 and CPU32+ in the + SuperCore and required that the m68k optimized memcpy be moved + to libcpu. + * memcpy.c: Moved to libcpu. + * Makefile.am: Modified to reflect above. + 2002-07-26 Ralf Corsepius * Makefile.am: Build libscorecpu.a instead of rtems-cpu.rel. diff --git a/cpukit/score/cpu/m68k/Makefile.am b/cpukit/score/cpu/m68k/Makefile.am index ae4dbdd536..a733306bcd 100644 --- a/cpukit/score/cpu/m68k/Makefile.am +++ b/cpukit/score/cpu/m68k/Makefile.am @@ -31,7 +31,7 @@ include_rtems_score_HEADERS = \ PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score \ $(include_rtems_score_HEADERS:%.h=$(PROJECT_INCLUDE)/%.h) -C_FILES = cpu.c memcpy.c +C_FILES = cpu.c C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT)) S_FILES = cpu_asm.S @@ -47,6 +47,6 @@ $(LIB): $(libscorecpu_a_OBJECTS) all-local: $(ARCH) $(PREINSTALL_FILES) $(LIB) \ $(TMPINSTALL_FILES) -EXTRA_DIST = cpu.c cpu_asm.S memcpy.c +EXTRA_DIST = cpu.c cpu_asm.S include $(top_srcdir)/../../../automake/local.am diff --git a/cpukit/score/cpu/m68k/memcpy.c b/cpukit/score/cpu/m68k/memcpy.c deleted file mode 100644 index 3948411f4b..0000000000 --- a/cpukit/score/cpu/m68k/memcpy.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * C library memcpy routine - * - * This routine has code to optimize performance on the CPU32+ - * and another version for other 68k machines. - * - * It could be optimized more for machines with MOVE16 instructions. - * - * The routine is placed in this source directory to ensure that it - * is picked up by all applications. - * - * W. Eric Norum - * Saskatchewan Accelerator Laboratory - * University of Saskatchewan - * Saskatoon, Saskatchewan, CANADA - * eric@skatter.usask.ca - */ - -#include -#include - -#if defined(__mcpu32__) -#define COPYSETUP(n) n-- -#define COPY(to,from,n,size) \ - asm volatile ("1:\n" \ - "\tmove." size " (%0)+,(%1)+\n" \ - "\tdbf %2,1b\n" \ - "\tsub.l #0x10000,%2\n" \ - "\tbpl.b 1b\n" : \ - "=a" (from), "=a" (to), "=d" (n) :\ - "0" (from), "1" (to), "2" (n) : \ - "cc", "memory") -#else -#define COPYSETUP(n) -#define COPY(to,from,n,size) \ - asm volatile ("1:\n" \ - "\tmove." size " (%0)+,(%1)+\n" \ - "\tsubq.l #1,%2\n\tbne.b 1b\n" : \ - "=a" (from), "=a" (to), "=d" (n) :\ - "0" (from), "1" (to), "2" (n) : \ - "cc", "memory") -#endif - -void * -memcpy(void *s1, const void *s2, size_t n) -{ - char *p1 = s1; - const char *p2 = s2; - - if (n) { - if (n < 16) { - COPYSETUP (n); - COPY (p1, p2, n, "b"); - } - else { - int nbyte; - int nl; - nbyte = (int)p1 & 0x3; - if (nbyte) { - nbyte = 4 - nbyte; - n -= nbyte; - COPYSETUP (nbyte); - COPY (p1, p2, nbyte, "b"); - } -#if (M68K_HAS_MISALIGNED == 0) - /* - * Take care of machines that can't - * handle misaligned references. - */ - if ((int)p2 & 0x1) { - COPYSETUP (n); - COPY (p1, p2, n, "b"); - return s1; - } -#endif - nl = (unsigned int)n >> 2; - COPYSETUP (nl); - COPY (p1, p2, nl, "l"); - nbyte = (int)n & 0x3; - if (nbyte) { - COPYSETUP (nbyte); - COPY (p1, p2, nbyte, "b"); - } - } - } - return s1; -} -- cgit v1.2.3