[FFmpeg-devel] r9017 breaks WMA decoding on Intel Macs

Trent Piepho xyzzy
Sun Jun 3 19:11:06 CEST 2007

On Sun, 3 Jun 2007, Graham Booker wrote:
> one) seems to assume that the evaluation of the operator is 0 (not
> the whole expression btw) meaning it evaluates to 0(..).  So, what
> about offest+1*%number.  The newer gas assumes offset+1*0(...) in the
> case of no offset in the %number, and the older gas assumes offset+0
> (...) in the same case.  For both, if the %number contains an offset,
> then these evaluate to offset1+1*offset2(%register).

That's pretty clever.  Have you tested it with objdump -d to see if the
disassembled object has the correct offset?

> P.S.  Does anyone know a way to force gcc to give me a %number that
> evaluates to offset(%register)?  I can't seem to get it to test that

Ask for "m" with something that's a stack variable or one of the function
arguments, you should get "offset(%ebp)" or "offset(%esp)" depending on the
value of omit-frame-pointer.

If you reqest two "m" inputs, where one is a constant offset from the
other, it should give you an offset too.  x[i] and x[i+1], or x->foo and
x->bar for example.

foo(int i,int x[20]) {asm("# %0 %1" :: "m"(x[i]), "m"(x[i+1])); }
        # (%eax,%edx,4) 4(%eax,%edx,4)

More information about the ffmpeg-devel mailing list