summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/alpha/process_machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/alpha/alpha/process_machdep.c')
-rw-r--r--sys/arch/alpha/alpha/process_machdep.c8
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)