From 41babf2e0dfabe8afe45da1c0bf099af468be048 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 15 Sep 1999 04:05:38 +0000 Subject: 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 --- gcc/cse.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/cse.c') 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 \ -- cgit v1.1