[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference tallis::alpha_migration_tools

Title:Alpha Migration Tools - Digital Confidential
Notice:Kits: VEST v1.1A: Note 15.60, mx v1.2-4: Notes 4.23 & 4.24
Moderator:TALLIS::GORTON
Created:Wed Jun 13 1990
Last Modified:Mon May 26 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:970
Total number of notes:4239

964.0. "question on /FLOAT" by HANDVC::STEVELIU () Tue Apr 22 1997 05:51

   Here's a question on the correct use of /FLOAT, please comment.
    
1)   A VAX BASIC program is compiled with the following qualifiers :
   
a)   /REAL_SIZE=DOUBLE, HOW would you translate the resultant image ?

ANS: using the VEST qualifier /FLOAT=D56_FLOAT to translate the image. 


b)   /REAL_SIZE=GFLOAT, HOW would you translate the resultant image ?

ANS: specify VEST /FLOAT=D53_FLOAT when translating the image.


2)   A VAX COBOL program which uses double-precision fp is to be vested,
     HOW would you translate the resultant image ?

ANS: specify /FLOAT=D56_FLOAT, since VAX COBOL only support DFLOAT.


T.RTitleUserPersonal
Name
DateLines
964.1Wrong criteriaWIBBIN::NOYCEPulling weeds, pickin' stonesTue Apr 22 1997 09:0720
/FLOAT=D56 or FLOAT=D53 controls how D_float instructions are to be translated.
It has no effect on G_float instructions at all -- they always translate into
native Alpha G_float instructions that mimic the VAX behavior quite well.
So the answer to your #2 is that the /FLOAT switch doesn't matter -- at least
for the code that uses G_float.

/FLOAT=D53 allows VEST to translate D_float VAX instructions into native Alpha
instructions that run fast, but don't get exactly the same results.  Most
applications work just fine this way.  (Memory data still uses D_float layout,
but it is converted to G_float and back to perform arithmetic.)  This option
provides the same level of precision as G_float, and IEEE double precision,
and the 64-bit type of virtually all competitors except VAX and PDP-11.

/FLOAT=D56 tells VEST to translate D_float VAX instructions into calls to
an emulation library that provides faithful emulation of the D_float operations,
but relatively slowly.  Use this option for applications that need exact
bit-for-bit matching between the Alpha results and the VAX results. 
Applications that are running right at the limit of the precision D_float
can provide might need this option.  Applications that use certain D_float
values as "sentinals" might need this option.
964.2answer for 1b or 2 ?HANDVG::STEVELIUTue Apr 22 1997 22:5433
    
    
    Your answer:
    >So the answer to your #2 is that the /FLOAT switch doesn't matter --
    >at least for the code that uses G_float.
    
    2)   A VAX COBOL program which uses double-precision fp is to be
         vested, HOW would you translate the resultant image ?
    
    ANS: specify /FLOAT=D56_FLOAT, since VAX COBOL only support DFLOAT.
    
    It seems your answer is refering to the above question #2 but it make
    more sense to me if your answer is refering to the question 1b which
    is :
    
       Here's a question on the correct use of /FLOAT, please comment.
    
    1)   A VAX BASIC program is compiled with the following qualifiers :
    
    b)   /REAL_SIZE=GFLOAT, HOW would you translate the resultant image ?
    
    ANS: specify VEST /FLOAT=D53_FLOAT when translating the image.
    
    
    So is your answer intended for 1b or 2 ?
    
    My reasoning is that since the program in 1b is using G_FLOAT and so 
    the VEST switch /FLOAT do not matter in this case, but the program in
    2 is using D_FLOAT and so the switch /FLOAT do matter.
    
    -sl.
    
    
964.31bWIBBIN::NOYCEPulling weeds, pickin' stonesMon Apr 28 1997 12:167
Yes, sorry, I meant your second question.  For the BASIC G_float case,
VEST's /FLOAT switch doesn't matter at all.

For the first and third cases, where the program is using D_float, the user
needs to decide whether he needs the full precision, or whether he would
rather have good performance.  You can't just say he always needs D56 if he
was using D_float on VAX.