Floating Point Test Programs
I have a bunch of CPU test programs for floating point (and more), small and big ones. Let's start with a simple S_Floating test program TestSReal which runs fine on any real Alpha. With the es40 emu the same exe file produces different results (problem with negation of s_float) and later terminates with an error (due to detection of a denormalized s_float value).
The cause of the error(s) is probable already described here:
http://sourceforge.net/forum/forum.php?thread_id=2205906&forum_id=656085 (not normalizated result) http://sourceforge.net/forum/forum.php?thread_id=2198394&forum_id=656085 (negation of s_float)
Modula-2 source code of the test programs with object files, executable images (linked with /debug under openvms v8.3), and program output logs (when run on a real alpha) for 5 floating point data types are available as a backup save-set on request from http://www.es40.org/User:Scrutinizer
Once you have the save-set on the alpha, set the correct file attributes in order to restore it, copy the Modula-2 shareable image library to sys$share, and run the programs on a real alpha and/or es40 emu, using these commands:
$ set file/attr=(rfm=fix,lrl=32256) testfloat.bck $ backup testfloat.bck/sav /log $ copy isom2lib32.exe sys$share $ run testsreal /nodebug $ run testtlong /nodebug $ run testreal /nodebug $ run testlong /nodebug $ run testglong /nodebug
(Note: Instead of copying the shareable image to sys$share, you could also use:
$DEFINE SYS$SHARE SYS$SYSROOT:<SYSLIB>,MOD$SYSTEM
which defines a logical name list in the lnm$process_table. (MOD$SYSTEM should point to the directory with isom2lib32.exe))
Here are the corresponding program output log files for S_, T_, F_, D_, and G_FLOATING, for real alpha and es40 emu each:
http://www.es40.org/w/images/f/fa/Testtlong.txt = http://www.es40.org/w/images/5/57/Testtlong-es40.txt
http://www.es40.org/w/images/0/0e/Testglong.txt = http://www.es40.org/w/images/2/28/Testglong-es40.txt
Those logs separated by an equal sign are identic on both machines, i.e., the T_ and G_FLOATING emulations look good so far.