. RESTOREXMM128

WOD_SAVE_XMM128 Generuje wpis kodu unwind w wersji 3 dla WOD_SAVE_XMM128_FAR określonego rejestru XMM i przesunięcia przy użyciu bieżącego przesunięcia epilogu.

Syntax

.RESTOREXMM128 xmmreg, przesunięcie

Parametry

xmmreg
Rejestrowanie programu XMM w celu przywrócenia.

offset
Przesunięcie stosu, z którego jest przywracany rejestr. Musi być wielokrotność 16.

Remarks

Ważna

Niniejsza dyrektywa jest eksperymentalna i podlega zmianie. Włącz opcję Odwijaj wersję 3 za pomocą polecenia ml64.exe /unwindv3.

.RESTOREXMM128 jest prawidłowy tylko w wersji 3 odwijaj. Jest to epilog odpowiednik . SAVEXMM128.

Microsoft Assembler (MASM) wybiera najbardziej wydajne kodowanie dla danego przesunięcia.

  • .RESTOREXMM128 jest dozwolone tylko w regionie epilogu, między . BEGINEPILOG i . ENDEPILOG.
  • Te dyrektywy generują metadane odwiju (.xdata i .pdata sekcje), ale nie tworzą kodu wykonywalnego.
  • W systemie Unwind Version 3 musi pojawić się przed instrukcją, .RESTOREXMM128 która ładuje rejestr XMM ze stosu.
  • Aby zapewnić umowę, zawijaj zarówno dyrektywy unwind, jak i kod, który mają na celu odwinięcie w makrze.
  • W wersji 3 unwind dyrektywy epilogu są obowiązkowe dla epilogu odwijać generowanie kodu. Nie są emitowane żadne kody odwijaczające .BEGINEPILOG/.ENDEPILOG epilogu bez pary.

Note

W wersji 1 unwind dyrektywa pojawia się po odpowiedniej instrukcji. W wersji 3 unwind dyrektywa pojawia się przed instrukcją.

Przykład dla unwindv3

; 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

Zobacz także

x64 Unwind, wersja 3 (eksperymentalna)
Odwołanie do dyrektyw
. SAVEXMM128
. BEGINEPILOG
Gramatyka MASM BNF