From: Alexandre Oliva Date: Wed, 23 Jan 2002 01:56:22 +0000 (+0000) Subject: reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and auto_inc_dec values. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=38979c658769ad5aa7f3605ce5d85a3852f866d0;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77cd5d9ca21..4974da5bd5c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-01-22 Alexandre Oliva + + * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and + auto_inc_dec values. + 2002-01-22 Richard Earnshaw * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space diff --git a/gcc/reload.c b/gcc/reload.c index 8f82c9341f5..9b8cdc95020 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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 ();