[ARM] libm: squashed CAF e_pow implementation made generic

Summary:
The following commits have been edited to be more
general than just for qcom devices. Any arm neon device
will benefit from this change.

commit 5587d4f73977774f12f7e459edf05881ca4d4367
Author: Lucas Crowthers <lucasc@codeaurora.org>
Date:   Thu Apr 25 15:56:16 2013 -0400

    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

commit 1801b320beeae4ec6078e46d45bbf65d6c8e8bee
Author: Lucas Crowthers <lucasc@codeaurora.org>
Date:   Mon Aug 27 14:35:57 2012 -0400

    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

commit 688c9786420309ee660e9641c6523ec8b78f30d2
Author: Lucas Crowthers <lucasc@codeaurora.org>
Date:   Mon Aug 27 14:27:59 2012 -0400

    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

commit eb45d36b9c23707551f73581c5bf181e46acd381
Author: Lucas Crowthers <lucasc@codeaurora.org>
Date:   Fri Jun 15 19:27:46 2012 -0400

    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

Test Plan: verified, test it out on any ARM NEON device.

Reviewers: randall.rushing, jriordan001, anders3408

Differential Revision: http://review.codefirex.com/D231
libm: sync with upstream freebsd

Summary:
New long double functions have been included,
but are not in use due to the android double long
handling. imprecise.c is not built for the same reason.

Test Plan: verified

Reviewers: randall.rushing

Differential Revision: http://review.codefirex.com/D232
libm: add fmal long double stub

Summary:
This is needed in some target cases, and has since been fixed internally in the AOSP.

From enh@google.com regarding this change:
you were right, and this was the way we should have done it, but i didn't work that out until i fixed this in the same way as part of the aarch64 work (where the weak reference didn't work).

Test Plan: verified

Reviewers: randall.rushing, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D234
Make use of new memcpy, tweak settings

Summary:
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The new memcpy() is slightly faster than the cortex-strings version,
and fixes the Galaxy Nexus camera issue.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

Test Plan: verified in micro bench

Reviewers: randall.rushing, jriordan001, anders3408, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D235
libc: support __errno_location

Summary:
Android's errno behavior is the same as glibc's __errno_location.
Support __errno_location for compatibility.

Test Plan: verified fully

Reviewers: randall.rushing, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D236
libc stdlib: implement C99 _Exit and C11 quick_exit API

Summary: needed for some newer changes shortly :)

Test Plan: verified

Reviewers: randall.rushing, jriordan001, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D237
[ARM] libc: optimized strnlen, strncat, strncmp, and strlcat

Summary:
Date:   Mon Sep 23 14:45:06 2013 -0700

    [ARM] libc: use basic ASM strnlen implementation

    Summary:
    This is based on the current naive strlen routine from
    netbsd

    Test Plan: significant implemented bench gains

    Reviewers: randall.rushing, synergy

    Reviewed By: synergy

    Differential Revision: http://review.codefirex.com/D499

    Conflicts:
        libc/Android.mk

Author: synergydev <synergye@codefi.re>
Date:   Mon Sep 23 14:43:27 2013 -0700

    [ARM] libc: use optimized ASM strncmp implementation

    Summary:
    This strncmp implementation is based on the current
    arm netbsd implementation

    Test Plan: https://sourceware.org/git/?p=glibc.git;a=blob;f=benchtests/bench-strncmp.c;h=25df3dbc2eb25346d9a897f8d7a2ada9725584e3;hb=master and integrated bionic-benchmark

    Reviewers: randall.rushing

Author: synergydev <synergye@codefi.re>
Date:   Sat Sep 21 23:45:58 2013 -0700

    [ARM] libc: use basic ASM strncat implementation

    Summary:
    This implementation is the naive strncat implementation
    for ARM from netbsd upstream.

    Test Plan: Someone else test please, bench gain is significant with http://repo.or.cz/w/glibc.git/blob_plain/ec901dcf2886cfb81d88f9a63cfcd62b9efe6381:/benchtests/bench-strncat.c (no currently integrated bench, only test which is good with this change).

    Reviewers: randall.rushing, ConnorBaker, synergy

    Reviewed By: synergy

Author: synergydev <synergye@codefi.re>
Date:   Mon Sep 23 14:42:47 2013 -0700

    [ARM] libc: use basic ASM strlcat implementation

    Summary: This is based on the netbsd naive strlcat implementation

    Test Plan: +1 here

    Reviewers: randall.rushing, synergy

    Reviewed By: synergy

Test Plan: significant implemented bench gains

Reviewers: randall.rushing, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D238
[ARM] libc: define return and conditional return macros

Summary: Required by the new strncat, strlcat, strncmp, and strnlen

Test Plan: verified

Reviewers: randall.rushing, jriordan001, anders3408, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D239