(e24toe, e53toe, e64toe): Fix sign in conversions of -infinity.
authorRichard Stallman <rms@gnu.org>
Thu, 20 May 1993 04:27:34 +0000 (04:27 +0000)
committerRichard Stallman <rms@gnu.org>
Thu, 20 May 1993 04:27:34 +0000 (04:27 +0000)
(e24toe, e53toe, e64toe): Fix sign in conversions
of -infinity.  Always do eclear before einfin.

From-SVN: r4513

gcc/real.c

index df911cc2678424014482ee32861dd9367713ae3e..40b3cc22f6e2ee0e0e3e1259a7603df3f3debcaf 100644 (file)
@@ -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;
     }