--- src/lib/libm/arch/i386/s_scalbn.S 2005/07/26 21:15:19 1.1 +++ src/lib/libm/arch/i386/s_scalbn.S 2007/06/16 23:53:00 1.2 @@ -2,19 +2,26 @@ * Written by J.T. Conklin . * Public domain. * - * $NetBSD: s_scalbn.S,v 1.7 2003/07/26 19:25:03 salo Exp $ + * $NetBSD: s_scalbn.S,v 1.8 2006/03/21 11:35:21 drochner Exp $ * $DragonFly$ */ #include -#include "abi.h" - ENTRY(scalbn) - XMM_TWO_ARG_DOUBLE_PROLOGUE - fildl ARG_DOUBLE_TWO - fldl ARG_DOUBLE_ONE +#ifdef __x86_64__ + movl %edi,-12(%rsp) + fildl -12(%rsp) + movsd %xmm0,-8(%rsp) + fldl -8(%rsp) + fscale + fstpl -8(%rsp) + movsd -8(%rsp),%xmm0 + fstp %st(0) +#else + fildl 12(%esp) + fldl 4(%esp) fscale - fstp %st(1) /* bug fix for fp stack overflow */ - XMM_DOUBLE_EPILOGUE + fstp %st(1) /* clean up stack */ +#endif ret