patches/gcc/3.4.6/160-arm-ldm-peephole2.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jan 03 21:11:41 2009 +0000 (2009-01-03)
changeset 1112 c72aecd1a9ef
parent 746 b150d6f590fc
permissions -rw-r--r--
Get rid of all stuff related to building a /delivery' traball:
- building a delivery tarball has long been broken (since crostool-Ng is installable)
- get rid of implied do_print_filename, that can be mis-leading now tarballs can not be built

/trunk/scripts/build/kernel/bare-metal.sh | 4 0 4 0 ----
/trunk/scripts/build/kernel/linux.sh | 4 0 4 0 ----
/trunk/scripts/build/tools/000-template.sh | 11 0 11 0 -----------
/trunk/scripts/build/tools/100-libelf.sh | 4 0 4 0 ----
/trunk/scripts/build/tools/200-sstrip.sh | 11 1 10 0 +----------
/trunk/scripts/build/binutils.sh | 4 0 4 0 ----
/trunk/scripts/build/cc/gcc.sh | 5 0 5 0 -----
/trunk/scripts/build/debug/000-template.sh | 11 0 11 0 -----------
/trunk/scripts/build/debug/100-dmalloc.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/400-ltrace.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/300-gdb.sh | 7 0 7 0 -------
/trunk/scripts/build/debug/500-strace.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/200-duma.sh | 4 0 4 0 ----
/trunk/scripts/build/libc/none.sh | 5 0 5 0 -----
/trunk/scripts/build/libc/glibc.sh | 10 0 10 0 ----------
/trunk/scripts/build/libc/uClibc.sh | 6 0 6 0 ------
/trunk/scripts/build/libc/eglibc.sh | 10 0 10 0 ----------
/trunk/scripts/build/gmp.sh | 6 0 6 0 ------
/trunk/scripts/build/mpfr.sh | 6 0 6 0 ------
/trunk/docs/overview.txt | 9 0 9 0 ---------
20 files changed, 1 insertion(+), 128 deletions(-)
     1 diff -durN gcc-3.4.6.orig/gcc/config/arm/arm.c gcc-3.4.6/gcc/config/arm/arm.c
     2 --- gcc-3.4.6.orig/gcc/config/arm/arm.c	2007-08-15 22:57:51.000000000 +0200
     3 +++ gcc-3.4.6/gcc/config/arm/arm.c	2007-08-15 22:57:51.000000000 +0200
     4 @@ -4572,6 +4572,10 @@
     5  int
     6  adjacent_mem_locations (rtx a, rtx b)
     7  {
     8 +  /* We don't guarantee to preserve the order of these memory refs.  */
     9 +  if (volatile_refs_p (a) || volatile_refs_p (b))
    10 +    return 0;
    11 +
    12    if ((GET_CODE (XEXP (a, 0)) == REG
    13         || (GET_CODE (XEXP (a, 0)) == PLUS
    14  	   && GET_CODE (XEXP (XEXP (a, 0), 1)) == CONST_INT))
    15 @@ -4611,6 +4615,17 @@
    16  	return 0;
    17  
    18        val_diff = val1 - val0;
    19 +
    20 +      if (arm_ld_sched)
    21 +	{
    22 +	  /* If the target has load delay slots, then there's no benefit
    23 +	     to using an ldm instruction unless the offset is zero and
    24 +	     we are optimizing for size.  */
    25 +	  return (optimize_size && (REGNO (reg0) == REGNO (reg1))
    26 +		  && (val0 == 0 || val1 == 0 || val0 == 4 || val1 == 4)
    27 +		  && (val_diff == 4 || val_diff == -4));
    28 +	}
    29 +
    30        return ((REGNO (reg0) == REGNO (reg1))
    31  	      && (val_diff == 4 || val_diff == -4));
    32      }