# HG changeset patch # User gpoirier # Date 1181334930 0 # Node ID 524faa5eabd1f6227c49bf33bf783039088921e7 # Parent dd5796283029639ece1b5650e8c59a52dbe901da work around issues with the old version of Gnu Assembler shipped on Intel / OSX 10.4.9 patch by Graham Booker % gbooker A cod3r P com % Original thread: Date: May 25, 2007 11:51 PM Subject: [FFmpeg-devel] r9017 breaks WMA decoding on Intel Macs The patch: Date: Jun 3, 2007 4:37 PM Subject: Re: [FFmpeg-devel] r9017 breaks WMA decoding on Intel Macs diff -r dd5796283029 -r 524faa5eabd1 i386/fft_sse.c --- a/i386/fft_sse.c Thu Jun 07 21:31:26 2007 +0000 +++ b/i386/fft_sse.c Fri Jun 08 20:35:30 2007 +0000 @@ -170,12 +170,12 @@ asm volatile ( "movaps %0, %%xmm0 \n\t" // xmm0 = r0 X r1 X : in2 "movaps %1, %%xmm3 \n\t" // xmm3 = X i1 X i0: in1 - "movaps -16+%0, %%xmm4 \n\t" // xmm4 = r0 X r1 X : in2 - "movaps 16+%1, %%xmm7 \n\t" // xmm7 = X i1 X i0: in1 + "movaps -16+1*%0, %%xmm4 \n\t" // xmm4 = r0 X r1 X : in2 + "movaps 16+1*%1, %%xmm7 \n\t" // xmm7 = X i1 X i0: in1 "movlps %2, %%xmm1 \n\t" // xmm1 = X X R1 R0: tcos "movlps %3, %%xmm2 \n\t" // xmm2 = X X I1 I0: tsin - "movlps 8+%2, %%xmm5 \n\t" // xmm5 = X X R1 R0: tcos - "movlps 8+%3, %%xmm6 \n\t" // xmm6 = X X I1 I0: tsin + "movlps 8+1*%2, %%xmm5 \n\t" // xmm5 = X X R1 R0: tcos + "movlps 8+1*%3, %%xmm6 \n\t" // xmm6 = X X I1 I0: tsin "shufps $95, %%xmm0, %%xmm0 \n\t" // xmm0 = r1 r1 r0 r0 "shufps $160,%%xmm3, %%xmm3 \n\t" // xmm3 = i1 i1 i0 i0 "shufps $95, %%xmm4, %%xmm4 \n\t" // xmm4 = r1 r1 r0 r0 @@ -222,13 +222,13 @@ for (k = 0; k < n4; k += 4) { asm ( "movaps %0, %%xmm0 \n\t" // xmm0 = i1 r1 i0 r0: z - "movaps 16+%0, %%xmm4 \n\t" // xmm4 = i1 r1 i0 r0: z + "movaps 16+1*%0, %%xmm4 \n\t" // xmm4 = i1 r1 i0 r0: z "movlps %1, %%xmm1 \n\t" // xmm1 = X X R1 R0: tcos - "movlps 8+%1, %%xmm5 \n\t" // xmm5 = X X R1 R0: tcos + "movlps 8+1*%1, %%xmm5 \n\t" // xmm5 = X X R1 R0: tcos "movaps %%xmm0, %%xmm3 \n\t" // xmm3 = i1 r1 i0 r0 "movaps %%xmm4, %%xmm7 \n\t" // xmm7 = i1 r1 i0 r0 "movlps %2, %%xmm2 \n\t" // xmm2 = X X I1 I0: tsin - "movlps 8+%2, %%xmm6 \n\t" // xmm6 = X X I1 I0: tsin + "movlps 8+1*%2, %%xmm6 \n\t" // xmm6 = X X I1 I0: tsin "shufps $160,%%xmm0, %%xmm0 \n\t" // xmm0 = r1 r1 r0 r0 "shufps $245,%%xmm3, %%xmm3 \n\t" // xmm3 = i1 i1 i0 i0 "shufps $160,%%xmm4, %%xmm4 \n\t" // xmm4 = r1 r1 r0 r0 @@ -248,7 +248,7 @@ "addps %%xmm3, %%xmm0 \n\t" // xmm0 = result "addps %%xmm7, %%xmm4 \n\t" // xmm4 = result "movaps %%xmm0, %0 \n\t" - "movaps %%xmm4, 16+%0 \n\t" + "movaps %%xmm4, 16+1*%0\n\t" :"+m"(z[k]) :"m"(tcos[k]), "m"(tsin[k]) #ifndef ARCH_X86_64