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]

[ob] Fix an RTL sharing bug in the ARM backend


This patch fixes several ICEs when running the testsuite with -mthumb
and -funroll-loops.

I read through the insv pattern several times looking for other
potential sharing problems.  I didn't spot any, but I don't have total
confidence in that either; I don't think this pattern was expecting to
be called after expansion.  But it is (via emit_move_insn for a
complex mode).

Tested on arm-none-eabi, committed as obvious.

-- 
Daniel Jacobowitz
CodeSourcery

2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.md (insv): Do not share operands[0].

Index: config/arm/arm.md
===================================================================
--- config/arm/arm.md	(revision 145603)
+++ config/arm/arm.md	(working copy)
@@ -2280,7 +2280,7 @@
 	  }
       }
 
-    target = operands[0];
+    target = copy_rtx (operands[0]);
     /* Avoid using a subreg as a subtarget, and avoid writing a paradoxical 
        subreg as the final target.  */
     if (GET_CODE (target) == SUBREG)


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