summaryrefslogtreecommitdiff
path: root/libquadmath/math/copysignq.c
diff options
context:
space:
mode:
Diffstat (limited to 'libquadmath/math/copysignq.c')
-rw-r--r--libquadmath/math/copysignq.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/libquadmath/math/copysignq.c b/libquadmath/math/copysignq.c
index 054de2d2eb3..935264286eb 100644
--- a/libquadmath/math/copysignq.c
+++ b/libquadmath/math/copysignq.c
@@ -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;
}