summaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-10 22:46:30 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-10 22:46:30 +0000
commit98a10a19536991a18713462708eb343ba42ba21e (patch)
treee565440e445a2b624e7df76c5d77b13c01cb46fd /gcc/optabs.c
parent6b2540089e8c3ea5912f6d55cba903b0c63688b6 (diff)
downloadgcc-98a10a19536991a18713462708eb343ba42ba21e.tar.gz
(expand_float): Copy TEMP to TARGET when making recursive call and
adjusting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 5c9c28b27a1..09f7773171b 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;