summaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-17 00:58:06 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-17 00:58:06 +0000
commitf31ff3d86dc340df82b45a53d56637e6e11cb3e8 (patch)
tree653d54d6cce1237b0ddb2eab1bc74bc7a583bdfe /gcc/reload.c
parent055b8fb31dea819315c7178eabcc42b1b98e4498 (diff)
downloadgcc-f31ff3d86dc340df82b45a53d56637e6e11cb3e8.tar.gz
* 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
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c2
1 files changed, 2 insertions, 0 deletions
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));