summaryrefslogtreecommitdiffstats
path: root/main/gcc/pr63740.patch
blob: 234d4687314a8c1311302ad4461d410612056249 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;