aboutsummaryrefslogtreecommitdiffstats
path: root/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch')
-rw-r--r--packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch
index e69de29bb2..c3c40dd183 100644
--- a/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch
+++ b/packages/gcc-csl/gcc-csl-2004-q1a/gcc34-reverse-compare.patch
@@ -0,0 +1,32 @@
+--- gcc-3.4.0/gcc/flow.c.reverse-compare 2004-02-27 22:39:19.000000000 -0500
++++ gcc-3.4.0/gcc/flow.c 2004-04-24 16:36:00.000000000 -0400
+@@ -1843,6 +1843,7 @@
+ regset_head diff_head;
+ regset diff = INITIALIZE_REG_SET (diff_head);
+ basic_block bb_true, bb_false;
++ enum rtx_code reversed_code;
+ int i;
+
+ /* Identify the successor blocks. */
+@@ -1889,8 +1890,11 @@
+ if (GET_CODE (reg) == REG
+ && XEXP (cond_true, 1) == const0_rtx)
+ {
+- rtx cond_false
+- = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
++ rtx cond_false;
++ 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)
+@@ -1925,6 +1929,7 @@
+ }
+ }
+
++ skip:
+ FREE_REG_SET (diff);
+ }
+ #endif