summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-08-05 19:05:47 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-08-05 19:05:47 +0000
commit4deeca39fe08e68f64c1bb978b1e1d7f39e72172 (patch)
treebce88eb1d34cfffb07bf143928e41c4e03219a83
parent2002-08-05 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-4deeca39fe08e68f64c1bb978b1e1d7f39e72172.tar.bz2
2002-08-05 Joel Sherrill <joel@OARcorp.com>
* 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.
-rw-r--r--cpukit/score/cpu/m68k/ChangeLog9
-rw-r--r--cpukit/score/cpu/m68k/Makefile.am4
-rw-r--r--cpukit/score/cpu/m68k/memcpy.c87
3 files changed, 11 insertions, 89 deletions
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 <joel@OARcorp.com>
+
+ * 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 <corsepiu@faw.uni-ulm.de>
* 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 <string.h>
-#include <rtems/score/m68k.h>
-
-#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;
-}