6 #include <machine/asm.h>
8 RCSID("$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $")
13 /* The fyl2xp1 can only be used for values in
14 -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2
17 limit: .quad 0x947ae147ae147ae1 /* 0.29 */
19 /* Please note: we use a double value here. Since 1.0 has
20 an exact representation this does not effect the accuracy
21 but it helps to optimize the code. */
25 # define MO(op) op##@GOTOFF(%edx)
31 * Use the fyl2xp1 function when the argument is in the range -0.29 to 0.29,
32 * otherwise fyl2x with the needed extra computation.
48 jc 3f // in case x is NaN or ±Inf
57 movzwl 4+8(%esp), %eax
69 3: jp 4b // in case x is ±Inf