krait optimizations from caf
libc: krait: Use performance version of memcpy.
Change-Id: I47d25d1da5b1a96bbc1b60f8acdaa31721a68e73
This is the 2nd commit message:
libc: krait: Use performance version of bcopy and memmove
Change-Id: I587085aeb0c30ceccaa3f420594a194b129632b5
This is the 3rd commit message:
libc: krait: Restore prior version of strcmp.
Change-Id: I8ddcdb4d3a905dd746985435dcdb525ab5a1c947
This is the 4th commit message:
Bionic/libm: fast neon pow() for small x,y.
Add a fast neon version of pow() suitable for relatively small
positive x and y (between 0 and 4). Run the standard
implementation in all other cases. Gives approximately 60%
performance improvement to AnTuTu FPU scores
Change-Id: I97e0712daeb2740764b26a44be0caaa39c481453
This is the 5th commit message:
Bionic/libm: Prefer branches and VFP ABI.
For internal functions set gcc attribute "aapcs-vfp" for ARM
and use -fno-if-conversion to prefer branches over predicated
instructions (improves performance on architectures with good
branch prediction).
Change-Id: I8424e0e82a19d35e7e3b6e3e122dcdecdd5426fd
This is the 6th commit message:
Bionic/libm: add assembly versions of sin/cos.
Add assembly versions of sin/cos with integrated remainder pi/2
calculation. Directly extracted from binary libm.so compiled with
__ieee754_rem_pio2 calls inlined.
Change-Id: Ia093f420e58e794635e3a5f09e8236ae7601f1f6
This is the 7th commit message:
Bionic/libm: Pow optimizations and bug fixes.
Use VFP calling convention for pow_neon handoff function by default.
Fix register usage collision between two different polynomial
coefficients in pow_neon. Remove conditional execution in pow_neon
and replace with branching.
Change-Id: I76095f4a006e2fb01a53943b66fd69bfa1fd3033
This is the 8th commit message:
Bionic/libm: Add precision-correct de-serialize sin/cos.
Modify sin/cos to improve performance while retaining bit-for-bit
accuracy with existing algorithm.
Change-Id: Iaba2dd731cd015732744705dad8bddb713b43067
This is the 9th commit message:
libm: optimistic pow calling.
Call optimized pow optimistically and revert to full range
implementation if we detect an out-of-range input.
Change-Id: I6f3aa734adbf99484b7ff70736ef83a41e5815b8
This is the 10th commit message:
libm: sqrt and sqrtf via ARM vsqrt instruction
Optimized sqrt and sqrtf for arm by using hardware
opcode for sqrt rather than generic slow portable
code.
Change-Id: I84694159577aef6418710548085d8149c45e0e3f
This is the 11th commit message:
Bionic/libm: Remove extra vmov from sin/cos.
Move integer representations of x bits on the integer side rather
than moving them to and from the FP registers.
Change-Id: I1895db385c9616cdae9ab6403f392dfbae292adc
This is the 12th commit message:
Bionic/libm: enable optimized math functions on more QCOM targets.
allow more QCOM targets to use optimized math functions.
Change-Id: I76ee1bf951ae1c8397fef3af6e9937ed8cad9b62
This is the 13th commit message:
libc: krait: Perform all memmoves as word-wise at minimum
Certain transfers of very small sizes or that end by copying a small
remnant were moving memory a byte at a time. Perform these using word
operations if 2 or more bytes remain.
Change-Id: Ie0aef8927f7bd452509913d7368e5c71b7be4720
This is the 14th commit message:
Revert "libc: krait: Perform all memmoves as word-wise at minimum"
This reverts commit 1fae6403c2c37f21a740c54b8f5451777b6affe1.
Change-Id: Icb80126042c17dc234ce7a6282846ca344db4ee1
This is the 15th commit message:
libm: krait: Fix build warning for e_pow.o
e_pow.o given more than once in the same rule. Remove extra arm/e_pow.S
reference in libm/Android.mk.
diff --git a/libc/Android.mk b/libc/Android.mk
index 22ed2d8..6ef5af9 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -366,9 +366,9 @@
# =========================================================
ifeq ($(TARGET_ARCH),arm)
libc_common_src_files += \
- bionic/memmove.c.arm \
- string/bcopy.c \
string/strncmp.c \
+# bionic/memmove.c.arm \
+# string/bcopy.c \
# These files need to be arm so that gdbserver
# can set breakpoints in them without messing