~ubuntu-branches/ubuntu/lucid/ffmpeg-extra/lucid

« back to all changes in this revision

Viewing changes to debian/patches/fpic-ftbfs-fix.patch

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2010-01-17 09:34:54 UTC
  • Revision ID: james.westby@ubuntu.com-20100117093454-nizyo2zidkw0gipk
Tags: 4:0.5+svn20090706-5ubuntu1
merge from 'ubuntu' branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
This patch fixes FTBFS issue when using -fPIC.
2
 
For inquiries about this patch, please see bug #528080.
3
 
==========================================================================
4
 
--- a/libavcodec/x86/dsputil_mmx.c
5
 
+++ b/libavcodec/x86/dsputil_mmx.c
6
 
@@ -695,14 +695,14 @@
7
 
         "punpckhdq %%mm1, %%mm1         \n\t"
8
 
         "movd  %%mm1, %3                \n\t"
9
 
 
10
 
-        : "=m" (*(uint32_t*)(dst + 0*dst_stride)),
11
 
-          "=m" (*(uint32_t*)(dst + 1*dst_stride)),
12
 
-          "=m" (*(uint32_t*)(dst + 2*dst_stride)),
13
 
-          "=m" (*(uint32_t*)(dst + 3*dst_stride))
14
 
-        :  "m" (*(uint32_t*)(src + 0*src_stride)),
15
 
-           "m" (*(uint32_t*)(src + 1*src_stride)),
16
 
-           "m" (*(uint32_t*)(src + 2*src_stride)),
17
 
-           "m" (*(uint32_t*)(src + 3*src_stride))
18
 
+        : "=r" (*(uint32_t*)(dst + 0*dst_stride)),
19
 
+          "=r" (*(uint32_t*)(dst + 1*dst_stride)),
20
 
+          "=r" (*(uint32_t*)(dst + 2*dst_stride)),
21
 
+          "=r" (*(uint32_t*)(dst + 3*dst_stride))
22
 
+        :  "r" (*(uint32_t*)(src + 0*src_stride)),
23
 
+           "r" (*(uint32_t*)(src + 1*src_stride)),
24
 
+           "r" (*(uint32_t*)(src + 2*src_stride)),
25
 
+           "r" (*(uint32_t*)(src + 3*src_stride))
26
 
     );
27
 
 }
28
 
 
29
 
--- a/libavcodec/x86/h264dsp_mmx.c
30
 
+++ b/libavcodec/x86/h264dsp_mmx.c
31
 
@@ -943,8 +943,8 @@
32
 
 \
33
 
     __asm__ volatile(\
34
 
         "pxor %%mm7, %%mm7          \n\t"\
35
 
-        "movq %5, %%mm4             \n\t"\
36
 
-        "movq %6, %%mm5             \n\t"\
37
 
+        "movq ff_pw_5, %%mm4        \n\t"\
38
 
+        "movq ff_pw_16, %%mm5       \n\t"\
39
 
         "1:                         \n\t"\
40
 
         "movd  -1(%0), %%mm1        \n\t"\
41
 
         "movd    (%0), %%mm2        \n\t"\
42
 
@@ -974,17 +974,15 @@
43
 
         "decl %2                    \n\t"\
44
 
         " jnz 1b                    \n\t"\
45
 
         : "+a"(src), "+c"(dst), "+g"(h)\
46
 
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
47
 
-        : "memory"\
48
 
+        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
49
 
     );\
50
 
 }\
51
 
 static av_noinline void OPNAME ## h264_qpel4_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
52
 
     int h=4;\
53
 
     __asm__ volatile(\
54
 
-        "pxor %%mm7, %%mm7          \n\t"\
55
 
-        "movq %0, %%mm4             \n\t"\
56
 
-        "movq %1, %%mm5             \n\t"\
57
 
-        :: "m"(ff_pw_5), "m"(ff_pw_16)\
58
 
+        "pxor %mm7, %mm7          \n\t"\
59
 
+        "movq ff_pw_5, %mm4        \n\t"\
60
 
+        "movq ff_pw_16, %mm5       \n\t"\
61
 
     );\
