mips.md (size): Add SI and DI.
authorAndrew Pinski <apinski@cavium.com>
Wed, 4 Jan 2012 18:40:21 +0000 (18:40 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Wed, 4 Jan 2012 18:40:21 +0000 (10:40 -0800)
commit770da00a177e84aafd6a35877aedc4ff97677948
tree1e83a84dd840a340fd426cea3e908c98d25ff6bd
parent6f2f17ff2a75f244b18d01b213fc590a0048ad63
mips.md (size): Add SI and DI.

2012-01-04  Andrew Pinski  <apinski@cavium.com>
    Adam Nemet  <anemet@caviumnetworks.com>

* config/mips/mips.md (size): Add SI and DI.
(SIZE): New mode attribute.
(U): New code attribute.
* config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
(mips_lbux_<mode>): Delete.
(mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
(mips_lhx): Use gen_mips_lhx_extsi.
(mips_lhx_<mode>): Delete.
(mips_lwx): Delete.
(mips_l<size>x): New expand.
(mips_lwx_<mode>): Delete.
(mips_l<GPR:size>x_<P:mode>): New pattern.
(*mips_lw<u>x_<P:mode>_ext): Likewise.
* config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
* config/mips/mips.c (mips_lx_address_p): New function.
(mips_rtx_costs <case MEM>): Call mips_lx_address_p.
(dsp64): New availability predicate.
(mips_builtins): Add an entry for __builtin_mips_ldx.
* config/mips/mips.h (ISA_HAS_LBX): New define.
(ISA_HAS_LBUX): Likewise.
(ISA_HAS_LHX): Likewise.
(ISA_HAS_LHUX): Likewise.
(ISA_HAS_LWX): Likewise.
(ISA_HAS_LWUX): Likewise.
(ISA_HAS_LDX): Likewise.
* doc/extend.texi (__builtin_mips_ldx): Document.

2012-01-04  Andrew Pinski  <apinski@cavium.com>

* gcc.target/mips/mips64-dsp-ldx1.c: New test.
* gcc.target/mips/octeon2-lx-1.c: New test.
* gcc.target/mips/mips64-dsp-ldx.c: New test.
* gcc.target/mips/octeon2-lx-2.c: New test.
* gcc.target/mips/octeon2-lx-3.c: New test.

Co-Authored-By: Adam Nemet <anemet@caviumnetworks.com>
From-SVN: r182884
13 files changed:
gcc/ChangeLog
gcc/config/mips/mips-dsp.md
gcc/config/mips/mips-ftypes.def
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/mips64-dsp-ldx.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/mips64-dsp-ldx1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/octeon2-lx-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/octeon2-lx-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/octeon2-lx-3.c [new file with mode: 0644]