summaryrefslogtreecommitdiffstats
path: root/meta/packages/gcc/gcc-3.3.4/reverse-compare.patch
diff options
context:
space:
mode:
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.patch31
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