diff options
author | Richard Henderson <rth@redhat.com> | 2002-09-23 04:26:40 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-09-23 04:26:40 -0700 |
commit | a520ff954b20bf6ce376b512867b8d4865708c9d (patch) | |
tree | 5322c133c0c23606e6e772dc8dde12ffbf740a96 /gcc/real.c | |
parent | 6ad8f94953f01ad3463872b57343093a13d29b4b (diff) | |
download | gcc-a520ff954b20bf6ce376b512867b8d4865708c9d.zip gcc-a520ff954b20bf6ce376b512867b8d4865708c9d.tar.gz gcc-a520ff954b20bf6ce376b512867b8d4865708c9d.tar.bz2 |
* real.c (do_multiply): Normalize U before addition.
From-SVN: r57435
Diffstat (limited to 'gcc/real.c')
-rw-r--r-- | gcc/real.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -741,9 +741,6 @@ do_multiply (r, a, b) rr = r; get_zero (rr, 0); - u.class = rvc_normal; - u.sign = 0; - /* Collect all the partial products. Since we don't have sure access to a widening multiply, we split each long into two half-words. @@ -784,6 +781,8 @@ do_multiply (r, a, b) /* Would underflow to zero, which we shouldn't bother adding. */ continue; + u.class = rvc_normal; + u.sign = 0; u.exp = exp; for (k = j; k < SIGSZ * 2; k += 2) @@ -797,6 +796,7 @@ do_multiply (r, a, b) u.sig[k / 2] = ai * bi; } + normalize (&u); do_add (rr, rr, &u, 0); } } |