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 の保存/復元を要求することを選択したのでしょうか?