(root)/
glibc-2.38/
sysdeps/
powerpc/
powerpc64/
le/
fpu/
multiarch/
float128_private.h
       1  /* _Float128 overrides for float128 in ppc64le multiarch env.
       2     Copyright (C) 2020-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef _FLOAT128_PRIVATE_PPC64LE
      20  #define _FLOAT128_PRIVATE_PPC64LE 1
      21  
      22  #ifndef _F128_ENABLE_IFUNC
      23  /* multiarch is not supported.  Do nothing and pass through.  */
      24  #include_next <float128_private.h>
      25  #else
      26  
      27  /* Include fenv.h now before turning off libm_hidden_proto.
      28     At minimum, fereaiseexcept is needed. */
      29  #include <fenv.h>
      30  
      31  /* The PLT bypass trick used by libm_hidden_proto uses asm-renames.
      32     If gcc detects a second rename to a different function, it will
      33     emit errors.  */
      34  #undef libm_hidden_proto
      35  #define libm_hidden_proto(f)
      36  
      37  /* Always disable redirects.  We supply these uniquely later on.  */
      38  #undef NO_MATH_REDIRECT
      39  #define NO_MATH_REDIRECT
      40  #include <math.h>
      41  #undef NO_MATH_REDIRECT
      42  
      43  #include_next <float128_private.h>
      44  
      45  #include <float128-ifunc-macros.h>
      46  
      47  /* Declare these now.  These prototypes are not included
      48     in any header.  */
      49  extern __typeof (cosf128) __ieee754_cosf128;
      50  extern __typeof (asinhf128) __ieee754_asinhf128;
      51  
      52  F128_REDIR (__ieee754_asinhf128)
      53  F128_REDIR (__ieee754_cosf128)
      54  F128_REDIR (__asinhf128)
      55  F128_REDIR (__atanf128)
      56  F128_REDIR (__cbrtf128)
      57  F128_REDIR (__ceilf128)
      58  F128_REDIR (__cosf128)
      59  F128_REDIR (__erfcf128)
      60  F128_REDIR (__erff128)
      61  F128_REDIR (__expf128)
      62  F128_REDIR (__expm1f128)
      63  F128_REDIR (__fabsf128)
      64  F128_REDIR (__fdimf128)
      65  F128_REDIR (__floorf128)
      66  F128_REDIR (__fmaf128)
      67  F128_REDIR (__fmaxf128)
      68  F128_REDIR (__fminf128)
      69  F128_REDIR (__frexpf128)
      70  F128_REDIR (__ldexpf128)
      71  F128_REDIR (__llrintf128)
      72  F128_REDIR (__llroundf128)
      73  F128_REDIR (__log1pf128)
      74  F128_REDIR (__logbf128)
      75  F128_REDIR (__logf128)
      76  F128_REDIR (__lrintf128)
      77  F128_REDIR (__lroundf128)
      78  F128_REDIR (__modff128)
      79  F128_REDIR (__nearbyintf128)
      80  F128_REDIR (__remquof128)
      81  F128_REDIR (__rintf128)
      82  F128_REDIR (__roundevenf128)
      83  F128_REDIR (__roundf128)
      84  F128_REDIR (__scalblnf128)
      85  F128_REDIR (__scalbnf128)
      86  F128_REDIR (__sincosf128)
      87  F128_REDIR (__sinf128)
      88  F128_REDIR (__sqrtf128)
      89  F128_REDIR (__tanhf128)
      90  F128_REDIR (__tanf128)
      91  F128_REDIR (__truncf128)
      92  F128_REDIR (__lgamma_productf128)
      93  
      94  #include <float128-ifunc-redirects-mp.h>
      95  #include <float128-ifunc-redirects.h>
      96  
      97  #endif /* _F128_ENABLE_IFUNC */
      98  
      99  #endif /* _FLOAT128_PRIVATE_PPC64LE */