NetBSD/lib/libc/arch/arm/string/Makefile.inc
scw 789335a49c Xscale-optimised mem* routines. Contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp()  - Compare 32-bits at a time if possible. Special-case 6-byte
            comparisons, for the benefit of the network stack.

memset()  - More loop unrolling, plus use of 'strd' instruction,
bzero()     results in > 100% speedup on Xscale.

memcpy()  - Big-endian support, unrolled loops, 'strd/pld', plus special-
            cases for very common length/alignment combinations.
            Benchmarks show ~50% improvment on Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
bcopy()     don't overlap. Otherwise unchanged

XXX: The Xscale optimisations are not enabled by default, unless /etc/mk.conf
XXX: has the right compiler options. The intention is to pull them in via
XXX: something like libxscale.so, selected at runtime by ld.so.conf.
XXX: (Big-endian support is not affected by this).
2003-10-14 07:51:45 +00:00

10 lines
305 B
Makefile

# $NetBSD: Makefile.inc,v 1.6 2003/10/14 07:51:45 scw Exp $
SRCS+= memcpy.S bcopy.S memmove.S memset.S bzero.S ffs.S strcmp.S
SRCS+= strncmp.S memcmp.S
SRCS+= bcmp.c index.c memchr.c \
rindex.c strcat.c strcpy.c strcspn.c strlen.c \
strncat.c strncpy.c strpbrk.c strsep.c \
strspn.c strstr.c swab.c