diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-18 13:52:46 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-18 13:52:46 +0000 |
commit | e7ffa1e68699c0bf8a68b11e0f6e44526e46eb4f (patch) | |
tree | 40162bebea953063b468308fa9475a3a6732b079 /gcc/calls.c | |
parent | 27546795d9934e40dbc7888739786485ba03f287 (diff) | |
download | gcc-e7ffa1e68699c0bf8a68b11e0f6e44526e46eb4f.tar.gz |
* calls.c (mem_overlaps_already_clobbered_arg_p): Return true
for arg pointer based indexed addressing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122095 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index d84eb51aa36..e65a2cc79c9 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1481,10 +1481,14 @@ mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size) if (addr == current_function_internal_arg_pointer) i = 0; else if (GET_CODE (addr) == PLUS - && (XEXP (addr, 0) - == current_function_internal_arg_pointer) + && XEXP (addr, 0) == current_function_internal_arg_pointer && GET_CODE (XEXP (addr, 1)) == CONST_INT) i = INTVAL (XEXP (addr, 1)); + /* Return true for arg pointer based indexed addressing. */ + else if (GET_CODE (addr) == PLUS + && (XEXP (addr, 0) == current_function_internal_arg_pointer + || XEXP (addr, 1) == current_function_internal_arg_pointer)) + return true; else return false; |