Magellan Linux

Contents of /trunk/libmpeg3/patches/libmpeg3-1.7-textrel.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 224 - (show annotations) (download)
Sat Jun 23 13:53:28 2007 UTC (16 years, 10 months ago) by niro
File size: 10455 byte(s)
-new fixes

1 diff -urp libmpeg3-1.5.2-old/video/mmxidct.S libmpeg3-1.5.2/video/mmxidct.S
2 --- libmpeg3-1.5.2-old/video/mmxidct.S 2002-06-21 14:35:24.000000000 +0200
3 +++ libmpeg3-1.5.2/video/mmxidct.S 2005-12-22 23:46:25.000000000 +0100
4 @@ -63,12 +63,25 @@ x0:
5
6 .align 8
7 .text
8 +
9 +# undef __i686 /* gcc define gets in our way */
10 + .section .gnu.linkonce.t.__i686.get_pc_thunk.bp,"ax",@progbits
11 +.globl __i686.get_pc_thunk.bp
12 + .hidden __i686.get_pc_thunk.bp
13 + .type __i686.get_pc_thunk.bp,@function
14 +__i686.get_pc_thunk.bp:
15 + movl (%esp), %ebp
16 + ret
17 +
18 .align 4
19 .globl IDCT_mmx
20 .type IDCT_mmx, @function
21 IDCT_mmx:
22 pushl %ebp
23 - movl %esp, %ebp
24 +
25 + call __i686.get_pc_thunk.bp
26 + addl $_GLOBAL_OFFSET_TABLE_, %ebp
27 +
28 pushl %ebx
29 pushl %ecx
30 pushl %edx
31 @@ -84,8 +97,8 @@ IDCT_mmx:
32 pushl $0
33 pushl $0
34
35 - movl 8(%ebp), %esi /* source matrix */
36 - leal preSC, %ecx
37 + movl 8+13*4(%esp), %esi /* source matrix */
38 + leal preSC@GOTOFF(%ebp), %ecx
39 /* column 0: even part
40 * use V4, V12, V0, V8 to produce V22..V25
41 */
42 @@ -101,7 +114,7 @@ IDCT_mmx:
43 movq %mm1, %mm2 /* added 11/1/96 */
44 pmulhw 8*8(%esi),%mm5 /* V8 */
45 psubsw %mm0, %mm1 /* V16 */
46 - pmulhw x5a825a825a825a82, %mm1 /* 23170 ->V18 */
47 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm1 /* 23170 ->V18 */
48 paddsw %mm0, %mm2 /* V17 */
49 movq %mm2, %mm0 /* duplicate V17 */
50 psraw $1, %mm2 /* t75=t82 */
51 @@ -142,7 +155,7 @@ IDCT_mmx:
52 paddsw %mm0, %mm3 /* V29 ; free mm0 */
53 movq %mm7, %mm1 /* duplicate V26 */
54 psraw $1, %mm3 /* t91=t94 */
55 - pmulhw x539f539f539f539f,%mm7 /* V33 */
56 + pmulhw x539f539f539f539f@GOTOFF(%ebp),%mm7 /* V33 */
57 psraw $1, %mm1 /* t96 */
58 movq %mm5, %mm0 /* duplicate V2 */
59 psraw $2, %mm4 /* t85=t87 */
60 @@ -150,15 +163,15 @@ IDCT_mmx:
61 psubsw %mm4, %mm0 /* V28 ; free mm4 */
62 movq %mm0, %mm2 /* duplicate V28 */
63 psraw $1, %mm5 /* t90=t93 */
64 - pmulhw x4546454645464546,%mm0 /* V35 */
65 + pmulhw x4546454645464546@GOTOFF(%ebp),%mm0 /* V35 */
66 psraw $1, %mm2 /* t97 */
67 movq %mm5, %mm4 /* duplicate t90=t93 */
68 psubsw %mm2, %mm1 /* V32 ; free mm2 */
69 - pmulhw x61f861f861f861f8,%mm1 /* V36 */
70 + pmulhw x61f861f861f861f8@GOTOFF(%ebp),%mm1 /* V36 */
71 psllw $1, %mm7 /* t107 */
72 paddsw %mm3, %mm5 /* V31 */
73 psubsw %mm3, %mm4 /* V30 ; free mm3 */
74 - pmulhw x5a825a825a825a82,%mm4 /* V34 */
75 + pmulhw x5a825a825a825a82@GOTOFF(%ebp),%mm4 /* V34 */
76 nop
77 psubsw %mm1, %mm0 /* V38 */
78 psubsw %mm7, %mm1 /* V37 ; free mm7 */
79 @@ -225,7 +238,7 @@ IDCT_mmx:
80 psubsw %mm7, %mm1 /* V50 */
81 pmulhw 8*9(%esi), %mm5 /* V9 */
82 paddsw %mm7, %mm2 /* V51 */
83 - pmulhw x5a825a825a825a82, %mm1 /* 23170 ->V52 */
84 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm1 /* 23170 ->V52 */
85 movq %mm2, %mm6 /* duplicate V51 */
86 psraw $1, %mm2 /* t138=t144 */
87 movq %mm3, %mm4 /* duplicate V1 */
88 @@ -266,11 +279,11 @@ IDCT_mmx:
89 * even more by doing the correction step in a later stage when the number
90 * is actually multiplied by 16
91 */
92 - paddw x0005000200010001, %mm4
93 + paddw x0005000200010001@GOTOFF(%ebp), %mm4
94 psubsw %mm6, %mm3 /* V60 ; free mm6 */
95 psraw $1, %mm0 /* t154=t156 */
96 movq %mm3, %mm1 /* duplicate V60 */
97 - pmulhw x539f539f539f539f, %mm1 /* V67 */
98 + pmulhw x539f539f539f539f@GOTOFF(%ebp), %mm1 /* V67 */
99 movq %mm5, %mm6 /* duplicate V3 */
100 psraw $2, %mm4 /* t148=t150 */
101 paddsw %mm4, %mm5 /* V61 */
102 @@ -279,13 +292,13 @@ IDCT_mmx:
103 psllw $1, %mm1 /* t169 */
104 paddsw %mm0, %mm5 /* V65 -> result */
105 psubsw %mm0, %mm4 /* V64 ; free mm0 */
106 - pmulhw x5a825a825a825a82, %mm4 /* V68 */
107 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm4 /* V68 */
108 psraw $1, %mm3 /* t158 */
109 psubsw %mm6, %mm3 /* V66 */
110 movq %mm5, %mm2 /* duplicate V65 */
111 - pmulhw x61f861f861f861f8, %mm3 /* V70 */
112 + pmulhw x61f861f861f861f8@GOTOFF(%ebp), %mm3 /* V70 */
113 psllw $1, %mm6 /* t165 */
114 - pmulhw x4546454645464546, %mm6 /* V69 */
115 + pmulhw x4546454645464546@GOTOFF(%ebp), %mm6 /* V69 */
116 psraw $1, %mm2 /* t172 */
117 /* moved from next block */
118 movq 8*5(%esi), %mm0 /* V56 */
119 @@ -410,7 +423,7 @@ IDCT_mmx:
120 * movq 8*13(%esi), %mm4 tmt13
121 */
122 psubsw %mm4, %mm3 /* V134 */
123 - pmulhw x5a825a825a825a82, %mm3 /* 23170 ->V136 */
124 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm3 /* 23170 ->V136 */
125 movq 8*9(%esi), %mm6 /* tmt9 */
126 paddsw %mm4, %mm5 /* V135 ; mm4 free */
127 movq %mm0, %mm4 /* duplicate tmt1 */
128 @@ -439,17 +452,17 @@ IDCT_mmx:
129 psubsw %mm7, %mm0 /* V144 */
130 movq %mm0, %mm3 /* duplicate V144 */
131 paddsw %mm7, %mm2 /* V147 ; free mm7 */
132 - pmulhw x539f539f539f539f, %mm0 /* 21407-> V151 */
133 + pmulhw x539f539f539f539f@GOTOFF(%ebp), %mm0 /* 21407-> V151 */
134 movq %mm1, %mm7 /* duplicate tmt3 */
135 paddsw %mm5, %mm7 /* V145 */
136 psubsw %mm5, %mm1 /* V146 ; free mm5 */
137 psubsw %mm1, %mm3 /* V150 */
138 movq %mm7, %mm5 /* duplicate V145 */
139 - pmulhw x4546454645464546, %mm1 /* 17734-> V153 */
140 + pmulhw x4546454645464546@GOTOFF(%ebp), %mm1 /* 17734-> V153 */
141 psubsw %mm2, %mm5 /* V148 */
142 - pmulhw x61f861f861f861f8, %mm3 /* 25080-> V154 */
143 + pmulhw x61f861f861f861f8@GOTOFF(%ebp), %mm3 /* 25080-> V154 */
144 psllw $2, %mm0 /* t311 */
145 - pmulhw x5a825a825a825a82, %mm5 /* 23170-> V152 */
146 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm5 /* 23170-> V152 */
147 paddsw %mm2, %mm7 /* V149 ; free mm2 */
148 psllw $1, %mm1 /* t313 */
149 nop /* without the nop - freeze here for one clock */
150 @@ -557,15 +570,15 @@ IDCT_mmx:
151 paddsw %mm4, %mm3 /* V113 ; free mm4 */
152 movq %mm0, %mm4 /* duplicate V110 */
153 paddsw %mm1, %mm2 /* V111 */
154 - pmulhw x539f539f539f539f, %mm0 /* 21407-> V117 */
155 + pmulhw x539f539f539f539f@GOTOFF(%ebp), %mm0 /* 21407-> V117 */
156 psubsw %mm1, %mm5 /* V112 ; free mm1 */
157 psubsw %mm5, %mm4 /* V116 */
158 movq %mm2, %mm1 /* duplicate V111 */
159 - pmulhw x4546454645464546, %mm5 /* 17734-> V119 */
160 + pmulhw x4546454645464546@GOTOFF(%ebp), %mm5 /* 17734-> V119 */
161 psubsw %mm3, %mm2 /* V114 */
162 - pmulhw x61f861f861f861f8, %mm4 /* 25080-> V120 */
163 + pmulhw x61f861f861f861f8@GOTOFF(%ebp), %mm4 /* 25080-> V120 */
164 paddsw %mm3, %mm1 /* V115 ; free mm3 */
165 - pmulhw x5a825a825a825a82, %mm2 /* 23170-> V118 */
166 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm2 /* 23170-> V118 */
167 psllw $2, %mm0 /* t266 */
168 movq %mm1, (%esi) /* save V115 */
169 psllw $1, %mm5 /* t268 */
170 @@ -583,7 +596,7 @@ IDCT_mmx:
171 movq %mm6, %mm3 /* duplicate tmt4 */
172 psubsw %mm0, %mm6 /* V100 */
173 paddsw %mm0, %mm3 /* V101 ; free mm0 */
174 - pmulhw x5a825a825a825a82, %mm6 /* 23170 ->V102 */
175 + pmulhw x5a825a825a825a82@GOTOFF(%ebp), %mm6 /* 23170 ->V102 */
176 movq %mm7, %mm5 /* duplicate tmt0 */
177 movq 8*8(%esi), %mm1 /* tmt8 */
178 paddsw %mm1, %mm7 /* V103 */
179 @@ -667,9 +680,8 @@ IDCT_mmx:
180 popl %edx
181 popl %ecx
182 popl %ebx
183 - movl %ebp, %esp
184 popl %ebp
185
186 ret
187 .Lfe1:
188 .size IDCT_mmx,.Lfe1-IDCT_mmx
189 diff -urp libmpeg3-1.5.2-old/video/reconmmx.s libmpeg3-1.5.2/video/reconmmx.s
190 --- libmpeg3-1.5.2-old/video/reconmmx.s 2002-06-21 14:35:24.000000000 +0200
191 +++ libmpeg3-1.5.2/video/reconmmx.s 2005-12-22 23:53:17.000000000 +0100
192 @@ -32,18 +32,28 @@ global add_block_mmx
193 global set_block_mmx
194
195
196 +extern _GLOBAL_OFFSET_TABLE_
197 +get_pc.bp:
198 + mov ebp, [esp]
199 + retn
200 +
201 align 16
202 rech_mmx:
203 push esi
204 push edi
205 push ecx
206 push ebx
207 + push ebp
208 +
209 + call get_pc.bp
210 + add ebp, _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc
211 +
212 mov esi, [esp+source]
213 mov edi, [esp+dest]
214 mov ecx, [esp+h]
215 mov ebx, [esp+lx2]
216 - movq mm5, [MASK_AND]
217 - movq mm6, [ADD_1]
218 + movq mm5, [ebp + MASK_AND wrt ..gotoff]
219 + movq mm6, [ebp + ADD_1 wrt ..gotoff]
220 .rech1:
221 movq mm0,[esi]
222 movq mm1,[esi+1]
223 @@ -68,6 +78,7 @@ rech_mmx:
224 dec ecx
225 jnz .rech1
226 emms
227 + pop ebp
228 pop ebx
229 pop ecx
230 pop edi
231 @@ -80,13 +91,18 @@ rechc_mmx:
232 push edi
233 push ecx
234 push ebx
235 + push ebp
236 +
237 + call get_pc.bp
238 + add ebp, _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc
239 +
240 ; sub esp, LocalFrameSize
241 mov esi, [esp+source]
242 mov edi, [esp+dest]
243 mov ecx, [esp+h]
244 mov ebx, [esp+lx2]
245 - movq mm5, [MASK_AND]
246 - movq mm6, [ADD_1]
247 + movq mm5, [ebp + MASK_AND wrt ..gotoff]
248 + movq mm6, [ebp + ADD_1 wrt ..gotoff]
249 .rechc1:
250 movq mm0,[esi]
251 movq mm1,[esi+1]
252 @@ -103,6 +119,7 @@ rechc_mmx:
253 jnz .rechc1
254 emms
255 ; add esp, LocalFrameSize
256 + pop ebp
257 pop ebx
258 pop ecx
259 pop edi
260 @@ -125,13 +142,18 @@ recva_mmx:
261 push ecx
262 push ebx
263 push edx
264 + push ebp
265 +
266 + call get_pc.bp
267 + add ebp, _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc
268 +
269 mov esi, [esp+source]
270 mov edi, [esp+dest]
271 mov ecx, [esp+h]
272 mov ebx, [esp+lx2]
273 mov edx, [esp+lx]
274 - movq mm7, [MASK_AND]
275 - movq mm6, [ADD_1]
276 + movq mm7, [ebp + MASK_AND wrt ..gotoff]
277 + movq mm6, [ebp + ADD_1 wrt ..gotoff]
278 .recva1:
279 movq mm0,[esi]
280 movq mm1,[esi+edx]
281 @@ -170,6 +192,7 @@ recva_mmx:
282 dec ecx
283 jnz near .recva1
284 emms
285 + pop ebp
286 pop edx
287 pop ebx
288 pop ecx
289 @@ -184,13 +207,18 @@ recvac_mmx:
290 push ecx
291 push ebx
292 push edx
293 + push ebp
294 +
295 + call get_pc.bp
296 + add ebp, _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc
297 +
298 mov esi, [esp+source]
299 mov edi, [esp+dest]
300 mov ecx, [esp+h]
301 mov ebx, [esp+lx2]
302 mov edx, [esp+lx]
303 - movq mm5, [MASK_AND]
304 - movq mm6, [ADD_1]
305 + movq mm5, [ebp + MASK_AND wrt ..gotoff]
306 + movq mm6, [ebp + ADD_1 wrt ..gotoff]
307 .recvac1:
308 movq mm0,[esi]
309 movq mm1,[esi+edx]
310 @@ -213,6 +241,7 @@ recvac_mmx:
311 dec ecx
312 jnz .recvac1
313 emms
314 + pop ebp
315 pop edx
316 pop ebx
317 pop ecx
318 @@ -269,10 +298,15 @@ set_block_mmx:
319 push ecx
320 push ebx
321 push edx
322 + push ebp
323 +
324 + call get_pc.bp
325 + add ebp, _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc
326 +
327 mov esi, [esp+bp]
328 mov edi, [esp+rfp]
329 mov ebx, [esp+iincr]
330 - movq mm7, [PLUS_128]
331 + movq mm7, [ebp + PLUS_128 wrt ..gotoff]
332 %rep 4
333 movq mm0, [esi]
334 movq mm1, [esi+8]
335 @@ -291,6 +325,7 @@ set_block_mmx:
336 add edi, ebx
337 %endrep
338 emms
339 + pop ebp
340 pop edx
341 pop ebx
342 pop ecx