Clear MDP_USEDFPU on exec. Set it in process_write_fpregs() unconditionally,
for the benefit of the emulator.
This commit is contained in:
parent
ef504e724d
commit
3c20501d57
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: machdep.c,v 1.166 1995/08/06 05:32:59 mycroft Exp $ */
|
/* $NetBSD: machdep.c,v 1.167 1995/08/06 19:01:14 mycroft Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1993, 1994, 1995 Charles M. Hannum. All rights reserved.
|
* Copyright (c) 1993, 1994, 1995 Charles M. Hannum. All rights reserved.
|
||||||
|
@ -908,7 +908,6 @@ setregs(p, pack, stack, retval)
|
||||||
u_long stack;
|
u_long stack;
|
||||||
register_t *retval;
|
register_t *retval;
|
||||||
{
|
{
|
||||||
register struct pcb *pcb;
|
|
||||||
register struct trapframe *tf;
|
register struct trapframe *tf;
|
||||||
|
|
||||||
#if NNPX > 0
|
#if NNPX > 0
|
||||||
|
@ -917,9 +916,8 @@ setregs(p, pack, stack, retval)
|
||||||
npxdrop();
|
npxdrop();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pcb = &p->p_addr->u_pcb;
|
p->p_md.md_flags &= ~MDP_USEDFPU;
|
||||||
lcr0(pcb->pcb_cr0);
|
p->p_addr->u_pcb.pcb_flags = 0;
|
||||||
pcb->pcb_flags = 0;
|
|
||||||
|
|
||||||
tf = p->p_md.md_regs;
|
tf = p->p_md.md_regs;
|
||||||
tf->tf_es = LSEL(LUDATA_SEL, SEL_UPL);
|
tf->tf_es = LSEL(LUDATA_SEL, SEL_UPL);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: process_machdep.c,v 1.15 1995/08/06 18:02:22 mycroft Exp $ */
|
/* $NetBSD: process_machdep.c,v 1.16 1995/08/06 19:01:18 mycroft Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1995 Charles M. Hannum. All rights reserved.
|
* Copyright (c) 1995 Charles M. Hannum. All rights reserved.
|
||||||
|
@ -197,8 +197,6 @@ process_write_fpregs(p, regs)
|
||||||
struct save87 *frame;
|
struct save87 *frame;
|
||||||
|
|
||||||
#if NNPX > 0
|
#if NNPX > 0
|
||||||
if (npxproc != p)
|
|
||||||
npxdna(p);
|
|
||||||
if (npxproc == p)
|
if (npxproc == p)
|
||||||
npxdrop();
|
npxdrop();
|
||||||
#endif
|
#endif
|
||||||
|
@ -207,6 +205,7 @@ process_write_fpregs(p, regs)
|
||||||
if (frame == NULL)
|
if (frame == NULL)
|
||||||
return (EIO);
|
return (EIO);
|
||||||
|
|
||||||
|
p->p_md.md_flags |= MDP_USEDFPU;
|
||||||
bcopy(regs, frame, sizeof(frame));
|
bcopy(regs, frame, sizeof(frame));
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
|
Loading…
Reference in New Issue