aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-10-10 18:46:30 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-10-10 18:46:30 -0400
commita93738eb45d6c0fc40f067bb6b23346602a2d7d0 (patch)
treee565440e445a2b624e7df76c5d77b13c01cb46fd /gcc
parent6c2afd8219ebc69977f594e80def4a7a3add8c3d (diff)
downloadgcc-a93738eb45d6c0fc40f067bb6b23346602a2d7d0.zip
gcc-a93738eb45d6c0fc40f067bb6b23346602a2d7d0.tar.gz
gcc-a93738eb45d6c0fc40f067bb6b23346602a2d7d0.tar.bz2
(expand_float): Copy TEMP to TARGET when making recursive call and
adjusting. From-SVN: r8247
Diffstat (limited to 'gcc')
-rw-r--r--gcc/optabs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 5c9c28b..09f7773 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -3239,8 +3239,11 @@ expand_float (to, from, unsignedp)
expand_float (target, temp, 0);
/* Multiply by 2 to undo the shift above. */
- target = expand_binop (fmode, add_optab, target, target,
+ temp = expand_binop (fmode, add_optab, target, target,
target, 0, OPTAB_LIB_WIDEN);
+ if (temp != target)
+ emit_move_insn (target, temp);
+
do_pending_stack_adjust ();
emit_label (label);
goto done;