constraints.md (U, v): New constraints.
authorSandra Loosemore <sandra@codesourcery.com>
Tue, 14 Jul 2015 23:43:48 +0000 (19:43 -0400)
committerSandra Loosemore <sandra@gcc.gnu.org>
Tue, 14 Jul 2015 23:43:48 +0000 (19:43 -0400)
commit524d2e49f2814e87875c1a5e911688027e8a3d91
treea1ebc88c554b085e5722372d81bb1fb10519908b
parentc3ff2812ae4ff647356577388e327cdf937fbf27
constraints.md (U, v): New constraints.

2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
    Cesar Philippidis  <cesar@codesourcery.com>
    Chung-Lin Tang  <cltang@codesourcery.com>

gcc/
* config/nios2/constraints.md (U, v): New constraints.
* config/nios2/predicates.md (rdprs_dcache_operand): New.
(ldstex_memory_operand): New.
* config/nios2/sync.md: New file.
* config/nios2/nios2.md (unspecv): Add new builtin function
UNSPECV codes.
(rdprs, flushd, flushda, wrpie, eni): New patterns.
(top-level): Include sync.md.
* config/nios2/nios2.c (N2_FTYPES): Add function types for
new builtins.
(N2_BUILTINS): Add arch field setting, add new builtins.
(enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
for arch field.
(nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
Also handle ldex/stex/ldsex/stsex builtins.
(nios2_expand_rdprs_builtin): New function.
(nios2_expand_cache_builtin): New function.
(nios2_expand_wrpie_builtin): New function.
(nios2_expand_eni_builtin): New function.
(nios2_expand_builtin): Add arch field handling and new builtin
        cases.
* doc/extend.texi (Altera Nios II Built-in Functions): Document
new builtins.
* doc/md.texi (Machine Constraints): Document U and v constraints.

gcc/testsuite/
* gcc.target/nios2/nios2-flushd.c: New.
* gcc.target/nios2/nios2-rdprs.c: New.
* gcc.target/nios2/r2-atomic.c: New.
* gcc.target/nios2/r2-eni.c: New.
* gcc.target/nios2/r2-wrpie.c: New.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
From-SVN: r225800
14 files changed:
gcc/ChangeLog
gcc/config/nios2/constraints.md
gcc/config/nios2/nios2.c
gcc/config/nios2/nios2.md
gcc/config/nios2/predicates.md
gcc/config/nios2/sync.md [new file with mode: 0644]
gcc/doc/extend.texi
gcc/doc/md.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/nios2/nios2-flushd.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/nios2-rdprs.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/r2-atomic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/r2-eni.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/r2-wrpie.c [new file with mode: 0644]