NetBSD/lib/libm/arch/i387/s_scalbnf.S

48 lines
782 B
ArmAsm

/*
* Written by J.T. Conklin <jtc@NetBSD.org>.
* Public domain.
*/
#include <machine/asm.h>
RCSID("$NetBSD: s_scalbnf.S,v 1.14 2013/05/20 20:27:43 mlelstv Exp $")
#ifdef WEAK_ALIAS
WEAK_ALIAS(scalbnf,_scalbnf)
WEAK_ALIAS(scalblnf,_scalblnf)
WEAK_ALIAS(ldexpf,_scalbnf)
#endif
#ifdef __x86_64__
ENTRY(_scalbnf)
movl %edi,-8(%rsp)
fildl -8(%rsp)
movss %xmm0,-4(%rsp)
flds -4(%rsp)
fscale
fstps -4(%rsp)
movss -4(%rsp),%xmm0
fstp %st(0)
ret
#elif defined(STRONG_ALIAS)
STRONG_ALIAS(_scalbnf,_scalblnf)
#endif
ENTRY(_scalblnf)
#ifdef __x86_64__
movq %rdi,-16(%rsp)
fildq -16(%rsp)
movss %xmm0,-4(%rsp)
flds -4(%rsp)
fscale
fstps -4(%rsp)
movss -4(%rsp),%xmm0
fstp %st(0)
#else
fildl 8(%esp)
flds 4(%esp)
fscale
fstp %st(1) /* clean up stack */
#endif
ret