libc: ARM: Add 32-bit Kryo memcpy
* Memcpy is based on Scorpion due to Qualcomm's
128-bit cache line size optimizations.
* PLDOFFSET and PLDSIZE are from the ARM64 Kryo memcpy routine.
Below are the results of the benchmark, tested on a OnePlus 3 with MSM8996.
Before:
BM_string_memcpy/8 1000k 8 0.934 GiB/s
BM_string_memcpy/64 1000k 11 5.785 GiB/s
BM_string_memcpy/512 1000k 25 19.918 GiB/s
BM_string_memcpy/1024 50M 42 23.938 GiB/s
BM_string_memcpy/8Ki 10M 473 17.291 GiB/s
BM_string_memcpy/16Ki 5M 565 28.976 GiB/s
BM_string_memcpy/32Ki 1000k 1105 29.631 GiB/s
BM_string_memcpy/64Ki 1000k 2194 29.864 GiB/s
After:
BM_string_memcpy/8 1000k 6 1.145 GiB/s
BM_string_memcpy/64 1000k 7 8.560 GiB/s
BM_string_memcpy/512 1000k 18 27.370 GiB/s
BM_string_memcpy/1024 50M 33 30.340 GiB/s
BM_string_memcpy/8Ki 10M 266 30.770 GiB/s
BM_string_memcpy/16Ki 5M 553 29.599 GiB/s
BM_string_memcpy/32Ki 1000k 1121 29.219 GiB/s
BM_string_memcpy/64Ki 1000k 2208 29.678 GiB/s
Test: make otapackage
Test: Ran bionic unit tests on Pixel device. Verified memcpy wins on
Test: Pixel device.
Change-Id: Id7a9c37ef75a306dd5cf8d374d79d0fe83f8a3ba
diff --git a/libc/NOTICE b/libc/NOTICE
index 3668dda..1c317a9 100644
--- a/libc/NOTICE
+++ b/libc/NOTICE
@@ -998,6 +998,36 @@
Copyright (C) 2017 The Android Open Source Project
All rights reserved.
+Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
+Copyright (C) 2017 The Android Open Source Project
+All rights reserved.
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met: