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