aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2006-04-23 17:39:54 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2006-04-23 17:39:54 +0000
commita02ee5b2cf851df60c65a3152100b588ff06cb78 (patch)
tree06c0ee947082869b8a934b580fa64ce2f7bb4374 /gcc
parentc21242e8e034676c367a0c6e6d47cf3ba53eb942 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/config/fr30/fr30.md12
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"