Opcode/Instruction | Op/En | Description |
---|---|---|
NP 0F C7 /7 VMPTRST m64 | M | Stores the current VMCS pointer into memory. |
Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
M | ModRM:r/m (w) | NA | NA | NA |
Stores the current-VMCS pointer into a specified memory address. The operand of this instruction is always 64 bits and is always in memory.
IF (register operand) or (not in VMX operation) or (CR0.PE = 0) or (RFLAGS.VM = 1) or (IA32_EFER.LMA = 1 and CS.L = 0) THEN #UD; ELSIF in VMX non-root operation THEN VMexit; ELSIF CPL > 0 THEN #GP(0); ELSE 64-bit in-memory destination operand ← current-VMCS pointer; VMsucceed; FI;
See the operation section and Section 30.2.
#GP(0) | If the current privilege level is not 0. |
If the memory destination operand effective address is outside the CS, DS, ES, FS, or GS segment limit. | |
If the DS, ES, FS, or GS register contains an unusable segment. | |
If the destination operand is located in a read-only data segment or any code segment. | |
#PF(fault-code) | If a page fault occurs in accessing the memory destination operand. |
#SS(0) | If the memory destination operand effective address is outside the SS segment limit. |
If the SS register contains an unusable segment. | |
#UD | If operand is a register. |
If not in VMX operation. |
#UD | The VMPTRST instruction is not recognized in real-address mode. |
#UD | The VMPTRST instruction is not recognized in virtual-8086 mode. |
#UD | The VMPTRST instruction is not recognized in compatibility mode. |
#GP(0) | If the current privilege level is not 0. |
If the destination operand is in the CS, DS, ES, FS, or GS segments and the memory address is in a non-canonical form. | |
#PF(fault-code) | If a page fault occurs in accessing the memory destination operand. |
#SS(0) | If the destination operand is in the SS segment and the memory address is in a non-canonical form. |
#UD | If operand is a register. |
If not in VMX operation. |