re PR target/54089 ([SH] Refactor shift patterns)
authorOleg Endo <olegendo@gcc.gnu.org>
Wed, 25 Jul 2012 23:03:06 +0000 (23:03 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Wed, 25 Jul 2012 23:03:06 +0000 (23:03 +0000)
commitd8a48c211e9056e8aa8d62d4bb2a2cbe32c74815
tree95d7dea89a15eeed4848095b5087afefcd61b69b
parent1acc33406fdf0d0eec647e2e5c6d02ce67a6e50d
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
case.
(p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
* config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
from expander.  Do not emit shift insn for not-SHMEDIA case.
(ashlsi3_std): Replace with ...
(ashlsi3_k, ashlsi3_d): ... these new insns.
* config/sh/sh.c (gen_ashift): Make static.  Add sanity checks.
Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
(gen_ashift_hi): Make static.
* config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
declaration.

From-SVN: r189872
gcc/ChangeLog
gcc/config/sh/predicates.md
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.c
gcc/config/sh/sh.md