2 * Written by J.T. Conklin <jtc@netbsd.org>.
5 * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
7 * Correct handling of y==-inf <drepper@gnu>
10 #include <machine/asm.h>
21 ASM_TYPE_DIRECTIVE(zero_nan,@object)
24 nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
26 .byte 0, 0, 0, 0, 0, 0, 0, 0x80
27 .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
28 ASM_SIZE_DIRECTIVE(zero_nan)
32 #define MO(op) op##@GOTOFF(%ecx)
33 #define MOX(op,x,f) op##@GOTOFF(%ecx,x,f)
36 #define MOX(op,x,f) op(,x,f)
40 ENTRY(__ieee754_scalbl)
71 addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
83 fldl MOX(zero_nan, %eax, 1)
86 /* The result is NaN, but we must not raise an exception.
93 addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
98 /* The first parameter is a NaN. Return it. */
102 /* Return NaN and raise the invalid exception. */
108 END(__ieee754_scalbl)