* fix ffmpeg compilation by reverting their revision 11100
[vlc.git] / extras / contrib / src / Patches / ffmpeg-macosx-intel-mmx.patch
1 Index: libavcodec/i386/motion_est_mmx.c
2 ===================================================================
3 --- libavcodec/i386/motion_est_mmx.c    (revision 10865)
4 +++ libavcodec/i386/motion_est_mmx.c    (working copy)
5 @@ -167,7 +167,7 @@
6  static inline void sad8_4_mmx2(uint8_t *blk1, uint8_t *blk2, int stride, int h)
7  {
8      asm volatile(
9 -        "movq "MANGLE(bone)", %%mm5     \n\t"
10 +        "movq %4, %%mm5     \n\t"
11          "movq (%1), %%mm0               \n\t"
12          "pavgb 1(%1), %%mm0             \n\t"
13          "add %3, %1                     \n\t"
14 @@ -190,7 +190,7 @@
15          "sub $2, %0                     \n\t"
16          " jg 1b                         \n\t"
17          : "+r" (h), "+r" (blk1), "+r" (blk2)
18 -        : "r" ((long)stride)
19 +        : "r" ((long)stride), "m" (bone)
20      );
21  }
22  
23 @@ -258,7 +258,7 @@
24          "punpckhbw %%mm7, %%mm5         \n\t"
25          "paddw %%mm4, %%mm2             \n\t"
26          "paddw %%mm5, %%mm3             \n\t"
27 -        "movq 16+"MANGLE(round_tab)", %%mm5 \n\t"
28 +        "movq 16+%5, %%mm5 \n\t"
29          "paddw %%mm2, %%mm0             \n\t"
30          "paddw %%mm3, %%mm1             \n\t"
31          "paddw %%mm5, %%mm0             \n\t"
32 @@ -281,7 +281,7 @@
33          "add %4, %%"REG_a"              \n\t"
34          " js 1b                         \n\t"
35          : "+a" (len)
36 -        : "r" (blk1 - len), "r" (blk1 -len + stride), "r" (blk2 - len), "r" ((long)stride)
37 +        : "r" (blk1 - len), "r" (blk1 -len + stride), "r" (blk2 - len), "r" ((long)stride), "m" (round_tab[0])
38      );
39  }
40  
41 Index: libavcodec/i386/dsputil_h264_template_mmx.c
42 ===================================================================
43 --- libavcodec/i386/dsputil_h264_template_mmx.c (revision 10865)
44 +++ libavcodec/i386/dsputil_h264_template_mmx.c (working copy)
45 @@ -188,8 +188,8 @@
46          "pxor   %%mm7, %%mm7        \n\t"
47          "movd %5, %%mm2             \n\t"
48          "movd %6, %%mm3             \n\t"
49 -        "movq "MANGLE(ff_pw_8)", %%mm4\n\t"
50 -        "movq "MANGLE(ff_pw_8)", %%mm5\n\t"
51 +        "movq %7, %%mm4\n\t"
52 +        "movq %7, %%mm5\n\t"
53          "punpcklwd %%mm2, %%mm2     \n\t"
54          "punpcklwd %%mm3, %%mm3     \n\t"
55          "punpcklwd %%mm2, %%mm2     \n\t"
56 @@ -246,7 +246,7 @@
57          "sub $2, %2                 \n\t"
58          "jnz 1b                     \n\t"
59          : "+r"(dst), "+r"(src), "+r"(h)
60 -        : "r"((long)stride), "m"(ff_pw_32), "m"(x), "m"(y)
61 +        : "r"((long)stride), "m"(ff_pw_32), "m"(x), "m"(y), "m"(ff_pw_8)
62      );
63  }
64  
65 Index: libavcodec/i386/dsputil_mmx.c
66 ===================================================================
67 --- libavcodec/i386/dsputil_mmx.c       (revision 10865)
68 +++ libavcodec/i386/dsputil_mmx.c       (working copy)
69 @@ -1917,7 +1917,7 @@
70  
71  #define QPEL_V_LOW(m3,m4,m5,m6, pw_20, pw_3, rnd, in0, in1, in2, in7, out, OP)\
72          "paddw " #m4 ", " #m3 "           \n\t" /* x1 */\
73 -        "movq "MANGLE(ff_pw_20)", %%mm4   \n\t" /* 20 */\
74 +        "movq "#pw_20", %%mm4   \n\t" /* 20 */\
75          "pmullw " #m3 ", %%mm4            \n\t" /* 20x1 */\
76          "movq "#in7", " #m3 "             \n\t" /* d */\
77          "movq "#in0", %%mm5               \n\t" /* D */\
78 @@ -1929,7 +1929,7 @@
79          "paddw " #m5 ", %%mm6             \n\t" /* x2 */\
80          "paddw %%mm6, %%mm6               \n\t" /* 2x2 */\
81          "psubw %%mm6, %%mm5               \n\t" /* -2x2 + x3 */\
82 -        "pmullw "MANGLE(ff_pw_3)", %%mm5  \n\t" /* -6x2 + 3x3 */\
83 +        "pmullw "#pw_3", %%mm5  \n\t" /* -6x2 + 3x3 */\
84          "paddw " #rnd ", %%mm4            \n\t" /* x2 */\
85          "paddw %%mm4, %%mm5               \n\t" /* 20x1 - 6x2 + 3x3 - x4 */\
86          "psraw $5, %%mm5                  \n\t"\
87 @@ -1963,10 +1963,10 @@
88          "paddw %%mm5, %%mm5               \n\t" /* 2b */\
89          "psubw %%mm5, %%mm6               \n\t" /* c - 2b */\
90          "pshufw $0x06, %%mm0, %%mm5       \n\t" /* 0C0B0A0A */\
91 -        "pmullw "MANGLE(ff_pw_3)", %%mm6  \n\t" /* 3c - 6b */\
92 +        "pmullw %8, %%mm6  \n\t" /* 3c - 6b */\
93          "paddw %%mm4, %%mm0               \n\t" /* a */\
94          "paddw %%mm1, %%mm5               \n\t" /* d */\
95 -        "pmullw "MANGLE(ff_pw_20)", %%mm0 \n\t" /* 20a */\
96 +        "pmullw %7, %%mm0 \n\t" /* 20a */\
97          "psubw %%mm5, %%mm0               \n\t" /* 20a - d */\
98          "paddw %6, %%mm6                  \n\t"\
99          "paddw %%mm6, %%mm0               \n\t" /* 20a - 6b + 3c - d */\
100 @@ -1989,10 +1989,10 @@
101          "psrlq $24, %%mm6                 \n\t" /* IJKLM000 */\
102          "punpcklbw %%mm7, %%mm2           \n\t" /* 0F0G0H0I */\
103          "punpcklbw %%mm7, %%mm6           \n\t" /* 0I0J0K0L */\
104 -        "pmullw "MANGLE(ff_pw_3)", %%mm3  \n\t" /* 3c - 6b */\
105 +        "pmullw %8, %%mm3  \n\t" /* 3c - 6b */\
106          "paddw %%mm2, %%mm1               \n\t" /* a */\
107          "paddw %%mm6, %%mm4               \n\t" /* d */\
108 -        "pmullw "MANGLE(ff_pw_20)", %%mm1 \n\t" /* 20a */\
109 +        "pmullw %7, %%mm1 \n\t" /* 20a */\
110          "psubw %%mm4, %%mm3               \n\t" /* - 6b +3c - d */\
111          "paddw %6, %%mm1                  \n\t"\
112          "paddw %%mm1, %%mm3               \n\t" /* 20a - 6b +3c - d */\
113 @@ -2015,7 +2015,7 @@
114          "psubw %%mm5, %%mm0               \n\t" /* c - 2b */\
115          "movq %%mm3, %%mm5                \n\t" /* JKLMNOPQ */\
116          "psrlq $24, %%mm3                 \n\t" /* MNOPQ000 */\
117 -        "pmullw "MANGLE(ff_pw_3)", %%mm0  \n\t" /* 3c - 6b */\
118 +        "pmullw %8, %%mm0  \n\t" /* 3c - 6b */\
119          "punpcklbw %%mm7, %%mm3           \n\t" /* 0M0N0O0P */\
120          "paddw %%mm3, %%mm2               \n\t" /* d */\
121          "psubw %%mm2, %%mm0               \n\t" /* -6b + 3c - d */\
122 @@ -2023,7 +2023,7 @@
123          "punpcklbw %%mm7, %%mm2           \n\t" /* 0J0K0L0M */\
124          "punpckhbw %%mm7, %%mm5           \n\t" /* 0N0O0P0Q */\
125          "paddw %%mm2, %%mm6               \n\t" /* a */\
126 -        "pmullw "MANGLE(ff_pw_20)", %%mm6 \n\t" /* 20a */\
127 +        "pmullw %7, %%mm6 \n\t" /* 20a */\
128          "paddw %6, %%mm0                  \n\t"\
129          "paddw %%mm6, %%mm0               \n\t" /* 20a - 6b + 3c - d */\
130          "psraw $5, %%mm0                  \n\t"\
131 @@ -2038,8 +2038,8 @@
132          "paddw %%mm2, %%mm5               \n\t" /* d */\
133          "paddw %%mm6, %%mm6               \n\t" /* 2b */\
134          "psubw %%mm6, %%mm4               \n\t" /* c - 2b */\
135 -        "pmullw "MANGLE(ff_pw_20)", %%mm3 \n\t" /* 20a */\
136 -        "pmullw "MANGLE(ff_pw_3)", %%mm4  \n\t" /* 3c - 6b */\
137 +        "pmullw %7, %%mm3 \n\t" /* 20a */\
138 +        "pmullw %8, %%mm4  \n\t" /* 3c - 6b */\
139          "psubw %%mm5, %%mm3               \n\t" /* -6b + 3c - d */\
140          "paddw %6, %%mm4                  \n\t"\
141          "paddw %%mm3, %%mm4               \n\t" /* 20a - 6b + 3c - d */\
142 @@ -2052,7 +2052,9 @@
143          "decl %2                          \n\t"\
144          " jnz 1b                          \n\t"\
145          : "+a"(src), "+c"(dst), "+m"(h)\
146 -        : "d"((long)srcStride), "S"((long)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(temp), "m"(ROUNDER)\
147 +        : "d"((long)srcStride), "S"((long)dstStride),\
148 +        "m"(temp), "m"(ROUNDER),\
149 +        "m"(ff_pw_20), "m"(ff_pw_3)\
150          : "memory"\
151      );\
152  }\
153 @@ -2130,10 +2132,10 @@
154          "paddw %%mm5, %%mm5               \n\t" /* 2b */\
155          "psubw %%mm5, %%mm6               \n\t" /* c - 2b */\
156          "pshufw $0x06, %%mm0, %%mm5       \n\t" /* 0C0B0A0A */\
157 -        "pmullw "MANGLE(ff_pw_3)", %%mm6  \n\t" /* 3c - 6b */\
158 +        "pmullw %8, %%mm6  \n\t" /* 3c - 6b */\
159          "paddw %%mm4, %%mm0               \n\t" /* a */\
160          "paddw %%mm1, %%mm5               \n\t" /* d */\
161 -        "pmullw "MANGLE(ff_pw_20)", %%mm0 \n\t" /* 20a */\
162 +        "pmullw %7, %%mm0 \n\t" /* 20a */\
163          "psubw %%mm5, %%mm0               \n\t" /* 20a - d */\
164          "paddw %6, %%mm6                  \n\t"\
165          "paddw %%mm6, %%mm0               \n\t" /* 20a - 6b + 3c - d */\
166 @@ -2151,8 +2153,8 @@
167          "paddw %%mm5, %%mm4               \n\t" /* d */\
168          "paddw %%mm2, %%mm2               \n\t" /* 2b */\
169          "psubw %%mm2, %%mm3               \n\t" /* c - 2b */\
170 -        "pmullw "MANGLE(ff_pw_20)", %%mm1 \n\t" /* 20a */\
171 -        "pmullw "MANGLE(ff_pw_3)", %%mm3  \n\t" /* 3c - 6b */\
172 +        "pmullw %7, %%mm1 \n\t" /* 20a */\
173 +        "pmullw %8, %%mm3  \n\t" /* 3c - 6b */\
174          "psubw %%mm4, %%mm3               \n\t" /* -6b + 3c - d */\
175          "paddw %6, %%mm1                  \n\t"\
176          "paddw %%mm1, %%mm3               \n\t" /* 20a - 6b + 3c - d */\
177 @@ -2165,7 +2167,9 @@
178          "decl %2                          \n\t"\
179          " jnz 1b                          \n\t"\
180          : "+a"(src), "+c"(dst), "+m"(h)\
181 -        : "S"((long)srcStride), "D"((long)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(temp), "m"(ROUNDER)\
182 +        : "S"((long)srcStride), "D"((long)dstStride),\
183 +        "m"(temp), "m"(ROUNDER),\
184 +        "m"(ff_pw_20), "m"(ff_pw_3)\
185          : "memory"\
186      );\
187  }\
188 @@ -2244,31 +2248,31 @@
189          "movq 8(%0), %%mm1              \n\t"\
190          "movq 16(%0), %%mm2             \n\t"\
191          "movq 24(%0), %%mm3             \n\t"\
192 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5, 16(%0),  8(%0),   (%0), 32(%0), (%1), OP)\
193 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5,  8(%0),   (%0),   (%0), 40(%0), (%1, %3), OP)\
194 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5, 16(%0),  8(%0),   (%0), 32(%0), (%1), OP)\
195 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5,  8(%0),   (%0),   (%0), 40(%0), (%1, %3), OP)\
196          "add %4, %1                     \n\t"\
197 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5,   (%0),   (%0),  8(%0), 48(%0), (%1), OP)\
198 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5,   (%0),   (%0),  8(%0), 48(%0), (%1), OP)\
199          \
200 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5,   (%0),  8(%0), 16(%0), 56(%0), (%1, %3), OP)\
201 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5,   (%0),  8(%0), 16(%0), 56(%0), (%1, %3), OP)\
202          "add %4, %1                     \n\t"\
203 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5,  8(%0), 16(%0), 24(%0), 64(%0), (%1), OP)\
204 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5, 16(%0), 24(%0), 32(%0), 72(%0), (%1, %3), OP)\
205 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5,  8(%0), 16(%0), 24(%0), 64(%0), (%1), OP)\
206 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5, 16(%0), 24(%0), 32(%0), 72(%0), (%1, %3), OP)\
207          "add %4, %1                     \n\t"\
208 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5, 24(%0), 32(%0), 40(%0), 80(%0), (%1), OP)\
209 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5, 32(%0), 40(%0), 48(%0), 88(%0), (%1, %3), OP)\
210 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5, 24(%0), 32(%0), 40(%0), 80(%0), (%1), OP)\
211 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5, 32(%0), 40(%0), 48(%0), 88(%0), (%1, %3), OP)\
212          "add %4, %1                     \n\t"\
213 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5, 40(%0), 48(%0), 56(%0), 96(%0), (%1), OP)\
214 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5, 48(%0), 56(%0), 64(%0),104(%0), (%1, %3), OP)\
215 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5, 40(%0), 48(%0), 56(%0), 96(%0), (%1), OP)\
216 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5, 48(%0), 56(%0), 64(%0),104(%0), (%1, %3), OP)\
217          "add %4, %1                     \n\t"\
218 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5, 56(%0), 64(%0), 72(%0),112(%0), (%1), OP)\
219 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5, 64(%0), 72(%0), 80(%0),120(%0), (%1, %3), OP)\
220 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5, 56(%0), 64(%0), 72(%0),112(%0), (%1), OP)\
221 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5, 64(%0), 72(%0), 80(%0),120(%0), (%1, %3), OP)\
222          "add %4, %1                     \n\t"\
223 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5, 72(%0), 80(%0), 88(%0),128(%0), (%1), OP)\
224 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5, 72(%0), 80(%0), 88(%0),128(%0), (%1), OP)\
225          \
226 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5, 80(%0), 88(%0), 96(%0),128(%0), (%1, %3), OP)\
227 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5, 80(%0), 88(%0), 96(%0),128(%0), (%1, %3), OP)\
228          "add %4, %1                     \n\t"  \
229 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5, 88(%0), 96(%0),104(%0),120(%0), (%1), OP)\
230 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5, 96(%0),104(%0),112(%0),112(%0), (%1, %3), OP)\
231 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5, 88(%0), 96(%0),104(%0),120(%0), (%1), OP)\
232 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5, 96(%0),104(%0),112(%0),112(%0), (%1, %3), OP)\
233          \
234          "add $136, %0                   \n\t"\
235          "add %6, %1                     \n\t"\
236 @@ -2276,7 +2280,9 @@
237          " jnz 1b                        \n\t"\
238          \
239          : "+r"(temp_ptr), "+r"(dst), "+g"(count)\
240 -        : "r"((long)dstStride), "r"(2*(long)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(ROUNDER), "g"(4-14*(long)dstStride)\
241 +        : "r"((long)dstStride), "r"(2*(long)dstStride),\
242 +        "m"(ROUNDER), "g"(4-14*(long)dstStride),\
243 +        "m"(ff_pw_20), "m"(ff_pw_3)\
244          :"memory"\
245      );\
246  }\
247 @@ -2316,19 +2322,19 @@
248          "movq 8(%0), %%mm1              \n\t"\
249          "movq 16(%0), %%mm2             \n\t"\
250          "movq 24(%0), %%mm3             \n\t"\
251 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5, 16(%0),  8(%0),   (%0), 32(%0), (%1), OP)\
252 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5,  8(%0),   (%0),   (%0), 40(%0), (%1, %3), OP)\
253 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5, 16(%0),  8(%0),   (%0), 32(%0), (%1), OP)\
254 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5,  8(%0),   (%0),   (%0), 40(%0), (%1, %3), OP)\
255          "add %4, %1                     \n\t"\
256 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5,   (%0),   (%0),  8(%0), 48(%0), (%1), OP)\
257 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5,   (%0),   (%0),  8(%0), 48(%0), (%1), OP)\
258          \
259 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5,   (%0),  8(%0), 16(%0), 56(%0), (%1, %3), OP)\
260 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5,   (%0),  8(%0), 16(%0), 56(%0), (%1, %3), OP)\
261          "add %4, %1                     \n\t"\
262 -        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %5, %6, %5,  8(%0), 16(%0), 24(%0), 64(%0), (%1), OP)\
263 +        QPEL_V_LOW(%%mm0, %%mm1, %%mm2, %%mm3, %7, %8, %5,  8(%0), 16(%0), 24(%0), 64(%0), (%1), OP)\
264          \
265 -        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %5, %6, %5, 16(%0), 24(%0), 32(%0), 64(%0), (%1, %3), OP)\
266 +        QPEL_V_LOW(%%mm1, %%mm2, %%mm3, %%mm0, %7, %8, %5, 16(%0), 24(%0), 32(%0), 64(%0), (%1, %3), OP)\
267          "add %4, %1                     \n\t"\
268 -        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %5, %6, %5, 24(%0), 32(%0), 40(%0), 56(%0), (%1), OP)\
269 -        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %5, %6, %5, 32(%0), 40(%0), 48(%0), 48(%0), (%1, %3), OP)\
270 +        QPEL_V_LOW(%%mm2, %%mm3, %%mm0, %%mm1, %7, %8, %5, 24(%0), 32(%0), 40(%0), 56(%0), (%1), OP)\
271 +        QPEL_V_LOW(%%mm3, %%mm0, %%mm1, %%mm2, %7, %8, %5, 32(%0), 40(%0), 48(%0), 48(%0), (%1, %3), OP)\
272                  \
273          "add $72, %0                    \n\t"\
274          "add %6, %1                     \n\t"\
275 @@ -2336,7 +2342,9 @@
276          " jnz 1b                        \n\t"\
277           \
278          : "+r"(temp_ptr), "+r"(dst), "+g"(count)\
279 -        : "r"((long)dstStride), "r"(2*(long)dstStride), /*"m"(ff_pw_20), "m"(ff_pw_3),*/ "m"(ROUNDER), "g"(4-6*(long)dstStride)\
280 +        : "r"((long)dstStride), "r"(2*(long)dstStride),\
281 +        "m"(ROUNDER), "g"(4-6*(long)dstStride),\
282 +        "m"(ff_pw_20), "m"(ff_pw_3)\
283          : "memory"\
284     );\
285  }\
286 @@ -2967,7 +2975,6 @@
287      double c = 2.0 / (len-1.0);
288      int n2 = len>>1;
289      long i = -n2*sizeof(int32_t);
290 -    long j =  n2*sizeof(int32_t);
291      asm volatile(
292          "movsd   %0,     %%xmm7 \n\t"
293          "movapd  %1,     %%xmm6 \n\t"
294 @@ -2985,17 +2992,18 @@
295          "movapd   %%xmm6,  %%xmm0   \n\t"\
296          "subpd    %%xmm1,  %%xmm0   \n\t"\
297          "pshufd   $0x4e,   %%xmm0, %%xmm1 \n\t"\
298 -        "cvtpi2pd (%4,%0), %%xmm2   \n\t"\
299 -        "cvtpi2pd (%5,%1), %%xmm3   \n\t"\
300 +        "cvtpi2pd (%3,%0), %%xmm2   \n\t"\
301          "mulpd    %%xmm0,  %%xmm2   \n\t"\
302 +        "movapd   %%xmm2, (%1,%0,2) \n\t"\
303 +        "negl %0\n\t"\
304 +        "cvtpi2pd (%4,%0), %%xmm3   \n\t"\
305          "mulpd    %%xmm1,  %%xmm3   \n\t"\
306 -        "movapd   %%xmm2, (%2,%0,2) \n\t"\
307 -        MOVPD"    %%xmm3, (%3,%1,2) \n\t"\
308 +        MOVPD"    %%xmm3, (%2,%0,2) \n\t"\
309          "subpd    %%xmm5,  %%xmm7   \n\t"\
310 -        "sub      $8,      %1       \n\t"\
311 +        "negl %0\n\t"\
312          "add      $8,      %0       \n\t"\
313          "jl 1b                      \n\t"\
314 -        :"+&r"(i), "+&r"(j)\
315 +        :"+&r"(i)\
316          :"r"(w_data+n2), "r"(w_data+len-2-n2),\
317           "r"(data+n2), "r"(data+len-2-n2)\
318      ); 
319  
320 Index: libavcodec/i386/simple_idct_mmx.c
321 ===================================================================
322 --- libavcodec/i386/simple_idct_mmx.c   (revision 10865)
323 +++ libavcodec/i386/simple_idct_mmx.c   (working copy)
324 @@ -363,7 +363,7 @@
325          "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
326          "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
327          "movq " #src5 ", %%mm3          \n\t" /* R7     R5      r7      r5 */\
328 -        "movq "MANGLE(wm1010)", %%mm4   \n\t"\
329 +        "movq %3, %%mm4                 \n\t"\
330          "pand %%mm0, %%mm4              \n\t"\
331          "por %%mm1, %%mm4               \n\t"\
332          "por %%mm2, %%mm4               \n\t"\
333 @@ -437,7 +437,7 @@
334          "jmp 2f                         \n\t"\
335          "1:                             \n\t"\
336          "pslld $16, %%mm0               \n\t"\
337 -        "#paddd "MANGLE(d40000)", %%mm0 \n\t"\
338 +        "#paddd %4, %%mm0               \n\t"\
339          "psrad $13, %%mm0               \n\t"\
340          "packssdw %%mm0, %%mm0          \n\t"\
341          "movq %%mm0, " #dst "           \n\t"\
342 @@ -471,7 +471,7 @@
343          "movq " #src4 ", %%mm1          \n\t" /* R6     R2      r6      r2 */\
344          "movq " #src1 ", %%mm2          \n\t" /* R3     R1      r3      r1 */\
345          "movq " #src5 ", %%mm3          \n\t" /* R7     R5      r7      r5 */\
346 -        "movq "MANGLE(wm1010)", %%mm4   \n\t"\
347 +        "movq %3, %%mm4                 \n\t"\
348          "pand %%mm0, %%mm4              \n\t"\
349          "por %%mm1, %%mm4               \n\t"\
350          "por %%mm2, %%mm4               \n\t"\
351 @@ -545,7 +545,7 @@
352          "jmp 2f                         \n\t"\
353          "1:                             \n\t"\
354          "pslld $16, %%mm0               \n\t"\
355 -        "paddd "MANGLE(d40000)", %%mm0  \n\t"\
356 +        "paddd %4, %%mm0                \n\t"\
357          "psrad $13, %%mm0               \n\t"\
358          "packssdw %%mm0, %%mm0          \n\t"\
359          "movq %%mm0, " #dst "           \n\t"\
360 @@ -1270,7 +1270,7 @@
361  */
362  
363  "9: \n\t"
364 -                :: "r" (block), "r" (temp), "r" (coeffs)
365 +                :: "r" (block), "r" (temp), "r" (coeffs), "m" (wm1010), "m"(d40000)
366                  : "%eax"
367          );
368  }
369
370 Index: libavcodec/i386/cavsdsp_mmx.c
371 ===================================================================
372 --- libavcodec/i386/cavsdsp_mmx.c       (revision 11171)
373 +++ libavcodec/i386/cavsdsp_mmx.c       (working copy)
374 @@ -23,9 +23,15 @@
375   */
376  
377  #include "dsputil.h"
378 -#include "dsputil_mmx.h"
379  #include "common.h"
380  
381 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_4 ) = 0x0004000400040004ULL;      
382 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_5 ) = 0x0005000500050005ULL;      
383 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_7 ) = 0x0007000700070007ULL;      
384 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_42) = 0x002A002A002A002AULL;      
385 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_64) = 0x0040004000400040ULL;      
386 +DECLARE_ALIGNED_8(static const uint64_t,ff_pw_96) = 0x0060006000600060ULL;
387 +
388  /*****************************************************************************
389   *
390   * inverse transform