[ob] Fix an RTL sharing bug in the ARM backend
Daniel Jacobowitz
drow@false.org
Thu Apr 23 15:18:00 GMT 2009
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)
More information about the Gcc-patches
mailing list