]> git.sesse.net Git - vlc/commitdiff
Add the clobber register list to inline assembly.
authorRémi Duraffort <ivoire@videolan.org>
Sat, 1 Oct 2011 18:05:26 +0000 (20:05 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Fri, 11 Nov 2011 11:52:56 +0000 (12:52 +0100)
modules/codec/avcodec/copy.c

index 3c2706926ea64ebaace35d6b03afd76e70623f0b..412d1ab7cbf794cce63557a0513088f11ae565a9 100644 (file)
@@ -45,7 +45,8 @@
         store " %%xmm2,   16(%[dst])\n" \
         store " %%xmm3,   32(%[dst])\n" \
         store " %%xmm4,   48(%[dst])\n" \
-        : : [dst]"r"(dstp), [src]"r"(srcp) : "memory")
+        : : [dst]"r"(dstp), [src]"r"(srcp) \
+        : "xmm1", "xmm2", "xmm3", "xmm4", "memory")
 
 /* Execute the instruction op only if SSE2 is supported. */
 #ifdef CAN_COMPILE_SSE2
@@ -184,7 +185,8 @@ static void SplitUV(uint8_t *dstu, size_t dstu_pitch,
                     "pshufb  %%xmm7, %%xmm2\n"
                     "pshufb  %%xmm7, %%xmm3\n"
                     STORE2X32
-                    : : [dst1]"r"(&dstu[x]), [dst2]"r"(&dstv[x]), [src]"r"(&src[2*x]), [shuffle]"r"(shuffle) : "memory");
+                    : : [dst1]"r"(&dstu[x]), [dst2]"r"(&dstv[x]), [src]"r"(&src[2*x]), [shuffle]"r"(shuffle)
+                    : "xmm0", "xmm1", "xmm2", "xmm3", "xmm7", "memory");
             }
         } else
 #endif
@@ -210,7 +212,8 @@ static void SplitUV(uint8_t *dstu, size_t dstu_pitch,
                     "packuswb %%xmm6, %%xmm2\n"
                     "packuswb %%xmm7, %%xmm3\n"
                     STORE2X32
-                    : : [dst2]"r"(&dstu[x]), [dst1]"r"(&dstv[x]), [src]"r"(&src[2*x]), [mask]"r"(mask) : "memory");
+                    : : [dst2]"r"(&dstu[x]), [dst1]"r"(&dstv[x]), [src]"r"(&src[2*x]), [mask]"r"(mask)
+                    : "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "memory");
             }
         }
 #endif