aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/pr63740.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/gcc/pr63740.patch')
-rw-r--r--main/gcc/pr63740.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/main/gcc/pr63740.patch b/main/gcc/pr63740.patch
new file mode 100644
index 0000000000..234d468731
--- /dev/null
+++ b/main/gcc/pr63740.patch
@@ -0,0 +1,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;
+