Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
22-14 Vol. 3
VM ENTRIES
On processors that support Intel 64 architecture, the base-address fields must
contain canonical addresses.
Bits 31:16 of each limit field must be 0.
22.3.1.4 Checks on Guest RIP and RFLAGS
The following checks are performed on fields in the guest-state area corresponding to
RIP and RFLAGS:
RIP. The following checks are performed on processors that support Intel 64
architecture:
Bits 63:32 must be 0 if the “IA-32e mode guest” VM-entry control is 0 or if
the L bit (bit 13) in the access-rights field for CS is 0.
If the processor supports N < 64 linear-address bits, bits 63:N must be
identical if the “IA-32e mode guest” VM-entry control is 1 and the L bit in the
access-rights field for CS is 1.
1
(No check applies if the processor supports 64
linear-address bits.)
RFLAGS.
Reserved bits 63:22 (bits 31:22 on processors that do not support Intel 64
architecture), bit 15, bit 5 and bit 3 must be 0 in the field, and reserved bit 1
must be 1.
On processors that support Intel 64 architecture, the VM flag (bit 17) must be
0 if the “IA-32e mode guest” VM-entry control is 1.
The IF flag (RFLAGS[bit 9]) must be 1 if the valid bit (bit 31) in the VM-entry
interruption-information field is 1 and the interruption type (bits 10:8) is
external interrupt.
22.3.1.5 Checks on Guest Non-Register State
The following checks are performed on fields in the guest-state area corresponding to
non-register state:
Activity state.
The activity-state field must contain a value in the range 0 3, indicating an
activity state supported by the implementation (see Section 20.4.2). Future
processors may include support for other activity states. Software should
read the VMX capability MSR IA32_VMX_MISC (see Appendix G.6) to
determine what activity states are supported.
The activity-state field must not indicate the HLT state if the DPL (bits 6:5) in
the access-rights field for SS is not 0.
2
1. Software can determine the number N by executing CPUID with 80000008H in EAX. The num-
ber of linear-address bits supported is returned in bits 15:8 of EAX.