[Ffmpeg-cvslog] r8012 - trunk/libavcodec/i386/dsputil_h264_template_mmx.c
Ivo
ivop
Wed Feb 21 22:55:17 CET 2007
On Sunday 18 February 2007 00:43, michael wrote:
> Author: michael
> Date: Sun Feb 18 00:43:02 2007
> New Revision: 8012
>
> Modified:
> trunk/libavcodec/i386/dsputil_h264_template_mmx.c
>
> Log:
> rewrite H264_CHROMA_MC4_TMPL (20% faster)
[..]
> + "pxor %%mm7, %%mm7 \n\t"
> + "movd %5, %%mm2 \n\t"
> + "movd %6, %%mm3 \n\t"
> + "movq %7, %%mm4 \n\t"
> + "movq %7, %%mm5 \n\t"
> + "punpcklwd %%mm2, %%mm2 \n\t"
> + "punpcklwd %%mm3, %%mm3 \n\t"
> + "punpcklwd %%mm2, %%mm2 \n\t"
> + "punpcklwd %%mm3, %%mm3 \n\t"
> + "psubw %%mm2, %%mm4 \n\t"
> + "psubw %%mm3, %%mm5 \n\t"
> +
> + "movd (%1), %%mm0 \n\t"
> + "movd 1(%1), %%mm6 \n\t"
> + "add %3, %1 \n\t"
> + "punpcklbw %%mm7, %%mm0 \n\t"
> + "punpcklbw %%mm7, %%mm6 \n\t"
> + "pmullw %%mm4, %%mm0 \n\t"
> + "pmullw %%mm2, %%mm6 \n\t"
> + "paddw %%mm0, %%mm6 \n\t"
> +
> + "1: \n\t"
> + "movd (%1), %%mm0 \n\t"
> + "movd 1(%1), %%mm1 \n\t"
> + "add %3, %1 \n\t"
> + "punpcklbw %%mm7, %%mm0 \n\t"
> + "punpcklbw %%mm7, %%mm1 \n\t"
> + "pmullw %%mm4, %%mm0 \n\t"
> + "pmullw %%mm2, %%mm1 \n\t"
> + "paddw %%mm0, %%mm1 \n\t"
> + "movq %%mm1, %%mm0 \n\t"
> + "pmullw %%mm5, %%mm6 \n\t"
> + "pmullw %%mm3, %%mm1 \n\t"
> + "paddw %%mm6, %%mm1 \n\t"
> + "paddw %4, %%mm1 \n\t"
> + "psrlw $6, %%mm1 \n\t"
> + "packuswb %%mm1, %%mm1 \n\t"
> + H264_CHROMA_OP4((%0), %%mm1, %%mm6)
> + "movd %%mm1, (%0) \n\t"
> + "add %3, %0 \n\t"
> + "movd (%1), %%mm6 \n\t"
> + "movd 1(%1), %%mm1 \n\t"
> + "add %3, %1 \n\t"
> + "punpcklbw %%mm7, %%mm6 \n\t"
> + "punpcklbw %%mm7, %%mm1 \n\t"
> + "pmullw %%mm4, %%mm6 \n\t"
> + "pmullw %%mm2, %%mm1 \n\t"
> + "paddw %%mm6, %%mm1 \n\t"
> + "movq %%mm1, %%mm6 \n\t"
> + "pmullw %%mm5, %%mm0 \n\t"
> + "pmullw %%mm3, %%mm1 \n\t"
> + "paddw %%mm0, %%mm1 \n\t"
> + "paddw %4, %%mm1 \n\t"
> + "psrlw $6, %%mm1 \n\t"
> + "packuswb %%mm1, %%mm1 \n\t"
> + H264_CHROMA_OP4((%0), %%mm1, %%mm0)
> + "movd %%mm1, (%0) \n\t"
> + "add %3, %0 \n\t"
> + "sub $2, %2 \n\t"
> + "jnz 1b \n\t"
> + : "+r"(dst), "+r"(src), "+r"(h)
> + : "r"(stride), "m"(ff_pw_32), "m"(x), "m"(y), "m"(ff_pw_8)
> + );
> }
This part broke compilation with gcc 2.95. r8011 was fine:
/opt/gcc-2.95.3/bin/gcc -I"/misc4/ffmpeg"/libswscale -DHAVE_AV_CONFIG_H
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-D_ISOC9X_SOURCE -I"/misc4/ffmpeg" -I"/misc4/ffmpeg"
-I"/misc4/ffmpeg"/libavutil -fomit-frame-pointer -g -Wall -Wno-switch
-Wpointer-arith -Wredundant-decls -O3 -c -o i386/dsputil_mmx.o
i386/dsputil_mmx.c
i386/dsputil_mmx.c: In function `gmc_mmx':
i386/dsputil_mmx.c:2486: warning: suggest parentheses around arithmetic in
operand of |
i386/dsputil_mmx.c:2486: warning: suggest parentheses around arithmetic in
operand of |
i386/dsputil_mmx.c:2487: warning: suggest parentheses around arithmetic in
operand of |
i386/dsputil_mmx.c:2487: warning: suggest parentheses around arithmetic in
operand of |
i386/dsputil_mmx.c:2487: warning: suggest parentheses around arithmetic in
operand of |
In file included from i386/h264dsp_mmx.c:1385,
from i386/dsputil_mmx.c:2681:
i386/dsputil_h264_template_mmx.c: In function `put_h264_chroma_mc4_mmx':
i386/dsputil_h264_template_mmx.c:250: more than 10 operands in `asm'
In file included from i386/h264dsp_mmx.c:1400,
from i386/dsputil_mmx.c:2681:
i386/dsputil_h264_template_mmx.c: In function `avg_h264_chroma_mc4_mmx2':
i386/dsputil_h264_template_mmx.c:250: more than 10 operands in `asm'
In file included from i386/h264dsp_mmx.c:1414,
from i386/dsputil_mmx.c:2681:
i386/dsputil_h264_template_mmx.c: In function `avg_h264_chroma_mc4_3dnow':
i386/dsputil_h264_template_mmx.c:250: more than 10 operands in `asm'
i386/dsputil_mmx.c: In function `dsputil_init_mmx':
i386/dsputil_mmx.c:3337: warning: assignment from incompatible pointer type
i386/dsputil_mmx.c:3338: warning: assignment from incompatible pointer type
make[1]: *** [i386/dsputil_mmx.o] Error 1
make[1]: Leaving directory `/misc4/ffmpeg/libavcodec'
make: *** [lib] Error 2
--Ivo
More information about the ffmpeg-cvslog
mailing list