diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-03-19 23:08:49 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-03-19 23:08:49 -0400 |
commit | 804fbf0b8c00fd4e2f37ef0769a610614d06138f (patch) | |
tree | b2179b38c3588def9b27c5fcd3c650043af15b3d /src/math/i386 | |
parent | 97721a5508415a2f10eb068e022093811c9ff8be (diff) | |
download | musl-804fbf0b8c00fd4e2f37ef0769a610614d06138f.tar.gz |
use alternate formula for acos asm to avoid loss of precision
Diffstat (limited to 'src/math/i386')
-rw-r--r-- | src/math/i386/acos.s | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/math/i386/acos.s b/src/math/i386/acos.s index 6f9ef7f0..4f0168f6 100644 --- a/src/math/i386/acos.s +++ b/src/math/i386/acos.s @@ -14,11 +14,19 @@ acosl: .type acos,@function acos: fldl 4(%esp) -1: fld %st(0) - fmul %st(0) +1: fld1 + fld %st(1) fld1 - fsubp %st(1) + fsubp + fxch %st(2) + faddp + fdivp fsqrt + fld1 fxch %st(1) fpatan + fld1 + fld1 + faddp + fmulp ret |