[comp.lang.pascal] Precision control on an 80x87

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) (11/29/89)

>>In article <912@maytag.waterloo.edu>, dmurdoch@watstat.waterloo.edu (me)
>>wrote:
>>>   00 - 24 bits
>>>   01 - (reserved)
>>>   10 - 53 bits
>>>   11 - 64 bits
>>> Does anyone know what setting it to 01 is supposed to do?  Is it something
>>new
>>> on the 287, 387 or 486?

It turns out to be reserved on the 387 and 486 too (thanks to Tom Hill for the
info), and on an 8087 acts just the same as 00, i.e. round to single precision.

I was asking about it because it occurred in the floating point code that 
Turbo Pascal 5.5 uses.  It turned out to be in a part of some code that rounds
two extended operands in registers before a compare, and looks 
suspiciously as though it is really precision 10 (double) mis-coded.  It
doesn't seem to matter to TP though, because I can't think of any time it
would need to do this operation.  Watch out in Turbo C, though.

Duncan Murdoch

P.S.  I've just widened the distribution of this article; don't worry if
you didn't see the original or the discussion that followed it.