9 Jul
2013
9 Jul
'13
7:45 a.m.
2013/7/9 Andrey Semashev
I've been looking at Boost.Context and wondering whether it preserves SSE/AVX state on context switches. From the code it doesn't look like the case - only jump_x86_64_ms_pe_masm.asm contains the code that saves some (not all) xmm registers and ymm registers are never saved. Is this intentional or the library simply doesn't support SSE/AVX? And why not use xsave/xrstor to consistently support all future extensions?
boost.context preserves only non-volatile registers as described by the ABI. take a look at http://www.boost.org/doc/libs/1_54_0/libs/context/doc/html/context/rationale...