Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genererar antingen en UWOP_SAVE_XMM128 eller en UWOP_SAVE_XMM128_FAR avrullningskodpost för det angivna XMM-registret och förskjutningen med den aktuella prologförskjutningen. Microsoft Assembler (MASM) väljer den mest effektiva kodningen.
Syntax
.SAVEXMM128xmmreg , offset
Anmärkningar
Använd .SAVEXMM128 med ml64.exe för att ange hur en ramfunktion avrundas. Du kan bara använda den i prologen, som sträcker sig från deklarationen PROCFRAME till . ENDPROLOG-direktivet . Dessa direktiv genererar varva ned metadata (.xdata och .pdata avsnitt) men producerar inte körbar kod. Föregås .SAVEXMM128 av de instruktioner som faktiskt implementerar de åtgärder som ska ångras. För att säkerställa en överenskommelse omsluter du både avaktiveringsdirektiven och den kod som de är avsedda att varva ned i ett makro.
förskjutningen måste vara en multipel av 16.
Varva ned version 3-beteende
Important
Stöd för att varva ned version 3 är experimentellt och kan komma att ändras. Aktivera det med hjälp ml64.exe /unwindv3av .
I Varva ned version 3 .SAVEXMM128 genererar antingen en WOD_SAVE_XMM128 eller en WOD_SAVE_XMM128_FAR avkopplingskodpost. Microsoft Assembler (MASM) väljer den mest effektiva kodningen baserat på storleken på offset:
| Varva ned kod | Tillstånd |
|---|---|
WOD_SAVE_XMM128 |
offset kan kodas som ett skalat 16-bitars värde |
WOD_SAVE_XMM128_FAR |
offset kräver ett fullständigt 32-bitarsvärde |
Note
I Varva ned version 1 kommer direktiven efter instruktionen. I Varva ned version 3 kommer direktiven före instruktionen.
.SAVEXMM128 måste visas före instruktionen som beskrivs. Detta krav är motsatsen till version 1, där direktivet följer instruktionen.
Exempel på avspolning 3
; 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 ...
movdqa xmm7, [rsp+010h]
movdqa xmm6, [rsp]
add rsp, 030h
ret
Example1 ENDP
_text ENDS
END
Motsvarigheten till epilogen är . RESTOREXMM128.
Se även
x64 Varva ned version 3 (experimentell)
Referens för direktiv
MASM BNF-grammatik
MASM för x64 (ml64.exe)