summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames Courtier-Dutton <jcdutton@users.sourceforge.net>2006-09-10 19:33:53 +0000
committerJames Courtier-Dutton <jcdutton@users.sourceforge.net>2006-09-10 19:33:53 +0000
commit9246aac64ffa5dd71aa0b28fc63cc59a3305b552 (patch)
treeea75c48f70b3feb2a34c07cb7701bf5569f89c08 /src
parentabd545bbb37d5bf4b2a2d686a2e622fd6b8a6db3 (diff)
downloadxine-lib-9246aac64ffa5dd71aa0b28fc63cc59a3305b552.tar.gz
xine-lib-9246aac64ffa5dd71aa0b28fc63cc59a3305b552.tar.bz2
Allow xine-lib to compile with gcc 4.1.1.
dsputil_mmx.c patch taked from gentoo portage. CVS patchset: 8216 CVS date: 2006/09/10 19:33:53
Diffstat (limited to 'src')
-rw-r--r--src/libffmpeg/libavcodec/i386/dsputil_mmx.c24
-rw-r--r--src/xine-engine/xine.c12
2 files changed, 23 insertions, 13 deletions
diff --git a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c
index 810d0792d..a2cbab8ce 100644
--- a/src/libffmpeg/libavcodec/i386/dsputil_mmx.c
+++ b/src/libffmpeg/libavcodec/i386/dsputil_mmx.c
@@ -625,10 +625,22 @@ static void h263_v_loop_filter_mmx(uint8_t *src, int stride, int qscale){
static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int src_stride){
asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
- "movd %4, %%mm0 \n\t"
- "movd %5, %%mm1 \n\t"
- "movd %6, %%mm2 \n\t"
- "movd %7, %%mm3 \n\t"
+ "movd %0, %%mm0 \n\t"
+ "movd %1, %%mm1 \n\t"
+ "movd %2, %%mm2 \n\t"
+
+ :
+ : "m" (*(uint32_t*)(src + 0*src_stride)),
+ "m" (*(uint32_t*)(src + 1*src_stride)),
+ "m" (*(uint32_t*)(src + 2*src_stride))
+ );
+ asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
+ "movd %0, %%mm3 \n\t"
+
+ :
+ : "m" (*(uint32_t*)(src + 3*src_stride))
+ );
+ asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
"punpcklbw %%mm1, %%mm0 \n\t"
"punpcklbw %%mm3, %%mm2 \n\t"
"movq %%mm0, %%mm1 \n\t"
@@ -645,10 +657,6 @@ static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int
"=m" (*(uint32_t*)(dst + 1*dst_stride)),
"=m" (*(uint32_t*)(dst + 2*dst_stride)),
"=m" (*(uint32_t*)(dst + 3*dst_stride))
- : "m" (*(uint32_t*)(src + 0*src_stride)),
- "m" (*(uint32_t*)(src + 1*src_stride)),
- "m" (*(uint32_t*)(src + 2*src_stride)),
- "m" (*(uint32_t*)(src + 3*src_stride))
);
}
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index d8ca81d4a..a821a3c26 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine.c,v 1.329 2006/09/09 19:35:40 dgp85 Exp $
+ * $Id: xine.c,v 1.330 2006/09/10 19:33:53 jcdutton Exp $
*/
/*
@@ -1959,13 +1959,15 @@ void xine_log (xine_t *this, int buf, const char *format, ...) {
}
}
-void xine_vlog(xine_t *this, int buf, const char *format,
- va_list args)
-{
+void xine_vlog(xine_t *this, int buf, const char *format, ...) {
+ va_list argp;
+
if ( ! this->log_buffers[buf] )
this->log_buffers[buf] = _x_new_scratch_buffer(150);
- this->log_buffers[buf]->scratch_printf(this->log_buffers[buf], format, args);
+ va_start (argp, format);
+ this->log_buffers[buf]->scratch_printf(this->log_buffers[buf], format, argp);
+ va_end(argp);
}
const char *const *xine_get_log (xine_t *this, int buf) {