background image

Vol. 3C 26-13

VM ENTRIES

— Bit 0 (blocking by STI) and bit 1 (blocking by MOV-SS) must both be 0 if the valid bit (bit 31) in the 

VM-entry interruption-information field is 1 and the interruption type (bits 10:8) in that field has value 0, 
indicating external interrupt.

— Bit 1 (blocking by MOV-SS) must be 0 if the valid bit (bit 31) in the VM-entry interruption-information field 

is 1 and the interruption type (bits 10:8) in that field has value 2, indicating non-maskable interrupt (NMI).

— Bit 2 (blocking by SMI) must be 0 if the processor is not in SMM.
— Bit 2 (blocking by SMI) must be 1 if the “entry to SMM” VM-entry control is 1.
— A processor may require bit 0 (blocking by STI) to be 0 if the valid bit (bit 31) in the VM-entry interruption-

information field is 1 and the interruption type (bits 10:8) in that field has value 2, indicating NMI. Other 
processors may not make this requirement.

— Bit 3 (blocking by NMI) must be 0 if the “virtual NMIs” VM-execution control is 1, the valid bit (bit 31) in the 

VM-entry interruption-information field is 1, and the interruption type (bits 10:8) in that field has value 2 
(indicating NMI).

— If bit 4 (enclave interruption) is 1, bit 1 (blocking by MOV-SS) must be 0 and the processor must support 

for SGX by enumerating CPUID.(EAX=07H,ECX=0):EBX.SGX[bit 2] as 1.

NOTE

If the “virtual NMIs” VM-execution control is 0, there is no requirement that bit 3 be 0 if the valid 
bit in the VM-entry interruption-information field is 1 and the interruption type in that field has 
value 2.

Pending debug exceptions.
— Bits 11:4, bit 13, bit 15, and bits 63:17 (bits 31:17 on processors that do not support Intel 64 archi-

tecture) must be 0.

— The following checks are performed if any of the following holds: (1) the interruptibility-state field indicates 

blocking by STI (bit 0 in that field is 1); (2) the interruptibility-state field indicates blocking by MOV SS 
(bit 1 in that field is 1); or (3) the activity-state field indicates HLT:

Bit 14 (BS) must be 1 if the TF flag (bit 8) in the RFLAGS field is 1 and the BTF flag (bit 1) in the 

IA32_DEBUGCTL field is 0.

Bit 14 (BS) must be 0 if the TF flag (bit 8) in the RFLAGS field is 0 or the BTF flag (bit 1) in the 

IA32_DEBUGCTL field is 1.

— The following checks are performed if bit 16 (RTM) is 1:

Bits 11:0, bits 15:13, and bits 63:17 (bits 31:17 on processors that do not support Intel 64 archi-

tecture) must be 0; bit 12 must be 1.

The processor must support for RTM by enumerating CPUID.(EAX=07H,ECX=0):EBX[bit 11] as 1.

The interruptibility-state field must not indicate blocking by MOV SS (bit 1 in that field must be 0).

VMCS link pointer. The following checks apply if the field contains a value other than FFFFFFFF_FFFFFFFFH:
— Bits 11:0 must be 0.
— Bits beyond the processor’s physical-address width must be 0.

1,2

— The 4 bytes located in memory referenced by the value of the field (as a physical address) must satisfy the 

following:

Bits 30:0 must contain the processor’s VMCS revision identifier (see Section 24.2).

3

1. Software can determine a processor’s physical-address width by executing CPUID with 80000008H in EAX. The physical-address 

width is returned in bits 7:0 of EAX.

2. If IA32_VMX_BASIC[48] is read as 1, this field must not set any bits in the range 63:32; see Appendix A.1.
3. Earlier versions of this manual specified that the VMCS revision identifier was a 32-bit field. For all processors produced prior to this 

change, bit 31 of the VMCS revision identifier was 0.