Changeset 17106 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Feb 25, 2009 12:35:15 AM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r17035 r17106 640 640 PCPUMCPU pCpumCpu = cpumGetCpumCpu(pVM); 641 641 642 if ( (cr4 642 if ( (cr4 & (X86_CR4_PGE | X86_CR4_PAE | X86_CR4_PSE)) 643 643 != (pCpumCpu->Guest.cr4 & (X86_CR4_PGE | X86_CR4_PAE | X86_CR4_PSE))) 644 644 pCpumCpu->fChanged |= CPUM_CHANGED_GLOBAL_TLB_FLUSH; -
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r15635 r17106 2094 2094 oldval = CPUMGetGuestCR4(pVM); 2095 2095 rc = CPUMSetGuestCR4(pVM, val); AssertRC(rc); 2096 val = CPUMGetGuestCR4(pVM); 2097 2096 val = CPUMGetGuestCR4(pVM); 2097 2098 /* Illegal to disable PAE when long mode is active. (AMD Arch. Programmer's Manual Volume 2: Table 14-5) */ 2098 2099 msrEFER = CPUMGetGuestEFER(pVM); 2099 /* Illegal to disable PAE when long mode is active. (AMD Arch. Programmer's Manual Volume 2: Table 14-5) */2100 2100 if ( (msrEFER & MSR_K6_EFER_LMA) 2101 2101 && (oldval & X86_CR4_PAE) 2102 2102 && !(val & X86_CR4_PAE)) 2103 2103 { 2104 return VERR_EM_INTERPRETER; /* @todo generate #GP(0) */2104 return VERR_EM_INTERPRETER; /** @todo generate #GP(0) */ 2105 2105 } 2106 2106 … … 2112 2112 AssertRCReturn(rc, rc); 2113 2113 } 2114 2115 /* Feeling extremely lazy. */ 2114 2116 # ifdef IN_RC 2115 /* Feeling extremely lazy. */2116 2117 if ( (oldval & (X86_CR4_OSFSXR|X86_CR4_OSXMMEEXCPT|X86_CR4_PCE|X86_CR4_MCE|X86_CR4_PAE|X86_CR4_DE|X86_CR4_TSD|X86_CR4_PVI|X86_CR4_VME)) 2117 2118 != (val & (X86_CR4_OSFSXR|X86_CR4_OSXMMEEXCPT|X86_CR4_PCE|X86_CR4_MCE|X86_CR4_PAE|X86_CR4_DE|X86_CR4_TSD|X86_CR4_PVI|X86_CR4_VME))) … … 2121 2122 } 2122 2123 # endif 2124 if ((val ^ oldval) & X86_CR4_VME) 2125 VM_FF_SET(pVM, VM_FF_SELM_SYNC_TSS); 2126 2123 2127 return PGMChangeMode(pVM, CPUMGetGuestCR0(pVM), CPUMGetGuestCR4(pVM), CPUMGetGuestEFER(pVM)); 2124 2128
Note:
See TracChangeset
for help on using the changeset viewer.