Do not bother to save fpu state when we are about to get rid of it.
This commit is contained in:
parent
d49ab36123
commit
092e3c8b7a
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpu.h,v 1.55 2006/09/13 11:35:53 mrg Exp $ */
|
||||
/* $NetBSD: cpu.h,v 1.56 2006/09/15 07:42:38 martin Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -307,6 +307,7 @@ int statintr(void *); /* level 14 (statclock) interrupt code */
|
|||
struct fpstate64;
|
||||
void savefpstate(struct fpstate64 *);
|
||||
void loadfpstate(struct fpstate64 *);
|
||||
void clearfpstate(void);
|
||||
uint64_t probeget(paddr_t, int, int);
|
||||
int probeset(paddr_t, int, int, uint64_t);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.215 2006/09/13 11:35:53 mrg Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.216 2006/09/15 07:42:38 martin Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-2002 Eduardo Horvath
|
||||
|
@ -10232,6 +10232,17 @@ Lkcerr:
|
|||
mov EFAULT, %o0
|
||||
NOTREACHED
|
||||
|
||||
/*
|
||||
* clearfpstate()
|
||||
*
|
||||
* Drops the current fpu state, without saving it.
|
||||
*/
|
||||
ENTRY(clearfpstate)
|
||||
rdpr %pstate, %o1 ! enable FPU
|
||||
wr %g0, FPRS_FEF, %fprs
|
||||
or %o1, PSTATE_PEF, %o1
|
||||
retl
|
||||
wrpr %o1, 0, %pstate
|
||||
|
||||
/*
|
||||
* savefpstate(f) struct fpstate *f;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: vm_machdep.c,v 1.64 2006/08/31 16:49:21 matt Exp $ */
|
||||
/* $NetBSD: vm_machdep.c,v 1.65 2006/09/15 07:42:38 martin Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-2002 Eduardo Horvath. All rights reserved.
|
||||
|
@ -50,7 +50,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.64 2006/08/31 16:49:21 matt Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.65 2006/09/15 07:42:38 martin Exp $");
|
||||
|
||||
#include "opt_coredump.h"
|
||||
|
||||
|
@ -325,7 +325,7 @@ cpu_lwp_free(l, proc)
|
|||
|
||||
if ((fs = l->l_md.md_fpstate) != NULL) {
|
||||
if (l == fplwp) {
|
||||
savefpstate(fs);
|
||||
clearfpstate();
|
||||
fplwp = NULL;
|
||||
}
|
||||
free((void *)fs, M_SUBPROC);
|
||||
|
|
Loading…
Reference in New Issue