🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.msdos.programmer
4 messages
4 total messages Started by Duncan Murdoch Sun, 26 Nov 1989 03:41
Precision control on an 80x87
#264
Author: Duncan Murdoch
Date: Sun, 26 Nov 1989 03:41
12 lines
842 bytes
I was just looking through the floating point code in a Turbo Pascal program,
and I see that at one point it sets the precision control bits to 01.  My old
8087 manual lists codes
  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?

Duncan Murdoch
Re: Precision control on an 80x87
#412
Author: Charles Marslett
Date: Mon, 27 Nov 1989 04:20
13 lines
945 bytes
In article <912@maytag.waterloo.edu>, dmurdoch@watstat.waterloo.edu (Duncan Murdoch) writes:
>   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?

I think the 387 (and 486) actually lose the ability to calculate in any but
the 64 bit mode -- the two bits are just a little bit of RAM.  Any one with
technical docs handy to check on that?

> Duncan Murdoch
Re: Precision control on an 80x87
#411
Author: Duncan Murdoch
Date: Wed, 29 Nov 1989 03:48
24 lines
1588 bytes
>>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.
Re: Precision control on an 80x87
#416
Author: peter
Date: Fri, 01 Dec 1989 19:35
34 lines
1958 bytes
In article <912@maytag.waterloo.edu> dmurdoch@watstat.waterloo.edu
(Duncan Murdoch) writes:
|
|I was just looking through the floating point code in a Turbo Pascal program,
|and I see that at one point it sets the precision control bits to 01.  My old
|8087 manual lists codes
|  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?
|
|Duncan Murdoch

I looked through my collection of reference manuals and they all list 01
as reserved.  Here's where I checked:

	80286 and 80287 Programmer's Reference Manual, 210498-005 (1987)
		Figure 1-5, p1-12.  (In the second section of the book!)
	
	80387 Programmer's Reference Manual, 231917-001 (1987)
		Figure 2-3, p2-6.

	i486(tm) Microprocessor, 240440-001 (1989)
		Figure 2.14, p33.  (bound, 175 page "data sheet")

There must be something tricky going on.  <disclaimer.std> applies.
-------------------------------------------------------------------------------
Peter Plamondon, Intel Corp, 5200 NE Elam Young Pkwy, Hillsboro, OR  97124-6497
Internet: peter@langlab1.hf.intel.com                           +1 503-696-5219
UUNET   : uunet!intelhf!langlab1!peter     "I speak for myself, as best I can."
UUCP    : tektronix!psueea!foobar!langlab1.hf.intel.com!peter    
-------------------------------------------------------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads