xref: /openbsd/lib/libm/arch/i387/e_acos.S (revision 73471bf0)
1/*	$OpenBSD: e_acos.S,v 1.4 2016/09/12 19:47:02 guenther Exp $ */
2/*
3 * Written by J.T. Conklin <jtc@netbsd.org>.
4 * Public domain.
5 */
6
7#include <machine/asm.h>
8
9/* acos = atan (sqrt(1 - x^2) / x) */
10ENTRY(acos)
11	fldl	4(%esp)			/* x */
12	fst	%st(1)
13	fmul	%st(0)			/* x^2 */
14	fld1
15	fsubp				/* 1 - x^2 */
16	fsqrt				/* sqrt (1 - x^2) */
17	fxch	%st(1)
18	fpatan
19	ret
20END(acos)
21