aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-04-26 10:32:53 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-04-26 10:32:53 +0000
commit778ebdd91d49f5203e1c0321672b02aa22ce694a (patch)
tree3534f72acbfb253e499d368ebfdf56950dc5de74
parent874e7baa4ce28aedab159353f0c40846a7b771e5 (diff)
downloadgcc-778ebdd91d49f5203e1c0321672b02aa22ce694a.zip
gcc-778ebdd91d49f5203e1c0321672b02aa22ce694a.tar.gz
gcc-778ebdd91d49f5203e1c0321672b02aa22ce694a.tar.bz2
* config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
From-SVN: r81180
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/arm.c12
2 files changed, 9 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6cb1567..454d85b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2004-04-26 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
+
2004-04-25 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 1c2f2b2..0591643 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -3089,17 +3089,15 @@ arm_legitimate_index_p (enum machine_mode mode, rtx index, RTX_CODE outer,
HOST_WIDE_INT range;
enum rtx_code code = GET_CODE (index);
- if (TARGET_HARD_FLOAT && TARGET_FPA && GET_MODE_CLASS (mode) == MODE_FLOAT)
+ /* Standard coprocessor addressing modes. */
+ if (TARGET_HARD_FLOAT
+ && (TARGET_FPA || TARGET_MAVERICK)
+ && (GET_MODE_CLASS (mode) == MODE_FLOAT
+ || (TARGET_MAVERICK && mode == DImode)))
return (code == CONST_INT && INTVAL (index) < 1024
&& INTVAL (index) > -1024
&& (INTVAL (index) & 3) == 0);
- if (TARGET_HARD_FLOAT && TARGET_MAVERICK
- && (GET_MODE_CLASS (mode) == MODE_FLOAT || mode == DImode))
- return (code == CONST_INT
- && INTVAL (index) < 255
- && INTVAL (index) > -255);
-
if (arm_address_register_rtx_p (index, strict_p)
&& GET_MODE_SIZE (mode) <= 4)
return 1;