]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/7153 (bad operands for 'movsbl' error)
authorEric Botcazou <ebotcazou@multimania.com>
Tue, 16 Jul 2002 05:43:37 +0000 (05:43 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 16 Jul 2002 05:43:37 +0000 (22:43 -0700)
        PR optimization/7153
        * regmove.c (optimize_reg_copy_3): Don't optimize if the register
        dies in more than one insn.

From-SVN: r55473

gcc/ChangeLog
gcc/regmove.c

index c17493d255b9880f342638a3b00f64708551b37c..4aa0fc7bfe0171313c7bd122e14caff915a79572 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
+
+       PR optimization/7153
+       * regmove.c (optimize_reg_copy_3): Don't optimize if the register
+       dies in more than one insn.
+
 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
index 59b1005137ae895d4d90631231e3b7d757409fb1..048cfb60ba22f4c624f836e571b0e0fe0dbdd09f 100644 (file)
@@ -664,6 +664,7 @@ optimize_reg_copy_3 (insn, dest, src)
   if (src_no < FIRST_PSEUDO_REGISTER
       || dst_no < FIRST_PSEUDO_REGISTER
       || ! find_reg_note (insn, REG_DEAD, src_reg)
+      || REG_N_DEATHS (src_no) != 1
       || REG_N_SETS (src_no) != 1)
     return;
   for (p = PREV_INSN (insn); p && ! reg_set_p (src_reg, p); p = PREV_INSN (p))