1/* 2 * Written by J.T. Conklin <jtc@NetBSD.org>. 3 * Public domain. 4 */ 5 6#include <machine/asm.h> 7 8RCSID("$NetBSD: s_scalbnf.S,v 1.11 2013/02/12 02:52:13 matt Exp $") 9 10#ifdef WEAK_ALIAS 11WEAK_ALIAS(scalbnf,_scalbnf) 12WEAK_ALIAS(scalblnf,_scalblnf) 13#endif 14 15#ifdef __x86_64__ 16ENTRY(_scalbnf) 17 movl %edi,-8(%rsp) 18 fildl -8(%rsp) 19 movss %xmm0,-4(%rsp) 20 flds -4(%rsp) 21 fscale 22 fstps -4(%rsp) 23 movss -4(%rsp),%xmm0 24 fstp %st(0) 25 ret 26#elif defined(STRONG_ALIAS) 27STRONG_ALIAS(_scalbnf,_scalblnf) 28#endif 29 30ENTRY(_scalblnf) 31#ifdef __x86_64__ 32 movq %rdx,-16(%rsp) 33 fildq -16(%rsp) 34 movss %xmm0,-4(%rsp) 35 flds -4(%rsp) 36 fscale 37 fstps -4(%rsp) 38 movss -4(%rsp),%xmm0 39 fstp %st(0) 40#else 41 fildl 8(%esp) 42 flds 4(%esp) 43 fscale 44 fstp %st(1) /* clean up stack */ 45#endif 46 ret 47