diff options
author | Stafford Horne <shorne@gmail.com> | 2019-07-21 21:01:59 +0000 |
---|---|---|
committer | Stafford Horne <shorne@gcc.gnu.org> | 2019-07-21 21:01:59 +0000 |
commit | 44080af98edf7d8a59a94dd803f60cf0505fba34 (patch) | |
tree | 4ad7a9f769f0596da8bb827b2b3e4b2e11c71002 /libiberty/simple-object-elf.c | |
parent | 1e2e81c1a36a51f4660d30a0278366a8a0727a9d (diff) | |
download | gcc-44080af98edf7d8a59a94dd803f60cf0505fba34.zip gcc-44080af98edf7d8a59a94dd803f60cf0505fba34.tar.gz gcc-44080af98edf7d8a59a94dd803f60cf0505fba34.tar.bz2 |
or1k: Initial support for FPU
This adds support for OpenRISC hardware floating point instructions.
This is enabled with the -mhard-float option.
Double-prevision floating point operations work using register pairing as
specified in: https://openrisc.io/proposals/orfpx64a32. This has just been
added in the OpenRISC architecture specification 1.3.
This is enabled with the -mdouble-float option.
Not all architectures support unordered comparisons so an option,
-munordered-float is added.
Currently OpenRISC does not support sf/df or df/sf conversions, but this has
also just been added in architecture specification 1.3.
gcc/ChangeLog:
* config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
and munordered-float validations.
* config/or1k/constraints.md (d): New register constraint.
* config/or1k/predicates.md (fp_comparison_operator): New.
* config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
operands.
(or1k_expand_compare): Normalize unordered comparisons.
* config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
(REG_CLASS_NAMES): Add "DOUBLE_REGS".
(REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
* config/or1k/or1k.md (type): Add fpu.
(fpu): New instruction reservation.
(F, f, fr, fi, FI, FOP, fop): New.
(<fop><F:mode>3): New ALU instruction definition.
(float<fi><F:mode>2): New conversion instruction definition.
(fix_trunc<F:mode><fi>2): New conversion instruction definition.
(fpcmpcc): New code iterator.
(*sf_fp_insn): New instruction definition.
(cstore<F:mode>4): New expand definition.
(cbranch<F:mode>4): New expand definition.
* config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
munordered-float): New options.
* doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
munordered-float.
From-SVN: r273650
Diffstat (limited to 'libiberty/simple-object-elf.c')
0 files changed, 0 insertions, 0 deletions