1 1.1 jtc /* 2 1.7 salo * Written by J.T. Conklin <jtc (at) NetBSD.org>. 3 1.3 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 joerg RCSID("$NetBSD: s_scalbn.S,v 1.14 2013/05/20 19:40:09 joerg Exp $") 9 1.2 jtc 10 1.9 drochner #ifdef WEAK_ALIAS 11 1.13 mlelstv WEAK_ALIAS(scalbn,_scalbn) 12 1.10 matt WEAK_ALIAS(scalbln,_scalbln) 13 1.14 joerg WEAK_ALIAS(ldexp,_scalbn) 14 1.9 drochner #endif 15 1.10 matt #ifdef __x86_64__ 16 1.9 drochner ENTRY(_scalbn) 17 1.8 drochner movl %edi,-12(%rsp) 18 1.8 drochner fildl -12(%rsp) 19 1.8 drochner movsd %xmm0,-8(%rsp) 20 1.8 drochner fldl -8(%rsp) 21 1.8 drochner fscale 22 1.8 drochner fstpl -8(%rsp) 23 1.8 drochner movsd -8(%rsp),%xmm0 24 1.8 drochner fstp %st(0) 25 1.10 matt ret 26 1.10 matt #elif defined(STRONG_ALIAS) 27 1.10 matt STRONG_ALIAS(_scalbn, scalbln) 28 1.10 matt #endif 29 1.10 matt 30 1.10 matt ENTRY(_scalbln) 31 1.10 matt #ifdef __x86_64__ 32 1.11 joerg movq %rdi,-16(%rsp) 33 1.10 matt fildq -16(%rsp) 34 1.10 matt movsd %xmm0,-8(%rsp) 35 1.10 matt fldl -8(%rsp) 36 1.10 matt fscale 37 1.10 matt fstpl -8(%rsp) 38 1.10 matt movsd -8(%rsp),%xmm0 39 1.10 matt fstp %st(0) 40 1.8 drochner #else 41 1.8 drochner fildl 12(%esp) 42 1.8 drochner fldl 4(%esp) 43 1.1 jtc fscale 44 1.8 drochner fstp %st(1) /* clean up stack */ 45 1.8 drochner #endif 46 1.1 jtc ret 47