diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-06-18 07:12:49 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-06-18 07:12:49 -0400 |
commit | abb522465e90d57c54a95a0e52a59fab06712675 (patch) | |
tree | dd87980d871a9576736917be3f7098586a27c1a0 /gcc/function.c | |
parent | 2dd4caced362cb09f8efa27f1bc99c74cfe452b1 (diff) | |
download | gcc-abb522465e90d57c54a95a0e52a59fab06712675.zip gcc-abb522465e90d57c54a95a0e52a59fab06712675.tar.gz gcc-abb522465e90d57c54a95a0e52a59fab06712675.tar.bz2 |
(find_temp_slot_from_address): Check for overlap from BASE_OFFSET if X
is PLUS of virtual_stack_vars_rtx and const.
From-SVN: r12296
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c index 27a01c1..009e23e 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1035,7 +1035,12 @@ find_temp_slot_from_address (x) if (! p->in_use) continue; else if (XEXP (p->slot, 0) == x - || p->address == x) + || p->address == x + || (GET_CODE (x) == PLUS + && XEXP (x, 0) == virtual_stack_vars_rtx + && GET_CODE (XEXP (x, 1)) == CONST_INT + && INTVAL (XEXP (x, 1)) >= p->base_offset + && INTVAL (XEXP (x, 1)) < p->base_offset + p->full_size)) return p; else if (p->address != 0 && GET_CODE (p->address) == EXPR_LIST) |