re PR middle-end/28283 (SuperH: Very unoptimal code generated for 64-bit ints)
authorRoger Sayle <roger@eyesopen.com>
Wed, 19 Jul 2006 05:13:56 +0000 (05:13 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Wed, 19 Jul 2006 05:13:56 +0000 (05:13 +0000)
commitcb2eb96f4d81b3ce61fd0070b59bfaf568c04f31
tree3487eac9da851d55f914f10ff317d63bd8311b83
parentf604fc3b2ea1d6738af942668d16ddd5cd2663a8
re PR middle-end/28283 (SuperH: Very unoptimal code generated for 64-bit ints)

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.

From-SVN: r115578
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/expmed.c