summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/cpu_switch.S
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2014-03-04 20:07:36 +0000
committerjkim <jkim@FreeBSD.org>2014-03-04 20:07:36 +0000
commit74dcbf58438806a35791d48c59ff969ee1b01622 (patch)
tree99d6f725cf03f4b09c7d9ffd074af652551f4590 /sys/amd64/amd64/cpu_switch.S
parent2c50988dca8f1c498ada4b3c8c0c275a7c324622 (diff)
downloadFreeBSD-src-74dcbf58438806a35791d48c59ff969ee1b01622.zip
FreeBSD-src-74dcbf58438806a35791d48c59ff969ee1b01622.tar.gz
Properly save and restore CR0.
MFC after: 3 days
Diffstat (limited to 'sys/amd64/amd64/cpu_switch.S')
-rw-r--r--sys/amd64/amd64/cpu_switch.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S
index bbd85fb..b0f3412 100644
--- a/sys/amd64/amd64/cpu_switch.S
+++ b/sys/amd64/amd64/cpu_switch.S
@@ -552,8 +552,10 @@ END(resumectx)
*/
ENTRY(ctx_fpusave)
movq %cr0,%rax
+ pushq %rax
clts
call fpusave
+ popq %rax
movq %rax,%cr0
ret
END(ctx_fpusave)
OpenPOWER on IntegriCloud