summaryrefslogtreecommitdiff
path: root/gcc/real.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/real.c')
-rw-r--r--gcc/real.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/real.c b/gcc/real.c
index d578ace0883..72766bbec76 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -3248,9 +3248,8 @@ encode_ibm_extended (const struct real_format *fmt, long *buf,
if (u.class == rvc_normal)
{
do_add (&v, &normr, &u, 1);
- /* The low double won't need rounding, since we round to a 106 bit
- mantissa before calling this function, and we've just
- subtracted off the top 54 bits. (53+1 because u is rounded.) */
+ /* Call round_for_format since we might need to denormalize. */
+ round_for_format (base_fmt, &v);
encode_ieee_double (base_fmt, &buf[2], &v);
}
else