[toolchain/gcc/4.3.5]: additional avr32 fixes
[openwrt.git] / toolchain / gcc / patches / 4.3.5 / 948-avr32_fix_reorg_opt_bug11763.patch
diff --git a/toolchain/gcc/patches/4.3.5/948-avr32_fix_reorg_opt_bug11763.patch b/toolchain/gcc/patches/4.3.5/948-avr32_fix_reorg_opt_bug11763.patch
new file mode 100644 (file)
index 0000000..6616640
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/gcc/config/avr32/avr32.c
++++ b/gcc/config/avr32/avr32.c
+@@ -6501,12 +6501,23 @@ avr32_reorg_optimization (void)
+                         continue;
+                     set = single_set (scan);
+-                    if (set && rtx_equal_p (src_reg, SET_DEST (set)))
+-                      {
+-                        link = scan;
+-                        break;
+-                      }
+-
++                      // Fix for bug #11763 : the following if condition
++                      // has been modified and else part is included to 
++                      // set the link to NULL_RTX. 
++                      // if (set && rtx_equal_p (src_reg, SET_DEST (set)))
++                      if (set && (REGNO(src_reg) == REGNO(SET_DEST(set))))
++                       {
++                         if (rtx_equal_p (src_reg, SET_DEST (set)))
++                        {
++                          link = scan;
++                          break;
++                          }
++                         else
++                          {
++                            link = NULL_RTX;
++                            break;
++                          }
++                       }
+                     }
This page took 0.024411 seconds and 4 git commands to generate.