diff options
author | Monk Chiang <sh.chiang04@gmail.com> | 2018-05-13 05:41:37 +0000 |
---|---|---|
committer | Chung-Ju Wu <jasonwucj@gcc.gnu.org> | 2018-05-13 05:41:37 +0000 |
commit | 7c32ef413a661d53de9a90d29b5253bf98e6af82 (patch) | |
tree | 118e0d1bd13dc5dd978e2397987235b3e96477d5 /gcc/config.gcc | |
parent | ab22e6ce3fbb53d663961e6f40ac12ebde7a421f (diff) | |
download | gcc-7c32ef413a661d53de9a90d29b5253bf98e6af82.zip gcc-7c32ef413a661d53de9a90d29b5253bf98e6af82.tar.gz gcc-7c32ef413a661d53de9a90d29b5253bf98e6af82.tar.bz2 |
[NDS32] Add DSP extension instructions.
gcc/
* config.gcc (nds32be-*-*): Handle --with-ext-dsp.
* config/nds32/constants.md (unspec_element, unspec_volatile_element):
Add enum values for DSP extension instructions.
* config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi):
New constraints.
* config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus,
sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max):
New code iterators.
(su, zs, uk, opcode, add_rsub, add_sub): New code attributes.
* config/nds32/nds32-dspext.md: New file for DSP implementation.
* config/nds32/nds32-intrinsic.c: Implementation of DSP extension.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32_intrinsic.h: Likewise.
* config/nds32/nds32-md-auxiliary.c: Likewise.
* config/nds32/nds32-memory-manipulation.c: Consider DSP extension.
* config/nds32/nds32-predicates.c (const_vector_to_hwint): New.
(nds32_valid_CVp5_p, nds32_valid_CVs5_p): New.
(nds32_valid_CVs2_p, nds32_valid_CVhi_p): New.
* config/nds32/nds32-protos.h: New declarations for DSP extension.
* config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case
TYPE_DMAC in switch statement.
* config/nds32/nds32.c: New checking and implementation for DSP
extension instructions.
* config/nds32/nds32.h: Likewise.
* config/nds32/nds32.md: Likewise.
* config/nds32/nds32.opt (mhw-abs, mext-dsp): New options.
* config/nds32/predicates.md: Implement new predicates for DSP
extension.
Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
From-SVN: r260206
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 9c4a849..fec118c 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2346,6 +2346,11 @@ nds32be-*-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/nds32_intrinsic.h" tmake_file="nds32/t-nds32 nds32/t-mlibs" + + # Handle --with-ext-dsp + if test x${with_ext_dsp} = xyes; then + tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1" + fi ;; nios2-*-*) tm_file="elfos.h ${tm_file}" |