_xrstor64
Classification
Other, OS-Targeted, CPUID Test: XSAVE
Header File
immintrin.h
Instruction
XRSTOR64 m8
Synopsis
 _xrstor64(void * mem_addr, unsigned __int64 rs_mask);
Description
Perform a full or partial restore of the enabled processor states using the state information stored in memory at "mem_addr". State is restored based on bits [62:0] in "rs_mask", "XCR0", and "mem_addr.HEADER.XSTATE_BV". "mem_addr" must be aligned on a 64-byte boundary.
Operation
st_mask := mem_addr.HEADER.XSTATE_BV[62:0]
FOR i := 0 to 62
	IF (rs_mask[i] AND XCR0[i])
		IF st_mask[i]
			CASE (i) OF
			0: ProcessorState[x87_FPU] := mem_addr.FPUSSESave_Area[FPU]
			1: ProcessorState[SSE] := mem_addr.FPUSSESaveArea[SSE]
			DEFAULT: ProcessorState[i] := mem_addr.Ext_Save_Area[i]
			ESAC
		ELSE
			// ProcessorExtendedState := Processor Supplied Values
			CASE (i) OF
			1: MXCSR := mem_addr.FPUSSESave_Area[SSE]
			ESAC
		FI
	FI
	i := i + 1
ENDFOR