|author||Rich Felker <email@example.com>||2013-08-14 03:06:21 -0400|
|committer||Rich Felker <firstname.lastname@example.org>||2013-08-14 03:06:21 -0400|
add arm-optimized memcpy implementation from bionic libc
the approach of this implementation was heavily investigated prior to adopting it. attempts to obtain similar performance with pure C code were capping out at about 75% of the performance of the asm, with considerably larger code size, and were fragile in that the compiler would sometimes compile part of memcpy into a call to itself. therefore, just using the asm seems to be the best option. this commit is the first to make use of the new subarch-specific asm framework. the new armel directory is the location for arm asm that should not be used for all arm subarchs, only the default one. armhf is the name of the little-endian hardfloat-ABI subarch, which can use the exact same asm. in both cases, the build system finds the asm by following a memcpy.sub file. the other two subarchs, armeb and armebhf, would need a big-endian variant of this code. it would not be hard to adapt the code to big endian, but I will hold off on doing so until there is demand for it.
Diffstat (limited to 'COPYRIGHT')
1 files changed, 4 insertions, 0 deletions
@@ -74,6 +74,10 @@ The powerpc port was also originally written by Richard Pennington,
and later supplemented and integrated by John Spencer. It is licensed
under the standard MIT terms.
+The ARM memcpy code is Copyright © 2008 The Android Open Source
+Project and is licensed under a two-clause BSD license. It was taken
+from Bionic libc, used on Android.
All other files which have no copyright comments are original works
Copyright © 2005-2013 Rich Felker, the main author of this library.
The decision to exclude such comments is intentional, as it should be