re PR c++/88562 (Incorrect pointer incrementing on SH4)

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
This commit is contained in:
Oleg Endo 2019-10-01 14:55:34 +00:00
parent 2a2592a10c
commit 04bf300e86
2 changed files with 11 additions and 2 deletions

View 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

View 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 ();