summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2001-04-25 13:57:33 +0000
committergallatin <gallatin@FreeBSD.org>2001-04-25 13:57:33 +0000
commit06672ba7f1883644b43b18ab79d0b25502c707ad (patch)
tree96a281d5e8c95016e343f7a8f6dbbb1da23b6f5e /sys/alpha
parent3cbad34d066b49af20d14e27c1e03378fc52b68e (diff)
downloadFreeBSD-src-06672ba7f1883644b43b18ab79d0b25502c707ad.zip
FreeBSD-src-06672ba7f1883644b43b18ab79d0b25502c707ad.tar.gz
alpha_fpstate_save is fairly expensive (critical enter/exit, possibly
saves 32 registers) to do on every context switch. This is only required for SMP, so only do it there. We should also look at moving the critical enter/exit out to the callers
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/alpha/swtch.s2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/alpha/alpha/swtch.s b/sys/alpha/alpha/swtch.s
index ef1e493..87471a3 100644
--- a/sys/alpha/alpha/swtch.s
+++ b/sys/alpha/alpha/swtch.s
@@ -140,12 +140,14 @@ Lcs1: LDGP(pv)
cmpeq s0, s2, t0 /* oldproc == newproc? */
bne t0, Lcs7 /* Yes! Skip! */
+#ifdef SMP
/*
* Save fp state if we have some.
*/
mov s0, a0 /* curproc */
ldiq a1, 1 /* clear fpcurproc */
CALL(alpha_fpstate_save)
+#endif
/*
* Deactivate the old address space before activating the
OpenPOWER on IntegriCloud