Marcus Shawcroft
72be1dead4
Reorganize memcpy selection.
...
This patch cleans up the auto configury mechanism used to select
different implementations of memcpy for various architecture versions.
The approach here is to remove the selection of memcpy within automake
and instead use complimentary logic in memcpy-stub.c and memcpy.S to
choose between the generic memcpy.c implemenation or one of the
architecture specific memcpy*.S implemenations.
Regressed for armv7-a armv5 armv8-a, correct selection of memcpy
implementation by manual inspection of a test program built for these
three architectures.
This revised patch flips the remaining preprocessor logic in
memcpy-stub.c to use ACLE defines as requested in the previous review
and removes the now disused HAVE_ARMV7A and HAVE_ARMV8A configure.in
support.
2015-11-06 15:40:31 +00:00
Marcus Shawcroft
0a4019eed2
[ARM] Select appropriate memcpy implementation for ARMv8-a.
...
The newlib configury logic that detects architecture version and
chooses an appropriate memcpy implementation does not consider
ARMv8-a.
This patch adds configury logic to detect ARMv8-a along with the
associated changes in Makefile.am and memcpy.
2015-11-03 11:04:55 +00:00
Corinna Vinschen
72ba8b107a
* libc/machine/arm/aeabi_memclr.c: New file to support
...
aeabi_memclr.
* libc/machine/arm/aeabi_memset.c: New file to support
aeabi_memset.
* libc/machine/arm/aeabi_memset-soft.S: Ditto.
* libc/machine/arm/aeabi_memset-arm.S: Ditto.
* libc/machine/arm/aeabi_memset-thumb.S: Ditto.
* libc/machine/arm/aeabi_memset-thumb2.S: Ditto.
* libc/machine/arm/Makefile.am: Add dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
2015-02-17 09:26:54 +00:00
Corinna Vinschen
554f33c48d
* libc/machine/arm/aeabi_memmove.c: New file to support
...
aeabi_memmove.
* libc/machine/arm/aeabi_memmove-soft.S: Ditto.
* libc/machine/arm/aeabi_memmove-arm.S: Ditto.
* libc/machine/arm/aeabi_memmove-thumb.S: Ditto.
* libc/machine/arm/aeabi_memmove-thumb2.S: Ditto.
* libc/machine/arm/Makefile.am: Add dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
2015-02-17 09:06:51 +00:00
Corinna Vinschen
8a2ab1aea1
* libc/machine/arm/strcmp-armv6m.S: New file.
...
* libc/machine/arm/strcmp.S: Add new wrapper.
* libc/machine/arm/Makefile.am: Add dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
2014-11-26 09:47:26 +00:00
Jeff Johnston
1c5ab1f862
2014-09-08 Freddie Chopin <freddie_chopin@op.pl>
...
* libc/machine/arm/Makefile.am: Fix typo.
* libc/machine/arm/Makefile.in: Regenerated.
2014-09-08 18:57:52 +00:00
Jeff Johnston
c8a01afd97
2014-09-05 Hale Wang <hale.wang@arm.com>
...
* libc/machine/arm/memchr.S: Clean up the wrapper.
* libc/machine/arm/memcpy.S: Likewise.
* libc/machine/arm/memchr-stub.c: Delete this redundant file.
* libc/machine/arm/memcpy-stub.c: Likewise.
* libc/machine/arm/strcmp.S: Add speed-preferred wrapper.
* libc/machine/arm/strlen.S: Likewise.
* libc/machine/arm/Makefile.am: Add dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
* libc/machine/arm/configure.in: Add dependencies.
* libc/machine/arm/configure: Regenerated.
2014-09-05 17:26:42 +00:00
Corinna Vinschen
4a9103c410
* libc/machine/arm/aeabi_memcpy.c: New file.
...
* libc/machine/arm/aeabi_memcpy-armv7a.S: New file.
* libc/machine/arm/Makefile.am: Add dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
2014-09-04 08:23:23 +00:00
Richard Earnshaw
742e729664
* libc/machine/arm/strcmp-arm-tiny.S: New file.
...
* libc/machine/arm/strcmp-armv4.S: New file.
* libc/machine/arm/strcmp-armv4t.S: New file.
* libc/machine/arm/strcmp-armv6.S: New file.
* libc/machine/arm/strcmp-armv7.S: New file.
* libc/machine/arm/strcmp-armv7m.S: New file.
* libc/machine/arm/strcmp.S: Replace with wrapper for various
implementations.
* libc/machine/arm/Makefile.am (strcmp.o, strcmp.obj): Add
dependencies.
* libc/machine/arm/Makefile.in: Regenerated.
2014-04-22 12:16:22 +00:00
Richard Earnshaw
ca1dd3a9b5
2013-06-03 Joey Ye <joey.ye@arm.com>
...
* libc/machine/arm/Makefile.am (MEMCPY_DEP): New define.
($(lpfx)memcpy.o, $(lpfx)memcpy.obj): Depend on MEMCPY_DEP.
* libc/machine/arm/Makefile.in: Regenerated.
* newlib/libc/machine/arm/memcpy-stub.c: Exclude armv7-m/armv7e-m.
* newlib/libc/machine/arm/memcpy-armv7m.S: New.
* newlib/libc/machine/arm/memcpy.S: Replace with wrapper code. Old
code moved to ...
* newlib/libc/machine/arm/memcpy-armv7a.S: ... here. Remove
redundant architecture check.
2013-06-03 14:02:10 +00:00
Corinna Vinschen
3543a40d5c
* libc/machine/arm/strcmp.S: New File.
...
* libc/machine/arm/strcmp.c: Deleted.
* libc/machine/arm/Makefile.am: Replaces strcmp.c with strcmp.S
* libc/machine/arm/Makefile.in: Regenerated.
* testsuite/newlib.string/strcmp-1.c: New file.
2012-02-09 10:42:14 +00:00
Nick Clifton
d6f6573a5f
* libc/machine/arm/Makefile.am (lib_a_SOURCES): Add memchr-stub.c,
...
memchr.S.
* libc/machine/arm/arm_asm.h: Add ifdef to allow it to be included
in .S files.
* libc/machine/arm/memchr-stub.c: New file - just selects what to
compile.
* libc/machine/arm/memchr.S: New file - ARMv6t2/v7 version.
* libc/machine/arm/Makefile.am (lib_a_SOURCES): Add strlen-armv7.S.
* libc/machine/arm/strlen-armv7.S: New file.
* libc/machine/arm/strlen.c: Add ifdef optimised code so it isn't
for v7 or 6t2.
* libc/machine/arm/Makefile.in: Regenerate.
2011-10-18 11:35:17 +00:00
Nick Clifton
341bf73d6d
* libc/machine/arm/memcpy.S: New file. Contains a hand coded
...
memcpy function optimized for the cortex-a15.
* libc/machine/arm/memcpy-stub.c: New file.
* libc/machine/arm/Makefile.am (lib_a_SOURCES): Add memcpy-stub.c,
memcpy.S.
* libc/machine/arm/Makefile.in: Regenerate.
2011-09-29 13:28:50 +00:00
Jeff Johnston
2b7e0645c9
2009-01-21 Richard Earnshaw <rearnsha@arm.com>
...
* libc/machine/arm/arm_asm.h: New file.
* libc/machine/arm/strlen.c: New file.
* libc/machine/arm/strcpy.c: New file.
* libc/machine/arm/strcmp.c: New file.
* libc/machine/arm/Makefile.am: Add new string routines.
2009-01-22 00:02:35 +00:00
Steve Ellcey
d9a1ecc006
* ltmain.sh: Update from GCC.
...
* libtool.m4: Update from GCC.
* ltsugar.m4: New. Update from GCC.
* ltversion.m4: New. Update from GCC.
* ltoptions.m4: New. Update from GCC.
* ltconfig: Remove.
* ltcf-c.sh: Remove.
* ltcf-cxx.sh: Remove.
* ltcf-gcj.sh: Remove.
* src-release: Update with new libtool file list.
* newlib/*/configure.in: invoke _LD_DECL_SED.
* newlib/*/Makefile.am: Ensure toplevel is included in ACLOCAL_AMFLAGS.
* Regenerate subdirectories
2007-05-24 17:33:42 +00:00
Jeff Johnston
bac01fc8f7
2006-05-09 Kazu Hirata <kazu@codesourcery.com>
...
* libc/machine/arm/Makefile.am: Fix a typo.
* libc/machine/arm/Makefile.in: Regenerated.
2006-05-09 17:55:21 +00:00
Jeff Johnston
8f8f1db12f
2006-05-01 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/argz/Makefile.am: Prefix any objects specified with $(lpfx). If source file can
be specified instead of object, do so.
* libc/ctype/Makefile.am: Ditto.
* libc/iconv/ccs/Makefile.am: Ditto.
* libc/iconv/ces/Makefile.am: Ditto.
* libc/iconv/lib/Makefile.am: Ditto.
* libc/locale/Makefile.am: Ditto.
* libc/posix/Makefile.am: Ditto.
* libc/reent/Makefile.am: Ditto.
* libc/search/Makefile.am: Ditto.
* libc/stdio/Makefile.am: Ditto.
* libc/stdio64/Makefile.am: Ditto.
* libc/stdlib/Makefile.am: Ditto.
* libc/string/Makefile.am: Ditto.
* libc/syscalls/Makefile.am: Ditto.
* libc/unix/Makefile.am: Ditto.
* libc/machine/a29k/Makefile.am: Specify lib_a_CCASFLAGS so .S files will get
prefix added automatically. Any specified rules must use $(lpfx) for
object file names.
* libc/machine/arm/Makefile.am: Ditto.
* libc/machine/cris/Makefile.am: Ditto.
* libc/machine/crx/Makefile.am: Ditto.
* libc/machine/d10v/Makefile.am: Ditto.
* libc/machine/d30v/Makefile.am: Ditto.
* libc/machine/fr30/Makefile.am: Ditto.
* libc/machine/frv/Makefile.am: Ditto.
* libc/machine/h8300/Makefile.am: Ditto.
* libc/machine/h8500/Makefile.am: Ditto.
* libc/machine/hppa/Makefile.am: Ditto.
* libc/machine/i386/Makefile.am: Ditto.
* libc/machine/i960/Makefile.am: Ditto.
* libc/machine/iq2000/Makefile.am: Ditto.
* libc/machine/m32c/Makefile.am: Ditto.
* libc/machine/m32r/Makefile.am: Ditto.
* libc/machine/m68hc11/Makefile.am: Ditto.
* libc/machine/m68k/Makefile.am: Ditto.
* libc/machine/m88k/Makefile.am: Ditto.
* libc/machine/mips/Makefile.am: Ditto.
* libc/machine/mn10200/Makefile.am: Ditto.
* libc/machine/mn10300/Makefile.am: Ditto.
* libc/machine/mt/Makefile.am: Ditto.
* libc/machine/necv70/Makefile.am: Ditto.
* libc/machine/powerpc/Makefile.am: Ditto.
* libc/machine/sh/Makefile.am: Ditto.
* libc/machine/sh/Makefile.in: Ditto.
* libc/machine/sparc/Makefile.am: Ditto.
* libc/machine/tic4x/Makefile.am: Ditto.
* libc/machine/tic80/Makefile.am: Ditto.
* libc/machine/v850/Makefile.am: Ditto.
* libc/machine/w65/Makefile.am: Ditto.
* libc/machine/xscale/Makefile.am: Ditto.
* libc/machine/xstormy16/Makefile.am: Ditto.
* libc/machine/z8k/Makefile.am: Ditto.
* libc/sys/a29khif/Makefile.am: Ditto.
* libc/sys/arm/Makefile.am: Ditto.
* libc/sys/d10v/Makefile.am: Ditto.
* libc/sys/h8300hms/Makefile.am: Ditto.
* libc/sys/h8500hms/Makefile.am: Ditto.
* libc/sys/linux/Makefile.am: Ditto.
* libc/sys/linux/linuxthreads/Makefile.am: Ditto.
* libc/sys/linux/net/Makefile.am: Ditto.
* libc/sys/linux/stdlib/Makefile.am: Ditto.
* libc/sys/m88kbug/Makefile.am: Ditto.
* libc/sys/mmixware/Makefile.am: Ditto.
* libc/sys/rdos/Makefile.am: Ditto.
* libc/sys/rtems/Makefile.am: Ditto.
* libc/sys/sh/Makefile.am: Ditto.
* libc/sys/sun4/Makefile.am: Ditto.
* libc/sys/sysmec/Makefile.am: Ditto.
* libc/sys/sysnec810/Makefile.am: Ditto.
* libc/sys/sysnecv850/Makefile.am: Ditto.
* libc/sys/sysvi386/Makefile.am: Ditto.
* libc/sys/sysvnecv70/Makefile.am: Ditto.
* libc/sys/tic80/Makefile.am: Ditto.
* libc/sys/w65/Makefile.am: Ditto.
* libc/sys/z8ksim/Makefile.am: Ditto.
* libc/machine/necv70/fastmath.S: Renamed from .s file.
* libc/machine/necv70/setjmp.S: Ditto.
* libc/machine/necv70/fastmath.s: Removed.
* libc/machine/necv70/setjmp.s: Ditto.
* libc/machine/w65/*.S: New files renamed from .s files.
* libc/machine/w65/*.s: Renamed and removed.
* libc/sys/a29khif/*.S: New files renamed from .s files.
* libc/sys/a29khif/*.s: Renamed and removed.
* libc/sys/sysvi386/*.S: New files renamed from .s files.
* libc/sys/sysvi386/*.s: Renamed and removed.
* libc/sys/sysvnecv70/*.S: New files renamed from .s files.
* libc/sys/sysvnecv70/*.s: Renamed and removed.
* libc/*Makefile.in: Regenerated as appropriate.
2006-05-01 22:01:07 +00:00
Jeff Johnston
34e666798a
2006-04-11 Jeff Johnston <jjohnstn@redhat.com>
...
* acinclude.m4: Properly add square brackets for
AC_DEFUN macros. Rewrite LIB_AC_PROG_CC to remove
macros no longer available. Add LIB_AM_PROG_AS to
remove prereq of AC_PROG_CC. Add LIB_AC_PROG_CC_GNU
macro. Substitute lpfx (library object prefix).
* configure.host: Set lpfx depending on whether
libtool is used or not.
* configure.in: Individually specify libc and libm
to AC_CONFIG_SUBDIRS. Add square bracket quoting as
necessary.
* Makefile.am: Use $(lpfx) to get object names for
math-library functions that should also be in libc.
* libc/machine/configure.in: Use case statement to determine
AC_CONFIG_SUBDIRS statement.
* libc/sys/linux/linuxthreads/machine/configure.in: Ditto.
* libc/sys/linux/machine/configure.in: Ditto.
* libc/sys/configure.in: Ditto.
* libm/machine/configure.in: Ditto.
* libc/sys/linux/configure.in: Fix up AC_CONFIG_SUBDIRS.
* libm/configure.in: Add AM_CONDITIONAL statement
for HAVE_LIBM_MACHINE_DIR.
* libc/machine/a29k/Makefile.am: Modified to work with
latest automake. Change includes setting AM_CCASFLAGS
so building .S files will properly pick up flags used
to build C files.
* libc/machine/arm/Makefile.am: Ditto.
* libc/machine/crx/Makefile.am: Ditto.
* libc/machine/d10v/Makefile.am: Ditto.
* libc/machine/d30v/Makefile.am: Ditto.
* libc/machine/fr30/Makefile.am: Ditto.
* libc/machine/frv/Makefile.am: Ditto.
* libc/machine/h8300/Makefile.am: Ditto.
* libc/machine/h8500/Makefile.am: Ditto.
* libc/machine/hppa/Makefile.am: Ditto.
* libc/machine/i386/Makefile.am: Ditto.
* libc/machine/iq2000/Makefile.am: Ditto.
* libc/machine/m32c/Makefile.am: Ditto.
* libc/machine/m32r/Makefile.am: Ditto.
* libc/machine/m68hc11/Makefile.am: Ditto.
* libc/machine/m68k/Makefile.am: Ditto.
* libc/machine/m88k/Makefile.am: Ditto.
* libc/machine/mips/Makefile.am: Ditto.
* libc/machine/mn10200/Makefile.am: Ditto.
* libc/machine/mn10300/Makefile.am: Ditto.
* libc/machine/mt/Makefile.am: Ditto.
* libc/machine/necv70/Makefile.am: Ditto.
* libc/machine/powerpc/Makefile.am: Ditto.
* libc/machine/sh/Makefile.am: Ditto.
* libc/machine/sparc/Makefile.am: Ditto.
* libc/machine/tic4x/Makefile.am: Ditto.
* libc/machine/tic80/Makefile.am: Ditto.
* libc/machine/v850/Makefile.am: Ditto.
* libc/machine/w65/Makefile.am: Ditto.
* libc/machine/xscale/Makefile.am: Ditto.
* libc/machine/xstormy16/Makefile.am: Ditto.
* libc/machine/z8k/Makefile.am: Ditto.
* libc/sys/a29khif/Makefile.am: Ditto.
* libc/sys/arc/Makefile.am: Ditto.
* libc/sys/arm/Makefile.am: Ditto.
* libc/sys/d10v/Makefile.am: Ditto.
* libc/sys/decstation/Makefile.am: Ditto.
* libc/sys/h8300hms/Makefile.am: Ditto.
* libc/sys/h8500hms/Makefile.am: Ditto.
* libc/sys/linux/linuxthreads/machine/i386/Makefile.am: Ditto.
* libc/sys/linux/machine/i386/Makefile.am: Ditto.
* libc/sys/m88kbug/Makefile.am: Ditto.
* libc/sys/mmixware/Makefile.am: Ditto.
* libc/sys/netware/Makefile.am: Ditto.
* libc/sys/rdos/Makefile.am: Ditto.
* libc/sys/rtems/Makefile.am: Ditto.
* libc/sys/sh/Makefile.am: Ditto.
* libc/sys/sparc64/Makefile.am: Ditto.
* libc/sys/sysmec/Makefile.am: Ditto.
* libc/sys/sysnec810/Makefile.am: Ditto.
* libc/sys/sysnecv850/Makefile.am: Ditto.
* libc/sys/sysvi386/Makefile.am: Ditto.
* libc/sys/sysvnecv70/Makefile.am: Ditto.
* libc/sys/tic80/Makefile.am: Ditto.
* libc/sys/w65/Makefile.am: Ditto.
* libc/sys/z8ksim/Makefile.am: Ditto.
* libm/machine/i386/Makefile.am: Ditto.
* libc/sys/arm/Makefile.am: Ditto plus add EXTRA sources including
trap.S so that automake will generate a .S.o suffix rule.
* libc/argz/Makefile.am: Modified to work with
latest automake. Change includes adding lib_a_CFLAGS
so automake doesn't complain about libtool and non-libtool
libraries sharing objects.
* libc/ctype/Makefile.am: Ditto.
* libc/errno/Makefile.am: Ditto.
* libc/iconv/ccs/Makefile.am: Ditto.
* libc/iconv/ces/Makefile.am: Ditto.
* libc/iconv/lib/Makefile.am: Ditto.
* libc/locale/Makefile.am: Ditto.
* libc/misc/Makefile.am: Ditto.
* libc/posix/Makefile.am: Ditto.
* libc/reent/Makefile.am: Ditto.
* libc/search/Makefile.am: Ditto.
* libc/signal/Makefile.am: Ditto.
* libc/stdio/Makefile.am: Ditto.
* libc/stdio64/Makefile.am: Ditto.
* libc/stdlib/Makefile.am: Ditto.
* libc/string/Makefile.am: Ditto.
* libc/sys/linux/Makefile.am: Ditto.
* libc/sys/linux/argp/Makefile.am: Ditto.
* libc/sys/linux/cmath/Makefile.am: Ditto.
* libc/sys/linux/dl/Makefile.am: Ditto.
* libc/sys/linux/iconv/Makefile.am: Ditto.
* libc/sys/linux/intl/Makefile.am: Ditto.
* libc/sys/linux/linuxthreads/Makefile.am: Ditto.
* libc/sys/linux/net/Makefile.am: Ditto.
* libc/sys/linux/stdlib/Makefile.am: Ditto.
* libc/syscalls/Makefile.am: Ditto.
* libc/time/Makefile.am: Ditto.
* libc/unix/Makefile.am: Ditto.
* libm/Makefile.am: Ditto.
* libm/common/Makefile.am: Ditto.
* libm/math/Makefile.am: Ditto.
* libm/mathfp/Makefile.am: Ditto.
* Regenerate all aclocal.m4, Makefile.in, and configure files.
2006-04-11 19:02:16 +00:00
Jeff Johnston
a170abec08
2004-06-09 Toralf Lund <toralf@procaptura.com>
...
* libc/sys/arm/setjmp.S, libc/sys/arm/access.c: Move
files from libc/sys/arm to libc/machine/arm.
* libc/machine/arm/Makefile.am, libc/machine/arm/Makefile.in: Add
library build support for files moved from libc/sys/arm.
* libc/sys/arm/Makefile.am, libc/sys/arm/Makefile.in: Remove
references to access and setjmp.
* configure.host: Add checks for newlib_may_supply_syscalls to
determine whether or not to use sys/arm directory and use
special compiler flags: ARM_RDI_MONITOR and ARM_RDP_MONITOR.
2004-06-09 19:05:09 +00:00
Christopher Faylor
8a0efa53e4
import newlib-2000-02-17 snapshot
2000-02-17 19:39:52 +00:00