62
 
     do{\
63
 
     __asm__ volatile(\
64
 
@@ -1117,7 +1115,7 @@
65
 
     int h=8;\
66
 
     __asm__ volatile(\
67
 
         "pxor %%mm7, %%mm7          \n\t"\
68
 
-        "movq %5, %%mm6             \n\t"\
69
 
+        "movq ff_pw_5, %%mm6        \n\t"\
70
 
         "1:                         \n\t"\
71
 
         "movq    (%0), %%mm0        \n\t"\
72
 
         "movq   1(%0), %%mm2        \n\t"\
73
 
@@ -1151,7 +1149,7 @@
74
 
         "punpcklbw %%mm7, %%mm5     \n\t"\
75
 
         "paddw %%mm3, %%mm2         \n\t"\
76
 
         "paddw %%mm5, %%mm4         \n\t"\
77
 
-        "movq %6, %%mm5             \n\t"\
78
 
+        "movq ff_pw_16, %%mm5       \n\t"\
79
 
         "paddw %%mm5, %%mm2         \n\t"\
80
 
         "paddw %%mm5, %%mm4         \n\t"\
81
 
         "paddw %%mm2, %%mm0         \n\t"\
82
 
@@ -1165,17 +1163,15 @@
83
 
         "decl %2                    \n\t"\
84
 
         " jnz 1b                    \n\t"\
85
 
         : "+a"(src), "+c"(dst), "+g"(h)\
86
 
-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride), "m"(ff_pw_5), "m"(ff_pw_16)\
87
 
-        : "memory"\
88
 
+        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
89
 
     );\
90
 
 }\
91
 
 \
92
 
 static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
93
 
     int h=8;\
94
 
     __asm__ volatile(\
95
 
-        "pxor %%mm7, %%mm7          \n\t"\
96
 
-        "movq %0, %%mm6             \n\t"\
97
 
-        :: "m"(ff_pw_5)\
98
 
+        "pxor %mm7, %mm7          \n\t"\
99
 
+        "movq ff_pw_5, %mm6        \n\t"\
100
 
     );\
101
 
     do{\
102
 
     __asm__ volatile(\
103
 
@@ -1211,7 +1207,7 @@
104
 
         "punpcklbw %%mm7, %%mm5     \n\t"\
105
 
         "paddw %%mm3, %%mm2         \n\t"\
106
 
         "paddw %%mm5, %%mm4         \n\t"\
107
 
-        "movq %5, %%mm5             \n\t"\
108
 
+        "movq ff_pw_16, %%mm5       \n\t"\
109
 
         "paddw %%mm5, %%mm2         \n\t"\
110
 
         "paddw %%mm5, %%mm4         \n\t"\
111
 
         "paddw %%mm2, %%mm0         \n\t"\
112
 
@@ -1226,9 +1222,7 @@
113
 
         "add %4, %1                 \n\t"\
114
 
         "add %3, %2                 \n\t"\
115
 
         : "+a"(src), "+c"(dst), "+d"(src2)\
116
 
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
117
 
-          "m"(ff_pw_16)\
118
 
-        : "memory"\
119
 
+        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
120
 
     );\
121
 
     }while(--h);\
122
 
 }\
123
 
@@ -1494,8 +1488,8 @@
124
 
     int h=16;\
125
 
     __asm__ volatile(\
126
 
         "pxor %%xmm15, %%xmm15      \n\t"\
127
 
-        "movdqa %6, %%xmm14         \n\t"\
128
 
-        "movdqa %7, %%xmm13         \n\t"\
129
 
+        "movdqa ff_pw_5, %%xmm14    \n\t"\
130
 
+        "movdqa ff_pw_16, %%xmm13   \n\t"\
131
 
         "1:                         \n\t"\
132
 
         "lddqu    3(%0), %%xmm1     \n\t"\
133
 
         "lddqu   -5(%0), %%xmm7     \n\t"\
134
 
@@ -1549,9 +1543,7 @@
135
 
         "decl %3                    \n\t"\
136
 
         "jg 1b                      \n\t"\
137
 
         : "+a"(src), "+c"(dst), "+d"(src2), "+g"(h)\
138
 
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
139
 
-          "m"(ff_pw_5), "m"(ff_pw_16)\
140
 
-        : "memory"\
141
 
+        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
142
 
     );\
