x86inc: Fix call with memory operands

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.
This commit is contained in:
Henrik Gramner 2017-03-29 16:43:57 +02:00 committed by James Darnley
parent 9f20cc5c84
commit 406e0ddc0b

View File

@ -1,7 +1,7 @@
;***************************************************************************** ;*****************************************************************************
;* x86inc.asm: x264asm abstraction layer ;* x86inc.asm: x264asm abstraction layer
;***************************************************************************** ;*****************************************************************************
;* Copyright (C) 2005-2016 x264 project ;* Copyright (C) 2005-2017 x264 project
;* ;*
;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Authors: Loren Merritt <lorenm@u.washington.edu>
;* Anton Mitrofanov <BugMaster@narod.ru> ;* Anton Mitrofanov <BugMaster@narod.ru>
@ -1037,7 +1037,11 @@ 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 %+ SUFFIX, %1 %ifid %1
call_internal %1 %+ SUFFIX, %1
%else
call %1
%endif
%endmacro %endmacro
%macro call_internal 2 %macro call_internal 2
%xdefine %%i %2 %xdefine %%i %2