[vlc-devel] [PATCH 2/3] gradfun: define the clobber list
Rémi Denis-Courmont
remi at remlab.net
Sat Nov 19 11:22:36 CET 2011
From: Rémi Duraffort <ivoire at videolan.org>
Signed-off-by: Rémi Denis-Courmont <remi at remlab.net>
---
modules/video_filter/gradfun.h | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules/video_filter/gradfun.h b/modules/video_filter/gradfun.h
index 4b30748..23b4be3 100644
--- a/modules/video_filter/gradfun.h
+++ b/modules/video_filter/gradfun.h
@@ -78,6 +78,7 @@ static void blur_line_c(uint16_t *dc, uint16_t *buf, uint16_t *buf1,
}
#if HAVE_MMX2
+VLC_MMX
static void filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc,
int width, int thresh, const uint16_t *dithers)
{
@@ -121,12 +122,13 @@ static void filter_line_mmx2(uint8_t *dst, uint8_t *src, uint16_t *dc,
:"+r"(x)
:"r"(dst+width), "r"(src+width), "r"(dc+width/2),
"rm"(thresh), "m"(*dithers), "m"(*pw_7f)
- :"memory"
+ :"mm0", "mm1", "mm2", "mm4", "mm5", "mm6", "memory"
);
}
#endif
#if HAVE_SSSE3
+VLC_SSE
static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc,
int width, int thresh, const uint16_t *dithers)
{
@@ -169,7 +171,7 @@ static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc,
:"+&r"(x)
:"r"(dst+width), "r"(src+width), "r"(dc+width/2),
"rm"(thresh), "m"(*dithers), "m"(*pw_7f)
- :"memory"
+ :"xmm0", "xmm1", "xmm2", "xmm4", "xmm5", "xmm6", "xmm7", "memory"
);
}
#endif // HAVE_SSSE3
@@ -205,9 +207,10 @@ static void filter_line_ssse3(uint8_t *dst, uint8_t *src, uint16_t *dc,
"r"(src+width*2),\
"r"(src+width*2+sstride),\
"m"(*pw_ff)\
- :"memory"\
+ :"xmm0", "xmm1", "xmm2", "xmm3", "xmm7", "memory"\
);
+VLC_SSE
static void blur_line_sse2(uint16_t *dc, uint16_t *buf, uint16_t *buf1,
uint8_t *src, int sstride, int width)
{
--
1.7.7.3
More information about the vlc-devel
mailing list