diff options
Diffstat (limited to 'recipes/gcc/gcc-3.3.4/reverse-compare.patch')
-rw-r--r-- | recipes/gcc/gcc-3.3.4/reverse-compare.patch | 31 |
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 |