Floating Point Test Programs

From ES40 Emulator
(Redirected from Floating Point)
Jump to: navigation, search

Hello,

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/a/ad/Testsreal.txt
http://www.es40.org/w/images/b/b5/Testsreal-es40.txt
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/a/a3/Testreal.txt
http://www.es40.org/w/images/0/09/Testreal-es40.txt
http://www.es40.org/w/images/9/9d/Testlong.txt
http://www.es40.org/w/images/8/81/Testlong-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.