diff --git a/lib/libm/arch/i387/s_log1p.S b/lib/libm/arch/i387/s_log1p.S index 319b76f93039..0805a1f4249d 100644 --- a/lib/libm/arch/i387/s_log1p.S +++ b/lib/libm/arch/i387/s_log1p.S @@ -35,10 +35,21 @@ #include -RCSID("$Id: s_log1p.S,v 1.3 1994/08/18 20:42:35 jtc Exp $") +RCSID("$Id: s_log1p.S,v 1.4 1994/08/19 03:55:57 jtc Exp $") +/* + * The fyl2xp1 instruction has such a limited range: + * -(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1 + * it's not worth trying to use it. + * + * Also, I'm not sure fyl2xp1's extra precision will + * matter once the result is converted from extended + * real (80 bits) back to double real (64 bits). + */ ENTRY(log1p) fldln2 fldl 4(%esp) - fyl2xp1 + fld1 + faddp + fyl2x ret