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

Reply via email to