r260206 - in /trunk/gcc: ChangeLog config.gcc c...

jasonwucj@gcc.gnu.org jasonwucj@gcc.gnu.org
Sun May 13 05:41:00 GMT 2018


Author: jasonwucj
Date: Sun May 13 05:41:37 2018
New Revision: 260206

URL: https://gcc.gnu.org/viewcvs?rev=260206&root=gcc&view=rev
Log:
[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.

Added:
    trunk/gcc/config/nds32/nds32-dspext.md
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config.gcc
    trunk/gcc/config/nds32/constants.md
    trunk/gcc/config/nds32/constraints.md
    trunk/gcc/config/nds32/iterators.md
    trunk/gcc/config/nds32/nds32-intrinsic.c
    trunk/gcc/config/nds32/nds32-intrinsic.md
    trunk/gcc/config/nds32/nds32-md-auxiliary.c
    trunk/gcc/config/nds32/nds32-memory-manipulation.c
    trunk/gcc/config/nds32/nds32-predicates.c
    trunk/gcc/config/nds32/nds32-protos.h
    trunk/gcc/config/nds32/nds32-utils.c
    trunk/gcc/config/nds32/nds32.c
    trunk/gcc/config/nds32/nds32.h
    trunk/gcc/config/nds32/nds32.md
    trunk/gcc/config/nds32/nds32.opt
    trunk/gcc/config/nds32/nds32_intrinsic.h
    trunk/gcc/config/nds32/predicates.md



More information about the Gcc-cvs mailing list