On Sat, Feb 22, 2014 at 07:59:19PM +0100, Janne Grunau wrote: > --- a/libavcodec/x86/dcadsp.asm > +++ b/libavcodec/x86/dcadsp.asm > @@ -175,3 +175,157 @@ cglobal dca_lfe_fir%1, 3,3,6-%1, out, in, cf0 > + > +INIT_XMM sse2 > +%macro INNER_LOOP 1 > + ; reading backwards: ptr1=synth_buf+j+i ptr2=synth_big+j-i > + ;~ a += window[i + j ]*(-synth_buf[15 - i + j ]) > + ;~ b += window[i + j + 16]*( synth_buf[ i + j ])
nit: silly spacing > + ;~ c += window[i + j + 32]*( synth_buf[16 + i + j ]) > + ;~ d += window[i + j + 48]*( synth_buf[31 - i + j ]) same > +%if ARCH_X86_32 > +%define ptr1 r0q > +%define ptr2 r1q > +%define win r2q > +%define j r3q > + mov win, windowm > + mov ptr1, synth_bufm > + add win, i > + add ptr1, i > +%else > +%define ptr1 r6q > +%define ptr2 r7q ; must be loaded > +%define win r8q > +%define j r9q > +%if ARCH_X86_64 > + pxor m9, m9 > + pxor m10, m10 > + mova m7, [buf2 + i + mmsize] > + mova m8, [buf2 + i + mmsize + 16*4] > +%endif > + lea win, [windowq + i] > + lea ptr1, [synth_bufq + i] > +%endif The check for ARCH_X86_64 seems redundant when you check for ARCH_X86_32 before. The code after the %else should be for ARCH_X86_64 only. Diego _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
