Magellan Linux

Annotation of /trunk/libsdl/patches/libsdl-1.2.9-PIC-hermes-call-dont-jump.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (hide annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years, 1 month ago) by niro
File size: 4928 byte(s)
-import

1 niro 144 Fixes from PaX team to eliminate TEXTRELs in hermes code
2    
3     --- src/hermes/mmx_main.asm
4     +++ src/hermes/mmx_main.asm
5     @@ -10,7 +10,6 @@
6     BITS 32
7    
8     GLOBAL _ConvertMMX
9     -GLOBAL _mmxreturn
10    
11    
12     SECTION .text
13     @@ -50,9 +49,8 @@ _ConvertMMX:
14     y_loop:
15     mov ecx,[ebp+4]
16    
17     - jmp [ebp+32]
18     + call [ebp+32]
19    
20     -_mmxreturn:
21     add esi,[ebp+12]
22     add edi,[ebp+28]
23    
24     --- src/hermes/x86_main.asm
25     +++ src/hermes/x86_main.asm
26     @@ -12,7 +12,6 @@
27     BITS 32
28    
29     GLOBAL _ConvertX86
30     -GLOBAL _x86return
31    
32     GLOBAL _Hermes_X86_CPU
33    
34     @@ -54,9 +53,8 @@
35     y_loop:
36     mov ecx,[ebp+4]
37    
38     - jmp [ebp+32]
39     + call [ebp+32]
40    
41     -_x86return:
42     add esi,[ebp+12]
43     add edi,[ebp+28]
44    
45     --- src/hermes/x86p_16.asm
46     +++ src/hermes/x86p_16.asm
47     @@ -25,7 +25,6 @@ GLOBAL _ConvertX86p16_16BGR555
48     GLOBAL _ConvertX86p16_8RGB332
49    
50     EXTERN _ConvertX86
51     -EXTERN _x86return
52    
53    
54     SECTION .text
55     @@ -57,7 +56,7 @@ _ConvertX86p16_16BGR565:
56     dec ecx
57     jnz .L1
58     .L2
59     - jmp _x86return
60     + retn
61    
62     .L3 ; head
63     mov eax,edi
64     @@ -135,7 +134,7 @@ _ConvertX86p16_16BGR565:
65     add edi,BYTE 2
66    
67     .L7
68     - jmp _x86return
69     + retn
70    
71    
72    
73     @@ -164,7 +163,7 @@ _ConvertX86p16_16RGB555:
74     dec ecx
75     jnz .L1
76     .L2
77     - jmp _x86return
78     + retn
79    
80     .L3 ; head
81     mov eax,edi
82     @@ -243,7 +242,7 @@ _ConvertX86p16_16RGB555:
83     jmp SHORT .L6
84    
85     .L7 pop ebp
86     - jmp _x86return
87     + retn
88    
89    
90    
91     @@ -277,7 +276,7 @@ _ConvertX86p16_16BGR555:
92     dec ecx
93     jnz .L1
94     .L2
95     - jmp _x86return
96     + retn
97    
98     .L3 ; head
99     mov eax,edi
100     @@ -361,7 +360,7 @@ _ConvertX86p16_16BGR555:
101     add edi,BYTE 2
102    
103     .L7
104     - jmp _x86return
105     + retn
106    
107    
108    
109     @@ -394,7 +393,7 @@ _ConvertX86p16_8RGB332:
110     dec ecx
111     jnz .L1
112     .L2
113     - jmp _x86return
114     + retn
115    
116     .L3 mov eax,edi
117     and eax,BYTE 11b
118     @@ -492,5 +491,5 @@ _ConvertX86p16_8RGB332:
119     jnz .L6
120    
121     .L7 pop ebp
122     - jmp _x86return
123     + retn
124    
125     --- src/hermes/x86p_32.asm
126     +++ src/hermes/x86p_32.asm
127     @@ -23,8 +23,7 @@ GLOBAL _ConvertX86p32_16RGB555
128     GLOBAL _ConvertX86p32_16BGR555
129     GLOBAL _ConvertX86p32_8RGB332
130    
131     -EXTERN _x86return
132     -
133     +
134     SECTION .text
135    
136    
137     @@ -53,7 +52,7 @@ _ConvertX86p32_32BGR888:
138     dec ecx
139     jnz .L1
140     .L2
141     - jmp _x86return
142     + retn
143    
144     .L3 ; save ebp
145     push ebp
146     @@ -113,7 +112,7 @@ _ConvertX86p32_32BGR888:
147     jnz .L5
148    
149     .L6 pop ebp
150     - jmp _x86return
151     + retn
152    
153    
154    
155     @@ -133,7 +132,7 @@ _ConvertX86p32_32RGBA888:
156     dec ecx
157     jnz .L1
158     .L2
159     - jmp _x86return
160     + retn
161    
162     .L3 ; save ebp
163     push ebp
164     @@ -184,7 +183,7 @@ _ConvertX86p32_32RGBA888:
165     jnz .L5
166    
167     .L6 pop ebp
168     - jmp _x86return
169     + retn
170    
171    
172    
173     @@ -204,7 +203,7 @@ _ConvertX86p32_32BGRA888:
174     dec ecx
175     jnz .L1
176     .L2
177     - jmp _x86return
178     + retn
179    
180     .L3 ; save ebp
181     push ebp
182     @@ -257,7 +256,7 @@ _ConvertX86p32_32BGRA888:
183     jnz .L5
184    
185     .L6 pop ebp
186     - jmp _x86return
187     + retn
188    
189    
190    
191     @@ -282,7 +281,7 @@ _ConvertX86p32_24RGB888:
192     dec ecx
193     jnz .L1
194     .L2
195     - jmp _x86return
196     + retn
197    
198     .L3 ; head
199     mov edx,edi
200     @@ -354,7 +353,7 @@ _ConvertX86p32_24RGB888:
201     jnz .L6
202    
203     .L7 pop ebp
204     - jmp _x86return
205     + retn
206    
207    
208    
209     @@ -380,7 +379,7 @@ _ConvertX86p32_24BGR888:
210     dec ecx
211     jnz .L1
212     .L2
213     - jmp _x86return
214     + retn
215    
216     .L3 ; head
217     mov edx,edi
218     @@ -455,7 +454,7 @@ _ConvertX86p32_24BGR888:
219    
220     .L7
221     pop ebp
222     - jmp _x86return
223     + retn
224    
225    
226    
227     @@ -484,7 +483,7 @@ _ConvertX86p32_16RGB565:
228     jnz .L1
229    
230     .L2: ; End of short loop
231     - jmp _x86return
232     + retn
233    
234    
235     .L3 ; head
236     @@ -570,7 +569,7 @@ _ConvertX86p32_16RGB565:
237     add edi,BYTE 2
238    
239     .L7:
240     - jmp _x86return
241     + retn
242    
243    
244    
245     @@ -599,7 +598,7 @@ _ConvertX86p32_16BGR565:
246     dec ecx
247     jnz .L1
248     .L2
249     - jmp _x86return
250     + retn
251    
252     .L3 ; head
253     mov ebx,edi
254     @@ -684,7 +683,7 @@ _ConvertX86p32_16BGR565:
255     add edi,BYTE 2
256    
257     .L7
258     - jmp _x86return
259     + retn
260    
261    
262    
263     @@ -713,7 +712,7 @@ _ConvertX86p32_16RGB555:
264     dec ecx
265     jnz .L1
266     .L2
267     - jmp _x86return
268     + retn
269    
270     .L3 ; head
271     mov ebx,edi
272     @@ -795,7 +794,7 @@ _ConvertX86p32_16RGB555:
273     add edi,BYTE 2
274    
275     .L7
276     - jmp _x86return
277     + retn
278    
279    
280    
281     @@ -825,7 +824,7 @@ _ConvertX86p32_16BGR555:
282     dec ecx
283     jnz .L1
284     .L2
285     - jmp _x86return
286     + retn
287    
288     .L3 ; head
289     mov ebx,edi
290     @@ -910,7 +909,7 @@ _ConvertX86p32_16BGR555:
291     add edi,BYTE 2
292    
293     .L7
294     - jmp _x86return
295     + retn
296    
297    
298    
299     @@ -1040,5 +1039,5 @@ _ConvertX86p32_8RGB332:
300     jnz .L3
301    
302     .L4:
303     - jmp _x86return
304     + retn
305    
306     --- src/hermes/mmxp2_32.asm
307     +++ src/hermes/mmxp2_32.asm
308     @@ -27,8 +27,6 @@ GLOBAL _ConvertMMXpII32_16BGR565
309     GLOBAL _ConvertMMXpII32_16RGB555
310     GLOBAL _ConvertMMXpII32_16BGR555
311    
312     -EXTERN _mmxreturn
313     -
314     SECTION .data
315    
316     ALIGN 8
317     @@ -108,7 +98,7 @@ _ConvertMMXpII32_24RGB888:
318     dec ecx
319     jnz .L3
320     .L4:
321     - jmp _mmxreturn
322     + return
323    
324    
325    
326     @@ -176,7 +173,7 @@ _ConvertMMXpII32_16RGB565:
327     jnz .L3
328    
329     .L4:
330     - jmp _mmxreturn
331     + retn
332    
333    
334     _ConvertMMXpII32_16BGR565:
335     @@ -245,7 +249,7 @@ _ConvertMMXpII32_16BGR565:
336     jnz .L3
337    
338     .L4:
339     - jmp _mmxreturn
340     + retn
341    
342     _ConvertMMXpII32_16BGR555:
343    
344     @@ -380,5 +384,5 @@ _convert_bgr555_cheat:
345     jnz .L3
346    
347     .L4:
348     - jmp _mmxreturn
349     + retn
350