|
|
@ -369,11 +369,14 @@ DECLARE_REG 14, R15, R15D, R15W, R15B, 120 |
|
|
|
%macro RET 0 |
|
|
|
%macro RET 0 |
|
|
|
WIN64_RESTORE_XMM_INTERNAL rsp |
|
|
|
WIN64_RESTORE_XMM_INTERNAL rsp |
|
|
|
POP_IF_USED 14, 13, 12, 11, 10, 9, 8, 7 |
|
|
|
POP_IF_USED 14, 13, 12, 11, 10, 9, 8, 7 |
|
|
|
|
|
|
|
%if mmsize == 32 |
|
|
|
|
|
|
|
vzeroupper |
|
|
|
|
|
|
|
%endif |
|
|
|
ret |
|
|
|
ret |
|
|
|
%endmacro |
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
|
|
%macro REP_RET 0 |
|
|
|
%macro REP_RET 0 |
|
|
|
%if regs_used > 7 || xmm_regs_used > 6 |
|
|
|
%if regs_used > 7 || xmm_regs_used > 6 || mmsize == 32 |
|
|
|
RET |
|
|
|
RET |
|
|
|
%else |
|
|
|
%else |
|
|
|
rep ret |
|
|
|
rep ret |
|
|
@ -410,11 +413,14 @@ DECLARE_REG 14, R15, R15D, R15W, R15B, 72 |
|
|
|
|
|
|
|
|
|
|
|
%macro RET 0 |
|
|
|
%macro RET 0 |
|
|
|
POP_IF_USED 14, 13, 12, 11, 10, 9 |
|
|
|
POP_IF_USED 14, 13, 12, 11, 10, 9 |
|
|
|
|
|
|
|
%if mmsize == 32 |
|
|
|
|
|
|
|
vzeroupper |
|
|
|
|
|
|
|
%endif |
|
|
|
ret |
|
|
|
ret |
|
|
|
%endmacro |
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
|
|
%macro REP_RET 0 |
|
|
|
%macro REP_RET 0 |
|
|
|
%if regs_used > 9 |
|
|
|
%if regs_used > 9 || mmsize == 32 |
|
|
|
RET |
|
|
|
RET |
|
|
|
%else |
|
|
|
%else |
|
|
|
rep ret |
|
|
|
rep ret |
|
|
@ -456,11 +462,14 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 |
|
|
|
|
|
|
|
|
|
|
|
%macro RET 0 |
|
|
|
%macro RET 0 |
|
|
|
POP_IF_USED 6, 5, 4, 3 |
|
|
|
POP_IF_USED 6, 5, 4, 3 |
|
|
|
|
|
|
|
%if mmsize == 32 |
|
|
|
|
|
|
|
vzeroupper |
|
|
|
|
|
|
|
%endif |
|
|
|
ret |
|
|
|
ret |
|
|
|
%endmacro |
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
|
|
%macro REP_RET 0 |
|
|
|
%macro REP_RET 0 |
|
|
|
%if regs_used > 3 |
|
|
|
%if regs_used > 3 || mmsize == 32 |
|
|
|
RET |
|
|
|
RET |
|
|
|
%else |
|
|
|
%else |
|
|
|
rep ret |
|
|
|
rep ret |
|
|
|