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/cse.c | |
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/cse.c')
-rw-r--r-- | gcc/cse.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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 \ |