This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 3.3.4 status, and some questions


> arm-10730.dpatch:
> 2003-05-15  Philip Blundell  <philb@gnu.org>

I checked this in to the branch.

p.


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.
 
Index: config/arm/arm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
retrieving revision 1.243.2.5
diff -u -r1.243.2.5 arm.c
--- config/arm/arm.c	14 Jun 2003 14:20:53 -0000	1.243.2.5
+++ config/arm/arm.c	12 Mar 2004 20:02:00 -0000
@@ -3778,6 +3778,12 @@
       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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]