diff i386/dsputil_mmx.c @ 151:ae0516eadae2 libavcodec

fixed gcc-3.0.x compilation (by Michael Niedermayer)
author nickols_k
date Sat, 10 Nov 2001 14:36:12 +0000
parents 8068c4bce9c1
children ac5075a55488
line wrap: on
line diff
--- a/i386/dsputil_mmx.c	Fri Nov 09 02:17:02 2001 +0000
+++ b/i386/dsputil_mmx.c	Sat Nov 10 14:36:12 2001 +0000
@@ -76,7 +76,7 @@
     /* read the pixels */
     p = block;
     pix = pixels;
-    __asm __volatile("pxor %%mm7, %%mm7":::"memory");
+    __asm __volatile("pxor %%mm7, %%mm7":);
     for(i=0;i<4;i++) {
 	__asm __volatile(
 		"movq	%1, %%mm0\n\t"
@@ -110,25 +110,23 @@
     pix = pixels;
     for(i=0;i<2;i++) {
 	__asm __volatile(
-		"movq	%4, %%mm0\n\t"
-		"movq	8%4, %%mm1\n\t"
-		"movq	16%4, %%mm2\n\t"
-		"movq	24%4, %%mm3\n\t"
-		"movq	32%4, %%mm4\n\t"
-		"movq	40%4, %%mm5\n\t"
-		"movq	48%4, %%mm6\n\t"
-		"movq	56%4, %%mm7\n\t"
+		"movq	%3, %%mm0\n\t"
+		"movq	8%3, %%mm1\n\t"
+		"movq	16%3, %%mm2\n\t"
+		"movq	24%3, %%mm3\n\t"
+		"movq	32%3, %%mm4\n\t"
+		"movq	40%3, %%mm5\n\t"
+		"movq	48%3, %%mm6\n\t"
+		"movq	56%3, %%mm7\n\t"
 		"packuswb %%mm1, %%mm0\n\t"
 		"packuswb %%mm3, %%mm2\n\t"
 		"packuswb %%mm5, %%mm4\n\t"
 		"packuswb %%mm7, %%mm6\n\t"
-		"movq	%%mm0, %0\n\t"
-		"movq	%%mm2, %1\n\t"
-		"movq	%%mm4, %2\n\t"
-		"movq	%%mm6, %3\n\t"
-		:"=m"(*pix), "=m"(*(pix+line_size))
-		,"=m"(*(pix+line_size*2)), "=m"(*(pix+line_size*3))
-		:"m"(*p)
+		"movq	%%mm0, (%0)\n\t"
+		"movq	%%mm2, (%0, %1)\n\t"
+		"movq	%%mm4, (%0, %1, 2)\n\t"
+		"movq	%%mm6, (%0, %2)\n\t"
+		::"r" (pix), "r" (line_size), "r" (line_size*3), "m"(*p)
 		:"memory");
         pix += line_size*4;
         p += 32;
@@ -144,7 +142,7 @@
     /* read the pixels */
     p = block;
     pix = pixels;
-	__asm __volatile("pxor	%%mm7, %%mm7":::"memory");
+	__asm __volatile("pxor	%%mm7, %%mm7":);
     for(i=0;i<4;i++) {
 	__asm __volatile(
 		"movq	%2, %%mm0\n\t"
@@ -167,7 +165,7 @@
 		"packuswb %%mm3, %%mm2\n\t"
 		"movq	%%mm0, %0\n\t"
 		"movq	%%mm2, %1\n\t"
-		:"=m"(*pix), "=m"(*(pix+line_size))
+		:"+m"(*pix), "+m"(*(pix+line_size))
 		:"m"(*p)
 		:"memory");
         pix += line_size*2;
@@ -186,16 +184,15 @@
     dh=h&3;
     while(hh--) {
     __asm __volatile(
-	"movq	%4, %%mm0\n\t"
-	"movq	%5, %%mm1\n\t"
-	"movq	%6, %%mm2\n\t"
-	"movq	%7, %%mm3\n\t"
-	"movq	%%mm0, %0\n\t"
-	"movq	%%mm1, %1\n\t"
-	"movq	%%mm2, %2\n\t"
-	"movq	%%mm3, %3\n\t"
-	:"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
-	:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
+	"movq	(%1), %%mm0		\n\t"
+	"movq	(%1, %2), %%mm1		\n\t"
+	"movq	(%1, %2, 2), %%mm2	\n\t"
+	"movq	(%1, %3), %%mm3		\n\t"
+	"movq	%%mm0, (%0)		\n\t"
+	"movq	%%mm1, (%0, %2)		\n\t"
+	"movq	%%mm2, (%0, %2, 2)	\n\t"
+	"movq	%%mm3, (%0, %3)		\n\t"
+	::"r"(p), "r"(pix), "r"(line_size), "r"(line_size*3)
 	:"memory");
         pix = pix + line_size*4;
         p =   p   + line_size*4;
@@ -221,7 +218,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm4\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -256,7 +253,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm4\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -293,7 +290,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wtwo):"memory");
+	::"m"(mm_wtwo));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -339,7 +336,7 @@
   const UINT8 *pix;
   p = block;
   pix = pixels;
-  __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+  __asm __volatile("pxor %%mm7, %%mm7\n\t":);
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -370,7 +367,7 @@
   const UINT8 *pix;
   p = block;
   pix = pixels;
-  __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+  __asm __volatile("pxor %%mm7, %%mm7\n\t":);
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -405,7 +402,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -454,7 +451,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%0, %%mm0\n\t"
@@ -473,7 +470,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -491,7 +488,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm1\n\t"
@@ -520,7 +517,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -537,7 +534,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm1\n\t"
@@ -566,7 +563,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix), "m"(*(pix+line_size))
 	:"memory");
    pix += line_size;
