2 * Written by J.T. Conklin <jtc@netbsd.org>.
5 * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>.
6 * Adapted for x86-64 by Andreas Jaeger <aj@suse.de>
8 * Correct handling of y==-inf <drepper@gnu>
11 #include <machine/asm.h>
22 ASM_TYPE_DIRECTIVE(zero_nan,@object)
25 nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
27 .byte 0, 0, 0, 0, 0, 0, 0, 0x80
28 .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
29 ASM_SIZE_DIRECTIVE(zero_nan)
33 #define MO(op) op##(%rip)
39 ENTRY(__ieee754_scalbl)
76 lea zero_nan(%rip),%rdx
79 fldl zero_nan(%rax, 1)
83 /* The result is NaN, but we must not raise an exception.
90 /* The first parameter is a NaN. Return it. */
94 /* Return NaN and raise the invalid exception. */
100 END(__ieee754_scalbl)