[FFmpeg-devel] [PATCH] h264: assembly version of get_cabac for x86_64 with PIC
Roland Scheidegger
rscheidegger_lists at hispeed.ch
Mon Apr 16 12:55:20 CEST 2012
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.
Roland
More information about the ffmpeg-devel
mailing list