It appears that something goes wrong in old nasm versions when the
%+ operator is used in the last argument of a macro invocation and
this argument is tested with %ifdef within the macro. Adding a
dummy argument somehow fixes this.
---
libavutil/x86/x86inc.asm | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
index e729924..3a640d1 100644
--- a/libavutil/x86/x86inc.asm
+++ b/libavutil/x86/x86inc.asm
@@ -507,11 +507,14 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
; Appends cpuflags to the function name if cpuflags has been specified.
%macro cglobal 1-2+ ; name, [PROLOGUE args]
%if %0 == 1
- cglobal_internal %1 %+ SUFFIX
+ cglobal_internal2 %1 %+ SUFFIX, nasm_is_stupid
%else
cglobal_internal %1 %+ SUFFIX, %2
%endif
%endmacro
+%macro cglobal_internal2 2
+ cglobal_internal %1
+%endmacro
%macro cglobal_internal 1-2+
%ifndef cglobaled_%1
%xdefine %1 mangle(program_name %+ _ %+ %1)
@@ -795,9 +798,9 @@ INIT_XMM
; Append cpuflags to the callee's name iff the appended name is known and the
plain name isn't
%macro call 1
- call_internal %1, %1 %+ SUFFIX
+ call_internal %1, %1 %+ SUFFIX, nasm_is_stupid
%endmacro
-%macro call_internal 2
+%macro call_internal 3
%xdefine %%i %1
%ifndef cglobaled_%1
%ifdef cglobaled_%2
--
1.7.11.1
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel