summaryrefslogtreecommitdiffstats
path: root/libm
Commit message (Collapse)AuthorAgeFilesLines
* Fix arm64 fenv warnings, and make warnings errors.Christopher Ferris2015-11-072-4/+16
| | | | | | | | | | | | | Even though the control registers being read/written in fenv.c only have 32 bits that are used, the instructions take a 64 bit register. Make sure the inline assembler in the macros use 64 bit values. Verified that before the change and after the change, the disassembly is exactly the same. In addition, add -Werror to the cflags. Change-Id: I6603779327488c23e3aab13300edf2e02b101916
* Sync with upstream FreeBSD libm.Elliott Hughes2015-11-0731-377/+406
| | | | Change-Id: I97e9b23903f1d993d84825806065e85626007d31
* Revert "Revert "Use compiler builtins for fabs.""Elliott Hughes2015-11-076-68/+60
| | | | | | | | | Don't enable the inlines when building libm itself. Otherwise clang gets upset by seeing both an inline and a non-inline definition. This reverts commit c5deb0f883cbdca7e5ab75f92f82c31d21367f49. Change-Id: If7abdb351f5a5549d6a331b33af408e8fcfa9868
* Use __builtin_* in <math.h>.Elliott Hughes2015-11-071-97/+45
| | | | | | | | Also remove cruft meant to support long-obsolete compilers. More benchmarks. Bug: http://b/23195789 Change-Id: Ief538e41e77a77e8013b2f4f359584e8df2c47d8
* libm: ARM: reorganize a bit to match ARM64Jake Weinstein2015-10-294-42/+9
| | | | | | | * Cleaner naming, especially if there are more ARM-specific routines in the future. Change-Id: Id29db728800ccd612a906e86ccb95c1e7620514d
* Add versions to libm.so symbolsDmitriy Ivanov2015-06-172-0/+382
| | | | | | Bug: http://b/20139821 Change-Id: Ifdfcac62d59eb8f0985990aa8512046ecb87449e (cherry picked from commit 636f5ddddcd9e0bcfc7139b0905ebc92d4adc40a)
* Apply work around b/19059885 to x86Dmitriy Ivanov2015-05-151-0/+1
| | | | | | Bug: http://b/19059885 Bug: http://b/21203348 Change-Id: Ic375e9f877d68de8f866d17362879a7dde638465
* Merge "Update NOTICE files." into mnc-devElliott Hughes2015-05-121-0/+108
|\
| * Update NOTICE files.Elliott Hughes2015-05-121-0/+108
| | | | | | | | Change-Id: I4e170118abf452dd87ffe79d343ba1e2b53955de
* | Switch libc/libcstdc++/libm to hash-style=bothDmitriy Ivanov2015-05-081-1/+1
|/ | | | | | Bug: http://b/19059885 Change-Id: Ie42703d91f291fd689a1cf9c35bcab5c487b9a84 (cherry picked from commit 88e777d6f46709abebab88421e8c4ea7a9e3d9c4)
* Fix typo in alias symbol.Christopher Ferris2015-03-141-1/+1
| | | | Change-Id: I41d2c29bd4a9ba382bbe3440541c8e1506fc5809
* For libm, use a macro for aliasing symbols.Christopher Ferris2015-03-1324-54/+25
| | | | Change-Id: Ibd42ebc387c2bf3eba9aa96091770915b4b34184
* Merge "Switch libc and libm to sysv-only hash style"Dmitriy Ivanov2015-03-131-1/+1
|\
| * Switch libc and libm to sysv-only hash styleDmitriy Ivanov2015-03-131-1/+1
| | | | | | | | | | Bug: 19059885 Change-Id: I60a23dc5f9c756994d566818332ca42b305b4a05
* | Merge "Add the optimized implementation of 18 math functions for x86 and ↵Christopher Ferris2015-03-1340-18/+52124
|\ \ | |/ |/| | | x86_64 respectively"
| * Add the optimized implementation of 18 math functions for x86 and x86_64 ↵Jingwei Zhang2015-03-0940-18/+52124
| | | | | | | | | | | | | | | | respectively Change-Id: I31bf601448a9427f825517f3a0ff24de47f49bfa Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com> Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
* | Generate gnu hash for arm onlyGoran Jakovljevic2015-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | Fixes build failure caused by: https://android-review.googlesource.com/#/c/139660 As previously discussed [1], MIPS does not support GNU-style ELF hashes. [1] https://android-review.googlesource.com/#/c/49282/2/tests/Android.mk Change-Id: I9a7966eebfd1ef0a587a20b71faefde38e84ab62
* | Generate sysv hash for libc, libstdc++ and libmDmitriy Ivanov2015-03-091-0/+3
|/ | | | | Bug: 19059885 Change-Id: I35e2a9cd0bb3914d9d0c82d163bfaf0fff844667
* libm: Add hardware sqrt, ceil, floor and trunc for x86 & x86_64James Rose2015-03-0617-12/+660
| | | | | | | | | | | | | | | Add hardware implementations for sqrt, ceil, floor and trunc for x86 and x86_64. These routines, and in particular sqrt are much faster than the BSD C language versions of these functions. Fixed whitespace errors. Revised x86 versions with respect to alignment. Rebased for Android 5.0 Change-Id: I86bdb520ce5e589b0cf63778f353fbd3263c8f0e Author: James Rose <james.rose@intel.com> Signed-off-by: James Rose <james.rose@intel.com>
* libm: arm: add arm specific sqrt and sqrtfShu Zhang2015-03-043-4/+94
| | | | | | Add arm specific optimized sqrt and sqrtf. Change-Id: I8ea417fc98a800c8cf4f47a0c6668c51d927b1dc
* Add aarch64 instructions wherever possibleAmaury Le Leyzour2015-03-048-22/+285
| | | | | | fma, sqrt and various rounding functions have aarch64 instruction equivalent Change-Id: I1284f31b9f78f914281e5563b8d44db8362b627d
* libm: arm: Add arm specific floor() optimizationShu Zhang2015-02-122-1/+164
| | | | | | | Add arm specific floor() implementation which avoids VMSR and VMRS instructions. Change-Id: Ibd4cd7147aa2f98c9b5bbaf74948843ea619dba4
* [MIPS] Fix Mips64 build of libmDuane Sand2015-02-111-0/+3
| | | | Change-Id: Ib742b408d4f21d5ec8d455a3fea7c08165c7f321
* Cleanup the libm makefile.Christopher Ferris2015-02-091-68/+66
| | | | Change-Id: I3d95f75da24ee3b064a9cce67586b0e6f32272d8
* Remove more BSD cruft from the public headers.Elliott Hughes2014-12-191-0/+2
| | | | Change-Id: I1e3097f745b526db448bf72fbc05fb2ba23929a0
* Update bionic NOTICE files.Elliott Hughes2014-12-181-26/+26
| | | | Change-Id: Ic280872ef3137febd9d4a87d5c7662e264692071
* Disable ASAN for more of our libraries.Dan Albert2014-12-181-0/+2
| | | | | | | Since ASAN depends on these libraries, we need to exclude them from being instrumented. Change-Id: I62005b6d04ee7b2283c4bd54ace5304386c67358
* Move a private x86-64 header file out of the limelight.Elliott Hughes2014-11-261-0/+65
| | | | | | | Currently this is on everyone's include path and is getting exported via the NDK. Change-Id: Ia417839fb65c7e0afddcd9fae3438665dae8e752
* Fix our <complex.h> support.Elliott Hughes2014-11-064-5/+1072
| | | | | | | | | | | | | | | We build libm with -fvisibility=hidden, so we weren't exporting any of the <complex.h> functions. We also weren't building many of the functions anyway. We were also missing the complex inverse trigonometric functions. And because we didn't even have perfunctory "call each function once" tests, we didn't notice that we weren't exporting any symbols, so this patch adds at least that level of testing. Change-Id: Ibcf2843f507126c51d134cc5fc8d67747e033a0d
* Don't use an STL for libm.Dan Albert2014-10-161-0/+3
| | | | | | | The default is none right now, but this will be needed when the default becomes libc++. Change-Id: Ib022adac2b9dc08fbfae830908128043cfffb91e
* Catch up on upstream's round/roundf/roundl.Elliott Hughes2014-10-103-24/+47
| | | | | | Not sure how we missed these, but better late than never... Change-Id: Ib08d1bb6e340a1907cbeb1cbe220e33f70642bdc
* Sync libm with upstream.Elliott Hughes2014-10-097-288/+99
| | | | Change-Id: I3b4e2c9c6ce6c5934f270a51ce5eb9154c5805d5
* Add coverage flag for libm.Dan Albert2014-09-301-0/+6
| | | | Change-Id: I195d38c5e1f50d1cc6d4353dc8857f11b803b7a3
* Fix lgamma_r/lgammaf_r/lgammal_r for -0.Elliott Hughes2014-09-188-102/+472
| | | | | | | | Upstream has implemented lgammal/lgammal_r for ld128, and fixed the sign problem we reported with all the lgamma*_r functions and -0. Bug: 17471883 Change-Id: Ibb175d9cab67efae75f1010796fd44c9ba6ce4fc
* Get new coshl, sinhl, and tanhl implementations from upstream.Elliott Hughes2014-09-125-3/+436
| | | | Change-Id: I92f9cd53d12efb2e0f4f8a9590b9fe42398233f6
* Sync libm with upstream.Elliott Hughes2014-09-1220-413/+919
| | | | Change-Id: I8ac8ee52122ee19a2e423c3211092023cb4896eb
* Disable Clang, due to x86 LDBL_MANT_DIG errors.Chih-Hung Hsieh2014-09-041-0/+8
| | | | | | | | Clang -m32 has incorrect sizeof(long double) = 12. With -m64, LDBL_MANT_DIG is incorrect 64. BUG: 17163651 Change-Id: I4b157aa1a8572c3a10aece6070e119a292ab8e83
* Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.Elliott Hughes2014-08-291-2/+2
| | | | | Bug: 16874785 Change-Id: I8512f8be3fd149d8720c5c3b4657bedd5ce2b1d1
* Move the meat of <features.h> into <sys/cdefs.h>.Elliott Hughes2014-08-191-1/+0
| | | | | | | | This way it's a lot harder for us to screw up (since we should always be including <sys/cdefs.h> anyway). Bug: 14659579 Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53
* Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).Elliott Hughes2014-08-182-3/+4
| | | | | | | | | | | <features.h> is supposed to take user-settable stuff like _GNU_SOURCE and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in the C library headers. Instead, bionic used to unconditionally define _BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header files (which makes no sense whatsoever). Bug: 14659579 Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987
* Revert "Switch libm to building with clang."Elliott Hughes2014-07-112-18/+6
| | | | | | | | This reverts commit aadc4b2ff03b12142f2c6163266ebdb1df2a6e76. The patch broke x86. Change-Id: I0cda903732a685838bbd1877f94e1593a2a32acc
* Switch libm to building with clang.Elliott Hughes2014-07-102-6/+18
| | | | | Bug: 16211965 Change-Id: I81ec9706a4f2b5e8a840508a0f711cd25a5826ca
* Revert "Revert "Prevent symbols from libgcc from being reexported.""Dan Albert2014-06-241-0/+7
| | | | | | This reverts commit 4e4e1a5d78ff6dd9394b9b116c012046da409e99. Change-Id: I8e78c3a59598e052e02965dd37b3fba8f567eed9
* Revert "Prevent symbols from libgcc from being reexported."Dan Albert2014-06-231-7/+0
| | | | | | This reverts commit 65e80cf62200085f72c1c081aea2d6e9b800cde2. Change-Id: I5f94b123f73db8d0b03cd71a5cffa0662776a017
* Prevent symbols from libgcc from being reexported.Dan Albert2014-06-211-0/+7
| | | | | | | | Since this was not done earlier, there are binary compatibility concerns that prevent us from being able to apply this to LP32. Bug: 11156955 Change-Id: Ie717c3ae4b81c749548a45a993c834e109700b27
* Merge "Add a flag control that PRIVATE libm can be chosen"Elliott Hughes2014-06-171-0/+2
|\
| * Add a flag control that PRIVATE libm can be chosenXiaokang, Qin2013-01-141-0/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I080456a2c45ac870965c25552c5821875568fe9b Author: Xiaokang, Qin <xiaokang.qin@intel.com> Signed-off-by: Xiaokang, Qin <xiaokang.qin@intel.com> Signed-off-by: Shuo Gao <shuo.gao@intel.com> Signed-off-by: Bruce Beare <bruce.j.beare@intel.com> Signed-off-by: Jack Ren <jack.ren@intel.com> Author-tracking-BZ: 63396
* | Merge "Move mips fenv implementation details into fenv.c."Elliott Hughes2014-06-092-18/+17
|\ \
| * | Move mips fenv implementation details into fenv.c.Elliott Hughes2014-06-092-18/+17
| | | | | | | | | | | | Change-Id: I2415e4808e40c2981d016c01969ba14ea22bf82e
* | | Move x86 fenv implementation details into fenv.c.Elliott Hughes2014-06-094-25/+25
|/ / | | | | | | Change-Id: I6cb8c730483c325dc3cb75c2b2fbdd2d8455a54c