Pourquoi Windows 64 a-t-il choisi d'exiger que xmm6 et xmm7 soient sauvegardés/restaurés?Pourquoi Windows 64 a-t-il choisi d'exiger que xmm6 et xmm7 soient sauvegardés/restaurés?
Dans Windows 32, vous pouviez écrire des routines d'assemblage qui ont tordu xmm0 ... xmm7. Mais si vous prenez le même code d'assemblage et que vous l'exécutez dans Windows 64, cela provoquera généralement une erreur d'application car VS2007 stocke les valeurs à double précision dans xmm6 et xmm7.
Il me semble que puisque X64 a 16 registres xmm xmm0 ... xmm15 (alors que X32 n'a que 8 registres xmm), alors Microsoft aurait pu choisir de permettre aux utilisateurs de claquer xmm0..xmm7 (afin qu'ils puissent réutiliser routines d'assemblage à partir de Win32 sans y penser) mais nécessitent des utilisateurs pour enregistrer/restaurer xmm8 ... xmm15. Donc, pour satisfaire ma propre curiosité, pourquoi Windows 64 a-t-il choisi d'exiger que xmm6 et xmm7 soient sauvegardés/restaurés?