. RESTOREXMM128

Genererar antingen en WOD_SAVE_XMM128 eller en WOD_SAVE_XMM128_FAR avspolningskodpost i version 3 för det angivna XMM-registret och förskjutningen med den aktuella epilogförskjutningen.

Syntax

.RESTOREXMM128 xmmreg, offset

Parameters

xmmreg
XMM-registret som ska återställas.

förskjutning
Stackförskjutningen som registret återställs från. Måste vara en multipel av 16.

Anmärkningar

Important

Detta direktiv är experimentellt och kan komma att ändras. Aktivera Varva ned version 3 med ml64.exe /unwindv3.

.RESTOREXMM128 är endast giltigt i Avspolning version 3. Det är epilogens motsvarighet till . SAVEXMM128.

Microsoft Assembler (MASM) väljer den mest effektiva kodningen för en given förskjutning.

  • .RESTOREXMM128 tillåts endast inom en epilogregion, mellan . BEGINEPILOG och . ENDEPILOG.
  • Dessa direktiv genererar varva ned metadata (.xdata och .pdata avsnitt) men producerar inte körbar kod.
  • I Varva ned version 3 .RESTOREXMM128 måste visas före instruktionen som läser in XMM-registret från stacken.
  • 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.
  • I Avspolning av version 3 är epilogdirektiv obligatoriska för kodgenerering av epiloger. Inga epilog-avrullningskoder genereras utan ett .BEGINEPILOG/.ENDEPILOG par.

Note

I Varva ned version 1 visas direktivet efter motsvarande instruktion. I Varva ned version 3 visas direktivet före 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 ...
   .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

Se även

x64 Varva ned version 3 (experimentell)
Referens för direktiv
. SAVEXMM128
. BEGINEPILOG
MASM BNF-grammatik