patches/gcc/3.4.6/180-pr15068-fix.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 31 23:24:40 2010 +0200 (2010-08-31)
changeset 2107 f5ab0a80e466
parent 339 bd5e0a849352
permissions -rw-r--r--
binutils/binutils: remove faulty patch

The added code should be conditinal to the target system
being !MIPS, but is based on the host system being !MIPS.

This is plain wrong, and had not been noticed until now
as I never used those binutils versions on MIPS.

See:
http://sourceware.org/ml/crossgcc/2010-08/msg00192.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 diff -durN gcc-3.4.6.orig/gcc/flow.c gcc-3.4.6/gcc/flow.c
     2 --- gcc-3.4.6.orig/gcc/flow.c	2005-09-01 22:51:09.000000000 +0200
     3 +++ gcc-3.4.6/gcc/flow.c	2007-08-15 23:00:30.000000000 +0200
     4 @@ -1884,6 +1884,7 @@
     5  	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
     6  	  rtx cond_true = XEXP (set_src, 0);
     7  	  rtx reg = XEXP (cond_true, 0);
     8 + 	  enum rtx_code inv_cond;
     9  
    10  	  if (GET_CODE (reg) == SUBREG)
    11  	    reg = SUBREG_REG (reg);
    12 @@ -1892,11 +1893,13 @@
    13  	     in the form of a comparison of a register against zero.  
    14  	     If the condition is more complex than that, then it is safe
    15  	     not to record any information.  */
    16 -	  if (GET_CODE (reg) == REG
    17 + 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
    18 + 	  if (inv_cond != UNKNOWN
    19 +	      && GET_CODE (reg) == REG
    20  	      && XEXP (cond_true, 1) == const0_rtx)
    21  	    {
    22  	      rtx cond_false
    23 -		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
    24 +		= gen_rtx_fmt_ee (inv_cond,
    25  				  GET_MODE (cond_true), XEXP (cond_true, 0),
    26  				  XEXP (cond_true, 1));
    27  	      if (GET_CODE (XEXP (set_src, 1)) == PC)