2 * Written by J.T. Conklin <jtc@netbsd.org>.
4 * Adapted for float type by Ulrich Drepper <drepper@cygnus.com>.
6 * Correct handling of y==-inf <drepper@gnu>
9 #include <machine/asm.h>
10 #include <i386-math-asm.h>
15 .type zero_nan,@object
18 nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
19 .byte 0, 0, 0, 0, 0, 0, 0, 0x80
20 .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
21 ASM_SIZE_DIRECTIVE(zero_nan)
25 # define MO(op) op##@GOTOFF(%ecx)
26 # define MOX(op,x,f) op##@GOTOFF(%ecx,x,f)
29 # define MOX(op,x,f) op(,x,f)
34 ENTRY(__ieee754_scalbf)
71 andl $0x80000000, %edx
78 fldl MOX(zero_nan, %eax, 1)
81 /* The result is NaN, but we must not raise an exception.
91 /* The first parameter is a NaN. Return it. */
95 /* Return NaN and raise the invalid exception. */
101 END(__ieee754_scalbf)
102 strong_alias (__ieee754_scalbf, __scalbf_finite)