Subject: CVS commit: src/gnu/dist/gcc4/gcc
To: None <source-changes@NetBSD.org>
From: Valeriy E. Ushakov <uwe@netbsd.org>
List: source-changes
Date: 07/24/2006 23:36:03
Module Name:	src
Committed By:	uwe
Date:		Mon Jul 24 23:36:03 UTC 2006

Modified Files:
	src/gnu/dist/gcc4/gcc: ChangeLog expmed.c
	src/gnu/dist/gcc4/gcc/config/sh: sh.c

Log Message:
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


To generate a diff of this commit:
cvs rdiff -r1.1.1.3 -r1.2 src/gnu/dist/gcc4/gcc/ChangeLog \
    src/gnu/dist/gcc4/gcc/expmed.c
cvs rdiff -r1.1.1.1 -r1.2 src/gnu/dist/gcc4/gcc/config/sh/sh.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.