]> git.pld-linux.org Git - packages/crossarm-gcc.git/blob - crossarm-gcc-pr15068.patch
- R: gcc-dirs, rel++
[packages/crossarm-gcc.git] / crossarm-gcc-pr15068.patch
1 --- gcc-3.4.2/gcc/flow.c.orig   2004-02-28 04:39:19.000000000 +0100
2 +++ gcc-3.4.2/gcc/flow.c        2004-09-16 19:39:39.512234032 +0200
3 @@ -1878,19 +1878,23 @@
4           rtx set_src = SET_SRC (pc_set (BB_END (bb)));
5           rtx cond_true = XEXP (set_src, 0);
6           rtx reg = XEXP (cond_true, 0);
7 +         enum rtx_code inv_cond;
8  
9           if (GET_CODE (reg) == SUBREG)
10             reg = SUBREG_REG (reg);
11  
12           /* We can only track conditional lifetimes if the condition is
13 -            in the form of a comparison of a register against zero.  
14 -            If the condition is more complex than that, then it is safe
15 -            not to record any information.  */
16 -         if (GET_CODE (reg) == REG
17 +            in the form of a reversible comparison of a register against
18 +            zero.  If the condition is more complex than that, then it is
19 +            safe not to record any information.  */
20 +
21 +         inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
22 +         if (inv_cond != UNKNOWN
23 +             && GET_CODE (reg) == REG
24               && XEXP (cond_true, 1) == const0_rtx)
25             {
26               rtx cond_false
27 -               = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
28 +               = gen_rtx_fmt_ee (inv_cond,
29                                   GET_MODE (cond_true), XEXP (cond_true, 0),
30                                   XEXP (cond_true, 1));
31               if (GET_CODE (XEXP (set_src, 1)) == PC)
This page took 0.120864 seconds and 3 git commands to generate.