Home | History | Annotate | only in /src/regress/lib/libc/ieeefp/testfloat/notes
Up to higher level directory
NameDateSize
README.NetBSD26-Jul-20032.6K
README.txt13-Mar-20012.1K
systemBugs.txt06-Dec-202315.7K
testfloat-history.txt13-Mar-20011.9K
testfloat-source.txt24-Nov-200619.5K
testfloat.txt08-Apr-202234.2K

README.NetBSD

      1 $NetBSD: README.NetBSD,v 1.3 2003/07/26 19:38:47 salo Exp $
      2 
      3 
      4 Changes at initial import...ross (a] NetBSD.org
      5 
      6   o  WARNS=2 fixes
      7   o  source reorganized with arch/
      8   o  <sys/endian.h> conversion
      9   o  <inttypes.h> conversion
     10   o  <ieeefp.h> conversion
     11   o  <asm.h> conversion
     12   o  the previously target-specific softfloat.h and milieu.h made mostly
     13      generic. Still some work to do with default NaN bitpatterns, endian,
     14      and arm/fpa-DEMANGLE issues.
     15   o  arch/i386/systfloat.S extended to handle:
     16 	int32_t syst_floatx80_to_int32_round_to_zero(floatx80)
     17 	int64_t syst_floatx80_to_int64_round_to_zero(floatx80)
     18   o  LONG_DOUBLE_IS_FLOATX80 was used to enable both the C module system
     19      access ops and the FLOATX80 tests, all of which also required FLOATX80.
     20      Besides being rundundant, this made it impossible to use the asm module
     21      for i386 which the package actually comes with and also made it
     22      impossible to test FLOATX80 ops without compiler support even if the
     23      machine actually does them.  While this is arguably OK for a regression
     24      test, the two cases are obviously different. Now, the tests (which
     25      don't actually require any compiler-understood extended type) are
     26      always run just by defining FLOATX80. If LONG_DOUBLE_IS_FLOATX80 is
     27      also defined, then the C system ops are also enabled. To switch back
     28      and forth, you modify only the arch/${MACHINE_ARCH}/Makefile.inc to
     29      do the cpp def and add or remove systfloat.S. For regression testing,
     30      it's better in C, but for testing the test itself or verifying a
     31      regression, the .S module is a better reference case.
     32 
     33      A similar change should probably be made for LONG_DOUBLE_IS_FLOAT128,
     34      but we can't test that yet.
     35 
     36      The basic rules:
     37 	LONG_DOUBLE_IS_FLOAT{X80,128}
     38 		define if you do not have a .S file and do have compiler
     39 		support, or have both and want to use the compiled version
     40 		(but then it may be necessary to remove the .S file or add
     41 		an ifndef to it)
     42 	FLOAT{X80,128}
     43 		define if you have either HW or SW support and want it tested
     44 
     45     And to confuse things further: the .S files for i386 appear to have been
     46     originally created by compiling C code with -S, at least as a start.
     47 
     48     You can see some of the price of ANSI+IEEE in these files: a simple
     49     conversion from floatxx to intxx requires storing, modifying, loading,
     50     and restoring  the modes on each conversion in order to get a specific
     51     round, thanks to the four IEEE-mandated options. A pipeline/peephole
     52     pass can no doubt fix this up within one function, but not if other
     53     arithmetic is done in between.
     54 

README.txt

      1 
      2 Package Overview for TestFloat Release 2a
      3 
      4 John R. Hauser
      5 1998 December 16
      6 
      7 
      8 TestFloat is a program for testing that a floating-point implementation
      9 conforms to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
     10 TestFloat is distributed in the form of C source code.  The TestFloat
     11 package actually provides two related programs:
     12 
     13 -- The `testfloat' program tests a system's floating-point for conformance
     14    to the IEC/IEEE Standard.  This program uses the SoftFloat software
     15    floating-point implementation as a basis for comparison.
     16 
     17 -- The `testsoftfloat' program tests SoftFloat itself for conformance to
     18    the IEC/IEEE Standard.  These tests are performed by comparing against a
     19    separate, slower software floating-point that is included in the TestFloat
     20    package.
     21 
     22 TestFloat depends on SoftFloat, but SoftFloat is not included in the
     23 TestFloat package.  SoftFloat can be obtained through the Web page `http://
     24 HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html'.
     25 
     26 TestFloat is documented in three text files:
     27 
     28    testfloat.txt          Documentation for using the TestFloat programs
     29                               (both `testfloat' and `testsoftfloat').
     30    testfloat-source.txt   Documentation for porting and compiling TestFloat.
     31    testfloat-history.txt  History of major changes to TestFloat.
     32 
     33 The following file is also provided:
     34 
     35    systemBugs.txt         Information about processor bugs found using
     36                               TestFloat.
     37 
     38 Other files in the package comprise the source code for TestFloat.
     39 
     40 Please be aware that some work is involved in porting this software to other
     41 targets.  It is not just a matter of getting `make' to complete without
     42 error messages.  I would have written the code that way if I could, but
     43 there are fundamental differences between systems that I can't make go away.
     44 You should not attempt to compile the TestFloat sources without first
     45 reading `testfloat-source.txt'.
     46 
     47 At the time of this writing, the most up-to-date information about
     48 TestFloat and the latest release can be found at the Web page `http://
     49 HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'.
     50 
     51