bionic/libc
Christopher Ferris 21ede92d79 Update to latest cortexa15 memcpy code.
This uses the new code original submitted as memcpy.a15.S as
the base. However, the old code handled unaligned src/dst better
so that was spliced in. I optimized the original unaligned code by
removing a few unnecessary instructions. I optimized the a15 code by
rewriting the pre and post code. I also modified the main loop to add
a pld so that larger copies would not stall waiting for memory.

Test cases for the new memcpy:

- Copy all sized values from 0 to 1024 bytes, using whatever alignment
  is returned by malloc.
For each alignment case described below, the test copied from 0 to 128
bytes.
- Src and dst pointers are both aligned to the same value, starting
  at one going through every power of two up to and including 128.
- Src aligned to double word boundary, dst aligned to word boundary.
- Src aligned to word boundary, dst aligned to double word boundary.
- Src aligned to 16 bit boundary, dst aligned to word boundary.
- Src aligned to word boundary, dst aligned to 16 byte boundary.
- Src aligned to word boundary, dst aligned to 1 byte from a word
  boundary.
- Src aligned to word boundary, dst aligned to 2 bytes from a word
  boundary.
- Src aligned to word boundary, dst aligned to 3 bytes from a word
  boundary.
- Src aligned to 1 byte from a word boundary, dst aligned to a word
  boundary.
- Src aligned to 2 bytes from a word boundary, dst aligned to a word
  boundary.
- Src aligned to 3 bytes from a word boundary, dst aligned to a word
  boundary.

Cases to verify the unaligned source code properly aligns to a 16 bit
boundary.
- Src aligned to 1 byte from a 128 bit boundary, dst aligned to
  4 + 128 bit boundary.
- Src aligned to 1 byte from a 128 bit boundary, dst aligned to
  8 + 128 bit boundary.
- Src aligned to 1 byte from a 128 bit boundary, dst aligned to
  12 + 128 bit boundary.
- Src aligned to 1 byte from a 128 bit boundary, dst aligned to
  16 + 128 bit boundary.

In all cases, a two byte fencepost was placed at the end of the
destination to verify that only the requested number of bytes were copied.

Bug: 8005082
Change-Id: I700b2fab81941959d301ab1934c18fbd8ee3eee4
2013-03-30 14:32:49 -07:00
..
arch-arm Update to latest cortexa15 memcpy code. 2013-03-30 14:32:49 -07:00
arch-mips Replace unnecessary MIPS uses of <sys/linux-syscalls.h> with <asm/unistd.h>. 2013-03-21 22:52:25 -07:00
arch-x86 Replace unnecessary x86 uses of <sys/linux-syscalls.h> with <asm/unistd.h>. 2013-03-21 22:48:18 -07:00
bionic Clarify the dlmalloc USAGE_ERROR. 2013-03-25 13:48:41 -07:00
include am 3c1504d9: am 48f25cef: Merge "Stop generating <sys/linux-syscalls.h>." 2013-03-25 10:24:42 -07:00
kernel Merge "Update processed linux/fs.h header file" into jb-mr2-dev 2013-03-27 21:15:29 +00:00
netbsd am cf23cbb1: am 12ea8005: am 5f829205: am c1416647: Merge "Clean up internal libc logging." 2013-03-15 23:43:01 +00:00
private am 92a197f3: am d7dc414a: am 987fc5a3: am adeec096: Merge "Hide various symbols that shouldn\'t be exposed." 2013-03-16 00:11:52 +00:00
stdio Define DEFFILEMODE and friends 2012-11-29 11:53:33 -08:00
stdlib stdlib: atexit: include <sys/cdefs.h> 2013-02-16 21:23:27 +05:30
string Drop magic number in strrchr and strchr 2013-03-22 10:18:09 +08:00
tools Remove some dead script code and fix a script comment. 2013-03-25 14:09:52 -07:00
tzcode Don't search off the end of the index for bad Olson ids. 2013-03-14 14:38:08 -07:00
unistd Upgrade to current NetBSD popen/pclose. 2013-03-06 16:20:55 -08:00
upstream-dlmalloc Fix build warning of initialization but no use. 2012-09-06 09:59:13 -07:00
upstream-freebsd Regenerate NOTICE files. 2013-03-07 11:51:10 -08:00
upstream-netbsd Upgrade to current NetBSD popen/pclose. 2013-03-06 16:20:55 -08:00
wchar Switch to upstream-freebsd for the unmolested wchar code. 2013-03-01 18:35:56 -08:00
zoneinfo Fix a bug in ZoneCompactor that meant the zonetab offset was wrong. 2013-03-14 17:10:24 -07:00
Android.mk am 85598626: am 34895c1b: Merge "Replace unnecessary ARM uses of <sys/linux-syscalls.h> with <asm/unistd.h>." 2013-03-22 11:11:34 -07:00
CAVEATS auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
MODULE_LICENSE_BSD auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
NOTICE Regenerate NOTICE files. 2013-03-07 11:51:10 -08:00
SYSCALLS.TXT Use the correct names for the __ARM_NR_* syscalls. 2013-03-22 13:53:43 -07:00