[Ffmpeg-cvslog] r8420 - trunk/libavcodec/dv.c

Måns Rullgård mans
Sun Mar 25 12:43:40 CEST 2007


Rich Felker <dalias at aerifal.cx> writes:

> On Sat, Mar 24, 2007 at 09:17:47PM -0700, Roman Shaposhnik wrote:
>> > it's a matter of what the calling
>> > code does. Thus all you can ever assume on x86 is 4. In order to be
>> > correct, the compiler must generate code to fully align the stack in
>> > any function that depends on the stack being aligned. gcc does not do
>> > this, so it's broken. Either they should fix this or document the fact
>> > that alignment attributes do not work on automatic variables.
>>  
>>   In Sun Studio compilers we've decided to do a combined approach
>> now -- we honor requests for alignment of the automatic variables 
>> up to the ABI requirements (although, it seems to be safe to assume
>> 8 on Pentium+ these days for obvious reasons) and we issue a warning
>> if the requested alignment is higher. I believe it was suggested that
>> gcc guys do the same -- but they don't seem to be interested.
>
> I hope you only assume 8 if -march=586 or similar is used. I always
> build with vanilla i386 except for really rare cases like mplayer.

No wonder you're complaining about things being slow.

> Most likely alignment doesn't matter for pre-586 anyway, but I suppose
> someone could be using it for evil hacks like storing extra data in
> the low bits of pointers... :)

Lisp interpreters tend to do such things.

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




More information about the ffmpeg-cvslog mailing list