(root)/
gcc-13.2.0/
libgcc/
config/
arc/
fp-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 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