_xsaves
Classification
Other, OS-Targeted, CPUID Test: XSAVE
Header File
immintrin.h
Instruction
XSAVES m8
Synopsis
 _xsaves(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