xref: /minix/lib/libm/arch/i387/s_scalbnl.S (revision 84d9c625)
1/*
2 * Written by J.T. Conklin <jtc@NetBSD.org>.
3 * Public domain.
4 */
5
6#include <machine/asm.h>
7
8RCSID("$NetBSD: s_scalbnl.S,v 1.5 2013/05/20 20:27:43 mlelstv Exp $")
9
10#ifdef WEAK_ALIAS
11WEAK_ALIAS(scalbnl,_scalbnl)
12WEAK_ALIAS(scalblnl,_scalblnl)
13WEAK_ALIAS(ldexpl,_scalbnl)
14#endif
15
16#ifdef __x86_64__
17ENTRY(_scalbnl)
18	movl	%edi,-4(%rsp)
19	fildl	-4(%rsp)
20	fldt	8(%rsp)
21	fscale
22	fstp	%st(1)
23	ret
24#elif defined(STRONG_ALIAS)
25STRONG_ALIAS(_scalbnl,_scalblnl)
26#endif
27
28ENTRY(_scalblnl)
29#ifdef __x86_64__
30	movq	%rdi,-8(%rsp)
31	fildq	-8(%rsp)
32	fldt	8(%rsp)
33	fscale
34	fstp	%st(1)
35#else
36	fildl 16(%esp)
37	fldt 4(%esp)
38	fscale
39	fstp %st(1)		/* clean up stack */
40#endif
41	ret
42