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

Table Of Contents
21-16 Vol. 3
VMX NON-ROOT OPERATION
If the “NMI exiting” VM-execution control is 0, IRET operates normally and
unblocks NMIs.
If the “NMI exiting” VM-execution control is 1, IRET does not affect blocking
of NMIs.
If the “virtual NMIs” VM-execution control is 1, the logical processor tracks
virtual-NMI blocking. In this case, IRET removes any virtual-NMI blocking.
If the “NMI exiting” VM-execution control is 0, the “virtual NMIs” control must be
0. (See Section 22.2.1.1.)
LMSW. An execution of LMSW that does not cause a VM exit (see Section 21.1.3)
leaves unmodified any bit in CR0 corresponding to a bit set in the CR0 guest/host
mask. It causes a general-protection exception if it attempts to set any bit to a
value not supported in VMX operation (see Section 19.8)
MOV from CR0. The behavior of MOV from CR0 is determined by the CR0
guest/host mask and the CR0 read shadow. For each position corresponding to a
bit clear in the CR0 guest/host mask, the destination operand is loaded with the
value of the corresponding bit in CR0. For each position corresponding to a bit set
in the CR0 guest/host mask, the destination operand is loaded with the value of
the corresponding bit in the CR0 read shadow. Thus, if every bit is cleared in the
CR0 guest/host mask, MOV from CR0 reads normally from CR0; if every bit is set
in the CR0 guest/host mask, MOV from CR0 returns the value of the CR0 read
shadow.
Note that, depending on the contents of the CR0 guest/host mask and the CR0
read shadow, bits may be set in the destination that would never be set when
reading directly from CR0.
MOV from CR3. If the “enable EPT” VM-execution control is 1 and an execution
of MOV from CR3 does not cause a VM exit (see Section 21.1.3), the value loaded
from CR3 is a guest-physical address; see Section 24.2.1.
MOV from CR4. The behavior of MOV from CR4 is determined by the CR4
guest/host mask and the CR4 read shadow. For each position corresponding to a
bit clear in the CR4 guest/host mask, the destination operand is loaded with the
value of the corresponding bit in CR4. For each position corresponding to a bit set
in the CR4 guest/host mask, the destination operand is loaded with the value of
the corresponding bit in the CR4 read shadow. Thus, if every bit is cleared in the
CR4 guest/host mask, MOV from CR4 reads normally from CR4; if every bit is set
in the CR4 guest/host mask, MOV from CR4 returns the value of the CR4 read
shadow.
Note that, depending on the contents of the CR4 guest/host mask and the CR4
read shadow, bits may be set in the destination that would never be set when
reading directly from CR4.
MOV from CR8. Behavior of the MOV from CR8 instruction (which can be
executed only in 64-bit mode) is determined by the settings of the “CR8-store
exiting” and “use TPR shadow” VM-execution controls:
If both controls are 0, MOV from CR8 operates normally.