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

Table Of Contents
20-30 Vol. 3
VIRTUAL-MACHINE CONTROL STRUCTURES
20.10.2 VMREAD, VMWRITE, and Encodings of VMCS Fields
Every field of the VMCS is associated with a 32-bit value that is its encoding. The
encoding is provided in an operand to VMREAD and VMWRITE when software wishes
to read or write that field. These instructions fail if given, in 64-bit mode, an operand
that sets an encoding bit beyond bit 32. See Chapter 5 of the Intel® 64 and IA-32
Architectures Software Developer’s Manual, Volume 2B, for a description of these
instructions.
The structure of the 32-bit encodings of the VMCS components is determined princi-
pally by the width of the fields and their function in the VMCS. See Table 20-16.
The following items detail the meaning of the bits in each encoding:
Field width. Bits 14:13 encode the width of the field.
A value of 0 indicates a 16-bit field.
A value of 1 indicates a 64-bit field.
A value of 2 indicates a 32-bit field.
A value of 3 indicates a natural-width field. Such fields have 64 bits on
processors that support Intel 64 architecture and 32 bits on processors that
do not.
Table 20-16. Structure of VMCS Component Encoding
Bit Position(s) Contents
31:15 Reserved (must be 0)
14:13 Width:
0: 16-bit
1: 64-bit
2: 32-bit
3: natural-width
12 Reserved (must be 0)
11:10 Type:
0: control
1: read-only data
2: guest state
3: host state
9:1 Index
0 Access type (0 = full; 1 = high); must be full for 16-bit, 32-bit, and natural-
width fields