02fd4f8b7ec1a9df92032ded3cea89ecbf14ef18
[dragonfly.git] / lib / libm / arch / i386 / s_scalbn.S
1 /*
2  * Written by J.T. Conklin <jtc@NetBSD.org>.
3  * Public domain.
4  *
5  * $NetBSD: s_scalbn.S,v 1.8 2006/03/21 11:35:21 drochner Exp $
6  */
7
8 #include <machine/asm.h>
9
10 ENTRY(scalbn)
11 #ifdef __x86_64__
12         movl %edi,-12(%rsp)
13         fildl -12(%rsp)
14         movsd %xmm0,-8(%rsp)
15         fldl -8(%rsp)
16         fscale
17         fstpl -8(%rsp)
18         movsd -8(%rsp),%xmm0
19         fstp %st(0)
20 #else
21         fildl 12(%esp)
22         fldl 4(%esp)
23         fscale
24         fstp %st(1)             /* clean up stack */
25 #endif
26         ret
27 END(scalbn)