105a0b428SJohn Marino/*	$OpenBSD: s_cos.S,v 1.2 2005/08/02 11:17:31 espie Exp $ */
205a0b428SJohn Marino/*
305a0b428SJohn Marino * Written by J.T. Conklin <jtc@NetBSD.org>.
405a0b428SJohn Marino * Public domain.
505a0b428SJohn Marino */
605a0b428SJohn Marino
705a0b428SJohn Marino#include <machine/asm.h>
805a0b428SJohn Marino
905a0b428SJohn Marino#include "abi.h"
1005a0b428SJohn Marino
1105a0b428SJohn MarinoENTRY(cos)
1205a0b428SJohn Marino	XMM_ONE_ARG_DOUBLE_PROLOGUE
1305a0b428SJohn Marino	fldl	ARG_DOUBLE_ONE
1405a0b428SJohn Marino	fcos
1505a0b428SJohn Marino	fnstsw	%ax
1605a0b428SJohn Marino	andw	$0x400,%ax
1705a0b428SJohn Marino	jnz	1f
1805a0b428SJohn Marino	XMM_DOUBLE_EPILOGUE
1905a0b428SJohn Marino	ret
2005a0b428SJohn Marino1:	fldpi
2105a0b428SJohn Marino	fadd	%st(0)
2205a0b428SJohn Marino	fxch	%st(1)
2305a0b428SJohn Marino2:	fprem1
2405a0b428SJohn Marino	fnstsw	%ax
2505a0b428SJohn Marino	andw	$0x400,%ax
2605a0b428SJohn Marino	jnz	2b
2705a0b428SJohn Marino	fstp	%st(1)
2805a0b428SJohn Marino	fcos
2905a0b428SJohn Marino	XMM_DOUBLE_EPILOGUE
3005a0b428SJohn Marino	ret
31*a27bb01fSJohn MarinoEND(cos)
32*a27bb01fSJohn Marino
33*a27bb01fSJohn Marino	.section .note.GNU-stack,"",%progbits
34