Commit Graph

21 Commits

Author SHA1 Message Date
Jing Yu
d50225ad20 Disable sincos optimization for sincos calls.
sincos() functions would be turned into infinite calls to
itself if sincos optimization is applied to itself. See
gcc bugzilla http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46926

arm-linux-androideabi-4.4.3 toolchain does not have this problem
because sincos optimization is entirely disabled. Starting
from arm-linux-androideabi-4.6 toolchain, we enable sincos optimization
in gcc.

This patch simply enforce -O0 on this function to minimize the
change.

Change-Id: I0fc00b5f1dd71c0a024943bdedfed29b0d195e82
2011-08-17 10:29:41 -07:00
David 'Digit' Turner
8e2ff164cc libm: Add nanf() and tgammaf() implementations.
Requested by b/3370708 to export these through RenderScript.

Change-Id: I1ae69f87a1ad4765b2dee8e4a6f2f3a6eb7c5ad4
2011-01-25 17:07:26 +01:00
Chih-Wei Huang
b9aedb2c57 android-x86: use proper variable typing
Change-Id: Iff99932acd2f6cb482fc5da9ff586d7ab2a8b209
2010-12-23 09:32:12 +08:00
David Turner
572fced5b0 am 9691ecc9: Merge "Remove extra/unneeded copy of fenv.h"
* commit '9691ecc9a768e7e08cb6af0b454029195ffc285f':
  Remove extra/unneeded copy of fenv.h
2010-12-14 07:19:17 -08:00
David Turner
9691ecc9a7 Merge "Remove extra/unneeded copy of fenv.h" 2010-12-14 07:09:35 -08:00
David Turner
48bebaeca8 am 4efbf95d: Merge "Use proper variable typing"
* commit '4efbf95d8c88a3a203d687d9048b51e256ef3641':
  Use proper variable typing
2010-12-07 06:38:26 -08:00
David Turner
4efbf95d8c Merge "Use proper variable typing" 2010-12-07 06:27:23 -08:00
Rodrigo Obregon
fddaafceda Bionic: Aliasing problems with frexpf
This patch fixes a known bug in bionic libm
due to aliasing issues in gcc 4.2 and 4.4; more
specifically in frexpf.

The function frexpf is used to extract the
mantissa and exponent from a double precision number.

The bug has already been reported here:
https://code.google.com/p/android/issues/detail?id=6697

Change-Id: I2e1f2e0a45906642d2225b9d150ed391d2bf331c
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
2010-11-05 12:15:26 -05:00
Bruce Beare
52eed0aeb7 Remove extra/unneeded copy of fenv.h
Change-Id: I80da2521c50df7e8967af48164cc834abf499c50
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2010-10-11 12:34:26 -07:00
Bruce Beare
58f2b7ed66 Use proper variable typing
Change-Id: If5c33d90b33f538448ac12e7bee94b4b9173d39c
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2010-10-11 12:34:10 -07:00
David 'Digit' Turner
ce2ebf8d73 libm: remove aliasing issue.
See http://code.google.com/p/android/issues/detail?id=6697
for details about this change.

Change-Id: I516f00c6f3bc99b22be51669e4573246bdd6e33d
2010-09-27 17:35:48 +02:00
David 'Digit' Turner
2beac0f5c6 DO NOT MERGE - add sincos.c to libm compilation
For some reason, a previous backport from master didn't get this.

Change-Id: I59eb96ad9de495a659808fdfb557033476c3d123
2010-06-09 15:49:35 -07:00
David 'Digit' Turner
410b2ae7fb Add sincosl() function to bionic. So that sincos optimization can - DO NOT MERGE
be enabled.

Change-Id: I672cb319689aa4fb3f1f7cd868dda76842bebae9
2010-06-09 14:35:29 -07:00
Jean-Baptiste Queru
c3581dc78a Merge "Sometimes the compiler is very right! Found bug in bessel routines for float." 2010-05-11 10:43:56 -07:00
David Turner
7911e057a5 Merge "Reduce compiler anxiety." 2010-05-11 10:20:15 -07:00
Scott Turner
c1f8dd9f0b Sometimes the compiler is very right! Found bug in bessel routines for float.
Original compiler error:

target arm C: libm <= bionic/libm/src/e_j0f.c
bionic/libm/src/e_j0f.c: In function 'j0f':
bionic/libm/src/e_j0f.c:66: warning: comparison between signed and unsigned integer expressions
bionic/libm/src/e_j0f.c: In function 'y0f':
bionic/libm/src/e_j0f.c:140: warning: comparison between signed and unsigned integer expressions
target arm C: libm <= bionic/libm/src/e_j1.c

It's subtle but ix is masked with 0x7f000000 so it can never ever have a value
greater than 0x80000000. So I switched to using the unmasked hx and added a
cast as a reward to the compiler for being right.

I checked the original routines that e_j0f.c was ported from (in e_j0.c) and
the double's don't use 0x80000000 so this issue didn't exist there.

Let that be a warning to those that just slap on casts to shut up the compiler,
sometimes it's sniffed out a bug for you. :-)

Similar fixes in the other functions.

Change-Id: I7a776e5d4721fc3a9e3bd89179b67e9af3a2ebfa
2010-05-07 15:02:36 -07:00
Scott Turner
72d3489612 Reduce compiler anxiety.
Warning from compiler:

target arm C: libm <= bionic/libm/src/e_atan2.c
bionic/libm/src/e_atan2.c: In function 'atan2':
bionic/libm/src/e_atan2.c:71: warning: suggest parentheses around arithmetic in operand of '|'
target arm C: libm <= bionic/libm/src/e_atan2f.c
2010-01-16 10:39:00 -05:00
Scott Turner
fb02ec25e9 Reversed order of const and static to hush warning from compiler. 2010-01-16 10:23:18 -05:00
Shin-ichiro KAWASAKI
d87945b4e7 added and modified libm to support SuperH architecture 2009-08-31 16:25:42 +09:00
The Android Open Source Project
4e468ed2eb Code drop from //branches/cupcake/...@124589 2008-12-17 18:03:48 -08:00
The Android Open Source Project
a27d2baa0c Initial Contribution 2008-10-21 07:00:00 -07:00