4 #if !defined(NASM_ASSEMBLER) && !defined(MASM_ASSEMBLER)
5 #define LLBL(a) .L ## a
15 GLOBL GLNAME(gl_mmx_blend_transparency)
17 GLNAME( gl_mmx_blend_transparency ):
20 SUB_L ( CONST(52), ESP )
22 MOV_L ( CONST(16711680), REGOFF(-8, EBP) )
23 MOV_L ( CONST(16711680), REGOFF(-4, EBP) )
24 MOV_L ( CONST(0), REGOFF(-16, EBP) )
25 MOV_L ( CONST(-1), REGOFF(-12, EBP) )
26 MOV_L ( CONST(-1), REGOFF(-24, EBP) )
27 MOV_L ( CONST(0), REGOFF(-20, EBP) )
28 MOV_L ( REGOFF(24, EBP), EAX )
29 ADD_L ( CONST(4), EAX )
31 AND_L ( REGOFF(20, EBP), EDX )
33 AND_L ( CONST(4), EAX )
34 CMP_L ( CONST(8), EAX )
36 MOV_L ( REGOFF(20, EBP), EAX )
37 ADD_L ( CONST(3), EAX )
39 MOV_B ( REGIND(EAX), DL )
40 MOV_L ( EDX, REGOFF(-32, EBP) )
41 MOV_L ( CONST(255), EAX )
43 SUB_L ( REGOFF(-32, EBP), EBX )
44 MOV_L ( EBX, REGOFF(-36, EBP) )
45 MOV_L ( REGOFF(20, EBP), EAX )
47 MOV_B ( REGIND(EAX), DL )
49 IMUL_L ( REGOFF(-32, EBP), EAX )
50 MOV_L ( REGOFF(24, EBP), EDX )
52 MOV_B ( REGIND(EDX), CL )
54 IMUL_L ( REGOFF(-36, EBP), EDX )
57 SAR_L ( CONST(8), EBX )
58 MOV_L ( EBX, REGOFF(-40, EBP) )
59 MOV_L ( REGOFF(20, EBP), EAX )
62 MOV_B ( REGIND(EAX), DL )
64 IMUL_L ( REGOFF(-32, EBP), EAX )
65 MOV_L ( REGOFF(24, EBP), EDX )
68 MOV_B ( REGIND(EDX), CL )
70 IMUL_L ( REGOFF(-36, EBP), EDX )
73 SAR_L ( CONST(8), EBX )
74 MOV_L ( EBX, REGOFF(-44, EBP) )
75 MOV_L ( REGOFF(20, EBP), EAX )
76 ADD_L ( CONST(2), EAX )
78 MOV_B ( REGIND(EAX), DL )
80 IMUL_L ( REGOFF(-32, EBP), EAX )
81 MOV_L ( REGOFF(24, EBP), EDX )
82 ADD_L ( CONST(2), EDX )
84 MOV_B ( REGIND(EDX), CL )
86 IMUL_L ( REGOFF(-36, EBP), EDX )
89 SAR_L ( CONST(8), EBX )
90 MOV_L ( EBX, REGOFF(-48, EBP) )
91 MOV_L ( REGOFF(20, EBP), EAX )
92 ADD_L ( CONST(3), EAX )
94 MOV_B ( REGIND(EAX), DL )
96 IMUL_L ( REGOFF(-32, EBP), EAX )
97 MOV_L ( REGOFF(24, EBP), EDX )
98 ADD_L ( CONST(3), EDX )
100 MOV_B ( REGIND(EDX), CL )
102 IMUL_L ( REGOFF(-36, EBP), EDX )
105 SAR_L ( CONST(8), EBX )
106 MOV_L ( EBX, REGOFF(-52, EBP) )
107 MOV_L ( REGOFF(20, EBP), EAX )
108 MOV_B ( REGOFF(-40, EBP), DL )
109 MOV_B ( DL, REGIND(EAX) )
110 MOV_L ( REGOFF(20, EBP), EAX )
112 MOV_B ( REGOFF(-44, EBP), DL )
113 MOV_B ( DL, REGIND(EAX) )
114 MOV_L ( REGOFF(20, EBP), EAX )
115 ADD_L ( CONST(2), EAX )
116 MOV_B ( REGOFF(-48, EBP), DL )
117 MOV_B ( DL, REGIND(EAX) )
118 MOV_L ( REGOFF(20, EBP), EAX )
119 ADD_L ( CONST(3), EAX )
120 MOV_B ( REGOFF(-52, EBP), DL )
121 MOV_B ( DL, REGIND(EAX) )
122 INC_L ( REGOFF(16, EBP) )
123 ADD_L ( CONST(4), REGOFF(20, EBP) )
124 ADD_L ( CONST(4), REGOFF(24, EBP) )
125 DEC_L ( REGOFF(12, EBP) )
128 CMP_L ( CONST(0), REGOFF(12, EBP) )
130 MOV_L ( CONST(0), REGOFF(-28, EBP) )
134 MOV_L ( REGOFF(12, EBP), EDX )
136 SHR_L ( CONST(1), EAX )
137 CMP_L ( EAX, REGOFF(-28, EBP) )
143 MOV_L ( REGOFF(-28, EBP), EAX )
144 LEA_L ( REGDIS(0,EAX,2), EDX )
145 MOV_L ( REGOFF(16, EBP), EAX )
146 CMP_B ( CONST(0), REGBI(EAX,EDX) )
148 MOV_L ( REGOFF(-28, EBP), EAX )
150 LEA_L ( REGDIS(0,EDX,8), ECX )
152 ADD_L ( REGOFF(20, EBP), EAX )
153 MOV_L ( REGOFF(-28, EBP), EDX )
155 LEA_L ( REGDIS(0,ECX,8), EDX )
157 ADD_L ( REGOFF(24, EBP), ECX )
159 MOVQ ( REGIND(EAX), MM4 )
162 MOVQ ( REGIND(ECX), MM7 )
163 PUNPCKLBW ( MM5, MM1 )
166 PUNPCKLBW ( MM5, MM6 )
168 PSRLQ ( CONST(48), MM0 )
169 PUNPCKHBW ( MM5, MM4 )
170 PACKSSDW ( MM0, MM0 )
172 PUNPCKHBW ( MM5, MM7 )
173 PSLLQ ( CONST(16), MM3 )
174 POR ( REGOFF(-8, EBP), MM0 )
175 PUNPCKLWD ( MM6, MM1 )
177 PUNPCKHWD ( MM6, MM2 )
179 PSRLQ ( CONST(48), MM3 )
180 PACKSSDW ( MM3, MM3 )
182 POR ( REGOFF(-8, EBP), MM3 )
183 PSLLQ ( CONST(16), MM6 )
186 PUNPCKLWD ( MM7, MM4 )
187 PUNPCKHWD ( MM7, MM5 )
192 PSRLD ( CONST(8), MM1 )
193 PSRLD ( CONST(8), MM2 )
194 PSRLD ( CONST(8), MM4 )
195 PACKSSDW ( MM2, MM1 )
196 PSRLD ( CONST(8), MM5 )
197 PACKUSWB ( MM1, MM1 )
198 PACKSSDW ( MM5, MM4 )
199 PAND ( REGOFF(-24, EBP), MM1 )
200 PACKUSWB ( MM4, MM4 )
201 PAND ( REGOFF(-16, EBP), MM4 )
203 MOVQ ( MM4, REGIND(EAX) )
210 INC_L ( REGOFF(-28, EBP) )
220 MOV_L ( REGOFF(12, EBP), EAX )
221 AND_L ( CONST(1), EAX )
224 MOV_L ( REGOFF(12, EBP), EAX )
225 LEA_L ( REGDIS(0,EAX,4), EDX )
227 ADD_L ( REGOFF(20, EBP), EAX )
228 LEA_L ( REGOFF(-1, EAX), EDX )
230 MOV_B ( REGIND(EDX), AL )
231 MOV_L ( EAX, REGOFF(-52, EBP) )
232 MOV_L ( CONST(255), EAX )
234 SUB_L ( REGOFF(-52, EBP), EBX )
235 MOV_L ( EBX, REGOFF(-48, EBP) )
236 MOV_L ( REGOFF(12, EBP), EAX )
237 LEA_L ( REGDIS(0,EAX,4), EDX )
239 ADD_L ( REGOFF(20, EBP), EAX )
240 LEA_L ( REGOFF(-4, EAX), EDX )
242 MOV_B ( REGIND(EDX), CL )
244 IMUL_L ( REGOFF(-52, EBP), EAX )
245 MOV_L ( REGOFF(12, EBP), EDX )
246 LEA_L ( REGDIS(0,EDX,4), ECX )
248 ADD_L ( REGOFF(24, EBP), EDX )
249 LEA_L ( REGOFF(-4, EDX), ECX )
251 MOV_B ( REGIND(ECX), DL )
253 IMUL_L ( REGOFF(-48, EBP), ECX )
256 SAR_L ( CONST(8), EBX )
257 MOV_L ( EBX, REGOFF(-44, EBP) )
258 MOV_L ( REGOFF(12, EBP), EAX )
259 LEA_L ( REGDIS(0,EAX,4), EDX )
261 ADD_L ( REGOFF(20, EBP), EAX )
262 LEA_L ( REGOFF(-3, EAX), EDX )
264 MOV_B ( REGIND(EDX), CL )
266 IMUL_L ( REGOFF(-52, EBP), EAX )
267 MOV_L ( REGOFF(12, EBP), EDX )
268 LEA_L ( REGDIS(0,EDX,4), ECX )
270 ADD_L ( REGOFF(24, EBP), EDX )
271 LEA_L ( REGOFF(-3, EDX), ECX )
273 MOV_B ( REGIND(ECX), DL )
275 IMUL_L ( REGOFF(-48, EBP), ECX )
278 SAR_L ( CONST(8), EBX )
279 MOV_L ( EBX, REGOFF(-40, EBP) )
280 MOV_L ( REGOFF(12, EBP), EAX )
281 LEA_L ( REGDIS(0,EAX,4), EDX )
283 ADD_L ( REGOFF(20, EBP), EAX )
284 LEA_L ( REGOFF(-2, EAX), EDX )
286 MOV_B ( REGIND(EDX), CL )
288 IMUL_L ( REGOFF(-52, EBP), EAX )
289 MOV_L ( REGOFF(12, EBP), EDX )
290 LEA_L ( REGDIS(0,EDX,4), ECX )
292 ADD_L ( REGOFF(24, EBP), EDX )
293 LEA_L ( REGOFF(-2, EDX), ECX )
295 MOV_B ( REGIND(ECX), DL )
297 IMUL_L ( REGOFF(-48, EBP), ECX )
300 SAR_L ( CONST(8), EBX )
301 MOV_L ( EBX, REGOFF(-36, EBP) )
302 MOV_L ( REGOFF(12, EBP), EAX )
303 LEA_L ( REGDIS(0,EAX,4), EDX )
305 ADD_L ( REGOFF(20, EBP), EAX )
306 LEA_L ( REGOFF(-1, EAX), EDX )
308 MOV_B ( REGIND(EDX), CL )
310 IMUL_L ( REGOFF(-52, EBP), EAX )
311 MOV_L ( REGOFF(12, EBP), EDX )
312 LEA_L ( REGDIS(0,EDX,4), ECX )
314 ADD_L ( REGOFF(24, EBP), EDX )
315 LEA_L ( REGOFF(-1, EDX), ECX )
317 MOV_B ( REGIND(ECX), DL )
319 IMUL_L ( REGOFF(-48, EBP), ECX )
322 SAR_L ( CONST(8), EBX )
323 MOV_L ( EBX, REGOFF(-32, EBP) )
324 MOV_L ( REGOFF(12, EBP), EAX )
325 LEA_L ( REGDIS(0,EAX,4), EDX )
327 ADD_L ( REGOFF(20, EBP), EAX )
328 LEA_L ( REGOFF(-4, EAX), EDX )
329 MOV_B ( REGOFF(-44, EBP), AL )
330 MOV_B ( AL, REGIND(EDX) )
331 MOV_L ( REGOFF(12, EBP), EAX )
332 LEA_L ( REGDIS(0,EAX,4), EDX )
334 ADD_L ( REGOFF(20, EBP), EAX )
335 LEA_L ( REGOFF(-3, EAX), EDX )
336 MOV_B ( REGOFF(-40, EBP), AL )
337 MOV_B ( AL, REGIND(EDX) )
338 MOV_L ( REGOFF(12, EBP), EAX )
339 LEA_L ( REGDIS(0,EAX,4), EDX )
341 ADD_L ( REGOFF(20, EBP), EAX )
342 LEA_L ( REGOFF(-2, EAX), EDX )
343 MOV_B ( REGOFF(-36, EBP), AL )
344 MOV_B ( AL, REGIND(EDX) )
345 MOV_L ( REGOFF(12, EBP), EAX )
346 LEA_L ( REGDIS(0,EAX,4), EDX )
348 ADD_L ( REGOFF(20, EBP), EAX )
349 LEA_L ( REGOFF(-1, EAX), EDX )
350 MOV_B ( REGOFF(-32, EBP), AL )
351 MOV_B ( AL, REGIND(EDX) )
356 MOV_L ( REGOFF(-56, EBP), EBX )