diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2007-02-18 13:52:46 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2007-02-18 13:52:46 +0000 |
commit | ae22dcff000225c1a70176c60ce531b076dc5828 (patch) | |
tree | 40162bebea953063b468308fa9475a3a6732b079 /gcc/calls.c | |
parent | 0028647ea7acc9af2e27bd246faac9bb073c94e5 (diff) | |
download | gcc-ae22dcff000225c1a70176c60ce531b076dc5828.zip gcc-ae22dcff000225c1a70176c60ce531b076dc5828.tar.gz gcc-ae22dcff000225c1a70176c60ce531b076dc5828.tar.bz2 |
calls.c (mem_overlaps_already_clobbered_arg_p): Return true for arg pointer based indexed addressing.
* calls.c (mem_overlaps_already_clobbered_arg_p): Return true
for arg pointer based indexed addressing.
From-SVN: r122095
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 d84eb51..e65a2cc 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; |