bionic: Add ARMv7 optimized string handling routines

Add ARMv7 - and especially Cortex-A9 - optimized string handling
routines based on the versions found in the cortex-strings library.

Change-Id: I497075bea5b82aef8989625bdec512029676fe7f
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
libc: extend ARCH_ARM_USE_NON_NEON_MEMCPY to linaro

Change-Id: I8f8e000cc56928ba77d21c6066a11cb16ca5b7af
Update to make linaro Strings opt in

TARGET_USE_LINARO_STRING_ROUTINES=true to enable otherwise stock android

Change-Id: I7ba1bd3ef2e24c74c73de02838f460a816962a43
bionic: Add workarounds for current compilers

With current compilers, we're getting "this function cannot be inlined"
errors on vsnprintf and strlcpy because the always_inline attribute is
set.

Before marking this a "fix" instead of a "workaround", we should figure
out why the functions can't be inlined.

Change-Id: Id6c5464defafb3f9044c102d32a57e70d760b05d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Add optimized version of memcpy for Cortex A9

Adds new code to memcpy function, optimized for Cortex A9.
Adds new ARM-only loop, for operations where source and
destination are aligned.

Copyright (C) ST-Ericsson SA 2010

Modified neon implementation to fit Cortex A9 cache line size,
for those running 32 bytes L2 cache line size.
Also split the implementation in aligned and unaligned access,
for those that allows unaligned memory access with Neon.
For totally aligned operations, arm-only code is used.

Change-Id: I95ebf6164cd6486b12a7e3e98e369db21e7e18d2
Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson.
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
Verify architecture neutral syscall numbers

Also removed some dead code and fixed comment

Change-Id: I5d6a04b4af3d95e34368136cf2eeb3c9b6f99769
Signed-off-by: Chris Dearman <chris@mips.com>
Tests for string routines.

Change-Id: I24068a228f59df1c3b758c5b2026a09720490616
Signed-off-by: Anna Tikhonova <anna.tikhonova@intel.com>
Add optimized version of memset for Cortex A9

Adds new code to function memset, optimized for Cortex A9.

Copyright (C) ST-Ericsson SA 2010

Added neon implementation

Author: Henrik Smiding henrik.smiding@stericsson.com for ST-Ericsson.

Change-Id: Id3c87767953439269040e15bd30a27aba709aef6
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>

Conflicts:
	libc/arch-arm/bionic/memset.S
Unbreak krait memcpy

Change-Id: I059dd2bb75d0a9ead75a05ae4f65f240c31d5470
Merge fix

Change-Id: I97a924dfd2cfcba232b234fa3e37dbe464fb60d3
Make linaro  memcpy optin

Breaks camera on gnex, strings work fine and give a nice pref boost

Change-Id: I3d5668a0f0bbbc6e33cc7905174e44cb5f63f9f7
FORTIFY_SOURCE: remove memcpy overlap checks

These checks haven't been as useful as I hoped, and it's
causing a false positive finding.  Remove the overlap
compile time checks.

Change-Id: I5d45dde10ae4663d728230d41fa904adf20acaea
FIx linaro strings

*reverts fortify str(r)chr

Change-Id: Icb7562626f0e4a1dfa532e8fa06127fe188b603c
Memcpy optz

Change-Id: I2ea63b9af0506499609ac47b533cc8a086555f67
derp

Change-Id: I676e864c5080c40c7515c64553974174e0116d21
Fix assembler error using newer toolchains.
Fixes a ".size expression for pow does not evaluate to a constant" assembler error using linaro 4.7.x.

Change-Id: I5ad3643794df330c0e54508ba946f9fc769e62e2
Revert "libm: Add a proper sincos() implementation"

This reverts commit 1eb9e991124100dd12d3f650bbccf967ee8ec3db.
Revert "Memcpy optz"

This reverts commit 9d6d937a9c0de6a90646d92f19ced7965b49972e.

Conflicts:
	libc/Android.mk

Change-Id: I66279b03618acc33fda240ef6016f3add2f42d5e
Add back alignment

Change-Id: I8532500102e404e2cefafbdfe3242d23bb33e10e
Fix perf regression on Cortex A15 by optimized memcpy for Cortex A9

The new Cortex A9 optimized memcpy included an arm-only version that is
slower than the current neon Cortex A15. This arm-only version was used
when the dst was aligned to an 8 byte boundary, otherwise, the original
neon only version was used. This change modifies the code so it always
uses the neon only version for the Cortex A15. It also fixes the use of
a define removed with the previous optimization.

Change-Id: I971527568a177218cd8b76a8bd160aaaf6ea1e42