re PR target/66930 (gengtype.c is miscompiled during stage2)
authorOleg Endo <olegendo@gcc.gnu.org>
Sat, 25 Jul 2015 14:07:17 +0000 (14:07 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Sat, 25 Jul 2015 14:07:17 +0000 (14:07 +0000)
gcc/
PR target/66930
* config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
T bit register modified_between_p check.

From-SVN: r226218

gcc/ChangeLog
gcc/config/sh/sh.c

index 3178e2b6517320fcd01c8a107fb69527de12f776..37b0ded42be8c063f1034cead2363daefa1acc99 100644 (file)
@@ -1,3 +1,9 @@
+2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/66930
+       * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
+       T bit register modified_between_p check.
+
 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c: Use SUBREG_P predicate.
index fe4cf4d64b8ba48aadfc6961a9de63d66ac56d9b..f4291936fb1f3261fa5609cd54f106254b355023 100644 (file)
@@ -13888,6 +13888,7 @@ sh_split_movrt_negc_to_movt_xor (rtx_insn* curr_insn, rtx operands[])
       && !sh_insn_operands_modified_between_p (t_before_negc.insn,
                                               t_before_negc.insn,
                                               t_after_negc.insn)
+      && !modified_between_p (get_t_reg_rtx (), curr_insn, t_after_negc.insn)
       && !sh_unspec_insn_p (t_after_negc.insn)
       && !volatile_insn_p (PATTERN (t_after_negc.insn))
       && !side_effects_p (PATTERN (t_after_negc.insn))