_xsaves64
Classification
Other, OS-Targeted, CPUID Test: XSAVE
Header File
Instruction
XSAVEC64 m8
Synopsis
_xsaves64(void * mem_addr, unsigned __int64 save_mask);
Description
Perform a full or partial save of the enabled processor states to memory at "mem_addr"; xsaves differs from xsave in that it can save state components corresponding to bits set in IA32_XSS MSR and that it may use the modified optimization. State is saved based on bits [62:0] in "save_mask" and "XCR0". "mem_addr" must be aligned on a 64-byte boundary.
Operation
mask[62:0] := save_mask[62:0] AND XCR0[62:0]
FOR i := 0 to 62
IF mask[i]
CASE (i) OF
0: mem_addr.FPUSSESave_Area[FPU] := ProcessorState[x87_FPU]
1: mem_addr.FPUSSESaveArea[SSE] := ProcessorState[SSE]
DEFAULT: mem_addr.Ext_Save_Area[i] := ProcessorState[i]
ESAC
mem_addr.HEADER.XSTATE_BV[i] := INIT_FUNCTION[i]
FI
i := i + 1
ENDFOR