aboutsummaryrefslogtreecommitdiff
path: root/gcc/config.gcc
diff options
context:
space:
mode:
authorMonk Chiang <sh.chiang04@gmail.com>2018-05-13 05:41:37 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2018-05-13 05:41:37 +0000
commit7c32ef413a661d53de9a90d29b5253bf98e6af82 (patch)
tree118e0d1bd13dc5dd978e2397987235b3e96477d5 /gcc/config.gcc
parentab22e6ce3fbb53d663961e6f40ac12ebde7a421f (diff)
downloadgcc-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.gcc5
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}"