@@ -583,7 +580,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wtwo):"memory");
+	::"m"(mm_wtwo));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -625,7 +622,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix),
 	 "m"(*(pix+line_size)), "m"(mm_wone)
 	:"memory");
@@ -640,7 +637,7 @@
   const UINT8 *pix;
   p = block;
   pix = pixels;
-  __asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
+  __asm __volatile("pxor %%mm7, %%mm7\n\t":);
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -657,7 +654,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -672,7 +669,7 @@
   p = block;
   pix = pixels;
   __asm __volatile(
-      "pxor	%%mm7, %%mm7\n\t":::"memory");
+      "pxor	%%mm7, %%mm7\n\t":);
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -697,7 +694,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -712,7 +709,7 @@
   p = block;
   pix = pixels;
   __asm __volatile(
-      "pxor	%%mm7, %%mm7\n\t":::"memory");
+      "pxor	%%mm7, %%mm7\n\t":);
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -737,7 +734,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix), "m"(*(pix+line_size))
 	:"memory");
    pix += line_size;
@@ -754,7 +751,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wone):"memory");
+	::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -793,7 +790,7 @@
 	"psrlw	$1, %%mm2\n\t"
 	"packuswb  %%mm2, %%mm0\n\t"
 	"movq	%%mm0, %0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix),
 	 "m"(*(pix+line_size))
 	:"memory");
@@ -808,7 +805,7 @@
   const UINT8 *pix;
   p = block;
   pix = pixels;
-  __asm __volatile("pxor %%mm7, %%mm7":::"memory");
+  __asm __volatile("pxor %%mm7, %%mm7":);
   do {
     __asm __volatile(
 	"movq	%0, %%mm0\n\t"
@@ -821,7 +818,7 @@
 	"psubsw %%mm3, %%mm1\n\t"
 	"movq	%%mm0, %0\n\t"
 	"movq	%%mm1, 8%0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -838,7 +835,7 @@
   __asm __volatile(
       "pxor	%%mm7, %%mm7\n\t"
       "movq	%0, %%mm6"
-      ::"m"(mm_wone):"memory");
+      ::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%0, %%mm0\n\t"
@@ -861,7 +858,7 @@
 	"psubsw %%mm3, %%mm1\n\t"
 	"movq	%%mm0, %0\n\t"
 	"movq	%%mm1, 8%0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix)
 	:"memory");
    pix += line_size;
@@ -878,7 +875,7 @@
   __asm __volatile(
       "pxor	%%mm7, %%mm7\n\t"
       "movq	%0, %%mm6"
-      ::"m"(mm_wone):"memory");
+      ::"m"(mm_wone));
   do {
     __asm __volatile(
 	"movq	%0, %%mm0\n\t"
@@ -901,7 +898,7 @@
 	"psubsw %%mm3, %%mm1\n\t"
 	"movq	%%mm0, %0\n\t"
 	"movq	%%mm1, 8%0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix), "m"(*(pix+line_size))
 	:"memory");
    pix += line_size;
@@ -918,7 +915,7 @@
   __asm __volatile(
 	"pxor	%%mm7, %%mm7\n\t"
 	"movq	%0, %%mm6\n\t"
-	::"m"(mm_wtwo):"memory");
+	::"m"(mm_wtwo));
   do {
     __asm __volatile(
 	"movq	%1, %%mm0\n\t"
@@ -953,7 +950,7 @@
 	"psubsw %%mm2, %%mm3\n\t"
 	"movq	%%mm1, %0\n\t"
 	"movq	%%mm3, 8%0\n\t"
-	:"=m"(*p)
+	:"+m"(*p)
 	:"m"(*pix),
 	 "m"(*(pix+line_size))
 	:"memory");