2008-11-04 9 views
8

¿Por qué Windows 64 decidió exigir que se guardaran/restauraran xmm6 y xmm7?¿Por qué Windows 64 eligió que se guarden/restauren xmm6 y xmm7?

En Windows 32, puede escribir rutinas de ensamblaje que demuestren xmm0 ... xmm7. Pero si toma ese mismo código de ensamblado y lo ejecuta en Windows 64, generalmente causará un error de aplicación porque VS2007 almacena valores de precisión doble en xmm6 y xmm7.

Me pareció que como X64 tiene 16 registros xmm0 ... xmm15 (mientras que X32 solo tiene 8 registros xmm), entonces Microsoft podría haber elegido permitir a los usuarios bloquear xmm0..xmm7 (para poder reutilizarlos) ensamblar rutinas de Win32 sin pensarlo) pero requiere que los usuarios guarden/restauren xmm8 ... xmm15.

Entonces, para satisfacer mi propia curiosidad, ¿por qué Windows 64 decidió exigir que se guarden/restauraran xmm6 y xmm7?

Respuesta

Cuestiones relacionadas