CVS commit: src/lib/libc/softfloat/bits64

2016-03-29 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Tue Mar 29 18:42:29 UTC 2016

Modified Files:
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Avoid warnings (signed/unsigned comparision and unused variable)


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.13 src/lib/libc/softfloat/bits64/softfloat.c:1.14
--- src/lib/libc/softfloat/bits64/softfloat.c:1.13	Fri Nov 22 17:04:24 2013
+++ src/lib/libc/softfloat/bits64/softfloat.c	Tue Mar 29 18:42:29 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.13 2013/11/22 17:04:24 martin Exp $ */
+/* $NetBSD: softfloat.c,v 1.14 2016/03/29 18:42:29 martin Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@ this code that are retained.
 
 #include 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: softfloat.c,v 1.13 2013/11/22 17:04:24 martin Exp $");
+__RCSID("$NetBSD: softfloat.c,v 1.14 2016/03/29 18:42:29 martin Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -661,7 +661,7 @@ static floatx80
 {
 int8 roundingMode;
 flag roundNearestEven, increment, isTiny;
-int64 roundIncrement, roundMask, roundBits;
+uint64 roundIncrement, roundMask, roundBits;
 
 roundingMode = float_rounding_mode;
 roundNearestEven = ( roundingMode == float_round_nearest_even );
@@ -3938,7 +3938,7 @@ according to the IEC/IEEE Standard for B
 */
 floatx80 floatx80_rem( floatx80 a, floatx80 b )
 {
-flag aSign, bSign, zSign;
+flag aSign, zSign;
 int32 aExp, bExp, expDiff;
 bits64 aSig0, aSig1, bSig;
 bits64 q, term0, term1, alternateASig0, alternateASig1;
@@ -3949,7 +3949,7 @@ floatx80 floatx80_rem( floatx80 a, float
 aSign = extractFloatx80Sign( a );
 bSig = extractFloatx80Frac( b );
 bExp = extractFloatx80Exp( b );
-bSign = extractFloatx80Sign( b );
+
 if ( aExp == 0x7FFF ) {
 if ((bits64) ( aSig0<<1 )
  || ( ( bExp == 0x7FFF ) && (bits64) ( bSig<<1 ) ) ) {



CVS commit: src/lib/libc/softfloat

2015-04-08 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Wed Apr  8 13:16:37 UTC 2015

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
Restrict the arm compiler optimization hack to gcc 4.5


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.19 src/lib/libc/softfloat/Makefile.inc:1.20
--- src/lib/libc/softfloat/Makefile.inc:1.19	Sun Aug 10 23:39:08 2014
+++ src/lib/libc/softfloat/Makefile.inc	Wed Apr  8 13:16:37 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.19 2014/08/10 23:39:08 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.20 2015/04/08 13:16:37 martin Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -31,7 +31,7 @@ SRCS+=		${SRCS.softfloat}
 
 # XXX
 .if defined(HAVE_GCC)
-. if (${LIBC_MACHINE_CPU} == arm)
+. if (${LIBC_MACHINE_CPU} == arm)  (${HAVE_GCC} == 45)
 # See doc/HACKS for more information.
 COPTS.softfloat.c+=	-Wno-enum-compare
 COPTS.softfloat.c+=	${${ACTIVE_CXX} == gcc:? -fno-tree-vrp :}



CVS commit: src/lib/libc/softfloat

2014-01-30 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jan 30 19:06:54 UTC 2014

Added Files:
src/lib/libc/softfloat: unordtf2.c

Log Message:
unord for float128 long double


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/lib/libc/softfloat/unordtf2.c

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

Added files:

Index: src/lib/libc/softfloat/unordtf2.c
diff -u /dev/null src/lib/libc/softfloat/unordtf2.c:1.1
--- /dev/null	Thu Jan 30 19:06:54 2014
+++ src/lib/libc/softfloat/unordtf2.c	Thu Jan 30 19:06:54 2014
@@ -0,0 +1,28 @@
+/* $NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $ */
+
+/*
+ * Written by Richard Earnshaw, 2003.  This file is in the Public Domain.
+ */
+
+#include softfloat-for-gcc.h
+#include milieu.h
+#include softfloat.h
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+flag __unordtf2(float128, float128);
+
+flag
+__unordtf2(float128 a, float128 b)
+{
+	/*
+	 * The comparison is unordered if either input is a NaN.
+	 * Test for this by comparing each operand with itself.
+	 * We must perform both comparisons to correctly check for
+	 * signalling NaNs.
+	 */
+	return 1 ^ (float128_eq(a, a)  float128_eq(b, b));
+}



CVS commit: src/lib/libc/softfloat

2014-01-30 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jan 30 19:11:54 UTC 2014

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
Add unordtf2.c


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.16 src/lib/libc/softfloat/Makefile.inc:1.17
--- src/lib/libc/softfloat/Makefile.inc:1.16	Thu Dec 19 22:20:01 2013
+++ src/lib/libc/softfloat/Makefile.inc	Thu Jan 30 19:11:54 2014
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.16 2013/12/19 22:20:01 joerg Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2014/01/30 19:11:54 matt Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -23,7 +23,8 @@ SRCS.softfloat+=__aeabi_dcmpun.c __aeabi
 SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \
 		eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \
 		eqtf2.c netf2.c gttf2.c getf2.c lttf2.c letf2.c negtf2.c \
-		nexf2.c gtxf2.c gexf2.c negxf2.c unordsf2.c unorddf2.c
+		nexf2.c gtxf2.c gexf2.c negxf2.c \
+		unordsf2.c unorddf2.c unordtf2.c
 .endif
 
 SRCS+=		${SRCS.softfloat}



CVS commit: src/lib/libc/softfloat

2014-01-30 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jan 30 19:11:41 UTC 2014

Modified Files:
src/lib/libc/softfloat: unordtf2.c

Log Message:
Make confiditon on FLOAT128


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/softfloat/unordtf2.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/libc/softfloat/unordtf2.c
diff -u src/lib/libc/softfloat/unordtf2.c:1.1 src/lib/libc/softfloat/unordtf2.c:1.2
--- src/lib/libc/softfloat/unordtf2.c:1.1	Thu Jan 30 19:06:54 2014
+++ src/lib/libc/softfloat/unordtf2.c	Thu Jan 30 19:11:41 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $ */
+/* $NetBSD: unordtf2.c,v 1.2 2014/01/30 19:11:41 matt Exp $ */
 
 /*
  * Written by Richard Earnshaw, 2003.  This file is in the Public Domain.
@@ -10,9 +10,11 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $);
+__RCSID($NetBSD: unordtf2.c,v 1.2 2014/01/30 19:11:41 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
+#ifdef FLOAT128
+
 flag __unordtf2(float128, float128);
 
 flag
@@ -26,3 +28,5 @@ __unordtf2(float128 a, float128 b)
 	 */
 	return 1 ^ (float128_eq(a, a)  float128_eq(b, b));
 }
+
+#endif /* FLOAT128 */



CVS commit: src/lib/libc/softfloat

2013-12-19 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Thu Dec 19 22:20:01 UTC 2013

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
Only apply -fno-tree-vrp for GCC.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.15 src/lib/libc/softfloat/Makefile.inc:1.16
--- src/lib/libc/softfloat/Makefile.inc:1.15	Tue Apr 30 01:42:04 2013
+++ src/lib/libc/softfloat/Makefile.inc	Thu Dec 19 22:20:01 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.15 2013/04/30 01:42:04 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.16 2013/12/19 22:20:01 joerg Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -32,7 +32,8 @@ SRCS+=		${SRCS.softfloat}
 .if defined(HAVE_GCC)  ${HAVE_GCC} = 45
 .if (${MACHINE_CPU} == arm)
 # See doc/HACKS for more information.
-COPTS.softfloat.c+=	-Wno-enum-compare -fno-tree-vrp
+COPTS.softfloat.c+=	-Wno-enum-compare
+COPTS.softfloat.c+=	${${ACTIVE_CXX} == gcc:? -fno-tree-vrp :}
 .elif (${MACHINE_CPU} == mips || \
  ${MACHINE_CPU} == sh3)
 COPTS.softfloat.c+=	-Wno-enum-compare



CVS commit: src/lib/libc/softfloat/bits64

2013-11-22 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Fri Nov 22 17:04:24 UTC 2013

Modified Files:
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Fix a cast from the lint cleanup that made small exponents (i.e. values  1)
sign extend wrong and overflow, causing an underflow in all 128 bit sqrt
calculations.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.12 src/lib/libc/softfloat/bits64/softfloat.c:1.13
--- src/lib/libc/softfloat/bits64/softfloat.c:1.12	Thu Jan 10 08:16:11 2013
+++ src/lib/libc/softfloat/bits64/softfloat.c	Fri Nov 22 17:04:24 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.12 2013/01/10 08:16:11 matt Exp $ */
+/* $NetBSD: softfloat.c,v 1.13 2013/11/22 17:04:24 martin Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@ this code that are retained.
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.12 2013/01/10 08:16:11 matt Exp $);
+__RCSID($NetBSD: softfloat.c,v 1.13 2013/11/22 17:04:24 martin Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -5261,7 +5261,7 @@ float128 float128_sqrt( float128 a )
 if ( ( aSig0 | aSig1 ) == 0 ) return packFloat128( 0, 0, 0, 0 );
 normalizeFloat128Subnormal( aSig0, aSig1, aExp, aSig0, aSig1 );
 }
-zExp = ( (unsigned int)(aExp - 0x3FFF)  1) + 0x3FFE;
+zExp = (int32) ( (aExp - 0x3FFF)  1) + 0x3FFE;
 aSig0 |= LIT64( 0x0001 );
 zSig0 = estimateSqrt32((int16)aExp, (bits32)(aSig017));
 shortShift128Left( aSig0, aSig1, 13 - ( aExp  1 ), aSig0, aSig1 );



CVS commit: src/lib/libc/softfloat

2013-08-01 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Aug  1 22:18:50 UTC 2013

Modified Files:
src/lib/libc/softfloat: softfloat-for-gcc.h

Log Message:
Make sure to arm/aeabi.h if we are doing using EABI.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/softfloat/softfloat-for-gcc.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/libc/softfloat/softfloat-for-gcc.h
diff -u src/lib/libc/softfloat/softfloat-for-gcc.h:1.10 src/lib/libc/softfloat/softfloat-for-gcc.h:1.11
--- src/lib/libc/softfloat/softfloat-for-gcc.h:1.10	Tue Apr 16 10:54:53 2013
+++ src/lib/libc/softfloat/softfloat-for-gcc.h	Thu Aug  1 22:18:50 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat-for-gcc.h,v 1.10 2013/04/16 10:54:53 matt Exp $ */
+/* $NetBSD: softfloat-for-gcc.h,v 1.11 2013/08/01 22:18:50 matt Exp $ */
 
 /*
  * Move private identifiers with external linkage into implementation
@@ -169,6 +169,7 @@
 #endif
 
 #ifdef __ARM_EABI__
+#include arm/aeabi.h
 #define __addsf3			__aeabi_fadd
 #define __adddf3			__aeabi_dadd
 



CVS commit: src/lib/libc/softfloat

2013-08-01 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Aug  1 23:21:19 UTC 2013

Modified Files:
src/lib/libc/softfloat: softfloat-for-gcc.h

Log Message:
Only include arm/aeabi.h when __ARM_PCS_VFP is defined.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/softfloat/softfloat-for-gcc.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/libc/softfloat/softfloat-for-gcc.h
diff -u src/lib/libc/softfloat/softfloat-for-gcc.h:1.11 src/lib/libc/softfloat/softfloat-for-gcc.h:1.12
--- src/lib/libc/softfloat/softfloat-for-gcc.h:1.11	Thu Aug  1 22:18:50 2013
+++ src/lib/libc/softfloat/softfloat-for-gcc.h	Thu Aug  1 23:21:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat-for-gcc.h,v 1.11 2013/08/01 22:18:50 matt Exp $ */
+/* $NetBSD: softfloat-for-gcc.h,v 1.12 2013/08/01 23:21:19 matt Exp $ */
 
 /*
  * Move private identifiers with external linkage into implementation
@@ -169,7 +169,9 @@
 #endif
 
 #ifdef __ARM_EABI__
+#ifdef __ARM_PCS_VFP
 #include arm/aeabi.h
+#endif
 #define __addsf3			__aeabi_fadd
 #define __adddf3			__aeabi_dadd
 



CVS commit: src/lib/libc/softfloat

2013-04-16 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Tue Apr 16 10:54:53 UTC 2013

Modified Files:
src/lib/libc/softfloat: Makefile.inc softfloat-for-gcc.h

Log Message:
ARM EABI needs different floating point comparision functions.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/softfloat/Makefile.inc
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/softfloat/softfloat-for-gcc.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/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.12 src/lib/libc/softfloat/Makefile.inc:1.13
--- src/lib/libc/softfloat/Makefile.inc:1.12	Fri Nov 16 12:38:09 2012
+++ src/lib/libc/softfloat/Makefile.inc	Tue Apr 16 10:54:53 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.12 2012/11/16 12:38:09 he Exp $
+#	$NetBSD: Makefile.inc,v 1.13 2013/04/16 10:54:53 matt Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -12,10 +12,19 @@ SRCS.softfloat= softfloat.c
 SRCS.softfloat+=fpgetround.c fpsetround.c fpgetmask.c fpsetmask.c \
 		fpgetsticky.c fpsetsticky.c
 
+.if ${MACHINE:Mearm*} != 
+SRCS.softfloat+=__aeabi_dcmpeq.c __aeabi_fcmpeq.c
+SRCS.softfloat+=__aeabi_dcmpge.c __aeabi_fcmpge.c
+SRCS.softfloat+=__aeabi_dcmpgt.c __aeabi_fcmpgt.c
+SRCS.softfloat+=__aeabi_dcmple.c __aeabi_fcmple.c
+SRCS.softfloat+=__aeabi_dcmplt.c __aeabi_fcmplt.c
+SRCS.softfloat+=__aeabi_dcmpun.c __aeabi_fcmpun.c
+.else
 SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \
 		eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \
 		eqtf2.c netf2.c gttf2.c getf2.c lttf2.c letf2.c negtf2.c \
 		nexf2.c gtxf2.c gexf2.c negxf2.c unordsf2.c unorddf2.c
+.endif
 
 SRCS+=		${SRCS.softfloat}
 

Index: src/lib/libc/softfloat/softfloat-for-gcc.h
diff -u src/lib/libc/softfloat/softfloat-for-gcc.h:1.9 src/lib/libc/softfloat/softfloat-for-gcc.h:1.10
--- src/lib/libc/softfloat/softfloat-for-gcc.h:1.9	Sun Aug  5 04:27:42 2012
+++ src/lib/libc/softfloat/softfloat-for-gcc.h	Tue Apr 16 10:54:53 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat-for-gcc.h,v 1.9 2012/08/05 04:27:42 matt Exp $ */
+/* $NetBSD: softfloat-for-gcc.h,v 1.10 2013/04/16 10:54:53 matt Exp $ */
 
 /*
  * Move private identifiers with external linkage into implementation
@@ -208,19 +208,4 @@
 #define __extendsfdf2			__aeabi_f2d
 #define __truncdfsf2			__aeabi_d2f
 
-#define __eqsf2__aeabi_fcmpeq
-#define __eqdf2__aeabi_dcmpeq
-
-#define __ltsf2__aeabi_fcmplt
-#define __ltdf2__aeabi_dcmplt
-
-#define __lesf2__aeabi_fcmple
-#define __ledf2__aeabi_dcmple
-
-#define __gtsf2__aeabi_fcmpgt
-#define __gtdf2__aeabi_dcmpgt
-
-#define __gesf2__aeabi_fcmpge
-#define __gedf2__aeabi_dcmpge
-
 #endif /* __ARM_EABI__ */



CVS commit: src/lib/libc/softfloat

2013-01-10 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Jan 10 08:16:11 UTC 2013

Modified Files:
src/lib/libc/softfloat: fpsetmask.c fpsetround.c fpsetsticky.c
softfloat-specialize
src/lib/libc/softfloat/bits32: softfloat.c
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Add hooks to softfloat to support per-lwp exception state.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/softfloat/fpsetmask.c
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/softfloat/fpsetround.c \
src/lib/libc/softfloat/fpsetsticky.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/softfloat/softfloat-specialize
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/softfloat/bits32/softfloat.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/fpsetmask.c
diff -u src/lib/libc/softfloat/fpsetmask.c:1.4 src/lib/libc/softfloat/fpsetmask.c:1.5
--- src/lib/libc/softfloat/fpsetmask.c:1.4	Mon Apr 28 20:23:00 2008
+++ src/lib/libc/softfloat/fpsetmask.c	Thu Jan 10 08:16:10 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: fpsetmask.c,v 1.4 2008/04/28 20:23:00 martin Exp $ */
+/* $NetBSD: fpsetmask.c,v 1.5 2013/01/10 08:16:10 matt Exp $ */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: fpsetmask.c,v 1.4 2008/04/28 20:23:00 martin Exp $);
+__RCSID($NetBSD: fpsetmask.c,v 1.5 2013/01/10 08:16:10 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include namespace.h
@@ -50,9 +50,11 @@ __weak_alias(fpsetmask,_fpsetmask)
 fp_except
 fpsetmask(fp_except mask)
 {
-	fp_except old;
-
-	old = float_exception_mask;
+#ifdef set_float_exception_mask
+	return set_float_exception_mask(mask);
+#else
+	const fp_except old = float_exception_mask;
 	float_exception_mask = mask;
 	return old;
+#endif
 }

Index: src/lib/libc/softfloat/fpsetround.c
diff -u src/lib/libc/softfloat/fpsetround.c:1.3 src/lib/libc/softfloat/fpsetround.c:1.4
--- src/lib/libc/softfloat/fpsetround.c:1.3	Mon Apr 28 20:23:00 2008
+++ src/lib/libc/softfloat/fpsetround.c	Thu Jan 10 08:16:10 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: fpsetround.c,v 1.3 2008/04/28 20:23:00 martin Exp $ */
+/* $NetBSD: fpsetround.c,v 1.4 2013/01/10 08:16:10 matt Exp $ */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: fpsetround.c,v 1.3 2008/04/28 20:23:00 martin Exp $);
+__RCSID($NetBSD: fpsetround.c,v 1.4 2013/01/10 08:16:10 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include namespace.h
@@ -50,9 +50,11 @@ __weak_alias(fpsetround,_fpsetround)
 fp_rnd
 fpsetround(fp_rnd rnd_dir)
 {
-	fp_rnd old;
-
-	old = float_rounding_mode;
+#ifdef set_float_rounding_mode
+	return set_float_rounding_mode(rnd_dir);
+#else
+	const fp_rnd old = float_rounding_mode;
 	float_rounding_mode = rnd_dir;
 	return old;
+#endif
 }
Index: src/lib/libc/softfloat/fpsetsticky.c
diff -u src/lib/libc/softfloat/fpsetsticky.c:1.3 src/lib/libc/softfloat/fpsetsticky.c:1.4
--- src/lib/libc/softfloat/fpsetsticky.c:1.3	Mon Apr 28 20:23:00 2008
+++ src/lib/libc/softfloat/fpsetsticky.c	Thu Jan 10 08:16:10 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: fpsetsticky.c,v 1.3 2008/04/28 20:23:00 martin Exp $ */
+/* $NetBSD: fpsetsticky.c,v 1.4 2013/01/10 08:16:10 matt Exp $ */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: fpsetsticky.c,v 1.3 2008/04/28 20:23:00 martin Exp $);
+__RCSID($NetBSD: fpsetsticky.c,v 1.4 2013/01/10 08:16:10 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include namespace.h
@@ -50,9 +50,11 @@ __weak_alias(fpsetsticky,_fpsetsticky)
 fp_except
 fpsetsticky(fp_except except)
 {
-	fp_except old;
-
-	old = float_exception_flags;
+#ifdef set_float_exception_flags
+	return set_float_exception_flags(except, 1);
+#else
+	const fp_except old = float_exception_flags;
 	float_exception_flags = except;
 	return old;
+#endif
 }

Index: src/lib/libc/softfloat/softfloat-specialize
diff -u src/lib/libc/softfloat/softfloat-specialize:1.7 src/lib/libc/softfloat/softfloat-specialize:1.8
--- src/lib/libc/softfloat/softfloat-specialize:1.7	Wed Mar 21 02:32:26 2012
+++ src/lib/libc/softfloat/softfloat-specialize	Thu Jan 10 08:16:10 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: softfloat-specialize,v 1.7 2012/03/21 02:32:26 christos Exp $	*/
+/*	$NetBSD: softfloat-specialize,v 1.8 2013/01/10 08:16:10 matt Exp $	*/
 
 /* This is a derivative work. */
 
@@ -56,16 +56,28 @@ should be simply `float_exception_flags 
 ---
 */
 #ifdef SOFTFLOAT_FOR_GCC
+#ifndef set_float_exception_mask
 #define float_exception_mask	_softfloat_float_exception_mask
 #endif
+#endif
+#ifndef 

CVS commit: src/lib/libc/softfloat

2012-11-16 Thread Havard Eidnes
Module Name:src
Committed By:   he
Date:   Fri Nov 16 12:38:10 UTC 2012

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
Fix make syntax problem by putting the condition on the same line as .elif.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.11 src/lib/libc/softfloat/Makefile.inc:1.12
--- src/lib/libc/softfloat/Makefile.inc:1.11	Wed Nov 14 03:47:30 2012
+++ src/lib/libc/softfloat/Makefile.inc	Fri Nov 16 12:38:09 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.11 2012/11/14 03:47:30 msaitoh Exp $
+#	$NetBSD: Makefile.inc,v 1.12 2012/11/16 12:38:09 he Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -24,8 +24,7 @@ SRCS+=		${SRCS.softfloat}
 .if (${MACHINE_CPU} == arm)
 # See doc/HACKS for more information.
 COPTS.softfloat.c+=	-Wno-enum-compare -fno-tree-vrp
-.elif
-(${MACHINE_CPU} == mips || \
+.elif (${MACHINE_CPU} == mips || \
  ${MACHINE_CPU} == sh3)
 COPTS.softfloat.c+=	-Wno-enum-compare
 .endif



CVS commit: src/lib/libc/softfloat

2012-11-13 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Wed Nov 14 03:47:31 UTC 2012

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.10 src/lib/libc/softfloat/Makefile.inc:1.11
--- src/lib/libc/softfloat/Makefile.inc:1.10	Mon Jul  4 02:53:15 2011
+++ src/lib/libc/softfloat/Makefile.inc	Wed Nov 14 03:47:30 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.10 2011/07/04 02:53:15 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.11 2012/11/14 03:47:30 msaitoh Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -20,9 +20,13 @@ SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c 
 SRCS+=		${SRCS.softfloat}
 
 # XXX
-.if defined(HAVE_GCC)  ${HAVE_GCC} = 45  \
-(${MACHINE_CPU} == arm || \
- ${MACHINE_CPU} == mips || \
+.if defined(HAVE_GCC)  ${HAVE_GCC} = 45
+.if (${MACHINE_CPU} == arm)
+# See doc/HACKS for more information.
+COPTS.softfloat.c+=	-Wno-enum-compare -fno-tree-vrp
+.elif
+(${MACHINE_CPU} == mips || \
  ${MACHINE_CPU} == sh3)
 COPTS.softfloat.c+=	-Wno-enum-compare
 .endif
+.endif



CVS commit: src/lib/libc/softfloat

2012-08-04 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sun Aug  5 04:27:42 UTC 2012

Modified Files:
src/lib/libc/softfloat: softfloat-for-gcc.h

Log Message:
ARM EABI (AAPCS) uses different names for the softfloat routines that
the normal GCC ones.  So after we redefine softfloat's to be what (old) GCC
wants, we redefined the old GCC names to what ARM EABI want (but only if we
are using ARM EABI).  We do this for routines not compiled by softfloat so
can just have these redefinitions in one place.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/softfloat/softfloat-for-gcc.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/libc/softfloat/softfloat-for-gcc.h
diff -u src/lib/libc/softfloat/softfloat-for-gcc.h:1.8 src/lib/libc/softfloat/softfloat-for-gcc.h:1.9
--- src/lib/libc/softfloat/softfloat-for-gcc.h:1.8	Mon Dec 14 01:07:42 2009
+++ src/lib/libc/softfloat/softfloat-for-gcc.h	Sun Aug  5 04:27:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat-for-gcc.h,v 1.8 2009/12/14 01:07:42 matt Exp $ */
+/* $NetBSD: softfloat-for-gcc.h,v 1.9 2012/08/05 04:27:42 matt Exp $ */
 
 /*
  * Move private identifiers with external linkage into implementation
@@ -167,3 +167,60 @@
 #define float128_le			__letf2
 #define float128_gt			__gttf2
 #endif
+
+#ifdef __ARM_EABI__
+#define __addsf3			__aeabi_fadd
+#define __adddf3			__aeabi_dadd
+
+#define __subsf3			__aeabi_fsub
+#define __subdf3			__aeabi_dsub
+
+#define __mulsf3			__aeabi_fmul
+#define __muldf3			__aeabi_dmul
+
+#define __divsf3			__aeabi_fdiv
+#define __divdf3			__aeabi_ddiv
+
+#define __floatsisf			__aeabi_i2f
+#define __floatsidf			__aeabi_i2d
+
+#define __floatdisf			__aeabi_l2f
+#define __floatdidf			__aeabi_l2d
+
+#define __floatunsisf			__aeabi_ui2f
+#define __floatunsidf			__aeabi_ui2d
+
+#define __floatundisf			__aeabi_ul2f
+#define __floatundidf			__aeabi_ul2d
+
+#define __fixsfsi			__aeabi_f2iz
+#define __fixdfsi			__aeabi_d2iz
+
+#define __fixsfdi			__aeabi_f2lz
+#define __fixdfdi			__aeabi_d2lz
+
+#define __fixunssfsi			__aeabi_f2uiz
+#define __fixunsdfsi			__aeabi_d2uiz
+
+#define __fixunssfdi			__aeabi_f2ulz
+#define __fixunsdfdi			__aeabi_d2ulz
+
+#define __extendsfdf2			__aeabi_f2d
+#define __truncdfsf2			__aeabi_d2f
+
+#define __eqsf2__aeabi_fcmpeq
+#define __eqdf2__aeabi_dcmpeq
+
+#define __ltsf2__aeabi_fcmplt
+#define __ltdf2__aeabi_dcmplt
+
+#define __lesf2__aeabi_fcmple
+#define __ledf2__aeabi_dcmple
+
+#define __gtsf2__aeabi_fcmpgt
+#define __gtdf2__aeabi_dcmpgt
+
+#define __gesf2__aeabi_fcmpge
+#define __gedf2__aeabi_dcmpge
+
+#endif /* __ARM_EABI__ */



CVS commit: src/lib/libc/softfloat/bits64

2012-03-23 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Mar 24 00:06:21 UTC 2012

Modified Files:
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Fix a bug introduced by lint cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.10 src/lib/libc/softfloat/bits64/softfloat.c:1.11
--- src/lib/libc/softfloat/bits64/softfloat.c:1.10	Wed Mar 21 02:32:26 2012
+++ src/lib/libc/softfloat/bits64/softfloat.c	Sat Mar 24 00:06:20 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.10 2012/03/21 02:32:26 christos Exp $ */
+/* $NetBSD: softfloat.c,v 1.11 2012/03/24 00:06:20 matt Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@ this code that are retained.
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.10 2012/03/21 02:32:26 christos Exp $);
+__RCSID($NetBSD: softfloat.c,v 1.11 2012/03/24 00:06:20 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -2000,7 +2000,7 @@ float32 float32_div( float32 a, float32 
 aSig = 1;
 ++zExp;
 }
-zSig = (bits32)(((bits64) aSig)  32) / bSig;
+zSig = (bits32)bits64) aSig)  32) / bSig);
 if ( ( zSig  0x3F ) == 0 ) {
 zSig |= ( (bits64) bSig * zSig != ( (bits64) aSig )32 );
 }



CVS commit: src/lib/libc/softfloat/bits32

2012-03-21 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Mar 21 14:17:54 UTC 2012

Modified Files:
src/lib/libc/softfloat/bits32: softfloat.c

Log Message:
add casts


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/softfloat/bits32/softfloat.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/libc/softfloat/bits32/softfloat.c
diff -u src/lib/libc/softfloat/bits32/softfloat.c:1.1 src/lib/libc/softfloat/bits32/softfloat.c:1.2
--- src/lib/libc/softfloat/bits32/softfloat.c:1.1	Tue May 21 19:51:07 2002
+++ src/lib/libc/softfloat/bits32/softfloat.c	Wed Mar 21 10:17:54 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.1 2002/05/21 23:51:07 bjh21 Exp $ */
+/* $NetBSD: softfloat.c,v 1.2 2012/03/21 14:17:54 christos Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -53,7 +53,7 @@ this code that are retained.
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.1 2002/05/21 23:51:07 bjh21 Exp $);
+__RCSID($NetBSD: softfloat.c,v 1.2 2012/03/21 14:17:54 christos Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -237,7 +237,7 @@ static float32 roundAndPackFloat32( flag
 isTiny =
( float_detect_tininess == float_tininess_before_rounding )
 || ( zExp  -1 )
-|| ( zSig + roundIncrement  0x8000 );
+|| ( zSig + roundIncrement  (uint32)0x8000 );
 shift32RightJamming( zSig, - zExp, zSig );
 zExp = 0;
 roundBits = zSig  0x7F;
@@ -281,7 +281,7 @@ floating-point value `a'.
 INLINE bits32 extractFloat64Frac1( float64 a )
 {
 
-return FLOAT64_DEMANGLE(a)  LIT64( 0x );
+return (bits32)(FLOAT64_DEMANGLE(a)  LIT64(0x));
 
 }
 
@@ -294,7 +294,7 @@ floating-point value `a'.
 INLINE bits32 extractFloat64Frac0( float64 a )
 {
 
-return ( FLOAT64_DEMANGLE(a)32 )  0x000F;
+return (bits32)((FLOAT64_DEMANGLE(a)  32)  0x000F);
 
 }
 
@@ -306,7 +306,7 @@ Returns the exponent bits of the double-
 INLINE int16 extractFloat64Exp( float64 a )
 {
 
-return ( FLOAT64_DEMANGLE(a)52 )  0x7FF;
+return (int16)((FLOAT64_DEMANGLE(a)  52)  0x7FF);
 
 }
 
@@ -318,7 +318,7 @@ Returns the sign bit of the double-preci
 INLINE flag extractFloat64Sign( float64 a )
 {
 
-return FLOAT64_DEMANGLE(a)63;
+return (flag)(FLOAT64_DEMANGLE(a)  63);
 
 }
 
@@ -535,7 +535,7 @@ float32 int32_to_float32( int32 a )
 if ( a == 0 ) return 0;
 if ( a == (sbits32) 0x8000 ) return packFloat32( 1, 0x9E, 0 );
 zSign = ( a  0 );
-return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a );
+return normalizeRoundAndPackFloat32(zSign, 0x9C, (uint32)(zSign ? - a : a));
 
 }
 



CVS commit: src/lib/libc/softfloat/bits64

2012-03-20 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Tue Mar 20 21:34:51 UTC 2012

Modified Files:
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Remove initialized but unused variable


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.8 src/lib/libc/softfloat/bits64/softfloat.c:1.9
--- src/lib/libc/softfloat/bits64/softfloat.c:1.8	Sun Jul 10 04:52:23 2011
+++ src/lib/libc/softfloat/bits64/softfloat.c	Tue Mar 20 21:34:51 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.8 2011/07/10 04:52:23 matt Exp $ */
+/* $NetBSD: softfloat.c,v 1.9 2012/03/20 21:34:51 martin Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@ this code that are retained.
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.8 2011/07/10 04:52:23 matt Exp $);
+__RCSID($NetBSD: softfloat.c,v 1.9 2012/03/20 21:34:51 martin Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -5118,7 +5118,7 @@ according to the IEC/IEEE Standard for B
 */
 float128 float128_rem( float128 a, float128 b )
 {
-flag aSign, bSign, zSign;
+flag aSign, zSign;
 int32 aExp, bExp, expDiff;
 bits64 aSig0, aSig1, bSig0, bSig1, q, term0, term1, term2;
 bits64 allZero, alternateASig0, alternateASig1, sigMean1;
@@ -5132,7 +5132,6 @@ float128 float128_rem( float128 a, float
 bSig1 = extractFloat128Frac1( b );
 bSig0 = extractFloat128Frac0( b );
 bExp = extractFloat128Exp( b );
-bSign = extractFloat128Sign( b );
 if ( aExp == 0x7FFF ) {
 if (( aSig0 | aSig1 )
  || ( ( bExp == 0x7FFF )  ( bSig0 | bSig1 ) ) ) {



CVS commit: src/lib/libc/softfloat

2012-03-20 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Wed Mar 21 02:32:27 UTC 2012

Modified Files:
src/lib/libc/softfloat: softfloat-specialize
src/lib/libc/softfloat/bits64: softfloat-macros softfloat.c

Log Message:
cast to appropriate types.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/softfloat/softfloat-specialize
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/softfloat/bits64/softfloat-macros
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/softfloat-specialize
diff -u src/lib/libc/softfloat/softfloat-specialize:1.6 src/lib/libc/softfloat/softfloat-specialize:1.7
--- src/lib/libc/softfloat/softfloat-specialize:1.6	Sun Mar  6 05:27:37 2011
+++ src/lib/libc/softfloat/softfloat-specialize	Tue Mar 20 22:32:26 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: softfloat-specialize,v 1.6 2011/03/06 10:27:37 martin Exp $	*/
+/*	$NetBSD: softfloat-specialize,v 1.7 2012/03/21 02:32:26 christos Exp $	*/
 
 /* This is a derivative work. */
 
@@ -114,7 +114,7 @@ static
 flag float32_is_nan( float32 a )
 {
 
-return ( 0xFF00  (bits32) ( a1 ) );
+return ( (bits32)0xFF00  (bits32) ( a1 ) );
 
 }
 
@@ -163,7 +163,7 @@ precision floating-point format.
 static float32 commonNaNToFloat32( commonNaNT a )
 {
 
-return ( ( (bits32) a.sign )31 ) | 0x7FC0 | ( a.high41 );
+return ( ( (bits32) a.sign )31 ) | 0x7FC0 | (bits32)( a.high41 );
 
 }
 
@@ -213,7 +213,7 @@ static
 flag float64_is_nan( float64 a )
 {
 
-return ( LIT64( 0xFFE0 ) 
+return ( (bits64)LIT64( 0xFFE0 ) 
 	 (bits64) ( FLOAT64_DEMANGLE(a)1 ) );
 
 }
@@ -249,7 +249,7 @@ static commonNaNT float64ToCommonNaN( fl
 commonNaNT z;
 
 if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
-z.sign = FLOAT64_DEMANGLE(a)63;
+z.sign = (flag)(FLOAT64_DEMANGLE(a)63);
 z.low = 0;
 z.high = FLOAT64_DEMANGLE(a)12;
 return z;
@@ -427,7 +427,7 @@ flag float128_is_nan( float128 a )
 {
 
 return
-   ( LIT64( 0xFFFE ) = (bits64) ( a.high1 ) )
+   ( (bits64)LIT64( 0xFFFE ) = (bits64) ( a.high1 ) )
  ( a.low || ( a.high  LIT64( 0x ) ) );
 
 }
@@ -459,7 +459,7 @@ static commonNaNT float128ToCommonNaN( f
 commonNaNT z;
 
 if ( float128_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
-z.sign = a.high63;
+z.sign = (flag)(a.high63);
 shortShift128Left( a.high, a.low, 16, z.high, z.low );
 return z;
 

Index: src/lib/libc/softfloat/bits64/softfloat-macros
diff -u src/lib/libc/softfloat/bits64/softfloat-macros:1.2 src/lib/libc/softfloat/bits64/softfloat-macros:1.3
--- src/lib/libc/softfloat/bits64/softfloat-macros:1.2	Mon Feb 16 05:23:35 2009
+++ src/lib/libc/softfloat/bits64/softfloat-macros	Tue Mar 20 22:32:26 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat-macros,v 1.2 2009/02/16 10:23:35 tron Exp $ */
+/* $NetBSD: softfloat-macros,v 1.3 2012/03/21 02:32:26 christos Exp $ */
 
 /*
 ===
@@ -464,10 +464,10 @@ INLINE void mul64To128( bits64 a, bits64
 bits32 aHigh, aLow, bHigh, bLow;
 bits64 z0, zMiddleA, zMiddleB, z1;
 
-aLow = a;
-aHigh = a32;
-bLow = b;
-bHigh = b32;
+aLow = (bits32)a;
+aHigh = (bits32)(a32);
+bLow = (bits32)b;
+bHigh = (bits32)(b32);
 z1 = ( (bits64) aLow ) * bLow;
 zMiddleA = ( (bits64) aLow ) * bHigh;
 zMiddleB = ( (bits64) aHigh ) * bLow;
@@ -616,7 +616,7 @@ static bits32 estimateSqrt32( int16 aExp
 z = 0x8000 + ( a17 ) - sqrtEvenAdjustments[ idx ];
 z = a / z + z;
 z = ( 0x2 = z ) ? 0x8000 : ( z15 );
-if ( z = a ) return (bits32) ( ( (sbits32) a )1 );
+if ( z = a ) return (bits32) ( ( (bits32) a )1 );
 }
 return ( (bits32) ( ( ( (bits64) a )31 ) / z ) ) + ( z1 );
 
@@ -682,7 +682,7 @@ static int8 countLeadingZeros64( bits64 
 else {
 a = 32;
 }
-shiftCount += countLeadingZeros32( a );
+shiftCount += (int8)countLeadingZeros32( (bits32)a );
 return shiftCount;
 
 }

Index: src/lib/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.9 src/lib/libc/softfloat/bits64/softfloat.c:1.10
--- src/lib/libc/softfloat/bits64/softfloat.c:1.9	Tue Mar 20 17:34:51 2012
+++ src/lib/libc/softfloat/bits64/softfloat.c	Tue Mar 20 22:32:26 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.9 2012/03/20 21:34:51 martin Exp $ */
+/* $NetBSD: softfloat.c,v 1.10 2012/03/21 02:32:26 christos Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@ this code that are retained.
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.9 2012/03/20 21:34:51 martin 

CVS commit: src/lib/libc/softfloat/bits64

2011-07-08 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sat Jul  9 02:28:31 UTC 2011

Modified Files:
src/lib/libc/softfloat/bits64: softfloat.c

Log Message:
Add SOFTFLOAT_NEED_FIXUNS condition around the float128 fixuns


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/softfloat/bits64/softfloat.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/libc/softfloat/bits64/softfloat.c
diff -u src/lib/libc/softfloat/bits64/softfloat.c:1.6 src/lib/libc/softfloat/bits64/softfloat.c:1.7
--- src/lib/libc/softfloat/bits64/softfloat.c:1.6	Mon Jul  4 08:02:35 2011
+++ src/lib/libc/softfloat/bits64/softfloat.c	Sat Jul  9 02:28:31 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.6 2011/07/04 08:02:35 matt Exp $ */
+/* $NetBSD: softfloat.c,v 1.7 2011/07/09 02:28:31 matt Exp $ */
 
 /*
  * This version hacked for use with gcc -msoft-float by bjh21.
@@ -46,7 +46,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: softfloat.c,v 1.6 2011/07/04 08:02:35 matt Exp $);
+__RCSID($NetBSD: softfloat.c,v 1.7 2011/07/09 02:28:31 matt Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #ifdef SOFTFLOAT_FOR_GCC
@@ -4482,6 +4482,7 @@
 
 }
 
+#if defined(SOFTFLOAT_FOR_GCC)  defined(SOFTFLOAT_NEED_FIXUNS)
 /*
  * just like above - but do not care for overflow of signed results
  */
@@ -4531,6 +4532,7 @@
 return z;
 
 }
+#endif /* defined(SOFTFLOAT_FOR_GCC)  defined(SOFTFLOAT_NEED_FIXUNS) */
 
 /*
 ---



CVS commit: src/lib/libc/softfloat

2011-07-03 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Sun Jul  3 15:26:58 UTC 2011

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
mips wants some -Wno-enum-compare here, too.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.8 src/lib/libc/softfloat/Makefile.inc:1.9
--- src/lib/libc/softfloat/Makefile.inc:1.8	Fri Jul  1 01:25:52 2011
+++ src/lib/libc/softfloat/Makefile.inc	Sun Jul  3 15:26:58 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.8 2011/07/01 01:25:52 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.9 2011/07/03 15:26:58 mrg Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -21,6 +21,7 @@
 
 # XXX
 .if defined(HAVE_GCC)  ${HAVE_GCC} = 45  \
-(${MACHINE_ARCH} == arm || ${MACHINE_ARCH} == armeb)
+(${MACHINE_CPU} == arm || \
+ ${MACHINE_CPU} == mips)
 COPTS.softfloat.c+=	-Wno-enum-compare
 .endif



CVS commit: src/lib/libc/softfloat

2011-07-03 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Jul  4 02:53:15 UTC 2011

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
sh3 also needs -Wno-enum-compare here.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.9 src/lib/libc/softfloat/Makefile.inc:1.10
--- src/lib/libc/softfloat/Makefile.inc:1.9	Sun Jul  3 15:26:58 2011
+++ src/lib/libc/softfloat/Makefile.inc	Mon Jul  4 02:53:15 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.9 2011/07/03 15:26:58 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.10 2011/07/04 02:53:15 mrg Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -22,6 +22,7 @@
 # XXX
 .if defined(HAVE_GCC)  ${HAVE_GCC} = 45  \
 (${MACHINE_CPU} == arm || \
- ${MACHINE_CPU} == mips)
+ ${MACHINE_CPU} == mips || \
+ ${MACHINE_CPU} == sh3)
 COPTS.softfloat.c+=	-Wno-enum-compare
 .endif



CVS commit: src/lib/libc/softfloat

2011-03-06 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Sun Mar  6 10:27:37 UTC 2011

Modified Files:
src/lib/libc/softfloat: softfloat-specialize

Log Message:
Apply local namespace protection equivalent to the weak alias done
in softfloat-for-gcc.h, which we can't include here, to move
float_exception_mask into implementation namespace.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/softfloat/softfloat-specialize

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

Modified files:

Index: src/lib/libc/softfloat/softfloat-specialize
diff -u src/lib/libc/softfloat/softfloat-specialize:1.5 src/lib/libc/softfloat/softfloat-specialize:1.6
--- src/lib/libc/softfloat/softfloat-specialize:1.5	Fri Mar  4 11:48:58 2011
+++ src/lib/libc/softfloat/softfloat-specialize	Sun Mar  6 10:27:37 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: softfloat-specialize,v 1.5 2011/03/04 11:48:58 martin Exp $	*/
+/*	$NetBSD: softfloat-specialize,v 1.6 2011/03/06 10:27:37 martin Exp $	*/
 
 /* This is a derivative work. */
 
@@ -55,6 +55,9 @@
 should be simply `float_exception_flags |= flags;'.
 ---
 */
+#ifdef SOFTFLOAT_FOR_GCC
+#define float_exception_mask	_softfloat_float_exception_mask
+#endif
 fp_except float_exception_mask = 0;
 void float_raise( fp_except flags )
 {
@@ -80,6 +83,7 @@
 	sigqueueinfo(getpid(), info);
 }
 }
+#undef float_exception_mask
 
 /*
 ---



CVS commit: src/lib/libc/softfloat

2011-03-04 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Fri Mar  4 11:48:58 UTC 2011

Modified Files:
src/lib/libc/softfloat: softfloat-specialize

Log Message:
Use sigqueueinfo() instead of raise() to generate exceptions. Provide
minimalistic siginfo data.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/softfloat/softfloat-specialize

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

Modified files:

Index: src/lib/libc/softfloat/softfloat-specialize
diff -u src/lib/libc/softfloat/softfloat-specialize:1.4 src/lib/libc/softfloat/softfloat-specialize:1.5
--- src/lib/libc/softfloat/softfloat-specialize:1.4	Sun Sep 26 21:13:27 2004
+++ src/lib/libc/softfloat/softfloat-specialize	Fri Mar  4 11:48:58 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: softfloat-specialize,v 1.4 2004/09/26 21:13:27 jmmv Exp $	*/
+/*	$NetBSD: softfloat-specialize,v 1.5 2011/03/04 11:48:58 martin Exp $	*/
 
 /* This is a derivative work. */
 
@@ -33,6 +33,8 @@
 */
 
 #include signal.h
+#include string.h
+#include unistd.h
 
 /*
 ---
@@ -56,11 +58,26 @@
 fp_except float_exception_mask = 0;
 void float_raise( fp_except flags )
 {
+siginfo_t info;
 
 float_exception_flags |= flags;
 
 if ( flags  float_exception_mask ) {
-	raise( SIGFPE );
+	memset(info, 0, sizeof info);
+	info.si_signo = SIGFPE;
+	info.si_pid = getpid();
+	info.si_uid = geteuid();
+	if (flags  float_flag_underflow)
+	info.si_code = FPE_FLTUND;
+	else if (flags  float_flag_overflow)
+	info.si_code = FPE_FLTOVF;
+	else if (flags  float_flag_divbyzero)
+	info.si_code = FPE_FLTDIV;
+	else if (flags  float_flag_invalid)
+	info.si_code = FPE_FLTINV;
+	else if (flags  float_flag_inexact)
+	info.si_code = FPE_FLTRES;
+	sigqueueinfo(getpid(), info);
 }
 }
 



CVS commit: src/lib/libc/softfloat

2011-01-17 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Mon Jan 17 10:08:35 UTC 2011

Modified Files:
src/lib/libc/softfloat: Makefile.inc
Added Files:
src/lib/libc/softfloat: eqtf2.c getf2.c gttf2.c letf2.c lttf2.c
negtf2.c netf2.c

Log Message:
Add long double functions for eq,ne,gt,le,ge,lt,neg ops.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libc/softfloat/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/lib/libc/softfloat/eqtf2.c \
src/lib/libc/softfloat/getf2.c src/lib/libc/softfloat/gttf2.c \
src/lib/libc/softfloat/letf2.c src/lib/libc/softfloat/lttf2.c \
src/lib/libc/softfloat/negtf2.c src/lib/libc/softfloat/netf2.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/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.6 src/lib/libc/softfloat/Makefile.inc:1.7
--- src/lib/libc/softfloat/Makefile.inc:1.6	Sun Dec  6 11:16:26 2009
+++ src/lib/libc/softfloat/Makefile.inc	Mon Jan 17 10:08:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.6 2009/12/06 11:16:26 uebayasi Exp $
+#	$NetBSD: Makefile.inc,v 1.7 2011/01/17 10:08:35 matt Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -14,6 +14,7 @@
 
 SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \
 		eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \
+		eqtf2.c netf2.c gttf2.c getf2.c lttf2.c letf2.c negtf2.c \
 		nexf2.c gtxf2.c gexf2.c negxf2.c unordsf2.c unorddf2.c
 
 SRCS+=		${SRCS.softfloat}

Added files:

Index: src/lib/libc/softfloat/eqtf2.c
diff -u /dev/null src/lib/libc/softfloat/eqtf2.c:1.1
--- /dev/null	Mon Jan 17 10:08:35 2011
+++ src/lib/libc/softfloat/eqtf2.c	Mon Jan 17 10:08:35 2011
@@ -0,0 +1,26 @@
+/* $NetBSD: eqtf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $ */
+
+/*
+ * Written by Matt Thomas, 2011.  This file is in the Public Domain.
+ */
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: eqtf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#include softfloat-for-gcc.h
+#include milieu.h
+#include softfloat.h
+
+#ifdef FLOAT128
+flag __eqtf2(float128, float128);
+
+flag
+__eqtf2(float128 a, float128 b)
+{
+
+	/* libgcc1.c says !(a == b) */
+	return !float128_eq(a, b);
+}
+#endif /* FLOAT128 */
Index: src/lib/libc/softfloat/getf2.c
diff -u /dev/null src/lib/libc/softfloat/getf2.c:1.1
--- /dev/null	Mon Jan 17 10:08:35 2011
+++ src/lib/libc/softfloat/getf2.c	Mon Jan 17 10:08:35 2011
@@ -0,0 +1,28 @@
+/* $NetBSD: getf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $ */
+
+/*
+ * Written by Matt Thomas, 2011.  This file is in the Public Domain.
+ */
+
+#include softfloat-for-gcc.h
+#include milieu.h
+#include softfloat.h
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: getf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#ifdef FLOAT128
+
+flag __getf2(float128, float128);
+
+flag
+__getf2(float128 a, float128 b)
+{
+
+	/* libgcc1.c says (a = b) - 1 */
+	return float128_le(b, a) - 1;
+}
+
+#endif /* FLOAT128 */
Index: src/lib/libc/softfloat/gttf2.c
diff -u /dev/null src/lib/libc/softfloat/gttf2.c:1.1
--- /dev/null	Mon Jan 17 10:08:35 2011
+++ src/lib/libc/softfloat/gttf2.c	Mon Jan 17 10:08:35 2011
@@ -0,0 +1,28 @@
+/* $NetBSD: gttf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $ */
+
+/*
+ * Written by Matt Thomas, 2011.  This file is in the Public Domain.
+ */
+
+#include softfloat-for-gcc.h
+#include milieu.h
+#include softfloat.h
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: gttf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#ifdef FLOAT128
+
+flag __gttf2(float128, float128);
+
+flag
+__gttf2(float128 a, float128 b)
+{
+
+	/* libgcc1.c says a  b */
+	return float128_lt(b, a);
+}
+
+#endif /* FLOAT128 */
Index: src/lib/libc/softfloat/letf2.c
diff -u /dev/null src/lib/libc/softfloat/letf2.c:1.1
--- /dev/null	Mon Jan 17 10:08:35 2011
+++ src/lib/libc/softfloat/letf2.c	Mon Jan 17 10:08:35 2011
@@ -0,0 +1,28 @@
+/* $NetBSD: letf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $ */
+
+/*
+ * Written by Matt Thomas, 2011.  This file is in the Public Domain.
+ */
+
+#include softfloat-for-gcc.h
+#include milieu.h
+#include softfloat.h
+
+#include sys/cdefs.h
+#if defined(LIBC_SCCS)  !defined(lint)
+__RCSID($NetBSD: letf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $);
+#endif /* LIBC_SCCS and not lint */
+
+#ifdef FLOAT128
+
+flag __letf2(float128, float128);
+
+flag
+__letf2(float128 a, float128 b)
+{
+
+	/* libgcc1.c says 1 - (a = b) */
+	return 1 - float128_le(a, b);
+}
+
+#endif /* FLOAT128 */
Index: src/lib/libc/softfloat/lttf2.c
diff -u /dev/null src/lib/libc/softfloat/lttf2.c:1.1
--- /dev/null	Mon Jan 17 10:08:35 2011
+++ src/lib/libc/softfloat/lttf2.c	Mon Jan 17 10:08:35 2011
@@ -0,0 +1,28 @@
+/* $NetBSD: lttf2.c,v 1.1 2011/01/17 10:08:35 matt Exp $ */
+
+/*

CVS commit: src/lib/libc/softfloat

2009-12-06 Thread Masao Uebayashi
Module Name:src
Committed By:   uebayasi
Date:   Sun Dec  6 11:16:26 UTC 2009

Modified Files:
src/lib/libc/softfloat: Makefile.inc

Log Message:
Fix typo in previous.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/softfloat/Makefile.inc

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

Modified files:

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.5 src/lib/libc/softfloat/Makefile.inc:1.6
--- src/lib/libc/softfloat/Makefile.inc:1.5	Sun Dec  6 05:34:42 2009
+++ src/lib/libc/softfloat/Makefile.inc	Sun Dec  6 11:16:26 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.5 2009/12/06 05:34:42 uebayasi Exp $
+#	$NetBSD: Makefile.inc,v 1.6 2009/12/06 11:16:26 uebayasi Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -9,10 +9,10 @@
 
 SRCS.softfloat= softfloat.c
 
-SRCS.softfloat+=fpsetround.c fpgetmask.c fpsetmask.c \
+SRCS.softfloat+=fpgetround.c fpsetround.c fpgetmask.c fpsetmask.c \
 		fpgetsticky.c fpsetsticky.c
 
-SRCS.softfloat+=nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \
+SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \
 		eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \
 		nexf2.c gtxf2.c gexf2.c negxf2.c unordsf2.c unorddf2.c