Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 niro 224 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