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