Use round-to-nearest internally in jn, test with ALL_RM_TEST (bug 18602).
[glibc.git] / sysdeps / i386 / fpu / e_acos.S
blob586c7fc406b1867f62379d25c748bb206606aba0
1 /*
2  * Written by J.T. Conklin <jtc@netbsd.org>.
3  * Public domain.
4  */
6 #include <machine/asm.h>
8 RCSID("$NetBSD: e_acos.S,v 1.4 1995/05/08 23:44:37 jtc Exp $")
10 /* acos = atan (sqrt((1-x) (1+x)) / x) */
11 ENTRY(__ieee754_acos)
12         fldl    4(%esp)                 /* x */
13         fld     %st                     /* x : x */
14         fld1                            /* 1 : x : x */
15         fsubp                           /* 1 - x : x */
16         fld1                            /* 1 : 1 - x : x */
17         fadd    %st(2)                  /* 1 + x : 1 - x : x */
18         fmulp                           /* 1 - x^2 : x */
19         fsqrt                           /* sqrt (1 - x^2) : x */
20         fabs
21         fxch    %st(1)                  /* x : sqrt (1 - x^2) */
22         fpatan                          /* atan (sqrt(1 - x^2) / x) */
23         ret
24 END (__ieee754_acos)
25 strong_alias (__ieee754_acos, __acos_finite)