From: Richard Stallman Date: Thu, 20 May 1993 04:27:34 +0000 (+0000) Subject: (e24toe, e53toe, e64toe): Fix sign in conversions of -infinity. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dca821e1a9a0d5ed3a44fd6a1e15f7cb08833e58;p=gcc.git (e24toe, e53toe, e64toe): Fix sign in conversions of -infinity. (e24toe, e53toe, e64toe): Fix sign in conversions of -infinity. Always do eclear before einfin. From-SVN: r4513 --- diff --git a/gcc/real.c b/gcc/real.c index df911cc2678..40b3cc22f6e 100644 --- a/gcc/real.c +++ b/gcc/real.c @@ -1328,7 +1328,9 @@ eisnan (x) } /* Fill external format number with infinity pattern (IEEE) - or largest possible number (non-IEEE). */ + or largest possible number (non-IEEE). + Before calling einfin, you should either call eclear + or set up the sign bit by hand. */ void einfin (x) @@ -1458,7 +1460,7 @@ emovo (a, b) } #endif einfin (b); - return; + return; } #endif /* skip over guard word */ @@ -2635,8 +2637,9 @@ e53toe (pe, y) } #endif #endif /* NANS */ + eclear (y); einfin (y); - if (r & 0x8000) + if (yy[0]) eneg (y); return; } @@ -2728,6 +2731,7 @@ e64toe (pe, y) } #endif #endif /* NANS */ + eclear (y); einfin (y); if (*p & 0x8000) eneg (y); @@ -2787,8 +2791,9 @@ e24toe (pe, y) } #endif #endif /* NANS */ + eclear (y); einfin (y); - if (r & 0x8000) + if (yy[0]) eneg (y); return; }