[FFmpeg-devel] [PATCH] replace hardcoded offset of CABACContext.bytestream with "m" operand

Måns Rullgård mans
Tue Mar 18 01:52:01 CET 2008


Michael Niedermayer <michaelni at gmx.at> writes:

> On Mon, Mar 17, 2008 at 10:56:06PM +0000, M?ns Rullg?rd wrote:
>> Michael Niedermayer <michaelni at gmx.at> writes:
>> 
>> > On Mon, Mar 17, 2008 at 09:01:20PM +0000, Mans Rullgard wrote:
>> >> ---
>> >>  libavcodec/cabac.h |   54 ++++++++++++++++++++++-----------------------------
>> >>  1 files changed, 23 insertions(+), 31 deletions(-)
>> >
>> > Have you checked that gcc doesnt pessimize the code? Iam certain this
>> > was written the way because it didnt work the other (cleaner) way around
>> >
>> > I also like to see START/STOP_TIMER benchmarks. In adition to some
>> > confirmation that gcc still uses the same register for (c) and
>> > (c->bytestream)
>> 
>> GCC 4.1.2 gives exactly the same code for the modified parts.  There
>> are, however minor differences in other parts of code.  In some
>> places, it has used r13 instead of r12, and instructions are reordered
>> in seemingly random ways in a few places.  Full diff of disassembled
>> output (h264.o) attached.  GCC is a mystery indeed.
>
> Ok, gcc 4.1.2 looks good, what about the other versions (4.2, 4.3,
> 3.4, 2.95)?

I haven't tried them.  Will have to install them first, unless someone
is willing to help me out.

>> > And some confirmation that it doesnt cause failures or miscompilations on
>> > gcc 2.95 and 3.* (3.3/3.4 being most relevant)
>> > old gcc is very sensitive to the number of operands
>> 
>> There's that of course...
>
> I dont understand what you mean?

I mean that it's annoying to have to test each version individually.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list