]> git.ipfire.org Git - thirdparty/gcc.git/blob - libgcc/config/arc/dp-hack.h
a39115c17d8dbbb9cec31202fc5e6c72e1fc149f
[thirdparty/gcc.git] / libgcc / config / arc / dp-hack.h
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 double-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 FINE_GRAINED_LIBRARIES
32 #define ARC_DP_DEBUG 1
33 #define ARC_OPTFPE (defined (__ARC700__) || defined (__ARC_FPX_QUARK__))
34
35 #if !ARC_OPTFPE || ARC_DP_DEBUG
36 #define L_pack_df
37 #define L_unpack_df
38 #define L_make_df
39 #define L_thenan_df
40 #define L_sf_to_df
41 #endif
42 #if !ARC_OPTFPE
43 #define L_addsub_df
44 #elif ARC_DP_DEBUG
45 #define L_addsub_df
46 #define __adddf3 __adddf3_c
47 #define __subdf3 __subdf3_c
48 #endif
49 #if !ARC_OPTFPE
50 #define L_mul_df
51 #define L_div_df
52 #elif (!defined (__ARC700__) && !defined (__ARC_MUL64__) \
53 && !defined (__ARC_MUL32BY16__) && !defined (__HS__))
54 #define L_mul_df
55 #define L_div_df
56 #undef QUIET_NAN
57 #define QUIET_NAN 0xfffffffffffffLL
58 #elif ARC_DP_DEBUG
59 #define L_mul_df
60 #define __muldf3 __muldf3_c
61 #define L_div_df
62 #define __divdf3 __divdf3_c
63 #endif
64 #if !ARC_OPTFPE
65 #define L_df_to_sf
66 #define L_si_to_df
67 #define L_df_to_si
68 #define L_tf_to_usi /* need to defined this instead of df_to_usi */
69 #define L_usi_to_df
70 #elif ARC_DP_DEBUG
71 #define L_df_to_sf
72 #define __truncdfsf2 __truncdfsf2_c
73 #define L_si_to_df
74 #define __floatsidf __floatsidf_c
75 #define L_df_to_si
76 #define __fixdfsi __fixdfsi_c
77 #define L_tf_to_usi
78 #define __fixunsdfsi __fixunsdfsi_c
79 #define L_usi_to_df
80 #define __floatunsidf __floatunsidf_c
81 #endif
82 #if !ARC_OPTFPE
83 #define L_fpcmp_parts_df
84 #define L_compare_df
85 #define L_eq_df
86 #define L_ne_df
87 #define L_gt_df
88 #define L_ge_df
89 #define L_lt_df
90 #define L_le_df
91 #define L_unord_df
92 #define L_negate_df
93 #elif ARC_DP_DEBUG
94 #define L_fpcmp_parts_df
95 #define L_eq_df
96 #define __eqdf2 __eqdf2_c
97 #define L_gt_df
98 #define __gtdf2 __gtdf2_c
99 #define L_ge_df
100 #define __gedf2 __gedf2_c
101 #define L_unord_df
102 #define __unorddf2 __unorddf2_c
103 #endif