diff options
author | Roger Sayle <roger@eyesopen.com> | 2006-04-23 17:39:54 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2006-04-23 17:39:54 +0000 |
commit | a02ee5b2cf851df60c65a3152100b588ff06cb78 (patch) | |
tree | 06c0ee947082869b8a934b580fa64ce2f7bb4374 /gcc | |
parent | c21242e8e034676c367a0c6e6d47cf3ba53eb942 (diff) | |
download | gcc-a02ee5b2cf851df60c65a3152100b588ff06cb78.zip gcc-a02ee5b2cf851df60c65a3152100b588ff06cb78.tar.gz gcc-a02ee5b2cf851df60c65a3152100b588ff06cb78.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/fr30/fr30.md | 12 |
2 files changed, 13 insertions, 6 deletions
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 <roger@eyesopen.com> + * 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 <roger@eyesopen.com> + 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" |