diff options
| author | Tor Egge <tegge@FreeBSD.org> | 2001-10-15 20:18:06 +0000 |
|---|---|---|
| committer | Tor Egge <tegge@FreeBSD.org> | 2001-10-15 20:18:06 +0000 |
| commit | 4c8f0aced55cc03b2885fdec2f75856b35f37b00 (patch) | |
| tree | bebfc4966a54ebf0e6e9f21d2d573f5b1cce14a5 | |
| parent | 268aeb1ed3010593b36712aae351de611c4ddc2a (diff) | |
Notes
| -rw-r--r-- | sys/amd64/amd64/fpu.c | 5 | ||||
| -rw-r--r-- | sys/amd64/isa/npx.c | 5 | ||||
| -rw-r--r-- | sys/i386/isa/npx.c | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/sys/amd64/amd64/fpu.c b/sys/amd64/amd64/fpu.c index 7a7aeb014674..87bfe1678309 100644 --- a/sys/amd64/amd64/fpu.c +++ b/sys/amd64/amd64/fpu.c @@ -575,6 +575,11 @@ npxinit(control) savecrit = critical_enter(); npxsave(&dummy); stop_emulating(); +#ifdef CPU_ENABLE_SSE + /* XXX npxsave() doesn't actually initialize the fpu in the SSE case. */ + if (cpu_fxsr) + fninit(); +#endif fldcw(&control); if (PCPU_GET(curpcb) != NULL) fpusave(&PCPU_GET(curpcb)->pcb_save); diff --git a/sys/amd64/isa/npx.c b/sys/amd64/isa/npx.c index 7a7aeb014674..87bfe1678309 100644 --- a/sys/amd64/isa/npx.c +++ b/sys/amd64/isa/npx.c @@ -575,6 +575,11 @@ npxinit(control) savecrit = critical_enter(); npxsave(&dummy); stop_emulating(); +#ifdef CPU_ENABLE_SSE + /* XXX npxsave() doesn't actually initialize the fpu in the SSE case. */ + if (cpu_fxsr) + fninit(); +#endif fldcw(&control); if (PCPU_GET(curpcb) != NULL) fpusave(&PCPU_GET(curpcb)->pcb_save); diff --git a/sys/i386/isa/npx.c b/sys/i386/isa/npx.c index 7a7aeb014674..87bfe1678309 100644 --- a/sys/i386/isa/npx.c +++ b/sys/i386/isa/npx.c @@ -575,6 +575,11 @@ npxinit(control) savecrit = critical_enter(); npxsave(&dummy); stop_emulating(); +#ifdef CPU_ENABLE_SSE + /* XXX npxsave() doesn't actually initialize the fpu in the SSE case. */ + if (cpu_fxsr) + fninit(); +#endif fldcw(&control); if (PCPU_GET(curpcb) != NULL) fpusave(&PCPU_GET(curpcb)->pcb_save); |
