pim@cti-software.nl (Pim Zandbergen) (08/04/90)
Some time ago, ctisbv turned from an Intel 302 (ISA, 25Mhz '386) into an Intel 401 (ISA, 25Mhz '486). I just swapped the disks and turned the new machine on. 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 first found this out running Steven Pemberton's config program, which tests compiler and hardware properties. The same binary runs normally on the '386, but hangs on the '486 with the same OS. What gives? Do I have a buggy OS or a buggy '486 chip? Please follow up to the appropriate newsgroup. -- Pim Zandbergen domain : pim@cti-software.nl CTI Software BV uucp : uunet!mcsun!hp4nl!ctisbv!pim Laan Copes van Cattenburch 70 phone : +31 70 3542302 2585 GD The Hague, The Netherlands fax : +31 70 3512837
amull@Morgan.COM (Andrew P. Mullhaupt) (08/12/90)
In article <1990Aug3.174510.899@cti-software.nl>, pim@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