# Copyright (C) 2014-2021 Free Software Foundation, Inc.

# This file is part of GCC.

# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.

# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.

# Use hardfp.c for SFmode (except __unordsf2), soft-fp for DFmode.
# For SFmode, libgcc2.c functions are used where applicable; for
# DFmode, they are excluded.
hardfp_float_modes := sf
hardfp_int_modes := si
hardfp_extensions :=
hardfp_truncations :=
hardfp_exclusions := unordsf2
softfp_float_modes := df
softfp_int_modes := si di
softfp_extensions := sfdf
softfp_truncations := dfsf
softfp_exclude_libgcc2 := n
softfp_extras := unordsf2
