CVS commit: src/lib/libm/arch/i387

2019-04-26 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Fri Apr 26 10:11:14 UTC 2019

Removed Files:
src/lib/libm/arch/i387: s_cos.S s_cosf.S s_ilogb.S s_ilogbf.S s_modf.S
s_sin.S s_sinf.S s_tan.S s_tanf.S

Log Message:
Remove unused 387 implementations.

These were removed from the build for being wrong, but the implementation
stayed around. This is confusing, we have the attic for old code,
let's delete the unused implementations.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r0 src/lib/libm/arch/i387/s_cos.S
cvs rdiff -u -r1.6 -r0 src/lib/libm/arch/i387/s_cosf.S \
src/lib/libm/arch/i387/s_ilogbf.S
cvs rdiff -u -r1.7 -r0 src/lib/libm/arch/i387/s_ilogb.S \
src/lib/libm/arch/i387/s_sin.S src/lib/libm/arch/i387/s_tan.S
cvs rdiff -u -r1.1 -r0 src/lib/libm/arch/i387/s_modf.S
cvs rdiff -u -r1.5 -r0 src/lib/libm/arch/i387/s_sinf.S \
src/lib/libm/arch/i387/s_tanf.S

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



CVS commit: src/lib/libm/arch/i387

2018-01-24 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Jan 25 03:54:21 UTC 2018

Modified Files:
src/lib/libm/arch/i387: fenv.c

Log Message:
use named initializers


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libm/arch/i387/fenv.c

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/i387/fenv.c
diff -u src/lib/libm/arch/i387/fenv.c:1.8 src/lib/libm/arch/i387/fenv.c:1.9
--- src/lib/libm/arch/i387/fenv.c:1.8	Wed Mar 22 19:11:08 2017
+++ src/lib/libm/arch/i387/fenv.c	Wed Jan 24 22:54:21 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: fenv.c,v 1.8 2017/03/22 23:11:08 chs Exp $ */
+/* $NetBSD: fenv.c,v 1.9 2018/01/25 03:54:21 christos Exp $ */
 
 /*-
  * Copyright (c) 2004-2005 David Schultz 
@@ -27,7 +27,7 @@
  */
 
 #include 
-__RCSID("$NetBSD: fenv.c,v 1.8 2017/03/22 23:11:08 chs Exp $");
+__RCSID("$NetBSD: fenv.c,v 1.9 2018/01/25 03:54:21 christos Exp $");
 
 #include "namespace.h"
 
