1 /* Copyright (C) 2007-2021 Free Software Foundation, Inc.
2    Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
3 		on behalf of Synopsys Inc.
4 
5 This file is part of GCC.
6 
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 3, or (at your option) any later
10 version.
11 
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16 
17 Under Section 7 of GPL version 3, you are granted additional
18 permissions described in the GCC Runtime Library Exception, version
19 3.1, as published by the Free Software Foundation.
20 
21 You should have received a copy of the GNU General Public License and
22 a copy of the GCC Runtime Library Exception along with this program;
23 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24 <http://www.gnu.org/licenses/>.  */
25 
26 /* This file selects the single-precision parts of fp-bit.c that are
27    still needed for some ARC hardware variants; it also renames functions
28    that duplicate asm-coded functionality so that their results can be
29    used to compare with the optimized versions for debugging.  */
30 
31 #define ARC_FP_DEBUG 1
32 #define FINE_GRAINED_LIBRARIES
33 
34 #if defined (__ARC700__) || defined (__ARC_FPX_QUARK__)
35 #define ARC_OPTFPE 1
36 #endif
37 
38 #if !ARC_OPTFPE || ARC_FP_DEBUG
39 #define L_pack_sf
40 #define L_unpack_sf
41 #define L_make_sf
42 #define L_thenan_sf
43 #endif
44 #if !ARC_OPTFPE
45 #define L_addsub_sf
46 #define L_mul_sf
47 #define L_div_sf
48 #define L_sf_to_df
49 #define L_si_to_sf
50 #define L_sf_to_si
51 #define L_usi_to_sf
52 #elif ARC_FP_DEBUG
53 #define L_addsub_sf
54 #define __addsf3 __addsf3_c
55 #define __subsf3 __subsf3_c
56 #define L_mul_sf
57 #define __mulsf3 __mulsf3_c
58 #define L_div_sf
59 #define __divsf3 __divsf3_c
60 #define L_sf_to_df
61 #define __extendsfdf2 __extendsfdf2_c
62 #define L_si_to_sf
63 #define __floatsisf __floatsisf_c
64 #define L_sf_to_si
65 #define __fixsfsi __fixsfsi_c
66 #define L_usi_to_sf
67 #define __floatunsisf __floatunsisf_c
68 #endif
69 #if !ARC_OPTFPE
70 #define L_fpcmp_parts_sf
71 #define L_compare_sf
72 #define L_eq_sf
73 #define L_ne_sf
74 #define L_gt_sf
75 #define L_ge_sf
76 #define L_lt_sf
77 #define L_le_sf
78 #define L_unord_sf
79 #define L_negate_sf
80 #elif ARC_FP_DEBUG
81 #define L_fpcmp_parts_sf
82 #define L_eq_sf
83 #define __eqsf2 __eqsf2_c
84 #define L_gt_sf
85 #define __gtsf2 __gtsf2_c
86 #define L_ge_sf
87 #define __gesf2 __gesf2_c
88 #define L_unord_sf
89 #define __unordsf2 __unordsf2_c
90 #endif
91