Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Génère une WOD_SAVE_XMM128 entrée de code unwind Version 3 ou WOD_SAVE_XMM128_FAR Unwind pour le registre XMM et le décalage spécifiés à l’aide du décalage épilogue actuel.
Syntaxe
.RESTOREXMM128xmmreg, offset
Paramètres
xmmreg
Registre XMM à restaurer.
Compenser
Décalage de pile à partir duquel le registre est restauré. Doit être un multiple de 16.
Remarques
Important
Cette directive est expérimentale et peut être modifiée. Activez Unwind Version 3 avec ml64.exe /unwindv3.
.RESTOREXMM128 est valide uniquement dans Unwind Version 3. C’est l’épilogue équivalent à . SAVEXMM128.
Microsoft Assembleur (MASM) choisit l’encodage le plus efficace pour un décalage donné.
-
.RESTOREXMM128est autorisé uniquement dans une région épilogue, entre . BEGINEPILOG et . ENDEPILOG. - Ces directives génèrent des métadonnées de déroulement (
.xdataet.pdatades sections) mais ne produisent pas de code exécutable. - Dans Unwind Version 3,
.RESTOREXMM128doit apparaître avant l’instruction qui charge le registre XMM à partir de la pile. - Pour garantir l’accord, incluez à la fois les directives de déroulement et le code qu’ils sont destinés à décompresser dans une macro.
- Dans Unwind Version 3, les directives d’épilogue sont obligatoires pour la génération de code de déroulement d’épilogue. Aucun code de déroulement d’épilogue n’est émis sans
.BEGINEPILOG/.ENDEPILOGpaire.
Note
Dans Unwind Version 1, la directive apparaît après l’instruction correspondante. Dans Unwind Version 3, la directive apparaît avant l’instruction.
Exemple de déroulement3
; ml64 /unwindv3 ex1.asm /link /entry:Example1 /SUBSYSTEM:CONSOLE
_text SEGMENT
Example1 PROC FRAME
.allocstack 030h
sub rsp, 030h
.savexmm128 xmm6, 0
movdqa [rsp], xmm6
.savexmm128 xmm7, 010h
movdqa [rsp+010h], xmm7
.endprolog
; rest of function ...
.beginepilog
.restorexmm128 xmm7, 010h
movdqa xmm7, [rsp+010h]
.restorexmm128 xmm6, 0
movdqa xmm6, [rsp]
.freestack 030h
add rsp, 030h
.endepilog
ret
Example1 ENDP
_text ENDS
END
Voir aussi
x64 Unwind Version 3 (expérimentale)
Informations de référence sur les directives
. SAVEXMM128
. BEGINEPILOG
Grammaire MASM BNF