Почему Windows 64 решила требовать сохранения / восстановления xmm6 и xmm7?
В Windows 32 вы могли писать подпрограммы сборки, которые перекрывали xmm0 ... xmm7. Но если вы возьмете тот же код сборки и запустите его в Windows 64, это, как правило, приведет к сбою приложения, поскольку VS2007 сохраняет значения двойной точности в xmm6 и xmm7.
Мне показалось, что, поскольку X64 имеет 16 регистров xmm xmm0 ... xmm15 (в то время как X32 имеет только 8 регистров xmm), Microsoft могла бы разрешить пользователям затирать xmm0..xmm7 (чтобы они могли повторно использовать сборку подпрограммы из Win32, не думая об этом), но требуют, чтобы пользователи сохранили / восстановили xmm8 ... xmm15.
Итак, чтобы удовлетворить мое любопытство, почему Windows 64 решила требовать сохранения / восстановления xmm6 и xmm7?