xref: /optee_os/lib/libutils/isoc/arch/arm/softfloat/doc/SoftFloat-history.html (revision 9403c583381528e7fb391e3769644cc9653cfbb6)
1*9403c583SJens Wiklander
2*9403c583SJens Wiklander<HTML>
3*9403c583SJens Wiklander
4*9403c583SJens Wiklander<HEAD>
5*9403c583SJens Wiklander<TITLE>Berkeley SoftFloat History</TITLE>
6*9403c583SJens Wiklander</HEAD>
7*9403c583SJens Wiklander
8*9403c583SJens Wiklander<BODY>
9*9403c583SJens Wiklander
10*9403c583SJens Wiklander<H1>History of Berkeley SoftFloat, to Release 3a</H1>
11*9403c583SJens Wiklander
12*9403c583SJens Wiklander<P>
13*9403c583SJens WiklanderJohn R. Hauser<BR>
14*9403c583SJens Wiklander2015 October 23<BR>
15*9403c583SJens Wiklander</P>
16*9403c583SJens Wiklander
17*9403c583SJens Wiklander
18*9403c583SJens Wiklander<H3>Release 3a (2015 October)</H3>
19*9403c583SJens Wiklander
20*9403c583SJens Wiklander<UL>
21*9403c583SJens Wiklander
22*9403c583SJens Wiklander<LI>
23*9403c583SJens WiklanderReplaced the license text supplied by the University of California, Berkeley.
24*9403c583SJens Wiklander
25*9403c583SJens Wiklander</UL>
26*9403c583SJens Wiklander
27*9403c583SJens Wiklander
28*9403c583SJens Wiklander<H3>Release 3 (2015 February)</H3>
29*9403c583SJens Wiklander
30*9403c583SJens Wiklander<UL>
31*9403c583SJens Wiklander
32*9403c583SJens Wiklander<LI>
33*9403c583SJens WiklanderComplete rewrite, funded by the University of California, Berkeley, and
34*9403c583SJens Wiklanderconsequently having a different use license than earlier releases.
35*9403c583SJens WiklanderMajor changes included renaming most types and functions, upgrading some
36*9403c583SJens Wiklanderalgorithms, restructuring the source files, and making SoftFloat into a true
37*9403c583SJens Wiklanderlibrary.
38*9403c583SJens Wiklander
39*9403c583SJens Wiklander<LI>
40*9403c583SJens WiklanderAdded functions to convert between floating-point and unsigned integers, both
41*9403c583SJens Wiklander<NOBR>32-bit</NOBR> and <NOBR>64-bit</NOBR> (<CODE>uint32_t</CODE> and
42*9403c583SJens Wiklander<CODE>uint64_t</CODE>).
43*9403c583SJens Wiklander
44*9403c583SJens Wiklander<LI>
45*9403c583SJens WiklanderAdded functions for fused multiply-add, for all supported floating-point
46*9403c583SJens Wiklanderformats except <NOBR>80-bit</NOBR> double-extended-precision.
47*9403c583SJens Wiklander
48*9403c583SJens Wiklander<LI>
49*9403c583SJens WiklanderAdded support for a fifth rounding mode, <CODE>near_maxMag</CODE> (round to
50*9403c583SJens Wiklandernearest, with ties to maximum magnitude, away from zero).
51*9403c583SJens Wiklander
52*9403c583SJens Wiklander<LI>
53*9403c583SJens WiklanderDropped the <CODE>timesoftfloat</CODE> program (now part of the Berkeley
54*9403c583SJens WiklanderTestFloat package).
55*9403c583SJens Wiklander
56*9403c583SJens Wiklander</UL>
57*9403c583SJens Wiklander
58*9403c583SJens Wiklander
59*9403c583SJens Wiklander<H3>Release 2c (2015 January)</H3>
60*9403c583SJens Wiklander
61*9403c583SJens Wiklander<UL>
62*9403c583SJens Wiklander
63*9403c583SJens Wiklander<LI>
64*9403c583SJens WiklanderFixed mistakes affecting some <NOBR>64-bit</NOBR> processors.
65*9403c583SJens Wiklander
66*9403c583SJens Wiklander<LI>
67*9403c583SJens WiklanderFurther improved the documentation and the wording for the legal restrictions
68*9403c583SJens Wiklanderon using SoftFloat releases <NOBR>through 2c</NOBR> (not applicable to
69*9403c583SJens Wiklander<NOBR>Release 3</NOBR> or later).
70*9403c583SJens Wiklander
71*9403c583SJens Wiklander</UL>
72*9403c583SJens Wiklander
73*9403c583SJens Wiklander
74*9403c583SJens Wiklander<H3>Release 2b (2002 May)</H3>
75*9403c583SJens Wiklander
76*9403c583SJens Wiklander<UL>
77*9403c583SJens Wiklander
78*9403c583SJens Wiklander<LI>
79*9403c583SJens WiklanderMade minor updates to the documentation, including improved wording for the
80*9403c583SJens Wiklanderlegal restrictions on using SoftFloat.
81*9403c583SJens Wiklander
82*9403c583SJens Wiklander</UL>
83*9403c583SJens Wiklander
84*9403c583SJens Wiklander
85*9403c583SJens Wiklander<H3>Release 2a (1998 December)</H3>
86*9403c583SJens Wiklander
87*9403c583SJens Wiklander<UL>
88*9403c583SJens Wiklander
89*9403c583SJens Wiklander<LI>
90*9403c583SJens WiklanderAdded functions to convert between <NOBR>64-bit</NOBR> integers
91*9403c583SJens Wiklander(<CODE>int64</CODE>) and all supported floating-point formats.
92*9403c583SJens Wiklander
93*9403c583SJens Wiklander<LI>
94*9403c583SJens WiklanderFixed a bug in all <NOBR>64-bit</NOBR>-version square root functions except
95*9403c583SJens Wiklander<CODE>float32_sqrt</CODE> that caused the result sometimes to be off by
96*9403c583SJens Wiklander<NOBR>1 unit</NOBR> in the last place (<NOBR>1 ulp</NOBR>) from what it should
97*9403c583SJens Wiklanderbe.
98*9403c583SJens Wiklander(Bug discovered by Paul Donahue.)
99*9403c583SJens Wiklander
100*9403c583SJens Wiklander<LI>
101*9403c583SJens WiklanderImproved the Makefiles.
102*9403c583SJens Wiklander</UL>
103*9403c583SJens Wiklander
104*9403c583SJens Wiklander
105*9403c583SJens Wiklander<H3>Release 2 (1997 June)</H3>
106*9403c583SJens Wiklander
107*9403c583SJens Wiklander<UL>
108*9403c583SJens Wiklander
109*9403c583SJens Wiklander<LI>
110*9403c583SJens WiklanderCreated the <NOBR>64-bit</NOBR> (<CODE>bits64</CODE>) version, adding the
111*9403c583SJens Wiklander<CODE>floatx80</CODE> and <CODE>float128</CODE> formats.
112*9403c583SJens Wiklander
113*9403c583SJens Wiklander<LI>
114*9403c583SJens WiklanderChanged the source directory structure, splitting the sources into a
115*9403c583SJens Wiklander<CODE>bits32</CODE> and a <CODE>bits64</CODE> version.
116*9403c583SJens WiklanderRenamed <CODE>environment.h</CODE> to <CODE>milieu.h</CODE> to avoid confusion
117*9403c583SJens Wiklanderwith environment variables.
118*9403c583SJens Wiklander
119*9403c583SJens Wiklander<LI>
120*9403c583SJens WiklanderFixed a small error that caused <CODE>float64_round_to_int</CODE> often to
121*9403c583SJens Wiklanderround the wrong way in nearest/even mode when the operand was between
122*9403c583SJens Wiklander2<SUP>20</SUP> and 2<SUP>21</SUP> and halfway between two integers.
123*9403c583SJens Wiklander
124*9403c583SJens Wiklander</UL>
125*9403c583SJens Wiklander
126*9403c583SJens Wiklander
127*9403c583SJens Wiklander<H3>Release 1a (1996 July)</H3>
128*9403c583SJens Wiklander
129*9403c583SJens Wiklander<UL>
130*9403c583SJens Wiklander
131*9403c583SJens Wiklander<LI>
132*9403c583SJens WiklanderCorrected a mistake that caused borderline underflow cases not to raise the
133*9403c583SJens Wiklanderunderflow flag when they should have.
134*9403c583SJens Wiklander(Problem reported by Doug Priest.)
135*9403c583SJens Wiklander
136*9403c583SJens Wiklander<LI>
137*9403c583SJens WiklanderAdded the <CODE>float_detect_tininess</CODE> variable to control whether
138*9403c583SJens Wiklandertininess is detected before or after rounding.
139*9403c583SJens Wiklander
140*9403c583SJens Wiklander</UL>
141*9403c583SJens Wiklander
142*9403c583SJens Wiklander
143*9403c583SJens Wiklander<H3>Release 1 (1996 July)</H3>
144*9403c583SJens Wiklander
145*9403c583SJens Wiklander<UL>
146*9403c583SJens Wiklander
147*9403c583SJens Wiklander<LI>
148*9403c583SJens WiklanderOriginal release, based on work done for the International Computer Science
149*9403c583SJens WiklanderInstitute (ICSI) in Berkeley, California.
150*9403c583SJens Wiklander
151*9403c583SJens Wiklander</UL>
152*9403c583SJens Wiklander
153*9403c583SJens Wiklander
154*9403c583SJens Wiklander</BODY>
155*9403c583SJens Wiklander
156