OSDN Git Service

* doc/invoke.texi: Document -mbitops for SH.
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Apr 2008 23:36:19 +0000 (23:36 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Apr 2008 23:36:19 +0000 (23:36 +0000)
commit96a7f21610a0f1a5c8aa4f7eaf9578c1ce07e47f
tree3cdfd635d78201d5b94a867241c320785815e499
parent86aaa146796868bbe55617869a156d5910978a88
* doc/invoke.texi: Document -mbitops for SH.
* config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
* config/sh/predicates.md (bitwise_memory_operand): New predicate.
* config/sh/sh.c (print_operand): Add %t operand code.
* config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
* config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
(extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
(extendqihi2): Likewise.
(movqi_i): Likewise.
(insv): Use bset, bclr and bst instructions for SH2A if possible.
(extv): Use bld instruction for SH2A if possible.
(extzv): Likewise.
(bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
(bset.b, bclr.b): Define peepholes.
* config/sh/sh.opt (mbitops): New option.

* gcc.target/sh/sh2a-band.c: New test.
* gcc.target/sh/sh2a-bclrmem.c: New test.
* gcc.target/sh/sh2a-bld.c: New test.
* gcc.target/sh/sh2a-bor.c: New test.
* gcc.target/sh/sh2a-bsetmem.c: New test.
* gcc.target/sh/sh2a-bxor.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133919 138bc75d-0d04-0410-961f-82ee72b054a4
15 files changed:
gcc/ChangeLog
gcc/config/sh/constraints.md
gcc/config/sh/predicates.md
gcc/config/sh/sh.c
gcc/config/sh/sh.h
gcc/config/sh/sh.md
gcc/config/sh/sh.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sh/sh2a-band.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-bclrmem.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-bld.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-bor.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-bsetmem.c [new file with mode: 0644]
gcc/testsuite/gcc.target/sh/sh2a-bxor.c [new file with mode: 0644]