Mercurial > mplayer.hg
changeset 10741:fec729835823
1000l, mmx code was not being used because of missing config.h, and
the mmx code was broken too! :(
author | rfelker |
---|---|
date | Sun, 31 Aug 2003 20:36:33 +0000 |
parents | 0b5748047607 |
children | 794b55a44528 |
files | libmpcodecs/pullup.c |
diffstat | 1 files changed, 11 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/pullup.c Sun Aug 31 20:34:14 2003 +0000 +++ b/libmpcodecs/pullup.c Sun Aug 31 20:36:33 2003 +0000 @@ -2,7 +2,7 @@ #include <stdlib.h> #include "pullup.h" - +#include "config.h" @@ -10,7 +10,7 @@ static int diff_y_mmx(unsigned char *a, unsigned char *b, int s) { int ret; - asm ( + asm volatile ( "movl $4, %%ecx \n\t" "pxor %%mm4, %%mm4 \n\t" "pxor %%mm7, %%mm7 \n\t" @@ -37,22 +37,20 @@ "paddw %%mm3, %%mm4 \n\t" "decl %%ecx \n\t" - "jnz fb \n\t" - + "jnz 1b \n\t" + "movq %%mm4, %%mm3 \n\t" - "punpcklwl %%mm7, %%mm4 \n\t" - "punpckhwl %%mm7, %%mm3 \n\t" - "paddl %%mm4, %%mm3 \n\t" - "movq %%mm3, %%mm2 \n\t" - "punpckllq %%mm7, %%mm3 \n\t" - "punpckhlq %%mm7, %%mm2 \n\t" - "paddl %%mm3, %%mm2 \n\t" - "movl %%mm2, %eax" + "punpcklwd %%mm7, %%mm4 \n\t" + "punpckhwd %%mm7, %%mm3 \n\t" + "paddd %%mm4, %%mm3 \n\t" + "movd %%mm3, %%eax \n\t" + "psrlq $32, %%mm3 \n\t" + "movd %%mm3, %%ebx \n\t" + "addl %%ebx, %%eax \n\t" "emms \n\t" : "=a" (ret) : "S" (a), "D" (b), "a" (s) - : ); return ret; }