diff options
author | gallatin <gallatin@FreeBSD.org> | 2001-04-25 13:57:33 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 2001-04-25 13:57:33 +0000 |
commit | 06672ba7f1883644b43b18ab79d0b25502c707ad (patch) | |
tree | 96a281d5e8c95016e343f7a8f6dbbb1da23b6f5e /sys/alpha | |
parent | 3cbad34d066b49af20d14e27c1e03378fc52b68e (diff) | |
download | FreeBSD-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.s | 2 |
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 |