minix/lib/libm/arch/i387/s_scalbnf.S
Lionel Sambuc 84d9c625bf Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC)
- Fix for possible unset uid/gid in toproto
 - Fix for default mtree style
 - Update libelf
 - Importing libexecinfo
 - Resynchronize GCC, mpc, gmp, mpfr
 - build.sh: Replace params with show-params.
     This has been done as the make target has been renamed in the same
     way, while a new target named params has been added. This new
     target generates a file containing all the parameters, instead of
     printing it on the console.
 - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
     get getservbyport() out of the inner loop

Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
2014-07-28 17:05:06 +02:00

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