diff options
Diffstat (limited to 'meta/packages/gcc/gcc-3.3.4/reverse-compare.patch')
-rw-r--r-- | meta/packages/gcc/gcc-3.3.4/reverse-compare.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-3.3.4/reverse-compare.patch b/meta/packages/gcc/gcc-3.3.4/reverse-compare.patch new file mode 100644 index 0000000000..7b6c1b6425 --- /dev/null +++ b/meta/packages/gcc/gcc-3.3.4/reverse-compare.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | --- gcc-3.3.3/gcc/flow.c~ 2003-07-30 01:57:24.000000000 +0100 | ||
2 | +++ gcc-3.3.3/gcc/flow.c 2004-04-23 19:23:43.000000000 +0100 | ||
3 | @@ -1904,6 +1904,7 @@ | ||
4 | regset diff = INITIALIZE_REG_SET (diff_head); | ||
5 | basic_block bb_true, bb_false; | ||
6 | rtx cond_true, cond_false, set_src; | ||
7 | + enum rtx_code reversed_code; | ||
8 | int i; | ||
9 | |||
10 | /* Identify the successor blocks. */ | ||
11 | @@ -1934,7 +1935,11 @@ | ||
12 | /* Extract the condition from the branch. */ | ||
13 | set_src = SET_SRC (pc_set (bb->end)); | ||
14 | cond_true = XEXP (set_src, 0); | ||
15 | - cond_false = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)), | ||
16 | + reversed_code = reverse_condition (GET_CODE (cond_true)); | ||
17 | + if (reversed_code == UNKNOWN) | ||
18 | + goto skip; | ||
19 | + | ||
20 | + cond_false = gen_rtx_fmt_ee (reversed_code, | ||
21 | GET_MODE (cond_true), XEXP (cond_true, 0), | ||
22 | XEXP (cond_true, 1)); | ||
23 | if (GET_CODE (XEXP (set_src, 1)) == PC) | ||
24 | @@ -1980,6 +1985,7 @@ | ||
25 | }); | ||
26 | } | ||
27 | |||
28 | + skip: | ||
29 | FREE_REG_SET (diff); | ||
30 | } | ||
31 | #endif | ||