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