Mercurial > hg > CbC > CbC_gcc
diff libquadmath/math/copysignq.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line diff
--- a/libquadmath/math/copysignq.c Thu Oct 25 07:37:49 2018 +0900 +++ b/libquadmath/math/copysignq.c Thu Feb 13 11:34:05 2020 +0900 @@ -1,4 +1,4 @@ -/* copysignq.c -- __float128 version of s_copysign.c. +/* s_copysignl.c -- long double version of s_copysign.c. * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz. */ @@ -13,14 +13,26 @@ * ==================================================== */ +#if defined(LIBM_SCCS) && !defined(lint) +static char rcsid[] = "$NetBSD: $"; +#endif + +/* + * copysignq(long double x, long double y) + * copysignq(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#define NO_MATH_REDIRECT + #include "quadmath-imp.h" -__float128 -copysignq (__float128 x, __float128 y) +__float128 copysignq(__float128 x, __float128 y) { - uint64_t hx,hy; - GET_FLT128_MSW64(hx,x); - GET_FLT128_MSW64(hy,y); - SET_FLT128_MSW64(x,(hx&0x7fffffffffffffffULL)|(hy&0x8000000000000000ULL)); - return x; + uint64_t hx,hy; + GET_FLT128_MSW64(hx,x); + GET_FLT128_MSW64(hy,y); + SET_FLT128_MSW64(x,(hx&0x7fffffffffffffffULL) + |(hy&0x8000000000000000ULL)); + return x; }