1 /* Copyright (C) 2007-2019 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 104