1/*
2 * Written by J.T. Conklin <jtc@netbsd.org>.
3 * Public domain.
4 *
5 * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
6 */
7
8#include <math_private.h>
9
10long double
11__ieee754_acosl (long double x)
12{
13 long double res;
14
15 /* acosl = atanl (sqrtl((1-x) (1+x)) / x) */
16 asm ( "fld %%st\n"
17 "fld1\n"
18 "fsubp\n"
19 "fld1\n"
20 "fadd %%st(2)\n"
21 "fmulp\n" /* 1 - x^2 */
22 "fsqrt\n" /* sqrtl (1 - x^2) */
23 "fabs\n"
24 "fxch %%st(1)\n"
25 "fpatan"
26 : "=t" (res) : "0" (x) : "st(1)");
27 return res;
28}
29strong_alias (__ieee754_acosl, __acosl_finite)
30