-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
382 changed files
with
40,027 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
|
||
License for Berkeley SoftFloat Release 3d | ||
|
||
John R. Hauser | ||
2017 August 10 | ||
|
||
The following applies to the whole of SoftFloat Release 3d as well as to | ||
each source file individually. | ||
|
||
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the | ||
University of California. All rights reserved. | ||
|
||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are met: | ||
|
||
1. Redistributions of source code must retain the above copyright notice, | ||
this list of conditions, and the following disclaimer. | ||
|
||
2. Redistributions in binary form must reproduce the above copyright | ||
notice, this list of conditions, and the following disclaimer in the | ||
documentation and/or other materials provided with the distribution. | ||
|
||
3. Neither the name of the University nor the names of its contributors | ||
may be used to endorse or promote products derived from this software | ||
without specific prior written permission. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY | ||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE | ||
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY | ||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
|
||
<HTML> | ||
|
||
<HEAD> | ||
<TITLE>Berkeley SoftFloat Package Overview</TITLE> | ||
</HEAD> | ||
|
||
<BODY> | ||
|
||
<H1>Package Overview for Berkeley SoftFloat Release 3d</H1> | ||
|
||
<P> | ||
John R. Hauser<BR> | ||
2017 August 10<BR> | ||
</P> | ||
|
||
<P> | ||
Berkeley SoftFloat is a software implementation of binary floating-point that | ||
conforms to the IEEE Standard for Floating-Point Arithmetic. | ||
SoftFloat is distributed in the form of C source code. | ||
Building the SoftFloat sources generates a library file (typically | ||
<CODE>softfloat.a</CODE> or <CODE>libsoftfloat.a</CODE>) containing the | ||
floating-point subroutines. | ||
</P> | ||
|
||
<P> | ||
The SoftFloat package is documented in the following files in the | ||
<CODE>doc</CODE> subdirectory: | ||
<BLOCKQUOTE> | ||
<TABLE> | ||
<TR> | ||
<TD><A HREF="doc/SoftFloat.html"><NOBR><CODE>SoftFloat.html</CODE></NOBR></A></TD> | ||
<TD>Documentation for using the SoftFloat functions.</TD> | ||
</TR> | ||
<TR> | ||
<TD><A HREF="doc/SoftFloat-source.html"><NOBR><CODE>SoftFloat-source.html</CODE></NOBR></A></TD> | ||
<TD>Documentation for building SoftFloat.</TD> | ||
</TR> | ||
<TR> | ||
<TD><A HREF="doc/SoftFloat-history.html"><NOBR><CODE>SoftFloat-history.html</CODE></A><CODE> </CODE></NOBR></TD> | ||
<TD>History of the major changes to SoftFloat.</TD> | ||
</TR> | ||
</TABLE> | ||
</BLOCKQUOTE> | ||
Other files in the package comprise the source code for SoftFloat. | ||
</P> | ||
|
||
</BODY> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
|
||
Package Overview for Berkeley SoftFloat Release 3d | ||
|
||
John R. Hauser | ||
2017 August 10 | ||
|
||
Berkeley SoftFloat is a software implementation of binary floating-point | ||
that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat | ||
is distributed in the form of C source code. Building the SoftFloat sources | ||
generates a library file (typically "softfloat.a" or "libsoftfloat.a") | ||
containing the floating-point subroutines. | ||
|
||
The SoftFloat package is documented in the following files in the "doc" | ||
subdirectory: | ||
|
||
SoftFloat.html Documentation for using the SoftFloat functions. | ||
SoftFloat-source.html Documentation for building SoftFloat. | ||
SoftFloat-history.html History of the major changes to SoftFloat. | ||
|
||
Other files in the package comprise the source code for SoftFloat. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
|
||
<HTML> | ||
|
||
<HEAD> | ||
<TITLE>Berkeley SoftFloat History</TITLE> | ||
</HEAD> | ||
|
||
<BODY> | ||
|
||
<H1>History of Berkeley SoftFloat, to Release 3d</H1> | ||
|
||
<P> | ||
John R. Hauser<BR> | ||
2017 August 10<BR> | ||
</P> | ||
|
||
|
||
<H3>Release 3d (2017 August)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Fixed bugs in the square root functions for <NOBR>64-bit</NOBR> | ||
double-precision, <NOBR>80-bit</NOBR> double-extended-precision, and | ||
<NOBR>128-bit</NOBR> quadruple-precision. | ||
For <NOBR>64-bit</NOBR> double-precision (<CODE>f64_sqrt</CODE>), the result | ||
could sometimes be off by <NOBR>1 unit</NOBR> in the last place | ||
(<NOBR>1 ulp</NOBR>) from what it should be. | ||
For the larger formats, the square root could be wrong in a large portion of | ||
the less-significant bits. | ||
(A bug in <CODE>f128_sqrt</CODE> was first reported by Alexei Sibidanov.) | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 3c (2017 February)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Added optional rounding mode <CODE>odd</CODE> (round to odd, also known as | ||
<EM>jamming</EM>). | ||
|
||
<LI> | ||
Corrected the documentation concerning non-canonical representations in | ||
<NOBR>80-bit</NOBR> double-extended-precision. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 3b (2016 July)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Implemented the common <NOBR>16-bit</NOBR> “half-precision” | ||
floating-point format (<CODE>float16_t</CODE>). | ||
|
||
<LI> | ||
Made the integer values returned on invalid conversions to integer formats | ||
be determined by the port-specific specialization instead of being the same for | ||
all ports. | ||
|
||
<LI> | ||
Added preprocessor macro <CODE>THREAD_LOCAL</CODE> to allow the floating-point | ||
state (modes and exception flags) to be made per-thread. | ||
|
||
<LI> | ||
Modified the provided Makefiles to allow some options to be overridden from the | ||
<CODE>make</CODE> command. | ||
|
||
<LI> | ||
Made other minor improvements. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 3a (2015 October)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Replaced the license text supplied by the University of California, Berkeley. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 3 (2015 February)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Complete rewrite, funded by the University of California, Berkeley, and | ||
consequently having a different use license than earlier releases. | ||
Major changes included renaming most types and functions, upgrading some | ||
algorithms, restructuring the source files, and making SoftFloat into a true | ||
library. | ||
|
||
<LI> | ||
Added functions to convert between floating-point and unsigned integers, both | ||
<NOBR>32-bit</NOBR> and <NOBR>64-bit</NOBR> (<CODE>uint32_t</CODE> and | ||
<CODE>uint64_t</CODE>). | ||
|
||
<LI> | ||
Added functions for fused multiply-add, for all supported floating-point | ||
formats except <NOBR>80-bit</NOBR> double-extended-precision. | ||
|
||
<LI> | ||
Added support for a fifth rounding mode, <CODE>near_maxMag</CODE> (round to | ||
nearest, with ties to maximum magnitude, away from zero). | ||
|
||
<LI> | ||
Dropped the <CODE>timesoftfloat</CODE> program (now part of the Berkeley | ||
TestFloat package). | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 2c (2015 January)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Fixed mistakes affecting some <NOBR>64-bit</NOBR> processors. | ||
|
||
<LI> | ||
Further improved the documentation and the wording for the legal restrictions | ||
on using SoftFloat releases <NOBR>through 2c</NOBR> (not applicable to | ||
<NOBR>Release 3</NOBR> or later). | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 2b (2002 May)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Made minor updates to the documentation, including improved wording for the | ||
legal restrictions on using SoftFloat. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 2a (1998 December)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Added functions to convert between <NOBR>64-bit</NOBR> integers | ||
(<CODE>int64</CODE>) and all supported floating-point formats. | ||
|
||
<LI> | ||
Fixed a bug in all <NOBR>64-bit</NOBR>-version square root functions except | ||
<CODE>float32_sqrt</CODE> that caused the result sometimes to be off by | ||
<NOBR>1 unit</NOBR> in the last place (<NOBR>1 ulp</NOBR>) from what it should | ||
be. | ||
(Bug discovered by Paul Donahue.) | ||
|
||
<LI> | ||
Improved the Makefiles. | ||
</UL> | ||
|
||
|
||
<H3>Release 2 (1997 June)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Created the <NOBR>64-bit</NOBR> (<CODE>bits64</CODE>) version, adding the | ||
<CODE>floatx80</CODE> and <CODE>float128</CODE> formats. | ||
|
||
<LI> | ||
Changed the source directory structure, splitting the sources into a | ||
<CODE>bits32</CODE> and a <CODE>bits64</CODE> version. | ||
Renamed <CODE>environment.h</CODE> to <CODE>milieu.h</CODE> to avoid confusion | ||
with environment variables. | ||
|
||
<LI> | ||
Fixed a small error that caused <CODE>float64_round_to_int</CODE> often to | ||
round the wrong way in nearest/even mode when the operand was between | ||
2<SUP>20</SUP> and 2<SUP>21</SUP> and halfway between two integers. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 1a (1996 July)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Corrected a mistake that caused borderline underflow cases not to raise the | ||
underflow flag when they should have. | ||
(Problem reported by Doug Priest.) | ||
|
||
<LI> | ||
Added the <CODE>float_detect_tininess</CODE> variable to control whether | ||
tininess is detected before or after rounding. | ||
|
||
</UL> | ||
|
||
|
||
<H3>Release 1 (1996 July)</H3> | ||
|
||
<UL> | ||
|
||
<LI> | ||
Original release, based on work done for the International Computer Science | ||
Institute (ICSI) in Berkeley, California. | ||
|
||
</UL> | ||
|
||
|
||
</BODY> | ||
|
Oops, something went wrong.