summaryrefslogtreecommitdiff
path: root/recipes/gcc/gcc-3.3.4/reverse-compare.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gcc/gcc-3.3.4/reverse-compare.patch')
-rw-r--r--recipes/gcc/gcc-3.3.4/reverse-compare.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-3.3.4/reverse-compare.patch b/recipes/gcc/gcc-3.3.4/reverse-compare.patch
new file mode 100644
index 0000000000..7b6c1b6425
--- /dev/null
+++ b/recipes/gcc/gcc-3.3.4/reverse-compare.patch
@@ -0,0 +1,31 @@
+--- gcc-3.3.3/gcc/flow.c~ 2003-07-30 01:57:24.000000000 +0100
++++ gcc-3.3.3/gcc/flow.c 2004-04-23 19:23:43.000000000 +0100
+@@ -1904,6 +1904,7 @@
+ regset diff = INITIALIZE_REG_SET (diff_head);
+ basic_block bb_true, bb_false;
+ rtx cond_true, cond_false, set_src;
++ enum rtx_code reversed_code;
+ int i;
+
+ /* Identify the successor blocks. */
+@@ -1934,7 +1935,11 @@
+ /* Extract the condition from the branch. */
+ set_src = SET_SRC (pc_set (bb->end));
+ cond_true = XEXP (set_src, 0);
+- cond_false = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
++ reversed_code = reverse_condition (GET_CODE (cond_true));
++ if (reversed_code == UNKNOWN)
++ goto skip;
++
++ cond_false = gen_rtx_fmt_ee (reversed_code,
+ GET_MODE (cond_true), XEXP (cond_true, 0),
+ XEXP (cond_true, 1));
+ if (GET_CODE (XEXP (set_src, 1)) == PC)
+@@ -1980,6 +1985,7 @@
+ });
+ }
+
++ skip:
+ FREE_REG_SET (diff);
+ }
+ #endif