[FFmpeg-devel] [PATCH]Fix h264 decoding for icc 32 bit on sse2 cpu

Måns Rullgård mans
Fri Dec 26 15:51:03 CET 2008


"Jason Garrett-Glaser" <darkshikari at gmail.com> writes:

> On Fri, Dec 26, 2008 at 5:15 AM, M?ns Rullg?rd <mans at mansr.com> wrote:
>> "Jason Garrett-Glaser" <darkshikari at gmail.com> writes:
>>
>>> On Fri, Dec 26, 2008 at 5:07 AM, M?ns Rullg?rd <mans at mansr.com> wrote:
>>>> Carl Eugen Hoyos <cehoyos at rainbow.studorg.tuwien.ac.at> writes:
>>>>
>>>>> Hi!
>>>>>
>>>>> Attached patch disables the x264 loop filter sse2 functions when
>>>>> compiling with 32 bit icc. This should fix the issues with FATE.
>>>>
>>>> What is the underlying problem?
>>>
>>> The assembly functions require stack alignment which ICC apparently
>>> doesn't provide.
>>
>> I keep hitting such problems on ARM as well, especially with armcc.
>> This reliance on a nonstandard, and largely undocumented, feature of
>> gcc is worrying.
>
> According to what I remember hearing from Loren, gcc explicitly
> guarantees it in the documentation, but only for x86_32.

On x86 gcc has a flag, -mpreferred-stack-boundary=N, to select the
stack alignment to maintain, the default value being 16 bytes.  This
relies on the initial stack alignment being sufficient.  Also on x86,
recent gcc versions support a function attribute forcing realignment
of the stack.

On non-x86 gcc sometimes appears to preserve a 16-byte alignment, but
this is not documented anywhere I can find.  There is no explicit flag
or possibility for forced alignment.

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




More information about the ffmpeg-devel mailing list