s_scalbnf.S revision 1.8.6.1 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.8.6.1 yamt RCSID("$NetBSD: s_scalbnf.S,v 1.8.6.1 2014/05/22 11:36:56 yamt Exp $")
9 1.1 jtc
10 1.8 drochner #ifdef WEAK_ALIAS
11 1.8 drochner WEAK_ALIAS(scalbnf,_scalbnf)
12 1.8.6.1 yamt WEAK_ALIAS(scalblnf,_scalblnf)
13 1.8.6.1 yamt WEAK_ALIAS(ldexpf,_scalbnf)
14 1.8 drochner #endif
15 1.8 drochner
16 1.7 drochner #ifdef __x86_64__
17 1.8.6.1 yamt 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.8.6.1 yamt ret
27 1.8.6.1 yamt #elif defined(STRONG_ALIAS)
28 1.8.6.1 yamt STRONG_ALIAS(_scalbnf,_scalblnf)
29 1.8.6.1 yamt #endif
30 1.8.6.1 yamt
31 1.8.6.1 yamt ENTRY(_scalblnf)
32 1.8.6.1 yamt #ifdef __x86_64__
33 1.8.6.1 yamt movq %rdi,-16(%rsp)
34 1.8.6.1 yamt fildq -16(%rsp)
35 1.8.6.1 yamt movss %xmm0,-4(%rsp)
36 1.8.6.1 yamt flds -4(%rsp)
37 1.8.6.1 yamt fscale
38 1.8.6.1 yamt fstps -4(%rsp)
39 1.8.6.1 yamt movss -4(%rsp),%xmm0
40 1.8.6.1 yamt 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