[FFmpeg-devel] [FFmpeg-cvslog] r25206 - trunk/libavcodec/x86/h264_idct.asm

Dave Yeo daveryeo
Mon Sep 27 18:34:36 CEST 2010


On 09/27/10 07:46 am, Ronald S. Bultje wrote:
> Hi,
>
> 2010/9/27 M?ns Rullg?rd<mans at mansr.com>:
>> Dave Yeo<daveryeo at telus.net>  writes:
>>> On 09/26/10 02:10 pm, M?ns Rullg?rd wrote:
>>>> configure support for nasm is in place.  All that's missing now is the
>>>> OS/2 bits.
>>>
>>> This builds and passes fate here.
>>> Dave
>>>
>>> Index: configure
>>> ===================================================================
>>> --- configure (revision 25215)
>>> +++ configure (working copy)
>>> @@ -2391,6 +2391,7 @@
>>>           strip="lxlite"
>>>           ln_s="cp -f"
>>>           add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
>>> +        objformat="aout"
>>>           SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
>>>           FFSERVERLDFLAGS=""
>>>           LIBSUF="_s.a"
>>
>> This part OK.
>>
>>> Index: libavcodec/x86/fft_mmx.asm
>>> ===================================================================
>>> --- libavcodec/x86/fft_mmx.asm        (revision 25215)
>>> +++ libavcodec/x86/fft_mmx.asm        (working copy)
>>> @@ -71,7 +71,7 @@
>>>       %1
>>>   %endmacro
>>>
>>> -section .text align=16
>>> +SECTION_TEXT
>>>
>>>   %macro T2_3DN 4 ; z0, z1, mem0, mem1
>>>       mova     %1, %3
>>> Index: libavcodec/x86/dsputil_yasm.asm
>>> ===================================================================
>>> --- libavcodec/x86/dsputil_yasm.asm   (revision 25215)
>>> +++ libavcodec/x86/dsputil_yasm.asm   (working copy)
>>> @@ -28,7 +28,7 @@
>>>   pb_zzzz3333zzzzbbbb: db -1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,11,11,11,11
>>>   pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13
>>>
>>> -section .text align=16
>>> +SECTION_TEXT
>>>
>>>   %macro PSWAPD_SSE 2
>>>       pshufw %1, %2, 0x4e
>>> Index: libavcodec/x86/x86inc.asm
>>> ===================================================================
>>> --- libavcodec/x86/x86inc.asm (revision 25215)
>>> +++ libavcodec/x86/x86inc.asm (working copy)
>>> @@ -62,11 +62,22 @@
>>>       %elifidn __OUTPUT_FORMAT__,macho
>>>           SECTION .text align=%1
>>>           fakegot:
>>> +    %elifidn __OUTPUT_FORMAT__,aout
>>> +        section .text
>>>       %else
>>>           SECTION .rodata align=%1
>>>       %endif
>>>   %endmacro
>>>
>>> +; aout does not support align=
>>> +%macro SECTION_TEXT 0-1 16
>>> +    %ifidn __OUTPUT_FORMAT__,aout
>>> +        SECTION .text
>>> +    %else
>>> +        SECTION .text align=%1
>>> +    %endif
>>> +%endmacro
>>> +
>>>   %ifdef WIN64
>>>       %define PIC
>>>   %elifndef ARCH_X86_64
>>
>> Jason or another x86 guru should review this.
>
> I think it's OK as long as it's tested to ensure that yasm still has
> 16-byte alignment with this in relevant sections.
>

Testing by using yasm -f elf -e
[...]
%line 73+1 /usr/src/ffmpeg/libavcodec/x86/fft_mmx.asm

[section .text align=16]
[...]

[...]
%line 23+1 /usr/src/ffmpeg/libavcodec/x86/dsputil_yasm.asm

[section .rodata align=16]
pb_f: times 16 db 15
pb_zzzzzzzz77777777: times 8 db -1
pb_7: times 8 db 7
pb_zzzz3333zzzzbbbb: db -1,-1,-1,-1,3,3,3,3,-1,-1,-1,-1,11,11,11,11
pb_zz11zz55zz99zzdd: db -1,-1,1,1,-1,-1,5,5,-1,-1,9,9,-1,-1,13,13

[section .text align=16]

%line 41+1 /usr/src/ffmpeg/libavcodec/x86/dsputil_yasm.asm
[...]

Dave





More information about the ffmpeg-devel mailing list