cprop.c (do_local_cprop): Disallow replacement of fixed hard registers.

* cprop.c (do_local_cprop): Disallow replacement of fixed
	hard registers.

From-SVN: r219786
This commit is contained in:
Alan Modra 2015-01-17 11:11:52 +10:30 committed by Alan Modra
parent 3ecec1eff7
commit 25d1a5a74d
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-01-17 Alan Modra <amodra@gmail.com>
* cprop.c (do_local_cprop): Disallow replacement of fixed
hard registers.
2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/62066

View File

@ -1189,10 +1189,12 @@ do_local_cprop (rtx x, rtx_insn *insn)
rtx newreg = NULL, newcnst = NULL;
/* Rule out USE instructions and ASM statements as we don't want to
change the hard registers mentioned. */
change the hard registers mentioned, and don't change fixed hard
registers. */
if (REG_P (x)
&& (REGNO (x) >= FIRST_PSEUDO_REGISTER
|| (GET_CODE (PATTERN (insn)) != USE
&& !fixed_regs[REGNO (x)]
&& asm_noperands (PATTERN (insn)) < 0)))
{
cselib_val *val = cselib_lookup (x, GET_MODE (x), 0, VOIDmode);