mirror of https://git.ffmpeg.org/ffmpeg.git
x86: fix build with nasm 2.08
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. This patch rearranges the macro arguments such that the %+ operator is never used in the last argument.
This commit is contained in:
parent
180d43bc67
commit
edd8226795
|
@ -505,12 +505,8 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
|
||||||
; Applies any symbol mangling needed for C linkage, and sets up a define such that
|
; Applies any symbol mangling needed for C linkage, and sets up a define such that
|
||||||
; subsequent uses of the function name automatically refer to the mangled version.
|
; subsequent uses of the function name automatically refer to the mangled version.
|
||||||
; Appends cpuflags to the function name if cpuflags has been specified.
|
; Appends cpuflags to the function name if cpuflags has been specified.
|
||||||
%macro cglobal 1-2+ ; name, [PROLOGUE args]
|
%macro cglobal 1-2+ "" ; name, [PROLOGUE args]
|
||||||
%if %0 == 1
|
|
||||||
cglobal_internal %1 %+ SUFFIX
|
|
||||||
%else
|
|
||||||
cglobal_internal %1 %+ SUFFIX, %2
|
cglobal_internal %1 %+ SUFFIX, %2
|
||||||
%endif
|
|
||||||
%endmacro
|
%endmacro
|
||||||
%macro cglobal_internal 1-2+
|
%macro cglobal_internal 1-2+
|
||||||
%ifndef cglobaled_%1
|
%ifndef cglobaled_%1
|
||||||
|
@ -528,7 +524,7 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
|
||||||
%1:
|
%1:
|
||||||
RESET_MM_PERMUTATION ; not really needed, but makes disassembly somewhat nicer
|
RESET_MM_PERMUTATION ; not really needed, but makes disassembly somewhat nicer
|
||||||
%assign stack_offset 0
|
%assign stack_offset 0
|
||||||
%if %0 > 1
|
%ifnidn %2, ""
|
||||||
PROLOGUE %2
|
PROLOGUE %2
|
||||||
%endif
|
%endif
|
||||||
%endmacro
|
%endmacro
|
||||||
|
@ -795,13 +791,13 @@ INIT_XMM
|
||||||
|
|
||||||
; Append cpuflags to the callee's name iff the appended name is known and the plain name isn't
|
; Append cpuflags to the callee's name iff the appended name is known and the plain name isn't
|
||||||
%macro call 1
|
%macro call 1
|
||||||
call_internal %1, %1 %+ SUFFIX
|
call_internal %1 %+ SUFFIX, %1
|
||||||
%endmacro
|
%endmacro
|
||||||
%macro call_internal 2
|
%macro call_internal 2
|
||||||
%xdefine %%i %1
|
%xdefine %%i %2
|
||||||
%ifndef cglobaled_%1
|
%ifndef cglobaled_%2
|
||||||
%ifdef cglobaled_%2
|
%ifdef cglobaled_%1
|
||||||
%xdefine %%i %2
|
%xdefine %%i %1
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
call %%i
|
call %%i
|
||||||
|
|
Loading…
Reference in New Issue