xref: /minix3/lib/libm/arch/i387/s_tan.S (revision 2fe8fb192fe7e8720e3e7a77f928da545e872a6a)
1*2fe8fb19SBen Gras/*
2*2fe8fb19SBen Gras * Written by J.T. Conklin <jtc@NetBSD.org>.
3*2fe8fb19SBen Gras * Public domain.
4*2fe8fb19SBen Gras */
5*2fe8fb19SBen Gras
6*2fe8fb19SBen Gras#include <machine/asm.h>
7*2fe8fb19SBen Gras
8*2fe8fb19SBen Gras#include "abi.h"
9*2fe8fb19SBen Gras
10*2fe8fb19SBen GrasRCSID("$NetBSD: s_tan.S,v 1.7 2003/07/26 19:25:04 salo Exp $")
11*2fe8fb19SBen Gras
12*2fe8fb19SBen GrasENTRY(tan)
13*2fe8fb19SBen Gras	XMM_ONE_ARG_DOUBLE_PROLOGUE
14*2fe8fb19SBen Gras	fldl	ARG_DOUBLE_ONE
15*2fe8fb19SBen Gras	fptan
16*2fe8fb19SBen Gras	fnstsw	%ax
17*2fe8fb19SBen Gras	andw	$0x400,%ax
18*2fe8fb19SBen Gras	jnz	1f
19*2fe8fb19SBen Gras	fstp	%st(0)
20*2fe8fb19SBen Gras	XMM_DOUBLE_EPILOGUE
21*2fe8fb19SBen Gras	ret
22*2fe8fb19SBen Gras1:	fldpi
23*2fe8fb19SBen Gras	fadd	%st(0)
24*2fe8fb19SBen Gras	fxch	%st(1)
25*2fe8fb19SBen Gras2:	fprem1
26*2fe8fb19SBen Gras	fstsw	%ax
27*2fe8fb19SBen Gras	andw	$0x400,%ax
28*2fe8fb19SBen Gras	jnz	2b
29*2fe8fb19SBen Gras	fstp	%st(1)
30*2fe8fb19SBen Gras	fptan
31*2fe8fb19SBen Gras	fstp	%st(0)
32*2fe8fb19SBen Gras	XMM_DOUBLE_EPILOGUE
33*2fe8fb19SBen Gras	ret
34