[libav-devel] [PATCH 1/4] Update x86inc.asm to latest x264 version.

Ronald S. Bultje rsbultje at gmail.com
Sat Nov 5 15:26:00 CET 2011


Hi,

On Wed, Nov 2, 2011 at 1:55 PM, Loren Merritt <lorenm at u.washington.edu> wrote:
> On Tue, 1 Nov 2011, Justin Ruggles wrote:
>> On 10/30/2011 01:29 PM, Ronald S. Bultje wrote:
>>
>>> @@ -459,10 +462,24 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + stack_offset + 28]
>>>
>>>  %assign function_align 16
>>>
>>> -; Symbol prefix for C linkage
>>> -%macro cglobal 1-2+
>>> -    %xdefine %1 mangle(program_name %+ _ %+ %1)
>>> -    %xdefine %1.skip_prologue %1 %+ .skip_prologue
>>> +; Begin a function.
>>> +; 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.
>>> +; 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
>>> +%else
>>> +    cglobal_internal %1 %+ SUFFIX, %2
>>> +%endif
>>> +%endmacro
>>> +%macro cglobal_internal 1-2+
>>> +    %ifndef cglobaled_%1
>>> +        %xdefine %1 mangle(program_name %+ _ %+ %1)
>>> +        %xdefine %1.skip_prologue %1 %+ .skip_prologue
>>> +        CAT_XDEFINE cglobaled_, %1, 1
>>> +    %endif
>>> +    %xdefine current_function %1
>>>      %ifidn __OUTPUT_FORMAT__,elf
>>>          global %1:function hidden
>>>      %else
>>> @@ -479,12 +496,14 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + stack_offset + 28]
>>>
>>>  %macro cextern 1
>>>      %xdefine %1 mangle(program_name %+ _ %+ %1)
>>> +    CAT_XDEFINE cglobaled_, %1, 1
>>>      extern %1
>>>  %endmacro
>>>
>>> -;like cextern, but without the prefix
>>> +; like cextern, but without the prefix
>>>  %macro cextern_naked 1
>>>      %xdefine %1 mangle(%1)
>>> +    CAT_XDEFINE cglobaled_, %1, 1
>>>      extern %1
>>>  %endmacro
>>
>> do the above changes do anything functional other than adding the
>> cpuflags suffix?
>
> They also make multiple functions of the same name into a fatal error,
> instead of silently renaming one of them. This detected the issue fixed
> in patch4 in this thread.
> Btw, the avx symmetry patch fixes another fatal error also introduced by
> x86inc. If you don't want any uncompilable intermediate revisions, you
> have to squash avx symmetry into x86inc and move patch4 first.

Patch 4 is now applied. I'll merge your current AVX patch with the
symmetry one, re-send and hopefully then apply.

Ronald


More information about the libav-devel mailing list