diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-01-23 01:56:22 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2002-01-23 01:56:22 +0000 |
commit | 38979c658769ad5aa7f3605ce5d85a3852f866d0 (patch) | |
tree | a6bf893361c14758351c587804127e90c8a54eba /gcc/reload.c | |
parent | 7458a9f0307e5f2e074209baeb59e60112d86004 (diff) | |
download | gcc-38979c658769ad5aa7f3605ce5d85a3852f866d0.zip gcc-38979c658769ad5aa7f3605ce5d85a3852f866d0.tar.gz gcc-38979c658769ad5aa7f3605ce5d85a3852f866d0.tar.bz2 |
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
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 8f82c93..9b8cdc9 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 (); |