aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hauser <jhauser@eecs.berkeley.edu>2015-02-19 14:09:32 -0800
committerJohn Hauser <jhauser@eecs.berkeley.edu>2015-02-19 14:09:32 -0800
commitc07232ca9ed081c229d03c3c38e10b776d0becf8 (patch)
treea2482d5229ee7e3873e3e839068d37d3c586b522
parent6e7b8b549aa62cc10f85ec08774c13dab74cba7c (diff)
downloadberkeley-softfloat-3-c07232ca9ed081c229d03c3c38e10b776d0becf8.zip
berkeley-softfloat-3-c07232ca9ed081c229d03c3c38e10b776d0becf8.tar.gz
berkeley-softfloat-3-c07232ca9ed081c229d03c3c38e10b776d0becf8.tar.bz2
Fixed some bugs affecting a few processors. Reboot the official release
date (for the last time) to be 2015 Feb 16.
-rw-r--r--COPYING.txt2
-rw-r--r--README.html2
-rw-r--r--README.txt2
-rw-r--r--doc/SoftFloat-history.html4
-rw-r--r--doc/SoftFloat-source.html2
-rw-r--r--doc/SoftFloat.html2
-rw-r--r--source/extF80M_sqrt.c10
-rw-r--r--source/extF80_sqrt.c10
-rw-r--r--source/s_mulAddF128M.c10
-rw-r--r--source/s_roundPackMToExtF80M.c12
-rw-r--r--source/s_roundPackToExtF80.c18
-rw-r--r--source/s_roundPackToF128.c13
-rw-r--r--source/s_roundPackToF32.c10
-rw-r--r--source/s_roundPackToF64.c10
-rw-r--r--source/s_roundPackToI32.c10
-rw-r--r--source/s_roundPackToI64.c12
-rw-r--r--source/s_roundPackToUI32.c10
-rw-r--r--source/s_roundPackToUI64.c12
18 files changed, 79 insertions, 72 deletions
diff --git a/COPYING.txt b/COPYING.txt
index c226ac6..9a58114 100644
--- a/COPYING.txt
+++ b/COPYING.txt
@@ -2,7 +2,7 @@
License for Berkeley SoftFloat Release 3
John R. Hauser
-2015 Jan 9
+2015 February 16
The following applies to the whole of SoftFloat Release 3 as well as to each
source file individually.
diff --git a/README.html b/README.html
index 45fec86..9697cdc 100644
--- a/README.html
+++ b/README.html
@@ -11,7 +11,7 @@
<P>
John R. Hauser<BR>
-2015 Jan 9<BR>
+2015 February 16<BR>
</P>
<P>
diff --git a/README.txt b/README.txt
index 364bfbd..857e7c5 100644
--- a/README.txt
+++ b/README.txt
@@ -2,7 +2,7 @@
Package Overview for Berkeley SoftFloat Release 3
John R. Hauser
-2015 Jan 9
+2015 February 16
Berkeley SoftFloat is a software implementation of binary floating-point
that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat
diff --git a/doc/SoftFloat-history.html b/doc/SoftFloat-history.html
index dcc11d3..a0ce556 100644
--- a/doc/SoftFloat-history.html
+++ b/doc/SoftFloat-history.html
@@ -11,11 +11,11 @@
<P>
John R. Hauser<BR>
-2015 January 31<BR>
+2015 February 16<BR>
</P>
-<H3>Release 3 (2015 January)</H3>
+<H3>Release 3 (2015 February)</H3>
<UL>
diff --git a/doc/SoftFloat-source.html b/doc/SoftFloat-source.html
index b0a96b0..87e6c1a 100644
--- a/doc/SoftFloat-source.html
+++ b/doc/SoftFloat-source.html
@@ -11,7 +11,7 @@
<P>
John R. Hauser<BR>
-2015 Jan 9<BR>
+2015 February 16<BR>
</P>
diff --git a/doc/SoftFloat.html b/doc/SoftFloat.html
index 8e58a44..747046e 100644
--- a/doc/SoftFloat.html
+++ b/doc/SoftFloat.html
@@ -11,7 +11,7 @@
<P>
John R. Hauser<BR>
-2015 Jan 9<BR>
+2015 February 16<BR>
</P>
diff --git a/source/extF80M_sqrt.c b/source/extF80M_sqrt.c
index b3c0426..bdd849f 100644
--- a/source/extF80M_sqrt.c
+++ b/source/extF80M_sqrt.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -135,7 +135,7 @@ void extF80M_sqrt( const extFloat80_t *aPtr, extFloat80_t *zPtr )
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( (q & 0xFFFFFF) <= 2 ) {
- q &= ~0xFFFF;
+ q &= ~(uint32_t) 0xFFFF;
extSigZ[indexWordLo( 3 )] = q<<7;
x64 = sig64Z + (q>>27);
term[indexWord( 4, 3 )] = 0;
diff --git a/source/extF80_sqrt.c b/source/extF80_sqrt.c
index f85e3e7..a73278b 100644
--- a/source/extF80_sqrt.c
+++ b/source/extF80_sqrt.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -127,7 +127,7 @@ extFloat80_t extF80_sqrt( extFloat80_t a )
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( (q & 0xFFFFFF) <= 2 ) {
- q &= ~0xFFFF;
+ q &= ~(uint_fast64_t) 0xFFFF;
sigZExtra = (uint64_t) (q<<39);
term = softfloat_mul64ByShifted32To128( x64 + (q>>27), q );
x64 = (uint_fast64_t) (uint32_t) (q<<5) * (uint32_t) q;
diff --git a/source/s_mulAddF128M.c b/source/s_mulAddF128M.c
index 4fab817..3f74d43 100644
--- a/source/s_mulAddF128M.c
+++ b/source/s_mulAddF128M.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -241,7 +241,7 @@ void
*----------------------------------------------------------------*/
shiftCount = expDiff & 31;
if ( shiftCount ) {
- softfloat_shortShiftRight160M( sigX, expDiff, sigX );
+ softfloat_shortShiftRight160M( sigX, shiftCount, sigX );
}
expDiff >>= 5;
extSigPtr =
diff --git a/source/s_roundPackMToExtF80M.c b/source/s_roundPackMToExtF80M.c
index b475bcb..f4edeee 100644
--- a/source/s_roundPackMToExtF80M.c
+++ b/source/s_roundPackMToExtF80M.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -171,7 +171,7 @@ void
| extSigPtr[indexWord( 3, 1 )];
if ( doIncrement ) {
++sig;
- sig &= ~(! (sigExtra & 0x7FFFFFFF) & roundNearEven);
+ sig &= ~(uint64_t) (! (sigExtra & 0x7FFFFFFF) & roundNearEven);
exp = ((sig & UINT64_C( 0x8000000000000000 )) != 0);
}
goto packReturn;
@@ -211,7 +211,7 @@ void
++exp;
sig = UINT64_C( 0x8000000000000000 );
} else {
- sig &= ~(! (sigExtra & 0x7FFFFFFF) & roundNearEven);
+ sig &= ~(uint64_t) (! (sigExtra & 0x7FFFFFFF) & roundNearEven);
}
}
/*------------------------------------------------------------------------
diff --git a/source/s_roundPackToExtF80.c b/source/s_roundPackToExtF80.c
index 9e54d8e..4644149 100644
--- a/source/s_roundPackToExtF80.c
+++ b/source/s_roundPackToExtF80.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -156,8 +156,9 @@ extFloat80_t
if ( doIncrement ) {
++sig;
sig &=
- ~(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- & roundNearEven);
+ ~(uint_fast64_t)
+ (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
+ & roundNearEven);
exp = ((sig & UINT64_C( 0x8000000000000000 )) != 0);
}
goto packReturn;
@@ -194,8 +195,9 @@ extFloat80_t
sig = UINT64_C( 0x8000000000000000 );
} else {
sig &=
- ~(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- & roundNearEven);
+ ~(uint_fast64_t)
+ (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
+ & roundNearEven);
}
} else {
if ( ! sig ) exp = 0;
diff --git a/source/s_roundPackToF128.c b/source/s_roundPackToF128.c
index f30a51a..3f6395f 100644
--- a/source/s_roundPackToF128.c
+++ b/source/s_roundPackToF128.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -130,8 +130,9 @@ float128_t
sig64 = sig128.v64;
sig0 =
sig128.v0
- & ~(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- & roundNearEven);
+ & ~(uint64_t)
+ (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
+ & roundNearEven);
} else {
if ( ! (sig64 | sig0) ) exp = 0;
}
diff --git a/source/s_roundPackToF32.c b/source/s_roundPackToF32.c
index fbc3e44..3d5c8a0 100644
--- a/source/s_roundPackToF32.c
+++ b/source/s_roundPackToF32.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -80,7 +80,7 @@ float32_t
}
if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
sig = (sig + roundIncrement)>>7;
- sig &= ~(! (roundBits ^ 0x40) & roundNearEven);
+ sig &= ~(uint_fast32_t) (! (roundBits ^ 0x40) & roundNearEven);
uiZ = packToF32UI( sign, sig ? exp : 0, sig );
uiZ:
uZ.ui = uiZ;
diff --git a/source/s_roundPackToF64.c b/source/s_roundPackToF64.c
index 9c4a2ba..e92e6ec 100644
--- a/source/s_roundPackToF64.c
+++ b/source/s_roundPackToF64.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -83,7 +83,7 @@ float64_t
}
if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
sig = (sig + roundIncrement)>>10;
- sig &= ~(! (roundBits ^ 0x200) & roundNearEven);
+ sig &= ~(uint_fast64_t) (! (roundBits ^ 0x200) & roundNearEven);
uiZ = packToF64UI( sign, sig ? exp : 0, sig );
uiZ:
uZ.ui = uiZ;
diff --git a/source/s_roundPackToI32.c b/source/s_roundPackToI32.c
index e07dd00..24bf689 100644
--- a/source/s_roundPackToI32.c
+++ b/source/s_roundPackToI32.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -60,7 +60,7 @@ int_fast32_t
sig += roundIncrement;
if ( sig & UINT64_C( 0xFFFFFF8000000000 ) ) goto invalid;
sig32 = sig>>7;
- sig32 &= ~(! (roundBits ^ 0x40) & roundNearEven);
+ sig32 &= ~(uint_fast32_t) (! (roundBits ^ 0x40) & roundNearEven);
uZ.ui = sign ? -sig32 : sig32;
z = uZ.i;
if ( z && ((z < 0) ^ sign) ) goto invalid;
diff --git a/source/s_roundPackToI64.c b/source/s_roundPackToI64.c
index dca0778..e0e24af 100644
--- a/source/s_roundPackToI64.c
+++ b/source/s_roundPackToI64.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -62,7 +62,9 @@ int_fast64_t
++sig;
if ( ! sig ) goto invalid;
sig &=
- ~(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF )) & roundNearEven);
+ ~(uint_fast64_t)
+ (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
+ & roundNearEven);
}
uZ.ui = sign ? -sig : sig;
z = uZ.i;
diff --git a/source/s_roundPackToUI32.c b/source/s_roundPackToUI32.c
index ca45426..79a34b2 100644
--- a/source/s_roundPackToUI32.c
+++ b/source/s_roundPackToUI32.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -58,7 +58,7 @@ uint_fast32_t
sig += roundIncrement;
if ( sig & UINT64_C( 0xFFFFFF8000000000 ) ) goto invalid;
z = sig>>7;
- z &= ~(! (roundBits ^ 0x40) & roundNearEven);
+ z &= ~(uint_fast32_t) (! (roundBits ^ 0x40) & roundNearEven);
if ( sign && z ) goto invalid;
if ( exact && roundBits ) {
softfloat_exceptionFlags |= softfloat_flag_inexact;
diff --git a/source/s_roundPackToUI64.c b/source/s_roundPackToUI64.c
index 4c1e800..7ef5a78 100644
--- a/source/s_roundPackToUI64.c
+++ b/source/s_roundPackToUI64.c
@@ -4,10 +4,10 @@
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
Package, Release 3, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
-(Regents). All Rights Reserved. Redistribution and use in source and binary
-forms, with or without modification, are permitted provided that the following
-conditions are met:
+Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+California (Regents). All Rights Reserved. Redistribution and use in source
+and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
Redistributions of source code must retain the above copyright notice,
this list of conditions, and the following two paragraphs of disclaimer.
@@ -60,7 +60,9 @@ uint_fast64_t
++sig;
if ( ! sig ) goto invalid;
sig &=
- ~(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF )) & roundNearEven);
+ ~(uint_fast64_t)
+ (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
+ & roundNearEven);
}
if ( sign && sig ) goto invalid;
if ( exact && sigExtra ) {