xref: /netbsd-src/lib/libm/arch/i387/s_scalbn.S (revision c2f76ff004a2cb67efe5b12d97bd3ef7fe89e18d)
1/*
2 * Written by J.T. Conklin <jtc@NetBSD.org>.
3 * Public domain.
4 */
5
6#include <machine/asm.h>
7
8RCSID("$NetBSD: s_scalbn.S,v 1.9 2010/04/23 19:17:07 drochner Exp $")
9
10#ifdef WEAK_ALIAS
11WEAK_ALIAS(scalbn,_scalbn)
12#endif
13
14ENTRY(_scalbn)
15#ifdef __x86_64__
16	movl %edi,-12(%rsp)
17	fildl -12(%rsp)
18	movsd %xmm0,-8(%rsp)
19	fldl -8(%rsp)
20	fscale
21	fstpl -8(%rsp)
22	movsd -8(%rsp),%xmm0
23	fstp %st(0)
24#else
25	fildl 12(%esp)
26	fldl 4(%esp)
27	fscale
28	fstp %st(1)		/* clean up stack */
29#endif
30	ret
31