1 --- SDL_gfx-2.0.8/SDL_imageFilter.c.orig 2002-02-10 03:51:21.000000000 +0100
2 +++ SDL_gfx-2.0.8/SDL_imageFilter.c 2003-08-05 21:56:40.000000000 +0200
4 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
5 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
6 ".align 16 \n\t" // 16 byte allignment of the loop entry
7 - ".L1010: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
8 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
9 "paddusb (%%ebx), %%mm1 \n\t" // mm1=Src1+Src2 (add 8 bytes with saturation)
10 "movq %%mm1, (%%edi) \n\t" // store result in Dest
11 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
12 "add $8, %%ebx \n\t" // register pointers by 8
13 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
14 - "jnz .L1010 \n\t" // check loop termination, proceed if required
15 + "jnz 1b \n\t" // check loop termination, proceed if required
16 "emms \n\t" // exit MMX state
17 "popa \n\t":"=m" (Dest) // %0
20 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
21 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
22 ".align 16 \n\t" // 16 byte allignment of the loop entry
23 - ".L21011: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
24 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
25 "movq (%%ebx), %%mm2 \n\t" // load 8 bytes from Src2 into mm2
26 // --- Byte shift via Word shift ---
27 "psrlw $1, %%mm1 \n\t" // shift 4 WORDS of mm1 1 bit to the right
29 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
30 "add $8, %%ebx \n\t" // register pointers by 8
31 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
32 - "jnz .L21011 \n\t" // check loop termination, proceed if required
33 + "jnz 1b \n\t" // check loop termination, proceed if required
34 "emms \n\t" // exit MMX state
35 "popa \n\t":"=m" (Dest) // %0
38 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
39 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
40 ".align 16 \n\t" // 16 byte allignment of the loop entry
41 - ".L1012: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
42 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
43 "psubusb (%%ebx), %%mm1 \n\t" // mm1=Src1-Src2 (sub 8 bytes with saturation)
44 "movq %%mm1, (%%edi) \n\t" // store result in Dest
45 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
46 "add $8, %%ebx \n\t" // register pointers by 8
47 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
48 - "jnz .L1012 \n\t" // check loop termination, proceed if required
49 + "jnz 1b \n\t" // check loop termination, proceed if required
50 "emms \n\t" // exit MMX state
51 "popa \n\t":"=m" (Dest) // %0
54 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
55 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
56 ".align 16 \n\t" // 16 byte allignment of the loop entry
57 - ".L1013: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
58 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
59 "movq (%%ebx), %%mm2 \n\t" // load 8 bytes from Src2 into mm2
60 "psubusb (%%ebx), %%mm1 \n\t" // mm1=Src1-Src2 (sub 8 bytes with saturation)
61 "psubusb (%%eax), %%mm2 \n\t" // mm2=Src2-Src1 (sub 8 bytes with saturation)
63 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
64 "add $8, %%ebx \n\t" // register pointers by 8
65 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
66 - "jnz .L1013 \n\t" // check loop termination, proceed if required
67 + "jnz 1b \n\t" // check loop termination, proceed if required
68 "emms \n\t" // exit MMX state
69 "popa \n\t":"=m" (Dest) // %0
72 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
73 "pxor %%mm0, %%mm0 \n\t" // zero mm0 register
74 ".align 16 \n\t" // 16 byte allignment of the loop entry
75 - ".L1014: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
76 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
77 "movq (%%ebx), %%mm3 \n\t" // load 8 bytes from Src2 into mm3
78 "movq %%mm1, %%mm2 \n\t" // copy mm1 into mm2
79 "movq %%mm3, %%mm4 \n\t" // copy mm3 into mm4
81 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
82 "add $8, %%ebx \n\t" // register pointers by 8
83 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
84 - "jnz .L1014 \n\t" // check loop termination, proceed if required
85 + "jnz 1b \n\t" // check loop termination, proceed if required
86 "emms \n\t" // exit MMX state
87 "popa \n\t":"=m" (Dest) // %0
90 "mov %0, %%edi \n\t" // load Dest address into edi
91 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
92 ".align 16 \n\t" // 16 byte allignment of the loop entry
93 - ".L10141: \n\t" "mov (%%edx), %%al \n\t" // load a byte from Src1
94 + "1: \n\t" "mov (%%edx), %%al \n\t" // load a byte from Src1
95 "mulb (%%esi) \n\t" // mul with a byte from Src2
96 - ".L10142: \n\t" "mov %%al, (%%edi) \n\t" // move a byte result to Dest
97 + "mov %%al, (%%edi) \n\t" // move a byte result to Dest
98 "inc %%edx \n\t" // increment Src1, Src2, Dest
99 "inc %%esi \n\t" // pointer registers by one
100 "inc %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
101 - "jnz .L10141 \n\t" // check loop termination, proceed if required
102 + "jnz 1b \n\t" // check loop termination, proceed if required
103 "popa \n\t":"=m" (Dest) // %0
107 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
108 "pxor %%mm0, %%mm0 \n\t" // zero mm0 register
109 ".align 16 \n\t" // 16 byte allignment of the loop entry
110 - ".L1015: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
111 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
112 "movq (%%ebx), %%mm3 \n\t" // load 8 bytes from Src2 into mm3
113 "movq %%mm1, %%mm2 \n\t" // copy mm1 into mm2
114 "movq %%mm3, %%mm4 \n\t" // copy mm3 into mm4
116 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
117 "add $8, %%ebx \n\t" // register pointers by 8
118 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
119 - "jnz .L1015 \n\t" // check loop termination, proceed if required
120 + "jnz 1b \n\t" // check loop termination, proceed if required
121 "emms \n\t" // exit MMX state
122 "popa \n\t":"=m" (Dest) // %0
125 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
126 "pxor %%mm0, %%mm0 \n\t" // zero mm0 register
127 ".align 16 \n\t" // 16 byte allignment of the loop entry
128 - ".L1016: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
129 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
130 "movq (%%ebx), %%mm3 \n\t" // load 8 bytes from Src2 into mm3
131 "movq %%mm1, %%mm2 \n\t" // copy mm1 into mm2
132 "movq %%mm3, %%mm4 \n\t" // copy mm3 into mm4
134 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
135 "add $8, %%ebx \n\t" // register pointers by 8
136 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
137 - "jnz .L1016 \n\t" // check loop termination, proceed if required
138 + "jnz 1b \n\t" // check loop termination, proceed if required
139 "emms \n\t" // exit MMX state
140 "popa \n\t":"=m" (Dest) // %0
142 @@ -715,13 +715,13 @@
143 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
144 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
145 ".align 16 \n\t" // 16 byte allignment of the loop entry
146 - ".L1017: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
147 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
148 "pand (%%ebx), %%mm1 \n\t" // mm1=Src1&Src2
149 "movq %%mm1, (%%edi) \n\t" // store result in Dest
150 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
151 "add $8, %%ebx \n\t" // register pointers by 8
152 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
153 - "jnz .L1017 \n\t" // check loop termination, proceed if required
154 + "jnz 1b \n\t" // check loop termination, proceed if required
155 "emms \n\t" // exit MMX state
156 "popa \n\t":"=m" (Dest) // %0
158 @@ -787,13 +787,13 @@
159 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
160 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
161 ".align 16 \n\t" // 16 byte allignment of the loop entry
162 - ".L91017: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
163 + "1: \n\t" "movq (%%eax), %%mm1 \n\t" // load 8 bytes from Src1 into mm1
164 "por (%%ebx), %%mm1 \n\t" // mm1=Src1|Src2
165 "movq %%mm1, (%%edi) \n\t" // store result in Dest
166 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
167 "add $8, %%ebx \n\t" // register pointers by 8
168 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
169 - "jnz .L91017 \n\t" // check loop termination, proceed if required
170 + "jnz 1b \n\t" // check loop termination, proceed if required
171 "emms \n\t" // exit MMX state
172 "popa \n\t":"=m" (Dest) // %0
174 @@ -855,17 +855,17 @@
175 "mov %0, %%edi \n\t" // load Dest address into edi
176 "mov %3, %%ecx \n\t" // load loop counter (SIZE) into ecx
177 ".align 16 \n\t" // 16 byte allignment of the loop entry
178 - ".L10191: \n\t" "mov (%%esi), %%bl \n\t" // load a byte from Src2
179 + "1: \n\t" "mov (%%esi), %%bl \n\t" // load a byte from Src2
180 "cmp $0, %%bl \n\t" // check if it zero
181 - "jnz .L10192 \n\t" "movb $255, (%%edi) \n\t" // division by zero = 255 !!!
182 - "jmp .L10193 \n\t" ".L10192: \n\t" "xor %%ah, %%ah \n\t" // prepare AX, zero AH register
183 + "jnz 2f \n\t" "movb $255, (%%edi) \n\t" // division by zero = 255 !!!
184 + "jmp 3f \n\t" "2: \n\t" "xor %%ah, %%ah \n\t" // prepare AX, zero AH register
185 "mov (%%edx), %%al \n\t" // load a byte from Src1 into AL
186 "div %%bl \n\t" // divide AL by BL
187 "mov %%al, (%%edi) \n\t" // move a byte result to Dest
188 - ".L10193: \n\t" "inc %%edx \n\t" // increment Src1, Src2, Dest
189 + "3: \n\t" "inc %%edx \n\t" // increment Src1, Src2, Dest
190 "inc %%esi \n\t" // pointer registers by one
191 "inc %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
192 - "jnz .L10191 \n\t" // check loop termination, proceed if required
193 + "jnz 1b \n\t" // check loop termination, proceed if required
194 "popa \n\t":"=m" (Dest) // %0
197 @@ -902,12 +902,12 @@
198 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
199 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
200 ".align 16 \n\t" // 16 byte allignment of the loop entry
201 - ".L91117: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into mm1
202 + "1: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into mm1
203 "pxor %%mm1, %%mm0 \n\t" // negate mm0 by xoring with mm1
204 "movq %%mm0, (%%edi) \n\t" // store result in Dest
205 "add $8, %%eax \n\t" // increase Src1, Src2 and Dest
206 "add $8, %%edi \n\t" "dec %%ecx \n\t" // decrease loop counter
207 - "jnz .L91117 \n\t" // check loop termination, proceed if required
208 + "jnz 1b \n\t" // check loop termination, proceed if required
209 "emms \n\t" // exit MMX state
210 "popa \n\t":"=m" (Dest) // %0
212 @@ -975,13 +975,13 @@
213 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
214 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
215 ".align 16 \n\t" // 16 byte allignment of the loop entry
216 - ".L1021: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
217 + "1: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
218 "paddusb %%mm1, %%mm0 \n\t" // MM0=SrcDest+C (add 8 bytes with saturation)
219 "movq %%mm0, (%%edi) \n\t" // store result in Dest
220 "add $8, %%eax \n\t" // increase Dest register pointer by 8
221 "add $8, %%edi \n\t" // increase Dest register pointer by 8
222 "dec %%ecx \n\t" // decrease loop counter
223 - "jnz .L1021 \n\t" // check loop termination, proceed if required
224 + "jnz 1b \n\t" // check loop termination, proceed if required
225 "emms \n\t" // exit MMX state
226 "popa \n\t":"=m" (Dest) // %0
228 @@ -1059,7 +1059,7 @@
229 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
230 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
231 ".align 16 \n\t" // 16 byte allignment of the loop entry
232 - ".L1022: \n\t" "movq (%%eax), %%mm2 \n\t" // load 8 bytes from Src1 into MM2
233 + "1: \n\t" "movq (%%eax), %%mm2 \n\t" // load 8 bytes from Src1 into MM2
234 "psrlw $1, %%mm2 \n\t" // shift 4 WORDS of MM2 1 bit to the right
235 // "pand %%mm0, %%mm2 \n\t" // apply Mask to 8 BYTES of MM2
236 ".byte 0x0f, 0xdb, 0xd0 \n\t" "paddusb %%mm1, %%mm2 \n\t" // MM2=SrcDest+C (add 8 bytes with saturation)
237 @@ -1067,7 +1067,7 @@
238 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
239 "add $8, %%edi \n\t" // increase Dest register pointer by 8
240 "dec %%ecx \n\t" // decrease loop counter
241 - "jnz .L1022 \n\t" // check loop termination, proceed if required
242 + "jnz 1b \n\t" // check loop termination, proceed if required
243 "emms \n\t" // exit MMX state
244 "popa \n\t":"=m" (Dest) // %0
246 @@ -1146,13 +1146,13 @@
247 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
248 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
249 ".align 16 \n\t" // 16 byte allignment of the loop entry
250 - ".L1023: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
251 + "1: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
252 "psubusb %%mm1, %%mm0 \n\t" // MM0=SrcDest+C (add 8 bytes with saturation)
253 "movq %%mm0, (%%edi) \n\t" // store result in SrcDest
254 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
255 "add $8, %%edi \n\t" // increase Dest register pointer by 8
256 "dec %%ecx \n\t" // decrease loop counter
257 - "jnz .L1023 \n\t" // check loop termination, proceed if required
258 + "jnz 1b \n\t" // check loop termination, proceed if required
259 "emms \n\t" // exit MMX state
260 "popa \n\t":"=m" (Dest) // %0
262 @@ -1221,25 +1221,25 @@
263 "mov %3, %%cl \n\t" // load loop counter (N) into CL
264 "movd %%ecx, %%mm3 \n\t" // copy (N) into MM3
265 "pcmpeqb %%mm1, %%mm1 \n\t" // generate all 1's in mm1
266 - ".L10240: \n\t" // ** Prepare proper bit-Mask in MM1 **
267 + "1: \n\t" // ** Prepare proper bit-Mask in MM1 **
268 "psrlw $1, %%mm1 \n\t" // shift 4 WORDS of MM1 1 bit to the right
269 // "pand %%mm0, %%mm1 \n\t" // apply Mask to 8 BYTES of MM1
270 ".byte 0x0f, 0xdb, 0xc8 \n\t" "dec %%cl \n\t" // decrease loop counter
271 - "jnz .L10240 \n\t" // check loop termination, proceed if required
272 + "jnz 1b \n\t" // check loop termination, proceed if required
273 // ** Shift all bytes of the image **
274 "mov %1, %%eax \n\t" // load Src1 address into eax
275 "mov %0, %%edi \n\t" // load Dest address into edi
276 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
277 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
278 ".align 16 \n\t" // 16 byte allignment of the loop entry
279 - ".L10241: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
280 + "2: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
281 "psrlw %%mm3, %%mm0 \n\t" // shift 4 WORDS of MM0 (N) bits to the right
282 // "pand %%mm1, %%mm0 \n\t" // apply proper bit-Mask to 8 BYTES of MM0
283 ".byte 0x0f, 0xdb, 0xc1 \n\t" "movq %%mm0, (%%edi) \n\t" // store result in SrcDest
284 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
285 "add $8, %%edi \n\t" // increase Dest register pointer by 8
286 "dec %%ecx \n\t" // decrease loop counter
287 - "jnz .L10241 \n\t" // check loop termination, proceed if required
288 + "jnz 2b \n\t" // check loop termination, proceed if required
289 "emms \n\t" // exit MMX state
290 "popa \n\t":"=m" (Dest) // %0
292 @@ -1318,8 +1318,8 @@
293 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
294 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
295 "cmp $128, %%al \n\t" // if (C <= 128) execute more efficient code
296 - "jg .L10251 \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
297 - ".L10250: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
298 + "jg 1f \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
299 + "2: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
300 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
301 "punpcklbw %%mm0, %%mm3 \n\t" // unpack low bytes of SrcDest into words
302 "punpckhbw %%mm0, %%mm4 \n\t" // unpack high bytes of SrcDest into words
303 @@ -1330,9 +1330,9 @@
304 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
305 "add $8, %%edi \n\t" // increase Dest register pointer by 8
306 "dec %%ecx \n\t" // decrease loop counter
307 - "jnz .L10250 \n\t" // check loop termination, proceed if required
308 - "jmp .L10252 \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
309 - ".L10251: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
310 + "jnz 2b \n\t" // check loop termination, proceed if required
311 + "jmp 3f \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
312 + "1: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
313 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
314 "punpcklbw %%mm0, %%mm3 \n\t" // unpack low bytes of SrcDest into words
315 "punpckhbw %%mm0, %%mm4 \n\t" // unpack high bytes of SrcDest into words
316 @@ -1352,8 +1352,8 @@
317 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
318 "add $8, %%edi \n\t" // increase Dest register pointer by 8
319 "dec %%ecx \n\t" // decrease loop counter
320 - "jnz .L10251 \n\t" // check loop termination, proceed if required
321 - ".L10252: \n\t" "emms \n\t" // exit MMX state
322 + "jnz 1b \n\t" // check loop termination, proceed if required
323 + "3: \n\t" "emms \n\t" // exit MMX state
324 "popa \n\t":"=m" (Dest) // %0
327 @@ -1433,7 +1433,7 @@
328 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
329 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
330 ".align 16 \n\t" // 16 byte allignment of the loop entry
331 - ".L1026: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
332 + "1: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
333 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
334 "punpcklbw %%mm0, %%mm3 \n\t" // unpack low bytes of SrcDest into words
335 "punpckhbw %%mm0, %%mm4 \n\t" // unpack high bytes of SrcDest into words
336 @@ -1446,7 +1446,7 @@
337 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
338 "add $8, %%edi \n\t" // increase Dest register pointer by 8
339 "dec %%ecx \n\t" // decrease loop counter
340 - "jnz .L1026 \n\t" // check loop termination, proceed if required
341 + "jnz 1b \n\t" // check loop termination, proceed if required
342 "emms \n\t" // exit MMX state
343 "popa \n\t":"=m" (Dest) // %0
345 @@ -1521,25 +1521,25 @@
346 "mov %3, %%cl \n\t" // load loop counter (N) into CL
347 "movd %%ecx, %%mm3 \n\t" // copy (N) into MM3
348 "pcmpeqb %%mm1, %%mm1 \n\t" // generate all 1's in mm1
349 - ".L10270: \n\t" // ** Prepare proper bit-Mask in MM1 **
350 + "1: \n\t" // ** Prepare proper bit-Mask in MM1 **
351 "psllw $1, %%mm1 \n\t" // shift 4 WORDS of MM1 1 bit to the left
352 // "pand %%mm0, %%mm1 \n\t" // apply Mask to 8 BYTES of MM1
353 ".byte 0x0f, 0xdb, 0xc8 \n\t" "dec %%cl \n\t" // decrease loop counter
354 - "jnz .L10270 \n\t" // check loop termination, proceed if required
355 + "jnz 1b \n\t" // check loop termination, proceed if required
356 // ** Shift all bytes of the image **
357 "mov %1, %%eax \n\t" // load Src1 address into eax
358 "mov %0, %%edi \n\t" // load SrcDest address into edi
359 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
360 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
361 ".align 16 \n\t" // 16 byte allignment of the loop entry
362 - ".L10271: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
363 + "2: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
364 "psllw %%mm3, %%mm0 \n\t" // shift 4 WORDS of MM0 (N) bits to the left
365 // "pand %%mm1, %%mm0 \n\t" // apply proper bit-Mask to 8 BYTES of MM0
366 ".byte 0x0f, 0xdb, 0xc1 \n\t" "movq %%mm0, (%%edi) \n\t" // store result in Dest
367 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
368 "add $8, %%edi \n\t" // increase Dest register pointer by 8
369 "dec %%ecx \n\t" // decrease loop counter
370 - "jnz .L10271 \n\t" // check loop termination, proceed if required
371 + "jnz 2b \n\t" // check loop termination, proceed if required
372 "emms \n\t" // exit MMX state
373 "popa \n\t":"=m" (Dest) // %0
375 @@ -1610,8 +1610,8 @@
376 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
377 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
378 "cmp $7, %%al \n\t" // if (N <= 7) execute more efficient code
379 - "jg .L10281 \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
380 - ".L10280: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
381 + "jg 1f \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
382 + "2: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
383 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
384 "punpcklbw %%mm0, %%mm3 \n\t" // unpack low bytes of SrcDest into words
385 "punpckhbw %%mm0, %%mm4 \n\t" // unpack high bytes of SrcDest into words
386 @@ -1622,9 +1622,9 @@
387 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
388 "add $8, %%edi \n\t" // increase Dest register pointer by 8
389 "dec %%ecx \n\t" // decrease loop counter
390 - "jnz .L10280 \n\t" // check loop termination, proceed if required
391 - "jmp .L10282 \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
392 - ".L10281: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
393 + "jnz 2b \n\t" // check loop termination, proceed if required
394 + "jmp 3f \n\t" ".align 16 \n\t" // 16 byte allignment of the loop entry
395 + "1: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
396 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
397 "punpcklbw %%mm0, %%mm3 \n\t" // unpack low bytes of SrcDest into words
398 "punpckhbw %%mm0, %%mm4 \n\t" // unpack high bytes of SrcDest into words
399 @@ -1644,8 +1644,8 @@
400 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
401 "add $8, %%edi \n\t" // increase Dest register pointer by 8
402 "dec %%ecx \n\t" // decrease loop counter
403 - "jnz .L10281 \n\t" // check loop termination, proceed if required
404 - ".L10282: \n\t" "emms \n\t" // exit MMX state
405 + "jnz 1b \n\t" // check loop termination, proceed if required
406 + "3: \n\t" "emms \n\t" // exit MMX state
407 "popa \n\t":"=m" (Dest) // %0
410 @@ -1724,14 +1724,14 @@
411 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
412 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
413 ".align 16 \n\t" // 16 byte alignment of the loop entry
414 - ".L1029: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
415 + "1: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from SrcDest into MM0
416 "paddusb %%mm2, %%mm0 \n\t" // MM0=SrcDest+(0xFF-T) (add 8 bytes with saturation)
417 "pcmpeqb %%mm1, %%mm0 \n\t" // binarize 255:0, comparing to 255
418 "movq %%mm0, (%%edi) \n\t" // store result in SrcDest
419 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
420 "add $8, %%edi \n\t" // increase Dest register pointer by 8
421 "dec %%ecx \n\t" // decrease loop counter
422 - "jnz .L1029 \n\t" // check loop termination, proceed if required
423 + "jnz 1b \n\t" // check loop termination, proceed if required
424 "emms \n\t" // exit MMX state
425 "popa \n\t":"=m" (Dest) // %0
427 @@ -1814,7 +1814,7 @@
428 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
429 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
430 ".align 16 \n\t" // 16 byte allignment of the loop entry
431 - ".L1030: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
432 + "1: \n\t" "movq (%%eax), %%mm0 \n\t" // load 8 bytes from Src1 into MM0
433 "paddusb %%mm1, %%mm0 \n\t" // MM0=SrcDest+(0xFF-Tmax)
434 "psubusb %%mm7, %%mm0 \n\t" // MM0=MM0-(0xFF-Tmax+Tmin)
435 "paddusb %%mm5, %%mm0 \n\t" // MM0=MM0+Tmin
436 @@ -1822,7 +1822,7 @@
437 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
438 "add $8, %%edi \n\t" // increase Dest register pointer by 8
439 "dec %%ecx \n\t" // decrease loop counter
440 - "jnz .L1030 \n\t" // check loop termination, proceed if required
441 + "jnz 1b \n\t" // check loop termination, proceed if required
442 "emms \n\t" // exit MMX state
443 "popa \n\t":"=m" (Dest) // %0
445 @@ -1890,11 +1890,11 @@
446 "mov %4, %%bx \n\t" // load Cmax in BX
447 "sub %5, %%ax \n\t" // AX = Nmax - Nmin
448 "sub %3, %%bx \n\t" // BX = Cmax - Cmin
449 - "jz .L10311 \n\t" // check division by zero
450 + "jz 1f \n\t" // check division by zero
451 "xor %%dx, %%dx \n\t" // prepare for division, zero DX
452 "div %%bx \n\t" // AX = AX/BX
453 - "jmp .L10312 \n\t" ".L10311: \n\t" "mov $255, %%ax \n\t" // if div by zero, assume result max. byte value
454 - ".L10312: \n\t" // ** Duplicate AX in 4 words of MM0 **
455 + "jmp 2f \n\t" "1: \n\t" "mov $255, %%ax \n\t" // if div by zero, assume result max. byte value
456 + "2: \n\t" // ** Duplicate AX in 4 words of MM0 **
457 "mov %%ax, %%bx \n\t" // copy AX into BX
458 "shl $16, %%eax \n\t" // shift 2 bytes of EAX left
459 "mov %%bx, %%ax \n\t" // copy BX into AX
460 @@ -1923,7 +1923,7 @@
461 "mov %2, %%ecx \n\t" // load loop counter (SIZE) into ecx
462 "shr $3, %%ecx \n\t" // counter/8 (MMX loads 8 bytes at a time)
463 ".align 16 \n\t" // 16 byte allignment of the loop entry
464 - ".L1031: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
465 + "3: \n\t" "movq (%%eax), %%mm3 \n\t" // load 8 bytes from Src1 into MM3
466 "movq %%mm3, %%mm4 \n\t" // copy MM3 into MM4
467 "punpcklbw %%mm7, %%mm3 \n\t" // unpack low bytes of SrcDest into words
468 "punpckhbw %%mm7, %%mm4 \n\t" // unpack high bytes of SrcDest into words
469 @@ -1947,7 +1947,7 @@
470 "add $8, %%eax \n\t" // increase Src1 register pointer by 8
471 "add $8, %%edi \n\t" // increase Dest register pointer by 8
472 "dec %%ecx \n\t" // decrease loop counter
473 - "jnz .L1031 \n\t" // check loop termination, proceed if required
474 + "jnz 3b \n\t" // check loop termination, proceed if required
475 "emms \n\t" // exit MMX state
476 "popa \n\t":"=m" (Dest) // %0
478 @@ -2041,10 +2041,10 @@
479 "mov %2, %%edx \n\t" // initialize ROWS counter
480 "sub $2, %%edx \n\t" // do not use first and last row
482 - ".L10320: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
483 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
484 "sub $2, %%ecx \n\t" // do not use first and last column
485 ".align 16 \n\t" // 16 byte allignment of the loop entry
489 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the image first row
490 "add %%eax, %%esi \n\t" // move one row below
491 @@ -2085,11 +2085,11 @@
492 "inc %%edi \n\t" // move Dest pointer to the next pixel
494 "dec %%ecx \n\t" // decrease loop counter COLUMNS
495 - "jnz .L10322 \n\t" // check loop termination, proceed if required
496 + "jnz 2b \n\t" // check loop termination, proceed if required
497 "add $2, %%esi \n\t" // move to the next row in Src
498 "add $2, %%edi \n\t" // move to the next row in Dest
499 "dec %%edx \n\t" // decrease loop counter ROWS
500 - "jnz .L10320 \n\t" // check loop termination, proceed if required
501 + "jnz 1b \n\t" // check loop termination, proceed if required
503 "emms \n\t" // exit MMX state
504 "popa \n\t":"=m" (Dest) // %0
505 @@ -2132,10 +2132,10 @@
506 "mov %2, %%ebx \n\t" // initialize ROWS counter
507 "sub $4, %%ebx \n\t" // do not use first 2 and last 2 rows
509 - ".L10330: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
510 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
511 "sub $4, %%ecx \n\t" // do not use first 2 and last 2 columns
512 ".align 16 \n\t" // 16 byte allignment of the loop entry
513 - ".L10332: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
514 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
515 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
517 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
518 @@ -2235,11 +2235,11 @@
519 "inc %%edi \n\t" // move Dest pointer to the next pixel
521 "dec %%ecx \n\t" // decrease loop counter COLUMNS
522 - "jnz .L10332 \n\t" // check loop termination, proceed if required
523 + "jnz 2b \n\t" // check loop termination, proceed if required
524 "add $4, %%esi \n\t" // move to the next row in Src
525 "add $4, %%edi \n\t" // move to the next row in Dest
526 "dec %%ebx \n\t" // decrease loop counter ROWS
527 - "jnz .L10330 \n\t" // check loop termination, proceed if required
528 + "jnz 1b \n\t" // check loop termination, proceed if required
530 "emms \n\t" // exit MMX state
531 "popa \n\t":"=m" (Dest) // %0
532 @@ -2280,10 +2280,10 @@
533 "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "mov %2, %%ebx \n\t" // initialize ROWS counter
534 "sub $6, %%ebx \n\t" // do not use first 3 and last 3 rows
536 - ".L10340: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
537 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
538 "sub $6, %%ecx \n\t" // do not use first 3 and last 3 columns
539 ".align 16 \n\t" // 16 byte allignment of the loop entry
540 - ".L10342: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
541 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
542 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
544 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
545 @@ -2411,11 +2411,11 @@
546 "inc %%edi \n\t" // move Dest pointer to the next pixel
548 "dec %%ecx \n\t" // decrease loop counter COLUMNS
549 - "jnz .L10342 \n\t" // check loop termination, proceed if required
550 + "jnz 2b \n\t" // check loop termination, proceed if required
551 "add $6, %%esi \n\t" // move to the next row in Src
552 "add $6, %%edi \n\t" // move to the next row in Dest
553 "dec %%ebx \n\t" // decrease loop counter ROWS
554 - "jnz .L10340 \n\t" // check loop termination, proceed if required
555 + "jnz 1b \n\t" // check loop termination, proceed if required
557 "emms \n\t" // exit MMX state
558 "popa \n\t":"=m" (Dest) // %0
559 @@ -2456,10 +2456,10 @@
560 "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "mov %2, %%ebx \n\t" // initialize ROWS counter
561 "sub $8, %%ebx \n\t" // do not use first 4 and last 4 rows
563 - ".L10350: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
564 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
565 "sub $8, %%ecx \n\t" // do not use first 4 and last 4 columns
566 ".align 16 \n\t" // 16 byte allignment of the loop entry
567 - ".L10352: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
568 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
569 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
571 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
572 @@ -2678,11 +2678,11 @@
573 "inc %%edi \n\t" // move Dest pointer to the next pixel
575 "dec %%ecx \n\t" // decrease loop counter COLUMNS
576 - "jnz .L10352 \n\t" // check loop termination, proceed if required
577 + "jnz 2b \n\t" // check loop termination, proceed if required
578 "add $8, %%esi \n\t" // move to the next row in Src
579 "add $8, %%edi \n\t" // move to the next row in Dest
580 "dec %%ebx \n\t" // decrease loop counter ROWS
581 - "jnz .L10350 \n\t" // check loop termination, proceed if required
582 + "jnz 1b \n\t" // check loop termination, proceed if required
584 "emms \n\t" // exit MMX state
585 "popa \n\t":"=m" (Dest) // %0
586 @@ -2729,10 +2729,10 @@
587 "mov %2, %%edx \n\t" // initialize ROWS counter
588 "sub $2, %%edx \n\t" // do not use first and last row
590 - ".L10360: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
591 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
592 "sub $2, %%ecx \n\t" // do not use first and last column
593 ".align 16 \n\t" // 16 byte allignment of the loop entry
597 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the image first row
598 "add %%eax, %%esi \n\t" // move one row below
599 @@ -2765,11 +2765,11 @@
600 "inc %%edi \n\t" // move Dest pointer to the next pixel
602 "dec %%ecx \n\t" // decrease loop counter COLUMNS
603 - "jnz .L10362 \n\t" // check loop termination, proceed if required
604 + "jnz 2b \n\t" // check loop termination, proceed if required
605 "add $2, %%esi \n\t" // move to the next row in Src
606 "add $2, %%edi \n\t" // move to the next row in Dest
607 "dec %%edx \n\t" // decrease loop counter ROWS
608 - "jnz .L10360 \n\t" // check loop termination, proceed if required
609 + "jnz 1b \n\t" // check loop termination, proceed if required
611 "emms \n\t" // exit MMX state
612 "popa \n\t":"=m" (Dest) // %0
613 @@ -2812,10 +2812,10 @@
614 "mov %2, %%ebx \n\t" // initialize ROWS counter
615 "sub $4, %%ebx \n\t" // do not use first 2 and last 2 rows
617 - ".L10370: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
618 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
619 "sub $4, %%ecx \n\t" // do not use first 2 and last 2 columns
620 ".align 16 \n\t" // 16 byte allignment of the loop entry
621 - ".L10372: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
622 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
623 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
625 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
626 @@ -2914,11 +2914,11 @@
627 "inc %%edi \n\t" // move Dest pointer to the next pixel
629 "dec %%ecx \n\t" // decrease loop counter COLUMNS
630 - "jnz .L10372 \n\t" // check loop termination, proceed if required
631 + "jnz 2b \n\t" // check loop termination, proceed if required
632 "add $4, %%esi \n\t" // move to the next row in Src
633 "add $4, %%edi \n\t" // move to the next row in Dest
634 "dec %%ebx \n\t" // decrease loop counter ROWS
635 - "jnz .L10370 \n\t" // check loop termination, proceed if required
636 + "jnz 1b \n\t" // check loop termination, proceed if required
638 "emms \n\t" // exit MMX state
639 "popa \n\t":"=m" (Dest) // %0
640 @@ -2959,10 +2959,10 @@
641 "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "mov %2, %%ebx \n\t" // initialize ROWS counter
642 "sub $6, %%ebx \n\t" // do not use first 3 and last 3 rows
644 - ".L10380: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
645 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
646 "sub $6, %%ecx \n\t" // do not use first 3 and last 3 columns
647 ".align 16 \n\t" // 16 byte allignment of the loop entry
648 - ".L10382: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
649 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
650 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
652 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
653 @@ -3093,11 +3093,11 @@
654 "inc %%edi \n\t" // move Dest pointer to the next pixel
656 "dec %%ecx \n\t" // decrease loop counter COLUMNS
657 - "jnz .L10382 \n\t" // check loop termination, proceed if required
658 + "jnz 2b \n\t" // check loop termination, proceed if required
659 "add $6, %%esi \n\t" // move to the next row in Src
660 "add $6, %%edi \n\t" // move to the next row in Dest
661 "dec %%ebx \n\t" // decrease loop counter ROWS
662 - "jnz .L10380 \n\t" // check loop termination, proceed if required
663 + "jnz 1b \n\t" // check loop termination, proceed if required
665 "emms \n\t" // exit MMX state
666 "popa \n\t":"=m" (Dest) // %0
667 @@ -3138,10 +3138,10 @@
668 "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "add %%eax, %%edi \n\t" "mov %2, %%ebx \n\t" // initialize ROWS counter
669 "sub $8, %%ebx \n\t" // do not use first 4 and last 4 rows
671 - ".L10390: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
672 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMNS counter
673 "sub $8, %%ecx \n\t" // do not use first 4 and last 4 columns
674 ".align 16 \n\t" // 16 byte allignment of the loop entry
675 - ".L10392: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
676 + "2: \n\t" "pxor %%mm7, %%mm7 \n\t" // zero MM7 (accumulator)
677 "movd %%esi, %%mm6 \n\t" // save ESI in MM6
679 "movq (%%esi), %%mm1 \n\t" // load 8 bytes of the Src
680 @@ -3376,11 +3376,11 @@
681 "inc %%edi \n\t" // move Dest pointer to the next pixel
683 "dec %%ecx \n\t" // decrease loop counter COLUMNS
684 - "jnz .L10392 \n\t" // check loop termination, proceed if required
685 + "jnz 2b \n\t" // check loop termination, proceed if required
686 "add $8, %%esi \n\t" // move to the next row in Src
687 "add $8, %%edi \n\t" // move to the next row in Dest
688 "dec %%ebx \n\t" // decrease loop counter ROWS
689 - "jnz .L10390 \n\t" // check loop termination, proceed if required
690 + "jnz 1b \n\t" // check loop termination, proceed if required
692 "emms \n\t" // exit MMX state
693 "popa \n\t":"=m" (Dest) // %0
694 @@ -3419,12 +3419,12 @@
695 "mov %2, %%edx \n\t" // initialize ROWS counter
696 "sub $2, %%edx \n\t" // do not use first and last rows
698 - ".L10400: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
699 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
700 "shr $3, %%ecx \n\t" // EBX/8 (MMX loads 8 bytes at a time)
701 "mov %%esi, %%ebx \n\t" // save ESI in EBX
702 "movd %%edi, %%mm1 \n\t" // save EDI in MM1
703 ".align 16 \n\t" // 16 byte allignment of the loop entry
707 "movq (%%esi), %%mm4 \n\t" // load 8 bytes from Src
708 "movq %%mm4, %%mm5 \n\t" // save MM4 in MM5
709 @@ -3502,13 +3502,13 @@
710 "add $8, %%edi \n\t" // move Dest pointer to the next 8 pixels
712 "dec %%ecx \n\t" // decrease loop counter COLUMNS
713 - "jnz .L10402 \n\t" // check loop termination, proceed if required
714 + "jnz 2b \n\t" // check loop termination, proceed if required
715 "mov %%ebx, %%esi \n\t" // restore most left current row Src address
716 "movd %%mm1, %%edi \n\t" // restore most left current row Dest address
717 "add %%eax, %%esi \n\t" // move to the next row in Src
718 "add %%eax, %%edi \n\t" // move to the next row in Dest
719 "dec %%edx \n\t" // decrease loop counter ROWS
720 - "jnz .L10400 \n\t" // check loop termination, proceed if required
721 + "jnz 1b \n\t" // check loop termination, proceed if required
723 "emms \n\t" // exit MMX state
724 "popa \n\t":"=m" (Dest) // %0
725 @@ -3547,12 +3547,12 @@
726 // initialize ROWS counter
727 "subl $2, %2 \n\t" // do not use first and last rows
729 - ".L10410: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
730 + "1: \n\t" "mov %%eax, %%ecx \n\t" // initialize COLUMS counter
731 "shr $3, %%ecx \n\t" // EBX/8 (MMX loads 8 bytes at a time)
732 "mov %%esi, %%ebx \n\t" // save ESI in EBX
733 "mov %%edi, %%edx \n\t" // save EDI in EDX
734 ".align 16 \n\t" // 16 byte allignment of the loop entry
738 "movq (%%esi), %%mm4 \n\t" // load 8 bytes from Src
739 "movq %%mm4, %%mm5 \n\t" // save MM4 in MM5
740 @@ -3642,13 +3642,13 @@
741 "add $8, %%edi \n\t" // move Dest pointer to the next 8 pixels
743 "dec %%ecx \n\t" // decrease loop counter COLUMNS
744 - "jnz .L10412 \n\t" // check loop termination, proceed if required
745 + "jnz 2b \n\t" // check loop termination, proceed if required
746 "mov %%ebx, %%esi \n\t" // restore most left current row Src address
747 "mov %%edx, %%edi \n\t" // restore most left current row Dest address
748 "add %%eax, %%esi \n\t" // move to the next row in Src
749 "add %%eax, %%edi \n\t" // move to the next row in Dest
750 "decl %2 \n\t" // decrease loop counter ROWS
751 - "jnz .L10410 \n\t" // check loop termination, proceed if required
752 + "jnz 1b \n\t" // check loop termination, proceed if required
754 "emms \n\t" // exit MMX state
755 "popa \n\t":"=m" (Dest) // %0