[NDS32] Add hard float support.
commite22862689667e739d308140d72e8cc85ed116a2f
authorMonk Chiang <sh.chiang04@gmail.com>
Fri, 6 Apr 2018 05:51:33 +0000 (6 05:51 +0000)
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>
Fri, 6 Apr 2018 05:51:33 +0000 (6 05:51 +0000)
treed2c7d8e25a700eade32158174a160be46dcc37c4
parent58e297628fe95a905d73878915df4e004612369d
[NDS32] Add hard float support.

gcc/
* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
(nds32*-*-*): Add float and fpu_config into supported_defaults.
* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
* config/nds32/constraints.md: New constraints and checking for hard
float configuration.
* config/nds32/iterators.md: New mode iterator and attribute for hard
float configuration.
* config/nds32/nds32-doubleword.md: Use hard float alternatives and
patterns.
* config/nds32/nds32-fpu.md: New file.
* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
deal with hard float code generation.
* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
ARCH_V3S.
(abi_type, float_reg_number): New enum type.
* config/nds32/nds32-predicates.c: New predicates for hard float.
* config/nds32/nds32-protos.h: Declare functions for hard float.
* config/nds32/nds32.c: Implementation for hard float configuration.
* config/nds32/nds32.h: Definitions for hard float configuration.
* config/nds32/nds32.md: Include hard float machine description and
modify patterns for hard float configuration.
* config/nds32/nds32.opt: New options for hard float configuration.
* config/nds32/predicates.md: New predicates for hard float
configuration.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r259161
17 files changed:
gcc/ChangeLog
gcc/common/config/nds32/nds32-common.c
gcc/config.gcc
gcc/config/nds32/constants.md
gcc/config/nds32/constraints.md
gcc/config/nds32/iterators.md
gcc/config/nds32/nds32-doubleword.md
gcc/config/nds32/nds32-fpu.md [new file with mode: 0644]
gcc/config/nds32/nds32-md-auxiliary.c
gcc/config/nds32/nds32-opts.h
gcc/config/nds32/nds32-predicates.c
gcc/config/nds32/nds32-protos.h
gcc/config/nds32/nds32.c
gcc/config/nds32/nds32.h
gcc/config/nds32/nds32.md
gcc/config/nds32/nds32.opt
gcc/config/nds32/predicates.md