]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/i386/fpu/e_acosl.c
Optimize libm
[thirdparty/glibc.git] / sysdeps / i386 / fpu / e_acosl.c
CommitLineData
b3b38042
AJ
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^2) / x) */
16 asm ( "fld %%st\n"
17 "fmul %%st(0)\n" /* x^2 */
18 "fld1\n"
19 "fsubp\n" /* 1 - x^2 */
20 "fsqrt\n" /* sqrtl (1 - x^2) */
21 "fxch %%st(1)\n"
22 "fpatan"
23 : "=t" (res) : "0" (x) : "st(1)");
24 return res;
25}
0ac5ae23 26strong_alias (__ieee754_acosl, __acosl_finite)