[PR C++/83287] Mark lookup for keeping
[official-gcc.git] / libgcc / config / arc / fp-hack.h
blob58f42be6687688d5a801a9d92cc41c15b0303029
1 /* Copyright (C) 2007-2017 Free Software Foundation, Inc.
2 Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
3 on behalf of Synopsys Inc.
5 This file is part of GCC.
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.
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.
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.
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/>. */
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. */
31 #define ARC_FP_DEBUG 1
32 #define FINE_GRAINED_LIBRARIES
33 #define ARC_OPTFPE (defined (__ARC700__) || defined (__ARC_FPX_QUARK__))
35 #if !ARC_OPTFPE || ARC_FP_DEBUG
36 #define L_pack_sf
37 #define L_unpack_sf
38 #define L_make_sf
39 #define L_thenan_sf
40 #endif
41 #if !ARC_OPTFPE
42 #define L_addsub_sf
43 #define L_mul_sf
44 #define L_div_sf
45 #define L_sf_to_df
46 #define L_si_to_sf
47 #define L_sf_to_si
48 #define L_usi_to_sf
49 #elif ARC_FP_DEBUG
50 #define L_addsub_sf
51 #define __addsf3 __addsf3_c
52 #define __subsf3 __subsf3_c
53 #define L_mul_sf
54 #define __mulsf3 __mulsf3_c
55 #define L_div_sf
56 #define __divsf3 __divsf3_c
57 #define L_sf_to_df
58 #define __extendsfdf2 __extendsfdf2_c
59 #define L_si_to_sf
60 #define __floatsisf __floatsisf_c
61 #define L_sf_to_si
62 #define __fixsfsi __fixsfsi_c
63 #define L_usi_to_sf
64 #define __floatunsisf __floatunsisf_c
65 #endif
66 #if !ARC_OPTFPE
67 #define L_fpcmp_parts_sf
68 #define L_compare_sf
69 #define L_eq_sf
70 #define L_ne_sf
71 #define L_gt_sf
72 #define L_ge_sf
73 #define L_lt_sf
74 #define L_le_sf
75 #define L_unord_sf
76 #define L_negate_sf
77 #elif ARC_FP_DEBUG
78 #define L_fpcmp_parts_sf
79 #define L_eq_sf
80 #define __eqsf2 __eqsf2_c
81 #define L_gt_sf
82 #define __gtsf2 __gtsf2_c
83 #define L_ge_sf
84 #define __gesf2 __gesf2_c
85 #define L_unord_sf
86 #define __unordsf2 __unordsf2_c
87 #endif