Bionic/libm: math optimizations

A couple math function optimizations.  It is a squashed version of
previous commits.

Change-Id: I09db8e265a121ebb4a14a3b52bef11664d6cc341
libc: krait: Re-factor high-performance memcpy for thumb2

The majority of libc under bionic is built for thumb2.  Refactor the
high performance memcpy used in previous builds for thumb2, including
information that can be used for stack-unwinding.

Change-Id: I8a25e9cdc242a54f0fea41c135e11312f0bbb449
bionic: Detect userspace memory leak

When process is consuming memory beyond the limit specified by
property, it will print all the allocations of the same process.
To enable this feature, do following steps:
1. libc.debug.malloc 40
2. libc.debug.malloc.program <PROCESS_NAME>
3. libc.debug.malloc.maxprocsize <VALUE_IN_BYTES>
4. libc.malloc.minalloclim <VALUE_IN_BYTES>

Conflicts:
        libc/bionic/malloc_debug_check.cpp
        libc/bionic/malloc_debug_common.cpp

Change-Id: I03a4de9643ec954802b26443ce5685975ea30f89
bionic/libm pow optimizations for arm64

Optimize a narrow, commonly used range of inputs for faster pow.

Change-Id: Ic2f2aefe73433fb354429f5a9de5141b716ca89b
libm: add missing symbols to optimized math functions

add the following missing symbols to optimized math functions:
sqrtl => sqrt
sinl  => sin
cosl  => cos

these symbols will be weak references to the functions at
right-hand side when compiler internal macro
(__LDBL_MANT_DIG__ == 53) is true

Change-Id: Ie3b3e720b3207bbc13574b9b6d42738767f22754
Partial revert "Remove ioprio_get(2) and ioprio_set(2) from LP64."

Put them back for ARM32. Some pre-L blobs link with it
This partially reverts commit 607341e226912d95d03216483bdcef6f8d96f8b4.

Change-Id: If8503bd5624869ba071fdd21fa48cffb65617586
Add flag to restore legacy mmap behavior

* Pre-lollipop mmap would not care whether offset was signed
  or unsigned.
* Lollipop adds 64-bit support which results in sign extension
  of offset, causing a negative offset when
  a positive offset > 2^31 is given.

Change-Id: I5d19d898fc131cf848217974915d1b466a474f99
Replace Cortex A15 strlen implementation with cortex-strings

Benchmarks on a Nexus 10 have shown this implementation to be 5%-20%
faster (depending on input)

Change-Id: I4331a390c404a77b1e13909d713c4258a3776bca
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Import memchr implementation from cortex-strings for Cortex A15

Benchmarks on a Nexus 10 have shown the cortex-strings implementation
of memchr to be 60%-70% faster (depending on input)

Change-Id: I525587d8663c881e9059b26b19409b0c563b2a18
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Replace memcpy with the cortex-strings implementation

Benchmarks on a Nexus 10 have shown this implementation to be
up to 12% faster.

Change-Id: Ida882cc6a583dfd00c3659b022c26070665824af
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Use A15 memchr

Change-Id: I6d9c773612db02706d5a36252eb7d4458d9b6e1b