1000l, mmx code was not being used because of missing config.h, and

the mmx code was broken too! :(


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10742 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
rfelker 2003-08-31 20:36:33 +00:00
parent 1c39b3fa05
commit 94b4a47fa4
1 changed files with 11 additions and 13 deletions

View File

@ -2,7 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "pullup.h" #include "pullup.h"
#include "config.h"
@ -10,7 +10,7 @@
static int diff_y_mmx(unsigned char *a, unsigned char *b, int s) static int diff_y_mmx(unsigned char *a, unsigned char *b, int s)
{ {
int ret; int ret;
asm ( asm volatile (
"movl $4, %%ecx \n\t" "movl $4, %%ecx \n\t"
"pxor %%mm4, %%mm4 \n\t" "pxor %%mm4, %%mm4 \n\t"
"pxor %%mm7, %%mm7 \n\t" "pxor %%mm7, %%mm7 \n\t"
@ -37,22 +37,20 @@ static int diff_y_mmx(unsigned char *a, unsigned char *b, int s)
"paddw %%mm3, %%mm4 \n\t" "paddw %%mm3, %%mm4 \n\t"
"decl %%ecx \n\t" "decl %%ecx \n\t"
"jnz fb \n\t" "jnz 1b \n\t"
"movq %%mm4, %%mm3 \n\t" "movq %%mm4, %%mm3 \n\t"
"punpcklwl %%mm7, %%mm4 \n\t" "punpcklwd %%mm7, %%mm4 \n\t"
"punpckhwl %%mm7, %%mm3 \n\t" "punpckhwd %%mm7, %%mm3 \n\t"
"paddl %%mm4, %%mm3 \n\t" "paddd %%mm4, %%mm3 \n\t"
"movq %%mm3, %%mm2 \n\t" "movd %%mm3, %%eax \n\t"
"punpckllq %%mm7, %%mm3 \n\t" "psrlq $32, %%mm3 \n\t"
"punpckhlq %%mm7, %%mm2 \n\t" "movd %%mm3, %%ebx \n\t"
"paddl %%mm3, %%mm2 \n\t" "addl %%ebx, %%eax \n\t"
"movl %%mm2, %eax"
"emms \n\t" "emms \n\t"
: "=a" (ret) : "=a" (ret)
: "S" (a), "D" (b), "a" (s) : "S" (a), "D" (b), "a" (s)
:
); );
return ret; return ret;
} }