On Wed, 1 Aug 2012, Luca Barbato wrote:

> +%macro OP_MOVH_MMX 3
> +    movh   %3, %2
> +    pavgb  %1, %3
> +    movh   %2, %1
> +%endmacro
> +
> +%macro MOVH_MMX 3
> +    movh   %2, %1
> +%endmacro
> +
> +%macro OP_MOV_MMX 3
> +    mova   %3, %2
> +    pavgb  %1, %3
> +    mova   %2, %1

pavgb %1, %2
mova  %2, %1
(Just for the full width one)

> +%endmacro
> +
> +%macro MOV_MMX 3
> +    mova   %2, %1
> +%endmacro

It's op_put vs op_avg (or mov vs avg), not mov vs op_mov.
Plus, naming them put vs avg would allow you to exploit the same put vs
avg that's already in all the function names, rather than a separate
%define OP.

> +%macro QPEL8OR16_V_LOWPASS_OP 1
> +cglobal %1_h264_qpel8or16_v_lowpass, 5,5,7 ; dst, src, dstStride, srcStride, 
> h
> +%if cpuflag(sse2)
> +    sub       r1, r3
> +    sub       r1, r3
> +%endif
> +    pxor      m7, m7
> +    movh      m0, [r1]
> +    movh      m1, [r1+r3]
> +    lea       r1, [r1+2*r3]
> +    movh      m2, [r1]
> +    movh      m3, [r1+r3]
> +    lea       r1, [r1+2*r3]
> +    movh      m4, [r1]
> +    add       r1, r3
> +    punpcklbw m0, m7
> +    punpcklbw m1, m7
> +    punpcklbw m2, m7
> +    punpcklbw m3, m7
> +    punpcklbw m4, m7
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    cmp r4d, 16
> +    jne .end
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +    FILT_V
> +.end:
> +    RET
> +%endmacro

(and other cases of this)
REP_RET

... and I'll skip the suggestions for improvement, since Daniel Kang has a
separate branch for that.

--Loren Merritt
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to