80387(HW) XENIX System V 80387(HW)
Name
80387 - Math coprocessor.
Description
The 80387 is the INTEL math co-processor for the 80386. The
kernel tests for the presence of an 80387 at startup.
If your system has an 80387, you must turn off a switch on
the main system board in order to enable 80387 interrupts.
Check your hardware manual to determine the proper switch
and setting. If your system does not have an 80387, or the
switch is on, the kernel will run a set of emulator routines
which are much slower.
The C compiler available with the program development
package generates the appropriate 80387 opcodes. C routines
compiled with this compiler have run as much as 200 times as
fast as the emulated code. In particular, the standard math
library routines run considerably faster if you have an
80387.
The overflow, division by zero, and invalid operand
exceptions return a SIGFPE signal. This signal can be
caught. The rest of the 80387 floating point exceptions
(underflow, denormalized operand, and precision error) are
masked.
Notes
The emulator returns meaningless information on divide by
zero.
There is no obvious way to tell which 80387 exception
generated the SIGFPE.
Because of design defects in Intel's 80386 chip (B1
stepping), the Intel 80387 math co-processor may not operate
correctly in some computers. The problem causes the CPU to
hang when DMA/paging/coprocessor accesses are occurring. A
workaround for this problem has been engineered that is
engaged by using a special string at boot time:
Boot
: xenix mulbug
This workaround may not work on all machines; some hardware
is designed such that it will not work. The bootstring can
also be added to the end of the default bootstring
(DEFBOOTSTR) found in /etc/default/boot.
If you cannot use this workaround, you have two options.
You may replace the 386 chip with a newer release of the 386
chip (a D-step part), or you can bypass the 387 chip by
Page 1 (printed 2/7/91)
80387(HW) XENIX System V 80387(HW)
adding the ignorefpu keyword in your boot command as
follows:
Boot
: xenix ignorefpu
This means that the operating system will not use the 387
chip, but you need not remove it physically; the coprocessor
is still usable from DOS. To automatically bypass the 387
chip every time you boot your system, add the ignorefpu
keyword to the /etc/default/boot file. See boot(HW) for
more information.
For further information, see the Intel publication: Intel
80387 Programmer's Reference Manual.
Page 2 (printed 2/7/91)