pmaports/main/gcc4/pr63740.patch

18 lines
679 B
Diff
Raw Normal View History

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63740
--- trunk/gcc/lra-lives.c 2014/06/16 09:25:26 211700
+++ trunk/gcc/lra-lives.c 2014/06/16 09:58:34 211701
@@ -558,7 +558,11 @@
/* It might be 'inheritance pseudo <- reload pseudo'. */
|| (src_regno >= lra_constraint_new_regno_start
&& ((int) REGNO (SET_DEST (set))
- >= lra_constraint_new_regno_start))))
+ >= lra_constraint_new_regno_start)
+ /* Remember to skip special cases where src/dest regnos are
+ the same, e.g. insn SET pattern has matching constraints
+ like =r,0. */
+ && src_regno != (int) REGNO (SET_DEST (set)))))
{
int hard_regno = -1, regno = -1;