Deleted Added
full compact
npx.c (115703) npx.c (117870)
1/*-
2 * Copyright (c) 1990 William Jolitz.
3 * Copyright (c) 1991 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 21 unchanged lines hidden (view full) ---

30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * from: @(#)npx.c 7.2 (Berkeley) 5/12/91
35 */
36
37#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1990 William Jolitz.
3 * Copyright (c) 1991 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 21 unchanged lines hidden (view full) ---

30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * from: @(#)npx.c 7.2 (Berkeley) 5/12/91
35 */
36
37#include <sys/cdefs.h>
38__FBSDID("$FreeBSD: head/sys/i386/isa/npx.c 115703 2003-06-02 16:32:55Z obrien $");
38__FBSDID("$FreeBSD: head/sys/i386/isa/npx.c 117870 2003-07-22 08:11:17Z peter $");
39
40#include "opt_cpu.h"
41#include "opt_debug_npx.h"
42#include "opt_isa.h"
39
40#include "opt_cpu.h"
41#include "opt_debug_npx.h"
42#include "opt_isa.h"
43#include "opt_math_emulate.h"
44#include "opt_npx.h"
45
46#include <sys/param.h>
47#include <sys/systm.h>
48#include <sys/bus.h>
49#include <sys/kernel.h>
50#include <sys/lock.h>
51#include <sys/malloc.h>

--- 49 unchanged lines hidden (view full) ---

101/*
102 * 387 and 287 Numeric Coprocessor Extension (NPX) Driver.
103 */
104
105/* Configuration flags. */
106#define NPX_DISABLE_I586_OPTIMIZED_BCOPY (1 << 0)
107#define NPX_DISABLE_I586_OPTIMIZED_BZERO (1 << 1)
108#define NPX_DISABLE_I586_OPTIMIZED_COPYIO (1 << 2)
43#include "opt_npx.h"
44
45#include <sys/param.h>
46#include <sys/systm.h>
47#include <sys/bus.h>
48#include <sys/kernel.h>
49#include <sys/lock.h>
50#include <sys/malloc.h>

--- 49 unchanged lines hidden (view full) ---

100/*
101 * 387 and 287 Numeric Coprocessor Extension (NPX) Driver.
102 */
103
104/* Configuration flags. */
105#define NPX_DISABLE_I586_OPTIMIZED_BCOPY (1 << 0)
106#define NPX_DISABLE_I586_OPTIMIZED_BZERO (1 << 1)
107#define NPX_DISABLE_I586_OPTIMIZED_COPYIO (1 << 2)
109#define NPX_PREFER_EMULATOR (1 << 3)
110
111#if defined(__GNUC__) && !defined(lint)
112
113#define fldcw(addr) __asm("fldcw %0" : : "m" (*(addr)))
114#define fnclex() __asm("fnclex")
115#define fninit() __asm("fninit")
116#define fnsave(addr) __asm __volatile("fnsave %0" : "=m" (*(addr)))
117#define fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr)))

--- 347 unchanged lines hidden (view full) ---

465 if (resource_int_value("npx", 0, "flags", &flags) != 0)
466 flags = 0;
467
468 if (flags)
469 device_printf(dev, "flags 0x%x ", flags);
470 if (npx_irq13) {
471 device_printf(dev, "using IRQ 13 interface\n");
472 } else {
108
109#if defined(__GNUC__) && !defined(lint)
110
111#define fldcw(addr) __asm("fldcw %0" : : "m" (*(addr)))
112#define fnclex() __asm("fnclex")
113#define fninit() __asm("fninit")
114#define fnsave(addr) __asm __volatile("fnsave %0" : "=m" (*(addr)))
115#define fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr)))

--- 347 unchanged lines hidden (view full) ---

463 if (resource_int_value("npx", 0, "flags", &flags) != 0)
464 flags = 0;
465
466 if (flags)
467 device_printf(dev, "flags 0x%x ", flags);
468 if (npx_irq13) {
469 device_printf(dev, "using IRQ 13 interface\n");
470 } else {
473#if defined(MATH_EMULATE) || defined(GPL_MATH_EMULATE)
474 if (npx_ex16) {
475 if (!(flags & NPX_PREFER_EMULATOR))
476 device_printf(dev, "INT 16 interface\n");
477 else {
478 device_printf(dev, "FPU exists, but flags request "
479 "emulator\n");
480 hw_float = npx_exists = 0;
481 }
482 } else if (npx_exists) {
483 device_printf(dev, "error reporting broken; using 387 emulator\n");
484 hw_float = npx_exists = 0;
485 } else
486 device_printf(dev, "387 emulator\n");
487#else
488 if (npx_ex16) {
471 if (npx_ex16)
489 device_printf(dev, "INT 16 interface\n");
472 device_printf(dev, "INT 16 interface\n");
490 if (flags & NPX_PREFER_EMULATOR) {
491 device_printf(dev, "emulator requested, but none compiled "
492 "into kernel, using FPU\n");
493 }
494 } else
495 device_printf(dev, "no 387 emulator in kernel and no FPU!\n");
496#endif
473 else
474 device_printf(dev, "WARNING: no FPU!\n");
497 }
498 npxinit(__INITIAL_NPXCW__);
499
500 if (npx_cleanstate_ready == 0) {
501 s = intr_disable();
502 stop_emulating();
503 fpusave(&npx_cleanstate);
504 start_emulating();

--- 636 unchanged lines hidden ---
475 }
476 npxinit(__INITIAL_NPXCW__);
477
478 if (npx_cleanstate_ready == 0) {
479 s = intr_disable();
480 stop_emulating();
481 fpusave(&npx_cleanstate);
482 start_emulating();

--- 636 unchanged lines hidden ---