Commit 5ba02ca6 by Geoff Keating Committed by Geoffrey Keating

optabs.c (expand_float): Don't allow mode widening that causes double rounding.

* optabs.c (expand_float): Don't allow mode widening that causes
double rounding.

From-SVN: r33894
parent fa06229f
2000-05-13 Geoffrey Keating <geoffk@cygnus.com> 2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
* optabs.c (expand_float): Don't allow mode widening that causes
double rounding.
* invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32 * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
flags to their current names -maix64 and -maix32. flags to their current names -maix64 and -maix32.
......
...@@ -3888,6 +3888,10 @@ expand_float (to, from, unsignedp) ...@@ -3888,6 +3888,10 @@ expand_float (to, from, unsignedp)
{ {
int doing_unsigned = unsignedp; int doing_unsigned = unsignedp;
if (fmode != GET_MODE (to)
&& significand_size (fmode) < GET_MODE_BITSIZE (GET_MODE (from)))
continue;
icode = can_float_p (fmode, imode, unsignedp); icode = can_float_p (fmode, imode, unsignedp);
if (icode == CODE_FOR_nothing && imode != GET_MODE (from) && unsignedp) if (icode == CODE_FOR_nothing && imode != GET_MODE (from) && unsignedp)
icode = can_float_p (fmode, imode, 0), doing_unsigned = 0; icode = can_float_p (fmode, imode, 0), doing_unsigned = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment