[FFmpeg-devel] [PATCH] h264: assembly version of get_cabac for x86_64 with PIC

Michael Niedermayer michaelni at gmx.at
Mon Apr 16 14:06:17 CEST 2012


On Mon, Apr 16, 2012 at 12:55:20PM +0200, Roland Scheidegger wrote:
> Am 15.04.2012 10:19, schrieb Michael Niedermayer:
> > On Sat, Apr 14, 2012 at 01:50:21AM +0200, Roland Scheidegger wrote:
> > [...]
> > 
> >> +#ifdef BROKEN_RELOCATIONS
> >> +        BRANCHLESS_GET_CABAC("%4", "%q4", "(%1)", "%3", "%w3",
> >> +                             "%5", "%q5", "%k0", "%b0",
> >> +                             "%a11(%6)", "%a12(%6)", "%13")
> >> +#else
> >>          BRANCHLESS_GET_CABAC("%4", "(%1)", "%3", "%w3",
> >>                               "%5", "%k0", "%b0",
> >>                               "%a11(%6)", "%a12(%6)")
> >> +#endif
> >>  
> >>          "test $1, %4                            \n\t"
> >>          " jz 4f                                 \n\t"
> >>          "add  %10, %1                           \n\t"
> >>  
> >> +#ifdef BROKEN_RELOCATIONS
> >> +        BRANCHLESS_GET_CABAC("%4", "%q4", "(%1)", "%3", "%w3",
> >> +                             "%5", "%q5", "%k0", "%b0",
> >> +                             "%a11(%6)", "%a12(%6)", "%13")
> >> +#else
> >>          BRANCHLESS_GET_CABAC("%4", "(%1)", "%3", "%w3",
> >>                               "%5", "%k0", "%b0",
> >>                               "%a11(%6)", "%a12(%6)")
> >> +#endif
> >>  
> >>          "sub  %10, %1                           \n\t"
> >>          "mov  %2, %0                            \n\t"
> > 
> > these 2 ifdefs can be avoided by making the macro arguments between
> > the 2 variants match
> 
> Of course but then you have unnecessary arguments for the non-pic case.
> In particular also one reg more. I don't think that's a good idea -
> didn't test if it even compiles on x86 due to register pressure.

iam talking about the macro arguments, not the asm arguments.
The code would be identical after the C preprocessor so no way there
could be any issue with anything, you have same C source to the
C compiler and same asm to the assembler and binary identical object
files except line numbers / debug symbols


-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120416/d90f0fe9/attachment.asc>


More information about the ffmpeg-devel mailing list