aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/SoftFloat-history.html14
-rw-r--r--doc/SoftFloat-source.html72
-rw-r--r--doc/SoftFloat.html164
3 files changed, 147 insertions, 103 deletions
diff --git a/doc/SoftFloat-history.html b/doc/SoftFloat-history.html
index a0ce556..08cab39 100644
--- a/doc/SoftFloat-history.html
+++ b/doc/SoftFloat-history.html
@@ -7,14 +7,24 @@
<BODY>
-<H1>History of Berkeley SoftFloat, to Release 3</H1>
+<H1>History of Berkeley SoftFloat, to Release 3a</H1>
<P>
John R. Hauser<BR>
-2015 February 16<BR>
+2015 October 23<BR>
</P>
+<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>
diff --git a/doc/SoftFloat-source.html b/doc/SoftFloat-source.html
index 87e6c1a..dff77aa 100644
--- a/doc/SoftFloat-source.html
+++ b/doc/SoftFloat-source.html
@@ -7,11 +7,11 @@
<BODY>
-<H1>Berkeley SoftFloat Release 3: Source Documentation</H1>
+<H1>Berkeley SoftFloat Release 3a: Source Documentation</H1>
<P>
John R. Hauser<BR>
-2015 February 16<BR>
+2015 October 23<BR>
</P>
@@ -65,10 +65,11 @@ SoftFloat has been successfully compiled with the GNU C Compiler
</P>
<P>
-<NOBR>Release 3</NOBR> of SoftFloat is a complete rewrite relative to
+<NOBR>Release 3</NOBR> of SoftFloat was a complete rewrite relative to
<NOBR>Release 2</NOBR> or earlier.
Changes to the interface of SoftFloat functions are documented in
<A HREF="SoftFloat.html"><CODE>SoftFloat.html</CODE></A>.
+The current version of SoftFloat is <NOBR>Release 3a</NOBR>.
</P>
@@ -88,7 +89,7 @@ arithmetic on <NOBR>64-bit</NOBR> integers.
Earlier releases of SoftFloat included implementations of <NOBR>32-bit</NOBR>
single-precision and <NOBR>64-bit</NOBR> double-precision floating-point that
did not require <NOBR>64-bit</NOBR> integers, but this option is not supported
-with <NOBR>Release 3</NOBR>.
+starting with <NOBR>Release 3</NOBR>.
Since 1999, ISO standards for C have mandated compiler support for
<NOBR>64-bit</NOBR> integers.
A compiler conforming to the 1999 C Standard or later is recommended but not
@@ -111,12 +112,12 @@ SoftFloat&rsquo;s dependence on these headers is detailed later in
<P>
The SoftFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
-<NOBR>Release 3</NOBR> of SoftFloat is a completely new implementation
+<NOBR>Release 3</NOBR> of SoftFloat was a completely new implementation
supplanting earlier releases.
-This project (<NOBR>Release 3</NOBR> only, not earlier releases) was done in
-the employ of the University of California, Berkeley, within the Department of
-Electrical Engineering and Computer Sciences, first for the Parallel Computing
-Laboratory (Par Lab) and then for the ASPIRE Lab.
+The project to create <NOBR>Release 3</NOBR> (and <NOBR>now 3a</NOBR>) was done
+in the employ of the University of California, Berkeley, within the Department
+of Electrical Engineering and Computer Sciences, first for the Parallel
+Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
The work was officially overseen by Prof. Krste Asanovic, with funding provided
by these sources:
<BLOCKQUOTE>
@@ -147,43 +148,56 @@ Oracle, and Samsung.
</P>
<P>
-The following applies to the whole of SoftFloat <NOBR>Release 3</NOBR> as well
+The following applies to the whole of SoftFloat <NOBR>Release 3a</NOBR> as well
as to each source file individually.
</P>
<P>
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California (Regents).
-All Rights Reserved.
+California.
+All rights reserved.
+</P>
+
+<P>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-</P>
+<OL>
+<LI>
<P>
Redistributions of source code must retain the above copyright notice, this
-list of conditions, and the following two paragraphs of disclaimer.
+list of conditions, and the following disclaimer.
+</P>
+
+<LI>
+<P>
Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions, and the following two paragraphs of disclaimer in the
-documentation and/or other materials provided with the distribution.
-Neither the name of the Regents nor the names of its contributors may be used
-to endorse or promote products derived from this software without specific
-prior written permission.
+list of conditions, and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
</P>
+<LI>
<P>
-IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
-INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF
-THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS BEEN
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+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.
+</P>
+
+</OL>
</P>
<P>
-REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS
-PROVIDED "<NOBR>AS IS</NOBR>".
-REGENTS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
-ENHANCEMENTS, OR MODIFICATIONS.
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS &ldquo;AS IS&rdquo;,
+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.
</P>
diff --git a/doc/SoftFloat.html b/doc/SoftFloat.html
index 747046e..19176dc 100644
--- a/doc/SoftFloat.html
+++ b/doc/SoftFloat.html
@@ -7,11 +7,11 @@
<BODY>
-<H1>Berkeley SoftFloat Release 3: Library Interface</H1>
+<H1>Berkeley SoftFloat Release 3a: Library Interface</H1>
<P>
John R. Hauser<BR>
-2015 February 16<BR>
+2015 October 23<BR>
</P>
@@ -105,9 +105,15 @@ Information about the standard is available elsewhere.
</P>
<P>
-The current version of SoftFloat is <NOBR>Release 3</NOBR>.
-The functional interface of this version differs in many details from that of
-earlier SoftFloat releases.
+The current version of SoftFloat is <NOBR>Release 3a</NOBR>.
+The only difference between this version and the previous
+<NOBR>Release 3</NOBR> is the replacement of the license text supplied by the
+University of California.
+</P>
+
+<P>
+The functional interface of SoftFloat <NOBR>Release 3</NOBR> and afterward
+differs in many details from that of earlier releases.
For specifics of these differences, see <NOBR>section 9</NOBR> below,
<I>Changes from SoftFloat <NOBR>Release 2</NOBR></I>.
</P>
@@ -129,7 +135,7 @@ arithmetic on <NOBR>64-bit</NOBR> integers.
Earlier releases of SoftFloat included implementations of <NOBR>32-bit</NOBR>
single-precision and <NOBR>64-bit</NOBR> double-precision floating-point that
did not require <NOBR>64-bit</NOBR> integers, but this option is not supported
-with <NOBR>Release 3</NOBR>.
+starting with <NOBR>Release 3</NOBR>.
Since 1999, ISO standards for C have mandated compiler support for
<NOBR>64-bit</NOBR> integers.
A compiler conforming to the 1999 C Standard or later is recommended but not
@@ -139,7 +145,7 @@ strictly required.
<P>
Most operations not required by the original 1985 version of the IEEE
Floating-Point Standard but added in the 2008 version are not yet supported in
-SoftFloat <NOBR>Release 3</NOBR>.
+SoftFloat <NOBR>Release 3a</NOBR>.
</P>
@@ -147,12 +153,12 @@ SoftFloat <NOBR>Release 3</NOBR>.
<P>
The SoftFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
-<NOBR>Release 3</NOBR> of SoftFloat is a completely new implementation
+<NOBR>Release 3</NOBR> of SoftFloat was a completely new implementation
supplanting earlier releases.
-This project (<NOBR>Release 3</NOBR> only, not earlier releases) was done in
-the employ of the University of California, Berkeley, within the Department of
-Electrical Engineering and Computer Sciences, first for the Parallel Computing
-Laboratory (Par Lab) and then for the ASPIRE Lab.
+The project to create <NOBR>Release 3</NOBR> (and <NOBR>now 3a</NOBR>) was done
+in the employ of the University of California, Berkeley, within the Department
+of Electrical Engineering and Computer Sciences, first for the Parallel
+Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
The work was officially overseen by Prof. Krste Asanovic, with funding provided
by these sources:
<BLOCKQUOTE>
@@ -183,43 +189,56 @@ Oracle, and Samsung.
</P>
<P>
-The following applies to the whole of SoftFloat <NOBR>Release 3</NOBR> as well
+The following applies to the whole of SoftFloat <NOBR>Release 3a</NOBR> as well
as to each source file individually.
</P>
<P>
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-California (Regents).
-All Rights Reserved.
+California.
+All rights reserved.
+</P>
+
+<P>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-</P>
+<OL>
+<LI>
<P>
Redistributions of source code must retain the above copyright notice, this
-list of conditions, and the following two paragraphs of disclaimer.
+list of conditions, and the following disclaimer.
+</P>
+
+<LI>
+<P>
Redistributions in binary form must reproduce the above copyright notice, this
-list of conditions, and the following two paragraphs of disclaimer in the
-documentation and/or other materials provided with the distribution.
-Neither the name of the Regents nor the names of its contributors may be used
-to endorse or promote products derived from this software without specific
-prior written permission.
+list of conditions, and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
</P>
+<LI>
<P>
-IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
-INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF
-THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS BEEN
-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+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.
+</P>
+
+</OL>
</P>
<P>
-REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS
-PROVIDED "<NOBR>AS IS</NOBR>".
-REGENTS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
-ENHANCEMENTS, OR MODIFICATIONS.
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS &ldquo;AS IS&rdquo;,
+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.
</P>
@@ -345,7 +364,7 @@ comparisons between two values in the same floating-point format.
<P>
The following operations required by the 2008 IEEE Floating-Point Standard are
-not supported in SoftFloat <NOBR>Release 3</NOBR>:
+not supported in SoftFloat <NOBR>Release 3a</NOBR>:
<UL>
<LI>
<B>nextUp</B>, <B>nextDown</B>, <B>minNum</B>, <B>maxNum</B>, <B>minNumMag</B>,
@@ -387,9 +406,8 @@ leading significand bit must <NOBR>be 1</NOBR> unless it is required to
</P>
<P>
-For <NOBR>Release 3</NOBR> of SoftFloat, functions are not guaranteed to
-operate as expected when inputs of type <CODE>extFloat80_t</CODE> are
-non-canonical.
+Functions are not guaranteed to operate as expected when inputs of type
+<CODE>extFloat80_t</CODE> are non-canonical.
Assuming all of a function&rsquo;s <CODE>extFloat80_t</CODE> inputs (if any)
are canonical, function outputs of type <CODE>extFloat80_t</CODE> will always
be canonical.
@@ -1100,15 +1118,16 @@ function may cause a trap or abort appropriate for the current system.
<H2>9. Changes from SoftFloat <NOBR>Release 2</NOBR></H2>
<P>
-Apart from the change in the legal use license, there are numerous technical
-differences between <NOBR>Release 3</NOBR> of SoftFloat and earlier releases.
+Apart from a change in the legal use license, <NOBR>Release 3</NOBR> of
+SoftFloat introduced numerous technical differences compared to earlier
+releases.
</P>
<H3>9.1. Name Changes</H3>
<P>
-The most obvious and pervasive difference compared to <NOBR>Release 2</NOBR> is
-that the names of most functions and variables have changed, even when the
+The most obvious and pervasive difference compared to <NOBR>Release 2</NOBR>
+is that the names of most functions and variables have changed, even when the
behavior has not.
First, the floating-point types, the mode variables, the exception flags
variable, the function to raise exceptions, and various associated constants
@@ -1204,8 +1223,8 @@ have been renamed as follows:
</P>
<P>
-Furthermore, <NOBR>Release 3</NOBR> has adopted the following new abbreviations
-for function names:
+Furthermore, <NOBR>Release 3</NOBR> adopted the following new abbreviations for
+function names:
<BLOCKQUOTE>
<TABLE>
<TR>
@@ -1223,7 +1242,7 @@ for function names:
Thus, for example, the function to add two <NOBR>32-bit</NOBR> floating-point
numbers, previously called <CODE>float32_add</CODE> in <NOBR>Release 2</NOBR>,
is now <CODE>f32_add</CODE>.
-Lastly, there are a few other changes to function names:
+Lastly, there have been a few other changes to function names:
<BLOCKQUOTE>
<TABLE>
<TR>
@@ -1253,29 +1272,30 @@ Lastly, there are a few other changes to function names:
<H3>9.2. Changes to Function Arguments</H3>
<P>
-Besides simple name changes, some operations have a different interface in
-<NOBR>Release 3</NOBR> than they had in <NOBR>Release 2</NOBR>:
+Besides simple name changes, some operations were given a different interface
+in <NOBR>Release 3</NOBR> than they had in <NOBR>Release 2</NOBR>:
<UL>
<LI>
<P>
-In <NOBR>Release 3</NOBR>, integer arguments and results of functions have
+Since <NOBR>Release 3</NOBR>, integer arguments and results of functions have
standard types from header <CODE>&lt;stdint.h&gt;</CODE>, such as
<CODE>uint32_t</CODE>, whereas previously their types could be defined
differently for each port of SoftFloat, usually using traditional C types such
as <CODE>unsigned</CODE> <CODE>int</CODE>.
-Likewise, functions in <NOBR>Release 3</NOBR> pass Booleans as standard type
-<CODE>bool</CODE> from <CODE>&lt;stdbool.h&gt;</CODE>, whereas previously these
-were again passed as a port-specific type (usually <CODE>int</CODE>).
+Likewise, functions in <NOBR>Release 3</NOBR> and later pass Booleans as
+standard type <CODE>bool</CODE> from <CODE>&lt;stdbool.h&gt;</CODE>, whereas
+previously these were again passed as a port-specific type (usually
+<CODE>int</CODE>).
</P>
<LI>
<P>
As explained earlier in <NOBR>section 4.5</NOBR>, <I>Conventions for Passing
-Arguments and Results</I>, SoftFloat functions in <NOBR>Release 3</NOBR> may
-pass <NOBR>80-bit</NOBR> and <NOBR>128-bit</NOBR> floating-point values through
-pointers, meaning that functions take pointer arguments and then read or write
-floating-point values at the locations indicated by the pointers.
+Arguments and Results</I>, SoftFloat functions in <NOBR>Release 3</NOBR> and
+later may pass <NOBR>80-bit</NOBR> and <NOBR>128-bit</NOBR> floating-point
+values through pointers, meaning that functions take pointer arguments and then
+read or write floating-point values at the locations indicated by the pointers.
In <NOBR>Release 2</NOBR>, floating-point arguments and results were always
passed by value, regardless of their size.
</P>
@@ -1286,7 +1306,7 @@ Functions that round to an integer have additional
<CODE><I>roundingMode</I></CODE> and <CODE><I>exact</I></CODE> arguments that
they did not have in <NOBR>Release 2</NOBR>.
Refer to sections 8.2 <NOBR>and 8.7</NOBR> for descriptions of these functions
-in <NOBR>Release 3</NOBR>.
+since <NOBR>Release 3</NOBR>.
For <NOBR>Release 2</NOBR>, the rounding mode, when needed, was taken from the
same global variable that affects the basic arithmetic operations (now called
<CODE>softfloat_roundingMode</CODE> but previously known as
@@ -1296,10 +1316,11 @@ an exact integer value, and if the <I>invalid</I> exception was not raised by
the function, the <I>inexact</I> exception was always raised.
<NOBR>Release 2</NOBR> had no option to suppress raising <I>inexact</I> in this
case.
-Applications using SoftFloat <NOBR>Release 3</NOBR> can get the same effect as
-<NOBR>Release 2</NOBR> by passing variable <CODE>softfloat_roundingMode</CODE>
-for argument <CODE><I>roundingMode</I></CODE> and <CODE>true</CODE> for
-argument <CODE><I>exact</I></CODE>.
+Applications using SoftFloat <NOBR>Release 3</NOBR> or later can get the same
+effect as <NOBR>Release 2</NOBR> by passing variable
+<CODE>softfloat_roundingMode</CODE> for argument
+<CODE><I>roundingMode</I></CODE> and <CODE>true</CODE> for argument
+<CODE><I>exact</I></CODE>.
</P>
</UL>
@@ -1308,18 +1329,17 @@ argument <CODE><I>exact</I></CODE>.
<H3>9.3. Added Capabilities</H3>
<P>
-<NOBR>Release 3</NOBR> adds some new features not present in
-<NOBR>Release 2</NOBR>:
+With <NOBR>Release 3</NOBR>, some new features have been added that were not
+present in <NOBR>Release 2</NOBR>:
<UL>
<LI>
<P>
-With <NOBR>Release 3</NOBR>, a port of SoftFloat can now define any of the
-floating-point types <CODE>float32_t</CODE>, <CODE>float64_t</CODE>,
-<CODE>extFloat80_t</CODE>, and <CODE>float128_t</CODE> as aliases for C&rsquo;s
-standard floating-point types <CODE>float</CODE>, <CODE>double</CODE>, and
-<CODE>long</CODE> <CODE>double</CODE>, using either <CODE>#define</CODE> or
-<CODE>typedef</CODE>.
+A port of SoftFloat can now define any of the floating-point types
+<CODE>float32_t</CODE>, <CODE>float64_t</CODE>, <CODE>extFloat80_t</CODE>, and
+<CODE>float128_t</CODE> as aliases for C&rsquo;s standard floating-point types
+<CODE>float</CODE>, <CODE>double</CODE>, and <CODE>long</CODE>
+<CODE>double</CODE>, using either <CODE>#define</CODE> or <CODE>typedef</CODE>.
This potential convenience was not supported under <NOBR>Release 2</NOBR>.
</P>
@@ -1341,8 +1361,8 @@ unsigned integers.
<P>
<LI>
A new, fifth rounding mode, <CODE>softfloat_round_near_maxMag</CODE> (round to
-nearest, with ties to maximum magnitude, away from zero) is supported for all
-cases involving rounding.
+nearest, with ties to maximum magnitude, away from zero) is now supported for
+all cases involving rounding.
</P>
<P>
@@ -1357,7 +1377,7 @@ Fused multiply-add functions have been added for the non-extended formats,
<H3>9.4. Better Compatibility with the C Language</H3>
<P>
-<NOBR>Release 3</NOBR> of SoftFloat is written to conform better to the ISO C
+<NOBR>Release 3</NOBR> of SoftFloat was written to conform better to the ISO C
Standard&rsquo;s rules for portability.
For example, older releases of SoftFloat employed type conversions in ways
that, while commonly practiced, are not fully defined by the C Standard.
@@ -1368,7 +1388,7 @@ unions, the behavior around which is more strictly regulated these days.
<H3>9.5. New Organization as a Library</H3>
<P>
-With <NOBR>Release 3</NOBR>, SoftFloat now builds as a library.
+Starting with <NOBR>Release 3</NOBR>, SoftFloat now builds as a library.
Previously, SoftFloat compiled into a single, monolithic object file containing
all the SoftFloat functions, with the consequence that a program linking with
SoftFloat would get every SoftFloat function in its binary file even if only a
@@ -1381,8 +1401,8 @@ others.
<H3>9.6. Optimization Gains (and Losses)</H3>
<P>
-Individual SoftFloat functions are variously improved in <NOBR>Release 3</NOBR>
-compared to earlier releases.
+Individual SoftFloat functions have been variously improved in
+<NOBR>Release 3</NOBR> compared to earlier releases.
In particular, better, faster algorithms have been deployed for the operations
of division, square root, and remainder.
For functions operating on the larger <NOBR>80-bit</NOBR> and