reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and auto_inc_dec values.

* reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
auto_inc_dec values.

From-SVN: r49118
This commit is contained in:
Alexandre Oliva 2002-01-23 01:56:22 +00:00 committed by Alexandre Oliva
parent 7458a9f030
commit 38979c6587
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2002-01-22 Alexandre Oliva <aoliva@redhat.com>
* reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
auto_inc_dec values.
2002-01-22 Richard Earnshaw <rearnsha@arm.com>
* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space

View File

@ -6166,7 +6166,8 @@ reg_overlap_mentioned_for_reload_p (x, in)
int regno, endregno;
/* Overly conservative. */
if (GET_CODE (x) == STRICT_LOW_PART)
if (GET_CODE (x) == STRICT_LOW_PART
|| GET_RTX_CLASS (GET_CODE (x)) == 'a')
x = XEXP (x, 0);
/* If either argument is a constant, then modifying X can not affect IN. */
@ -6202,6 +6203,9 @@ reg_overlap_mentioned_for_reload_p (x, in)
else if (GET_CODE (x) == SCRATCH || GET_CODE (x) == PC
|| GET_CODE (x) == CC0)
return reg_mentioned_p (x, in);
else if (GET_CODE (x) == PLUS)
return (reg_overlap_mentioned_for_reload_p (XEXP (x, 0), in)
|| reg_overlap_mentioned_for_reload_p (XEXP (x, 1), in));
else
abort ();