Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 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