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