Skip to content

Commit

Permalink
add SoftFloat-3d
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewrk committed Sep 14, 2017
1 parent bb44e4b commit 7ddc259
Show file tree
Hide file tree
Showing 382 changed files with 40,027 additions and 0 deletions.
37 changes: 37 additions & 0 deletions deps/SoftFloat-3d/COPYING.txt
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.

49 changes: 49 additions & 0 deletions deps/SoftFloat-3d/README.html
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>&nbsp;&nbsp;&nbsp;</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>

21 changes: 21 additions & 0 deletions deps/SoftFloat-3d/README.txt
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.

215 changes: 215 additions & 0 deletions deps/SoftFloat-3d/doc/SoftFloat-history.html
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> &ldquo;half-precision&rdquo;
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>

Loading

0 comments on commit 7ddc259

Please sign in to comment.