HV_X64_X_REGISTERS union
The HV_X64_X_REGISTERS union defines the format of the XSAVE save area, which is the area that is used to save and restore the context of processor extended state (including legacy FP and SSE state) by the XSAVE and XRSTOR instructions.
Syntax
typedef union _HV_X64_X_REGISTERS { struct { HV_X64_FP_CONTROL_STATUS_REGISTER FpControlStatus; HV_X64_XMM_CONTROL_STATUS_REGISTER XmmControlStatus; HV_X64_FP_MMX_REGISTER FpMmx[8]; union { HV_UINT128 Xmm[16]; HV_UINT128 YmmLow[16]; }; HV_UINT128 Reserved[6]; HV_X64_XSAVE_HEADER Header; HV_UINT128 YmmHigh[16]; }; UINT8 XSaveArea[HV_X64_XSAVE_AREA_SIZE]; } HV_X64_X_REGISTERS, *PHV_X64_X_REGISTERS;
Members
- FpControlStatus
-
An HV_X64_FP_CONTROL_STATUS_REGISTER union.
- XmmControlStatus
-
An HV_X64_XMM_CONTROL_STATUS_REGISTER union.
- FpMmx
-
An array of 8 HV_X64_FP_MMX_REGISTER unions.
- Xmm
-
An array of 16 128-bit XMM floating-point control-status values.
- YmmLow
-
An array of 16 128-bit YMMLOW floating-point control-status values.
- Reserved
-
This member is reserved.
- Header
-
A HV_X64_XSAVE_HEADER structure that represents the header area of an XSAVE area.
- YmmHigh
-
An array of 16 128-bit YMMHIGH floating-point control-status values. The AVX context, which is the upper 128 bits of the YMM registers. The lower 128 bits overlay the XMM registers.
- XSaveArea
-
A member in the union that can hold an array of HV_X64_XSAVE_AREA_SIZE bytes that defines the XSAVE area. HV_X64_XSAVE_AREA_SIZE is currently defined as HV_X64_FXSAVE_AREA_SIZE + HV_X64_XSAVE_AREA_HEADER_SIZE + HV_X64_XSAVE_AREA_AVX_SIZE, which is 932 bytes.
Remarks
The XSAVE header must be aligned on a 64-byte boundary. Therefore, HV_X64_X_REGISTERS must be 64-byte aligned.
Requirements
|
Header |
|
|---|
See also
- HV_X64_FP_CONTROL_STATUS_REGISTER
- HV_X64_FP_MMX_REGISTER
- HV_X64_XMM_CONTROL_STATUS_REGISTER
- HV_X64_XSAVE_HEADER
Send comments about this topic to Microsoft
Build date: 11/16/2013
