Module Name:    src
Committed By:   msaitoh
Date:           Mon May 25 09:05:26 UTC 2015

Modified Files:
        src/lib/libm/arch/vax [netbsd-7]: n_support.S
        src/lib/libm/src [netbsd-7]: namespace.h s_copysign.c s_copysignl.c
        src/sys/arch/powerpc/include [netbsd-7]: ieee.h math.h

Log Message:
Pull up following revision(s) (requested by joerg in ticket #790):
        sys/arch/powerpc/include/math.h: revision 1.5
        lib/libm/src/namespace.h: revision 1.13
        lib/libm/arch/vax/n_support.S: revision 1.10
        lib/libm/src/s_copysignl.c: revision 1.3
        lib/libm/src/s_copysignl.c: revision 1.4
        lib/libm/src/s_copysignl.c: revision 1.5
        sys/arch/powerpc/include/ieee.h: revision 1.6
        lib/libm/src/s_copysign.c: revision 1.12
        lib/libm/src/s_copysign.c: revision 1.13
- Support copysignl on PowerPC.
- Define copysignl on !long double platforms. Be consistent in the use of
  weak aliases.
- copysignl is also needed for PowerPC's double-double format, so special
  case that. Functional support was added earlier, but not enabled.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.9.4.1 src/lib/libm/arch/vax/n_support.S
cvs rdiff -u -r1.11 -r1.11.2.1 src/lib/libm/src/namespace.h
cvs rdiff -u -r1.11 -r1.11.74.1 src/lib/libm/src/s_copysign.c
cvs rdiff -u -r1.2 -r1.2.24.1 src/lib/libm/src/s_copysignl.c
cvs rdiff -u -r1.5 -r1.5.140.1 src/sys/arch/powerpc/include/ieee.h
cvs rdiff -u -r1.4 -r1.4.184.1 src/sys/arch/powerpc/include/math.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libm/arch/vax/n_support.S
diff -u src/lib/libm/arch/vax/n_support.S:1.9 src/lib/libm/arch/vax/n_support.S:1.9.4.1
--- src/lib/libm/arch/vax/n_support.S:1.9	Sat Mar 15 14:12:56 2014
+++ src/lib/libm/arch/vax/n_support.S	Mon May 25 09:05:25 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: n_support.S,v 1.9 2014/03/15 14:12:56 martin Exp $	*/
+/*	$NetBSD: n_support.S,v 1.9.4.1 2015/05/25 09:05:25 msaitoh Exp $	*/
 /*
  * Copyright (c) 1985, 1993
  *	The Regents of the University of California.  All rights reserved.
@@ -32,7 +32,8 @@
 #include <machine/asm.h>
 
 WEAK_ALIAS(logbl,logb)
-WEAK_ALIAS(copysignl, copysign)
+WEAK_ALIAS(copysignl, _copysignl)
+WEAK_ALIAS(_copysignl, copysign)
 
 	.text
 _sccsid:

Index: src/lib/libm/src/namespace.h
diff -u src/lib/libm/src/namespace.h:1.11 src/lib/libm/src/namespace.h:1.11.2.1
--- src/lib/libm/src/namespace.h:1.11	Mon Jun 16 12:54:43 2014
+++ src/lib/libm/src/namespace.h	Mon May 25 09:05:25 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: namespace.h,v 1.11 2014/06/16 12:54:43 joerg Exp $ */
+/* $NetBSD: namespace.h,v 1.11.2.1 2015/05/25 09:05:25 msaitoh Exp $ */
 
 #define atan2 _atan2
 #define atan2f _atan2f
@@ -46,6 +46,7 @@
 #define scalblnf _scalblnf
 #define scalblnl _scalblnl
 
+#define copysignl _copysignl
 #define sqrtl _sqrtl
 #define cbrtl _cbrtl
 #define ceill _ceill

Index: src/lib/libm/src/s_copysign.c
diff -u src/lib/libm/src/s_copysign.c:1.11 src/lib/libm/src/s_copysign.c:1.11.74.1
--- src/lib/libm/src/s_copysign.c:1.11	Sun May 26 22:01:54 2002
+++ src/lib/libm/src/s_copysign.c	Mon May 25 09:05:25 2015
@@ -12,7 +12,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBM_SCCS) && !defined(lint)
-__RCSID("$NetBSD: s_copysign.c,v 1.11 2002/05/26 22:01:54 wiz Exp $");
+__RCSID("$NetBSD: s_copysign.c,v 1.11.74.1 2015/05/25 09:05:25 msaitoh Exp $");
 #endif
 
 /*
@@ -24,6 +24,11 @@ __RCSID("$NetBSD: s_copysign.c,v 1.11 20
 #include "math.h"
 #include "math_private.h"
 
+#if !defined(__HAVE_LONG_DOUBLE) && !defined(__HAVE_IBM_LONGDOUBLE)
+__strong_alias(_copysignl, copysign)
+__weak_alias(copysignl, copysign)
+#endif
+
 double
 copysign(double x, double y)
 {

Index: src/lib/libm/src/s_copysignl.c
diff -u src/lib/libm/src/s_copysignl.c:1.2 src/lib/libm/src/s_copysignl.c:1.2.24.1
--- src/lib/libm/src/s_copysignl.c:1.2	Fri Sep 17 20:39:39 2010
+++ src/lib/libm/src/s_copysignl.c	Mon May 25 09:05:25 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: s_copysignl.c,v 1.2 2010/09/17 20:39:39 christos Exp $	*/
+/*	$NetBSD: s_copysignl.c,v 1.2.24.1 2015/05/25 09:05:25 msaitoh Exp $	*/
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -26,11 +26,18 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: s_copysignl.c,v 1.2 2010/09/17 20:39:39 christos Exp $");
+__RCSID("$NetBSD: s_copysignl.c,v 1.2.24.1 2015/05/25 09:05:25 msaitoh Exp $");
+#include "namespace.h"
 
 #include <math.h>
 #include <machine/ieee.h>
 
