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