143
 
 }
144
 
 #else // ARCH_X86_64
145
 
@@ -1571,9 +1563,8 @@
146
 
 static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ## MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int src2Stride){\
147
 
     int h=8;\
148
 
     __asm__ volatile(\
149
 
-        "pxor %%xmm7, %%xmm7        \n\t"\
150
 
-        "movdqa %0, %%xmm6          \n\t"\
151
 
-        :: "m"(ff_pw_5)\
152
 
+        "pxor %xmm7, %xmm7        \n\t"\
153
 
+        "movdqa ff_pw_5, %xmm6     \n\t"\
154
 
     );\
155
 
     do{\
156
 
     __asm__ volatile(\
157
 
@@ -1596,7 +1587,7 @@
158
 
         "psllw   $2,     %%xmm2     \n\t"\
159
 
         "movq    (%2),   %%xmm3     \n\t"\
160
 
         "psubw   %%xmm1, %%xmm2     \n\t"\
161
 
-        "paddw   %5,     %%xmm5     \n\t"\
162
 
+        "paddw   ff_pw_16,%%xmm5    \n\t"\
163
 
         "pmullw  %%xmm6, %%xmm2     \n\t"\
164
 
         "paddw   %%xmm5, %%xmm2     \n\t"\
165
 
         "psraw   $5,     %%xmm2     \n\t"\
166
 
@@ -1607,9 +1598,7 @@
167
 
         "add %4, %1                 \n\t"\
168
 
         "add %3, %2                 \n\t"\
169
 
         : "+a"(src), "+c"(dst), "+d"(src2)\
170
 
-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
171
 
-          "m"(ff_pw_16)\
172
 
-        : "memory"\
173
 
+        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
174
 
     );\
175
 
     }while(--h);\
176
 
 }\
177
 
@@ -1619,7 +1608,7 @@
178
 
     int h=8;\
179
 
     __asm__ volatile(\
180
 
         "pxor %%xmm7, %%xmm7        \n\t"\
181
 
-        "movdqa %5, %%xmm6          \n\t"\
182
 
+        "movdqa ff_pw_5, %%xmm6     \n\t"\
183
 
         "1:                         \n\t"\
184
 
         "lddqu   -5(%0), %%xmm1     \n\t"\
185
 
         "movdqa  %%xmm1, %%xmm0     \n\t"\
186
 
@@ -1639,7 +1628,7 @@
187
 
         "paddw   %%xmm4, %%xmm1     \n\t"\
188
 
         "psllw   $2,     %%xmm2     \n\t"\
189
 
         "psubw   %%xmm1, %%xmm2     \n\t"\
190
 
-        "paddw   %6,     %%xmm5     \n\t"\
191
 
+        "paddw   ff_pw_16, %%xmm5   \n\t"\
192
 
         "pmullw  %%xmm6, %%xmm2     \n\t"\
193
 
         "paddw   %%xmm5, %%xmm2     \n\t"\
194
 
         "psraw   $5,     %%xmm2     \n\t"\
195
 
@@ -1650,9 +1639,7 @@
196
 
         "decl %2                    \n\t"\
197
 
         " jnz 1b                    \n\t"\
198
 
         : "+a"(src), "+c"(dst), "+g"(h)\
199
 
-        : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride),\
200
 
-          "m"(ff_pw_5), "m"(ff_pw_16)\
201
 
-        : "memory"\
202
 
+        : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
203
 
     );\
204
 
 }\
