x86inc: Fix call with memory operands
authorHenrik Gramner <henrik@gramner.com>
Wed, 29 Mar 2017 14:43:57 +0000 (16:43 +0200)
committerHenrik Gramner <henrik@gramner.com>
Fri, 19 May 2017 14:12:15 +0000 (16:12 +0200)
We overload the `call` instruction with a macro, but it would misbehave when
the macro argument wasn't a valid identifier. Fix it by explicitly checking
if the argument is an identifier.

common/x86/x86inc.asm

index 03304c4..6c2edf9 100644 (file)
@@ -1032,7 +1032,11 @@ 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 %+ SUFFIX, %1
+    %ifid %1
+        call_internal %1 %+ SUFFIX, %1
+    %else
+        call %1
+    %endif
 %endmacro
 %macro call_internal 2
     %xdefine %%i %2