.SAVEXMM128

Genera una entrada de código de desenredado UWOP_SAVE_XMM128 o UWOP_SAVE_XMM128_FAR para el registro XMM y el desplazamiento especificados mediante el desplazamiento de prólogo actual. Microsoft Ensamblador (MASM) elige la codificación más eficaz.

Sintaxis

.SAVEXMM128 xmmreg , offset

Comentarios

Use .SAVEXMM128 con ml64.exe para especificar cómo se desenreda una función de marco. Solo se puede usar en el prólogo, que se extiende desde la PROCFRAME declaración a . Directiva ENDPROLOG . Estas directivas generan metadatos de desenredado (.xdata y .pdata secciones), pero no generan código ejecutable. Precede .SAVEXMM128 a las instrucciones que realmente implementan las acciones que se van a desenlazar. Para garantizar el acuerdo, encapsula las directivas de desenredado y el código que están diseñados para desenredar en una macro.

offset debe ser un múltiplo de 16.

Comportamiento de desenredado versión 3

Importante

La compatibilidad con Desenredado versión 3 es experimental y está sujeta a cambios. Habilite mediante ml64.exe /unwindv3.

En Desenredado versión 3, .SAVEXMM128 emite una WOD_SAVE_XMM128 entrada de código de desenredado o .WOD_SAVE_XMM128_FAR Microsoft Ensamblador (MASM) selecciona la codificación más eficaz en función del tamaño de offset:

Código de desenredado Condition
WOD_SAVE_XMM128 offset se puede codificar como un valor de 16 bits escalado
WOD_SAVE_XMM128_FAR offset requiere un valor completo de 32 bits

Note

En Desenredar versión 1, las directivas vienen después de la instrucción . En Desenredado versión 3, las directivas vienen antes de la instrucción . .SAVEXMM128 debe aparecer antes de la instrucción que describe. Este requisito es lo contrario a la versión 1, donde la directiva sigue la instrucción .

Ejemplo de desenredado3

; 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

El homólogo de epílogo es . RESTOREXMM128.

Consulte también

x64 Desenredado versión 3 (experimental)
Referencia de directivas
Gramática BNF de MASM
MASM para x64 (ml64.exe)