gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Sep 2008 08:13:09 +0000 (08:13 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Sep 2008 08:13:09 +0000 (08:13 +0000)
commitf5ec18cc5caf6a5925178329366811fd398e928c
tree69d3ad291660fd69dde909d9ee0d72a37de78ec4
parent2236fd042bc8ec18f4add6ab6a916a0135a0fcda
gcc/
2008-xx-xx  Richard Sandiford  <rdsandiford@goolemail.com>
    Peter Fuerst  <post@pfrst.de>

* doc/invoke.texi: Document -mr10k-cache-barrier=.
* doc/extend.texi: Document __builtin_mips_cache.
* config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
* config/mips/mips.opt (mr10k-cache-barrier=): New option.
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
__GCC_HAVE_BUILTIN_MIPS_CACHE.
(TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
* config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
(set_push_mips_isas): New variable.
(mips_r10k_cache_barrier): New variable.
(cache): New availability predicate.
(mips_builtins): Add an entry for __builtin_mips_cache.
(mips_build_cvpointer_type): New function.
(MIPS_ATYPE_CVPOINTER): New macro.
(mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
mode is VOIDmode.
(r10k_simplified_address_p, r10k_simplify_address)
(r10k_uncached_address_p, r10k_safe_address_p)
(r10k_needs_protection_p_1, r10k_needs_protection_p_store)
(r10k_needs_protection_p_call, r10k_needs_protection_p)
(r10k_insert_cache_barriers): New functions.
(mips_reorg_process_insns): Delete cache barriers after a
branch-likely instruction.
(mips_reorg): Call r10k_insert_cache_barriers.
(mips_handle_option): Handle OPT_mr10k_cache_barrier_.
* config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
(UNSPEC_R10K_CACHE_BARRIER): Likewise.
(mips_cache, r10k_cache_barrier): New define_insns.

gcc/testsuite/
* gcc.target/mips/mips.exp (dg-mips-options): Make
-mr10k-cache-barrier=* imply -mips3 or above.
* gcc.target/mips/cache-1.c: New test.
* gcc.target/mips/r10k-cache-barrier-1.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-2.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-3.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-4.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-5.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-6.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-7.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-8.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-9.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-10.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-11.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-12.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-13.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
* gcc.target/mips/r10k-cache-barrier-15.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140055 138bc75d-0d04-0410-961f-82ee72b054a4
26 files changed:
gcc/ChangeLog
gcc/config/mips/mips-ftypes.def
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/config/mips/mips.opt
gcc/doc/extend.texi
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/cache-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/mips.exp
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-13.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-14.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-15.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c [new file with mode: 0644]