1 /* 2 * Written by J.T. Conklin <jtc (at) NetBSD.org>. 3 * Public domain. 4 */ 5 6 #include <machine/asm.h> 7 8 RCSID("$NetBSD: s_scalbnl.S,v 1.5 2013/05/20 20:27:43 mlelstv Exp $") 9 10 #ifdef WEAK_ALIAS 11 WEAK_ALIAS(scalbnl,_scalbnl) 12 WEAK_ALIAS(scalblnl,_scalblnl) 13 WEAK_ALIAS(ldexpl,_scalbnl) 14 #endif 15 16 #ifdef __x86_64__ 17 ENTRY(_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) 25 STRONG_ALIAS(_scalbnl,_scalblnl) 26 #endif 27 28 ENTRY(_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