@@ -106,19 +106,18 @@ __weak_alias(feupdateenv,_feupdateenv)
  * consumers of FE_DFL_ENV, during runtime.
  */
 fenv_t __fe_dfl_env = {
-	{
-		__NetBSD_NPXCW__,   /* Control word register */
-		0x0,			/* Unused */
-		0x, /* Status word register */
-		0x0,			/* Unused */
-		0x, /* Tag word register */
-		0x0,			/* Unused */
-		{
-			0x, 0x,
-			0x, 0x
+	.x87 = {
+		.control = __NetBSD_NPXCW__,/* Control word register */
+		.unused1 = 0,			/* Unused */
+		.status = 0,  		 	/* Status word register */
+		.unused2 = 0,			/* Unused */
+		.tag = 0x,  	/* Tag word register */
+		.unused3 = 0,			/* Unused */
+		.others = {
+			0, 0, 0, 0x,
 		}
 	},
-	__INITIAL_MXCSR__		/* MXCSR register */
+	.mxcsr = __INITIAL_MXCSR__		/* MXCSR register */
 };
 
 /*



CVS commit: src/lib/libm/arch/i387

2016-02-17 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Feb 17 19:54:11 UTC 2016

Modified Files:
src/lib/libm/arch/i387: fenv.c

Log Message:
PR/50822: David Binderman: Fix copy length.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libm/arch/i387/fenv.c

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/i387/fenv.c
diff -u src/lib/libm/arch/i387/fenv.c:1.6 src/lib/libm/arch/i387/fenv.c:1.7
--- src/lib/libm/arch/i387/fenv.c:1.6	Sun Nov 10 19:31:51 2013
+++ src/lib/libm/arch/i387/fenv.c	Wed Feb 17 14:54:11 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: fenv.c,v 1.6 2013/11/11 00:31:51 joerg Exp $ */
+/* $NetBSD: fenv.c,v 1.7 2016/02/17 19:54:11 christos Exp $ */
 
 /*-
  * Copyright (c) 2004-2005 David Schultz 
@@ -27,7 +27,7 @@
  */
 
 #include 
-__RCSID("$NetBSD: fenv.c,v 1.6 2013/11/11 00:31:51 joerg Exp $");
+__RCSID("$NetBSD: fenv.c,v 1.7 2016/02/17 19:54:11 christos Exp $");
 
 #include 
 #include 
@@ -400,9 +400,8 @@ fesetenv(const fenv_t *envp)
 	__fe_dfl_env.x87.unused1 = env.x87.unused1;
 	__fe_dfl_env.x87.unused2 = env.x87.unused2;
 	__fe_dfl_env.x87.unused3 = env.x87.unused3;
-	memcpy(__fe_dfl_env.x87.others,
-	   env.x87.others,
-	   sizeof(__fe_dfl_env.x87.others) / sizeof(uint32_t));
+	memcpy(__fe_dfl_env.x87.others, env.x87.others,
+	sizeof(__fe_dfl_env.x87.others));
 
 	__fldenv(envp->x87);
 	if (__HAS_SSE)
@@ -436,9 +435,8 @@ feupdateenv(const fenv_t *envp)
 	__fe_dfl_env.x87.unused1 = env.x87.unused1;
 	__fe_dfl_env.x87.unused2 = env.x87.unused2;
 	__fe_dfl_env.x87.unused3 = env.x87.unused3;
-	memcpy(__fe_dfl_env.x87.others,
-	   env.x87.others,
-	   sizeof(__fe_dfl_env.x87.others) / sizeof(uint32_t));
+	memcpy(__fe_dfl_env.x87.others, env.x87.others,
+	sizeof(__fe_dfl_env.x87.others));
 
 	__fnstsw(&status);
 	if (__HAS_SSE)



CVS commit: src/lib/libm/arch/i387

2014-03-03 Thread David Laight
Module Name:src
Committed By:   dsl
Date:   Mon Mar  3 08:00:50 UTC 2014

Modified Files:
src/lib/libm/arch/i387: e_acos.S

Log Message:
Drop in a fabs() after the fsqrt().
While it may seem pointless, it the rouding mode is set to round towards
minus infinity then acos(-1) calculates atan2(sqrt(1.0 - 1.0), -1) the subtract
generates -0.0 which sqrt() preserves.
atan2(-0, -1) is -pi, but acos(-1) is expected to be +pi.
This might 'fix' the test failures seen in some environments, but they
are not failing due to an obvously incorrent x87 rounding mode.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libm/arch/i387/e_acos.S

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/i387/e_acos.S
diff -u src/lib/libm/arch/i387/e_acos.S:1.8 src/lib/libm/arch/i387/e_acos.S:1.9
--- src/lib/libm/arch/i387/e_acos.S:1.8	Sat Jul 26 19:24:57 2003
+++ src/lib/libm/arch/i387/e_acos.S	Mon Mar  3 08:00:50 2014
@@ -7,7 +7,7 @@
 
 #include "abi.h"
 
-RCSID("$NetBSD: e_acos.S,v 1.8 2003/07/26 19:24:57 salo Exp $")
+RCSID("$NetBSD: e_acos.S,v 1.9 2014/03/03 08:00:50 dsl Exp $")
 
 /* acos = atan (sqrt(1 - x^2) / x) */
 ENTRY(__ieee754_acos)
@@ -18,6 +18,7 @@ ENTRY(__ieee754_acos)
 	fld1
 	fsubp/* 1 - x^2 */
 	fsqrt/* sqrt (1 - x^2) */
+	fabs/* Change -0.0 to +0.0 */
 	fxch	%st(1)
 	fpatan
 	XMM_DOUBLE_EPILOGUE



CVS commit: src/lib/libm/arch/i387

2013-05-20 Thread Michael van Elst
Module Name:src
Committed By:   mlelstv
Date:   Mon May 20 15:13:36 UTC 2013

Modified Files:
src/lib/libm/arch/i387: s_scalbn.S

Log Message:
Use correct alias for scalbn(). Tested by martin@.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libm/arch/i387/s_scalbn.S

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/i387/s_scalbn.S
diff -u src/lib/libm/arch/i387/s_scalbn.S:1.12 src/lib/libm/arch/i387/s_scalbn.S:1.13
--- src/lib/libm/arch/i387/s_scalbn.S:1.12	Sat Apr 27 18:39:28 2013
+++ src/lib/libm/arch/i387/s_scalbn.S	Mon May 20 15:13:36 2013
@@ -5,10 +5,10 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbn.S,v 1.12 2013/04/27 18:39:28 joerg Exp $")
+RCSID("$NetBSD: s_scalbn.S,v 1.13 2013/05/20 15:13:36 mlelstv Exp $")
 
 #ifdef WEAK_ALIAS
-WEAK_ALIAS(scalbn,_scalbln)
+WEAK_ALIAS(scalbn,_scalbn)
 WEAK_ALIAS(scalbln,_scalbln)
 WEAK_ALIAS(ldexp,_scalbln)
 #endif



CVS commit: src/lib/libm/arch/i387

2013-04-27 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Apr 27 18:44:39 UTC 2013

Added Files:
src/lib/libm/arch/i387: s_scalbln.S

Log Message:
Add a dummy s_scalbln.S to avoid the generic implementations of scalbln
and co on i386 and amd64. They are implemented next to scalbn and co.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libm/arch/i387/s_scalbln.S

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

Added files:

Index: src/lib/libm/arch/i387/s_scalbln.S
diff -u /dev/null src/lib/libm/arch/i387/s_scalbln.S:1.1
--- /dev/null	Sat Apr 27 18:44:39 2013
+++ src/lib/libm/arch/i387/s_scalbln.S	Sat Apr 27 18:44:39 2013
@@ -0,0 +1 @@
+/* This file is intentionally empty */



CVS commit: src/lib/libm/arch/i387

2013-04-27 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Apr 27 18:36:42 UTC 2013

Modified Files:
src/lib/libm/arch/i387: s_scalbn.S s_scalbnf.S s_scalbnl.S

Log Message:
Use the correct register on AMD64 for the argument.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libm/arch/i387/s_scalbn.S
cvs rdiff -u -r1.11 -r1.12 src/lib/libm/arch/i387/s_scalbnf.S
cvs rdiff -u -r1.3 -r1.4 src/lib/libm/arch/i387/s_scalbnl.S

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/i387/s_scalbn.S
diff -u src/lib/libm/arch/i387/s_scalbn.S:1.10 src/lib/libm/arch/i387/s_scalbn.S:1.11
--- src/lib/libm/arch/i387/s_scalbn.S:1.10	Mon Feb 11 01:19:33 2013
+++ src/lib/libm/arch/i387/s_scalbn.S	Sat Apr 27 18:36:41 2013
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbn.S,v 1.10 2013/02/11 01:19:33 matt Exp $")
+RCSID("$NetBSD: s_scalbn.S,v 1.11 2013/04/27 18:36:41 joerg Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbn,_scalbln)
@@ -28,7 +28,7 @@ STRONG_ALIAS(_scalbn, scalbln)
 
 ENTRY(_scalbln)
 #ifdef __x86_64__
-	movq %rdx,-16(%rsp)
+	movq %rdi,-16(%rsp)
 	fildq -16(%rsp)
 	movsd %xmm0,-8(%rsp)
 	fldl -8(%rsp)

Index: src/lib/libm/arch/i387/s_scalbnf.S
diff -u src/lib/libm/arch/i387/s_scalbnf.S:1.11 src/lib/libm/arch/i387/s_scalbnf.S:1.12
--- src/lib/libm/arch/i387/s_scalbnf.S:1.11	Tue Feb 12 02:52:13 2013
+++ src/lib/libm/arch/i387/s_scalbnf.S	Sat Apr 27 18:36:41 2013
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnf.S,v 1.11 2013/02/12 02:52:13 matt Exp $")
+RCSID("$NetBSD: s_scalbnf.S,v 1.12 2013/04/27 18:36:41 joerg Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnf,_scalbnf)
@@ -29,7 +29,7 @@ STRONG_ALIAS(_scalbnf,_scalblnf)
 
 ENTRY(_scalblnf)
 #ifdef __x86_64__
-	movq %rdx,-16(%rsp)
+	movq %rdi,-16(%rsp)
 	fildq -16(%rsp)
 	movss %xmm0,-4(%rsp)
 	flds -4(%rsp)

Index: src/lib/libm/arch/i387/s_scalbnl.S
diff -u src/lib/libm/arch/i387/s_scalbnl.S:1.3 src/lib/libm/arch/i387/s_scalbnl.S:1.4
--- src/lib/libm/arch/i387/s_scalbnl.S:1.3	Mon Feb 11 02:45:16 2013
+++ src/lib/libm/arch/i387/s_scalbnl.S	Sat Apr 27 18:36:41 2013
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnl.S,v 1.3 2013/02/11 02:45:16 christos Exp $")
+RCSID("$NetBSD: s_scalbnl.S,v 1.4 2013/04/27 18:36:41 joerg Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnl,_scalbnl)
@@ -27,7 +27,7 @@ STRONG_ALIAS(_scalbnl,_scalblnl)
 
 ENTRY(_scalblnl)
 #ifdef __x86_64__
-	movq	%rdx,-8(%rsp)
+	movq	%rdi,-8(%rsp)
 	fildq	-8(%rsp)
 	fldt	8(%rsp)
 	fscale



CVS commit: src/lib/libm/arch/i387

2013-02-11 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Feb 12 02:52:13 UTC 2013

Modified Files:
src/lib/libm/arch/i387: s_scalbnf.S

Log Message:
Fix the strong alias correctly this time.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libm/arch/i387/s_scalbnf.S

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/i387/s_scalbnf.S
diff -u src/lib/libm/arch/i387/s_scalbnf.S:1.10 src/lib/libm/arch/i387/s_scalbnf.S:1.11
--- src/lib/libm/arch/i387/s_scalbnf.S:1.10	Mon Feb 11 04:57:22 2013
+++ src/lib/libm/arch/i387/s_scalbnf.S	Tue Feb 12 02:52:13 2013
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnf.S,v 1.10 2013/02/11 04:57:22 matt Exp $")
+RCSID("$NetBSD: s_scalbnf.S,v 1.11 2013/02/12 02:52:13 matt Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnf,_scalbnf)
@@ -24,7 +24,7 @@ ENTRY(_scalbnf)
 	fstp %st(0)
 	ret
 #elif defined(STRONG_ALIAS)
-STRONG_ALIAS(_scalbnf,_scalbnfl)
+STRONG_ALIAS(_scalbnf,_scalblnf)
 #endif
 
 ENTRY(_scalblnf)



CVS commit: src/lib/libm/arch/i387

2013-02-10 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Feb 11 04:57:22 UTC 2013

Modified Files:
src/lib/libm/arch/i387: s_scalbnf.S

Log Message:
Fix strong_alias


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libm/arch/i387/s_scalbnf.S

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/i387/s_scalbnf.S
diff -u src/lib/libm/arch/i387/s_scalbnf.S:1.9 src/lib/libm/arch/i387/s_scalbnf.S:1.10
--- src/lib/libm/arch/i387/s_scalbnf.S:1.9	Mon Feb 11 01:19:33 2013
+++ src/lib/libm/arch/i387/s_scalbnf.S	Mon Feb 11 04:57:22 2013
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnf.S,v 1.9 2013/02/11 01:19:33 matt Exp $")
+RCSID("$NetBSD: s_scalbnf.S,v 1.10 2013/02/11 04:57:22 matt Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnf,_scalbnf)
@@ -24,7 +24,7 @@ ENTRY(_scalbnf)
 	fstp %st(0)
 	ret
 #elif defined(STRONG_ALIAS)
-STRONG_ALIAS(_scalbnf,_scalbnf)
+STRONG_ALIAS(_scalbnf,_scalbnfl)
 #endif
 
 ENTRY(_scalblnf)



CVS commit: src/lib/libm/arch/i387

2013-02-10 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Feb 11 01:19:33 UTC 2013

Modified Files:
src/lib/libm/arch/i387: s_scalbn.S s_scalbnf.S s_scalbnl.S

Log Message:
Add long double version of x86 scalb functions


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libm/arch/i387/s_scalbn.S
cvs rdiff -u -r1.8 -r1.9 src/lib/libm/arch/i387/s_scalbnf.S
cvs rdiff -u -r1.1 -r1.2 src/lib/libm/arch/i387/s_scalbnl.S

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/i387/s_scalbn.S
diff -u src/lib/libm/arch/i387/s_scalbn.S:1.9 src/lib/libm/arch/i387/s_scalbn.S:1.10
--- src/lib/libm/arch/i387/s_scalbn.S:1.9	Fri Apr 23 19:17:07 2010
+++ src/lib/libm/arch/i387/s_scalbn.S	Mon Feb 11 01:19:33 2013
@@ -5,14 +5,14 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbn.S,v 1.9 2010/04/23 19:17:07 drochner Exp $")
+RCSID("$NetBSD: s_scalbn.S,v 1.10 2013/02/11 01:19:33 matt Exp $")
 
 #ifdef WEAK_ALIAS
-WEAK_ALIAS(scalbn,_scalbn)
+WEAK_ALIAS(scalbn,_scalbln)
+WEAK_ALIAS(scalbln,_scalbln)
 #endif
-
-ENTRY(_scalbn)
 #ifdef __x86_64__
+ENTRY(_scalbn)
 	movl %edi,-12(%rsp)
 	fildl -12(%rsp)
 	movsd %xmm0,-8(%rsp)
@@ -21,6 +21,21 @@ ENTRY(_scalbn)
 	fstpl -8(%rsp)
 	movsd -8(%rsp),%xmm0
 	fstp %st(0)
+	ret
+#elif defined(STRONG_ALIAS)
+STRONG_ALIAS(_scalbn, scalbln)
+#endif
+
+ENTRY(_scalbln)
+#ifdef __x86_64__
+	movq %rdx,-16(%rsp)
+	fildq -16(%rsp)
+	movsd %xmm0,-8(%rsp)
+	fldl -8(%rsp)
+	fscale
+	fstpl -8(%rsp)
+	movsd -8(%rsp),%xmm0
+	fstp %st(0)
 #else
 	fildl 12(%esp)
 	fldl 4(%esp)

Index: src/lib/libm/arch/i387/s_scalbnf.S
diff -u src/lib/libm/arch/i387/s_scalbnf.S:1.8 src/lib/libm/arch/i387/s_scalbnf.S:1.9
--- src/lib/libm/arch/i387/s_scalbnf.S:1.8	Fri Apr 23 19:17:07 2010
+++ src/lib/libm/arch/i387/s_scalbnf.S	Mon Feb 11 01:19:33 2013
@@ -5,14 +5,15 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnf.S,v 1.8 2010/04/23 19:17:07 drochner Exp $")
+RCSID("$NetBSD: s_scalbnf.S,v 1.9 2013/02/11 01:19:33 matt Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnf,_scalbnf)
+WEAK_ALIAS(scalblnf,_scalblnf)
 #endif
 
-ENTRY(_scalbnf)
 #ifdef __x86_64__
+ENTRY(_scalbnf)
 	movl %edi,-8(%rsp)
 	fildl -8(%rsp)
 	movss %xmm0,-4(%rsp)
@@ -21,6 +22,21 @@ ENTRY(_scalbnf)
 	fstps -4(%rsp)
 	movss -4(%rsp),%xmm0
 	fstp %st(0)
+	ret
+#elif defined(STRONG_ALIAS)
+STRONG_ALIAS(_scalbnf,_scalbnf)
+#endif
+
+ENTRY(_scalblnf)
+#ifdef __x86_64__
+	movq %rdx,-16(%rsp)
+	fildq -16(%rsp)
+	movss %xmm0,-4(%rsp)
+	flds -4(%rsp)
+	fscale
+	fstps -4(%rsp)
+	movss -4(%rsp),%xmm0
+	fstp %st(0)
 #else
 	fildl 8(%esp)
 	flds 4(%esp)

Index: src/lib/libm/arch/i387/s_scalbnl.S
diff -u src/lib/libm/arch/i387/s_scalbnl.S:1.1 src/lib/libm/arch/i387/s_scalbnl.S:1.2
--- src/lib/libm/arch/i387/s_scalbnl.S:1.1	Tue Jul 26 17:03:23 2011
+++ src/lib/libm/arch/i387/s_scalbnl.S	Mon Feb 11 01:19:33 2013
@@ -5,19 +5,32 @@
 
 #include 
 
-RCSID("$NetBSD: s_scalbnl.S,v 1.1 2011/07/26 17:03:23 joerg Exp $")
+RCSID("$NetBSD: s_scalbnl.S,v 1.2 2013/02/11 01:19:33 matt Exp $")
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(scalbnl,_scalbnl)
+WEAK_ALIAS(scalblnl,_scalblnl)
 #endif
 
-ENTRY(_scalbnl)
 #ifdef __x86_64__
+ENTRY(_scalbnl)
 	movl	%edi,-4(%rsp)
 	fildl	-4(%rsp)
 	fldt	8(%rsp)
 	fscale
 	fstp	%st(1)
+	ret
+#elif defined(STRONG_ALIAS)
+STRONG_ALIAS(_scalbnl,_scalblnl)
+#endif
+
+ENTRY(_scalblnl)
+#ifdef __x86_64__
+	movq	%rdx,-8(%rsp)
+	fildq	-8(%rsp)
+	fldt	8(%rsp)
+	fscale
+	fstp	%st(1)
 #else
 	fildl 16(%esp)
 	fldt 4(%esp)



CVS commit: src/lib/libm/arch/i387

2011-07-26 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Tue Jul 26 17:03:23 UTC 2011

Added Files:
src/lib/libm/arch/i387: s_scalbnl.S

Log Message:
Add optimised version of scalbnl for x86.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libm/arch/i387/s_scalbnl.S

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

Added files:

Index: src/lib/libm/arch/i387/s_scalbnl.S
diff -u /dev/null src/lib/libm/arch/i387/s_scalbnl.S:1.1
--- /dev/null	Tue Jul 26 17:03:23 2011
+++ src/lib/libm/arch/i387/s_scalbnl.S	Tue Jul 26 17:03:23 2011
@@ -0,0 +1,27 @@
+/*
+ * Written by J.T. Conklin .
+ * Public domain.
+ */
+
+#include 
+
+RCSID("$NetBSD: s_scalbnl.S,v 1.1 2011/07/26 17:03:23 joerg Exp $")
+
+#ifdef WEAK_ALIAS
+WEAK_ALIAS(scalbnl,_scalbnl)
+#endif
+
+ENTRY(_scalbnl)
+#ifdef __x86_64__
+	movl	%edi,-4(%rsp)
+	fildl	-4(%rsp)
+	fldt	8(%rsp)
+	fscale
+	fstp	%st(1)
+#else
+	fildl 16(%esp)
+	fldt 4(%esp)
+	fscale
+	fstp %st(1)		/* clean up stack */
+#endif
+	ret



CVS commit: src/lib/libm/arch/i387

2011-06-21 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Tue Jun 21 21:52:49 UTC 2011

Modified Files:
src/lib/libm/arch/i387: s_copysignf.S

Log Message:
Actually used SSE branch. Noticed by enami@


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libm/arch/i387/s_copysignf.S

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/i387/s_copysignf.S
diff -u src/lib/libm/arch/i387/s_copysignf.S:1.6 src/lib/libm/arch/i387/s_copysignf.S:1.7
--- src/lib/libm/arch/i387/s_copysignf.S:1.6	Sat Jun 18 20:49:26 2011
+++ src/lib/libm/arch/i387/s_copysignf.S	Tue Jun 21 21:52:49 2011
@@ -9,7 +9,7 @@
  * XXXfvdl split this file.
  */
 
-RCSID("$NetBSD: s_copysignf.S,v 1.6 2011/06/18 20:49:26 joerg Exp $")
+RCSID("$NetBSD: s_copysignf.S,v 1.7 2011/06/21 21:52:49 joerg Exp $")
 
 #ifdef __x86_64__
 .Lneg:
@@ -28,14 +28,10 @@
 	movl	%eax,4(%esp)
 	flds	4(%esp)
 #else
-	movss	%xmm0,-4(%rsp)
-	movss	%xmm1,-8(%rsp)
-	movl	-8(%rsp),%edx
-	andl	$0x8000,%edx
-	movl	-4(%rsp),%eax
-	andl	$0x7fff,%eax
-	orl	%edx,%eax
-	movl	%eax,-4(%rsp)
-	movss	-4(%rsp),%xmm0
+	movss	.Lpos(%rip),%xmm2
+	movss	.Lneg(%rip),%xmm3
+	pand	%xmm2,%xmm1
+	pand	%xmm3,%xmm0
+	por	%xmm1,%xmm0
 #endif
 	ret



CVS commit: src/lib/libm/arch/i387

2011-06-18 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Jun 18 22:19:52 UTC 2011

Modified Files:
src/lib/libm/arch/i387: abi.h

Log Message:
Use correct stack register as noticed by christos


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libm/arch/i387/abi.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/i387/abi.h
diff -u src/lib/libm/arch/i387/abi.h:1.6 src/lib/libm/arch/i387/abi.h:1.7
--- src/lib/libm/arch/i387/abi.h:1.6	Sat Jun 18 18:16:40 2011
+++ src/lib/libm/arch/i387/abi.h	Sat Jun 18 22:19:52 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: abi.h,v 1.6 2011/06/18 18:16:40 joerg Exp $	*/
+/*	$NetBSD: abi.h,v 1.7 2011/06/18 22:19:52 joerg Exp $	*/
 
 /*
  * Written by Frank van der Linden (f...@wasabisystems.com)
@@ -51,8 +51,8 @@
 
 #else
 
-#define ARG_LONG_DOUBLE_ONE	4(%rsp)
-#define ARG_LONG_DOUBLE_TWO	16(%rsp)
+#define ARG_LONG_DOUBLE_ONE	4(%esp)
+#define ARG_LONG_DOUBLE_TWO	16(%esp)
 #define ARG_DOUBLE_ONE		4(%esp)
 #define ARG_DOUBLE_ONE_LSW	4(%esp)
 #define ARG_DOUBLE_ONE_MSW	8(%esp)



CVS commit: src/lib/libm/arch/i387

2011-06-18 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Jun 18 21:24:51 UTC 2011

Modified Files:
src/lib/libm/arch/i387: s_ceil.S s_ceilf.S s_floor.S s_floorf.S

Log Message:
Kill redundant ;


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libm/arch/i387/s_ceil.S \
src/lib/libm/arch/i387/s_floorf.S
cvs rdiff -u -r1.8 -r1.9 src/lib/libm/arch/i387/s_ceilf.S \
src/lib/libm/arch/i387/s_floor.S

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/i387/s_ceil.S
diff -u src/lib/libm/arch/i387/s_ceil.S:1.7 src/lib/libm/arch/i387/s_ceil.S:1.8
--- src/lib/libm/arch/i387/s_ceil.S:1.7	Sat Jul 26 19:25:00 2003
+++ src/lib/libm/arch/i387/s_ceil.S	Sat Jun 18 21:24:51 2011
@@ -7,7 +7,7 @@
 
 #include "abi.h"
 
-RCSID("$NetBSD: s_ceil.S,v 1.7 2003/07/26 19:25:00 salo Exp $")
+RCSID("$NetBSD: s_ceil.S,v 1.8 2011/06/18 21:24:51 joerg Exp $")
 
 ENTRY(ceil)
 #ifdef __i386__
@@ -22,7 +22,7 @@
 	movw	%dx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
-	fldl	8(%ebp);		/* round */
+	fldl	8(%ebp)			/* round */
 	frndint
 
 	fldcw	-4(%ebp)		/* restore original control word */
Index: src/lib/libm/arch/i387/s_floorf.S
diff -u src/lib/libm/arch/i387/s_floorf.S:1.7 src/lib/libm/arch/i387/s_floorf.S:1.8
--- src/lib/libm/arch/i387/s_floorf.S:1.7	Fri Jul 16 18:40:24 2004
+++ src/lib/libm/arch/i387/s_floorf.S	Sat Jun 18 21:24:51 2011
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_floorf.S,v 1.7 2004/07/16 18:40:24 drochner Exp $")
+RCSID("$NetBSD: s_floorf.S,v 1.8 2011/06/18 21:24:51 joerg Exp $")
 
 ENTRY(floorf)
 #ifdef __i386__
@@ -20,7 +20,7 @@
 	movw	%dx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
-	flds	8(%ebp);		/* round */
+	flds	8(%ebp)			/* round */
 	frndint
 
 	fldcw	-4(%ebp)		/* restore original control word */

Index: src/lib/libm/arch/i387/s_ceilf.S
diff -u src/lib/libm/arch/i387/s_ceilf.S:1.8 src/lib/libm/arch/i387/s_ceilf.S:1.9
--- src/lib/libm/arch/i387/s_ceilf.S:1.8	Fri Jul 16 18:40:24 2004
+++ src/lib/libm/arch/i387/s_ceilf.S	Sat Jun 18 21:24:51 2011
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_ceilf.S,v 1.8 2004/07/16 18:40:24 drochner Exp $")
+RCSID("$NetBSD: s_ceilf.S,v 1.9 2011/06/18 21:24:51 joerg Exp $")
 
 ENTRY(ceilf)
 #ifdef __i386__
@@ -20,7 +20,7 @@
 	movw	%dx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
-	flds	8(%ebp);		/* round */
+	flds	8(%ebp)			/* round */
 	frndint
 
 	fldcw	-4(%ebp)		/* restore original control word */
Index: src/lib/libm/arch/i387/s_floor.S
diff -u src/lib/libm/arch/i387/s_floor.S:1.8 src/lib/libm/arch/i387/s_floor.S:1.9
--- src/lib/libm/arch/i387/s_floor.S:1.8	Sat Jul 26 19:25:02 2003
+++ src/lib/libm/arch/i387/s_floor.S	Sat Jun 18 21:24:51 2011
@@ -5,7 +5,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_floor.S,v 1.8 2003/07/26 19:25:02 salo Exp $")
+RCSID("$NetBSD: s_floor.S,v 1.9 2011/06/18 21:24:51 joerg Exp $")
 
 ENTRY(floor)
 #ifdef __i386__
@@ -20,7 +20,7 @@
 	movw	%dx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
-	fldl	8(%ebp);		/* round */
+	fldl	8(%ebp)			/* round */
 	frndint
 
 	fldcw	-4(%ebp)		/* restore original control word */



CVS commit: src/lib/libm/arch/i387

2011-06-18 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Jun 18 20:49:26 UTC 2011

Modified Files:
src/lib/libm/arch/i387: s_copysign.S s_copysignf.S

Log Message:
Switch to SSE code, since our gas supports it now.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libm/arch/i387/s_copysign.S
cvs rdiff -u -r1.5 -r1.6 src/lib/libm/arch/i387/s_copysignf.S

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/i387/s_copysign.S
diff -u src/lib/libm/arch/i387/s_copysign.S:1.6 src/lib/libm/arch/i387/s_copysign.S:1.7
--- src/lib/libm/arch/i387/s_copysign.S:1.6	Sat Jul 26 19:25:01 2003
+++ src/lib/libm/arch/i387/s_copysign.S	Sat Jun 18 20:49:26 2011
@@ -9,7 +9,7 @@
 
 #include 
 
-RCSID("$NetBSD: s_copysign.S,v 1.6 2003/07/26 19:25:01 salo Exp $")
+RCSID("$NetBSD: s_copysign.S,v 1.7 2011/06/18 20:49:26 joerg Exp $")
 
 #ifdef __x86_64__
 .Lpos:
@@ -29,25 +29,10 @@
 	movl	%eax,8(%esp)
 	fldl	4(%esp)
 #else
-#if 0
-	/*
-	 * XXXfvdl gas doesn't grok this yet.
-	 */
 	movq	.Lpos(%rip),%xmm2
 	movq	.Lneg(%rip),%xmm3
 	pand	%xmm2,%xmm1
 	pand	%xmm3,%xmm0
 	por	%xmm1,%xmm0
-#else
-	movsd	%xmm0,-8(%rsp)
-	movsd	%xmm1,-16(%rsp)
-	movl	-12(%rsp),%edx
-	andl	$0x8000,%edx
-	movl	-4(%rsp),%eax
-	andl	$0x7fff,%eax
-	orl	%edx,%eax
-	movl	%eax,-4(%rsp)
-	movsd	-8(%rsp),%xmm0
-#endif
 #endif
 	ret

Index: src/lib/libm/arch/i387/s_copysignf.S
diff -u src/lib/libm/arch/i387/s_copysignf.S:1.5 src/lib/libm/arch/i387/s_copysignf.S:1.6
--- src/lib/libm/arch/i387/s_copysignf.S:1.5	Sat Jul 26 19:25:01 2003
+++ src/lib/libm/arch/i387/s_copysignf.S	Sat Jun 18 20:49:26 2011
@@ -9,7 +9,7 @@
  * XXXfvdl split this file.
  */
 
-RCSID("$NetBSD: s_copysignf.S,v 1.5 2003/07/26 19:25:01 salo Exp $")
+RCSID("$NetBSD: s_copysignf.S,v 1.6 2011/06/18 20:49:26 joerg Exp $")
 
 #ifdef __x86_64__
 .Lneg:
@@ -28,17 +28,6 @@
 	movl	%eax,4(%esp)
 	flds	4(%esp)
 #else
-#if 0
-	/*
-	 * XXXfvdl gas doesn't grok this.
-	 * but it's legal according to the p4 manual.
-	 */
-	movss.Lpos(%rip),%xmm2
-	movss.Lneg(%rip),%xmm3
-	pandq   %xmm2,%xmm1
-	pandq   %xmm3,%xmm0
-	porq%xmm1,%xmm0
-#else
 	movss	%xmm0,-4(%rsp)
 	movss	%xmm1,-8(%rsp)
 	movl	-8(%rsp),%edx
@@ -49,5 +38,4 @@
 	movl	%eax,-4(%rsp)
 	movss	-4(%rsp),%xmm0
 #endif
-#endif
 	ret



CVS commit: src/lib/libm/arch/i387

2011-06-18 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Jun 18 18:16:40 UTC 2011

Modified Files:
src/lib/libm/arch/i387: abi.h

Log Message:
SSE2 registers are only used for float and double arguments, so update
comment to reflect reality. Add some accessor macros for long double
arguments for i386 and x86_64.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libm/arch/i387/abi.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/i387/abi.h
diff -u src/lib/libm/arch/i387/abi.h:1.5 src/lib/libm/arch/i387/abi.h:1.6
--- src/lib/libm/arch/i387/abi.h:1.5	Mon Jun 23 10:24:13 2008
+++ src/lib/libm/arch/i387/abi.h	Sat Jun 18 18:16:40 2011
@@ -1,12 +1,12 @@
-/*	$NetBSD: abi.h,v 1.5 2008/06/23 10:24:13 drochner Exp $	*/
+/*	$NetBSD: abi.h,v 1.6 2011/06/18 18:16:40 joerg Exp $	*/
 
 /*
  * Written by Frank van der Linden (f...@wasabisystems.com)
  */
 
 /*
- * The x86-64 ABI specifies that float, double and long double
- * arguments are passed in SSE2 (xmm) registers. Unfortunately,
+ * The x86-64 ABI specifies that float and double arguments
+ * are passed in SSE2 (xmm) registers. Unfortunately,
  * there is no way to push those on to the FP stack, which is
  * where the fancier instructions get their arguments from.
  *
@@ -16,6 +16,8 @@
 
 #ifdef __x86_64__
 
+#define ARG_LONG_DOUBLE_ONE	8(%rsp)
+#define ARG_LONG_DOUBLE_TWO	24(%rsp)
 #define ARG_DOUBLE_ONE		-8(%rsp)
 #define ARG_DOUBLE_ONE_LSW	-8(%rsp)
 #define ARG_DOUBLE_ONE_MSW	-4(%rsp)
@@ -49,6 +51,8 @@
 
 #else
 
+#define ARG_LONG_DOUBLE_ONE	4(%rsp)
+#define ARG_LONG_DOUBLE_TWO	16(%rsp)
 #define ARG_DOUBLE_ONE		4(%esp)
 #define ARG_DOUBLE_ONE_LSW	4(%esp)
 #define ARG_DOUBLE_ONE_MSW	8(%esp)



CVS commit: src/lib/libm/arch/i387

2010-07-31 Thread Takahiro Kambe
Module Name:src
Committed By:   taca
Date:   Sun Aug  1 06:34:38 UTC 2010

Modified Files:
src/lib/libm/arch/i387: fenv.c

Log Message:
Fix compile error.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/lib/libm/arch/i387/fenv.c

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/i387/fenv.c
diff -u src/lib/libm/arch/i387/fenv.c:1.2 src/lib/libm/arch/i387/fenv.c:1.3
--- src/lib/libm/arch/i387/fenv.c:1.2	Sat Jul 31 22:14:18 2010
+++ src/lib/libm/arch/i387/fenv.c	Sun Aug  1 06:34:38 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fenv.c,v 1.2 2010/07/31 22:14:18 joerg Exp $ */
+/* $NetBSD: fenv.c,v 1.3 2010/08/01 06:34:38 taca Exp $ */
 
 /*-
  * Copyright (c) 2004-2005 David Schultz 
@@ -27,7 +27,7 @@
  */
 
 #include 
-__RCSID("$NetBSD: fenv.c,v 1.2 2010/07/31 22:14:18 joerg Exp $");
+__RCSID("$NetBSD: fenv.c,v 1.3 2010/08/01 06:34:38 taca Exp $");
 
 #include 
 #include 
@@ -119,7 +119,7 @@
 
 static void __test_sse(void)
 {
-	size_t oldlen = sizeof(HAS_SSE);
+	size_t oldlen = sizeof(__HAS_SSE);
 	int rv;
 
 	rv = sysctlbyname("machdep.sse", &__HAS_SSE, &oldlen, NULL, 0);



CVS commit: src/lib/libm/arch/i387

2010-07-31 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Jul 31 22:14:18 UTC 2010

Modified Files:
src/lib/libm/arch/i387: fenv.c

Log Message:
Fix merge error: drop machine from an older workaround for machine.sse
under compat32, drop the assertion, initialize oldlen.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libm/arch/i387/fenv.c

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/i387/fenv.c
diff -u src/lib/libm/arch/i387/fenv.c:1.1 src/lib/libm/arch/i387/fenv.c:1.2
--- src/lib/libm/arch/i387/fenv.c:1.1	Sat Jul 31 21:47:53 2010
+++ src/lib/libm/arch/i387/fenv.c	Sat Jul 31 22:14:18 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fenv.c,v 1.1 2010/07/31 21:47:53 joerg Exp $ */
+/* $NetBSD: fenv.c,v 1.2 2010/07/31 22:14:18 joerg Exp $ */
 
 /*-
  * Copyright (c) 2004-2005 David Schultz 
@@ -27,7 +27,7 @@
  */
 
 #include 
-__RCSID("$NetBSD: fenv.c,v 1.1 2010/07/31 21:47:53 joerg Exp $");
+__RCSID("$NetBSD: fenv.c,v 1.2 2010/07/31 22:14:18 joerg Exp $");
 
 #include 
 #include 
@@ -119,12 +119,10 @@
 
 static void __test_sse(void)
 {
-	char machine[64];
-	size_t oldlen;
+	size_t oldlen = sizeof(HAS_SSE);
 	int rv;
 
 	rv = sysctlbyname("machdep.sse", &__HAS_SSE, &oldlen, NULL, 0);
-	_DIAGASSERT(rv != -1);
 	if (rv == -1)
 		__HAS_SSE = 0;
 }