real.c (do_add): Fix 0+0 sign corner case.

* real.c (do_add): Fix 0+0 sign corner case.
        (do_divide): Fix Inf/0 corner case.

From-SVN: r58322
This commit is contained in:
Brad Lucier 2002-10-19 23:03:21 +00:00 committed by Richard Henderson
parent 1194ca0590
commit 433d5d04bc
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2002-10-19 Brad Lucier <lucier@math.purdue.edu>
* real.c (do_add): Fix 0+0 sign corner case.
(do_divide): Fix Inf/0 corner case.
Sun Oct 20 00:31:31 CEST 2002 Jan Hubicka <jh@suse.cz>
* i386.c (classify_argument): Pass MMX arguments in memory

View File

@ -578,8 +578,8 @@ do_add (r, a, b, subtract_p)
switch (CLASS2 (a->class, b->class))
{
case CLASS2 (rvc_zero, rvc_zero):
/* +-0 +/- +-0 = +0. */
get_zero (r, 0);
/* -0 + -0 = -0, -0 - +0 = -0; all other cases yield +0. */
get_zero (r, sign & !subtract_p);
return;
case CLASS2 (rvc_zero, rvc_normal):
@ -838,8 +838,6 @@ do_divide (r, a, b)
{
case CLASS2 (rvc_zero, rvc_zero):
/* 0 / 0 = NaN. */
case CLASS2 (rvc_inf, rvc_zero):
/* Inf / 0 = NaN. */
case CLASS2 (rvc_inf, rvc_inf):
/* Inf / Inf = NaN. */
get_canonical_qnan (r, sign);
@ -856,6 +854,8 @@ do_divide (r, a, b)
case CLASS2 (rvc_normal, rvc_zero):
/* R / 0 = Inf. */
case CLASS2 (rvc_inf, rvc_zero):
/* Inf / 0 = Inf. */
get_inf (r, sign);
return;