diff options
author | Anton Mitrofanov <BugMaster@narod.ru> | 2016-04-20 19:35:33 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2016-05-16 10:31:20 +0200 |
commit | 300fb0df84e9a563ed3b8a9b3d365abb6cf34600 (patch) | |
tree | 36571c7db51c1117d12a238797b3e16aafec8e87 | |
parent | 8d02579fae756336ae2a88d521e8cf2f6b436a2f (diff) | |
download | ffmpeg-300fb0df84e9a563ed3b8a9b3d365abb6cf34600.tar.gz |
x86inc: Improve handling of %ifid with multi-token parameters
The yasm/nasm preprocessor only checks the first token, which means that
parameters such as `dword [rax]` are treated as identifiers, which is
generally not what we want.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | libavutil/x86/x86inc.asm | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index 60aad23e3d..b79cc19fe3 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -1136,7 +1136,7 @@ INIT_XMM CHECK_AVX_INSTR_EMU {%1 %6, %7, %8}, %6, %8 %endif %if %5 && %4 == 0 - %ifnid %8 + %ifnnum sizeof%8 ; 3-operand AVX instructions with a memory arg can only have it in src2, ; whereas SSE emulation prefers to have it in src1 (i.e. the mov). ; So, if the instruction is commutative with a memory arg, swap them. @@ -1500,7 +1500,7 @@ FMA_INSTR pmadcswd, pmaddwd, paddd v%5%6 %1, %2, %3, %4 %elifidn %1, %2 ; If %3 or %4 is a memory operand it needs to be encoded as the last operand. - %ifid %3 + %ifnum sizeof%3 v%{5}213%6 %2, %3, %4 %else v%{5}132%6 %2, %4, %3 |