* config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
authorPaul Brook <paul@codesourcery.com>
Mon, 26 Apr 2004 10:32:53 +0000 (10:32 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Mon, 26 Apr 2004 10:32:53 +0000 (10:32 +0000)
From-SVN: r81180

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

index 6cb1567b24d27867980f4b4f7e1eaf2a63699eb2..454d85b00a9558cabaa1ff5f79508785342eb77a 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 1c2f2b2b4949fdd89f6eae4146fb3d1eb5e83691..059164355349337df5b957e00101b2cfeb77974d 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;