[FFmpeg-devel] r9017 breaks WMA decoding on Intel Macs
Loren Merritt
lorenm
Tue May 29 20:56:55 CEST 2007
On Tue, 29 May 2007, matthieu castet wrote:
> Zuxy Meng wrote:
>>
>>> L32:
>>> addl $4, %ebx
>>> movaps (%eax), %xmm0
>>> movaps 16+(%eax), %xmm4
>>> movlps (%ecx), %xmm1
>>> movlps 8+(%ecx), %xmm5
>>
>> Actually gcc -S can't help diagnostic here: we don't know how
>> "16+(%eax)" will be assembled so you should have done an 'objdump -d'
>> instead.
>>
>> I'm sorry I don't access to any OS X boxes so I can't really help you
>> much in shooting down the problem although it's me who introduced this
>> regression. I hope you don't feel annoyed.
>
> It's may be a stupid question, but why can't we use "movaps -16%0,
> %%xmm4 \n\t" instead of "movaps -16%0, %%xmm4 \n\t" ?
>
> It seems to generate the correct thing for me.
What if %0 already has an offset? It's an "m" constraint, so any
addressing mode is allowed, e.g. 8(%edx)
-16%0 = -168(%edx)
-16+%0 = -16+8(%edx) = -8(%edx)
gcc devs must have intended to let one offset a memory address, there's
even a "o" (offsettable) constraint (which is identical to "m" on x86).
But I can't find any syntax for an offset that won't generate a warning
some of the time.
--Loren Merritt
More information about the ffmpeg-devel
mailing list