- Timestamp:
- Jun 10, 2010 11:52:14 AM (15 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r29250 r30145 1422 1422 } 1423 1423 1424 case CPUMCPUIDFEATURE_NXE: 1425 { 1426 if (pVM->cpum.s.aGuestCpuIdExt[0].eax >= 0x80000001) 1427 return !!(pVM->cpum.s.aGuestCpuIdExt[1].edx & X86_CPUID_AMD_FEATURE_EDX_NX); 1428 } 1429 1424 1430 case CPUMCPUIDFEATURE_RDTSCP: 1425 1431 { -
trunk/src/VBox/VMM/VMMSwitcher.cpp
r28800 r30145 527 527 } 528 528 529 530 ///@todo case FIX_CR4_MASK: 531 ///@todo case FIX_CR4_OSFSXR: 529 /* 530 * Store the EFER or mask for the 32->64 bit switcher. 531 */ 532 case FIX_EFER_OR_MASK: 533 { 534 uint32_t u32OrMask = MSR_K6_EFER_LME | MSR_K6_EFER_SCE; 535 if (CPUMGetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE)) 536 u32OrMask |= MSR_K6_EFER_NXE; 537 538 *uSrc.pu32 = u32OrMask; 539 break; 540 } 532 541 533 542 /* -
trunk/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac
r28800 r30145 228 228 rdmsr 229 229 or eax, MSR_K6_EFER_LME | MSR_K6_EFER_SCE | MSR_K6_EFER_NXE 230 ; FIXUP FIX_EFER_OR_MASK 231 ; or eax, 0 232 or eax, 0 233 and eax, ~(MSR_K6_EFER_FFXSR) ; turn off fast fxsave/fxrstor (skipping xmm regs) 230 234 wrmsr 231 235 mov edx, ebp -
trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h
r28800 r30145 43 43 #define FIX_HYPER_TSS 20 44 44 #define FIX_GC_TSS_GDTE_DW2 21 45 #define FIX_CR4_MASK 2246 #define FIX_CR4_OSFSXR 2347 45 #define FIX_NO_FXSAVE_JMP 24 48 46 #define FIX_NO_SYSENTER_JMP 25 … … 59 57 #define FIX_GC_64_BIT_CPUM_OFF 36 60 58 #define FIX_GC_CPUMCPU_OFF 37 59 #define FIX_EFER_OR_MASK 38 61 60 #define FIX_THE_END 255 62 61 /** @} */ -
trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.mac
r28800 r30145 87 87 %define FIX_HYPER_TSS 20 88 88 %define FIX_GC_TSS_GDTE_DW2 21 89 %define FIX_CR4_MASK 2290 %define FIX_CR4_OSFSXR 2391 89 %define FIX_NO_FXSAVE_JMP 24 92 90 %define FIX_NO_SYSENTER_JMP 25 … … 103 101 %define FIX_GC_64_BIT_CPUM_OFF 36 104 102 %define FIX_GC_CPUMCPU_OFF 37 103 %define FIX_EFER_OR_MASK 38 105 104 %define FIX_THE_END 255 106 105 ;/** @} */
Note:
See TracChangeset
for help on using the changeset viewer.