Changeset 9805 in vbox
- Timestamp:
- Jun 18, 2008 4:18:28 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r9804 r9805 682 682 683 683 /* The base values in the hidden fs & gs registers are not in sync with the msrs; they are cut to 32 bits. */ 684 if (CPUMIsGuestIn64BitCodeEx(pCtx)) 685 { 686 rc = VMXWriteVMCS(VMX_VMCS_GUEST_FIELD_FS, pCtx->fs); 687 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_FS_LIMIT, pCtx->fsHid.u32Limit); 688 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_FS_BASE, pCtx->fsHid.u64Base); 689 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_FS_ACCESS_RIGHTS, pCtx->fsHid.Attr.u); 690 AssertRC(rc); 691 692 rc = VMXWriteVMCS(VMX_VMCS_GUEST_FIELD_GS, pCtx->gs); 693 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_GS_LIMIT, pCtx->gsHid.u32Limit); 694 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_GS_BASE, pCtx->gsHid.u64Base); 695 rc |= VMXWriteVMCS(VMX_VMCS_GUEST_GS_ACCESS_RIGHTS, pCtx->gsHid.Attr.u); 696 AssertRC(rc); 697 } 698 else 699 { 700 VMX_WRITE_SELREG(FS, fs); 701 AssertRC(rc); 702 703 VMX_WRITE_SELREG(GS, gs); 704 AssertRC(rc); 705 } 684 VMX_WRITE_SELREG(FS, fs); 685 AssertRC(rc); 686 687 VMX_WRITE_SELREG(GS, gs); 688 AssertRC(rc); 706 689 } 707 690 … … 979 962 980 963 /* 64 bits guest mode? */ 981 if ( CPUMIsGuestIn64BitCodeEx(pCtx))964 if (pCtx->msrEFER & MSR_K6_EFER_LMA) 982 965 { 983 966 #ifndef VBOX_WITH_64_BITS_GUESTS
Note:
See TracChangeset
for help on using the changeset viewer.