aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-09-15 04:05:38 +0000
committerJeff Law <law@gcc.gnu.org>1999-09-14 22:05:38 -0600
commit41babf2e0dfabe8afe45da1c0bf099af468be048 (patch)
tree835598c0c1eda63d2e0542de695f740b7bf06f29 /gcc/cse.c
parent5c9f708d435e591914611fc0d10e1f74cf09dede (diff)
downloadgcc-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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 75952b0..4da61f8 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -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 \