diff options
-rwxr-xr-x | gcc/cse.c | 4 | ||||
-rwxr-xr-x | gcc/emit-rtl.c | 6 | ||||
-rwxr-xr-x | gcc/function.c | 12 | ||||
-rwxr-xr-x | gcc/integrate.c | 16 | ||||
-rwxr-xr-x | gcc/rtlanal.c | 2 |
5 files changed, 3 insertions, 37 deletions
@@ -4694,10 +4694,8 @@ simplify_relational_operation (code, mode, op0, op1) be zero, but a SYMBOL_REF can due to #pragma weak. */ if (((NONZERO_BASE_PLUS_P (op0) && op1 == const0_rtx) || GET_CODE (op0) == LABEL_REF) -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM /* On some machines, the ap reg can be 0 sometimes. */ && op0 != arg_pointer_rtx -#endif ) return const0_rtx; break; @@ -4705,9 +4703,7 @@ simplify_relational_operation (code, mode, op0, op1) case NE: if (((NONZERO_BASE_PLUS_P (op0) && op1 == const0_rtx) || GET_CODE (op0) == LABEL_REF) -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM && op0 != arg_pointer_rtx -#endif ) return const_true_rtx; break; diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 33badc7..37c8a5b 100755 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -678,9 +678,7 @@ gen_lowpart_common (mode, x) /* We want to keep the stack, frame, and arg pointers special. */ && x != frame_pointer_rtx -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM && x != arg_pointer_rtx -#endif && x != stack_pointer_rtx) return gen_rtx_REG (mode, REGNO (x) + word); else @@ -987,9 +985,7 @@ gen_highpart (mode, x) || ! rtx_equal_function_value_matters) /* We want to keep the stack, frame, and arg pointers special. */ && x != frame_pointer_rtx -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM && x != arg_pointer_rtx -#endif && x != stack_pointer_rtx) return gen_rtx_REG (mode, REGNO (x) + word); else @@ -1078,9 +1074,7 @@ operand_subword (op, i, validate_address, mode) /* We want to keep the stack, frame, and arg pointers special. */ || op == frame_pointer_rtx -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM || op == arg_pointer_rtx -#endif || op == stack_pointer_rtx) return gen_rtx_SUBREG (word_mode, op, i); else diff --git a/gcc/function.c b/gcc/function.c index f3dfb2e..553bbe7 100755 --- a/gcc/function.c +++ b/gcc/function.c @@ -89,9 +89,7 @@ Boston, MA 02111-1307, USA. */ FIRST_PARM_OFFSET - STARTING_FRAME_OFFSET is not a constant during rtl generation. See fix_lexical_addr for details. */ -#if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM #define NEED_SEPARATE_AP -#endif /* Number of bytes of args popped by function being compiled on its return. Zero if no bytes are to be popped. @@ -3794,16 +3792,12 @@ assign_parms (fndecl, second_time) current_function_stdarg = stdarg; /* If the reg that the virtual arg pointer will be translated into is - not a fixed reg or is the stack pointer, make a copy of the virtual - arg pointer, and address parms via the copy. The frame pointer is - considered fixed even though it is not marked as such. + not a fixed reg, make a copy of the virtual arg pointer, and address parms + via the copy. The second time through, simply use ap to avoid generating rtx. */ - if ((ARG_POINTER_REGNUM == STACK_POINTER_REGNUM - || ! (fixed_regs[ARG_POINTER_REGNUM] - || ARG_POINTER_REGNUM == FRAME_POINTER_REGNUM)) - && ! second_time) + if (!fixed_regs[ARG_POINTER_REGNUM] && !second_time) internal_arg_pointer = copy_to_reg (virtual_incoming_args_rtx); else internal_arg_pointer = virtual_incoming_args_rtx; diff --git a/gcc/integrate.c b/gcc/integrate.c index 484bf8c..dba5e64 100755 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1218,22 +1218,6 @@ copy_for_inline (orig) } break; -#if 0 /* This is a good idea, but here is the wrong place for it. */ - /* Arrange that CONST_INTs always appear as the second operand - if they appear, and that `frame_pointer_rtx' or `arg_pointer_rtx' - always appear as the first. */ - case PLUS: - if (GET_CODE (XEXP (x, 0)) == CONST_INT - || (XEXP (x, 1) == frame_pointer_rtx - || (ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM - && XEXP (x, 1) == arg_pointer_rtx))) - { - rtx t = XEXP (x, 0); - XEXP (x, 0) = XEXP (x, 1); - XEXP (x, 1) = t; - } - break; -#endif default: break; } diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index b064ed7..d520365 100755 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -816,9 +816,7 @@ refers_to_regno_p (regno, endregno, x, loc) clobber a virtual register. In fact, we could be more precise, but it isn't worth it. */ if ((i == STACK_POINTER_REGNUM -#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM || i == ARG_POINTER_REGNUM -#endif || i == FRAME_POINTER_REGNUM) && regno >= FIRST_VIRTUAL_REGISTER && regno <= LAST_VIRTUAL_REGISTER) return 1; |