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