svn commit: r245021 - in projects/bhyve/sys/amd64: include vmm
Neel Natu
neel at FreeBSD.org
Fri Jan 4 02:49:13 UTC 2013
Author: neel
Date: Fri Jan 4 02:49:12 2013
New Revision: 245021
URL: http://svnweb.freebsd.org/changeset/base/245021
Log:
There is no need for 'start_emulating()' and 'stop_emulating()' to be defined
in <machine/cpufunc.h> so remove them from there.
Obtained from: NetApp
Modified:
projects/bhyve/sys/amd64/include/cpufunc.h
projects/bhyve/sys/amd64/vmm/vmm.c
Modified: projects/bhyve/sys/amd64/include/cpufunc.h
==============================================================================
--- projects/bhyve/sys/amd64/include/cpufunc.h Fri Jan 4 02:04:41 2013 (r245020)
+++ projects/bhyve/sys/amd64/include/cpufunc.h Fri Jan 4 02:49:12 2013 (r245021)
@@ -705,23 +705,6 @@ intr_disable(void)
return (rflags);
}
-#ifndef CR0_TS
-/* Defined in <machine/specialreg.h> */
-#define CR0_TS 0x00000008
-#endif
-static __inline void
-start_emulating(void)
-{
- __asm __volatile("smsw %%ax; orb %0,%%al; lmsw %%ax"
- : : "n" (CR0_TS) : "ax");
-}
-
-static __inline void
-stop_emulating(void)
-{
- __asm __volatile("clts");
-}
-
static __inline void
intr_restore(register_t rflags)
{
Modified: projects/bhyve/sys/amd64/vmm/vmm.c
==============================================================================
--- projects/bhyve/sys/amd64/vmm/vmm.c Fri Jan 4 02:04:41 2013 (r245020)
+++ projects/bhyve/sys/amd64/vmm/vmm.c Fri Jan 4 02:49:12 2013 (r245021)
@@ -145,8 +145,8 @@ static struct vmm_ops *ops;
#define VMSETCAP(vmi, vcpu, num, val) \
(ops != NULL ? (*ops->vmsetcap)(vmi, vcpu, num, val) : ENXIO)
-#define fpu_start_emulating() start_emulating()
-#define fpu_stop_emulating() stop_emulating()
+#define fpu_start_emulating() load_cr0(rcr0() | CR0_TS)
+#define fpu_stop_emulating() clts()
static MALLOC_DEFINE(M_VM, "vm", "vm");
CTASSERT(VMM_MSR_NUM <= 64); /* msr_mask can keep track of up to 64 msrs */
More information about the svn-src-projects
mailing list