summaryrefslogtreecommitdiffstats
path: root/sys/alpha/include/cpu.h
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1999-11-10 21:14:25 +0000
committerdfr <dfr@FreeBSD.org>1999-11-10 21:14:25 +0000
commit6dfb400106d416bb310e15eb5a66dab9502bab9a (patch)
tree915e859019352304de1c4ade9813a58bd9557a3c /sys/alpha/include/cpu.h
parent8b2acdd5d2346477a882467bd48950cc6c793efa (diff)
downloadFreeBSD-src-6dfb400106d416bb310e15eb5a66dab9502bab9a.zip
FreeBSD-src-6dfb400106d416bb310e15eb5a66dab9502bab9a.tar.gz
Re-organise the code which manages the owner of the FP state (fpcurproc).
The old code was spread out through the machdep code and was sloppy about enabling and disabling the FEN bit (which controls access to the FP register set). This caused a DIAGNOSTIC warning "DANGER WILL ROBINSON: FEN SET IN cpu_fork!" sometimes when operating under high loads and could conceivably lead to processes getting incorrect FP results. The new code is much more strict about the FEN bit and makes sure that *only* fpcurproc ever has it enabled. This also allows us to remove a section of code from the exception_return path which might improve performance marginally. Reviewed by: gallatin
Diffstat (limited to 'sys/alpha/include/cpu.h')
-rw-r--r--sys/alpha/include/cpu.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/alpha/include/cpu.h b/sys/alpha/include/cpu.h
index cddefe1..b9ff12d 100644
--- a/sys/alpha/include/cpu.h
+++ b/sys/alpha/include/cpu.h
@@ -148,6 +148,10 @@ void XentSys __P((u_int64_t, u_int64_t, u_int64_t)); /* MAGIC */
void XentUna __P((u_int64_t, u_int64_t, u_int64_t)); /* MAGIC */
void alpha_init __P((u_long, u_long, u_long, u_long, u_long));
int alpha_pa_access __P((u_long));
+void alpha_fpstate_check __P((struct proc *p));
+void alpha_fpstate_save __P((struct proc *p, int write));
+void alpha_fpstate_drop __P((struct proc *p));
+void alpha_fpstate_switch __P((struct proc *p));
void ast __P((struct trapframe *));
int badaddr __P((void *, size_t));
int badaddr_read __P((void *, size_t, void *));
OpenPOWER on IntegriCloud