Module: libav
Branch: master
Commit: 300fb0df84e9a563ed3b8a9b3d365abb6cf34600

Author:    Anton Mitrofanov <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Wed Apr 20 19:35:33 2016 +0200

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 <[email protected]>

---

 libavutil/x86/x86inc.asm |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
index 60aad23..b79cc19 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

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to