Commit edd82267 authored by Mans Rullgard's avatar Mans Rullgard

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.
parent 180d43bc
...@@ -505,12 +505,8 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 ...@@ -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 ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment