* config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Apr 2004 10:32:53 +0000 (10:32 +0000)
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Apr 2004 10:32:53 +0000 (10:32 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81180 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.c

index 6cb1567..454d85b 100644 (file)
@@ -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
index 1c2f2b2..0591643 100644 (file)
@@ -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;