Mercurial > mplayer.hg
changeset 20961:a26421864b53
Fix AMD64 support, patch by Reimar Doffinger
Original thread:
subject: Re: [MEncoder-users] pullup filter segfaults on amd66
date: Nov 13, 2006 4:07 PM
author | gpoirier |
---|---|
date | Fri, 17 Nov 2006 08:36:10 +0000 |
parents | e134558ae56f |
children | a95ed9a69caf |
files | libmpcodecs/pullup.c |
diffstat | 1 files changed, 25 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/pullup.c Fri Nov 17 07:34:56 2006 +0000 +++ b/libmpcodecs/pullup.c Fri Nov 17 08:36:10 2006 +0000 @@ -5,6 +5,7 @@ #include <string.h> #include "pullup.h" #include "config.h" +#include "cpudetect.h" @@ -20,11 +21,11 @@ "1: \n\t" - "movq (%%esi), %%mm0 \n\t" - "movq (%%esi), %%mm2 \n\t" - "addl %%eax, %%esi \n\t" - "movq (%%edi), %%mm1 \n\t" - "addl %%eax, %%edi \n\t" + "movq (%%"REG_S"), %%mm0 \n\t" + "movq (%%"REG_S"), %%mm2 \n\t" + "add %%"REG_a", %%"REG_S" \n\t" + "movq (%%"REG_D"), %%mm1 \n\t" + "add %%"REG_a", %%"REG_D" \n\t" "psubusb %%mm1, %%mm2 \n\t" "psubusb %%mm0, %%mm1 \n\t" "movq %%mm2, %%mm0 \n\t" @@ -64,14 +65,14 @@ "movl $4, %%ecx \n\t" "pxor %%mm6, %%mm6 \n\t" "pxor %%mm7, %%mm7 \n\t" - "subl %%eax, %%edi \n\t" + "sub %%"REG_a", %%"REG_D" \n\t" "2: \n\t" - "movq (%%esi), %%mm0 \n\t" - "movq (%%edi), %%mm1 \n\t" + "movq (%%"REG_D"), %%mm0 \n\t" + "movq (%%"REG_D"), %%mm1 \n\t" "punpcklbw %%mm7, %%mm0 \n\t" - "movq (%%edi,%%eax), %%mm2 \n\t" + "movq (%%"REG_D",%%"REG_a"), %%mm2 \n\t" "punpcklbw %%mm7, %%mm1 \n\t" "punpcklbw %%mm7, %%mm2 \n\t" "paddw %%mm0, %%mm0 \n\t" @@ -82,10 +83,10 @@ "paddw %%mm0, %%mm6 \n\t" "paddw %%mm1, %%mm6 \n\t" - "movq (%%esi), %%mm0 \n\t" - "movq (%%edi), %%mm1 \n\t" + "movq (%%"REG_S"), %%mm0 \n\t" + "movq (%%"REG_D"), %%mm1 \n\t" "punpckhbw %%mm7, %%mm0 \n\t" - "movq (%%edi,%%eax), %%mm2 \n\t" + "movq (%%"REG_D",%%"REG_a"), %%mm2 \n\t" "punpckhbw %%mm7, %%mm1 \n\t" "punpckhbw %%mm7, %%mm2 \n\t" "paddw %%mm0, %%mm0 \n\t" @@ -96,10 +97,10 @@ "paddw %%mm0, %%mm6 \n\t" "paddw %%mm1, %%mm6 \n\t" - "movq (%%edi,%%eax), %%mm0 \n\t" - "movq (%%esi), %%mm1 \n\t" + "movq (%%"REG_D",%%"REG_a"), %%mm0 \n\t" + "movq (%%"REG_S"), %%mm1 \n\t" "punpcklbw %%mm7, %%mm0 \n\t" - "movq (%%esi,%%eax), %%mm2 \n\t" + "movq (%%"REG_S",%%"REG_a"), %%mm2 \n\t" "punpcklbw %%mm7, %%mm1 \n\t" "punpcklbw %%mm7, %%mm2 \n\t" "paddw %%mm0, %%mm0 \n\t" @@ -110,10 +111,10 @@ "paddw %%mm0, %%mm6 \n\t" "paddw %%mm1, %%mm6 \n\t" - "movq (%%edi,%%eax), %%mm0 \n\t" - "movq (%%esi), %%mm1 \n\t" + "movq (%%"REG_D",%%"REG_a"), %%mm0 \n\t" + "movq (%%"REG_S"), %%mm1 \n\t" "punpckhbw %%mm7, %%mm0 \n\t" - "movq (%%esi,%%eax), %%mm2 \n\t" + "movq (%%"REG_S",%%"REG_a"), %%mm2 \n\t" "punpckhbw %%mm7, %%mm1 \n\t" "punpckhbw %%mm7, %%mm2 \n\t" "paddw %%mm0, %%mm0 \n\t" @@ -124,8 +125,8 @@ "paddw %%mm0, %%mm6 \n\t" "paddw %%mm1, %%mm6 \n\t" - "addl %%eax, %%esi \n\t" - "addl %%eax, %%edi \n\t" + "add %%"REG_a", %%"REG_S" \n\t" + "add %%"REG_a", %%"REG_D" \n\t" "decl %%ecx \n\t" "jnz 2b \n\t" @@ -156,10 +157,10 @@ "1: \n\t" - "movq (%%esi), %%mm0 \n\t" - "movq (%%esi), %%mm2 \n\t" - "movq (%%esi,%%eax), %%mm1 \n\t" - "addl %%eax, %%esi \n\t" + "movq (%%"REG_S"), %%mm0 \n\t" + "movq (%%"REG_S"), %%mm2 \n\t" + "movq (%%"REG_S",%%"REG_a"), %%mm1 \n\t" + "add %%"REG_a", %%"REG_S" \n\t" "psubusb %%mm1, %%mm2 \n\t" "psubusb %%mm0, %%mm1 \n\t" "movq %%mm2, %%mm0 \n\t"