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 | ||
