summaryrefslogtreecommitdiff
path: root/lib/libc/softfloat/bits64
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2007-11-08 21:31:04 +0000
committermartin <martin@NetBSD.org>2007-11-08 21:31:04 +0000
commit4cdfe9d3ee8d025b3b987caa05d15de01defbd54 (patch)
tree852202e9925bf77fda12e9c52ea60dba246c8789 /lib/libc/softfloat/bits64
parent23e9f9fa6f0d45a4a4481c6536edb8b54747243b (diff)
When creating unsigned int results, do not distinguish positive versus
negative overflow.
Diffstat (limited to 'lib/libc/softfloat/bits64')
-rw-r--r--lib/libc/softfloat/bits64/softfloat.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/libc/softfloat/bits64/softfloat.c b/lib/libc/softfloat/bits64/softfloat.c
index edf56b9f11e..b0d2bdf138d 100644
--- a/lib/libc/softfloat/bits64/softfloat.c
+++ b/lib/libc/softfloat/bits64/softfloat.c
@@ -1,4 +1,4 @@
-/* $NetBSD: softfloat.c,v 1.4 2007/11/08 15:50:24 martin Exp $ */
+/* $NetBSD: softfloat.c,v 1.5 2007/11/08 21:31:04 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.4 2007/11/08 15:50:24 martin Exp $");
+__RCSID("$NetBSD: softfloat.c,v 1.5 2007/11/08 21:31:04 martin Exp $");
#endif /* LIBC_SCCS and not lint */
#ifdef SOFTFLOAT_FOR_GCC
@@ -4465,11 +4465,8 @@ uint64 float128_to_uint64_round_to_zero( float128 a )
}
else {
float_raise( float_flag_invalid );
- if ( ! aSign || ( ( aExp == 0x7FFF ) && ( aSig0 | aSig1 ) ) ) {
- return LIT64( 0x7FFFFFFFFFFFFFFF );
- }
}
- return (sbits64) LIT64( 0x8000000000000000 );
+ return LIT64( 0xFFFFFFFFFFFFFFFF );
}
z = ( aSig0<<shiftCount ) | ( aSig1>>( ( - shiftCount ) & 63 ) );
if ( (bits64) ( aSig1<<shiftCount ) ) {