1/* 2 * Written by J.T. Conklin <jtc@NetBSD.org>. 3 * Public domain. 4 */ 5 6#include <machine/asm.h> 7 8RCSID("$NetBSD: s_scalbnl.S,v 1.5 2013/05/20 20:27:43 mlelstv Exp $") 9 10#ifdef WEAK_ALIAS 11WEAK_ALIAS(scalbnl,_scalbnl) 12WEAK_ALIAS(scalblnl,_scalblnl) 13WEAK_ALIAS(ldexpl,_scalbnl) 14#endif 15 16#ifdef __x86_64__ 17ENTRY(_scalbnl) 18 movl %edi,-4(%rsp) 19 fildl -4(%rsp) 20 fldt 8(%rsp) 21 fscale 22 fstp %st(1) 23 ret 24#elif defined(STRONG_ALIAS) 25STRONG_ALIAS(_scalbnl,_scalblnl) 26#endif 27 28ENTRY(_scalblnl) 29#ifdef __x86_64__ 30 movq %rdi,-8(%rsp) 31 fildq -8(%rsp) 32 fldt 8(%rsp) 33 fscale 34 fstp %st(1) 35#else 36 fildl 16(%esp) 37 fldt 4(%esp) 38 fscale 39 fstp %st(1) /* clean up stack */ 40#endif 41 ret 42