1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/gcc/3.4.6/180-pr15068-fix.patch Wed Aug 19 19:44:44 2009 +0200
1.3 @@ -0,0 +1,27 @@
1.4 +diff -durN gcc-3.4.6.orig/gcc/flow.c gcc-3.4.6/gcc/flow.c
1.5 +--- gcc-3.4.6.orig/gcc/flow.c 2005-09-01 22:51:09.000000000 +0200
1.6 ++++ gcc-3.4.6/gcc/flow.c 2007-08-15 23:00:30.000000000 +0200
1.7 +@@ -1884,6 +1884,7 @@
1.8 + rtx set_src = SET_SRC (pc_set (BB_END (bb)));
1.9 + rtx cond_true = XEXP (set_src, 0);
1.10 + rtx reg = XEXP (cond_true, 0);
1.11 ++ enum rtx_code inv_cond;
1.12 +
1.13 + if (GET_CODE (reg) == SUBREG)
1.14 + reg = SUBREG_REG (reg);
1.15 +@@ -1892,11 +1893,13 @@
1.16 + in the form of a comparison of a register against zero.
1.17 + If the condition is more complex than that, then it is safe
1.18 + not to record any information. */
1.19 +- if (GET_CODE (reg) == REG
1.20 ++ inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
1.21 ++ if (inv_cond != UNKNOWN
1.22 ++ && GET_CODE (reg) == REG
1.23 + && XEXP (cond_true, 1) == const0_rtx)
1.24 + {
1.25 + rtx cond_false
1.26 +- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
1.27 ++ = gen_rtx_fmt_ee (inv_cond,
1.28 + GET_MODE (cond_true), XEXP (cond_true, 0),
1.29 + XEXP (cond_true, 1));
1.30 + if (GET_CODE (XEXP (set_src, 1)) == PC)