(root)/
gcc-13.2.0/
libgcc/
config/
arc/
dp-hack.h
       1  /* Copyright (C) 2007-2023 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