projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix mips syscall_cp_asm code (saved register usage)
[musl]
/
src
/
math
/
i386
/
acos.s
diff --git
a/src/math/i386/acos.s
b/src/math/i386/acos.s
index
6f9ef7f
..
47f365e
100644
(file)
--- a/
src/math/i386/acos.s
+++ b/
src/math/i386/acos.s
@@
-1,3
+1,5
@@
+# use acos(x) = atan2(fabs(sqrt((1-x)*(1+x))), x)
+
.global acosf
.type acosf,@function
acosf:
.global acosf
.type acosf,@function
acosf:
@@
-15,10
+17,12
@@
acosl:
acos:
fldl 4(%esp)
1: fld %st(0)
acos:
fldl 4(%esp)
1: fld %st(0)
- fmul %st(0)
fld1
fld1
- fsubp %st(1)
+ fsub %st(0),%st(1)
+ fadd %st(2)
+ fmulp
fsqrt
fsqrt
+ fabs # fix sign of zero (matters in downward rounding mode)
fxch %st(1)
fpatan
ret
fxch %st(1)
fpatan
ret