80486 floating point problems with ISC UNIX 2.0.2

Andrew P. Mullhaupt amull at Morgan.COM
Sun Aug 12 08:37:39 AEST 1990


In article <1990Aug3.174510.899 at cti-software.nl>, pim at cti-software.nl (Pim Zandbergen) writes:
> Everything has run just fine (and a lot faster too), except
> there's this real strange thing with floating point exceptions.
> 
> Whenever a floating point exception should be generated,
> whether exceptions are caught or not,
> the process doing the floating point just hangs.
> Every other process continues normally.
> When I press <DEL>, the process just dies gracefully.

I bet you have the step B5 i486 chip. The thing has a bug where 
it doesn't properly handle floating point exceptions. Your board
is probably not properly designed for the B5 chip, and you may be
thankful for that. "Properly" designed boards for the step B5
include a hardware device which translates any floating point
exception into a parity error so there is no chance that you will
miss that it happened. If you run SCO UNIX, there is _no_ way
you will miss a parity error. It panics the kernel, and swoons
dead away. Now there is no way in UNIX to disable floating point
exceptions without modifying source so you may very well be out of luck
on code where you don't want to modify source.

Intel made deals with vendors to swap the B5 chips with the B6
chips, but the swap program hasn't started yet as far as I can 
tell. (I'm waiting too...)

In order to disable floating point exceptions, you should also
properly set the sticky bits. There should be functions in your
UNIX to do this. In SCO they are something like ieeefpsetsticky()
etc.

Later,
Andrew Mullhaupt



More information about the Comp.unix.i386 mailing list