summaryrefslogtreecommitdiffstats
path: root/sys/amd64/isa
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2001-10-21 05:18:30 +0000
committerbde <bde@FreeBSD.org>2001-10-21 05:18:30 +0000
commit529d5f38582025336f818a7aa014c33c46b929d3 (patch)
tree5259abeeefa5c8fbef7ab758a990bd66fa8597cf /sys/amd64/isa
parent056df3921e6a81ac17c0abdb9a0a5cc2199c9044 (diff)
downloadFreeBSD-src-529d5f38582025336f818a7aa014c33c46b929d3.zip
FreeBSD-src-529d5f38582025336f818a7aa014c33c46b929d3.tar.gz
MFpc98: all changes in sys/pc98/pc98/npx.c related to FPU_ERROR_BROKEN.
- 1.58 (2000/09/01; author: kato) Fixed FPU_ERROR_BROKEN code. It had old-isa code. - 1.33 (1998/03/09; author: kato) Make FPU_ERROR_BROKEN a new-style option. - 1.7 (1996/10/09; author: asami) Make sure FPU is recognized for non-Intel CPUs. The log for rev.1.7 should have said something like: Added FPU_ERROR_BROKEN option. This forces a successful probe for exception 16, so that hardware with a broken FPU error signal can sort of work.
Diffstat (limited to 'sys/amd64/isa')
-rw-r--r--sys/amd64/isa/npx.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/amd64/isa/npx.c b/sys/amd64/isa/npx.c
index b742f50..620356d 100644
--- a/sys/amd64/isa/npx.c
+++ b/sys/amd64/isa/npx.c
@@ -38,6 +38,7 @@
#include "opt_cpu.h"
#include "opt_debug_npx.h"
#include "opt_math_emulate.h"
+#include "opt_npx.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -363,6 +364,14 @@ npx_probe(dev)
*/
control &= ~(1 << 2); /* enable divide by 0 trap */
fldcw(&control);
+#ifdef FPU_ERROR_BROKEN
+ /*
+ * FPU error signal doesn't work on some CPU
+ * accelerator board.
+ */
+ npx_ex16 = 1;
+ return (0);
+#endif
npx_traps_while_probing = npx_intrs_while_probing = 0;
fp_divide_by_0();
if (npx_traps_while_probing != 0) {
OpenPOWER on IntegriCloud