s_scalbn.S revision 1.9.12.2 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.9.12.2 tls RCSID("$NetBSD: s_scalbn.S,v 1.9.12.2 2013/06/23 06:21:07 tls Exp $")
9 1.2 jtc
10 1.9 drochner #ifdef WEAK_ALIAS
11 1.9.12.2 tls WEAK_ALIAS(scalbn,_scalbn)
12 1.9.12.1 tls WEAK_ALIAS(scalbln,_scalbln)
13 1.9.12.2 tls WEAK_ALIAS(ldexp,_scalbn)
14 1.9 drochner #endif
15 1.8 drochner #ifdef __x86_64__
16 1.9.12.1 tls 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.9.12.1 tls ret
26 1.9.12.1 tls #elif defined(STRONG_ALIAS)
27 1.9.12.1 tls STRONG_ALIAS(_scalbn, scalbln)
28 1.9.12.1 tls #endif
29 1.9.12.1 tls
30 1.9.12.1 tls ENTRY(_scalbln)
31 1.9.12.1 tls #ifdef __x86_64__
32 1.9.12.2 tls movq %rdi,-16(%rsp)
33 1.9.12.1 tls fildq -16(%rsp)
34 1.9.12.1 tls movsd %xmm0,-8(%rsp)
35 1.9.12.1 tls fldl -8(%rsp)
36 1.9.12.1 tls fscale
37 1.9.12.1 tls fstpl -8(%rsp)
38 1.9.12.1 tls movsd -8(%rsp),%xmm0
39 1.9.12.1 tls 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