1/*	$OpenBSD: e_acos.S,v 1.4 2008/09/07 20:36:08 martynas Exp $ */
2/*
3 * Written by J.T. Conklin <jtc@NetBSD.org>.
4 * Public domain.
5 */
6
7#include <machine/asm.h>
8
9#include "abi.h"
10
11/* acos = atan (sqrt(1 - x^2) / x) */
12ENTRY(acos)
13	XMM_ONE_ARG_DOUBLE_PROLOGUE
14	fldl	ARG_DOUBLE_ONE		/* x */
15	fld	%st(0)
16	fmul	%st(0)			/* x^2 */
17	fld1
18	fsubp				/* 1 - x^2 */
19	fsqrt				/* sqrt (1 - x^2) */
20	fxch	%st(1)
21	fpatan
22	XMM_DOUBLE_EPILOGUE
23	ret
24END(acos)
25
26	.section .note.GNU-stack,"",%progbits
27