+#if defined(__HAVE_LONG_DOUBLE) || defined(__HAVE_IBM_LONGDOUBLE)
+
+#ifdef __weak_alias
+__weak_alias(copysignl, _copysignl)
+#endif
+
 /*
  * copysignl(long double x, long double y)
  * This function returns a value with the magnitude of x and the sign of y.
@@ -48,4 +55,18 @@ copysignl(long double x, long double y)
 
 	return (ux.extu_ld);
 }
+#elif defined(__HAVE_IBM_LONGDOUBLE)
+long double
+copysignl(long double x, long double y)
+{
+	union ldbl_u ux, uy;
+
+	ux.ldblu_ld = x;
+	uy.ldblu_ld = y;
+	ux.ldblu_d[0] = copysign(ux.ldblu_d[0], uy.ldblu_d[0]);
+	ux.ldblu_d[1] = copysign(ux.ldblu_d[1], uy.ldblu_d[1]);
+
+	return ux.ldblu_ld;
+}
 #endif
+#endif /* __HAVE_LONG_DOUBLE || __HAVE_IBM_LONGDOUBLE */

Index: src/sys/arch/powerpc/include/ieee.h
diff -u src/sys/arch/powerpc/include/ieee.h:1.5 src/sys/arch/powerpc/include/ieee.h:1.5.140.1
--- src/sys/arch/powerpc/include/ieee.h:1.5	Sun Dec 11 12:18:43 2005
+++ src/sys/arch/powerpc/include/ieee.h	Mon May 25 09:05:25 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: ieee.h,v 1.5 2005/12/11 12:18:43 christos Exp $	*/
+/*	$NetBSD: ieee.h,v 1.5.140.1 2015/05/25 09:05:25 msaitoh Exp $	*/
 
 #include <sys/ieee754.h>
 
@@ -11,3 +11,8 @@
 #define	SNG_QUIETNAN	(1 << 22)
 #define	DBL_QUIETNAN	(1 << 19)
 #endif
+
+union ldbl_u {
+	long double	ldblu_ld;
+	double		ldblu_d[2];
+};

Index: src/sys/arch/powerpc/include/math.h
diff -u src/sys/arch/powerpc/include/math.h:1.4 src/sys/arch/powerpc/include/math.h:1.4.184.1
--- src/sys/arch/powerpc/include/math.h:1.4	Tue Feb 19 13:08:15 2002
+++ src/sys/arch/powerpc/include/math.h	Mon May 25 09:05:25 2015
@@ -1,3 +1,4 @@
-/*	$NetBSD: math.h,v 1.4 2002/02/19 13:08:15 simonb Exp $	*/
+/*	$NetBSD: math.h,v 1.4.184.1 2015/05/25 09:05:25 msaitoh Exp $	*/
 
 #define	__HAVE_NANF
+#define __HAVE_IBM_LONGDOUBLE	/* Uses double-double as long double */

Reply via email to