diff options
| author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-17 00:58:06 +0000 |
|---|---|---|
| committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-17 00:58:06 +0000 |
| commit | f31ff3d86dc340df82b45a53d56637e6e11cb3e8 (patch) | |
| tree | 653d54d6cce1237b0ddb2eab1bc74bc7a583bdfe | |
| parent | 055b8fb31dea819315c7178eabcc42b1b98e4498 (diff) | |
| download | ppe42-gcc-f31ff3d86dc340df82b45a53d56637e6e11cb3e8.tar.gz ppe42-gcc-f31ff3d86dc340df82b45a53d56637e6e11cb3e8.zip | |
* reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
mems.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109792 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/reload.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc7f0018efb..e8eeccb5c0d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-01-16 DJ Delorie <dj@redhat.com> + + * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of + mems. + 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> * pa.md: Disparage copies between general and floating-point registers @@ -31,7 +36,7 @@ * basic-block.h: Remove the prototype for partition_hot_cold_basic_blocks. -2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> +2006-01-16 Rafael Ávila de EspÁndola <rafael.espindola@gmail.com> * cppspec.c (lang_specific_spec_functions): remove * gcc.c (lookup_spec_function): use static_spec_functions directelly diff --git a/gcc/reload.c b/gcc/reload.c index 2b61a8eded3..92ad0855812 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6329,6 +6329,8 @@ reg_overlap_mentioned_for_reload_p (rtx x, rtx in) /* If either argument is a constant, then modifying X can not affect IN. */ if (CONSTANT_P (x) || CONSTANT_P (in)) return 0; + else if (GET_CODE (x) == SUBREG && GET_CODE (SUBREG_REG (x)) == MEM) + return refers_to_mem_for_reload_p (in); else if (GET_CODE (x) == SUBREG) { regno = REGNO (SUBREG_REG (x)); |

