From a02ee5b2cf851df60c65a3152100b588ff06cb78 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Sun, 23 Apr 2006 17:39:54 +0000 Subject: fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to identify potentially eliminable registers to... * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to identify potentially eliminable registers to additionally catch VIRTUAL_INCOMING_ARGS_REGNUM. (addsi3): Update the conditions on when to use addsi_small_int. From-SVN: r113197 --- gcc/ChangeLog | 7 +++++++ gcc/config/fr30/fr30.md | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f93061d..91293c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2006-04-23 Roger Sayle + * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to + identify potentially eliminable registers to additionally catch + VIRTUAL_INCOMING_ARGS_REGNUM. + (addsi3): Update the conditions on when to use addsi_small_int. + +2006-04-23 Roger Sayle + PR target/16641 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md index 734b374..0398ecc 100644 --- a/gcc/config/fr30/fr30.md +++ b/gcc/config/fr30/fr30.md @@ -654,10 +654,10 @@ emit_insn (gen_addsi_regs (operands[0], operands[1], operands[2])); else if (GET_CODE (operands[2]) != CONST_INT) emit_insn (gen_addsi_big_int (operands[0], operands[1], operands[2])); - else if ( (REGNO (operands[1]) != FRAME_POINTER_REGNUM) - && (REGNO (operands[1]) != ARG_POINTER_REGNUM) - && (INTVAL (operands[2]) >= -16) - && (INTVAL (operands[2]) <= 15)) + else if (INTVAL (operands[2]) >= -16 + && INTVAL (operands[2]) <= 15 + && (!REGNO_PTR_FRAME_P (REGNO (operands[1])) + || REGNO (operands[1]) == STACK_POINTER_REGNUM)) emit_insn (gen_addsi_small_int (operands[0], operands[1], operands[2])); else emit_insn (gen_addsi_big_int (operands[0], operands[1], operands[2])); @@ -680,8 +680,8 @@ [(set (match_operand:SI 0 "register_operand" "=r,r") (plus:SI (match_operand:SI 1 "register_operand" "0,0") (match_operand:SI 2 "add_immediate_operand" "I,J")))] - " (REGNO (operands[1]) != FRAME_POINTER_REGNUM) - && (REGNO (operands[1]) != ARG_POINTER_REGNUM)" + "! REGNO_PTR_FRAME_P (REGNO (operands[1])) + || REGNO (operands[1]) == STACK_POINTER_REGNUM" "@ addn %2, %0 addn2 %2, %0" -- cgit v1.1