]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
authorOleg Endo <olegendo@gcc.gnu.org>
Thu, 9 Aug 2012 15:55:18 +0000 (15:55 +0000)
committerOleg Endo <olegendo@gcc.gnu.org>
Thu, 9 Aug 2012 15:55:18 +0000 (15:55 +0000)
commit78ff60c1ad15e72b056fe888a0b0d509c5e563a9
tree30cb676505d2f7b7820589b606a4a69283685567
parent284c32cfd8c0626f0a3db910aef583f75067a9c5
re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)

PR target/51244
* config/sh/sh.md: Add negc extu sequence peephole.
(movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
(*movrt_negc): New insn.
* config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
gen_movnegt.
* config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
sh_emit_compare_and_branch, sh_emit_compare_and_set): Use get_t_reg_rtx.
(sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.

PR target/51244
* gcc.target/sh/pr51244-5: New.
* gcc.target/sh/pr51244-6: New.

From-SVN: r190258
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/config/sh/sync.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/pr51244-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/pr51244-6.c [new file with mode: 0644]