[FFmpeg-devel] [PATCH] ff_h[yc]scale_fast_mmext always clobbers %rbx

Michael Niedermayer michaelni at gmx.at
Thu May 7 00:06:05 CEST 2015


On Wed, May 06, 2015 at 11:52:59AM -0700, Nick Lewycky wrote:
> Newer versions of clang will allocate %rbx as one of the inline asm inputs,

Thats great

> even in PIC. This occurs when building ffmpeg with clang -fsanitize=address
> -O1 -fPIE. Because the asm does clobber %bx whether PIC is on or off, just
> include %bx in the clobber list regardless of whether PIC is on or off.

you cant include *bx in the clobber list with PIC
it breaks compilers that are less great, like gcc

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
../libswscale/x86/hscale_fast_bilinear_simd.c: In function ‘ff_hyscale_fast_mmxext’:
../libswscale/x86/hscale_fast_bilinear_simd.c:205:5: error: PIC register clobbered by ‘%ebx’ in ‘asm’
../libswscale/x86/hscale_fast_bilinear_simd.c: In function ‘ff_hcscale_fast_mmxext’:
../libswscale/x86/hscale_fast_bilinear_simd.c:276:5: error: PIC register clobbered by ‘%ebx’ in ‘asm’

also what exactly are you trying to fix ?
or rather what exactly goes how exactly wrong with the code as it is
if rbx is used ?

also ideally changes to this code should be tested against gcc/clang/icc
of various versions with and without PIC, 32 and 64 bit
this code is more tricky than than the average so theres a good
change changes to it will break some compiler


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

What does censorship reveal? It reveals fear. -- Julian Assange
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150507/469a237f/attachment.asc>

More information about the ffmpeg-devel mailing list