diff options
Diffstat (limited to 'main/gcc/pr63740.patch')
-rw-r--r-- | main/gcc/pr63740.patch | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/main/gcc/pr63740.patch b/main/gcc/pr63740.patch new file mode 100644 index 000000000..234d46873 --- /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; + |