Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | This directory contains the version 0.92 test release of the NetWinder |
| 2 | Floating Point Emulator. |
| 3 | |
| 4 | The majority of the code was written by me, Scott Bambrough It is |
| 5 | written in C, with a small number of routines in inline assembler |
| 6 | where required. It was written quickly, with a goal of implementing a |
| 7 | working version of all the floating point instructions the compiler |
| 8 | emits as the first target. I have attempted to be as optimal as |
| 9 | possible, but there remains much room for improvement. |
| 10 | |
| 11 | I have attempted to make the emulator as portable as possible. One of |
| 12 | the problems is with leading underscores on kernel symbols. Elf |
| 13 | kernels have no leading underscores, a.out compiled kernels do. I |
| 14 | have attempted to use the C_SYMBOL_NAME macro wherever this may be |
| 15 | important. |
| 16 | |
| 17 | Another choice I made was in the file structure. I have attempted to |
| 18 | contain all operating system specific code in one module (fpmodule.*). |
| 19 | All the other files contain emulator specific code. This should allow |
| 20 | others to port the emulator to NetBSD for instance relatively easily. |
| 21 | |
| 22 | The floating point operations are based on SoftFloat Release 2, by |
| 23 | John Hauser. SoftFloat is a software implementation of floating-point |
| 24 | that conforms to the IEC/IEEE Standard for Binary Floating-point |
| 25 | Arithmetic. As many as four formats are supported: single precision, |
| 26 | double precision, extended double precision, and quadruple precision. |
| 27 | All operations required by the standard are implemented, except for |
| 28 | conversions to and from decimal. We use only the single precision, |
| 29 | double precision and extended double precision formats. The port of |
| 30 | SoftFloat to the ARM was done by Phil Blundell, based on an earlier |
| 31 | port of SoftFloat version 1 by Neil Carson for NetBSD/arm32. |
| 32 | |
| 33 | The file README.FPE contains a description of what has been implemented |
| 34 | so far in the emulator. The file TODO contains a information on what |
| 35 | remains to be done, and other ideas for the emulator. |
| 36 | |
| 37 | Bug reports, comments, suggestions should be directed to me at |
| 38 | <scottb@netwinder.org>. General reports of "this program doesn't |
| 39 | work correctly when your emulator is installed" are useful for |
| 40 | determining that bugs still exist; but are virtually useless when |
| 41 | attempting to isolate the problem. Please report them, but don't |
| 42 | expect quick action. Bugs still exist. The problem remains in isolating |
| 43 | which instruction contains the bug. Small programs illustrating a specific |
| 44 | problem are a godsend. |
| 45 | |
| 46 | Legal Notices |
| 47 | ------------- |
| 48 | |
| 49 | The NetWinder Floating Point Emulator is free software. Everything Rebel.com |
| 50 | has written is provided under the GNU GPL. See the file COPYING for copying |
| 51 | conditions. Excluded from the above is the SoftFloat code. John Hauser's |
| 52 | legal notice for SoftFloat is included below. |
| 53 | |
| 54 | ------------------------------------------------------------------------------- |
| 55 | SoftFloat Legal Notice |
| 56 | |
| 57 | SoftFloat was written by John R. Hauser. This work was made possible in |
| 58 | part by the International Computer Science Institute, located at Suite 600, |
| 59 | 1947 Center Street, Berkeley, California 94704. Funding was partially |
| 60 | provided by the National Science Foundation under grant MIP-9311980. The |
| 61 | original version of this code was written as part of a project to build |
| 62 | a fixed-point vector processor in collaboration with the University of |
| 63 | California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. |
| 64 | |
| 65 | THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort |
| 66 | has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT |
| 67 | TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO |
| 68 | PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY |
| 69 | AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. |
| 70 | ------------------------------------------------------------------------------- |