Changeset 47636 in vbox
- Timestamp:
- Aug 9, 2013 1:09:54 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r47635 r47636 7488 7488 * 64-bit checks. 7489 7489 */ 7490 # if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 7490 7491 if (HMVMX_IS_64BIT_HOST_MODE()) 7491 7492 { … … 7520 7521 HMVMX_CHECK_BREAK(HMVMX_IS_CANONICAL(u64Val), VMX_IGS_SYSENTER_EIP_NOT_CANONICAL); 7521 7522 } 7523 #endif 7522 7524 7523 7525 /* … … 7676 7678 } 7677 7679 /* 64-bit capable CPUs. */ 7680 # if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 7678 7681 if (HMVMX_IS_64BIT_HOST_MODE()) 7679 7682 { … … 7683 7686 HMVMX_CHECK_BREAK((pCtx->es.Attr.u & X86DESCATTR_UNUSABLE) || !(pCtx->es.u64Base >> 32), VMX_IGS_LONGMODE_ES_BASE_INVALID); 7684 7687 } 7688 #endif 7685 7689 } 7686 7690 else if ( CPUMIsGuestInV86ModeEx(pCtx) … … 7728 7732 HMVMX_CHECK_BREAK(u32GSAttr == 0xf3, VMX_IGS_V86_GS_ATTR_INVALID); 7729 7733 /* 64-bit capable CPUs. */ 7734 # if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 7730 7735 if (HMVMX_IS_64BIT_HOST_MODE()) 7731 7736 { … … 7735 7740 HMVMX_CHECK_BREAK((pCtx->es.Attr.u & X86DESCATTR_UNUSABLE) || !(pCtx->es.u64Base >> 32), VMX_IGS_LONGMODE_ES_BASE_INVALID); 7736 7741 } 7742 #endif 7737 7743 } 7738 7744 … … 7740 7746 * GDTR and IDTR. 7741 7747 */ 7748 # if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 7742 7749 if (HMVMX_IS_64BIT_HOST_MODE()) 7743 7750 { … … 7750 7757 HMVMX_CHECK_BREAK(HMVMX_IS_CANONICAL(u64Val), VMX_IGS_IDTR_BASE_NOT_CANONICAL); 7751 7758 } 7759 #endif 7752 7760 7753 7761 rc = VMXReadVmcs32(VMX_VMCS32_GUEST_GDTR_LIMIT, &u32Val); … … 7763 7771 */ 7764 7772 uint32_t u32EFlags; 7773 # if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL) 7765 7774 if (HMVMX_IS_64BIT_HOST_MODE()) 7766 7775 { … … 7771 7780 || !pCtx->cs.Attr.n.u1Long ) 7772 7781 { 7773 HMVMX_CHECK_BREAK(!(u64Val & 0xffffffff00000000), VMX_IGS_LONGMODE_RIP_INVALID);7782 HMVMX_CHECK_BREAK(!(u64Val & UINT64_C(0xffffffff00000000)), VMX_IGS_LONGMODE_RIP_INVALID); 7774 7783 } 7775 7784 /** @todo If the processor supports N < 64 linear-address bits, bits 63:N … … 7786 7795 } 7787 7796 else 7797 #endif 7788 7798 { 7789 7799 rc = VMXReadVmcs32(VMX_VMCS_GUEST_RFLAGS, &u32EFlags);
Note:
See TracChangeset
for help on using the changeset viewer.