re PR c++/88562 (Incorrect pointer incrementing on SH4)
authorOleg Endo <olegendo@gcc.gnu.org>
Tue, 1 Oct 2019 14:55:34 +0000 (14:55 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Tue, 1 Oct 2019 14:55:34 +0000 (14:55 +0000)
gcc/
2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>

PR target/88562
* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
sh_check_add_incdec_notes to preserve REG_INC notes when replacing
a memory access insn.

From-SVN: r276411

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

index b671ae61e4677c0508aca5f871351ea970a78e8f..bb4de20ab160caf0caf4b6031e50906dee1a6c93 100644 (file)
@@ -1,3 +1,10 @@
+2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/88562
+       * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
+       sh_check_add_incdec_notes to preserve REG_INC notes when replacing
+       a memory access insn.
+
 2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
 
        * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
index 9917f2b9d34166e66fa4deff7c03f326cc674c84..ffab94f4dbab4c6a1cceb4de3f63a5e68d7413dc 100644 (file)
@@ -12068,9 +12068,11 @@ sh_extending_set_of_reg::use_as_extended_reg (rtx_insn* use_at_insn) const
        rtx r = gen_reg_rtx (SImode);
        rtx_insn* i0;
        if (from_mode == QImode)
-         i0 = emit_insn_after (gen_extendqisi2 (r, set_src), insn);
+         i0 = sh_check_add_incdec_notes (
+                       emit_insn_after (gen_extendqisi2 (r, set_src), insn));
        else if (from_mode == HImode)
-         i0 = emit_insn_after (gen_extendhisi2 (r, set_src), insn);
+         i0 = sh_check_add_incdec_notes (
+                       emit_insn_after (gen_extendhisi2 (r, set_src), insn));
        else
          gcc_unreachable ();