diff options
Diffstat (limited to 'sys/arch/alpha/alpha/process_machdep.c')
-rw-r--r-- | sys/arch/alpha/alpha/process_machdep.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/arch/alpha/alpha/process_machdep.c b/sys/arch/alpha/alpha/process_machdep.c index ed6817e9bcd..a99c685acfb 100644 --- a/sys/arch/alpha/alpha/process_machdep.c +++ b/sys/arch/alpha/alpha/process_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: process_machdep.c,v 1.8 2002/03/14 06:04:11 mickey Exp $ */ +/* $OpenBSD: process_machdep.c,v 1.9 2002/04/28 20:55:14 pvalchev Exp $ */ /* $NetBSD: process_machdep.c,v 1.7 1996/07/11 20:14:21 cgd Exp $ */ /*- @@ -154,8 +154,8 @@ process_write_fpregs(p, regs) struct fpreg *regs; { - if (p == fpcurproc) - fpcurproc = NULL; + if (p->p_addr->u_pcb.pcb_fpcpu != NULL) + fpusave_proc(p, 1); bcopy(regs, process_fpframe(p), sizeof(struct fpreg)); return (0); @@ -333,6 +333,8 @@ process_sstep(struct proc *p, int sstep) count = 1; } + if (p->p_addr->u_pcb.pcb_fpcpu != NULL) + fpusave_proc(p, 0); p->p_md.md_sstep[0].addr = addr[0]; error = ptrace_set_bpt(p, &p->p_md.md_sstep[0]); if (error) |