]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S
CryptoPkg/OpensslLib: Commit the auto-generated assembly files for IA32
[mirror_edk2.git] / CryptoPkg / Library / OpensslLib / IA32Gcc / crypto / modes / ghash-x86.S
CommitLineData
4102950a
CZ
1# WARNING: do not edit!\r
2# Generated from openssl/crypto/modes/asm/ghash-x86.pl\r
3#\r
4# Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.\r
5#\r
6# Licensed under the OpenSSL license (the "License"). You may not use\r
7# this file except in compliance with the License. You can obtain a copy\r
8# in the file LICENSE in the source distribution or at\r
9# https://www.openssl.org/source/license.html\r
10\r
11.text\r
12.globl gcm_gmult_4bit_x86\r
13.type gcm_gmult_4bit_x86,@function\r
14.align 16\r
15gcm_gmult_4bit_x86:\r
16.L_gcm_gmult_4bit_x86_begin:\r
17 pushl %ebp\r
18 pushl %ebx\r
19 pushl %esi\r
20 pushl %edi\r
21 subl $84,%esp\r
22 movl 104(%esp),%edi\r
23 movl 108(%esp),%esi\r
24 movl (%edi),%ebp\r
25 movl 4(%edi),%edx\r
26 movl 8(%edi),%ecx\r
27 movl 12(%edi),%ebx\r
28 movl $0,16(%esp)\r
29 movl $471859200,20(%esp)\r
30 movl $943718400,24(%esp)\r
31 movl $610271232,28(%esp)\r
32 movl $1887436800,32(%esp)\r
33 movl $1822425088,36(%esp)\r
34 movl $1220542464,40(%esp)\r
35 movl $1423966208,44(%esp)\r
36 movl $3774873600,48(%esp)\r
37 movl $4246732800,52(%esp)\r
38 movl $3644850176,56(%esp)\r
39 movl $3311403008,60(%esp)\r
40 movl $2441084928,64(%esp)\r
41 movl $2376073216,68(%esp)\r
42 movl $2847932416,72(%esp)\r
43 movl $3051356160,76(%esp)\r
44 movl %ebp,(%esp)\r
45 movl %edx,4(%esp)\r
46 movl %ecx,8(%esp)\r
47 movl %ebx,12(%esp)\r
48 shrl $20,%ebx\r
49 andl $240,%ebx\r
50 movl 4(%esi,%ebx,1),%ebp\r
51 movl (%esi,%ebx,1),%edx\r
52 movl 12(%esi,%ebx,1),%ecx\r
53 movl 8(%esi,%ebx,1),%ebx\r
54 xorl %eax,%eax\r
55 movl $15,%edi\r
56 jmp .L000x86_loop\r
57.align 16\r
58.L000x86_loop:\r
59 movb %bl,%al\r
60 shrdl $4,%ecx,%ebx\r
61 andb $15,%al\r
62 shrdl $4,%edx,%ecx\r
63 shrdl $4,%ebp,%edx\r
64 shrl $4,%ebp\r
65 xorl 16(%esp,%eax,4),%ebp\r
66 movb (%esp,%edi,1),%al\r
67 andb $240,%al\r
68 xorl 8(%esi,%eax,1),%ebx\r
69 xorl 12(%esi,%eax,1),%ecx\r
70 xorl (%esi,%eax,1),%edx\r
71 xorl 4(%esi,%eax,1),%ebp\r
72 decl %edi\r
73 js .L001x86_break\r
74 movb %bl,%al\r
75 shrdl $4,%ecx,%ebx\r
76 andb $15,%al\r
77 shrdl $4,%edx,%ecx\r
78 shrdl $4,%ebp,%edx\r
79 shrl $4,%ebp\r
80 xorl 16(%esp,%eax,4),%ebp\r
81 movb (%esp,%edi,1),%al\r
82 shlb $4,%al\r
83 xorl 8(%esi,%eax,1),%ebx\r
84 xorl 12(%esi,%eax,1),%ecx\r
85 xorl (%esi,%eax,1),%edx\r
86 xorl 4(%esi,%eax,1),%ebp\r
87 jmp .L000x86_loop\r
88.align 16\r
89.L001x86_break:\r
90 bswap %ebx\r
91 bswap %ecx\r
92 bswap %edx\r
93 bswap %ebp\r
94 movl 104(%esp),%edi\r
95 movl %ebx,12(%edi)\r
96 movl %ecx,8(%edi)\r
97 movl %edx,4(%edi)\r
98 movl %ebp,(%edi)\r
99 addl $84,%esp\r
100 popl %edi\r
101 popl %esi\r
102 popl %ebx\r
103 popl %ebp\r
104 ret\r
105.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin\r
106.globl gcm_ghash_4bit_x86\r
107.type gcm_ghash_4bit_x86,@function\r
108.align 16\r
109gcm_ghash_4bit_x86:\r
110.L_gcm_ghash_4bit_x86_begin:\r
111 pushl %ebp\r
112 pushl %ebx\r
113 pushl %esi\r
114 pushl %edi\r
115 subl $84,%esp\r
116 movl 104(%esp),%ebx\r
117 movl 108(%esp),%esi\r
118 movl 112(%esp),%edi\r
119 movl 116(%esp),%ecx\r
120 addl %edi,%ecx\r
121 movl %ecx,116(%esp)\r
122 movl (%ebx),%ebp\r
123 movl 4(%ebx),%edx\r
124 movl 8(%ebx),%ecx\r
125 movl 12(%ebx),%ebx\r
126 movl $0,16(%esp)\r
127 movl $471859200,20(%esp)\r
128 movl $943718400,24(%esp)\r
129 movl $610271232,28(%esp)\r
130 movl $1887436800,32(%esp)\r
131 movl $1822425088,36(%esp)\r
132 movl $1220542464,40(%esp)\r
133 movl $1423966208,44(%esp)\r
134 movl $3774873600,48(%esp)\r
135 movl $4246732800,52(%esp)\r
136 movl $3644850176,56(%esp)\r
137 movl $3311403008,60(%esp)\r
138 movl $2441084928,64(%esp)\r
139 movl $2376073216,68(%esp)\r
140 movl $2847932416,72(%esp)\r
141 movl $3051356160,76(%esp)\r
142.align 16\r
143.L002x86_outer_loop:\r
144 xorl 12(%edi),%ebx\r
145 xorl 8(%edi),%ecx\r
146 xorl 4(%edi),%edx\r
147 xorl (%edi),%ebp\r
148 movl %ebx,12(%esp)\r
149 movl %ecx,8(%esp)\r
150 movl %edx,4(%esp)\r
151 movl %ebp,(%esp)\r
152 shrl $20,%ebx\r
153 andl $240,%ebx\r
154 movl 4(%esi,%ebx,1),%ebp\r
155 movl (%esi,%ebx,1),%edx\r
156 movl 12(%esi,%ebx,1),%ecx\r
157 movl 8(%esi,%ebx,1),%ebx\r
158 xorl %eax,%eax\r
159 movl $15,%edi\r
160 jmp .L003x86_loop\r
161.align 16\r
162.L003x86_loop:\r
163 movb %bl,%al\r
164 shrdl $4,%ecx,%ebx\r
165 andb $15,%al\r
166 shrdl $4,%edx,%ecx\r
167 shrdl $4,%ebp,%edx\r
168 shrl $4,%ebp\r
169 xorl 16(%esp,%eax,4),%ebp\r
170 movb (%esp,%edi,1),%al\r
171 andb $240,%al\r
172 xorl 8(%esi,%eax,1),%ebx\r
173 xorl 12(%esi,%eax,1),%ecx\r
174 xorl (%esi,%eax,1),%edx\r
175 xorl 4(%esi,%eax,1),%ebp\r
176 decl %edi\r
177 js .L004x86_break\r
178 movb %bl,%al\r
179 shrdl $4,%ecx,%ebx\r
180 andb $15,%al\r
181 shrdl $4,%edx,%ecx\r
182 shrdl $4,%ebp,%edx\r
183 shrl $4,%ebp\r
184 xorl 16(%esp,%eax,4),%ebp\r
185 movb (%esp,%edi,1),%al\r
186 shlb $4,%al\r
187 xorl 8(%esi,%eax,1),%ebx\r
188 xorl 12(%esi,%eax,1),%ecx\r
189 xorl (%esi,%eax,1),%edx\r
190 xorl 4(%esi,%eax,1),%ebp\r
191 jmp .L003x86_loop\r
192.align 16\r
193.L004x86_break:\r
194 bswap %ebx\r
195 bswap %ecx\r
196 bswap %edx\r
197 bswap %ebp\r
198 movl 112(%esp),%edi\r
199 leal 16(%edi),%edi\r
200 cmpl 116(%esp),%edi\r
201 movl %edi,112(%esp)\r
202 jb .L002x86_outer_loop\r
203 movl 104(%esp),%edi\r
204 movl %ebx,12(%edi)\r
205 movl %ecx,8(%edi)\r
206 movl %edx,4(%edi)\r
207 movl %ebp,(%edi)\r
208 addl $84,%esp\r
209 popl %edi\r
210 popl %esi\r
211 popl %ebx\r
212 popl %ebp\r
213 ret\r
214.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin\r
215.type _mmx_gmult_4bit_inner,@function\r
216.align 16\r
217_mmx_gmult_4bit_inner:\r
218 xorl %ecx,%ecx\r
219 movl %ebx,%edx\r
220 movb %dl,%cl\r
221 shlb $4,%cl\r
222 andl $240,%edx\r
223 movq 8(%esi,%ecx,1),%mm0\r
224 movq (%esi,%ecx,1),%mm1\r
225 movd %mm0,%ebp\r
226 psrlq $4,%mm0\r
227 movq %mm1,%mm2\r
228 psrlq $4,%mm1\r
229 pxor 8(%esi,%edx,1),%mm0\r
230 movb 14(%edi),%cl\r
231 psllq $60,%mm2\r
232 andl $15,%ebp\r
233 pxor (%esi,%edx,1),%mm1\r
234 movl %ecx,%edx\r
235 movd %mm0,%ebx\r
236 pxor %mm2,%mm0\r
237 shlb $4,%cl\r
238 psrlq $4,%mm0\r
239 movq %mm1,%mm2\r
240 psrlq $4,%mm1\r
241 pxor 8(%esi,%ecx,1),%mm0\r
242 psllq $60,%mm2\r
243 andl $240,%edx\r
244 pxor (%eax,%ebp,8),%mm1\r
245 andl $15,%ebx\r
246 pxor (%esi,%ecx,1),%mm1\r
247 movd %mm0,%ebp\r
248 pxor %mm2,%mm0\r
249 psrlq $4,%mm0\r
250 movq %mm1,%mm2\r
251 psrlq $4,%mm1\r
252 pxor 8(%esi,%edx,1),%mm0\r
253 movb 13(%edi),%cl\r
254 psllq $60,%mm2\r
255 pxor (%eax,%ebx,8),%mm1\r
256 andl $15,%ebp\r
257 pxor (%esi,%edx,1),%mm1\r
258 movl %ecx,%edx\r
259 movd %mm0,%ebx\r
260 pxor %mm2,%mm0\r
261 shlb $4,%cl\r
262 psrlq $4,%mm0\r
263 movq %mm1,%mm2\r
264 psrlq $4,%mm1\r
265 pxor 8(%esi,%ecx,1),%mm0\r
266 psllq $60,%mm2\r
267 andl $240,%edx\r
268 pxor (%eax,%ebp,8),%mm1\r
269 andl $15,%ebx\r
270 pxor (%esi,%ecx,1),%mm1\r
271 movd %mm0,%ebp\r
272 pxor %mm2,%mm0\r
273 psrlq $4,%mm0\r
274 movq %mm1,%mm2\r
275 psrlq $4,%mm1\r
276 pxor 8(%esi,%edx,1),%mm0\r
277 movb 12(%edi),%cl\r
278 psllq $60,%mm2\r
279 pxor (%eax,%ebx,8),%mm1\r
280 andl $15,%ebp\r
281 pxor (%esi,%edx,1),%mm1\r
282 movl %ecx,%edx\r
283 movd %mm0,%ebx\r
284 pxor %mm2,%mm0\r
285 shlb $4,%cl\r
286 psrlq $4,%mm0\r
287 movq %mm1,%mm2\r
288 psrlq $4,%mm1\r
289 pxor 8(%esi,%ecx,1),%mm0\r
290 psllq $60,%mm2\r
291 andl $240,%edx\r
292 pxor (%eax,%ebp,8),%mm1\r
293 andl $15,%ebx\r
294 pxor (%esi,%ecx,1),%mm1\r
295 movd %mm0,%ebp\r
296 pxor %mm2,%mm0\r
297 psrlq $4,%mm0\r
298 movq %mm1,%mm2\r
299 psrlq $4,%mm1\r
300 pxor 8(%esi,%edx,1),%mm0\r
301 movb 11(%edi),%cl\r
302 psllq $60,%mm2\r
303 pxor (%eax,%ebx,8),%mm1\r
304 andl $15,%ebp\r
305 pxor (%esi,%edx,1),%mm1\r
306 movl %ecx,%edx\r
307 movd %mm0,%ebx\r
308 pxor %mm2,%mm0\r
309 shlb $4,%cl\r
310 psrlq $4,%mm0\r
311 movq %mm1,%mm2\r
312 psrlq $4,%mm1\r
313 pxor 8(%esi,%ecx,1),%mm0\r
314 psllq $60,%mm2\r
315 andl $240,%edx\r
316 pxor (%eax,%ebp,8),%mm1\r
317 andl $15,%ebx\r
318 pxor (%esi,%ecx,1),%mm1\r
319 movd %mm0,%ebp\r
320 pxor %mm2,%mm0\r
321 psrlq $4,%mm0\r
322 movq %mm1,%mm2\r
323 psrlq $4,%mm1\r
324 pxor 8(%esi,%edx,1),%mm0\r
325 movb 10(%edi),%cl\r
326 psllq $60,%mm2\r
327 pxor (%eax,%ebx,8),%mm1\r
328 andl $15,%ebp\r
329 pxor (%esi,%edx,1),%mm1\r
330 movl %ecx,%edx\r
331 movd %mm0,%ebx\r
332 pxor %mm2,%mm0\r
333 shlb $4,%cl\r
334 psrlq $4,%mm0\r
335 movq %mm1,%mm2\r
336 psrlq $4,%mm1\r
337 pxor 8(%esi,%ecx,1),%mm0\r
338 psllq $60,%mm2\r
339 andl $240,%edx\r
340 pxor (%eax,%ebp,8),%mm1\r
341 andl $15,%ebx\r
342 pxor (%esi,%ecx,1),%mm1\r
343 movd %mm0,%ebp\r
344 pxor %mm2,%mm0\r
345 psrlq $4,%mm0\r
346 movq %mm1,%mm2\r
347 psrlq $4,%mm1\r
348 pxor 8(%esi,%edx,1),%mm0\r
349 movb 9(%edi),%cl\r
350 psllq $60,%mm2\r
351 pxor (%eax,%ebx,8),%mm1\r
352 andl $15,%ebp\r
353 pxor (%esi,%edx,1),%mm1\r
354 movl %ecx,%edx\r
355 movd %mm0,%ebx\r
356 pxor %mm2,%mm0\r
357 shlb $4,%cl\r
358 psrlq $4,%mm0\r
359 movq %mm1,%mm2\r
360 psrlq $4,%mm1\r
361 pxor 8(%esi,%ecx,1),%mm0\r
362 psllq $60,%mm2\r
363 andl $240,%edx\r
364 pxor (%eax,%ebp,8),%mm1\r
365 andl $15,%ebx\r
366 pxor (%esi,%ecx,1),%mm1\r
367 movd %mm0,%ebp\r
368 pxor %mm2,%mm0\r
369 psrlq $4,%mm0\r
370 movq %mm1,%mm2\r
371 psrlq $4,%mm1\r
372 pxor 8(%esi,%edx,1),%mm0\r
373 movb 8(%edi),%cl\r
374 psllq $60,%mm2\r
375 pxor (%eax,%ebx,8),%mm1\r
376 andl $15,%ebp\r
377 pxor (%esi,%edx,1),%mm1\r
378 movl %ecx,%edx\r
379 movd %mm0,%ebx\r
380 pxor %mm2,%mm0\r
381 shlb $4,%cl\r
382 psrlq $4,%mm0\r
383 movq %mm1,%mm2\r
384 psrlq $4,%mm1\r
385 pxor 8(%esi,%ecx,1),%mm0\r
386 psllq $60,%mm2\r
387 andl $240,%edx\r
388 pxor (%eax,%ebp,8),%mm1\r
389 andl $15,%ebx\r
390 pxor (%esi,%ecx,1),%mm1\r
391 movd %mm0,%ebp\r
392 pxor %mm2,%mm0\r
393 psrlq $4,%mm0\r
394 movq %mm1,%mm2\r
395 psrlq $4,%mm1\r
396 pxor 8(%esi,%edx,1),%mm0\r
397 movb 7(%edi),%cl\r
398 psllq $60,%mm2\r
399 pxor (%eax,%ebx,8),%mm1\r
400 andl $15,%ebp\r
401 pxor (%esi,%edx,1),%mm1\r
402 movl %ecx,%edx\r
403 movd %mm0,%ebx\r
404 pxor %mm2,%mm0\r
405 shlb $4,%cl\r
406 psrlq $4,%mm0\r
407 movq %mm1,%mm2\r
408 psrlq $4,%mm1\r
409 pxor 8(%esi,%ecx,1),%mm0\r
410 psllq $60,%mm2\r
411 andl $240,%edx\r
412 pxor (%eax,%ebp,8),%mm1\r
413 andl $15,%ebx\r
414 pxor (%esi,%ecx,1),%mm1\r
415 movd %mm0,%ebp\r
416 pxor %mm2,%mm0\r
417 psrlq $4,%mm0\r
418 movq %mm1,%mm2\r
419 psrlq $4,%mm1\r
420 pxor 8(%esi,%edx,1),%mm0\r
421 movb 6(%edi),%cl\r
422 psllq $60,%mm2\r
423 pxor (%eax,%ebx,8),%mm1\r
424 andl $15,%ebp\r
425 pxor (%esi,%edx,1),%mm1\r
426 movl %ecx,%edx\r
427 movd %mm0,%ebx\r
428 pxor %mm2,%mm0\r
429 shlb $4,%cl\r
430 psrlq $4,%mm0\r
431 movq %mm1,%mm2\r
432 psrlq $4,%mm1\r
433 pxor 8(%esi,%ecx,1),%mm0\r
434 psllq $60,%mm2\r
435 andl $240,%edx\r
436 pxor (%eax,%ebp,8),%mm1\r
437 andl $15,%ebx\r
438 pxor (%esi,%ecx,1),%mm1\r
439 movd %mm0,%ebp\r
440 pxor %mm2,%mm0\r
441 psrlq $4,%mm0\r
442 movq %mm1,%mm2\r
443 psrlq $4,%mm1\r
444 pxor 8(%esi,%edx,1),%mm0\r
445 movb 5(%edi),%cl\r
446 psllq $60,%mm2\r
447 pxor (%eax,%ebx,8),%mm1\r
448 andl $15,%ebp\r
449 pxor (%esi,%edx,1),%mm1\r
450 movl %ecx,%edx\r
451 movd %mm0,%ebx\r
452 pxor %mm2,%mm0\r
453 shlb $4,%cl\r
454 psrlq $4,%mm0\r
455 movq %mm1,%mm2\r
456 psrlq $4,%mm1\r
457 pxor 8(%esi,%ecx,1),%mm0\r
458 psllq $60,%mm2\r
459 andl $240,%edx\r
460 pxor (%eax,%ebp,8),%mm1\r
461 andl $15,%ebx\r
462 pxor (%esi,%ecx,1),%mm1\r
463 movd %mm0,%ebp\r
464 pxor %mm2,%mm0\r
465 psrlq $4,%mm0\r
466 movq %mm1,%mm2\r
467 psrlq $4,%mm1\r
468 pxor 8(%esi,%edx,1),%mm0\r
469 movb 4(%edi),%cl\r
470 psllq $60,%mm2\r
471 pxor (%eax,%ebx,8),%mm1\r
472 andl $15,%ebp\r
473 pxor (%esi,%edx,1),%mm1\r
474 movl %ecx,%edx\r
475 movd %mm0,%ebx\r
476 pxor %mm2,%mm0\r
477 shlb $4,%cl\r
478 psrlq $4,%mm0\r
479 movq %mm1,%mm2\r
480 psrlq $4,%mm1\r
481 pxor 8(%esi,%ecx,1),%mm0\r
482 psllq $60,%mm2\r
483 andl $240,%edx\r
484 pxor (%eax,%ebp,8),%mm1\r
485 andl $15,%ebx\r
486 pxor (%esi,%ecx,1),%mm1\r
487 movd %mm0,%ebp\r
488 pxor %mm2,%mm0\r
489 psrlq $4,%mm0\r
490 movq %mm1,%mm2\r
491 psrlq $4,%mm1\r
492 pxor 8(%esi,%edx,1),%mm0\r
493 movb 3(%edi),%cl\r
494 psllq $60,%mm2\r
495 pxor (%eax,%ebx,8),%mm1\r
496 andl $15,%ebp\r
497 pxor (%esi,%edx,1),%mm1\r
498 movl %ecx,%edx\r
499 movd %mm0,%ebx\r
500 pxor %mm2,%mm0\r
501 shlb $4,%cl\r
502 psrlq $4,%mm0\r
503 movq %mm1,%mm2\r
504 psrlq $4,%mm1\r
505 pxor 8(%esi,%ecx,1),%mm0\r
506 psllq $60,%mm2\r
507 andl $240,%edx\r
508 pxor (%eax,%ebp,8),%mm1\r
509 andl $15,%ebx\r
510 pxor (%esi,%ecx,1),%mm1\r
511 movd %mm0,%ebp\r
512 pxor %mm2,%mm0\r
513 psrlq $4,%mm0\r
514 movq %mm1,%mm2\r
515 psrlq $4,%mm1\r
516 pxor 8(%esi,%edx,1),%mm0\r
517 movb 2(%edi),%cl\r
518 psllq $60,%mm2\r
519 pxor (%eax,%ebx,8),%mm1\r
520 andl $15,%ebp\r
521 pxor (%esi,%edx,1),%mm1\r
522 movl %ecx,%edx\r
523 movd %mm0,%ebx\r
524 pxor %mm2,%mm0\r
525 shlb $4,%cl\r
526 psrlq $4,%mm0\r
527 movq %mm1,%mm2\r
528 psrlq $4,%mm1\r
529 pxor 8(%esi,%ecx,1),%mm0\r
530 psllq $60,%mm2\r
531 andl $240,%edx\r
532 pxor (%eax,%ebp,8),%mm1\r
533 andl $15,%ebx\r
534 pxor (%esi,%ecx,1),%mm1\r
535 movd %mm0,%ebp\r
536 pxor %mm2,%mm0\r
537 psrlq $4,%mm0\r
538 movq %mm1,%mm2\r
539 psrlq $4,%mm1\r
540 pxor 8(%esi,%edx,1),%mm0\r
541 movb 1(%edi),%cl\r
542 psllq $60,%mm2\r
543 pxor (%eax,%ebx,8),%mm1\r
544 andl $15,%ebp\r
545 pxor (%esi,%edx,1),%mm1\r
546 movl %ecx,%edx\r
547 movd %mm0,%ebx\r
548 pxor %mm2,%mm0\r
549 shlb $4,%cl\r
550 psrlq $4,%mm0\r
551 movq %mm1,%mm2\r
552 psrlq $4,%mm1\r
553 pxor 8(%esi,%ecx,1),%mm0\r
554 psllq $60,%mm2\r
555 andl $240,%edx\r
556 pxor (%eax,%ebp,8),%mm1\r
557 andl $15,%ebx\r
558 pxor (%esi,%ecx,1),%mm1\r
559 movd %mm0,%ebp\r
560 pxor %mm2,%mm0\r
561 psrlq $4,%mm0\r
562 movq %mm1,%mm2\r
563 psrlq $4,%mm1\r
564 pxor 8(%esi,%edx,1),%mm0\r
565 movb (%edi),%cl\r
566 psllq $60,%mm2\r
567 pxor (%eax,%ebx,8),%mm1\r
568 andl $15,%ebp\r
569 pxor (%esi,%edx,1),%mm1\r
570 movl %ecx,%edx\r
571 movd %mm0,%ebx\r
572 pxor %mm2,%mm0\r
573 shlb $4,%cl\r
574 psrlq $4,%mm0\r
575 movq %mm1,%mm2\r
576 psrlq $4,%mm1\r
577 pxor 8(%esi,%ecx,1),%mm0\r
578 psllq $60,%mm2\r
579 andl $240,%edx\r
580 pxor (%eax,%ebp,8),%mm1\r
581 andl $15,%ebx\r
582 pxor (%esi,%ecx,1),%mm1\r
583 movd %mm0,%ebp\r
584 pxor %mm2,%mm0\r
585 psrlq $4,%mm0\r
586 movq %mm1,%mm2\r
587 psrlq $4,%mm1\r
588 pxor 8(%esi,%edx,1),%mm0\r
589 psllq $60,%mm2\r
590 pxor (%eax,%ebx,8),%mm1\r
591 andl $15,%ebp\r
592 pxor (%esi,%edx,1),%mm1\r
593 movd %mm0,%ebx\r
594 pxor %mm2,%mm0\r
595 movl 4(%eax,%ebp,8),%edi\r
596 psrlq $32,%mm0\r
597 movd %mm1,%edx\r
598 psrlq $32,%mm1\r
599 movd %mm0,%ecx\r
600 movd %mm1,%ebp\r
601 shll $4,%edi\r
602 bswap %ebx\r
603 bswap %edx\r
604 bswap %ecx\r
605 xorl %edi,%ebp\r
606 bswap %ebp\r
607 ret\r
608.size _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner\r
609.globl gcm_gmult_4bit_mmx\r
610.type gcm_gmult_4bit_mmx,@function\r
611.align 16\r
612gcm_gmult_4bit_mmx:\r
613.L_gcm_gmult_4bit_mmx_begin:\r
614 pushl %ebp\r
615 pushl %ebx\r
616 pushl %esi\r
617 pushl %edi\r
618 movl 20(%esp),%edi\r
619 movl 24(%esp),%esi\r
620 call .L005pic_point\r
621.L005pic_point:\r
622 popl %eax\r
623 leal .Lrem_4bit-.L005pic_point(%eax),%eax\r
624 movzbl 15(%edi),%ebx\r
625 call _mmx_gmult_4bit_inner\r
626 movl 20(%esp),%edi\r
627 emms\r
628 movl %ebx,12(%edi)\r
629 movl %edx,4(%edi)\r
630 movl %ecx,8(%edi)\r
631 movl %ebp,(%edi)\r
632 popl %edi\r
633 popl %esi\r
634 popl %ebx\r
635 popl %ebp\r
636 ret\r
637.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin\r
638.globl gcm_ghash_4bit_mmx\r
639.type gcm_ghash_4bit_mmx,@function\r
640.align 16\r
641gcm_ghash_4bit_mmx:\r
642.L_gcm_ghash_4bit_mmx_begin:\r
643 pushl %ebp\r
644 pushl %ebx\r
645 pushl %esi\r
646 pushl %edi\r
647 movl 20(%esp),%ebp\r
648 movl 24(%esp),%esi\r
649 movl 28(%esp),%edi\r
650 movl 32(%esp),%ecx\r
651 call .L006pic_point\r
652.L006pic_point:\r
653 popl %eax\r
654 leal .Lrem_4bit-.L006pic_point(%eax),%eax\r
655 addl %edi,%ecx\r
656 movl %ecx,32(%esp)\r
657 subl $20,%esp\r
658 movl 12(%ebp),%ebx\r
659 movl 4(%ebp),%edx\r
660 movl 8(%ebp),%ecx\r
661 movl (%ebp),%ebp\r
662 jmp .L007mmx_outer_loop\r
663.align 16\r
664.L007mmx_outer_loop:\r
665 xorl 12(%edi),%ebx\r
666 xorl 4(%edi),%edx\r
667 xorl 8(%edi),%ecx\r
668 xorl (%edi),%ebp\r
669 movl %edi,48(%esp)\r
670 movl %ebx,12(%esp)\r
671 movl %edx,4(%esp)\r
672 movl %ecx,8(%esp)\r
673 movl %ebp,(%esp)\r
674 movl %esp,%edi\r
675 shrl $24,%ebx\r
676 call _mmx_gmult_4bit_inner\r
677 movl 48(%esp),%edi\r
678 leal 16(%edi),%edi\r
679 cmpl 52(%esp),%edi\r
680 jb .L007mmx_outer_loop\r
681 movl 40(%esp),%edi\r
682 emms\r
683 movl %ebx,12(%edi)\r
684 movl %edx,4(%edi)\r
685 movl %ecx,8(%edi)\r
686 movl %ebp,(%edi)\r
687 addl $20,%esp\r
688 popl %edi\r
689 popl %esi\r
690 popl %ebx\r
691 popl %ebp\r
692 ret\r
693.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin\r
694.align 64\r
695.Lrem_4bit:\r
696.long 0,0,0,29491200,0,58982400,0,38141952\r
697.long 0,117964800,0,113901568,0,76283904,0,88997888\r
698.long 0,235929600,0,265420800,0,227803136,0,206962688\r
699.long 0,152567808,0,148504576,0,177995776,0,190709760\r
700.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67\r
701.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112\r
702.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62\r
703.byte 0\r