diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-06-04 17:52:20 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-06-04 17:52:20 +0000 |
commit | b37fb8dc509f298c0b607652099e5bbf9d676d78 (patch) | |
tree | e72963f5a58667e5e0480849c1bab6036fa58c35 /c/src/lib | |
parent | New. (diff) | |
download | rtems-b37fb8dc509f298c0b607652099e5bbf9d676d78.tar.bz2 |
2007-06-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am: Now use the m68k memcpy and memset recently added to
newlib instead of our own.
* shared/misc/memcpy.c: Removed.
Diffstat (limited to 'c/src/lib')
-rw-r--r-- | c/src/lib/libcpu/m68k/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libcpu/m68k/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/lib/libcpu/m68k/shared/misc/memcpy.c | 93 |
3 files changed, 7 insertions, 94 deletions
diff --git a/c/src/lib/libcpu/m68k/ChangeLog b/c/src/lib/libcpu/m68k/ChangeLog index 11070744cc..1822e802f8 100644 --- a/c/src/lib/libcpu/m68k/ChangeLog +++ b/c/src/lib/libcpu/m68k/ChangeLog @@ -1,3 +1,9 @@ +2007-06-04 Joel Sherrill <joel.sherrill@OARcorp.com> + + * Makefile.am: Now use the m68k memcpy and memset recently added to + newlib instead of our own. + * shared/misc/memcpy.c: Removed. + 2007-03-12 Joel Sherrill <joel@OARcorp.com> * mcf5272/clock/ckinit.c, mcf5272/include/mcf5272.h, diff --git a/c/src/lib/libcpu/m68k/Makefile.am b/c/src/lib/libcpu/m68k/Makefile.am index 756e4e238d..39f15a9904 100644 --- a/c/src/lib/libcpu/m68k/Makefile.am +++ b/c/src/lib/libcpu/m68k/Makefile.am @@ -32,7 +32,7 @@ M68K_CPPFLAGS = -Dmcf5272 endif noinst_PROGRAMS += shared/misc.rel -shared_misc_rel_SOURCES = shared/misc/memcpy.c shared/misc/m68kidle.c shared/misc/memProbe.c +shared_misc_rel_SOURCES = shared/misc/m68kidle.c shared/misc/memProbe.c shared_misc_rel_CPPFLAGS = $(AM_CPPFLAGS) $(M68K_CPPFLAGS) shared_misc_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) endif diff --git a/c/src/lib/libcpu/m68k/shared/misc/memcpy.c b/c/src/lib/libcpu/m68k/shared/misc/memcpy.c deleted file mode 100644 index 9f4d807c09..0000000000 --- a/c/src/lib/libcpu/m68k/shared/misc/memcpy.c +++ /dev/null @@ -1,93 +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 - -/* gcc doesn't know that cpu32+ is better than cpu32 :( */ -#if defined(__mcpu32p__) -#undef M68k_HAS_MISALIGNED -#define M68k_HAS_MISALIGNED 1 -#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; -} |