[vlc-commits] Add the clobber register list to inline assembly.
Rémi Duraffort
git at videolan.org
Fri Nov 11 14:31:35 CET 2011
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Sat Oct 1 20:05:26 2011 +0200| [23e0cb9f280d74e5155277eb77ab57a30573a11a] | committer: Rémi Duraffort
Add the clobber register list to inline assembly.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=23e0cb9f280d74e5155277eb77ab57a30573a11a
---
modules/codec/avcodec/copy.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules/codec/avcodec/copy.c b/modules/codec/avcodec/copy.c
index 3c27069..412d1ab 100644
--- a/modules/codec/avcodec/copy.c
+++ b/modules/codec/avcodec/copy.c
@@ -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
More information about the vlc-commits
mailing list