diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-09-15 04:05:38 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-09-14 22:05:38 -0600 |
commit | 41babf2e0dfabe8afe45da1c0bf099af468be048 (patch) | |
tree | 835598c0c1eda63d2e0542de695f740b7bf06f29 /gcc | |
parent | 5c9f708d435e591914611fc0d10e1f74cf09dede (diff) | |
download | gcc-41babf2e0dfabe8afe45da1c0bf099af468be048.zip gcc-41babf2e0dfabe8afe45da1c0bf099af468be048.tar.gz gcc-41babf2e0dfabe8afe45da1c0bf099af468be048.tar.bz2 |
cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to arg_pointer_rtx fixed if...
* cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
arg_pointer_rtx fixed if the argument pointer register is
not fixed.
(NONZERO_BASE_PLUS_P): Likewise.
From-SVN: r29425
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cse.c | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index abb1094..d710b09 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to + arg_pointer_rtx fixed if the argument pointer register is + not fixed. + (NONZERO_BASE_PLUS_P): Likewise. + Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com> * rtl.def (match_insn, match_insn2): Remove match_insn; rename @@ -596,13 +596,14 @@ struct cse_basic_block_data { #define FIXED_BASE_PLUS_P(X) \ ((X) == frame_pointer_rtx || (X) == hard_frame_pointer_rtx \ - || (X) == arg_pointer_rtx \ + || ((X) == arg_pointer_rtx && fixed_regs[ARG_POINTER_REGNUM])\ || (X) == virtual_stack_vars_rtx \ || (X) == virtual_incoming_args_rtx \ || (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 1)) == CONST_INT \ && (XEXP (X, 0) == frame_pointer_rtx \ || XEXP (X, 0) == hard_frame_pointer_rtx \ - || XEXP (X, 0) == arg_pointer_rtx \ + || ((X) == arg_pointer_rtx \ + && fixed_regs[ARG_POINTER_REGNUM]) \ || XEXP (X, 0) == virtual_stack_vars_rtx \ || XEXP (X, 0) == virtual_incoming_args_rtx)) \ || GET_CODE (X) == ADDRESSOF) @@ -620,7 +621,8 @@ struct cse_basic_block_data { || (GET_CODE (X) == PLUS && GET_CODE (XEXP (X, 1)) == CONST_INT \ && (XEXP (X, 0) == frame_pointer_rtx \ || XEXP (X, 0) == hard_frame_pointer_rtx \ - || XEXP (X, 0) == arg_pointer_rtx \ + || ((X) == arg_pointer_rtx \ + && fixed_regs[ARG_POINTER_REGNUM]) \ || XEXP (X, 0) == virtual_stack_vars_rtx \ || XEXP (X, 0) == virtual_incoming_args_rtx)) \ || (X) == stack_pointer_rtx \ |