D-Programming-Language/druntime — pull request #810 by jblume (2014-05-26 13:45:03+00:00)
Title: fix Issue 7954 - x86_64 Windows fibers do not save nonvolatile XMM registers

https://issues.dlang.org/show_bug.cgi?id=7954

This makes context switches for fibers on Win64 a little more expensive, but there is no way around it without forcing fibers to not use SSE registers and not call any external code. The calling convention demands it: http://msdn.microsoft.com/en-us/library/9z1stfyw.aspx

I have also included unit tests to check all nonvolatile registers. The functions I have defined for that could probably be easily reused to make calling convention tests for other platforms.