2004-03-12 Philip Blundell <philb@gnu.org>
PR target/10730
Backport from trunk:
2003-05-15 Philip Blundell <philb@gnu.org>
* config/arm/arm.c (adjacent_mem_locations): Reject offsets
involving invalid constants.
From-SVN: r79405
+2004-03-12 Philip Blundell <philb@gnu.org>
+
+ PR target/10730
+ Backport from trunk:
+ 2003-05-15 Philip Blundell <philb@gnu.org>
+ * config/arm/arm.c (adjacent_mem_locations): Reject offsets
+ involving invalid constants.
+
2004-03-12 Philip Blundell <philb@gnu.org>
PR target/14558
else
reg1 = REGNO (XEXP (b, 0));
+ /* Don't accept any offset that will require multiple instructions to handle,
+ since this would cause the arith_adjacentmem pattern to output an overlong
+ sequence. */
+ if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
+ return 0;
+
return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
}
return 0;