1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from ghash-x86.pl. */
3 #ifdef PIC
4 .text
5 .globl gcm_gmult_4bit_x86
6 .type gcm_gmult_4bit_x86,@function
7 .align 16
8 gcm_gmult_4bit_x86:
9 .L_gcm_gmult_4bit_x86_begin:
10 pushl %ebp
11 pushl %ebx
12 pushl %esi
13 pushl %edi
14 subl $84,%esp
15 movl 104(%esp),%edi
16 movl 108(%esp),%esi
17 movl (%edi),%ebp
18 movl 4(%edi),%edx
19 movl 8(%edi),%ecx
20 movl 12(%edi),%ebx
21 movl $0,16(%esp)
22 movl $471859200,20(%esp)
23 movl $943718400,24(%esp)
24 movl $610271232,28(%esp)
25 movl $1887436800,32(%esp)
26 movl $1822425088,36(%esp)
27 movl $1220542464,40(%esp)
28 movl $1423966208,44(%esp)
29 movl $3774873600,48(%esp)
30 movl $4246732800,52(%esp)
31 movl $3644850176,56(%esp)
32 movl $3311403008,60(%esp)
33 movl $2441084928,64(%esp)
34 movl $2376073216,68(%esp)
35 movl $2847932416,72(%esp)
36 movl $3051356160,76(%esp)
37 movl %ebp,(%esp)
38 movl %edx,4(%esp)
39 movl %ecx,8(%esp)
40 movl %ebx,12(%esp)
41 shrl $20,%ebx
42 andl $240,%ebx
43 movl 4(%esi,%ebx,1),%ebp
44 movl (%esi,%ebx,1),%edx
45 movl 12(%esi,%ebx,1),%ecx
46 movl 8(%esi,%ebx,1),%ebx
47 xorl %eax,%eax
48 movl $15,%edi
49 jmp .L000x86_loop
50 .align 16
51 .L000x86_loop:
52 movb %bl,%al
53 shrdl $4,%ecx,%ebx
54 andb $15,%al
55 shrdl $4,%edx,%ecx
56 shrdl $4,%ebp,%edx
57 shrl $4,%ebp
58 xorl 16(%esp,%eax,4),%ebp
59 movb (%esp,%edi,1),%al
60 andb $240,%al
61 xorl 8(%esi,%eax,1),%ebx
62 xorl 12(%esi,%eax,1),%ecx
63 xorl (%esi,%eax,1),%edx
64 xorl 4(%esi,%eax,1),%ebp
65 decl %edi
66 js .L001x86_break
67 movb %bl,%al
68 shrdl $4,%ecx,%ebx
69 andb $15,%al
70 shrdl $4,%edx,%ecx
71 shrdl $4,%ebp,%edx
72 shrl $4,%ebp
73 xorl 16(%esp,%eax,4),%ebp
74 movb (%esp,%edi,1),%al
75 shlb $4,%al
76 xorl 8(%esi,%eax,1),%ebx
77 xorl 12(%esi,%eax,1),%ecx
78 xorl (%esi,%eax,1),%edx
79 xorl 4(%esi,%eax,1),%ebp
80 jmp .L000x86_loop
81 .align 16
82 .L001x86_break:
83 bswap %ebx
84 bswap %ecx
85 bswap %edx
86 bswap %ebp
87 movl 104(%esp),%edi
88 movl %ebx,12(%edi)
89 movl %ecx,8(%edi)
90 movl %edx,4(%edi)
91 movl %ebp,(%edi)
92 addl $84,%esp
93 popl %edi
94 popl %esi
95 popl %ebx
96 popl %ebp
97 ret
98 .size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
99 .globl gcm_ghash_4bit_x86
100 .type gcm_ghash_4bit_x86,@function
101 .align 16
102 gcm_ghash_4bit_x86:
103 .L_gcm_ghash_4bit_x86_begin:
104 pushl %ebp
105 pushl %ebx
106 pushl %esi
107 pushl %edi
108 subl $84,%esp
109 movl 104(%esp),%ebx
110 movl 108(%esp),%esi
111 movl 112(%esp),%edi
112 movl 116(%esp),%ecx
113 addl %edi,%ecx
114 movl %ecx,116(%esp)
115 movl (%ebx),%ebp
116 movl 4(%ebx),%edx
117 movl 8(%ebx),%ecx
118 movl 12(%ebx),%ebx
119 movl $0,16(%esp)
120 movl $471859200,20(%esp)
121 movl $943718400,24(%esp)
122 movl $610271232,28(%esp)
123 movl $1887436800,32(%esp)
124 movl $1822425088,36(%esp)
125 movl $1220542464,40(%esp)
126 movl $1423966208,44(%esp)
127 movl $3774873600,48(%esp)
128 movl $4246732800,52(%esp)
129 movl $3644850176,56(%esp)
130 movl $3311403008,60(%esp)
131 movl $2441084928,64(%esp)
132 movl $2376073216,68(%esp)
133 movl $2847932416,72(%esp)
134 movl $3051356160,76(%esp)
135 .align 16
136 .L002x86_outer_loop:
137 xorl 12(%edi),%ebx
138 xorl 8(%edi),%ecx
139 xorl 4(%edi),%edx
140 xorl (%edi),%ebp
141 movl %ebx,12(%esp)
142 movl %ecx,8(%esp)
143 movl %edx,4(%esp)
144 movl %ebp,(%esp)
145 shrl $20,%ebx
146 andl $240,%ebx
147 movl 4(%esi,%ebx,1),%ebp
148 movl (%esi,%ebx,1),%edx
149 movl 12(%esi,%ebx,1),%ecx
150 movl 8(%esi,%ebx,1),%ebx
151 xorl %eax,%eax
152 movl $15,%edi
153 jmp .L003x86_loop
154 .align 16
155 .L003x86_loop:
156 movb %bl,%al
157 shrdl $4,%ecx,%ebx
158 andb $15,%al
159 shrdl $4,%edx,%ecx
160 shrdl $4,%ebp,%edx
161 shrl $4,%ebp
162 xorl 16(%esp,%eax,4),%ebp
163 movb (%esp,%edi,1),%al
164 andb $240,%al
165 xorl 8(%esi,%eax,1),%ebx
166 xorl 12(%esi,%eax,1),%ecx
167 xorl (%esi,%eax,1),%edx
168 xorl 4(%esi,%eax,1),%ebp
169 decl %edi
170 js .L004x86_break
171 movb %bl,%al
172 shrdl $4,%ecx,%ebx
173 andb $15,%al
174 shrdl $4,%edx,%ecx
175 shrdl $4,%ebp,%edx
176 shrl $4,%ebp
177 xorl 16(%esp,%eax,4),%ebp
178 movb (%esp,%edi,1),%al
179 shlb $4,%al
180 xorl 8(%esi,%eax,1),%ebx
181 xorl 12(%esi,%eax,1),%ecx
182 xorl (%esi,%eax,1),%edx
183 xorl 4(%esi,%eax,1),%ebp
184 jmp .L003x86_loop
185 .align 16
186 .L004x86_break:
187 bswap %ebx
188 bswap %ecx
189 bswap %edx
190 bswap %ebp
191 movl 112(%esp),%edi
192 leal 16(%edi),%edi
193 cmpl 116(%esp),%edi
194 movl %edi,112(%esp)
195 jb .L002x86_outer_loop
196 movl 104(%esp),%edi
197 movl %ebx,12(%edi)
198 movl %ecx,8(%edi)
199 movl %edx,4(%edi)
200 movl %ebp,(%edi)
201 addl $84,%esp
202 popl %edi
203 popl %esi
204 popl %ebx
205 popl %ebp
206 ret
207 .size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
208 .globl gcm_gmult_4bit_mmx
209 .type gcm_gmult_4bit_mmx,@function
210 .align 16
211 gcm_gmult_4bit_mmx:
212 .L_gcm_gmult_4bit_mmx_begin:
213 pushl %ebp
214 pushl %ebx
215 pushl %esi
216 pushl %edi
217 movl 20(%esp),%edi
218 movl 24(%esp),%esi
219 call .L005pic_point
220 .L005pic_point:
221 popl %eax
222 leal .Lrem_4bit-.L005pic_point(%eax),%eax
223 movzbl 15(%edi),%ebx
224 xorl %ecx,%ecx
225 movl %ebx,%edx
226 movb %dl,%cl
227 movl $14,%ebp
228 shlb $4,%cl
229 andl $240,%edx
230 movq 8(%esi,%ecx,1),%mm0
231 movq (%esi,%ecx,1),%mm1
232 movd %mm0,%ebx
233 jmp .L006mmx_loop
234 .align 16
235 .L006mmx_loop:
236 psrlq $4,%mm0
237 andl $15,%ebx
238 movq %mm1,%mm2
239 psrlq $4,%mm1
240 pxor 8(%esi,%edx,1),%mm0
241 movb (%edi,%ebp,1),%cl
242 psllq $60,%mm2
243 pxor (%eax,%ebx,8),%mm1
244 decl %ebp
245 movd %mm0,%ebx
246 pxor (%esi,%edx,1),%mm1
247 movl %ecx,%edx
248 pxor %mm2,%mm0
249 js .L007mmx_break
250 shlb $4,%cl
251 andl $15,%ebx
252 psrlq $4,%mm0
253 andl $240,%edx
254 movq %mm1,%mm2
255 psrlq $4,%mm1
256 pxor 8(%esi,%ecx,1),%mm0
257 psllq $60,%mm2
258 pxor (%eax,%ebx,8),%mm1
259 movd %mm0,%ebx
260 pxor (%esi,%ecx,1),%mm1
261 pxor %mm2,%mm0
262 jmp .L006mmx_loop
263 .align 16
264 .L007mmx_break:
265 shlb $4,%cl
266 andl $15,%ebx
267 psrlq $4,%mm0
268 andl $240,%edx
269 movq %mm1,%mm2
270 psrlq $4,%mm1
271 pxor 8(%esi,%ecx,1),%mm0
272 psllq $60,%mm2
273 pxor (%eax,%ebx,8),%mm1
274 movd %mm0,%ebx
275 pxor (%esi,%ecx,1),%mm1
276 pxor %mm2,%mm0
277 psrlq $4,%mm0
278 andl $15,%ebx
279 movq %mm1,%mm2
280 psrlq $4,%mm1
281 pxor 8(%esi,%edx,1),%mm0
282 psllq $60,%mm2
283 pxor (%eax,%ebx,8),%mm1
284 movd %mm0,%ebx
285 pxor (%esi,%edx,1),%mm1
286 pxor %mm2,%mm0
287 psrlq $32,%mm0
288 movd %mm1,%edx
289 psrlq $32,%mm1
290 movd %mm0,%ecx
291 movd %mm1,%ebp
292 bswap %ebx
293 bswap %edx
294 bswap %ecx
295 bswap %ebp
296 emms
297 movl %ebx,12(%edi)
298 movl %edx,4(%edi)
299 movl %ecx,8(%edi)
300 movl %ebp,(%edi)
301 popl %edi
302 popl %esi
303 popl %ebx
304 popl %ebp
305 ret
306 .size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
307 .globl gcm_ghash_4bit_mmx
308 .type gcm_ghash_4bit_mmx,@function
309 .align 16
310 gcm_ghash_4bit_mmx:
311 .L_gcm_ghash_4bit_mmx_begin:
312 pushl %ebp
313 pushl %ebx
314 pushl %esi
315 pushl %edi
316 movl 20(%esp),%eax
317 movl 24(%esp),%ebx
318 movl 28(%esp),%ecx
319 movl 32(%esp),%edx
320 movl %esp,%ebp
321 call .L008pic_point
322 .L008pic_point:
323 popl %esi
324 leal .Lrem_8bit-.L008pic_point(%esi),%esi
325 subl $544,%esp
326 andl $-64,%esp
327 subl $16,%esp
328 addl %ecx,%edx
329 movl %eax,544(%esp)
330 movl %edx,552(%esp)
331 movl %ebp,556(%esp)
332 addl $128,%ebx
333 leal 144(%esp),%edi
334 leal 400(%esp),%ebp
335 movl -120(%ebx),%edx
336 movq -120(%ebx),%mm0
337 movq -128(%ebx),%mm3
338 shll $4,%edx
339 movb %dl,(%esp)
340 movl -104(%ebx),%edx
341 movq -104(%ebx),%mm2
342 movq -112(%ebx),%mm5
343 movq %mm0,-128(%edi)
344 psrlq $4,%mm0
345 movq %mm3,(%edi)
346 movq %mm3,%mm7
347 psrlq $4,%mm3
348 shll $4,%edx
349 movb %dl,1(%esp)
350 movl -88(%ebx),%edx
351 movq -88(%ebx),%mm1
352 psllq $60,%mm7
353 movq -96(%ebx),%mm4
354 por %mm7,%mm0
355 movq %mm2,-120(%edi)
356 psrlq $4,%mm2
357 movq %mm5,8(%edi)
358 movq %mm5,%mm6
359 movq %mm0,-128(%ebp)
360 psrlq $4,%mm5
361 movq %mm3,(%ebp)
362 shll $4,%edx
363 movb %dl,2(%esp)
364 movl -72(%ebx),%edx
365 movq -72(%ebx),%mm0
366 psllq $60,%mm6
367 movq -80(%ebx),%mm3
368 por %mm6,%mm2
369 movq %mm1,-112(%edi)
370 psrlq $4,%mm1
371 movq %mm4,16(%edi)
372 movq %mm4,%mm7
373 movq %mm2,-120(%ebp)
374 psrlq $4,%mm4
375 movq %mm5,8(%ebp)
376 shll $4,%edx
377 movb %dl,3(%esp)
378 movl -56(%ebx),%edx
379 movq -56(%ebx),%mm2
380 psllq $60,%mm7
381 movq -64(%ebx),%mm5
382 por %mm7,%mm1
383 movq %mm0,-104(%edi)
384 psrlq $4,%mm0
385 movq %mm3,24(%edi)
386 movq %mm3,%mm6
387 movq %mm1,-112(%ebp)
388 psrlq $4,%mm3
389 movq %mm4,16(%ebp)
390 shll $4,%edx
391 movb %dl,4(%esp)
392 movl -40(%ebx),%edx
393 movq -40(%ebx),%mm1
394 psllq $60,%mm6
395 movq -48(%ebx),%mm4
396 por %mm6,%mm0
397 movq %mm2,-96(%edi)
398 psrlq $4,%mm2
399 movq %mm5,32(%edi)
400 movq %mm5,%mm7
401 movq %mm0,-104(%ebp)
402 psrlq $4,%mm5
403 movq %mm3,24(%ebp)
404 shll $4,%edx
405 movb %dl,5(%esp)
406 movl -24(%ebx),%edx
407 movq -24(%ebx),%mm0
408 psllq $60,%mm7
409 movq -32(%ebx),%mm3
410 por %mm7,%mm2
411 movq %mm1,-88(%edi)
412 psrlq $4,%mm1
413 movq %mm4,40(%edi)
414 movq %mm4,%mm6
415 movq %mm2,-96(%ebp)
416 psrlq $4,%mm4
417 movq %mm5,32(%ebp)
418 shll $4,%edx
419 movb %dl,6(%esp)
420 movl -8(%ebx),%edx
421 movq -8(%ebx),%mm2
422 psllq $60,%mm6
423 movq -16(%ebx),%mm5
424 por %mm6,%mm1
425 movq %mm0,-80(%edi)
426 psrlq $4,%mm0
427 movq %mm3,48(%edi)
428 movq %mm3,%mm7
429 movq %mm1,-88(%ebp)
430 psrlq $4,%mm3
431 movq %mm4,40(%ebp)
432 shll $4,%edx
433 movb %dl,7(%esp)
434 movl 8(%ebx),%edx
435 movq 8(%ebx),%mm1
436 psllq $60,%mm7
437 movq (%ebx),%mm4
438 por %mm7,%mm0
439 movq %mm2,-72(%edi)
440 psrlq $4,%mm2
441 movq %mm5,56(%edi)
442 movq %mm5,%mm6
443 movq %mm0,-80(%ebp)
444 psrlq $4,%mm5
445 movq %mm3,48(%ebp)
446 shll $4,%edx
447 movb %dl,8(%esp)
448 movl 24(%ebx),%edx
449 movq 24(%ebx),%mm0
450 psllq $60,%mm6
451 movq 16(%ebx),%mm3
452 por %mm6,%mm2
453 movq %mm1,-64(%edi)
454 psrlq $4,%mm1
455 movq %mm4,64(%edi)
456 movq %mm4,%mm7
457 movq %mm2,-72(%ebp)
458 psrlq $4,%mm4
459 movq %mm5,56(%ebp)
460 shll $4,%edx
461 movb %dl,9(%esp)
462 movl 40(%ebx),%edx
463 movq 40(%ebx),%mm2
464 psllq $60,%mm7
465 movq 32(%ebx),%mm5
466 por %mm7,%mm1
467 movq %mm0,-56(%edi)
468 psrlq $4,%mm0
469 movq %mm3,72(%edi)
470 movq %mm3,%mm6
471 movq %mm1,-64(%ebp)
472 psrlq $4,%mm3
473 movq %mm4,64(%ebp)
474 shll $4,%edx
475 movb %dl,10(%esp)
476 movl 56(%ebx),%edx
477 movq 56(%ebx),%mm1
478 psllq $60,%mm6
479 movq 48(%ebx),%mm4
480 por %mm6,%mm0
481 movq %mm2,-48(%edi)
482 psrlq $4,%mm2
483 movq %mm5,80(%edi)
484 movq %mm5,%mm7
485 movq %mm0,-56(%ebp)
486 psrlq $4,%mm5
487 movq %mm3,72(%ebp)
488 shll $4,%edx
489 movb %dl,11(%esp)
490 movl 72(%ebx),%edx
491 movq 72(%ebx),%mm0
492 psllq $60,%mm7
493 movq 64(%ebx),%mm3
494 por %mm7,%mm2
495 movq %mm1,-40(%edi)
496 psrlq $4,%mm1
497 movq %mm4,88(%edi)
498 movq %mm4,%mm6
499 movq %mm2,-48(%ebp)
500 psrlq $4,%mm4
501 movq %mm5,80(%ebp)
502 shll $4,%edx
503 movb %dl,12(%esp)
504 movl 88(%ebx),%edx
505 movq 88(%ebx),%mm2
506 psllq $60,%mm6
507 movq 80(%ebx),%mm5
508 por %mm6,%mm1
509 movq %mm0,-32(%edi)
510 psrlq $4,%mm0
511 movq %mm3,96(%edi)
512 movq %mm3,%mm7
513 movq %mm1,-40(%ebp)
514 psrlq $4,%mm3
515 movq %mm4,88(%ebp)
516 shll $4,%edx
517 movb %dl,13(%esp)
518 movl 104(%ebx),%edx
519 movq 104(%ebx),%mm1
520 psllq $60,%mm7
521 movq 96(%ebx),%mm4
522 por %mm7,%mm0
523 movq %mm2,-24(%edi)
524 psrlq $4,%mm2
525 movq %mm5,104(%edi)
526 movq %mm5,%mm6
527 movq %mm0,-32(%ebp)
528 psrlq $4,%mm5
529 movq %mm3,96(%ebp)
530 shll $4,%edx
531 movb %dl,14(%esp)
532 movl 120(%ebx),%edx
533 movq 120(%ebx),%mm0
534 psllq $60,%mm6
535 movq 112(%ebx),%mm3
536 por %mm6,%mm2
537 movq %mm1,-16(%edi)
538 psrlq $4,%mm1
539 movq %mm4,112(%edi)
540 movq %mm4,%mm7
541 movq %mm2,-24(%ebp)
542 psrlq $4,%mm4
543 movq %mm5,104(%ebp)
544 shll $4,%edx
545 movb %dl,15(%esp)
546 psllq $60,%mm7
547 por %mm7,%mm1
548 movq %mm0,-8(%edi)
549 psrlq $4,%mm0
550 movq %mm3,120(%edi)
551 movq %mm3,%mm6
552 movq %mm1,-16(%ebp)
553 psrlq $4,%mm3
554 movq %mm4,112(%ebp)
555 psllq $60,%mm6
556 por %mm6,%mm0
557 movq %mm0,-8(%ebp)
558 movq %mm3,120(%ebp)
559 movq (%eax),%mm6
560 movl 8(%eax),%ebx
561 movl 12(%eax),%edx
562 .align 16
563 .L009outer:
564 xorl 12(%ecx),%edx
565 xorl 8(%ecx),%ebx
566 pxor (%ecx),%mm6
567 leal 16(%ecx),%ecx
568 movl %ebx,536(%esp)
569 movq %mm6,528(%esp)
570 movl %ecx,548(%esp)
571 xorl %eax,%eax
572 roll $8,%edx
573 movb %dl,%al
574 movl %eax,%ebp
575 andb $15,%al
576 shrl $4,%ebp
577 pxor %mm0,%mm0
578 roll $8,%edx
579 pxor %mm1,%mm1
580 pxor %mm2,%mm2
581 movq 16(%esp,%eax,8),%mm7
582 movq 144(%esp,%eax,8),%mm6
583 movb %dl,%al
584 movd %mm7,%ebx
585 psrlq $8,%mm7
586 movq %mm6,%mm3
587 movl %eax,%edi
588 psrlq $8,%mm6
589 pxor 272(%esp,%ebp,8),%mm7
590 andb $15,%al
591 psllq $56,%mm3
592 shrl $4,%edi
593 pxor 16(%esp,%eax,8),%mm7
594 roll $8,%edx
595 pxor 144(%esp,%eax,8),%mm6
596 pxor %mm3,%mm7
597 pxor 400(%esp,%ebp,8),%mm6
598 xorb (%esp,%ebp,1),%bl
599 movb %dl,%al
600 movd %mm7,%ecx
601 movzbl %bl,%ebx
602 psrlq $8,%mm7
603 movq %mm6,%mm3
604 movl %eax,%ebp
605 psrlq $8,%mm6
606 pxor 272(%esp,%edi,8),%mm7
607 andb $15,%al
608 psllq $56,%mm3
609 shrl $4,%ebp
610 pinsrw $2,(%esi,%ebx,2),%mm2
611 pxor 16(%esp,%eax,8),%mm7
612 roll $8,%edx
613 pxor 144(%esp,%eax,8),%mm6
614 pxor %mm3,%mm7
615 pxor 400(%esp,%edi,8),%mm6
616 xorb (%esp,%edi,1),%cl
617 movb %dl,%al
618 movl 536(%esp),%edx
619 movd %mm7,%ebx
620 movzbl %cl,%ecx
621 psrlq $8,%mm7
622 movq %mm6,%mm3
623 movl %eax,%edi
624 psrlq $8,%mm6
625 pxor 272(%esp,%ebp,8),%mm7
626 andb $15,%al
627 psllq $56,%mm3
628 pxor %mm2,%mm6
629 shrl $4,%edi
630 pinsrw $2,(%esi,%ecx,2),%mm1
631 pxor 16(%esp,%eax,8),%mm7
632 roll $8,%edx
633 pxor 144(%esp,%eax,8),%mm6
634 pxor %mm3,%mm7
635 pxor 400(%esp,%ebp,8),%mm6
636 xorb (%esp,%ebp,1),%bl
637 movb %dl,%al
638 movd %mm7,%ecx
639 movzbl %bl,%ebx
640 psrlq $8,%mm7
641 movq %mm6,%mm3
642 movl %eax,%ebp
643 psrlq $8,%mm6
644 pxor 272(%esp,%edi,8),%mm7
645 andb $15,%al
646 psllq $56,%mm3
647 pxor %mm1,%mm6
648 shrl $4,%ebp
649 pinsrw $2,(%esi,%ebx,2),%mm0
650 pxor 16(%esp,%eax,8),%mm7
651 roll $8,%edx
652 pxor 144(%esp,%eax,8),%mm6
653 pxor %mm3,%mm7
654 pxor 400(%esp,%edi,8),%mm6
655 xorb (%esp,%edi,1),%cl
656 movb %dl,%al
657 movd %mm7,%ebx
658 movzbl %cl,%ecx
659 psrlq $8,%mm7
660 movq %mm6,%mm3
661 movl %eax,%edi
662 psrlq $8,%mm6
663 pxor 272(%esp,%ebp,8),%mm7
664 andb $15,%al
665 psllq $56,%mm3
666 pxor %mm0,%mm6
667 shrl $4,%edi
668 pinsrw $2,(%esi,%ecx,2),%mm2
669 pxor 16(%esp,%eax,8),%mm7
670 roll $8,%edx
671 pxor 144(%esp,%eax,8),%mm6
672 pxor %mm3,%mm7
673 pxor 400(%esp,%ebp,8),%mm6
674 xorb (%esp,%ebp,1),%bl
675 movb %dl,%al
676 movd %mm7,%ecx
677 movzbl %bl,%ebx
678 psrlq $8,%mm7
679 movq %mm6,%mm3
680 movl %eax,%ebp
681 psrlq $8,%mm6
682 pxor 272(%esp,%edi,8),%mm7
683 andb $15,%al
684 psllq $56,%mm3
685 pxor %mm2,%mm6
686 shrl $4,%ebp
687 pinsrw $2,(%esi,%ebx,2),%mm1
688 pxor 16(%esp,%eax,8),%mm7
689 roll $8,%edx
690 pxor 144(%esp,%eax,8),%mm6
691 pxor %mm3,%mm7
692 pxor 400(%esp,%edi,8),%mm6
693 xorb (%esp,%edi,1),%cl
694 movb %dl,%al
695 movl 532(%esp),%edx
696 movd %mm7,%ebx
697 movzbl %cl,%ecx
698 psrlq $8,%mm7
699 movq %mm6,%mm3
700 movl %eax,%edi
701 psrlq $8,%mm6
702 pxor 272(%esp,%ebp,8),%mm7
703 andb $15,%al
704 psllq $56,%mm3
705 pxor %mm1,%mm6
706 shrl $4,%edi
707 pinsrw $2,(%esi,%ecx,2),%mm0
708 pxor 16(%esp,%eax,8),%mm7
709 roll $8,%edx
710 pxor 144(%esp,%eax,8),%mm6
711 pxor %mm3,%mm7
712 pxor 400(%esp,%ebp,8),%mm6
713 xorb (%esp,%ebp,1),%bl
714 movb %dl,%al
715 movd %mm7,%ecx
716 movzbl %bl,%ebx
717 psrlq $8,%mm7
718 movq %mm6,%mm3
719 movl %eax,%ebp
720 psrlq $8,%mm6
721 pxor 272(%esp,%edi,8),%mm7
722 andb $15,%al
723 psllq $56,%mm3
724 pxor %mm0,%mm6
725 shrl $4,%ebp
726 pinsrw $2,(%esi,%ebx,2),%mm2
727 pxor 16(%esp,%eax,8),%mm7
728 roll $8,%edx
729 pxor 144(%esp,%eax,8),%mm6
730 pxor %mm3,%mm7
731 pxor 400(%esp,%edi,8),%mm6
732 xorb (%esp,%edi,1),%cl
733 movb %dl,%al
734 movd %mm7,%ebx
735 movzbl %cl,%ecx
736 psrlq $8,%mm7
737 movq %mm6,%mm3
738 movl %eax,%edi
739 psrlq $8,%mm6
740 pxor 272(%esp,%ebp,8),%mm7
741 andb $15,%al
742 psllq $56,%mm3
743 pxor %mm2,%mm6
744 shrl $4,%edi
745 pinsrw $2,(%esi,%ecx,2),%mm1
746 pxor 16(%esp,%eax,8),%mm7
747 roll $8,%edx
748 pxor 144(%esp,%eax,8),%mm6
749 pxor %mm3,%mm7
750 pxor 400(%esp,%ebp,8),%mm6
751 xorb (%esp,%ebp,1),%bl
752 movb %dl,%al
753 movd %mm7,%ecx
754 movzbl %bl,%ebx
755 psrlq $8,%mm7
756 movq %mm6,%mm3
757 movl %eax,%ebp
758 psrlq $8,%mm6
759 pxor 272(%esp,%edi,8),%mm7
760 andb $15,%al
761 psllq $56,%mm3
762 pxor %mm1,%mm6
763 shrl $4,%ebp
764 pinsrw $2,(%esi,%ebx,2),%mm0
765 pxor 16(%esp,%eax,8),%mm7
766 roll $8,%edx
767 pxor 144(%esp,%eax,8),%mm6
768 pxor %mm3,%mm7
769 pxor 400(%esp,%edi,8),%mm6
770 xorb (%esp,%edi,1),%cl
771 movb %dl,%al
772 movl 528(%esp),%edx
773 movd %mm7,%ebx
774 movzbl %cl,%ecx
775 psrlq $8,%mm7
776 movq %mm6,%mm3
777 movl %eax,%edi
778 psrlq $8,%mm6
779 pxor 272(%esp,%ebp,8),%mm7
780 andb $15,%al
781 psllq $56,%mm3
782 pxor %mm0,%mm6
783 shrl $4,%edi
784 pinsrw $2,(%esi,%ecx,2),%mm2
785 pxor 16(%esp,%eax,8),%mm7
786 roll $8,%edx
787 pxor 144(%esp,%eax,8),%mm6
788 pxor %mm3,%mm7
789 pxor 400(%esp,%ebp,8),%mm6
790 xorb (%esp,%ebp,1),%bl
791 movb %dl,%al
792 movd %mm7,%ecx
793 movzbl %bl,%ebx
794 psrlq $8,%mm7
795 movq %mm6,%mm3
796 movl %eax,%ebp
797 psrlq $8,%mm6
798 pxor 272(%esp,%edi,8),%mm7
799 andb $15,%al
800 psllq $56,%mm3
801 pxor %mm2,%mm6
802 shrl $4,%ebp
803 pinsrw $2,(%esi,%ebx,2),%mm1
804 pxor 16(%esp,%eax,8),%mm7
805 roll $8,%edx
806 pxor 144(%esp,%eax,8),%mm6
807 pxor %mm3,%mm7
808 pxor 400(%esp,%edi,8),%mm6
809 xorb (%esp,%edi,1),%cl
810 movb %dl,%al
811 movd %mm7,%ebx
812 movzbl %cl,%ecx
813 psrlq $8,%mm7
814 movq %mm6,%mm3
815 movl %eax,%edi
816 psrlq $8,%mm6
817 pxor 272(%esp,%ebp,8),%mm7
818 andb $15,%al
819 psllq $56,%mm3
820 pxor %mm1,%mm6
821 shrl $4,%edi
822 pinsrw $2,(%esi,%ecx,2),%mm0
823 pxor 16(%esp,%eax,8),%mm7
824 roll $8,%edx
825 pxor 144(%esp,%eax,8),%mm6
826 pxor %mm3,%mm7
827 pxor 400(%esp,%ebp,8),%mm6
828 xorb (%esp,%ebp,1),%bl
829 movb %dl,%al
830 movd %mm7,%ecx
831 movzbl %bl,%ebx
832 psrlq $8,%mm7
833 movq %mm6,%mm3
834 movl %eax,%ebp
835 psrlq $8,%mm6
836 pxor 272(%esp,%edi,8),%mm7
837 andb $15,%al
838 psllq $56,%mm3
839 pxor %mm0,%mm6
840 shrl $4,%ebp
841 pinsrw $2,(%esi,%ebx,2),%mm2
842 pxor 16(%esp,%eax,8),%mm7
843 roll $8,%edx
844 pxor 144(%esp,%eax,8),%mm6
845 pxor %mm3,%mm7
846 pxor 400(%esp,%edi,8),%mm6
847 xorb (%esp,%edi,1),%cl
848 movb %dl,%al
849 movl 524(%esp),%edx
850 movd %mm7,%ebx
851 movzbl %cl,%ecx
852 psrlq $8,%mm7
853 movq %mm6,%mm3
854 movl %eax,%edi
855 psrlq $8,%mm6
856 pxor 272(%esp,%ebp,8),%mm7
857 andb $15,%al
858 psllq $56,%mm3
859 pxor %mm2,%mm6
860 shrl $4,%edi
861 pinsrw $2,(%esi,%ecx,2),%mm1
862 pxor 16(%esp,%eax,8),%mm7
863 pxor 144(%esp,%eax,8),%mm6
864 xorb (%esp,%ebp,1),%bl
865 pxor %mm3,%mm7
866 pxor 400(%esp,%ebp,8),%mm6
867 movzbl %bl,%ebx
868 pxor %mm2,%mm2
869 psllq $4,%mm1
870 movd %mm7,%ecx
871 psrlq $4,%mm7
872 movq %mm6,%mm3
873 psrlq $4,%mm6
874 shll $4,%ecx
875 pxor 16(%esp,%edi,8),%mm7
876 psllq $60,%mm3
877 movzbl %cl,%ecx
878 pxor %mm3,%mm7
879 pxor 144(%esp,%edi,8),%mm6
880 pinsrw $2,(%esi,%ebx,2),%mm0
881 pxor %mm1,%mm6
882 movd %mm7,%edx
883 pinsrw $3,(%esi,%ecx,2),%mm2
884 psllq $12,%mm0
885 pxor %mm0,%mm6
886 psrlq $32,%mm7
887 pxor %mm2,%mm6
888 movl 548(%esp),%ecx
889 movd %mm7,%ebx
890 movq %mm6,%mm3
891 psllw $8,%mm6
892 psrlw $8,%mm3
893 por %mm3,%mm6
894 bswap %edx
895 pshufw $27,%mm6,%mm6
896 bswap %ebx
897 cmpl 552(%esp),%ecx
898 jne .L009outer
899 movl 544(%esp),%eax
900 movl %edx,12(%eax)
901 movl %ebx,8(%eax)
902 movq %mm6,(%eax)
903 movl 556(%esp),%esp
904 emms
905 popl %edi
906 popl %esi
907 popl %ebx
908 popl %ebp
909 ret
910 .size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
911 .globl gcm_init_clmul
912 .type gcm_init_clmul,@function
913 .align 16
914 gcm_init_clmul:
915 .L_gcm_init_clmul_begin:
916 movl 4(%esp),%edx
917 movl 8(%esp),%eax
918 call .L010pic
919 .L010pic:
920 popl %ecx
921 leal .Lbswap-.L010pic(%ecx),%ecx
922 movdqu (%eax),%xmm2
923 pshufd $78,%xmm2,%xmm2
924 pshufd $255,%xmm2,%xmm4
925 movdqa %xmm2,%xmm3
926 psllq $1,%xmm2
927 pxor %xmm5,%xmm5
928 psrlq $63,%xmm3
929 pcmpgtd %xmm4,%xmm5
930 pslldq $8,%xmm3
931 por %xmm3,%xmm2
932 pand 16(%ecx),%xmm5
933 pxor %xmm5,%xmm2
934 movdqa %xmm2,%xmm0
935 movdqa %xmm0,%xmm1
936 pshufd $78,%xmm0,%xmm3
937 pshufd $78,%xmm2,%xmm4
938 pxor %xmm0,%xmm3
939 pxor %xmm2,%xmm4
940 .byte 102,15,58,68,194,0
941 .byte 102,15,58,68,202,17
942 .byte 102,15,58,68,220,0
943 xorps %xmm0,%xmm3
944 xorps %xmm1,%xmm3
945 movdqa %xmm3,%xmm4
946 psrldq $8,%xmm3
947 pslldq $8,%xmm4
948 pxor %xmm3,%xmm1
949 pxor %xmm4,%xmm0
950 movdqa %xmm0,%xmm4
951 movdqa %xmm0,%xmm3
952 psllq $5,%xmm0
953 pxor %xmm0,%xmm3
954 psllq $1,%xmm0
955 pxor %xmm3,%xmm0
956 psllq $57,%xmm0
957 movdqa %xmm0,%xmm3
958 pslldq $8,%xmm0
959 psrldq $8,%xmm3
960 pxor %xmm4,%xmm0
961 pxor %xmm3,%xmm1
962 movdqa %xmm0,%xmm4
963 psrlq $1,%xmm0
964 pxor %xmm4,%xmm1
965 pxor %xmm0,%xmm4
966 psrlq $5,%xmm0
967 pxor %xmm4,%xmm0
968 psrlq $1,%xmm0
969 pxor %xmm1,%xmm0
970 pshufd $78,%xmm2,%xmm3
971 pshufd $78,%xmm0,%xmm4
972 pxor %xmm2,%xmm3
973 movdqu %xmm2,(%edx)
974 pxor %xmm0,%xmm4
975 movdqu %xmm0,16(%edx)
976 .byte 102,15,58,15,227,8
977 movdqu %xmm4,32(%edx)
978 ret
979 .size gcm_init_clmul,.-.L_gcm_init_clmul_begin
980 .globl gcm_gmult_clmul
981 .type gcm_gmult_clmul,@function
982 .align 16
983 gcm_gmult_clmul:
984 .L_gcm_gmult_clmul_begin:
985 movl 4(%esp),%eax
986 movl 8(%esp),%edx
987 call .L011pic
988 .L011pic:
989 popl %ecx
990 leal .Lbswap-.L011pic(%ecx),%ecx
991 movdqu (%eax),%xmm0
992 movdqa (%ecx),%xmm5
993 movups (%edx),%xmm2
994 .byte 102,15,56,0,197
995 movups 32(%edx),%xmm4
996 movdqa %xmm0,%xmm1
997 pshufd $78,%xmm0,%xmm3
998 pxor %xmm0,%xmm3
999 .byte 102,15,58,68,194,0
1000 .byte 102,15,58,68,202,17
1001 .byte 102,15,58,68,220,0
1002 xorps %xmm0,%xmm3
1003 xorps %xmm1,%xmm3
1004 movdqa %xmm3,%xmm4
1005 psrldq $8,%xmm3
1006 pslldq $8,%xmm4
1007 pxor %xmm3,%xmm1
1008 pxor %xmm4,%xmm0
1009 movdqa %xmm0,%xmm4
1010 movdqa %xmm0,%xmm3
1011 psllq $5,%xmm0
1012 pxor %xmm0,%xmm3
1013 psllq $1,%xmm0
1014 pxor %xmm3,%xmm0
1015 psllq $57,%xmm0
1016 movdqa %xmm0,%xmm3
1017 pslldq $8,%xmm0
1018 psrldq $8,%xmm3
1019 pxor %xmm4,%xmm0
1020 pxor %xmm3,%xmm1
1021 movdqa %xmm0,%xmm4
1022 psrlq $1,%xmm0
1023 pxor %xmm4,%xmm1
1024 pxor %xmm0,%xmm4
1025 psrlq $5,%xmm0
1026 pxor %xmm4,%xmm0
1027 psrlq $1,%xmm0
1028 pxor %xmm1,%xmm0
1029 .byte 102,15,56,0,197
1030 movdqu %xmm0,(%eax)
1031 ret
1032 .size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin
1033 .globl gcm_ghash_clmul
1034 .type gcm_ghash_clmul,@function
1035 .align 16
1036 gcm_ghash_clmul:
1037 .L_gcm_ghash_clmul_begin:
1038 pushl %ebp
1039 pushl %ebx
1040 pushl %esi
1041 pushl %edi
1042 movl 20(%esp),%eax
1043 movl 24(%esp),%edx
1044 movl 28(%esp),%esi
1045 movl 32(%esp),%ebx
1046 call .L012pic
1047 .L012pic:
1048 popl %ecx
1049 leal .Lbswap-.L012pic(%ecx),%ecx
1050 movdqu (%eax),%xmm0
1051 movdqa (%ecx),%xmm5
1052 movdqu (%edx),%xmm2
1053 .byte 102,15,56,0,197
1054 subl $16,%ebx
1055 jz .L013odd_tail
1056 movdqu (%esi),%xmm3
1057 movdqu 16(%esi),%xmm6
1058 .byte 102,15,56,0,221
1059 .byte 102,15,56,0,245
1060 movdqu 32(%edx),%xmm5
1061 pxor %xmm3,%xmm0
1062 pshufd $78,%xmm6,%xmm3
1063 movdqa %xmm6,%xmm7
1064 pxor %xmm6,%xmm3
1065 leal 32(%esi),%esi
1066 .byte 102,15,58,68,242,0
1067 .byte 102,15,58,68,250,17
1068 .byte 102,15,58,68,221,0
1069 movups 16(%edx),%xmm2
1070 nop
1071 subl $32,%ebx
1072 jbe .L014even_tail
1073 jmp .L015mod_loop
1074 .align 32
1075 .L015mod_loop:
1076 pshufd $78,%xmm0,%xmm4
1077 movdqa %xmm0,%xmm1
1078 pxor %xmm0,%xmm4
1079 nop
1080 .byte 102,15,58,68,194,0
1081 .byte 102,15,58,68,202,17
1082 .byte 102,15,58,68,229,16
1083 movups (%edx),%xmm2
1084 xorps %xmm6,%xmm0
1085 movdqa (%ecx),%xmm5
1086 xorps %xmm7,%xmm1
1087 movdqu (%esi),%xmm7
1088 pxor %xmm0,%xmm3
1089 movdqu 16(%esi),%xmm6
1090 pxor %xmm1,%xmm3
1091 .byte 102,15,56,0,253
1092 pxor %xmm3,%xmm4
1093 movdqa %xmm4,%xmm3
1094 psrldq $8,%xmm4
1095 pslldq $8,%xmm3
1096 pxor %xmm4,%xmm1
1097 pxor %xmm3,%xmm0
1098 .byte 102,15,56,0,245
1099 pxor %xmm7,%xmm1
1100 movdqa %xmm6,%xmm7
1101 movdqa %xmm0,%xmm4
1102 movdqa %xmm0,%xmm3
1103 psllq $5,%xmm0
1104 pxor %xmm0,%xmm3
1105 psllq $1,%xmm0
1106 pxor %xmm3,%xmm0
1107 .byte 102,15,58,68,242,0
1108 movups 32(%edx),%xmm5
1109 psllq $57,%xmm0
1110 movdqa %xmm0,%xmm3
1111 pslldq $8,%xmm0
1112 psrldq $8,%xmm3
1113 pxor %xmm4,%xmm0
1114 pxor %xmm3,%xmm1
1115 pshufd $78,%xmm7,%xmm3
1116 movdqa %xmm0,%xmm4
1117 psrlq $1,%xmm0
1118 pxor %xmm7,%xmm3
1119 pxor %xmm4,%xmm1
1120 .byte 102,15,58,68,250,17
1121 movups 16(%edx),%xmm2
1122 pxor %xmm0,%xmm4
1123 psrlq $5,%xmm0
1124 pxor %xmm4,%xmm0
1125 psrlq $1,%xmm0
1126 pxor %xmm1,%xmm0
1127 .byte 102,15,58,68,221,0
1128 leal 32(%esi),%esi
1129 subl $32,%ebx
1130 ja .L015mod_loop
1131 .L014even_tail:
1132 pshufd $78,%xmm0,%xmm4
1133 movdqa %xmm0,%xmm1
1134 pxor %xmm0,%xmm4
1135 .byte 102,15,58,68,194,0
1136 .byte 102,15,58,68,202,17
1137 .byte 102,15,58,68,229,16
1138 movdqa (%ecx),%xmm5
1139 xorps %xmm6,%xmm0
1140 xorps %xmm7,%xmm1
1141 pxor %xmm0,%xmm3
1142 pxor %xmm1,%xmm3
1143 pxor %xmm3,%xmm4
1144 movdqa %xmm4,%xmm3
1145 psrldq $8,%xmm4
1146 pslldq $8,%xmm3
1147 pxor %xmm4,%xmm1
1148 pxor %xmm3,%xmm0
1149 movdqa %xmm0,%xmm4
1150 movdqa %xmm0,%xmm3
1151 psllq $5,%xmm0
1152 pxor %xmm0,%xmm3
1153 psllq $1,%xmm0
1154 pxor %xmm3,%xmm0
1155 psllq $57,%xmm0
1156 movdqa %xmm0,%xmm3
1157 pslldq $8,%xmm0
1158 psrldq $8,%xmm3
1159 pxor %xmm4,%xmm0
1160 pxor %xmm3,%xmm1
1161 movdqa %xmm0,%xmm4
1162 psrlq $1,%xmm0
1163 pxor %xmm4,%xmm1
1164 pxor %xmm0,%xmm4
1165 psrlq $5,%xmm0
1166 pxor %xmm4,%xmm0
1167 psrlq $1,%xmm0
1168 pxor %xmm1,%xmm0
1169 testl %ebx,%ebx
1170 jnz .L016done
1171 movups (%edx),%xmm2
1172 .L013odd_tail:
1173 movdqu (%esi),%xmm3
1174 .byte 102,15,56,0,221
1175 pxor %xmm3,%xmm0
1176 movdqa %xmm0,%xmm1
1177 pshufd $78,%xmm0,%xmm3
1178 pshufd $78,%xmm2,%xmm4
1179 pxor %xmm0,%xmm3
1180 pxor %xmm2,%xmm4
1181 .byte 102,15,58,68,194,0
1182 .byte 102,15,58,68,202,17
1183 .byte 102,15,58,68,220,0
1184 xorps %xmm0,%xmm3
1185 xorps %xmm1,%xmm3
1186 movdqa %xmm3,%xmm4
1187 psrldq $8,%xmm3
1188 pslldq $8,%xmm4
1189 pxor %xmm3,%xmm1
1190 pxor %xmm4,%xmm0
1191 movdqa %xmm0,%xmm4
1192 movdqa %xmm0,%xmm3
1193 psllq $5,%xmm0
1194 pxor %xmm0,%xmm3
1195 psllq $1,%xmm0
1196 pxor %xmm3,%xmm0
1197 psllq $57,%xmm0
1198 movdqa %xmm0,%xmm3
1199 pslldq $8,%xmm0
1200 psrldq $8,%xmm3
1201 pxor %xmm4,%xmm0
1202 pxor %xmm3,%xmm1
1203 movdqa %xmm0,%xmm4
1204 psrlq $1,%xmm0
1205 pxor %xmm4,%xmm1
1206 pxor %xmm0,%xmm4
1207 psrlq $5,%xmm0
1208 pxor %xmm4,%xmm0
1209 psrlq $1,%xmm0
1210 pxor %xmm1,%xmm0
1211 .L016done:
1212 .byte 102,15,56,0,197
1213 movdqu %xmm0,(%eax)
1214 popl %edi
1215 popl %esi
1216 popl %ebx
1217 popl %ebp
1218 ret
1219 .size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin
1220 .align 64
1221 .Lbswap:
1222 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
1223 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
1224 .align 64
1225 .Lrem_8bit:
1226 .value 0,450,900,582,1800,1738,1164,1358
1227 .value 3600,4050,3476,3158,2328,2266,2716,2910
1228 .value 7200,7650,8100,7782,6952,6890,6316,6510
1229 .value 4656,5106,4532,4214,5432,5370,5820,6014
1230 .value 14400,14722,15300,14854,16200,16010,15564,15630
1231 .value 13904,14226,13780,13334,12632,12442,13020,13086
1232 .value 9312,9634,10212,9766,9064,8874,8428,8494
1233 .value 10864,11186,10740,10294,11640,11450,12028,12094
1234 .value 28800,28994,29444,29382,30600,30282,29708,30158
1235 .value 32400,32594,32020,31958,31128,30810,31260,31710
1236 .value 27808,28002,28452,28390,27560,27242,26668,27118
1237 .value 25264,25458,24884,24822,26040,25722,26172,26622
1238 .value 18624,18690,19268,19078,20424,19978,19532,19854
1239 .value 18128,18194,17748,17558,16856,16410,16988,17310
1240 .value 21728,21794,22372,22182,21480,21034,20588,20910
1241 .value 23280,23346,22900,22710,24056,23610,24188,24510
1242 .value 57600,57538,57988,58182,58888,59338,58764,58446
1243 .value 61200,61138,60564,60758,59416,59866,60316,59998
1244 .value 64800,64738,65188,65382,64040,64490,63916,63598
1245 .value 62256,62194,61620,61814,62520,62970,63420,63102
1246 .value 55616,55426,56004,56070,56904,57226,56780,56334
1247 .value 55120,54930,54484,54550,53336,53658,54236,53790
1248 .value 50528,50338,50916,50982,49768,50090,49644,49198
1249 .value 52080,51890,51444,51510,52344,52666,53244,52798
1250 .value 37248,36930,37380,37830,38536,38730,38156,38094
1251 .value 40848,40530,39956,40406,39064,39258,39708,39646
1252 .value 36256,35938,36388,36838,35496,35690,35116,35054
1253 .value 33712,33394,32820,33270,33976,34170,34620,34558
1254 .value 43456,43010,43588,43910,44744,44810,44364,44174
1255 .value 42960,42514,42068,42390,41176,41242,41820,41630
1256 .value 46560,46114,46692,47014,45800,45866,45420,45230
1257 .value 48112,47666,47220,47542,48376,48442,49020,48830
1258 .align 64
1259 .Lrem_4bit:
1260 .long 0,0,0,471859200,0,943718400,0,610271232
1261 .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208
1262 .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008
1263 .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160
1264 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
1265 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
1266 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
1267 .byte 0
1268 #else
1269 .text
1270 .globl gcm_gmult_4bit_x86
1271 .type gcm_gmult_4bit_x86,@function
1272 .align 16
1273 gcm_gmult_4bit_x86:
1274 .L_gcm_gmult_4bit_x86_begin:
1275 pushl %ebp
1276 pushl %ebx
1277 pushl %esi
1278 pushl %edi
1279 subl $84,%esp
1280 movl 104(%esp),%edi
1281 movl 108(%esp),%esi
1282 movl (%edi),%ebp
1283 movl 4(%edi),%edx
1284 movl 8(%edi),%ecx
1285 movl 12(%edi),%ebx
1286 movl $0,16(%esp)
1287 movl $471859200,20(%esp)
1288 movl $943718400,24(%esp)
1289 movl $610271232,28(%esp)
1290 movl $1887436800,32(%esp)
1291 movl $1822425088,36(%esp)
1292 movl $1220542464,40(%esp)
1293 movl $1423966208,44(%esp)
1294 movl $3774873600,48(%esp)
1295 movl $4246732800,52(%esp)
1296 movl $3644850176,56(%esp)
1297 movl $3311403008,60(%esp)
1298 movl $2441084928,64(%esp)
1299 movl $2376073216,68(%esp)
1300 movl $2847932416,72(%esp)
1301 movl $3051356160,76(%esp)
1302 movl %ebp,(%esp)
1303 movl %edx,4(%esp)
1304 movl %ecx,8(%esp)
1305 movl %ebx,12(%esp)
1306 shrl $20,%ebx
1307 andl $240,%ebx
1308 movl 4(%esi,%ebx,1),%ebp
1309 movl (%esi,%ebx,1),%edx
1310 movl 12(%esi,%ebx,1),%ecx
1311 movl 8(%esi,%ebx,1),%ebx
1312 xorl %eax,%eax
1313 movl $15,%edi
1314 jmp .L000x86_loop
1315 .align 16
1316 .L000x86_loop:
1317 movb %bl,%al
1318 shrdl $4,%ecx,%ebx
1319 andb $15,%al
1320 shrdl $4,%edx,%ecx
1321 shrdl $4,%ebp,%edx
1322 shrl $4,%ebp
1323 xorl 16(%esp,%eax,4),%ebp
1324 movb (%esp,%edi,1),%al
1325 andb $240,%al
1326 xorl 8(%esi,%eax,1),%ebx
1327 xorl 12(%esi,%eax,1),%ecx
1328 xorl (%esi,%eax,1),%edx
1329 xorl 4(%esi,%eax,1),%ebp
1330 decl %edi
1331 js .L001x86_break
1332 movb %bl,%al
1333 shrdl $4,%ecx,%ebx
1334 andb $15,%al
1335 shrdl $4,%edx,%ecx
1336 shrdl $4,%ebp,%edx
1337 shrl $4,%ebp
1338 xorl 16(%esp,%eax,4),%ebp
1339 movb (%esp,%edi,1),%al
1340 shlb $4,%al
1341 xorl 8(%esi,%eax,1),%ebx
1342 xorl 12(%esi,%eax,1),%ecx
1343 xorl (%esi,%eax,1),%edx
1344 xorl 4(%esi,%eax,1),%ebp
1345 jmp .L000x86_loop
1346 .align 16
1347 .L001x86_break:
1348 bswap %ebx
1349 bswap %ecx
1350 bswap %edx
1351 bswap %ebp
1352 movl 104(%esp),%edi
1353 movl %ebx,12(%edi)
1354 movl %ecx,8(%edi)
1355 movl %edx,4(%edi)
1356 movl %ebp,(%edi)
1357 addl $84,%esp
1358 popl %edi
1359 popl %esi
1360 popl %ebx
1361 popl %ebp
1362 ret
1363 .size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
1364 .globl gcm_ghash_4bit_x86
1365 .type gcm_ghash_4bit_x86,@function
1366 .align 16
1367 gcm_ghash_4bit_x86:
1368 .L_gcm_ghash_4bit_x86_begin:
1369 pushl %ebp
1370 pushl %ebx
1371 pushl %esi
1372 pushl %edi
1373 subl $84,%esp
1374 movl 104(%esp),%ebx
1375 movl 108(%esp),%esi
1376 movl 112(%esp),%edi
1377 movl 116(%esp),%ecx
1378 addl %edi,%ecx
1379 movl %ecx,116(%esp)
1380 movl (%ebx),%ebp
1381 movl 4(%ebx),%edx
1382 movl 8(%ebx),%ecx
1383 movl 12(%ebx),%ebx
1384 movl $0,16(%esp)
1385 movl $471859200,20(%esp)
1386 movl $943718400,24(%esp)
1387 movl $610271232,28(%esp)
1388 movl $1887436800,32(%esp)
1389 movl $1822425088,36(%esp)
1390 movl $1220542464,40(%esp)
1391 movl $1423966208,44(%esp)
1392 movl $3774873600,48(%esp)
1393 movl $4246732800,52(%esp)
1394 movl $3644850176,56(%esp)
1395 movl $3311403008,60(%esp)
1396 movl $2441084928,64(%esp)
1397 movl $2376073216,68(%esp)
1398 movl $2847932416,72(%esp)
1399 movl $3051356160,76(%esp)
1400 .align 16
1401 .L002x86_outer_loop:
1402 xorl 12(%edi),%ebx
1403 xorl 8(%edi),%ecx
1404 xorl 4(%edi),%edx
1405 xorl (%edi),%ebp
1406 movl %ebx,12(%esp)
1407 movl %ecx,8(%esp)
1408 movl %edx,4(%esp)
1409 movl %ebp,(%esp)
1410 shrl $20,%ebx
1411 andl $240,%ebx
1412 movl 4(%esi,%ebx,1),%ebp
1413 movl (%esi,%ebx,1),%edx
1414 movl 12(%esi,%ebx,1),%ecx
1415 movl 8(%esi,%ebx,1),%ebx
1416 xorl %eax,%eax
1417 movl $15,%edi
1418 jmp .L003x86_loop
1419 .align 16
1420 .L003x86_loop:
1421 movb %bl,%al
1422 shrdl $4,%ecx,%ebx
1423 andb $15,%al
1424 shrdl $4,%edx,%ecx
1425 shrdl $4,%ebp,%edx
1426 shrl $4,%ebp
1427 xorl 16(%esp,%eax,4),%ebp
1428 movb (%esp,%edi,1),%al
1429 andb $240,%al
1430 xorl 8(%esi,%eax,1),%ebx
1431 xorl 12(%esi,%eax,1),%ecx
1432 xorl (%esi,%eax,1),%edx
1433 xorl 4(%esi,%eax,1),%ebp
1434 decl %edi
1435 js .L004x86_break
1436 movb %bl,%al
1437 shrdl $4,%ecx,%ebx
1438 andb $15,%al
1439 shrdl $4,%edx,%ecx
1440 shrdl $4,%ebp,%edx
1441 shrl $4,%ebp
1442 xorl 16(%esp,%eax,4),%ebp
1443 movb (%esp,%edi,1),%al
1444 shlb $4,%al
1445 xorl 8(%esi,%eax,1),%ebx
1446 xorl 12(%esi,%eax,1),%ecx
1447 xorl (%esi,%eax,1),%edx
1448 xorl 4(%esi,%eax,1),%ebp
1449 jmp .L003x86_loop
1450 .align 16
1451 .L004x86_break:
1452 bswap %ebx
1453 bswap %ecx
1454 bswap %edx
1455 bswap %ebp
1456 movl 112(%esp),%edi
1457 leal 16(%edi),%edi
1458 cmpl 116(%esp),%edi
1459 movl %edi,112(%esp)
1460 jb .L002x86_outer_loop
1461 movl 104(%esp),%edi
1462 movl %ebx,12(%edi)
1463 movl %ecx,8(%edi)
1464 movl %edx,4(%edi)
1465 movl %ebp,(%edi)
1466 addl $84,%esp
1467 popl %edi
1468 popl %esi
1469 popl %ebx
1470 popl %ebp
1471 ret
1472 .size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
1473 .globl gcm_gmult_4bit_mmx
1474 .type gcm_gmult_4bit_mmx,@function
1475 .align 16
1476 gcm_gmult_4bit_mmx:
1477 .L_gcm_gmult_4bit_mmx_begin:
1478 pushl %ebp
1479 pushl %ebx
1480 pushl %esi
1481 pushl %edi
1482 movl 20(%esp),%edi
1483 movl 24(%esp),%esi
1484 call .L005pic_point
1485 .L005pic_point:
1486 popl %eax
1487 leal .Lrem_4bit-.L005pic_point(%eax),%eax
1488 movzbl 15(%edi),%ebx
1489 xorl %ecx,%ecx
1490 movl %ebx,%edx
1491 movb %dl,%cl
1492 movl $14,%ebp
1493 shlb $4,%cl
1494 andl $240,%edx
1495 movq 8(%esi,%ecx,1),%mm0
1496 movq (%esi,%ecx,1),%mm1
1497 movd %mm0,%ebx
1498 jmp .L006mmx_loop
1499 .align 16
1500 .L006mmx_loop:
1501 psrlq $4,%mm0
1502 andl $15,%ebx
1503 movq %mm1,%mm2
1504 psrlq $4,%mm1
1505 pxor 8(%esi,%edx,1),%mm0
1506 movb (%edi,%ebp,1),%cl
1507 psllq $60,%mm2
1508 pxor (%eax,%ebx,8),%mm1
1509 decl %ebp
1510 movd %mm0,%ebx
1511 pxor (%esi,%edx,1),%mm1
1512 movl %ecx,%edx
1513 pxor %mm2,%mm0
1514 js .L007mmx_break
1515 shlb $4,%cl
1516 andl $15,%ebx
1517 psrlq $4,%mm0
1518 andl $240,%edx
1519 movq %mm1,%mm2
1520 psrlq $4,%mm1
1521 pxor 8(%esi,%ecx,1),%mm0
1522 psllq $60,%mm2
1523 pxor (%eax,%ebx,8),%mm1
1524 movd %mm0,%ebx
1525 pxor (%esi,%ecx,1),%mm1
1526 pxor %mm2,%mm0
1527 jmp .L006mmx_loop
1528 .align 16
1529 .L007mmx_break:
1530 shlb $4,%cl
1531 andl $15,%ebx
1532 psrlq $4,%mm0
1533 andl $240,%edx
1534 movq %mm1,%mm2
1535 psrlq $4,%mm1
1536 pxor 8(%esi,%ecx,1),%mm0
1537 psllq $60,%mm2
1538 pxor (%eax,%ebx,8),%mm1
1539 movd %mm0,%ebx
1540 pxor (%esi,%ecx,1),%mm1
1541 pxor %mm2,%mm0
1542 psrlq $4,%mm0
1543 andl $15,%ebx
1544 movq %mm1,%mm2
1545 psrlq $4,%mm1
1546 pxor 8(%esi,%edx,1),%mm0
1547 psllq $60,%mm2
1548 pxor (%eax,%ebx,8),%mm1
1549 movd %mm0,%ebx
1550 pxor (%esi,%edx,1),%mm1
1551 pxor %mm2,%mm0
1552 psrlq $32,%mm0
1553 movd %mm1,%edx
1554 psrlq $32,%mm1
1555 movd %mm0,%ecx
1556 movd %mm1,%ebp
1557 bswap %ebx
1558 bswap %edx
1559 bswap %ecx
1560 bswap %ebp
1561 emms
1562 movl %ebx,12(%edi)
1563 movl %edx,4(%edi)
1564 movl %ecx,8(%edi)
1565 movl %ebp,(%edi)
1566 popl %edi
1567 popl %esi
1568 popl %ebx
1569 popl %ebp
1570 ret
1571 .size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
1572 .globl gcm_ghash_4bit_mmx
1573 .type gcm_ghash_4bit_mmx,@function
1574 .align 16
1575 gcm_ghash_4bit_mmx:
1576 .L_gcm_ghash_4bit_mmx_begin:
1577 pushl %ebp
1578 pushl %ebx
1579 pushl %esi
1580 pushl %edi
1581 movl 20(%esp),%eax
1582 movl 24(%esp),%ebx
1583 movl 28(%esp),%ecx
1584 movl 32(%esp),%edx
1585 movl %esp,%ebp
1586 call .L008pic_point
1587 .L008pic_point:
1588 popl %esi
1589 leal .Lrem_8bit-.L008pic_point(%esi),%esi
1590 subl $544,%esp
1591 andl $-64,%esp
1592 subl $16,%esp
1593 addl %ecx,%edx
1594 movl %eax,544(%esp)
1595 movl %edx,552(%esp)
1596 movl %ebp,556(%esp)
1597 addl $128,%ebx
1598 leal 144(%esp),%edi
1599 leal 400(%esp),%ebp
1600 movl -120(%ebx),%edx
1601 movq -120(%ebx),%mm0
1602 movq -128(%ebx),%mm3
1603 shll $4,%edx
1604 movb %dl,(%esp)
1605 movl -104(%ebx),%edx
1606 movq -104(%ebx),%mm2
1607 movq -112(%ebx),%mm5
1608 movq %mm0,-128(%edi)
1609 psrlq $4,%mm0
1610 movq %mm3,(%edi)
1611 movq %mm3,%mm7
1612 psrlq $4,%mm3
1613 shll $4,%edx
1614 movb %dl,1(%esp)
1615 movl -88(%ebx),%edx
1616 movq -88(%ebx),%mm1
1617 psllq $60,%mm7
1618 movq -96(%ebx),%mm4
1619 por %mm7,%mm0
1620 movq %mm2,-120(%edi)
1621 psrlq $4,%mm2
1622 movq %mm5,8(%edi)
1623 movq %mm5,%mm6
1624 movq %mm0,-128(%ebp)
1625 psrlq $4,%mm5
1626 movq %mm3,(%ebp)
1627 shll $4,%edx
1628 movb %dl,2(%esp)
1629 movl -72(%ebx),%edx
1630 movq -72(%ebx),%mm0
1631 psllq $60,%mm6
1632 movq -80(%ebx),%mm3
1633 por %mm6,%mm2
1634 movq %mm1,-112(%edi)
1635 psrlq $4,%mm1
1636 movq %mm4,16(%edi)
1637 movq %mm4,%mm7
1638 movq %mm2,-120(%ebp)
1639 psrlq $4,%mm4
1640 movq %mm5,8(%ebp)
1641 shll $4,%edx
1642 movb %dl,3(%esp)
1643 movl -56(%ebx),%edx
1644 movq -56(%ebx),%mm2
1645 psllq $60,%mm7
1646 movq -64(%ebx),%mm5
1647 por %mm7,%mm1
1648 movq %mm0,-104(%edi)
1649 psrlq $4,%mm0
1650 movq %mm3,24(%edi)
1651 movq %mm3,%mm6
1652 movq %mm1,-112(%ebp)
1653 psrlq $4,%mm3
1654 movq %mm4,16(%ebp)
1655 shll $4,%edx
1656 movb %dl,4(%esp)
1657 movl -40(%ebx),%edx
1658 movq -40(%ebx),%mm1
1659 psllq $60,%mm6
1660 movq -48(%ebx),%mm4
1661 por %mm6,%mm0
1662 movq %mm2,-96(%edi)
1663 psrlq $4,%mm2
1664 movq %mm5,32(%edi)
1665 movq %mm5,%mm7
1666 movq %mm0,-104(%ebp)
1667 psrlq $4,%mm5
1668 movq %mm3,24(%ebp)
1669 shll $4,%edx
1670 movb %dl,5(%esp)
1671 movl -24(%ebx),%edx
1672 movq -24(%ebx),%mm0
1673 psllq $60,%mm7
1674 movq -32(%ebx),%mm3
1675 por %mm7,%mm2
1676 movq %mm1,-88(%edi)
1677 psrlq $4,%mm1
1678 movq %mm4,40(%edi)
1679 movq %mm4,%mm6
1680 movq %mm2,-96(%ebp)
1681 psrlq $4,%mm4
1682 movq %mm5,32(%ebp)
1683 shll $4,%edx
1684 movb %dl,6(%esp)
1685 movl -8(%ebx),%edx
1686 movq -8(%ebx),%mm2
1687 psllq $60,%mm6
1688 movq -16(%ebx),%mm5
1689 por %mm6,%mm1
1690 movq %mm0,-80(%edi)
1691 psrlq $4,%mm0
1692 movq %mm3,48(%edi)
1693 movq %mm3,%mm7
1694 movq %mm1,-88(%ebp)
1695 psrlq $4,%mm3
1696 movq %mm4,40(%ebp)
1697 shll $4,%edx
1698 movb %dl,7(%esp)
1699 movl 8(%ebx),%edx
1700 movq 8(%ebx),%mm1
1701 psllq $60,%mm7
1702 movq (%ebx),%mm4
1703 por %mm7,%mm0
1704 movq %mm2,-72(%edi)
1705 psrlq $4,%mm2
1706 movq %mm5,56(%edi)
1707 movq %mm5,%mm6
1708 movq %mm0,-80(%ebp)
1709 psrlq $4,%mm5
1710 movq %mm3,48(%ebp)
1711 shll $4,%edx
1712 movb %dl,8(%esp)
1713 movl 24(%ebx),%edx
1714 movq 24(%ebx),%mm0
1715 psllq $60,%mm6
1716 movq 16(%ebx),%mm3
1717 por %mm6,%mm2
1718 movq %mm1,-64(%edi)
1719 psrlq $4,%mm1
1720 movq %mm4,64(%edi)
1721 movq %mm4,%mm7
1722 movq %mm2,-72(%ebp)
1723 psrlq $4,%mm4
1724 movq %mm5,56(%ebp)
1725 shll $4,%edx
1726 movb %dl,9(%esp)
1727 movl 40(%ebx),%edx
1728 movq 40(%ebx),%mm2
1729 psllq $60,%mm7
1730 movq 32(%ebx),%mm5
1731 por %mm7,%mm1
1732 movq %mm0,-56(%edi)
1733 psrlq $4,%mm0
1734 movq %mm3,72(%edi)
1735 movq %mm3,%mm6
1736 movq %mm1,-64(%ebp)
1737 psrlq $4,%mm3
1738 movq %mm4,64(%ebp)
1739 shll $4,%edx
1740 movb %dl,10(%esp)
1741 movl 56(%ebx),%edx
1742 movq 56(%ebx),%mm1
1743 psllq $60,%mm6
1744 movq 48(%ebx),%mm4
1745 por %mm6,%mm0
1746 movq %mm2,-48(%edi)
1747 psrlq $4,%mm2
1748 movq %mm5,80(%edi)
1749 movq %mm5,%mm7
1750 movq %mm0,-56(%ebp)
1751 psrlq $4,%mm5
1752 movq %mm3,72(%ebp)
1753 shll $4,%edx
1754 movb %dl,11(%esp)
1755 movl 72(%ebx),%edx
1756 movq 72(%ebx),%mm0
1757 psllq $60,%mm7
1758 movq 64(%ebx),%mm3
1759 por %mm7,%mm2
1760 movq %mm1,-40(%edi)
1761 psrlq $4,%mm1
1762 movq %mm4,88(%edi)
1763 movq %mm4,%mm6
1764 movq %mm2,-48(%ebp)
1765 psrlq $4,%mm4
1766 movq %mm5,80(%ebp)
1767 shll $4,%edx
1768 movb %dl,12(%esp)
1769 movl 88(%ebx),%edx
1770 movq 88(%ebx),%mm2
1771 psllq $60,%mm6
1772 movq 80(%ebx),%mm5
1773 por %mm6,%mm1
1774 movq %mm0,-32(%edi)
1775 psrlq $4,%mm0
1776 movq %mm3,96(%edi)
1777 movq %mm3,%mm7
1778 movq %mm1,-40(%ebp)
1779 psrlq $4,%mm3
1780 movq %mm4,88(%ebp)
1781 shll $4,%edx
1782 movb %dl,13(%esp)
1783 movl 104(%ebx),%edx
1784 movq 104(%ebx),%mm1
1785 psllq $60,%mm7
1786 movq 96(%ebx),%mm4
1787 por %mm7,%mm0
1788 movq %mm2,-24(%edi)
1789 psrlq $4,%mm2
1790 movq %mm5,104(%edi)
1791 movq %mm5,%mm6
1792 movq %mm0,-32(%ebp)
1793 psrlq $4,%mm5
1794 movq %mm3,96(%ebp)
1795 shll $4,%edx
1796 movb %dl,14(%esp)
1797 movl 120(%ebx),%edx
1798 movq 120(%ebx),%mm0
1799 psllq $60,%mm6
1800 movq 112(%ebx),%mm3
1801 por %mm6,%mm2
1802 movq %mm1,-16(%edi)
1803 psrlq $4,%mm1
1804 movq %mm4,112(%edi)
1805 movq %mm4,%mm7
1806 movq %mm2,-24(%ebp)
1807 psrlq $4,%mm4
1808 movq %mm5,104(%ebp)
1809 shll $4,%edx
1810 movb %dl,15(%esp)
1811 psllq $60,%mm7
1812 por %mm7,%mm1
1813 movq %mm0,-8(%edi)
1814 psrlq $4,%mm0
1815 movq %mm3,120(%edi)
1816 movq %mm3,%mm6
1817 movq %mm1,-16(%ebp)
1818 psrlq $4,%mm3
1819 movq %mm4,112(%ebp)
1820 psllq $60,%mm6
1821 por %mm6,%mm0
1822 movq %mm0,-8(%ebp)
1823 movq %mm3,120(%ebp)
1824 movq (%eax),%mm6
1825 movl 8(%eax),%ebx
1826 movl 12(%eax),%edx
1827 .align 16
1828 .L009outer:
1829 xorl 12(%ecx),%edx
1830 xorl 8(%ecx),%ebx
1831 pxor (%ecx),%mm6
1832 leal 16(%ecx),%ecx
1833 movl %ebx,536(%esp)
1834 movq %mm6,528(%esp)
1835 movl %ecx,548(%esp)
1836 xorl %eax,%eax
1837 roll $8,%edx
1838 movb %dl,%al
1839 movl %eax,%ebp
1840 andb $15,%al
1841 shrl $4,%ebp
1842 pxor %mm0,%mm0
1843 roll $8,%edx
1844 pxor %mm1,%mm1
1845 pxor %mm2,%mm2
1846 movq 16(%esp,%eax,8),%mm7
1847 movq 144(%esp,%eax,8),%mm6
1848 movb %dl,%al
1849 movd %mm7,%ebx
1850 psrlq $8,%mm7
1851 movq %mm6,%mm3
1852 movl %eax,%edi
1853 psrlq $8,%mm6
1854 pxor 272(%esp,%ebp,8),%mm7
1855 andb $15,%al
1856 psllq $56,%mm3
1857 shrl $4,%edi
1858 pxor 16(%esp,%eax,8),%mm7
1859 roll $8,%edx
1860 pxor 144(%esp,%eax,8),%mm6
1861 pxor %mm3,%mm7
1862 pxor 400(%esp,%ebp,8),%mm6
1863 xorb (%esp,%ebp,1),%bl
1864 movb %dl,%al
1865 movd %mm7,%ecx
1866 movzbl %bl,%ebx
1867 psrlq $8,%mm7
1868 movq %mm6,%mm3
1869 movl %eax,%ebp
1870 psrlq $8,%mm6
1871 pxor 272(%esp,%edi,8),%mm7
1872 andb $15,%al
1873 psllq $56,%mm3
1874 shrl $4,%ebp
1875 pinsrw $2,(%esi,%ebx,2),%mm2
1876 pxor 16(%esp,%eax,8),%mm7
1877 roll $8,%edx
1878 pxor 144(%esp,%eax,8),%mm6
1879 pxor %mm3,%mm7
1880 pxor 400(%esp,%edi,8),%mm6
1881 xorb (%esp,%edi,1),%cl
1882 movb %dl,%al
1883 movl 536(%esp),%edx
1884 movd %mm7,%ebx
1885 movzbl %cl,%ecx
1886 psrlq $8,%mm7
1887 movq %mm6,%mm3
1888 movl %eax,%edi
1889 psrlq $8,%mm6
1890 pxor 272(%esp,%ebp,8),%mm7
1891 andb $15,%al
1892 psllq $56,%mm3
1893 pxor %mm2,%mm6
1894 shrl $4,%edi
1895 pinsrw $2,(%esi,%ecx,2),%mm1
1896 pxor 16(%esp,%eax,8),%mm7
1897 roll $8,%edx
1898 pxor 144(%esp,%eax,8),%mm6
1899 pxor %mm3,%mm7
1900 pxor 400(%esp,%ebp,8),%mm6
1901 xorb (%esp,%ebp,1),%bl
1902 movb %dl,%al
1903 movd %mm7,%ecx
1904 movzbl %bl,%ebx
1905 psrlq $8,%mm7
1906 movq %mm6,%mm3
1907 movl %eax,%ebp
1908 psrlq $8,%mm6
1909 pxor 272(%esp,%edi,8),%mm7
1910 andb $15,%al
1911 psllq $56,%mm3
1912 pxor %mm1,%mm6
1913 shrl $4,%ebp
1914 pinsrw $2,(%esi,%ebx,2),%mm0
1915 pxor 16(%esp,%eax,8),%mm7
1916 roll $8,%edx
1917 pxor 144(%esp,%eax,8),%mm6
1918 pxor %mm3,%mm7
1919 pxor 400(%esp,%edi,8),%mm6
1920 xorb (%esp,%edi,1),%cl
1921 movb %dl,%al
1922 movd %mm7,%ebx
1923 movzbl %cl,%ecx
1924 psrlq $8,%mm7
1925 movq %mm6,%mm3
1926 movl %eax,%edi
1927 psrlq $8,%mm6
1928 pxor 272(%esp,%ebp,8),%mm7
1929 andb $15,%al
1930 psllq $56,%mm3
1931 pxor %mm0,%mm6
1932 shrl $4,%edi
1933 pinsrw $2,(%esi,%ecx,2),%mm2
1934 pxor 16(%esp,%eax,8),%mm7
1935 roll $8,%edx
1936 pxor 144(%esp,%eax,8),%mm6
1937 pxor %mm3,%mm7
1938 pxor 400(%esp,%ebp,8),%mm6
1939 xorb (%esp,%ebp,1),%bl
1940 movb %dl,%al
1941 movd %mm7,%ecx
1942 movzbl %bl,%ebx
1943 psrlq $8,%mm7
1944 movq %mm6,%mm3
1945 movl %eax,%ebp
1946 psrlq $8,%mm6
1947 pxor 272(%esp,%edi,8),%mm7
1948 andb $15,%al
1949 psllq $56,%mm3
1950 pxor %mm2,%mm6
1951 shrl $4,%ebp
1952 pinsrw $2,(%esi,%ebx,2),%mm1
1953 pxor 16(%esp,%eax,8),%mm7
1954 roll $8,%edx
1955 pxor 144(%esp,%eax,8),%mm6
1956 pxor %mm3,%mm7
1957 pxor 400(%esp,%edi,8),%mm6
1958 xorb (%esp,%edi,1),%cl
1959 movb %dl,%al
1960 movl 532(%esp),%edx
1961 movd %mm7,%ebx
1962 movzbl %cl,%ecx
1963 psrlq $8,%mm7
1964 movq %mm6,%mm3
1965 movl %eax,%edi
1966 psrlq $8,%mm6
1967 pxor 272(%esp,%ebp,8),%mm7
1968 andb $15,%al
1969 psllq $56,%mm3
1970 pxor %mm1,%mm6
1971 shrl $4,%edi
1972 pinsrw $2,(%esi,%ecx,2),%mm0
1973 pxor 16(%esp,%eax,8),%mm7
1974 roll $8,%edx
1975 pxor 144(%esp,%eax,8),%mm6
1976 pxor %mm3,%mm7
1977 pxor 400(%esp,%ebp,8),%mm6
1978 xorb (%esp,%ebp,1),%bl
1979 movb %dl,%al
1980 movd %mm7,%ecx
1981 movzbl %bl,%ebx
1982 psrlq $8,%mm7
1983 movq %mm6,%mm3
1984 movl %eax,%ebp
1985 psrlq $8,%mm6
1986 pxor 272(%esp,%edi,8),%mm7
1987 andb $15,%al
1988 psllq $56,%mm3
1989 pxor %mm0,%mm6
1990 shrl $4,%ebp
1991 pinsrw $2,(%esi,%ebx,2),%mm2
1992 pxor 16(%esp,%eax,8),%mm7
1993 roll $8,%edx
1994 pxor 144(%esp,%eax,8),%mm6
1995 pxor %mm3,%mm7
1996 pxor 400(%esp,%edi,8),%mm6
1997 xorb (%esp,%edi,1),%cl
1998 movb %dl,%al
1999 movd %mm7,%ebx
2000 movzbl %cl,%ecx
2001 psrlq $8,%mm7
2002 movq %mm6,%mm3
2003 movl %eax,%edi
2004 psrlq $8,%mm6
2005 pxor 272(%esp,%ebp,8),%mm7
2006 andb $15,%al
2007 psllq $56,%mm3
2008 pxor %mm2,%mm6
2009 shrl $4,%edi
2010 pinsrw $2,(%esi,%ecx,2),%mm1
2011 pxor 16(%esp,%eax,8),%mm7
2012 roll $8,%edx
2013 pxor 144(%esp,%eax,8),%mm6
2014 pxor %mm3,%mm7
2015 pxor 400(%esp,%ebp,8),%mm6
2016 xorb (%esp,%ebp,1),%bl
2017 movb %dl,%al
2018 movd %mm7,%ecx
2019 movzbl %bl,%ebx
2020 psrlq $8,%mm7
2021 movq %mm6,%mm3
2022 movl %eax,%ebp
2023 psrlq $8,%mm6
2024 pxor 272(%esp,%edi,8),%mm7
2025 andb $15,%al
2026 psllq $56,%mm3
2027 pxor %mm1,%mm6
2028 shrl $4,%ebp
2029 pinsrw $2,(%esi,%ebx,2),%mm0
2030 pxor 16(%esp,%eax,8),%mm7
2031 roll $8,%edx
2032 pxor 144(%esp,%eax,8),%mm6
2033 pxor %mm3,%mm7
2034 pxor 400(%esp,%edi,8),%mm6
2035 xorb (%esp,%edi,1),%cl
2036 movb %dl,%al
2037 movl 528(%esp),%edx
2038 movd %mm7,%ebx
2039 movzbl %cl,%ecx
2040 psrlq $8,%mm7
2041 movq %mm6,%mm3
2042 movl %eax,%edi
2043 psrlq $8,%mm6
2044 pxor 272(%esp,%ebp,8),%mm7
2045 andb $15,%al
2046 psllq $56,%mm3
2047 pxor %mm0,%mm6
2048 shrl $4,%edi
2049 pinsrw $2,(%esi,%ecx,2),%mm2
2050 pxor 16(%esp,%eax,8),%mm7
2051 roll $8,%edx
2052 pxor 144(%esp,%eax,8),%mm6
2053 pxor %mm3,%mm7
2054 pxor 400(%esp,%ebp,8),%mm6
2055 xorb (%esp,%ebp,1),%bl
2056 movb %dl,%al
2057 movd %mm7,%ecx
2058 movzbl %bl,%ebx
2059 psrlq $8,%mm7
2060 movq %mm6,%mm3
2061 movl %eax,%ebp
2062 psrlq $8,%mm6
2063 pxor 272(%esp,%edi,8),%mm7
2064 andb $15,%al
2065 psllq $56,%mm3
2066 pxor %mm2,%mm6
2067 shrl $4,%ebp
2068 pinsrw $2,(%esi,%ebx,2),%mm1
2069 pxor 16(%esp,%eax,8),%mm7
2070 roll $8,%edx
2071 pxor 144(%esp,%eax,8),%mm6
2072 pxor %mm3,%mm7
2073 pxor 400(%esp,%edi,8),%mm6
2074 xorb (%esp,%edi,1),%cl
2075 movb %dl,%al
2076 movd %mm7,%ebx
2077 movzbl %cl,%ecx
2078 psrlq $8,%mm7
2079 movq %mm6,%mm3
2080 movl %eax,%edi
2081 psrlq $8,%mm6
2082 pxor 272(%esp,%ebp,8),%mm7
2083 andb $15,%al
2084 psllq $56,%mm3
2085 pxor %mm1,%mm6
2086 shrl $4,%edi
2087 pinsrw $2,(%esi,%ecx,2),%mm0
2088 pxor 16(%esp,%eax,8),%mm7
2089 roll $8,%edx
2090 pxor 144(%esp,%eax,8),%mm6
2091 pxor %mm3,%mm7
2092 pxor 400(%esp,%ebp,8),%mm6
2093 xorb (%esp,%ebp,1),%bl
2094 movb %dl,%al
2095 movd %mm7,%ecx
2096 movzbl %bl,%ebx
2097 psrlq $8,%mm7
2098 movq %mm6,%mm3
2099 movl %eax,%ebp
2100 psrlq $8,%mm6
2101 pxor 272(%esp,%edi,8),%mm7
2102 andb $15,%al
2103 psllq $56,%mm3
2104 pxor %mm0,%mm6
2105 shrl $4,%ebp
2106 pinsrw $2,(%esi,%ebx,2),%mm2
2107 pxor 16(%esp,%eax,8),%mm7
2108 roll $8,%edx
2109 pxor 144(%esp,%eax,8),%mm6
2110 pxor %mm3,%mm7
2111 pxor 400(%esp,%edi,8),%mm6
2112 xorb (%esp,%edi,1),%cl
2113 movb %dl,%al
2114 movl 524(%esp),%edx
2115 movd %mm7,%ebx
2116 movzbl %cl,%ecx
2117 psrlq $8,%mm7
2118 movq %mm6,%mm3
2119 movl %eax,%edi
2120 psrlq $8,%mm6
2121 pxor 272(%esp,%ebp,8),%mm7
2122 andb $15,%al
2123 psllq $56,%mm3
2124 pxor %mm2,%mm6
2125 shrl $4,%edi
2126 pinsrw $2,(%esi,%ecx,2),%mm1
2127 pxor 16(%esp,%eax,8),%mm7
2128 pxor 144(%esp,%eax,8),%mm6
2129 xorb (%esp,%ebp,1),%bl
2130 pxor %mm3,%mm7
2131 pxor 400(%esp,%ebp,8),%mm6
2132 movzbl %bl,%ebx
2133 pxor %mm2,%mm2
2134 psllq $4,%mm1
2135 movd %mm7,%ecx
2136 psrlq $4,%mm7
2137 movq %mm6,%mm3
2138 psrlq $4,%mm6
2139 shll $4,%ecx
2140 pxor 16(%esp,%edi,8),%mm7
2141 psllq $60,%mm3
2142 movzbl %cl,%ecx
2143 pxor %mm3,%mm7
2144 pxor 144(%esp,%edi,8),%mm6
2145 pinsrw $2,(%esi,%ebx,2),%mm0
2146 pxor %mm1,%mm6
2147 movd %mm7,%edx
2148 pinsrw $3,(%esi,%ecx,2),%mm2
2149 psllq $12,%mm0
2150 pxor %mm0,%mm6
2151 psrlq $32,%mm7
2152 pxor %mm2,%mm6
2153 movl 548(%esp),%ecx
2154 movd %mm7,%ebx
2155 movq %mm6,%mm3
2156 psllw $8,%mm6
2157 psrlw $8,%mm3
2158 por %mm3,%mm6
2159 bswap %edx
2160 pshufw $27,%mm6,%mm6
2161 bswap %ebx
2162 cmpl 552(%esp),%ecx
2163 jne .L009outer
2164 movl 544(%esp),%eax
2165 movl %edx,12(%eax)
2166 movl %ebx,8(%eax)
2167 movq %mm6,(%eax)
2168 movl 556(%esp),%esp
2169 emms
2170 popl %edi
2171 popl %esi
2172 popl %ebx
2173 popl %ebp
2174 ret
2175 .size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
2176 .globl gcm_init_clmul
2177 .type gcm_init_clmul,@function
2178 .align 16
2179 gcm_init_clmul:
2180 .L_gcm_init_clmul_begin:
2181 movl 4(%esp),%edx
2182 movl 8(%esp),%eax
2183 call .L010pic
2184 .L010pic:
2185 popl %ecx
2186 leal .Lbswap-.L010pic(%ecx),%ecx
2187 movdqu (%eax),%xmm2
2188 pshufd $78,%xmm2,%xmm2
2189 pshufd $255,%xmm2,%xmm4
2190 movdqa %xmm2,%xmm3
2191 psllq $1,%xmm2
2192 pxor %xmm5,%xmm5
2193 psrlq $63,%xmm3
2194 pcmpgtd %xmm4,%xmm5
2195 pslldq $8,%xmm3
2196 por %xmm3,%xmm2
2197 pand 16(%ecx),%xmm5
2198 pxor %xmm5,%xmm2
2199 movdqa %xmm2,%xmm0
2200 movdqa %xmm0,%xmm1
2201 pshufd $78,%xmm0,%xmm3
2202 pshufd $78,%xmm2,%xmm4
2203 pxor %xmm0,%xmm3
2204 pxor %xmm2,%xmm4
2205 .byte 102,15,58,68,194,0
2206 .byte 102,15,58,68,202,17
2207 .byte 102,15,58,68,220,0
2208 xorps %xmm0,%xmm3
2209 xorps %xmm1,%xmm3
2210 movdqa %xmm3,%xmm4
2211 psrldq $8,%xmm3
2212 pslldq $8,%xmm4
2213 pxor %xmm3,%xmm1
2214 pxor %xmm4,%xmm0
2215 movdqa %xmm0,%xmm4
2216 movdqa %xmm0,%xmm3
2217 psllq $5,%xmm0
2218 pxor %xmm0,%xmm3
2219 psllq $1,%xmm0
2220 pxor %xmm3,%xmm0
2221 psllq $57,%xmm0
2222 movdqa %xmm0,%xmm3
2223 pslldq $8,%xmm0
2224 psrldq $8,%xmm3
2225 pxor %xmm4,%xmm0
2226 pxor %xmm3,%xmm1
2227 movdqa %xmm0,%xmm4
2228 psrlq $1,%xmm0
2229 pxor %xmm4,%xmm1
2230 pxor %xmm0,%xmm4
2231 psrlq $5,%xmm0
2232 pxor %xmm4,%xmm0
2233 psrlq $1,%xmm0
2234 pxor %xmm1,%xmm0
2235 pshufd $78,%xmm2,%xmm3
2236 pshufd $78,%xmm0,%xmm4
2237 pxor %xmm2,%xmm3
2238 movdqu %xmm2,(%edx)
2239 pxor %xmm0,%xmm4
2240 movdqu %xmm0,16(%edx)
2241 .byte 102,15,58,15,227,8
2242 movdqu %xmm4,32(%edx)
2243 ret
2244 .size gcm_init_clmul,.-.L_gcm_init_clmul_begin
2245 .globl gcm_gmult_clmul
2246 .type gcm_gmult_clmul,@function
2247 .align 16
2248 gcm_gmult_clmul:
2249 .L_gcm_gmult_clmul_begin:
2250 movl 4(%esp),%eax
2251 movl 8(%esp),%edx
2252 call .L011pic
2253 .L011pic:
2254 popl %ecx
2255 leal .Lbswap-.L011pic(%ecx),%ecx
2256 movdqu (%eax),%xmm0
2257 movdqa (%ecx),%xmm5
2258 movups (%edx),%xmm2
2259 .byte 102,15,56,0,197
2260 movups 32(%edx),%xmm4
2261 movdqa %xmm0,%xmm1
2262 pshufd $78,%xmm0,%xmm3
2263 pxor %xmm0,%xmm3
2264 .byte 102,15,58,68,194,0
2265 .byte 102,15,58,68,202,17
2266 .byte 102,15,58,68,220,0
2267 xorps %xmm0,%xmm3
2268 xorps %xmm1,%xmm3
2269 movdqa %xmm3,%xmm4
2270 psrldq $8,%xmm3
2271 pslldq $8,%xmm4
2272 pxor %xmm3,%xmm1
2273 pxor %xmm4,%xmm0
2274 movdqa %xmm0,%xmm4
2275 movdqa %xmm0,%xmm3
2276 psllq $5,%xmm0
2277 pxor %xmm0,%xmm3
2278 psllq $1,%xmm0
2279 pxor %xmm3,%xmm0
2280 psllq $57,%xmm0
2281 movdqa %xmm0,%xmm3
2282 pslldq $8,%xmm0
2283 psrldq $8,%xmm3
2284 pxor %xmm4,%xmm0
2285 pxor %xmm3,%xmm1
2286 movdqa %xmm0,%xmm4
2287 psrlq $1,%xmm0
2288 pxor %xmm4,%xmm1
2289 pxor %xmm0,%xmm4
2290 psrlq $5,%xmm0
2291 pxor %xmm4,%xmm0
2292 psrlq $1,%xmm0
2293 pxor %xmm1,%xmm0
2294 .byte 102,15,56,0,197
2295 movdqu %xmm0,(%eax)
2296 ret
2297 .size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin
2298 .globl gcm_ghash_clmul
2299 .type gcm_ghash_clmul,@function
2300 .align 16
2301 gcm_ghash_clmul:
2302 .L_gcm_ghash_clmul_begin:
2303 pushl %ebp
2304 pushl %ebx
2305 pushl %esi
2306 pushl %edi
2307 movl 20(%esp),%eax
2308 movl 24(%esp),%edx
2309 movl 28(%esp),%esi
2310 movl 32(%esp),%ebx
2311 call .L012pic
2312 .L012pic:
2313 popl %ecx
2314 leal .Lbswap-.L012pic(%ecx),%ecx
2315 movdqu (%eax),%xmm0
2316 movdqa (%ecx),%xmm5
2317 movdqu (%edx),%xmm2
2318 .byte 102,15,56,0,197
2319 subl $16,%ebx
2320 jz .L013odd_tail
2321 movdqu (%esi),%xmm3
2322 movdqu 16(%esi),%xmm6
2323 .byte 102,15,56,0,221
2324 .byte 102,15,56,0,245
2325 movdqu 32(%edx),%xmm5
2326 pxor %xmm3,%xmm0
2327 pshufd $78,%xmm6,%xmm3
2328 movdqa %xmm6,%xmm7
2329 pxor %xmm6,%xmm3
2330 leal 32(%esi),%esi
2331 .byte 102,15,58,68,242,0
2332 .byte 102,15,58,68,250,17
2333 .byte 102,15,58,68,221,0
2334 movups 16(%edx),%xmm2
2335 nop
2336 subl $32,%ebx
2337 jbe .L014even_tail
2338 jmp .L015mod_loop
2339 .align 32
2340 .L015mod_loop:
2341 pshufd $78,%xmm0,%xmm4
2342 movdqa %xmm0,%xmm1
2343 pxor %xmm0,%xmm4
2344 nop
2345 .byte 102,15,58,68,194,0
2346 .byte 102,15,58,68,202,17
2347 .byte 102,15,58,68,229,16
2348 movups (%edx),%xmm2
2349 xorps %xmm6,%xmm0
2350 movdqa (%ecx),%xmm5
2351 xorps %xmm7,%xmm1
2352 movdqu (%esi),%xmm7
2353 pxor %xmm0,%xmm3
2354 movdqu 16(%esi),%xmm6
2355 pxor %xmm1,%xmm3
2356 .byte 102,15,56,0,253
2357 pxor %xmm3,%xmm4
2358 movdqa %xmm4,%xmm3
2359 psrldq $8,%xmm4
2360 pslldq $8,%xmm3
2361 pxor %xmm4,%xmm1
2362 pxor %xmm3,%xmm0
2363 .byte 102,15,56,0,245
2364 pxor %xmm7,%xmm1
2365 movdqa %xmm6,%xmm7
2366 movdqa %xmm0,%xmm4
2367 movdqa %xmm0,%xmm3
2368 psllq $5,%xmm0
2369 pxor %xmm0,%xmm3
2370 psllq $1,%xmm0
2371 pxor %xmm3,%xmm0
2372 .byte 102,15,58,68,242,0
2373 movups 32(%edx),%xmm5
2374 psllq $57,%xmm0
2375 movdqa %xmm0,%xmm3
2376 pslldq $8,%xmm0
2377 psrldq $8,%xmm3
2378 pxor %xmm4,%xmm0
2379 pxor %xmm3,%xmm1
2380 pshufd $78,%xmm7,%xmm3
2381 movdqa %xmm0,%xmm4
2382 psrlq $1,%xmm0
2383 pxor %xmm7,%xmm3
2384 pxor %xmm4,%xmm1
2385 .byte 102,15,58,68,250,17
2386 movups 16(%edx),%xmm2
2387 pxor %xmm0,%xmm4
2388 psrlq $5,%xmm0
2389 pxor %xmm4,%xmm0
2390 psrlq $1,%xmm0
2391 pxor %xmm1,%xmm0
2392 .byte 102,15,58,68,221,0
2393 leal 32(%esi),%esi
2394 subl $32,%ebx
2395 ja .L015mod_loop
2396 .L014even_tail:
2397 pshufd $78,%xmm0,%xmm4
2398 movdqa %xmm0,%xmm1
2399 pxor %xmm0,%xmm4
2400 .byte 102,15,58,68,194,0
2401 .byte 102,15,58,68,202,17
2402 .byte 102,15,58,68,229,16
2403 movdqa (%ecx),%xmm5
2404 xorps %xmm6,%xmm0
2405 xorps %xmm7,%xmm1
2406 pxor %xmm0,%xmm3
2407 pxor %xmm1,%xmm3
2408 pxor %xmm3,%xmm4
2409 movdqa %xmm4,%xmm3
2410 psrldq $8,%xmm4
2411 pslldq $8,%xmm3
2412 pxor %xmm4,%xmm1
2413 pxor %xmm3,%xmm0
2414 movdqa %xmm0,%xmm4
2415 movdqa %xmm0,%xmm3
2416 psllq $5,%xmm0
2417 pxor %xmm0,%xmm3
2418 psllq $1,%xmm0
2419 pxor %xmm3,%xmm0
2420 psllq $57,%xmm0
2421 movdqa %xmm0,%xmm3
2422 pslldq $8,%xmm0
2423 psrldq $8,%xmm3
2424 pxor %xmm4,%xmm0
2425 pxor %xmm3,%xmm1
2426 movdqa %xmm0,%xmm4
2427 psrlq $1,%xmm0
2428 pxor %xmm4,%xmm1
2429 pxor %xmm0,%xmm4
2430 psrlq $5,%xmm0
2431 pxor %xmm4,%xmm0
2432 psrlq $1,%xmm0
2433 pxor %xmm1,%xmm0
2434 testl %ebx,%ebx
2435 jnz .L016done
2436 movups (%edx),%xmm2
2437 .L013odd_tail:
2438 movdqu (%esi),%xmm3
2439 .byte 102,15,56,0,221
2440 pxor %xmm3,%xmm0
2441 movdqa %xmm0,%xmm1
2442 pshufd $78,%xmm0,%xmm3
2443 pshufd $78,%xmm2,%xmm4
2444 pxor %xmm0,%xmm3
2445 pxor %xmm2,%xmm4
2446 .byte 102,15,58,68,194,0
2447 .byte 102,15,58,68,202,17
2448 .byte 102,15,58,68,220,0
2449 xorps %xmm0,%xmm3
2450 xorps %xmm1,%xmm3
2451 movdqa %xmm3,%xmm4
2452 psrldq $8,%xmm3
2453 pslldq $8,%xmm4
2454 pxor %xmm3,%xmm1
2455 pxor %xmm4,%xmm0
2456 movdqa %xmm0,%xmm4
2457 movdqa %xmm0,%xmm3
2458 psllq $5,%xmm0
2459 pxor %xmm0,%xmm3
2460 psllq $1,%xmm0
2461 pxor %xmm3,%xmm0
2462 psllq $57,%xmm0
2463 movdqa %xmm0,%xmm3
2464 pslldq $8,%xmm0
2465 psrldq $8,%xmm3
2466 pxor %xmm4,%xmm0
2467 pxor %xmm3,%xmm1
2468 movdqa %xmm0,%xmm4
2469 psrlq $1,%xmm0
2470 pxor %xmm4,%xmm1
2471 pxor %xmm0,%xmm4
2472 psrlq $5,%xmm0
2473 pxor %xmm4,%xmm0
2474 psrlq $1,%xmm0
2475 pxor %xmm1,%xmm0
2476 .L016done:
2477 .byte 102,15,56,0,197
2478 movdqu %xmm0,(%eax)
2479 popl %edi
2480 popl %esi
2481 popl %ebx
2482 popl %ebp
2483 ret
2484 .size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin
2485 .align 64
2486 .Lbswap:
2487 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2488 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
2489 .align 64
2490 .Lrem_8bit:
2491 .value 0,450,900,582,1800,1738,1164,1358
2492 .value 3600,4050,3476,3158,2328,2266,2716,2910
2493 .value 7200,7650,8100,7782,6952,6890,6316,6510
2494 .value 4656,5106,4532,4214,5432,5370,5820,6014
2495 .value 14400,14722,15300,14854,16200,16010,15564,15630
2496 .value 13904,14226,13780,13334,12632,12442,13020,13086
2497 .value 9312,9634,10212,9766,9064,8874,8428,8494
2498 .value 10864,11186,10740,10294,11640,11450,12028,12094
2499 .value 28800,28994,29444,29382,30600,30282,29708,30158
2500 .value 32400,32594,32020,31958,31128,30810,31260,31710
2501 .value 27808,28002,28452,28390,27560,27242,26668,27118
2502 .value 25264,25458,24884,24822,26040,25722,26172,26622
2503 .value 18624,18690,19268,19078,20424,19978,19532,19854
2504 .value 18128,18194,17748,17558,16856,16410,16988,17310
2505 .value 21728,21794,22372,22182,21480,21034,20588,20910
2506 .value 23280,23346,22900,22710,24056,23610,24188,24510
2507 .value 57600,57538,57988,58182,58888,59338,58764,58446
2508 .value 61200,61138,60564,60758,59416,59866,60316,59998
2509 .value 64800,64738,65188,65382,64040,64490,63916,63598
2510 .value 62256,62194,61620,61814,62520,62970,63420,63102
2511 .value 55616,55426,56004,56070,56904,57226,56780,56334
2512 .value 55120,54930,54484,54550,53336,53658,54236,53790
2513 .value 50528,50338,50916,50982,49768,50090,49644,49198
2514 .value 52080,51890,51444,51510,52344,52666,53244,52798
2515 .value 37248,36930,37380,37830,38536,38730,38156,38094
2516 .value 40848,40530,39956,40406,39064,39258,39708,39646
2517 .value 36256,35938,36388,36838,35496,35690,35116,35054
2518 .value 33712,33394,32820,33270,33976,34170,34620,34558
2519 .value 43456,43010,43588,43910,44744,44810,44364,44174
2520 .value 42960,42514,42068,42390,41176,41242,41820,41630
2521 .value 46560,46114,46692,47014,45800,45866,45420,45230
2522 .value 48112,47666,47220,47542,48376,48442,49020,48830
2523 .align 64
2524 .Lrem_4bit:
2525 .long 0,0,0,471859200,0,943718400,0,610271232
2526 .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208
2527 .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008
2528 .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160
2529 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
2530 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
2531 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
2532 .byte 0
2533 #endif
Cache object: 355367342a477ebc8817b1dd1f79e840
|