re PR target/54089 ([SH] Refactor shift patterns)
authorOleg Endo <olegendo@gcc.gnu.org>
Thu, 9 Aug 2012 23:27:51 +0000 (23:27 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Thu, 9 Aug 2012 23:27:51 +0000 (23:27 +0000)
commit70d4736c9af4dd94e932aee07f4e27e675350331
treea03a6d2ae30fcbeeb358b351b3eb28289129916d
parent9ab48d6e6ca06afe12664be30bb30043a9572604
re PR target/54089 ([SH] Refactor shift patterns)

PR target/54089
* config/sh/sh-protos (shift_insns_rtx): Delete.
(sh_ashlsi_clobbers_t_reg_p): Add.
* config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
ext_shift_amounts): Merge arrays of ints to array of structs.
Adapt usage of arrays throughout the file.
(shift_insns_rtx): Delete unused function.
(sh_ashlsi_clobbers_t_reg_p): New function.
* config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
final shift sequence will clobber T_REG.
(ashlsi3_n): Split only if the final shift sequence will not
clobber T_REG.
(ashlsi3_n_clobbers_t): New insn_and_split.

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