Skip to content

Commit

Permalink
Add SoftFloat streflop from abma repo
Browse files Browse the repository at this point in the history
  • Loading branch information
lhog committed Nov 5, 2021
1 parent ddec320 commit 9d0a3b2
Show file tree
Hide file tree
Showing 12 changed files with 8,545 additions and 0 deletions.
496 changes: 496 additions & 0 deletions rts/lib/streflop/SoftFloatWrapper.cpp

Large diffs are not rendered by default.

296 changes: 296 additions & 0 deletions rts/lib/streflop/SoftFloatWrapper.h

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions rts/lib/streflop/softfloat/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
This directory contains (in addition to this file):

- SoftFloat-README.txt, SoftFloat.txt, SoftFloat-source.txt, SoftFloat-history.txt: Original documentation files

- softfloat.h, milieu.h, softfloat.cpp, softfloat-macros, softfloat-specialize: These file were taken from the SoftFloat 2b distribution and specialized for this project. The list of modification is specified as a prominent notice at the beginning of each file.


The softfloat.cpp file is compiled from the main streflop Makefile.


This version is released under the GNU LGPL. See the original SoftFloat documentation for the original SoftFloat license and disclaimer.

72 changes: 72 additions & 0 deletions rts/lib/streflop/softfloat/SoftFloat-README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@

Package Overview for SoftFloat Release 2b

John R. Hauser
2002 May 27


----------------------------------------------------------------------------
Overview

SoftFloat is a software implementation of floating-point that conforms to
the IEC/IEEE Standard for Binary Floating-Point Arithmetic. SoftFloat is
distributed in the form of C source code. Compiling the SoftFloat sources
generates two things:

-- A SoftFloat object file (typically `softfloat.o') containing the complete
set of IEC/IEEE floating-point routines.

-- A `timesoftfloat' program for evaluating the speed of the SoftFloat
routines. (The SoftFloat module is linked into this program.)

The SoftFloat package is documented in four text files:

SoftFloat.txt Documentation for using the SoftFloat functions.
SoftFloat-source.txt Documentation for compiling SoftFloat.
SoftFloat-history.txt History of major changes to SoftFloat.
timesoftfloat.txt Documentation for using `timesoftfloat'.

Other files in the package comprise the source code for SoftFloat.

Please be aware that some work is involved in porting this software to other
targets. It is not just a matter of getting `make' to complete without
error messages. I would have written the code that way if I could, but
there are fundamental differences between systems that can't be hidden.
You should not attempt to compile SoftFloat without first reading both
`SoftFloat.txt' and `SoftFloat-source.txt'.


----------------------------------------------------------------------------
Legal Notice

SoftFloat was written by me, John R. Hauser. This work was made possible in
part by the International Computer Science Institute, located at Suite 600,
1947 Center Street, Berkeley, California 94704. Funding was partially
provided by the National Science Foundation under grant MIP-9311980. The
original version of this code was written as part of a project to build
a fixed-point vector processor in collaboration with the University of
California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek.

THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL
LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO
FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER
SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES,
COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE
SOFTWARE.

Derivative works are acceptable, even for commercial purposes, provided
that the minimal documentation requirements stated in the source code are
satisfied.


----------------------------------------------------------------------------
Contact Information

At the time of this writing, the most up-to-date information about
SoftFloat and the latest release can be found at the Web page `http://
www.cs.berkeley.edu/~jhauser/arithmetic/SoftFloat.html'.


57 changes: 57 additions & 0 deletions rts/lib/streflop/softfloat/SoftFloat-history.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

History of Major Changes to SoftFloat, up to Release 2b

John R. Hauser
2002 May 27


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Release 2b (2002 May)

-- Made minor updates to the documentation, including improved wording of
the legal restrictions on using SoftFloat.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Release 2a (1998 December)

-- Added functions to convert between 64-bit integers (int64) and all
supported floating-point formats.

-- Fixed a bug in all 64-bit-version square root functions except
`float32_sqrt' that caused the result sometimes to be off by 1 unit in
the last place (1 ulp) from what it should be. (Bug discovered by Paul
Donahue.)

-- Improved the makefiles.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Release 2 (1997 June)

-- Created the 64-bit (bits64) version, adding the floatx80 and float128
formats.

-- Changed the source directory structure, splitting the sources into a
`bits32' and a `bits64' version. Renamed `environment.h' to `milieu.h'
to avoid confusion with environment variables.

-- Fixed a small error that caused `float64_round_to_int' often to round the
wrong way in nearest/even mode when the operand was between 2^20 and 2^21
and halfway between two integers.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Release 1a (1996 July)

-- Corrected a mistake that caused borderline underflow cases not to raise
the underflow flag when they should have. (Problem reported by Doug
Priest.)

-- Added the `float_detect_tininess' variable to control whether tininess is
detected before or after rounding.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Release 1 (1996 July)

-- Original release.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Loading

0 comments on commit 9d0a3b2

Please sign in to comment.