]> git.pld-linux.org Git - packages/mplayer.git/blob - mplayer-gcc4.patch
- face the truth: lzo 2 and polypaudio 0.8 are not supported yet
[packages/mplayer.git] / mplayer-gcc4.patch
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
4 @@ -605,7 +605,7 @@
5        cc_version="v. ?.??, bad"
6        cc_verc_fail=yes
7        ;;
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
16 @@ -937,7 +937,8 @@
17      /* 4-7. iterations */
18      for (m=3; m < 7; m++) {
19         two_m = (1 << 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;
23         asm volatile(
24                 "movl %0, %%esi                         \n\t"
25                 ".balign 16                             \n\t"
26 @@ -963,7 +964,7 @@
27                 "addl %2, %%esi                         \n\t"
28                 "cmpl %1, %%esi                         \n\t"
29                 " jb 1b                                 \n\t"
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),
32                    "r" (sseW[m])
33                 : "%esi", "%edi", "%edx"
34         );
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
38 @@ -2648,6 +2648,8 @@
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;
41         int64_t sums[10*8*2];
42 +       int64_t dc_and_eq_mask;
43 +
44         src+= step*3; // src points to begin of the 8x8 Block
45  //START_TIMER
46  asm volatile(
47 @@ -2754,8 +2756,9 @@
48                 : "r" (src), "r" ((long)step), "m" (c->pQPb), "m"(c->ppMode.flatnessThreshold)
49                 : "%"REG_a
50                 );
51 +       dc_and_eq_mask=dc_mask & eq_mask;
52  
53 -       if(dc_mask & eq_mask){
54 +       if(dc_and_eq_mask){
55                 long offset= -8*step;
56                 int64_t *temp_sums= sums;
57  
58 @@ -2930,7 +2933,7 @@
59                 " js 1b                                         \n\t"
60  
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)
64                 );
65         }else
66                 src+= step; // src points to begin of the 8x8 Block
67 @@ -3493,7 +3496,7 @@
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)
73                         : "%"REG_a, "%"REG_d
74                         );
75  
76 @@ -3639,7 +3642,7 @@
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)
82                         : "%"REG_a, "%"REG_d
83                         );
84  
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
88 @@ -104,7 +104,6 @@
89  /* --------------------------------------------------------------------- */
90  
91  extern struct CHANLISTS   chanlists[];
92 -extern struct STRTAB chanlist_names[];
93  
94  extern int                chantab;
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
99 @@ -249,8 +249,8 @@
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;
107         }
108  
109  //     printf(" %d %d\n", (int)from&1023, (int)to&1023);
110 @@ -338,8 +338,8 @@
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;
118         }
119  
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 \
127                               : /* nothing */ \
128 -                             : "X" (mem))
129 +                             : "m" (mem))
130  
131  #define        mmx_r2m(op, reg, mem) \
132         __asm__ __volatile__ (#op " %%" #reg ", %0" \
133 -                             : "=X" (mem) \
134 +                             : "=m" (mem) \
135                               : /* nothing */ )
136  
137  #define        mmx_r2r(op, regs, regd) \
138 @@ -367,8 +367,8 @@
139         __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
140                               #op " %1, %%mm0\n\t" \
141                               "movq %%mm0, %0" \
142 -                             : "=X" (memd) \
143 -                             : "X" (mems))
144 +                             : "=m" (memd) \
145 +                             : "m" (mems))
146  
147  #endif
148  
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 @@
153                 asm volatile(
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
159                         );
160  
161                 asm volatile(
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
167                         );
168         }
169 @@ -780,7 +780,7 @@
170         asm volatile(
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
176                 );
177  #else
178 @@ -2136,6 +2136,7 @@
179         else
180         {
181                 long counter= -2*dstW;
182 +               uint8_t* ptr=src+filterSize;
183  //             filter-= counter*filterSize/2;
184                 filterPos-= counter/2;
185                 dst-= counter/2;
186 @@ -2177,7 +2178,7 @@
187                         " jnc 1b                        \n\t"
188  
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
194                 );
195 @@ -2320,6 +2321,8 @@
196         {
197  #endif
198         //NO MMX just normal asm ...
199 +         int xInc_hi=xInc>>16;
200 +         int xInc_lo=xInc&0xffff;
201         asm volatile(
202                 "xor %%"REG_a", %%"REG_a"       \n\t" // i
203                 "xor %%"REG_b", %%"REG_b"       \n\t" // xx
204 @@ -2356,7 +2359,7 @@
205                 " jb 1b                         \n\t"
206  
207  
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"
211                 );
212  #ifdef HAVE_MMX2
213 @@ -2515,6 +2518,8 @@
214         else
215         {
216  #endif
217 +         int xInc_hi=xInc>>16;
218 +         int xInc_lo=xInc&0xffff;
219         asm volatile(
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"
225                 " jb 1b                         \n\t"
226 -
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),
232 +#else
233 +               :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" ((long)(xInc_hi)), "m" ((xInc_lo)),
234 +#endif
235                 "r" (src2)
236                 : "%"REG_a, "%"REG_b, "%ecx", "%"REG_D, "%esi"
237                 );
This page took 0.038552 seconds and 3 git commands to generate.