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