1 diff -uNr MPlayer-1.0pre7try2.orig/configure MPlayer-1.0pre7try2/configure
2 --- MPlayer-1.0pre7try2.orig/configure 2006-02-14 12:43:09.000000000 +0100
3 +++ MPlayer-1.0pre7try2/configure 2006-02-14 12:44:16.978479750 +0100
5 cc_version="v. ?.??, bad"
8 - 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
9 + 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9]|4.*)
10 _cc_major=`echo $cc_version | cut -d '.' -f 1`
11 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
12 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
13 diff -uNr MPlayer-1.0pre7try2.orig/liba52/imdct.c MPlayer-1.0pre7try2/liba52/imdct.c
14 --- MPlayer-1.0pre7try2.orig/liba52/imdct.c 2005-03-23 00:27:18.000000000 +0100
15 +++ MPlayer-1.0pre7try2/liba52/imdct.c 2006-02-14 12:44:56.268935250 +0100
18 for (m=3; m < 7; m++) {
20 - two_m_plus_one = two_m<<1;
21 + int two_m_plus_four=two_m<<4;
22 + complex_t* buf_plus_128=buf+128;
30 - :: "g" (buf), "m" (buf+128), "m" (two_m_plus_one<<3), "r" (two_m<<3),
31 + :: "g" (buf), "m" (buf_plus_128), "m" (two_m_plus_four), "r" (two_m<<3),
33 : "%esi", "%edi", "%edx"
35 diff -uNr MPlayer-1.0pre7try2.orig/libavcodec/libpostproc/postprocess_template.c MPlayer-1.0pre7try2/libavcodec/libpostproc/postprocess_template.c
36 --- MPlayer-1.0pre7try2.orig/libavcodec/libpostproc/postprocess_template.c 2005-04-16 22:41:13.000000000 +0200
37 +++ MPlayer-1.0pre7try2/libavcodec/libpostproc/postprocess_template.c 2006-02-14 12:45:09.713775500 +0100
39 static always_inline void RENAME(do_a_deblock)(uint8_t *src, int step, int stride, PPContext *c){
40 int64_t dc_mask, eq_mask;
42 + int64_t dc_and_eq_mask;
44 src+= step*3; // src points to begin of the 8x8 Block
48 : "r" (src), "r" ((long)step), "m" (c->pQPb), "m"(c->ppMode.flatnessThreshold)
51 + dc_and_eq_mask=dc_mask & eq_mask;
53 - if(dc_mask & eq_mask){
56 int64_t *temp_sums= sums;
61 : "+r"(offset), "+r"(temp_sums)
62 - : "r" ((long)step), "r"(src - offset), "m"(dc_mask & eq_mask)
63 + : "r" ((long)step), "r"(src - offset), "m"(dc_and_eq_mask)
66 src+= step; // src points to begin of the 8x8 Block
68 "prefetchnta 32(%%"REG_a", %0) \n\t"
69 "prefetcht0 32(%%"REG_d", %2) \n\t"
70 :: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
71 - "m" ((long)x), "m" ((long)copyAhead)
72 + "g" ((long)x), "g" ((long)copyAhead)
77 "prefetchnta 32(%%"REG_a", %0) \n\t"
78 "prefetcht0 32(%%"REG_d", %2) \n\t"
79 :: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
80 - "m" ((long)x), "m" ((long)copyAhead)
81 + "g" ((long)x), "g" ((long)copyAhead)
85 diff -uNr MPlayer-1.0pre7try2.orig/libmpdemux/frequencies.h MPlayer-1.0pre7try2/libmpdemux/frequencies.h
86 --- MPlayer-1.0pre7try2.orig/libmpdemux/frequencies.h 2001-11-16 23:06:48.000000000 +0100
87 +++ MPlayer-1.0pre7try2/libmpdemux/frequencies.h 2006-02-14 12:44:16.978479750 +0100
89 /* --------------------------------------------------------------------- */
91 extern struct CHANLISTS chanlists[];
92 -extern struct STRTAB chanlist_names[];
95 extern struct CHANLIST *chanlist;
96 diff -uNr MPlayer-1.0pre7try2.orig/libvo/aclib_template.c MPlayer-1.0pre7try2/libvo/aclib_template.c
97 --- MPlayer-1.0pre7try2.orig/libvo/aclib_template.c 2005-01-21 22:11:35.000000000 +0100
98 +++ MPlayer-1.0pre7try2/libvo/aclib_template.c 2006-02-14 12:44:56.272935500 +0100
100 MOVNTQ" %%mm6, 48(%1)\n"
101 MOVNTQ" %%mm7, 56(%1)\n"
102 :: "r" (from), "r" (to) : "memory");
103 - ((const unsigned char *)from)+=64;
104 - ((unsigned char *)to)+=64;
105 + from=((const unsigned char *)from)+64;
106 + to=((unsigned char *)to)+64;
109 // printf(" %d %d\n", (int)from&1023, (int)to&1023);
111 MOVNTQ" %%mm6, 48(%1)\n"
112 MOVNTQ" %%mm7, 56(%1)\n"
113 :: "r" (from), "r" (to) : "memory");
114 - ((const unsigned char *)from)+=64;
115 - ((unsigned char *)to)+=64;
116 + from=((const unsigned char *)from)+64;
117 + to=((unsigned char *)to)+64;
120 #endif /* Have SSE */
121 diff -uNr MPlayer-1.0pre7try2.orig/mmx.h MPlayer-1.0pre7try2/mmx.h
122 --- MPlayer-1.0pre7try2.orig/mmx.h 2001-10-28 12:47:21.000000000 +0100
123 +++ MPlayer-1.0pre7try2/mmx.h 2006-02-14 12:44:16.978479750 +0100
124 @@ -353,11 +353,11 @@
125 #define mmx_m2r(op, mem, reg) \
126 __asm__ __volatile__ (#op " %0, %%" #reg \
131 #define mmx_r2m(op, reg, mem) \
132 __asm__ __volatile__ (#op " %%" #reg ", %0" \
137 #define mmx_r2r(op, regs, regd) \
139 __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
140 #op " %1, %%mm0\n\t" \
149 diff -uNr MPlayer-1.0pre7try2.orig/postproc/swscale_template.c MPlayer-1.0pre7try2/postproc/swscale_template.c
150 --- MPlayer-1.0pre7try2.orig/postproc/swscale_template.c 2005-02-17 00:47:00.000000000 +0100
151 +++ MPlayer-1.0pre7try2/postproc/swscale_template.c 2006-02-14 12:45:09.717775750 +0100
152 @@ -765,14 +765,14 @@
154 YSCALEYUV2YV12X(0, CHR_MMX_FILTER_OFFSET)
155 :: "r" (&c->redDither),
156 - "r" (uDest), "m" ((long)chrDstW)
157 + "r" (uDest), "p" ((long)chrDstW)
158 : "%"REG_a, "%"REG_d, "%"REG_S
162 YSCALEYUV2YV12X(4096, CHR_MMX_FILTER_OFFSET)
163 :: "r" (&c->redDither),
164 - "r" (vDest), "m" ((long)chrDstW)
165 + "r" (vDest), "p" ((long)chrDstW)
166 : "%"REG_a, "%"REG_d, "%"REG_S
171 YSCALEYUV2YV12X(0, LUM_MMX_FILTER_OFFSET)
172 :: "r" (&c->redDither),
173 - "r" (dest), "m" ((long)dstW)
174 + "r" (dest), "p" ((long)dstW)
175 : "%"REG_a, "%"REG_d, "%"REG_S
178 @@ -2136,6 +2136,7 @@
181 long counter= -2*dstW;
182 + uint8_t* ptr=src+filterSize;
183 // filter-= counter*filterSize/2;
184 filterPos-= counter/2;
186 @@ -2177,7 +2178,7 @@
189 : "+r" (counter), "+r" (filter)
190 - : "m" (filterPos), "m" (dst), "m"(src+filterSize),
191 + : "m" (filterPos), "m" (dst), "m"(ptr),
192 "m" (src), "r" ((long)filterSize*2)
193 : "%"REG_b, "%"REG_a, "%"REG_c
195 @@ -2320,6 +2321,8 @@
198 //NO MMX just normal asm ...
199 + int xInc_hi=xInc>>16;
200 + int xInc_lo=xInc&0xffff;
202 "xor %%"REG_a", %%"REG_a" \n\t" // i
203 "xor %%"REG_b", %%"REG_b" \n\t" // xx
204 @@ -2356,7 +2359,7 @@
208 - :: "r" (src), "m" (dst), "m" (dstWidth), "m" (xInc>>16), "m" (xInc&0xFFFF)
209 + :: "r" (src), "m" (dst), "m" (dstWidth), "m" (xInc_hi), "m" (xInc_lo)
210 : "%"REG_a, "%"REG_b, "%ecx", "%"REG_D, "%esi"
213 @@ -2515,6 +2518,8 @@
217 + int xInc_hi=xInc>>16;
218 + int xInc_lo=xInc&0xffff;
220 "xor %%"REG_a", %%"REG_a" \n\t" // i
221 "xor %%"REG_b", %%"REG_b" \n\t" // xx
222 @@ -2547,8 +2552,13 @@
223 "add $1, %%"REG_a" \n\t"
224 "cmp %2, %%"REG_a" \n\t"
227 - :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" ((long)(xInc>>16)), "m" ((xInc&0xFFFF)),
228 +/* GCC-3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
229 + which is needed to support GCC-4.0 */
230 +#if defined(ARCH_X86_64) && ((__GNUC__ > 3) || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4))
231 + :: "m" (src1), "m" (dst), "g" ((long)dstWidth), "m" (xInc_hi), "m" (xInc_lo),
233 + :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" ((long)(xInc_hi)), "m" ((xInc_lo)),
236 : "%"REG_a, "%"REG_b, "%ecx", "%"REG_D, "%esi"