33 lines
982 B
Diff
33 lines
982 B
Diff
--- 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
|