uwe f482b86d5d gcc4 generated extremely unoptimal code for shifts of 64-bit ints on SuperH.
Pull over a fix from gcc 4.1 branch.

ok mrg@

Author: sayle
Date: Fri Jul 21 13:22:31 2006
New Revision: 115644

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115644
Log:

        PR middle-end/28283
        * expmed.c (expand_shift): Additionally check that the shift_cost
        is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
        before implementing a LSHIFT_EXPR as a sequence of additions.
        * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
        middle-end that DImode shifts need to be synthesized by expand.


Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/config/sh/sh.c
    branches/gcc-4_1-branch/gcc/expmed.c
2006-07-24 23:36:03 +00:00
..

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.