From 3f5480c29ae26d474c10576cfdeeae08ab163b9c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 5 Aug 2002 19:03:52 +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. * shared/misc/memcpy.c: Moved from score/cpu/m68k. * configure.ac, shared/Makefile.am: Modified to reflect new directory. * shared/misc/.cvsignore, shared/misc/Makefile.am: New file. --- c/src/lib/libcpu/m68k/ChangeLog | 10 ++++++++++ c/src/lib/libcpu/m68k/configure.ac | 7 ++++++- c/src/lib/libcpu/m68k/shared/Makefile.am | 2 +- c/src/lib/libcpu/m68k/shared/misc/.cvsignore | 2 ++ c/src/lib/libcpu/m68k/shared/misc/Makefile.am | 24 ++++++++++++++++++++++++ c/src/lib/libcpu/m68k/shared/misc/memcpy.c | 6 ++++++ 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 c/src/lib/libcpu/m68k/shared/misc/.cvsignore create mode 100644 c/src/lib/libcpu/m68k/shared/misc/Makefile.am diff --git a/c/src/lib/libcpu/m68k/ChangeLog b/c/src/lib/libcpu/m68k/ChangeLog index eb61321fb3..f89966b43f 100644 --- a/c/src/lib/libcpu/m68k/ChangeLog +++ b/c/src/lib/libcpu/m68k/ChangeLog @@ -1,3 +1,13 @@ +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. + * shared/misc/memcpy.c: Moved from score/cpu/m68k. + * configure.ac, shared/Makefile.am: Modified to reflect new directory. + * shared/misc/.cvsignore, shared/misc/Makefile.am: New file. + 2002-03-27 Ralf Corsepius * configure.ac: diff --git a/c/src/lib/libcpu/m68k/configure.ac b/c/src/lib/libcpu/m68k/configure.ac index 553504d16b..9286d795d5 100644 --- a/c/src/lib/libcpu/m68k/configure.ac +++ b/c/src/lib/libcpu/m68k/configure.ac @@ -34,12 +34,16 @@ AM_CONDITIONAL(shared, test "$RTEMS_CPU_MODEL" = "m68020" \ || test "$RTEMS_CPU_MODEL" = "m68040" \ || test "$RTEMS_CPU_MODEL" = "m68ec040" \ || test "$RTEMS_CPU_MODEL" = "m68lc040" \ -|| test "$RTEMS_CPU_MODEL" = "m68060" ) +|| test "$RTEMS_CPU_MODEL" = "m68060" \ +|| test "$RTEMS_CPU_MODEL" = "mcpu32" \ +|| test "$RTEMS_CPU_MODEL" = "mcpu32p" ) AM_CONDITIONAL(m68040, test "$RTEMS_CPU_MODEL" = "m68040") AM_CONDITIONAL(mcf5206, test "$RTEMS_CPU_MODEL" = "mcf5206") +AM_CONDITIONAL(mcpu32, test "$RTEMS_CPU_MODEL" = "mcpu32") + case "$RTEMS_CPU_MODEL" in mcf5206 ) AC_CONFIG_SUBDIRS([mcf5206]);; *) ;; @@ -49,6 +53,7 @@ esac AC_CONFIG_FILES([Makefile shared/Makefile shared/cache/Makefile +shared/misc/Makefile m68040/Makefile m68040/fpsp/Makefile]) AC_OUTPUT diff --git a/c/src/lib/libcpu/m68k/shared/Makefile.am b/c/src/lib/libcpu/m68k/shared/Makefile.am index ff6b55a15d..b3173dba6d 100644 --- a/c/src/lib/libcpu/m68k/shared/Makefile.am +++ b/c/src/lib/libcpu/m68k/shared/Makefile.am @@ -3,7 +3,7 @@ ## -SUBDIRS = cache +SUBDIRS = cache misc include $(top_srcdir)/../../../../../automake/subdirs.am include $(top_srcdir)/../../../../../automake/local.am diff --git a/c/src/lib/libcpu/m68k/shared/misc/.cvsignore b/c/src/lib/libcpu/m68k/shared/misc/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/lib/libcpu/m68k/shared/misc/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/c/src/lib/libcpu/m68k/shared/misc/Makefile.am b/c/src/lib/libcpu/m68k/shared/misc/Makefile.am new file mode 100644 index 0000000000..fade9ff257 --- /dev/null +++ b/c/src/lib/libcpu/m68k/shared/misc/Makefile.am @@ -0,0 +1,24 @@ +## +## $Id$ +## + + +C_FILES = memcpy.c +C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o) + +OBJS = $(C_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../automake/compile.am +include $(top_srcdir)/../../../../../automake/lib.am + +# gcc doesn't recognize difference between the cpu32 and cpu32+ so we have to +if mcpu32p +AM_CPPFLAGS += -D__mcpu32p__ +endif + +all-local: $(ARCH) $(OBJS) + +EXTRA_DIST = memcpy.c + +include $(top_srcdir)/../../../../../automake/local.am diff --git a/c/src/lib/libcpu/m68k/shared/misc/memcpy.c b/c/src/lib/libcpu/m68k/shared/misc/memcpy.c index 3948411f4b..9f4d807c09 100644 --- a/c/src/lib/libcpu/m68k/shared/misc/memcpy.c +++ b/c/src/lib/libcpu/m68k/shared/misc/memcpy.c @@ -41,6 +41,12 @@ "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) { -- cgit v1.2.3