From: Richard Kenner Date: Thu, 1 Dec 1994 00:07:49 +0000 (-0500) Subject: (convert_move): When emit multiword conversion, force FROM into a new X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5c5033c3c741a6700e363449c7671476d46df5ac;p=gcc.git (convert_move): When emit multiword conversion, force FROM into a new pseudo-reg if it overlaps TO. From-SVN: r8593 --- diff --git a/gcc/expr.c b/gcc/expr.c index 4c2ac5470d7..f109293e62f 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -916,6 +916,12 @@ convert_move (to, from, unsignedp) /* No special multiword conversion insn; do it by hand. */ start_sequence (); + /* Since we will turn this into a no conflict block, we must ensure + that the source does not overlap the target. */ + + if (reg_overlap_mentioned_p (to, from)) + from = force_reg (from_mode, from); + /* Get a copy of FROM widened to a word, if necessary. */ if (GET_MODE_BITSIZE (from_mode) < BITS_PER_WORD) lowpart_mode = word_mode;