From 5c5033c3c741a6700e363449c7671476d46df5ac Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 30 Nov 1994 19:07:49 -0500 Subject: [PATCH] (convert_move): When emit multiword conversion, force FROM into a new pseudo-reg if it overlaps TO. From-SVN: r8593 --- gcc/expr.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gcc/expr.c b/gcc/expr.c index 4c2ac54..f109293 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; -- 2.7.4