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>.
9 #include <machine/asm.h>
11 RCSID("$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $")
16 /* The fyl2xp1 can only be used for values in
17 -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2
21 /* Please note: we use a double value here. Since 1.0 has
22 an exact representation this does not effect the accuracy
23 but it helps to optimize the code. */
27 * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29,
28 * otherwise fyl2x with the needed extra computation.
31 #define MO(op) op##(%rip)
46 jnz 3f // in case x is NaN or ±Inf
55 movzwl 8+8(%rsp), %eax
68 jnz 4b // in case x is ±Inf
74 weak_alias (__log1pl, log1pl)