205
 
 static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){\
206
 
--- a/libavcodec/x86/flacdsp_mmx.c
207
 
+++ b/libavcodec/x86/flacdsp_mmx.c
208
 
@@ -89,12 +89,12 @@
209
 
                 "movsd    "MANGLE(ff_pd_1)", %%xmm1 \n\t"
210
 
                 "movsd    "MANGLE(ff_pd_1)", %%xmm2 \n\t"
211
 
                 "1:                                 \n\t"
212
 
-                "movapd   (%4,%0), %%xmm3           \n\t"
213
 
-                "movupd -8(%5,%0), %%xmm4           \n\t"
214
 
-                "movapd   (%5,%0), %%xmm5           \n\t"
215
 
+                "movapd   (%2,%0), %%xmm3           \n\t"
216
 
+                "movupd -8(%3,%0), %%xmm4           \n\t"
217
 
+                "movapd   (%3,%0), %%xmm5           \n\t"
218
 
                 "mulpd     %%xmm3, %%xmm4           \n\t"
219
 
                 "mulpd     %%xmm3, %%xmm5           \n\t"
220
 
-                "mulpd -16(%5,%0), %%xmm3           \n\t"
221
 
+                "mulpd -16(%3,%0), %%xmm3           \n\t"
222
 
                 "addpd     %%xmm4, %%xmm1           \n\t"
223
 
                 "addpd     %%xmm5, %%xmm0           \n\t"
224
 
                 "addpd     %%xmm3, %%xmm2           \n\t"
225
 
@@ -107,9 +107,9 @@
226
 
                 "addsd     %%xmm4, %%xmm1           \n\t"
227
 
                 "addsd     %%xmm5, %%xmm2           \n\t"
228
 
                 "movsd     %%xmm0, %1               \n\t"
229
 
-                "movsd     %%xmm1, %2               \n\t"
230
 
-                "movsd     %%xmm2, %3               \n\t"
231
 
-                :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]), "=m"(autoc[j+2])
232
 
+                "movsd     %%xmm1, 8%1               \n\t"
233
 
+                "movsd     %%xmm2, 16%1               \n\t"
234
 
+                :"+&r"(i), "=m"(autoc[j])
235
 
                 :"r"(data1+len), "r"(data1+len-j)
236
 
             );
237
 
         } else {
238
 
@@ -117,10 +117,10 @@
239
 
                 "movsd    "MANGLE(ff_pd_1)", %%xmm0 \n\t"
240
 
                 "movsd    "MANGLE(ff_pd_1)", %%xmm1 \n\t"
241
 
                 "1:                                 \n\t"
242
 
-                "movapd   (%3,%0), %%xmm3           \n\t"
243
 
-                "movupd -8(%4,%0), %%xmm4           \n\t"
244
 
+                "movapd   (%2,%0), %%xmm3           \n\t"
245
 
+                "movupd -8(%3,%0), %%xmm4           \n\t"
246
 
                 "mulpd     %%xmm3, %%xmm4           \n\t"
247
 
-                "mulpd    (%4,%0), %%xmm3           \n\t"
248
 
+                "mulpd    (%3,%0), %%xmm3           \n\t"
249
 
                 "addpd     %%xmm4, %%xmm1           \n\t"
250
 
                 "addpd     %%xmm3, %%xmm0           \n\t"
251
 
                 "add       $16,    %0               \n\t"
252
 
@@ -130,8 +130,8 @@
253
 
                 "addsd     %%xmm3, %%xmm0           \n\t"
254
 
                 "addsd     %%xmm4, %%xmm1           \n\t"
255
 
                 "movsd     %%xmm0, %1               \n\t"
256
 
-                "movsd     %%xmm1, %2               \n\t"
257
 
-                :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1])
258
 
+                "movsd     %%xmm1, 8%1               \n\t"
259
 
+                :"+&r"(i), "=m"(autoc[j])
260
 
                 :"r"(data1+len), "r"(data1+len-j)
261
 
             );
262
 
         }