Changeset 45684 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Apr 23, 2013 3:44:47 PM (12 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45682 r45684 3968 3968 # error "VMX_USE_CACHED_VMCS_ACCESSES not defined when it should be!" 3969 3969 #endif 3970 3971 3970 #ifdef VBOX_STRICT 3972 3971 static bool hmR0VmxIsValidWriteField(uint32_t idxField) … … 4287 4286 case VMX_VMCS64_CTRL_EPTP_FULL: 4288 4287 case VMX_VMCS64_CTRL_EPTP_LIST_FULL: 4289 /* 64-bit Read-only data fields. */4290 case VMX_VMCS64_EXIT_GUEST_PHYS_ADDR_FULL:4291 4288 /* 64-bit Guest-state fields. */ 4292 4289 case VMX_VMCS64_GUEST_VMCS_LINK_PTR_FULL: … … 4347 4344 default: 4348 4345 { 4349 AssertMsgFailed(("VMXWriteVmcs64Ex: invalid field %#x (pVCpu=%p u64Val=%RX64)\n", (unsigned)idxField, pVCpu, u64Val));4346 AssertMsgFailed(("VMXWriteVmcs64Ex: Invalid field %#RX32 (pVCpu=%p u64Val=%#RX64)\n", idxField, pVCpu, u64Val)); 4350 4347 rc = VERR_INVALID_PARAMETER; 4351 4348 break; … … 4389 4386 } 4390 4387 4391 4392 /** 4388 /* Enable later when the assembly code uses these as callbacks. */ 4389 #if 0 4390 /* 4393 4391 * Loads the VMCS write-cache into the CPU (by executing VMWRITEs). 4394 4392 * … … 4427 4425 } 4428 4426 } 4427 #endif 4429 4428 #endif /* HC_ARCH_BITS == 32 && defined(VBOX_ENABLE_64_BITS_GUESTS) && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL) */ 4430 4429 … … 4949 4948 static int hmR0VmxSaveGuestFSBaseMsr(PVMCPU pVCpu, PCPUMCTX pMixedCtx) 4950 4949 { 4951 RTGCUINTREG uVal = 0;4952 4950 int rc = VINF_SUCCESS; 4953 4951 if (!(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_FS_BASE_MSR)) 4954 4952 { 4953 RTGCUINTREG uVal = 0; 4955 4954 rc = VMXReadVmcsGstN(VMX_VMCS_GUEST_FS_BASE, &uVal); AssertRCReturn(rc, rc); 4956 4955 pMixedCtx->fs.u64Base = uVal; … … 4975 4974 static int hmR0VmxSaveGuestGSBaseMsr(PVMCPU pVCpu, PCPUMCTX pMixedCtx) 4976 4975 { 4977 RTGCUINTREG uVal = 0;4978 4976 int rc = VINF_SUCCESS; 4979 4977 if (!(pVCpu->hm.s.vmx.fUpdatedGuestState & HMVMX_UPDATED_GUEST_GS_BASE_MSR)) 4980 4978 { 4979 RTGCUINTREG uVal = 0; 4981 4980 rc = VMXReadVmcsGstN(VMX_VMCS_GUEST_GS_BASE, &uVal); AssertRCReturn(rc, rc); 4982 4981 pMixedCtx->gs.u64Base = uVal; … … 5045 5044 static int hmR0VmxSaveGuestControlRegs(PVMCPU pVCpu, PCPUMCTX pMixedCtx) 5046 5045 { 5047 RTGCUINTREG uVal = 0;5048 RTGCUINTREG uShadow = 0;5049 int rc = VINF_SUCCESS;5050 5051 5046 /* Guest CR0. Guest FPU. */ 5052 rc = hmR0VmxSaveGuestCR0(pVCpu, pMixedCtx);5047 int rc = hmR0VmxSaveGuestCR0(pVCpu, pMixedCtx); 5053 5048 5054 5049 /* Guest CR4. */ … … 5063 5058 && CPUMIsGuestPagingEnabledEx(pMixedCtx)) 5064 5059 { 5060 RTGCUINTREG uVal = 0; 5065 5061 rc = VMXReadVmcsGstN(VMX_VMCS_GUEST_CR3, &uVal); 5066 5062 if (pMixedCtx->cr3 != uVal) -
trunk/src/VBox/VMM/include/HMInternal.h
r45637 r45684 40 40 #ifdef VBOX_WITH_OLD_VTX_CODE 41 41 # define VMX_USE_CACHED_VMCS_ACCESSES 42 #elif HC_ARCH_BITS == 32 && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL)42 #elif HC_ARCH_BITS == 32 && defined(VBOX_ENABLE_64_BITS_GUESTS) && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 43 43 # define VMX_USE_CACHED_VMCS_ACCESSES 44 44 #endif
Note:
See TracChangeset
for help on using the changeset viewer.