blob: da02d4c2dc952a21979b4827ee4ab22447962111 [file] [log] [blame]
Adam Langleyd9e397b2015-01-22 14:27:53 -08001#if defined(__x86_64__)
2.text
3
4
5.globl _sha256_block_data_order
6.private_extern _sha256_block_data_order
7
8.p2align 4
9_sha256_block_data_order:
10 leaq _OPENSSL_ia32cap_P(%rip),%r11
11 movl 0(%r11),%r9d
12 movl 4(%r11),%r10d
13 movl 8(%r11),%r11d
14 testl $512,%r10d
15 jnz L$ssse3_shortcut
16 pushq %rbx
17 pushq %rbp
18 pushq %r12
19 pushq %r13
20 pushq %r14
21 pushq %r15
22 movq %rsp,%r11
23 shlq $4,%rdx
24 subq $64+32,%rsp
25 leaq (%rsi,%rdx,4),%rdx
26 andq $-64,%rsp
27 movq %rdi,64+0(%rsp)
28 movq %rsi,64+8(%rsp)
29 movq %rdx,64+16(%rsp)
30 movq %r11,64+24(%rsp)
31L$prologue:
32
33 movl 0(%rdi),%eax
34 movl 4(%rdi),%ebx
35 movl 8(%rdi),%ecx
36 movl 12(%rdi),%edx
37 movl 16(%rdi),%r8d
38 movl 20(%rdi),%r9d
39 movl 24(%rdi),%r10d
40 movl 28(%rdi),%r11d
41 jmp L$loop
42
43.p2align 4
44L$loop:
45 movl %ebx,%edi
46 leaq K256(%rip),%rbp
47 xorl %ecx,%edi
48 movl 0(%rsi),%r12d
49 movl %r8d,%r13d
50 movl %eax,%r14d
51 bswapl %r12d
52 rorl $14,%r13d
53 movl %r9d,%r15d
54
55 xorl %r8d,%r13d
56 rorl $9,%r14d
57 xorl %r10d,%r15d
58
59 movl %r12d,0(%rsp)
60 xorl %eax,%r14d
61 andl %r8d,%r15d
62
63 rorl $5,%r13d
64 addl %r11d,%r12d
65 xorl %r10d,%r15d
66
67 rorl $11,%r14d
68 xorl %r8d,%r13d
69 addl %r15d,%r12d
70
71 movl %eax,%r15d
72 addl (%rbp),%r12d
73 xorl %eax,%r14d
74
75 xorl %ebx,%r15d
76 rorl $6,%r13d
77 movl %ebx,%r11d
78
79 andl %r15d,%edi
80 rorl $2,%r14d
81 addl %r13d,%r12d
82
83 xorl %edi,%r11d
84 addl %r12d,%edx
85 addl %r12d,%r11d
86
87 leaq 4(%rbp),%rbp
88 addl %r14d,%r11d
89 movl 4(%rsi),%r12d
90 movl %edx,%r13d
91 movl %r11d,%r14d
92 bswapl %r12d
93 rorl $14,%r13d
94 movl %r8d,%edi
95
96 xorl %edx,%r13d
97 rorl $9,%r14d
98 xorl %r9d,%edi
99
100 movl %r12d,4(%rsp)
101 xorl %r11d,%r14d
102 andl %edx,%edi
103
104 rorl $5,%r13d
105 addl %r10d,%r12d
106 xorl %r9d,%edi
107
108 rorl $11,%r14d
109 xorl %edx,%r13d
110 addl %edi,%r12d
111
112 movl %r11d,%edi
113 addl (%rbp),%r12d
114 xorl %r11d,%r14d
115
116 xorl %eax,%edi
117 rorl $6,%r13d
118 movl %eax,%r10d
119
120 andl %edi,%r15d
121 rorl $2,%r14d
122 addl %r13d,%r12d
123
124 xorl %r15d,%r10d
125 addl %r12d,%ecx
126 addl %r12d,%r10d
127
128 leaq 4(%rbp),%rbp
129 addl %r14d,%r10d
130 movl 8(%rsi),%r12d
131 movl %ecx,%r13d
132 movl %r10d,%r14d
133 bswapl %r12d
134 rorl $14,%r13d
135 movl %edx,%r15d
136
137 xorl %ecx,%r13d
138 rorl $9,%r14d
139 xorl %r8d,%r15d
140
141 movl %r12d,8(%rsp)
142 xorl %r10d,%r14d
143 andl %ecx,%r15d
144
145 rorl $5,%r13d
146 addl %r9d,%r12d
147 xorl %r8d,%r15d
148
149 rorl $11,%r14d
150 xorl %ecx,%r13d
151 addl %r15d,%r12d
152
153 movl %r10d,%r15d
154 addl (%rbp),%r12d
155 xorl %r10d,%r14d
156
157 xorl %r11d,%r15d
158 rorl $6,%r13d
159 movl %r11d,%r9d
160
161 andl %r15d,%edi
162 rorl $2,%r14d
163 addl %r13d,%r12d
164
165 xorl %edi,%r9d
166 addl %r12d,%ebx
167 addl %r12d,%r9d
168
169 leaq 4(%rbp),%rbp
170 addl %r14d,%r9d
171 movl 12(%rsi),%r12d
172 movl %ebx,%r13d
173 movl %r9d,%r14d
174 bswapl %r12d
175 rorl $14,%r13d
176 movl %ecx,%edi
177
178 xorl %ebx,%r13d
179 rorl $9,%r14d
180 xorl %edx,%edi
181
182 movl %r12d,12(%rsp)
183 xorl %r9d,%r14d
184 andl %ebx,%edi
185
186 rorl $5,%r13d
187 addl %r8d,%r12d
188 xorl %edx,%edi
189
190 rorl $11,%r14d
191 xorl %ebx,%r13d
192 addl %edi,%r12d
193
194 movl %r9d,%edi
195 addl (%rbp),%r12d
196 xorl %r9d,%r14d
197
198 xorl %r10d,%edi
199 rorl $6,%r13d
200 movl %r10d,%r8d
201
202 andl %edi,%r15d
203 rorl $2,%r14d
204 addl %r13d,%r12d
205
206 xorl %r15d,%r8d
207 addl %r12d,%eax
208 addl %r12d,%r8d
209
210 leaq 20(%rbp),%rbp
211 addl %r14d,%r8d
212 movl 16(%rsi),%r12d
213 movl %eax,%r13d
214 movl %r8d,%r14d
215 bswapl %r12d
216 rorl $14,%r13d
217 movl %ebx,%r15d
218
219 xorl %eax,%r13d
220 rorl $9,%r14d
221 xorl %ecx,%r15d
222
223 movl %r12d,16(%rsp)
224 xorl %r8d,%r14d
225 andl %eax,%r15d
226
227 rorl $5,%r13d
228 addl %edx,%r12d
229 xorl %ecx,%r15d
230
231 rorl $11,%r14d
232 xorl %eax,%r13d
233 addl %r15d,%r12d
234
235 movl %r8d,%r15d
236 addl (%rbp),%r12d
237 xorl %r8d,%r14d
238
239 xorl %r9d,%r15d
240 rorl $6,%r13d
241 movl %r9d,%edx
242
243 andl %r15d,%edi
244 rorl $2,%r14d
245 addl %r13d,%r12d
246
247 xorl %edi,%edx
248 addl %r12d,%r11d
249 addl %r12d,%edx
250
251 leaq 4(%rbp),%rbp
252 addl %r14d,%edx
253 movl 20(%rsi),%r12d
254 movl %r11d,%r13d
255 movl %edx,%r14d
256 bswapl %r12d
257 rorl $14,%r13d
258 movl %eax,%edi
259
260 xorl %r11d,%r13d
261 rorl $9,%r14d
262 xorl %ebx,%edi
263
264 movl %r12d,20(%rsp)
265 xorl %edx,%r14d
266 andl %r11d,%edi
267
268 rorl $5,%r13d
269 addl %ecx,%r12d
270 xorl %ebx,%edi
271
272 rorl $11,%r14d
273 xorl %r11d,%r13d
274 addl %edi,%r12d
275
276 movl %edx,%edi
277 addl (%rbp),%r12d
278 xorl %edx,%r14d
279
280 xorl %r8d,%edi
281 rorl $6,%r13d
282 movl %r8d,%ecx
283
284 andl %edi,%r15d
285 rorl $2,%r14d
286 addl %r13d,%r12d
287
288 xorl %r15d,%ecx
289 addl %r12d,%r10d
290 addl %r12d,%ecx
291
292 leaq 4(%rbp),%rbp
293 addl %r14d,%ecx
294 movl 24(%rsi),%r12d
295 movl %r10d,%r13d
296 movl %ecx,%r14d
297 bswapl %r12d
298 rorl $14,%r13d
299 movl %r11d,%r15d
300
301 xorl %r10d,%r13d
302 rorl $9,%r14d
303 xorl %eax,%r15d
304
305 movl %r12d,24(%rsp)
306 xorl %ecx,%r14d
307 andl %r10d,%r15d
308
309 rorl $5,%r13d
310 addl %ebx,%r12d
311 xorl %eax,%r15d
312
313 rorl $11,%r14d
314 xorl %r10d,%r13d
315 addl %r15d,%r12d
316
317 movl %ecx,%r15d
318 addl (%rbp),%r12d
319 xorl %ecx,%r14d
320
321 xorl %edx,%r15d
322 rorl $6,%r13d
323 movl %edx,%ebx
324
325 andl %r15d,%edi
326 rorl $2,%r14d
327 addl %r13d,%r12d
328
329 xorl %edi,%ebx
330 addl %r12d,%r9d
331 addl %r12d,%ebx
332
333 leaq 4(%rbp),%rbp
334 addl %r14d,%ebx
335 movl 28(%rsi),%r12d
336 movl %r9d,%r13d
337 movl %ebx,%r14d
338 bswapl %r12d
339 rorl $14,%r13d
340 movl %r10d,%edi
341
342 xorl %r9d,%r13d
343 rorl $9,%r14d
344 xorl %r11d,%edi
345
346 movl %r12d,28(%rsp)
347 xorl %ebx,%r14d
348 andl %r9d,%edi
349
350 rorl $5,%r13d
351 addl %eax,%r12d
352 xorl %r11d,%edi
353
354 rorl $11,%r14d
355 xorl %r9d,%r13d
356 addl %edi,%r12d
357
358 movl %ebx,%edi
359 addl (%rbp),%r12d
360 xorl %ebx,%r14d
361
362 xorl %ecx,%edi
363 rorl $6,%r13d
364 movl %ecx,%eax
365
366 andl %edi,%r15d
367 rorl $2,%r14d
368 addl %r13d,%r12d
369
370 xorl %r15d,%eax
371 addl %r12d,%r8d
372 addl %r12d,%eax
373
374 leaq 20(%rbp),%rbp
375 addl %r14d,%eax
376 movl 32(%rsi),%r12d
377 movl %r8d,%r13d
378 movl %eax,%r14d
379 bswapl %r12d
380 rorl $14,%r13d
381 movl %r9d,%r15d
382
383 xorl %r8d,%r13d
384 rorl $9,%r14d
385 xorl %r10d,%r15d
386
387 movl %r12d,32(%rsp)
388 xorl %eax,%r14d
389 andl %r8d,%r15d
390
391 rorl $5,%r13d
392 addl %r11d,%r12d
393 xorl %r10d,%r15d
394
395 rorl $11,%r14d
396 xorl %r8d,%r13d
397 addl %r15d,%r12d
398
399 movl %eax,%r15d
400 addl (%rbp),%r12d
401 xorl %eax,%r14d
402
403 xorl %ebx,%r15d
404 rorl $6,%r13d
405 movl %ebx,%r11d
406
407 andl %r15d,%edi
408 rorl $2,%r14d
409 addl %r13d,%r12d
410
411 xorl %edi,%r11d
412 addl %r12d,%edx
413 addl %r12d,%r11d
414
415 leaq 4(%rbp),%rbp
416 addl %r14d,%r11d
417 movl 36(%rsi),%r12d
418 movl %edx,%r13d
419 movl %r11d,%r14d
420 bswapl %r12d
421 rorl $14,%r13d
422 movl %r8d,%edi
423
424 xorl %edx,%r13d
425 rorl $9,%r14d
426 xorl %r9d,%edi
427
428 movl %r12d,36(%rsp)
429 xorl %r11d,%r14d
430 andl %edx,%edi
431
432 rorl $5,%r13d
433 addl %r10d,%r12d
434 xorl %r9d,%edi
435
436 rorl $11,%r14d
437 xorl %edx,%r13d
438 addl %edi,%r12d
439
440 movl %r11d,%edi
441 addl (%rbp),%r12d
442 xorl %r11d,%r14d
443
444 xorl %eax,%edi
445 rorl $6,%r13d
446 movl %eax,%r10d
447
448 andl %edi,%r15d
449 rorl $2,%r14d
450 addl %r13d,%r12d
451
452 xorl %r15d,%r10d
453 addl %r12d,%ecx
454 addl %r12d,%r10d
455
456 leaq 4(%rbp),%rbp
457 addl %r14d,%r10d
458 movl 40(%rsi),%r12d
459 movl %ecx,%r13d
460 movl %r10d,%r14d
461 bswapl %r12d
462 rorl $14,%r13d
463 movl %edx,%r15d
464
465 xorl %ecx,%r13d
466 rorl $9,%r14d
467 xorl %r8d,%r15d
468
469 movl %r12d,40(%rsp)
470 xorl %r10d,%r14d
471 andl %ecx,%r15d
472
473 rorl $5,%r13d
474 addl %r9d,%r12d
475 xorl %r8d,%r15d
476
477 rorl $11,%r14d
478 xorl %ecx,%r13d
479 addl %r15d,%r12d
480
481 movl %r10d,%r15d
482 addl (%rbp),%r12d
483 xorl %r10d,%r14d
484
485 xorl %r11d,%r15d
486 rorl $6,%r13d
487 movl %r11d,%r9d
488
489 andl %r15d,%edi
490 rorl $2,%r14d
491 addl %r13d,%r12d
492
493 xorl %edi,%r9d
494 addl %r12d,%ebx
495 addl %r12d,%r9d
496
497 leaq 4(%rbp),%rbp
498 addl %r14d,%r9d
499 movl 44(%rsi),%r12d
500 movl %ebx,%r13d
501 movl %r9d,%r14d
502 bswapl %r12d
503 rorl $14,%r13d
504 movl %ecx,%edi
505
506 xorl %ebx,%r13d
507 rorl $9,%r14d
508 xorl %edx,%edi
509
510 movl %r12d,44(%rsp)
511 xorl %r9d,%r14d
512 andl %ebx,%edi
513
514 rorl $5,%r13d
515 addl %r8d,%r12d
516 xorl %edx,%edi
517
518 rorl $11,%r14d
519 xorl %ebx,%r13d
520 addl %edi,%r12d
521
522 movl %r9d,%edi
523 addl (%rbp),%r12d
524 xorl %r9d,%r14d
525
526 xorl %r10d,%edi
527 rorl $6,%r13d
528 movl %r10d,%r8d
529
530 andl %edi,%r15d
531 rorl $2,%r14d
532 addl %r13d,%r12d
533
534 xorl %r15d,%r8d
535 addl %r12d,%eax
536 addl %r12d,%r8d
537
538 leaq 20(%rbp),%rbp
539 addl %r14d,%r8d
540 movl 48(%rsi),%r12d
541 movl %eax,%r13d
542 movl %r8d,%r14d
543 bswapl %r12d
544 rorl $14,%r13d
545 movl %ebx,%r15d
546
547 xorl %eax,%r13d
548 rorl $9,%r14d
549 xorl %ecx,%r15d
550
551 movl %r12d,48(%rsp)
552 xorl %r8d,%r14d
553 andl %eax,%r15d
554
555 rorl $5,%r13d
556 addl %edx,%r12d
557 xorl %ecx,%r15d
558
559 rorl $11,%r14d
560 xorl %eax,%r13d
561 addl %r15d,%r12d
562
563 movl %r8d,%r15d
564 addl (%rbp),%r12d
565 xorl %r8d,%r14d
566
567 xorl %r9d,%r15d
568 rorl $6,%r13d
569 movl %r9d,%edx
570
571 andl %r15d,%edi
572 rorl $2,%r14d
573 addl %r13d,%r12d
574
575 xorl %edi,%edx
576 addl %r12d,%r11d
577 addl %r12d,%edx
578
579 leaq 4(%rbp),%rbp
580 addl %r14d,%edx
581 movl 52(%rsi),%r12d
582 movl %r11d,%r13d
583 movl %edx,%r14d
584 bswapl %r12d
585 rorl $14,%r13d
586 movl %eax,%edi
587
588 xorl %r11d,%r13d
589 rorl $9,%r14d
590 xorl %ebx,%edi
591
592 movl %r12d,52(%rsp)
593 xorl %edx,%r14d
594 andl %r11d,%edi
595
596 rorl $5,%r13d
597 addl %ecx,%r12d
598 xorl %ebx,%edi
599
600 rorl $11,%r14d
601 xorl %r11d,%r13d
602 addl %edi,%r12d
603
604 movl %edx,%edi
605 addl (%rbp),%r12d
606 xorl %edx,%r14d
607
608 xorl %r8d,%edi
609 rorl $6,%r13d
610 movl %r8d,%ecx
611
612 andl %edi,%r15d
613 rorl $2,%r14d
614 addl %r13d,%r12d
615
616 xorl %r15d,%ecx
617 addl %r12d,%r10d
618 addl %r12d,%ecx
619
620 leaq 4(%rbp),%rbp
621 addl %r14d,%ecx
622 movl 56(%rsi),%r12d
623 movl %r10d,%r13d
624 movl %ecx,%r14d
625 bswapl %r12d
626 rorl $14,%r13d
627 movl %r11d,%r15d
628
629 xorl %r10d,%r13d
630 rorl $9,%r14d
631 xorl %eax,%r15d
632
633 movl %r12d,56(%rsp)
634 xorl %ecx,%r14d
635 andl %r10d,%r15d
636
637 rorl $5,%r13d
638 addl %ebx,%r12d
639 xorl %eax,%r15d
640
641 rorl $11,%r14d
642 xorl %r10d,%r13d
643 addl %r15d,%r12d
644
645 movl %ecx,%r15d
646 addl (%rbp),%r12d
647 xorl %ecx,%r14d
648
649 xorl %edx,%r15d
650 rorl $6,%r13d
651 movl %edx,%ebx
652
653 andl %r15d,%edi
654 rorl $2,%r14d
655 addl %r13d,%r12d
656
657 xorl %edi,%ebx
658 addl %r12d,%r9d
659 addl %r12d,%ebx
660
661 leaq 4(%rbp),%rbp
662 addl %r14d,%ebx
663 movl 60(%rsi),%r12d
664 movl %r9d,%r13d
665 movl %ebx,%r14d
666 bswapl %r12d
667 rorl $14,%r13d
668 movl %r10d,%edi
669
670 xorl %r9d,%r13d
671 rorl $9,%r14d
672 xorl %r11d,%edi
673
674 movl %r12d,60(%rsp)
675 xorl %ebx,%r14d
676 andl %r9d,%edi
677
678 rorl $5,%r13d
679 addl %eax,%r12d
680 xorl %r11d,%edi
681
682 rorl $11,%r14d
683 xorl %r9d,%r13d
684 addl %edi,%r12d
685
686 movl %ebx,%edi
687 addl (%rbp),%r12d
688 xorl %ebx,%r14d
689
690 xorl %ecx,%edi
691 rorl $6,%r13d
692 movl %ecx,%eax
693
694 andl %edi,%r15d
695 rorl $2,%r14d
696 addl %r13d,%r12d
697
698 xorl %r15d,%eax
699 addl %r12d,%r8d
700 addl %r12d,%eax
701
702 leaq 20(%rbp),%rbp
703 jmp L$rounds_16_xx
704.p2align 4
705L$rounds_16_xx:
706 movl 4(%rsp),%r13d
707 movl 56(%rsp),%r15d
708
709 movl %r13d,%r12d
710 rorl $11,%r13d
711 addl %r14d,%eax
712 movl %r15d,%r14d
713 rorl $2,%r15d
714
715 xorl %r12d,%r13d
716 shrl $3,%r12d
717 rorl $7,%r13d
718 xorl %r14d,%r15d
719 shrl $10,%r14d
720
721 rorl $17,%r15d
722 xorl %r13d,%r12d
723 xorl %r14d,%r15d
724 addl 36(%rsp),%r12d
725
726 addl 0(%rsp),%r12d
727 movl %r8d,%r13d
728 addl %r15d,%r12d
729 movl %eax,%r14d
730 rorl $14,%r13d
731 movl %r9d,%r15d
732
733 xorl %r8d,%r13d
734 rorl $9,%r14d
735 xorl %r10d,%r15d
736
737 movl %r12d,0(%rsp)
738 xorl %eax,%r14d
739 andl %r8d,%r15d
740
741 rorl $5,%r13d
742 addl %r11d,%r12d
743 xorl %r10d,%r15d
744
745 rorl $11,%r14d
746 xorl %r8d,%r13d
747 addl %r15d,%r12d
748
749 movl %eax,%r15d
750 addl (%rbp),%r12d
751 xorl %eax,%r14d
752
753 xorl %ebx,%r15d
754 rorl $6,%r13d
755 movl %ebx,%r11d
756
757 andl %r15d,%edi
758 rorl $2,%r14d
759 addl %r13d,%r12d
760
761 xorl %edi,%r11d
762 addl %r12d,%edx
763 addl %r12d,%r11d
764
765 leaq 4(%rbp),%rbp
766 movl 8(%rsp),%r13d
767 movl 60(%rsp),%edi
768
769 movl %r13d,%r12d
770 rorl $11,%r13d
771 addl %r14d,%r11d
772 movl %edi,%r14d
773 rorl $2,%edi
774
775 xorl %r12d,%r13d
776 shrl $3,%r12d
777 rorl $7,%r13d
778 xorl %r14d,%edi
779 shrl $10,%r14d
780
781 rorl $17,%edi
782 xorl %r13d,%r12d
783 xorl %r14d,%edi
784 addl 40(%rsp),%r12d
785
786 addl 4(%rsp),%r12d
787 movl %edx,%r13d
788 addl %edi,%r12d
789 movl %r11d,%r14d
790 rorl $14,%r13d
791 movl %r8d,%edi
792
793 xorl %edx,%r13d
794 rorl $9,%r14d
795 xorl %r9d,%edi
796
797 movl %r12d,4(%rsp)
798 xorl %r11d,%r14d
799 andl %edx,%edi
800
801 rorl $5,%r13d
802 addl %r10d,%r12d
803 xorl %r9d,%edi
804
805 rorl $11,%r14d
806 xorl %edx,%r13d
807 addl %edi,%r12d
808
809 movl %r11d,%edi
810 addl (%rbp),%r12d
811 xorl %r11d,%r14d
812
813 xorl %eax,%edi
814 rorl $6,%r13d
815 movl %eax,%r10d
816
817 andl %edi,%r15d
818 rorl $2,%r14d
819 addl %r13d,%r12d
820
821 xorl %r15d,%r10d
822 addl %r12d,%ecx
823 addl %r12d,%r10d
824
825 leaq 4(%rbp),%rbp
826 movl 12(%rsp),%r13d
827 movl 0(%rsp),%r15d
828
829 movl %r13d,%r12d
830 rorl $11,%r13d
831 addl %r14d,%r10d
832 movl %r15d,%r14d
833 rorl $2,%r15d
834
835 xorl %r12d,%r13d
836 shrl $3,%r12d
837 rorl $7,%r13d
838 xorl %r14d,%r15d
839 shrl $10,%r14d
840
841 rorl $17,%r15d
842 xorl %r13d,%r12d
843 xorl %r14d,%r15d
844 addl 44(%rsp),%r12d
845
846 addl 8(%rsp),%r12d
847 movl %ecx,%r13d
848 addl %r15d,%r12d
849 movl %r10d,%r14d
850 rorl $14,%r13d
851 movl %edx,%r15d
852
853 xorl %ecx,%r13d
854 rorl $9,%r14d
855 xorl %r8d,%r15d
856
857 movl %r12d,8(%rsp)
858 xorl %r10d,%r14d
859 andl %ecx,%r15d
860
861 rorl $5,%r13d
862 addl %r9d,%r12d
863 xorl %r8d,%r15d
864
865 rorl $11,%r14d
866 xorl %ecx,%r13d
867 addl %r15d,%r12d
868
869 movl %r10d,%r15d
870 addl (%rbp),%r12d
871 xorl %r10d,%r14d
872
873 xorl %r11d,%r15d
874 rorl $6,%r13d
875 movl %r11d,%r9d
876
877 andl %r15d,%edi
878 rorl $2,%r14d
879 addl %r13d,%r12d
880
881 xorl %edi,%r9d
882 addl %r12d,%ebx
883 addl %r12d,%r9d
884
885 leaq 4(%rbp),%rbp
886 movl 16(%rsp),%r13d
887 movl 4(%rsp),%edi
888
889 movl %r13d,%r12d
890 rorl $11,%r13d
891 addl %r14d,%r9d
892 movl %edi,%r14d
893 rorl $2,%edi
894
895 xorl %r12d,%r13d
896 shrl $3,%r12d
897 rorl $7,%r13d
898 xorl %r14d,%edi
899 shrl $10,%r14d
900
901 rorl $17,%edi
902 xorl %r13d,%r12d
903 xorl %r14d,%edi
904 addl 48(%rsp),%r12d
905
906 addl 12(%rsp),%r12d
907 movl %ebx,%r13d
908 addl %edi,%r12d
909 movl %r9d,%r14d
910 rorl $14,%r13d
911 movl %ecx,%edi
912
913 xorl %ebx,%r13d
914 rorl $9,%r14d
915 xorl %edx,%edi
916
917 movl %r12d,12(%rsp)
918 xorl %r9d,%r14d
919 andl %ebx,%edi
920
921 rorl $5,%r13d
922 addl %r8d,%r12d
923 xorl %edx,%edi
924
925 rorl $11,%r14d
926 xorl %ebx,%r13d
927 addl %edi,%r12d
928
929 movl %r9d,%edi
930 addl (%rbp),%r12d
931 xorl %r9d,%r14d
932
933 xorl %r10d,%edi
934 rorl $6,%r13d
935 movl %r10d,%r8d
936
937 andl %edi,%r15d
938 rorl $2,%r14d
939 addl %r13d,%r12d
940
941 xorl %r15d,%r8d
942 addl %r12d,%eax
943 addl %r12d,%r8d
944
945 leaq 20(%rbp),%rbp
946 movl 20(%rsp),%r13d
947 movl 8(%rsp),%r15d
948
949 movl %r13d,%r12d
950 rorl $11,%r13d
951 addl %r14d,%r8d
952 movl %r15d,%r14d
953 rorl $2,%r15d
954
955 xorl %r12d,%r13d
956 shrl $3,%r12d
957 rorl $7,%r13d
958 xorl %r14d,%r15d
959 shrl $10,%r14d
960
961 rorl $17,%r15d
962 xorl %r13d,%r12d
963 xorl %r14d,%r15d
964 addl 52(%rsp),%r12d
965
966 addl 16(%rsp),%r12d
967 movl %eax,%r13d
968 addl %r15d,%r12d
969 movl %r8d,%r14d
970 rorl $14,%r13d
971 movl %ebx,%r15d
972
973 xorl %eax,%r13d
974 rorl $9,%r14d
975 xorl %ecx,%r15d
976
977 movl %r12d,16(%rsp)
978 xorl %r8d,%r14d
979 andl %eax,%r15d
980
981 rorl $5,%r13d
982 addl %edx,%r12d
983 xorl %ecx,%r15d
984
985 rorl $11,%r14d
986 xorl %eax,%r13d
987 addl %r15d,%r12d
988
989 movl %r8d,%r15d
990 addl (%rbp),%r12d
991 xorl %r8d,%r14d
992
993 xorl %r9d,%r15d
994 rorl $6,%r13d
995 movl %r9d,%edx
996
997 andl %r15d,%edi
998 rorl $2,%r14d
999 addl %r13d,%r12d
1000
1001 xorl %edi,%edx
1002 addl %r12d,%r11d
1003 addl %r12d,%edx
1004
1005 leaq 4(%rbp),%rbp
1006 movl 24(%rsp),%r13d
1007 movl 12(%rsp),%edi
1008
1009 movl %r13d,%r12d
1010 rorl $11,%r13d
1011 addl %r14d,%edx
1012 movl %edi,%r14d
1013 rorl $2,%edi
1014
1015 xorl %r12d,%r13d
1016 shrl $3,%r12d
1017 rorl $7,%r13d
1018 xorl %r14d,%edi
1019 shrl $10,%r14d
1020
1021 rorl $17,%edi
1022 xorl %r13d,%r12d
1023 xorl %r14d,%edi
1024 addl 56(%rsp),%r12d
1025
1026 addl 20(%rsp),%r12d
1027 movl %r11d,%r13d
1028 addl %edi,%r12d
1029 movl %edx,%r14d
1030 rorl $14,%r13d
1031 movl %eax,%edi
1032
1033 xorl %r11d,%r13d
1034 rorl $9,%r14d
1035 xorl %ebx,%edi
1036
1037 movl %r12d,20(%rsp)
1038 xorl %edx,%r14d
1039 andl %r11d,%edi
1040
1041 rorl $5,%r13d
1042 addl %ecx,%r12d
1043 xorl %ebx,%edi
1044
1045 rorl $11,%r14d
1046 xorl %r11d,%r13d
1047 addl %edi,%r12d
1048
1049 movl %edx,%edi
1050 addl (%rbp),%r12d
1051 xorl %edx,%r14d
1052
1053 xorl %r8d,%edi
1054 rorl $6,%r13d
1055 movl %r8d,%ecx
1056
1057 andl %edi,%r15d
1058 rorl $2,%r14d
1059 addl %r13d,%r12d
1060
1061 xorl %r15d,%ecx
1062 addl %r12d,%r10d
1063 addl %r12d,%ecx
1064
1065 leaq 4(%rbp),%rbp
1066 movl 28(%rsp),%r13d
1067 movl 16(%rsp),%r15d
1068
1069 movl %r13d,%r12d
1070 rorl $11,%r13d
1071 addl %r14d,%ecx
1072 movl %r15d,%r14d
1073 rorl $2,%r15d
1074
1075 xorl %r12d,%r13d
1076 shrl $3,%r12d
1077 rorl $7,%r13d
1078 xorl %r14d,%r15d
1079 shrl $10,%r14d
1080
1081 rorl $17,%r15d
1082 xorl %r13d,%r12d
1083 xorl %r14d,%r15d
1084 addl 60(%rsp),%r12d
1085
1086 addl 24(%rsp),%r12d
1087 movl %r10d,%r13d
1088 addl %r15d,%r12d
1089 movl %ecx,%r14d
1090 rorl $14,%r13d
1091 movl %r11d,%r15d
1092
1093 xorl %r10d,%r13d
1094 rorl $9,%r14d
1095 xorl %eax,%r15d
1096
1097 movl %r12d,24(%rsp)
1098 xorl %ecx,%r14d
1099 andl %r10d,%r15d
1100
1101 rorl $5,%r13d
1102 addl %ebx,%r12d
1103 xorl %eax,%r15d
1104
1105 rorl $11,%r14d
1106 xorl %r10d,%r13d
1107 addl %r15d,%r12d
1108
1109 movl %ecx,%r15d
1110 addl (%rbp),%r12d
1111 xorl %ecx,%r14d
1112
1113 xorl %edx,%r15d
1114 rorl $6,%r13d
1115 movl %edx,%ebx
1116
1117 andl %r15d,%edi
1118 rorl $2,%r14d
1119 addl %r13d,%r12d
1120
1121 xorl %edi,%ebx
1122 addl %r12d,%r9d
1123 addl %r12d,%ebx
1124
1125 leaq 4(%rbp),%rbp
1126 movl 32(%rsp),%r13d
1127 movl 20(%rsp),%edi
1128
1129 movl %r13d,%r12d
1130 rorl $11,%r13d
1131 addl %r14d,%ebx
1132 movl %edi,%r14d
1133 rorl $2,%edi
1134
1135 xorl %r12d,%r13d
1136 shrl $3,%r12d
1137 rorl $7,%r13d
1138 xorl %r14d,%edi
1139 shrl $10,%r14d
1140
1141 rorl $17,%edi
1142 xorl %r13d,%r12d
1143 xorl %r14d,%edi
1144 addl 0(%rsp),%r12d
1145
1146 addl 28(%rsp),%r12d
1147 movl %r9d,%r13d
1148 addl %edi,%r12d
1149 movl %ebx,%r14d
1150 rorl $14,%r13d
1151 movl %r10d,%edi
1152
1153 xorl %r9d,%r13d
1154 rorl $9,%r14d
1155 xorl %r11d,%edi
1156
1157 movl %r12d,28(%rsp)
1158 xorl %ebx,%r14d
1159 andl %r9d,%edi
1160
1161 rorl $5,%r13d
1162 addl %eax,%r12d
1163 xorl %r11d,%edi
1164
1165 rorl $11,%r14d
1166 xorl %r9d,%r13d
1167 addl %edi,%r12d
1168
1169 movl %ebx,%edi
1170 addl (%rbp),%r12d
1171 xorl %ebx,%r14d
1172
1173 xorl %ecx,%edi
1174 rorl $6,%r13d
1175 movl %ecx,%eax
1176
1177 andl %edi,%r15d
1178 rorl $2,%r14d
1179 addl %r13d,%r12d
1180
1181 xorl %r15d,%eax
1182 addl %r12d,%r8d
1183 addl %r12d,%eax
1184
1185 leaq 20(%rbp),%rbp
1186 movl 36(%rsp),%r13d
1187 movl 24(%rsp),%r15d
1188
1189 movl %r13d,%r12d
1190 rorl $11,%r13d
1191 addl %r14d,%eax
1192 movl %r15d,%r14d
1193 rorl $2,%r15d
1194
1195 xorl %r12d,%r13d
1196 shrl $3,%r12d
1197 rorl $7,%r13d
1198 xorl %r14d,%r15d
1199 shrl $10,%r14d
1200
1201 rorl $17,%r15d
1202 xorl %r13d,%r12d
1203 xorl %r14d,%r15d
1204 addl 4(%rsp),%r12d
1205
1206 addl 32(%rsp),%r12d
1207 movl %r8d,%r13d
1208 addl %r15d,%r12d
1209 movl %eax,%r14d
1210 rorl $14,%r13d
1211 movl %r9d,%r15d
1212
1213 xorl %r8d,%r13d
1214 rorl $9,%r14d
1215 xorl %r10d,%r15d
1216
1217 movl %r12d,32(%rsp)
1218 xorl %eax,%r14d
1219 andl %r8d,%r15d
1220
1221 rorl $5,%r13d
1222 addl %r11d,%r12d
1223 xorl %r10d,%r15d
1224
1225 rorl $11,%r14d
1226 xorl %r8d,%r13d
1227 addl %r15d,%r12d
1228
1229 movl %eax,%r15d
1230 addl (%rbp),%r12d
1231 xorl %eax,%r14d
1232
1233 xorl %ebx,%r15d
1234 rorl $6,%r13d
1235 movl %ebx,%r11d
1236
1237 andl %r15d,%edi
1238 rorl $2,%r14d
1239 addl %r13d,%r12d
1240
1241 xorl %edi,%r11d
1242 addl %r12d,%edx
1243 addl %r12d,%r11d
1244
1245 leaq 4(%rbp),%rbp
1246 movl 40(%rsp),%r13d
1247 movl 28(%rsp),%edi
1248
1249 movl %r13d,%r12d
1250 rorl $11,%r13d
1251 addl %r14d,%r11d
1252 movl %edi,%r14d
1253 rorl $2,%edi
1254
1255 xorl %r12d,%r13d
1256 shrl $3,%r12d
1257 rorl $7,%r13d
1258 xorl %r14d,%edi
1259 shrl $10,%r14d
1260
1261 rorl $17,%edi
1262 xorl %r13d,%r12d
1263 xorl %r14d,%edi
1264 addl 8(%rsp),%r12d
1265
1266 addl 36(%rsp),%r12d
1267 movl %edx,%r13d
1268 addl %edi,%r12d
1269 movl %r11d,%r14d
1270 rorl $14,%r13d
1271 movl %r8d,%edi
1272
1273 xorl %edx,%r13d
1274 rorl $9,%r14d
1275 xorl %r9d,%edi
1276
1277 movl %r12d,36(%rsp)
1278 xorl %r11d,%r14d
1279 andl %edx,%edi
1280
1281 rorl $5,%r13d
1282 addl %r10d,%r12d
1283 xorl %r9d,%edi
1284
1285 rorl $11,%r14d
1286 xorl %edx,%r13d
1287 addl %edi,%r12d
1288
1289 movl %r11d,%edi
1290 addl (%rbp),%r12d
1291 xorl %r11d,%r14d
1292
1293 xorl %eax,%edi
1294 rorl $6,%r13d
1295 movl %eax,%r10d
1296
1297 andl %edi,%r15d
1298 rorl $2,%r14d
1299 addl %r13d,%r12d
1300
1301 xorl %r15d,%r10d
1302 addl %r12d,%ecx
1303 addl %r12d,%r10d
1304
1305 leaq 4(%rbp),%rbp
1306 movl 44(%rsp),%r13d
1307 movl 32(%rsp),%r15d
1308
1309 movl %r13d,%r12d
1310 rorl $11,%r13d
1311 addl %r14d,%r10d
1312 movl %r15d,%r14d
1313 rorl $2,%r15d
1314
1315 xorl %r12d,%r13d
1316 shrl $3,%r12d
1317 rorl $7,%r13d
1318 xorl %r14d,%r15d
1319 shrl $10,%r14d
1320
1321 rorl $17,%r15d
1322 xorl %r13d,%r12d
1323 xorl %r14d,%r15d
1324 addl 12(%rsp),%r12d
1325
1326 addl 40(%rsp),%r12d
1327 movl %ecx,%r13d
1328 addl %r15d,%r12d
1329 movl %r10d,%r14d
1330 rorl $14,%r13d
1331 movl %edx,%r15d
1332
1333 xorl %ecx,%r13d
1334 rorl $9,%r14d
1335 xorl %r8d,%r15d
1336
1337 movl %r12d,40(%rsp)
1338 xorl %r10d,%r14d
1339 andl %ecx,%r15d
1340
1341 rorl $5,%r13d
1342 addl %r9d,%r12d
1343 xorl %r8d,%r15d
1344
1345 rorl $11,%r14d
1346 xorl %ecx,%r13d
1347 addl %r15d,%r12d
1348
1349 movl %r10d,%r15d
1350 addl (%rbp),%r12d
1351 xorl %r10d,%r14d
1352
1353 xorl %r11d,%r15d
1354 rorl $6,%r13d
1355 movl %r11d,%r9d
1356
1357 andl %r15d,%edi
1358 rorl $2,%r14d
1359 addl %r13d,%r12d
1360
1361 xorl %edi,%r9d
1362 addl %r12d,%ebx
1363 addl %r12d,%r9d
1364
1365 leaq 4(%rbp),%rbp
1366 movl 48(%rsp),%r13d
1367 movl 36(%rsp),%edi
1368
1369 movl %r13d,%r12d
1370 rorl $11,%r13d
1371 addl %r14d,%r9d
1372 movl %edi,%r14d
1373 rorl $2,%edi
1374
1375 xorl %r12d,%r13d
1376 shrl $3,%r12d
1377 rorl $7,%r13d
1378 xorl %r14d,%edi
1379 shrl $10,%r14d
1380
1381 rorl $17,%edi
1382 xorl %r13d,%r12d
1383 xorl %r14d,%edi
1384 addl 16(%rsp),%r12d
1385
1386 addl 44(%rsp),%r12d
1387 movl %ebx,%r13d
1388 addl %edi,%r12d
1389 movl %r9d,%r14d
1390 rorl $14,%r13d
1391 movl %ecx,%edi
1392
1393 xorl %ebx,%r13d
1394 rorl $9,%r14d
1395 xorl %edx,%edi
1396
1397 movl %r12d,44(%rsp)
1398 xorl %r9d,%r14d
1399 andl %ebx,%edi
1400
1401 rorl $5,%r13d
1402 addl %r8d,%r12d
1403 xorl %edx,%edi
1404
1405 rorl $11,%r14d
1406 xorl %ebx,%r13d
1407 addl %edi,%r12d
1408
1409 movl %r9d,%edi
1410 addl (%rbp),%r12d
1411 xorl %r9d,%r14d
1412
1413 xorl %r10d,%edi
1414 rorl $6,%r13d
1415 movl %r10d,%r8d
1416
1417 andl %edi,%r15d
1418 rorl $2,%r14d
1419 addl %r13d,%r12d
1420
1421 xorl %r15d,%r8d
1422 addl %r12d,%eax
1423 addl %r12d,%r8d
1424
1425 leaq 20(%rbp),%rbp
1426 movl 52(%rsp),%r13d
1427 movl 40(%rsp),%r15d
1428
1429 movl %r13d,%r12d
1430 rorl $11,%r13d
1431 addl %r14d,%r8d
1432 movl %r15d,%r14d
1433 rorl $2,%r15d
1434
1435 xorl %r12d,%r13d
1436 shrl $3,%r12d
1437 rorl $7,%r13d
1438 xorl %r14d,%r15d
1439 shrl $10,%r14d
1440
1441 rorl $17,%r15d
1442 xorl %r13d,%r12d
1443 xorl %r14d,%r15d
1444 addl 20(%rsp),%r12d
1445
1446 addl 48(%rsp),%r12d
1447 movl %eax,%r13d
1448 addl %r15d,%r12d
1449 movl %r8d,%r14d
1450 rorl $14,%r13d
1451 movl %ebx,%r15d
1452
1453 xorl %eax,%r13d
1454 rorl $9,%r14d
1455 xorl %ecx,%r15d
1456
1457 movl %r12d,48(%rsp)
1458 xorl %r8d,%r14d
1459 andl %eax,%r15d
1460
1461 rorl $5,%r13d
1462 addl %edx,%r12d
1463 xorl %ecx,%r15d
1464
1465 rorl $11,%r14d
1466 xorl %eax,%r13d
1467 addl %r15d,%r12d
1468
1469 movl %r8d,%r15d
1470 addl (%rbp),%r12d
1471 xorl %r8d,%r14d
1472
1473 xorl %r9d,%r15d
1474 rorl $6,%r13d
1475 movl %r9d,%edx
1476
1477 andl %r15d,%edi
1478 rorl $2,%r14d
1479 addl %r13d,%r12d
1480
1481 xorl %edi,%edx
1482 addl %r12d,%r11d
1483 addl %r12d,%edx
1484
1485 leaq 4(%rbp),%rbp
1486 movl 56(%rsp),%r13d
1487 movl 44(%rsp),%edi
1488
1489 movl %r13d,%r12d
1490 rorl $11,%r13d
1491 addl %r14d,%edx
1492 movl %edi,%r14d
1493 rorl $2,%edi
1494
1495 xorl %r12d,%r13d
1496 shrl $3,%r12d
1497 rorl $7,%r13d
1498 xorl %r14d,%edi
1499 shrl $10,%r14d
1500
1501 rorl $17,%edi
1502 xorl %r13d,%r12d
1503 xorl %r14d,%edi
1504 addl 24(%rsp),%r12d
1505
1506 addl 52(%rsp),%r12d
1507 movl %r11d,%r13d
1508 addl %edi,%r12d
1509 movl %edx,%r14d
1510 rorl $14,%r13d
1511 movl %eax,%edi
1512
1513 xorl %r11d,%r13d
1514 rorl $9,%r14d
1515 xorl %ebx,%edi
1516
1517 movl %r12d,52(%rsp)
1518 xorl %edx,%r14d
1519 andl %r11d,%edi
1520
1521 rorl $5,%r13d
1522 addl %ecx,%r12d
1523 xorl %ebx,%edi
1524
1525 rorl $11,%r14d
1526 xorl %r11d,%r13d
1527 addl %edi,%r12d
1528
1529 movl %edx,%edi
1530 addl (%rbp),%r12d
1531 xorl %edx,%r14d
1532
1533 xorl %r8d,%edi
1534 rorl $6,%r13d
1535 movl %r8d,%ecx
1536
1537 andl %edi,%r15d
1538 rorl $2,%r14d
1539 addl %r13d,%r12d
1540
1541 xorl %r15d,%ecx
1542 addl %r12d,%r10d
1543 addl %r12d,%ecx
1544
1545 leaq 4(%rbp),%rbp
1546 movl 60(%rsp),%r13d
1547 movl 48(%rsp),%r15d
1548
1549 movl %r13d,%r12d
1550 rorl $11,%r13d
1551 addl %r14d,%ecx
1552 movl %r15d,%r14d
1553 rorl $2,%r15d
1554
1555 xorl %r12d,%r13d
1556 shrl $3,%r12d
1557 rorl $7,%r13d
1558 xorl %r14d,%r15d
1559 shrl $10,%r14d
1560
1561 rorl $17,%r15d
1562 xorl %r13d,%r12d
1563 xorl %r14d,%r15d
1564 addl 28(%rsp),%r12d
1565
1566 addl 56(%rsp),%r12d
1567 movl %r10d,%r13d
1568 addl %r15d,%r12d
1569 movl %ecx,%r14d
1570 rorl $14,%r13d
1571 movl %r11d,%r15d
1572
1573 xorl %r10d,%r13d
1574 rorl $9,%r14d
1575 xorl %eax,%r15d
1576
1577 movl %r12d,56(%rsp)
1578 xorl %ecx,%r14d
1579 andl %r10d,%r15d
1580
1581 rorl $5,%r13d
1582 addl %ebx,%r12d
1583 xorl %eax,%r15d
1584
1585 rorl $11,%r14d
1586 xorl %r10d,%r13d
1587 addl %r15d,%r12d
1588
1589 movl %ecx,%r15d
1590 addl (%rbp),%r12d
1591 xorl %ecx,%r14d
1592
1593 xorl %edx,%r15d
1594 rorl $6,%r13d
1595 movl %edx,%ebx
1596
1597 andl %r15d,%edi
1598 rorl $2,%r14d
1599 addl %r13d,%r12d
1600
1601 xorl %edi,%ebx
1602 addl %r12d,%r9d
1603 addl %r12d,%ebx
1604
1605 leaq 4(%rbp),%rbp
1606 movl 0(%rsp),%r13d
1607 movl 52(%rsp),%edi
1608
1609 movl %r13d,%r12d
1610 rorl $11,%r13d
1611 addl %r14d,%ebx
1612 movl %edi,%r14d
1613 rorl $2,%edi
1614
1615 xorl %r12d,%r13d
1616 shrl $3,%r12d
1617 rorl $7,%r13d
1618 xorl %r14d,%edi
1619 shrl $10,%r14d
1620
1621 rorl $17,%edi
1622 xorl %r13d,%r12d
1623 xorl %r14d,%edi
1624 addl 32(%rsp),%r12d
1625
1626 addl 60(%rsp),%r12d
1627 movl %r9d,%r13d
1628 addl %edi,%r12d
1629 movl %ebx,%r14d
1630 rorl $14,%r13d
1631 movl %r10d,%edi
1632
1633 xorl %r9d,%r13d
1634 rorl $9,%r14d
1635 xorl %r11d,%edi
1636
1637 movl %r12d,60(%rsp)
1638 xorl %ebx,%r14d
1639 andl %r9d,%edi
1640
1641 rorl $5,%r13d
1642 addl %eax,%r12d
1643 xorl %r11d,%edi
1644
1645 rorl $11,%r14d
1646 xorl %r9d,%r13d
1647 addl %edi,%r12d
1648
1649 movl %ebx,%edi
1650 addl (%rbp),%r12d
1651 xorl %ebx,%r14d
1652
1653 xorl %ecx,%edi
1654 rorl $6,%r13d
1655 movl %ecx,%eax
1656
1657 andl %edi,%r15d
1658 rorl $2,%r14d
1659 addl %r13d,%r12d
1660
1661 xorl %r15d,%eax
1662 addl %r12d,%r8d
1663 addl %r12d,%eax
1664
1665 leaq 20(%rbp),%rbp
1666 cmpb $0,3(%rbp)
1667 jnz L$rounds_16_xx
1668
1669 movq 64+0(%rsp),%rdi
1670 addl %r14d,%eax
1671 leaq 64(%rsi),%rsi
1672
1673 addl 0(%rdi),%eax
1674 addl 4(%rdi),%ebx
1675 addl 8(%rdi),%ecx
1676 addl 12(%rdi),%edx
1677 addl 16(%rdi),%r8d
1678 addl 20(%rdi),%r9d
1679 addl 24(%rdi),%r10d
1680 addl 28(%rdi),%r11d
1681
1682 cmpq 64+16(%rsp),%rsi
1683
1684 movl %eax,0(%rdi)
1685 movl %ebx,4(%rdi)
1686 movl %ecx,8(%rdi)
1687 movl %edx,12(%rdi)
1688 movl %r8d,16(%rdi)
1689 movl %r9d,20(%rdi)
1690 movl %r10d,24(%rdi)
1691 movl %r11d,28(%rdi)
1692 jb L$loop
1693
1694 movq 64+24(%rsp),%rsi
1695 movq (%rsi),%r15
1696 movq 8(%rsi),%r14
1697 movq 16(%rsi),%r13
1698 movq 24(%rsi),%r12
1699 movq 32(%rsi),%rbp
1700 movq 40(%rsi),%rbx
1701 leaq 48(%rsi),%rsp
1702L$epilogue:
1703 .byte 0xf3,0xc3
1704
1705.p2align 6
1706
1707K256:
1708.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1709.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1710.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1711.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1712.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1713.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1714.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1715.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1716.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1717.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1718.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1719.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1720.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1721.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1722.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1723.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1724.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1725.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1726.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1727.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1728.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1729.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1730.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1731.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1732.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1733.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1734.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1735.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1736.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1737.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1738.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1739.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1740
1741.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1742.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1743.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1744.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1745.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1746.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1747.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1748
1749.p2align 6
1750sha256_block_data_order_ssse3:
1751L$ssse3_shortcut:
1752 pushq %rbx
1753 pushq %rbp
1754 pushq %r12
1755 pushq %r13
1756 pushq %r14
1757 pushq %r15
1758 movq %rsp,%r11
1759 shlq $4,%rdx
1760 subq $96,%rsp
1761 leaq (%rsi,%rdx,4),%rdx
1762 andq $-64,%rsp
1763 movq %rdi,64+0(%rsp)
1764 movq %rsi,64+8(%rsp)
1765 movq %rdx,64+16(%rsp)
1766 movq %r11,64+24(%rsp)
1767L$prologue_ssse3:
1768
1769 movl 0(%rdi),%eax
1770 movl 4(%rdi),%ebx
1771 movl 8(%rdi),%ecx
1772 movl 12(%rdi),%edx
1773 movl 16(%rdi),%r8d
1774 movl 20(%rdi),%r9d
1775 movl 24(%rdi),%r10d
1776 movl 28(%rdi),%r11d
1777
1778
1779 jmp L$loop_ssse3
1780.p2align 4
1781L$loop_ssse3:
1782 movdqa K256+512(%rip),%xmm7
1783 movdqu 0(%rsi),%xmm0
1784 movdqu 16(%rsi),%xmm1
1785 movdqu 32(%rsi),%xmm2
1786.byte 102,15,56,0,199
1787 movdqu 48(%rsi),%xmm3
1788 leaq K256(%rip),%rbp
1789.byte 102,15,56,0,207
1790 movdqa 0(%rbp),%xmm4
1791 movdqa 32(%rbp),%xmm5
1792.byte 102,15,56,0,215
1793 paddd %xmm0,%xmm4
1794 movdqa 64(%rbp),%xmm6
1795.byte 102,15,56,0,223
1796 movdqa 96(%rbp),%xmm7
1797 paddd %xmm1,%xmm5
1798 paddd %xmm2,%xmm6
1799 paddd %xmm3,%xmm7
1800 movdqa %xmm4,0(%rsp)
1801 movl %eax,%r14d
1802 movdqa %xmm5,16(%rsp)
1803 movl %ebx,%edi
1804 movdqa %xmm6,32(%rsp)
1805 xorl %ecx,%edi
1806 movdqa %xmm7,48(%rsp)
1807 movl %r8d,%r13d
1808 jmp L$ssse3_00_47
1809
1810.p2align 4
1811L$ssse3_00_47:
1812 subq $-128,%rbp
1813 rorl $14,%r13d
1814 movdqa %xmm1,%xmm4
1815 movl %r14d,%eax
1816 movl %r9d,%r12d
1817 movdqa %xmm3,%xmm7
1818 rorl $9,%r14d
1819 xorl %r8d,%r13d
1820 xorl %r10d,%r12d
1821 rorl $5,%r13d
1822 xorl %eax,%r14d
1823.byte 102,15,58,15,224,4
1824 andl %r8d,%r12d
1825 xorl %r8d,%r13d
1826.byte 102,15,58,15,250,4
1827 addl 0(%rsp),%r11d
1828 movl %eax,%r15d
1829 xorl %r10d,%r12d
1830 rorl $11,%r14d
1831 movdqa %xmm4,%xmm5
1832 xorl %ebx,%r15d
1833 addl %r12d,%r11d
1834 movdqa %xmm4,%xmm6
1835 rorl $6,%r13d
1836 andl %r15d,%edi
1837 psrld $3,%xmm4
1838 xorl %eax,%r14d
1839 addl %r13d,%r11d
1840 xorl %ebx,%edi
1841 paddd %xmm7,%xmm0
1842 rorl $2,%r14d
1843 addl %r11d,%edx
1844 psrld $7,%xmm6
1845 addl %edi,%r11d
1846 movl %edx,%r13d
1847 pshufd $250,%xmm3,%xmm7
1848 addl %r11d,%r14d
1849 rorl $14,%r13d
1850 pslld $14,%xmm5
1851 movl %r14d,%r11d
1852 movl %r8d,%r12d
1853 pxor %xmm6,%xmm4
1854 rorl $9,%r14d
1855 xorl %edx,%r13d
1856 xorl %r9d,%r12d
1857 rorl $5,%r13d
1858 psrld $11,%xmm6
1859 xorl %r11d,%r14d
1860 pxor %xmm5,%xmm4
1861 andl %edx,%r12d
1862 xorl %edx,%r13d
1863 pslld $11,%xmm5
1864 addl 4(%rsp),%r10d
1865 movl %r11d,%edi
1866 pxor %xmm6,%xmm4
1867 xorl %r9d,%r12d
1868 rorl $11,%r14d
1869 movdqa %xmm7,%xmm6
1870 xorl %eax,%edi
1871 addl %r12d,%r10d
1872 pxor %xmm5,%xmm4
1873 rorl $6,%r13d
1874 andl %edi,%r15d
1875 xorl %r11d,%r14d
1876 psrld $10,%xmm7
1877 addl %r13d,%r10d
1878 xorl %eax,%r15d
1879 paddd %xmm4,%xmm0
1880 rorl $2,%r14d
1881 addl %r10d,%ecx
1882 psrlq $17,%xmm6
1883 addl %r15d,%r10d
1884 movl %ecx,%r13d
1885 addl %r10d,%r14d
1886 pxor %xmm6,%xmm7
1887 rorl $14,%r13d
1888 movl %r14d,%r10d
1889 movl %edx,%r12d
1890 rorl $9,%r14d
1891 psrlq $2,%xmm6
1892 xorl %ecx,%r13d
1893 xorl %r8d,%r12d
1894 pxor %xmm6,%xmm7
1895 rorl $5,%r13d
1896 xorl %r10d,%r14d
1897 andl %ecx,%r12d
1898 pshufd $128,%xmm7,%xmm7
1899 xorl %ecx,%r13d
1900 addl 8(%rsp),%r9d
1901 movl %r10d,%r15d
1902 psrldq $8,%xmm7
1903 xorl %r8d,%r12d
1904 rorl $11,%r14d
1905 xorl %r11d,%r15d
1906 addl %r12d,%r9d
1907 rorl $6,%r13d
1908 paddd %xmm7,%xmm0
1909 andl %r15d,%edi
1910 xorl %r10d,%r14d
1911 addl %r13d,%r9d
1912 pshufd $80,%xmm0,%xmm7
1913 xorl %r11d,%edi
1914 rorl $2,%r14d
1915 addl %r9d,%ebx
1916 movdqa %xmm7,%xmm6
1917 addl %edi,%r9d
1918 movl %ebx,%r13d
1919 psrld $10,%xmm7
1920 addl %r9d,%r14d
1921 rorl $14,%r13d
1922 psrlq $17,%xmm6
1923 movl %r14d,%r9d
1924 movl %ecx,%r12d
1925 pxor %xmm6,%xmm7
1926 rorl $9,%r14d
1927 xorl %ebx,%r13d
1928 xorl %edx,%r12d
1929 rorl $5,%r13d
1930 xorl %r9d,%r14d
1931 psrlq $2,%xmm6
1932 andl %ebx,%r12d
1933 xorl %ebx,%r13d
1934 addl 12(%rsp),%r8d
1935 pxor %xmm6,%xmm7
1936 movl %r9d,%edi
1937 xorl %edx,%r12d
1938 rorl $11,%r14d
1939 pshufd $8,%xmm7,%xmm7
1940 xorl %r10d,%edi
1941 addl %r12d,%r8d
1942 movdqa 0(%rbp),%xmm6
1943 rorl $6,%r13d
1944 andl %edi,%r15d
1945 pslldq $8,%xmm7
1946 xorl %r9d,%r14d
1947 addl %r13d,%r8d
1948 xorl %r10d,%r15d
1949 paddd %xmm7,%xmm0
1950 rorl $2,%r14d
1951 addl %r8d,%eax
1952 addl %r15d,%r8d
1953 paddd %xmm0,%xmm6
1954 movl %eax,%r13d
1955 addl %r8d,%r14d
1956 movdqa %xmm6,0(%rsp)
1957 rorl $14,%r13d
1958 movdqa %xmm2,%xmm4
1959 movl %r14d,%r8d
1960 movl %ebx,%r12d
1961 movdqa %xmm0,%xmm7
1962 rorl $9,%r14d
1963 xorl %eax,%r13d
1964 xorl %ecx,%r12d
1965 rorl $5,%r13d
1966 xorl %r8d,%r14d
1967.byte 102,15,58,15,225,4
1968 andl %eax,%r12d
1969 xorl %eax,%r13d
1970.byte 102,15,58,15,251,4
1971 addl 16(%rsp),%edx
1972 movl %r8d,%r15d
1973 xorl %ecx,%r12d
1974 rorl $11,%r14d
1975 movdqa %xmm4,%xmm5
1976 xorl %r9d,%r15d
1977 addl %r12d,%edx
1978 movdqa %xmm4,%xmm6
1979 rorl $6,%r13d
1980 andl %r15d,%edi
1981 psrld $3,%xmm4
1982 xorl %r8d,%r14d
1983 addl %r13d,%edx
1984 xorl %r9d,%edi
1985 paddd %xmm7,%xmm1
1986 rorl $2,%r14d
1987 addl %edx,%r11d
1988 psrld $7,%xmm6
1989 addl %edi,%edx
1990 movl %r11d,%r13d
1991 pshufd $250,%xmm0,%xmm7
1992 addl %edx,%r14d
1993 rorl $14,%r13d
1994 pslld $14,%xmm5
1995 movl %r14d,%edx
1996 movl %eax,%r12d
1997 pxor %xmm6,%xmm4
1998 rorl $9,%r14d
1999 xorl %r11d,%r13d
2000 xorl %ebx,%r12d
2001 rorl $5,%r13d
2002 psrld $11,%xmm6
2003 xorl %edx,%r14d
2004 pxor %xmm5,%xmm4
2005 andl %r11d,%r12d
2006 xorl %r11d,%r13d
2007 pslld $11,%xmm5
2008 addl 20(%rsp),%ecx
2009 movl %edx,%edi
2010 pxor %xmm6,%xmm4
2011 xorl %ebx,%r12d
2012 rorl $11,%r14d
2013 movdqa %xmm7,%xmm6
2014 xorl %r8d,%edi
2015 addl %r12d,%ecx
2016 pxor %xmm5,%xmm4
2017 rorl $6,%r13d
2018 andl %edi,%r15d
2019 xorl %edx,%r14d
2020 psrld $10,%xmm7
2021 addl %r13d,%ecx
2022 xorl %r8d,%r15d
2023 paddd %xmm4,%xmm1
2024 rorl $2,%r14d
2025 addl %ecx,%r10d
2026 psrlq $17,%xmm6
2027 addl %r15d,%ecx
2028 movl %r10d,%r13d
2029 addl %ecx,%r14d
2030 pxor %xmm6,%xmm7
2031 rorl $14,%r13d
2032 movl %r14d,%ecx
2033 movl %r11d,%r12d
2034 rorl $9,%r14d
2035 psrlq $2,%xmm6
2036 xorl %r10d,%r13d
2037 xorl %eax,%r12d
2038 pxor %xmm6,%xmm7
2039 rorl $5,%r13d
2040 xorl %ecx,%r14d
2041 andl %r10d,%r12d
2042 pshufd $128,%xmm7,%xmm7
2043 xorl %r10d,%r13d
2044 addl 24(%rsp),%ebx
2045 movl %ecx,%r15d
2046 psrldq $8,%xmm7
2047 xorl %eax,%r12d
2048 rorl $11,%r14d
2049 xorl %edx,%r15d
2050 addl %r12d,%ebx
2051 rorl $6,%r13d
2052 paddd %xmm7,%xmm1
2053 andl %r15d,%edi
2054 xorl %ecx,%r14d
2055 addl %r13d,%ebx
2056 pshufd $80,%xmm1,%xmm7
2057 xorl %edx,%edi
2058 rorl $2,%r14d
2059 addl %ebx,%r9d
2060 movdqa %xmm7,%xmm6
2061 addl %edi,%ebx
2062 movl %r9d,%r13d
2063 psrld $10,%xmm7
2064 addl %ebx,%r14d
2065 rorl $14,%r13d
2066 psrlq $17,%xmm6
2067 movl %r14d,%ebx
2068 movl %r10d,%r12d
2069 pxor %xmm6,%xmm7
2070 rorl $9,%r14d
2071 xorl %r9d,%r13d
2072 xorl %r11d,%r12d
2073 rorl $5,%r13d
2074 xorl %ebx,%r14d
2075 psrlq $2,%xmm6
2076 andl %r9d,%r12d
2077 xorl %r9d,%r13d
2078 addl 28(%rsp),%eax
2079 pxor %xmm6,%xmm7
2080 movl %ebx,%edi
2081 xorl %r11d,%r12d
2082 rorl $11,%r14d
2083 pshufd $8,%xmm7,%xmm7
2084 xorl %ecx,%edi
2085 addl %r12d,%eax
2086 movdqa 32(%rbp),%xmm6
2087 rorl $6,%r13d
2088 andl %edi,%r15d
2089 pslldq $8,%xmm7
2090 xorl %ebx,%r14d
2091 addl %r13d,%eax
2092 xorl %ecx,%r15d
2093 paddd %xmm7,%xmm1
2094 rorl $2,%r14d
2095 addl %eax,%r8d
2096 addl %r15d,%eax
2097 paddd %xmm1,%xmm6
2098 movl %r8d,%r13d
2099 addl %eax,%r14d
2100 movdqa %xmm6,16(%rsp)
2101 rorl $14,%r13d
2102 movdqa %xmm3,%xmm4
2103 movl %r14d,%eax
2104 movl %r9d,%r12d
2105 movdqa %xmm1,%xmm7
2106 rorl $9,%r14d
2107 xorl %r8d,%r13d
2108 xorl %r10d,%r12d
2109 rorl $5,%r13d
2110 xorl %eax,%r14d
2111.byte 102,15,58,15,226,4
2112 andl %r8d,%r12d
2113 xorl %r8d,%r13d
2114.byte 102,15,58,15,248,4
2115 addl 32(%rsp),%r11d
2116 movl %eax,%r15d
2117 xorl %r10d,%r12d
2118 rorl $11,%r14d
2119 movdqa %xmm4,%xmm5
2120 xorl %ebx,%r15d
2121 addl %r12d,%r11d
2122 movdqa %xmm4,%xmm6
2123 rorl $6,%r13d
2124 andl %r15d,%edi
2125 psrld $3,%xmm4
2126 xorl %eax,%r14d
2127 addl %r13d,%r11d
2128 xorl %ebx,%edi
2129 paddd %xmm7,%xmm2
2130 rorl $2,%r14d
2131 addl %r11d,%edx
2132 psrld $7,%xmm6
2133 addl %edi,%r11d
2134 movl %edx,%r13d
2135 pshufd $250,%xmm1,%xmm7
2136 addl %r11d,%r14d
2137 rorl $14,%r13d
2138 pslld $14,%xmm5
2139 movl %r14d,%r11d
2140 movl %r8d,%r12d
2141 pxor %xmm6,%xmm4
2142 rorl $9,%r14d
2143 xorl %edx,%r13d
2144 xorl %r9d,%r12d
2145 rorl $5,%r13d
2146 psrld $11,%xmm6
2147 xorl %r11d,%r14d
2148 pxor %xmm5,%xmm4
2149 andl %edx,%r12d
2150 xorl %edx,%r13d
2151 pslld $11,%xmm5
2152 addl 36(%rsp),%r10d
2153 movl %r11d,%edi
2154 pxor %xmm6,%xmm4
2155 xorl %r9d,%r12d
2156 rorl $11,%r14d
2157 movdqa %xmm7,%xmm6
2158 xorl %eax,%edi
2159 addl %r12d,%r10d
2160 pxor %xmm5,%xmm4
2161 rorl $6,%r13d
2162 andl %edi,%r15d
2163 xorl %r11d,%r14d
2164 psrld $10,%xmm7
2165 addl %r13d,%r10d
2166 xorl %eax,%r15d
2167 paddd %xmm4,%xmm2
2168 rorl $2,%r14d
2169 addl %r10d,%ecx
2170 psrlq $17,%xmm6
2171 addl %r15d,%r10d
2172 movl %ecx,%r13d
2173 addl %r10d,%r14d
2174 pxor %xmm6,%xmm7
2175 rorl $14,%r13d
2176 movl %r14d,%r10d
2177 movl %edx,%r12d
2178 rorl $9,%r14d
2179 psrlq $2,%xmm6
2180 xorl %ecx,%r13d
2181 xorl %r8d,%r12d
2182 pxor %xmm6,%xmm7
2183 rorl $5,%r13d
2184 xorl %r10d,%r14d
2185 andl %ecx,%r12d
2186 pshufd $128,%xmm7,%xmm7
2187 xorl %ecx,%r13d
2188 addl 40(%rsp),%r9d
2189 movl %r10d,%r15d
2190 psrldq $8,%xmm7
2191 xorl %r8d,%r12d
2192 rorl $11,%r14d
2193 xorl %r11d,%r15d
2194 addl %r12d,%r9d
2195 rorl $6,%r13d
2196 paddd %xmm7,%xmm2
2197 andl %r15d,%edi
2198 xorl %r10d,%r14d
2199 addl %r13d,%r9d
2200 pshufd $80,%xmm2,%xmm7
2201 xorl %r11d,%edi
2202 rorl $2,%r14d
2203 addl %r9d,%ebx
2204 movdqa %xmm7,%xmm6
2205 addl %edi,%r9d
2206 movl %ebx,%r13d
2207 psrld $10,%xmm7
2208 addl %r9d,%r14d
2209 rorl $14,%r13d
2210 psrlq $17,%xmm6
2211 movl %r14d,%r9d
2212 movl %ecx,%r12d
2213 pxor %xmm6,%xmm7
2214 rorl $9,%r14d
2215 xorl %ebx,%r13d
2216 xorl %edx,%r12d
2217 rorl $5,%r13d
2218 xorl %r9d,%r14d
2219 psrlq $2,%xmm6
2220 andl %ebx,%r12d
2221 xorl %ebx,%r13d
2222 addl 44(%rsp),%r8d
2223 pxor %xmm6,%xmm7
2224 movl %r9d,%edi
2225 xorl %edx,%r12d
2226 rorl $11,%r14d
2227 pshufd $8,%xmm7,%xmm7
2228 xorl %r10d,%edi
2229 addl %r12d,%r8d
2230 movdqa 64(%rbp),%xmm6
2231 rorl $6,%r13d
2232 andl %edi,%r15d
2233 pslldq $8,%xmm7
2234 xorl %r9d,%r14d
2235 addl %r13d,%r8d
2236 xorl %r10d,%r15d
2237 paddd %xmm7,%xmm2
2238 rorl $2,%r14d
2239 addl %r8d,%eax
2240 addl %r15d,%r8d
2241 paddd %xmm2,%xmm6
2242 movl %eax,%r13d
2243 addl %r8d,%r14d
2244 movdqa %xmm6,32(%rsp)
2245 rorl $14,%r13d
2246 movdqa %xmm0,%xmm4
2247 movl %r14d,%r8d
2248 movl %ebx,%r12d
2249 movdqa %xmm2,%xmm7
2250 rorl $9,%r14d
2251 xorl %eax,%r13d
2252 xorl %ecx,%r12d
2253 rorl $5,%r13d
2254 xorl %r8d,%r14d
2255.byte 102,15,58,15,227,4
2256 andl %eax,%r12d
2257 xorl %eax,%r13d
2258.byte 102,15,58,15,249,4
2259 addl 48(%rsp),%edx
2260 movl %r8d,%r15d
2261 xorl %ecx,%r12d
2262 rorl $11,%r14d
2263 movdqa %xmm4,%xmm5
2264 xorl %r9d,%r15d
2265 addl %r12d,%edx
2266 movdqa %xmm4,%xmm6
2267 rorl $6,%r13d
2268 andl %r15d,%edi
2269 psrld $3,%xmm4
2270 xorl %r8d,%r14d
2271 addl %r13d,%edx
2272 xorl %r9d,%edi
2273 paddd %xmm7,%xmm3
2274 rorl $2,%r14d
2275 addl %edx,%r11d
2276 psrld $7,%xmm6
2277 addl %edi,%edx
2278 movl %r11d,%r13d
2279 pshufd $250,%xmm2,%xmm7
2280 addl %edx,%r14d
2281 rorl $14,%r13d
2282 pslld $14,%xmm5
2283 movl %r14d,%edx
2284 movl %eax,%r12d
2285 pxor %xmm6,%xmm4
2286 rorl $9,%r14d
2287 xorl %r11d,%r13d
2288 xorl %ebx,%r12d
2289 rorl $5,%r13d
2290 psrld $11,%xmm6
2291 xorl %edx,%r14d
2292 pxor %xmm5,%xmm4
2293 andl %r11d,%r12d
2294 xorl %r11d,%r13d
2295 pslld $11,%xmm5
2296 addl 52(%rsp),%ecx
2297 movl %edx,%edi
2298 pxor %xmm6,%xmm4
2299 xorl %ebx,%r12d
2300 rorl $11,%r14d
2301 movdqa %xmm7,%xmm6
2302 xorl %r8d,%edi
2303 addl %r12d,%ecx
2304 pxor %xmm5,%xmm4
2305 rorl $6,%r13d
2306 andl %edi,%r15d
2307 xorl %edx,%r14d
2308 psrld $10,%xmm7
2309 addl %r13d,%ecx
2310 xorl %r8d,%r15d
2311 paddd %xmm4,%xmm3
2312 rorl $2,%r14d
2313 addl %ecx,%r10d
2314 psrlq $17,%xmm6
2315 addl %r15d,%ecx
2316 movl %r10d,%r13d
2317 addl %ecx,%r14d
2318 pxor %xmm6,%xmm7
2319 rorl $14,%r13d
2320 movl %r14d,%ecx
2321 movl %r11d,%r12d
2322 rorl $9,%r14d
2323 psrlq $2,%xmm6
2324 xorl %r10d,%r13d
2325 xorl %eax,%r12d
2326 pxor %xmm6,%xmm7
2327 rorl $5,%r13d
2328 xorl %ecx,%r14d
2329 andl %r10d,%r12d
2330 pshufd $128,%xmm7,%xmm7
2331 xorl %r10d,%r13d
2332 addl 56(%rsp),%ebx
2333 movl %ecx,%r15d
2334 psrldq $8,%xmm7
2335 xorl %eax,%r12d
2336 rorl $11,%r14d
2337 xorl %edx,%r15d
2338 addl %r12d,%ebx
2339 rorl $6,%r13d
2340 paddd %xmm7,%xmm3
2341 andl %r15d,%edi
2342 xorl %ecx,%r14d
2343 addl %r13d,%ebx
2344 pshufd $80,%xmm3,%xmm7
2345 xorl %edx,%edi
2346 rorl $2,%r14d
2347 addl %ebx,%r9d
2348 movdqa %xmm7,%xmm6
2349 addl %edi,%ebx
2350 movl %r9d,%r13d
2351 psrld $10,%xmm7
2352 addl %ebx,%r14d
2353 rorl $14,%r13d
2354 psrlq $17,%xmm6
2355 movl %r14d,%ebx
2356 movl %r10d,%r12d
2357 pxor %xmm6,%xmm7
2358 rorl $9,%r14d
2359 xorl %r9d,%r13d
2360 xorl %r11d,%r12d
2361 rorl $5,%r13d
2362 xorl %ebx,%r14d
2363 psrlq $2,%xmm6
2364 andl %r9d,%r12d
2365 xorl %r9d,%r13d
2366 addl 60(%rsp),%eax
2367 pxor %xmm6,%xmm7
2368 movl %ebx,%edi
2369 xorl %r11d,%r12d
2370 rorl $11,%r14d
2371 pshufd $8,%xmm7,%xmm7
2372 xorl %ecx,%edi
2373 addl %r12d,%eax
2374 movdqa 96(%rbp),%xmm6
2375 rorl $6,%r13d
2376 andl %edi,%r15d
2377 pslldq $8,%xmm7
2378 xorl %ebx,%r14d
2379 addl %r13d,%eax
2380 xorl %ecx,%r15d
2381 paddd %xmm7,%xmm3
2382 rorl $2,%r14d
2383 addl %eax,%r8d
2384 addl %r15d,%eax
2385 paddd %xmm3,%xmm6
2386 movl %r8d,%r13d
2387 addl %eax,%r14d
2388 movdqa %xmm6,48(%rsp)
2389 cmpb $0,131(%rbp)
2390 jne L$ssse3_00_47
2391 rorl $14,%r13d
2392 movl %r14d,%eax
2393 movl %r9d,%r12d
2394 rorl $9,%r14d
2395 xorl %r8d,%r13d
2396 xorl %r10d,%r12d
2397 rorl $5,%r13d
2398 xorl %eax,%r14d
2399 andl %r8d,%r12d
2400 xorl %r8d,%r13d
2401 addl 0(%rsp),%r11d
2402 movl %eax,%r15d
2403 xorl %r10d,%r12d
2404 rorl $11,%r14d
2405 xorl %ebx,%r15d
2406 addl %r12d,%r11d
2407 rorl $6,%r13d
2408 andl %r15d,%edi
2409 xorl %eax,%r14d
2410 addl %r13d,%r11d
2411 xorl %ebx,%edi
2412 rorl $2,%r14d
2413 addl %r11d,%edx
2414 addl %edi,%r11d
2415 movl %edx,%r13d
2416 addl %r11d,%r14d
2417 rorl $14,%r13d
2418 movl %r14d,%r11d
2419 movl %r8d,%r12d
2420 rorl $9,%r14d
2421 xorl %edx,%r13d
2422 xorl %r9d,%r12d
2423 rorl $5,%r13d
2424 xorl %r11d,%r14d
2425 andl %edx,%r12d
2426 xorl %edx,%r13d
2427 addl 4(%rsp),%r10d
2428 movl %r11d,%edi
2429 xorl %r9d,%r12d
2430 rorl $11,%r14d
2431 xorl %eax,%edi
2432 addl %r12d,%r10d
2433 rorl $6,%r13d
2434 andl %edi,%r15d
2435 xorl %r11d,%r14d
2436 addl %r13d,%r10d
2437 xorl %eax,%r15d
2438 rorl $2,%r14d
2439 addl %r10d,%ecx
2440 addl %r15d,%r10d
2441 movl %ecx,%r13d
2442 addl %r10d,%r14d
2443 rorl $14,%r13d
2444 movl %r14d,%r10d
2445 movl %edx,%r12d
2446 rorl $9,%r14d
2447 xorl %ecx,%r13d
2448 xorl %r8d,%r12d
2449 rorl $5,%r13d
2450 xorl %r10d,%r14d
2451 andl %ecx,%r12d
2452 xorl %ecx,%r13d
2453 addl 8(%rsp),%r9d
2454 movl %r10d,%r15d
2455 xorl %r8d,%r12d
2456 rorl $11,%r14d
2457 xorl %r11d,%r15d
2458 addl %r12d,%r9d
2459 rorl $6,%r13d
2460 andl %r15d,%edi
2461 xorl %r10d,%r14d
2462 addl %r13d,%r9d
2463 xorl %r11d,%edi
2464 rorl $2,%r14d
2465 addl %r9d,%ebx
2466 addl %edi,%r9d
2467 movl %ebx,%r13d
2468 addl %r9d,%r14d
2469 rorl $14,%r13d
2470 movl %r14d,%r9d
2471 movl %ecx,%r12d
2472 rorl $9,%r14d
2473 xorl %ebx,%r13d
2474 xorl %edx,%r12d
2475 rorl $5,%r13d
2476 xorl %r9d,%r14d
2477 andl %ebx,%r12d
2478 xorl %ebx,%r13d
2479 addl 12(%rsp),%r8d
2480 movl %r9d,%edi
2481 xorl %edx,%r12d
2482 rorl $11,%r14d
2483 xorl %r10d,%edi
2484 addl %r12d,%r8d
2485 rorl $6,%r13d
2486 andl %edi,%r15d
2487 xorl %r9d,%r14d
2488 addl %r13d,%r8d
2489 xorl %r10d,%r15d
2490 rorl $2,%r14d
2491 addl %r8d,%eax
2492 addl %r15d,%r8d
2493 movl %eax,%r13d
2494 addl %r8d,%r14d
2495 rorl $14,%r13d
2496 movl %r14d,%r8d
2497 movl %ebx,%r12d
2498 rorl $9,%r14d
2499 xorl %eax,%r13d
2500 xorl %ecx,%r12d
2501 rorl $5,%r13d
2502 xorl %r8d,%r14d
2503 andl %eax,%r12d
2504 xorl %eax,%r13d
2505 addl 16(%rsp),%edx
2506 movl %r8d,%r15d
2507 xorl %ecx,%r12d
2508 rorl $11,%r14d
2509 xorl %r9d,%r15d
2510 addl %r12d,%edx
2511 rorl $6,%r13d
2512 andl %r15d,%edi
2513 xorl %r8d,%r14d
2514 addl %r13d,%edx
2515 xorl %r9d,%edi
2516 rorl $2,%r14d
2517 addl %edx,%r11d
2518 addl %edi,%edx
2519 movl %r11d,%r13d
2520 addl %edx,%r14d
2521 rorl $14,%r13d
2522 movl %r14d,%edx
2523 movl %eax,%r12d
2524 rorl $9,%r14d
2525 xorl %r11d,%r13d
2526 xorl %ebx,%r12d
2527 rorl $5,%r13d
2528 xorl %edx,%r14d
2529 andl %r11d,%r12d
2530 xorl %r11d,%r13d
2531 addl 20(%rsp),%ecx
2532 movl %edx,%edi
2533 xorl %ebx,%r12d
2534 rorl $11,%r14d
2535 xorl %r8d,%edi
2536 addl %r12d,%ecx
2537 rorl $6,%r13d
2538 andl %edi,%r15d
2539 xorl %edx,%r14d
2540 addl %r13d,%ecx
2541 xorl %r8d,%r15d
2542 rorl $2,%r14d
2543 addl %ecx,%r10d
2544 addl %r15d,%ecx
2545 movl %r10d,%r13d
2546 addl %ecx,%r14d
2547 rorl $14,%r13d
2548 movl %r14d,%ecx
2549 movl %r11d,%r12d
2550 rorl $9,%r14d
2551 xorl %r10d,%r13d
2552 xorl %eax,%r12d
2553 rorl $5,%r13d
2554 xorl %ecx,%r14d
2555 andl %r10d,%r12d
2556 xorl %r10d,%r13d
2557 addl 24(%rsp),%ebx
2558 movl %ecx,%r15d
2559 xorl %eax,%r12d
2560 rorl $11,%r14d
2561 xorl %edx,%r15d
2562 addl %r12d,%ebx
2563 rorl $6,%r13d
2564 andl %r15d,%edi
2565 xorl %ecx,%r14d
2566 addl %r13d,%ebx
2567 xorl %edx,%edi
2568 rorl $2,%r14d
2569 addl %ebx,%r9d
2570 addl %edi,%ebx
2571 movl %r9d,%r13d
2572 addl %ebx,%r14d
2573 rorl $14,%r13d
2574 movl %r14d,%ebx
2575 movl %r10d,%r12d
2576 rorl $9,%r14d
2577 xorl %r9d,%r13d
2578 xorl %r11d,%r12d
2579 rorl $5,%r13d
2580 xorl %ebx,%r14d
2581 andl %r9d,%r12d
2582 xorl %r9d,%r13d
2583 addl 28(%rsp),%eax
2584 movl %ebx,%edi
2585 xorl %r11d,%r12d
2586 rorl $11,%r14d
2587 xorl %ecx,%edi
2588 addl %r12d,%eax
2589 rorl $6,%r13d
2590 andl %edi,%r15d
2591 xorl %ebx,%r14d
2592 addl %r13d,%eax
2593 xorl %ecx,%r15d
2594 rorl $2,%r14d
2595 addl %eax,%r8d
2596 addl %r15d,%eax
2597 movl %r8d,%r13d
2598 addl %eax,%r14d
2599 rorl $14,%r13d
2600 movl %r14d,%eax
2601 movl %r9d,%r12d
2602 rorl $9,%r14d
2603 xorl %r8d,%r13d
2604 xorl %r10d,%r12d
2605 rorl $5,%r13d
2606 xorl %eax,%r14d
2607 andl %r8d,%r12d
2608 xorl %r8d,%r13d
2609 addl 32(%rsp),%r11d
2610 movl %eax,%r15d
2611 xorl %r10d,%r12d
2612 rorl $11,%r14d
2613 xorl %ebx,%r15d
2614 addl %r12d,%r11d
2615 rorl $6,%r13d
2616 andl %r15d,%edi
2617 xorl %eax,%r14d
2618 addl %r13d,%r11d
2619 xorl %ebx,%edi
2620 rorl $2,%r14d
2621 addl %r11d,%edx
2622 addl %edi,%r11d
2623 movl %edx,%r13d
2624 addl %r11d,%r14d
2625 rorl $14,%r13d
2626 movl %r14d,%r11d
2627 movl %r8d,%r12d
2628 rorl $9,%r14d
2629 xorl %edx,%r13d
2630 xorl %r9d,%r12d
2631 rorl $5,%r13d
2632 xorl %r11d,%r14d
2633 andl %edx,%r12d
2634 xorl %edx,%r13d
2635 addl 36(%rsp),%r10d
2636 movl %r11d,%edi
2637 xorl %r9d,%r12d
2638 rorl $11,%r14d
2639 xorl %eax,%edi
2640 addl %r12d,%r10d
2641 rorl $6,%r13d
2642 andl %edi,%r15d
2643 xorl %r11d,%r14d
2644 addl %r13d,%r10d
2645 xorl %eax,%r15d
2646 rorl $2,%r14d
2647 addl %r10d,%ecx
2648 addl %r15d,%r10d
2649 movl %ecx,%r13d
2650 addl %r10d,%r14d
2651 rorl $14,%r13d
2652 movl %r14d,%r10d
2653 movl %edx,%r12d
2654 rorl $9,%r14d
2655 xorl %ecx,%r13d
2656 xorl %r8d,%r12d
2657 rorl $5,%r13d
2658 xorl %r10d,%r14d
2659 andl %ecx,%r12d
2660 xorl %ecx,%r13d
2661 addl 40(%rsp),%r9d
2662 movl %r10d,%r15d
2663 xorl %r8d,%r12d
2664 rorl $11,%r14d
2665 xorl %r11d,%r15d
2666 addl %r12d,%r9d
2667 rorl $6,%r13d
2668 andl %r15d,%edi
2669 xorl %r10d,%r14d
2670 addl %r13d,%r9d
2671 xorl %r11d,%edi
2672 rorl $2,%r14d
2673 addl %r9d,%ebx
2674 addl %edi,%r9d
2675 movl %ebx,%r13d
2676 addl %r9d,%r14d
2677 rorl $14,%r13d
2678 movl %r14d,%r9d
2679 movl %ecx,%r12d
2680 rorl $9,%r14d
2681 xorl %ebx,%r13d
2682 xorl %edx,%r12d
2683 rorl $5,%r13d
2684 xorl %r9d,%r14d
2685 andl %ebx,%r12d
2686 xorl %ebx,%r13d
2687 addl 44(%rsp),%r8d
2688 movl %r9d,%edi
2689 xorl %edx,%r12d
2690 rorl $11,%r14d
2691 xorl %r10d,%edi
2692 addl %r12d,%r8d
2693 rorl $6,%r13d
2694 andl %edi,%r15d
2695 xorl %r9d,%r14d
2696 addl %r13d,%r8d
2697 xorl %r10d,%r15d
2698 rorl $2,%r14d
2699 addl %r8d,%eax
2700 addl %r15d,%r8d
2701 movl %eax,%r13d
2702 addl %r8d,%r14d
2703 rorl $14,%r13d
2704 movl %r14d,%r8d
2705 movl %ebx,%r12d
2706 rorl $9,%r14d
2707 xorl %eax,%r13d
2708 xorl %ecx,%r12d
2709 rorl $5,%r13d
2710 xorl %r8d,%r14d
2711 andl %eax,%r12d
2712 xorl %eax,%r13d
2713 addl 48(%rsp),%edx
2714 movl %r8d,%r15d
2715 xorl %ecx,%r12d
2716 rorl $11,%r14d
2717 xorl %r9d,%r15d
2718 addl %r12d,%edx
2719 rorl $6,%r13d
2720 andl %r15d,%edi
2721 xorl %r8d,%r14d
2722 addl %r13d,%edx
2723 xorl %r9d,%edi
2724 rorl $2,%r14d
2725 addl %edx,%r11d
2726 addl %edi,%edx
2727 movl %r11d,%r13d
2728 addl %edx,%r14d
2729 rorl $14,%r13d
2730 movl %r14d,%edx
2731 movl %eax,%r12d
2732 rorl $9,%r14d
2733 xorl %r11d,%r13d
2734 xorl %ebx,%r12d
2735 rorl $5,%r13d
2736 xorl %edx,%r14d
2737 andl %r11d,%r12d
2738 xorl %r11d,%r13d
2739 addl 52(%rsp),%ecx
2740 movl %edx,%edi
2741 xorl %ebx,%r12d
2742 rorl $11,%r14d
2743 xorl %r8d,%edi
2744 addl %r12d,%ecx
2745 rorl $6,%r13d
2746 andl %edi,%r15d
2747 xorl %edx,%r14d
2748 addl %r13d,%ecx
2749 xorl %r8d,%r15d
2750 rorl $2,%r14d
2751 addl %ecx,%r10d
2752 addl %r15d,%ecx
2753 movl %r10d,%r13d
2754 addl %ecx,%r14d
2755 rorl $14,%r13d
2756 movl %r14d,%ecx
2757 movl %r11d,%r12d
2758 rorl $9,%r14d
2759 xorl %r10d,%r13d
2760 xorl %eax,%r12d
2761 rorl $5,%r13d
2762 xorl %ecx,%r14d
2763 andl %r10d,%r12d
2764 xorl %r10d,%r13d
2765 addl 56(%rsp),%ebx
2766 movl %ecx,%r15d
2767 xorl %eax,%r12d
2768 rorl $11,%r14d
2769 xorl %edx,%r15d
2770 addl %r12d,%ebx
2771 rorl $6,%r13d
2772 andl %r15d,%edi
2773 xorl %ecx,%r14d
2774 addl %r13d,%ebx
2775 xorl %edx,%edi
2776 rorl $2,%r14d
2777 addl %ebx,%r9d
2778 addl %edi,%ebx
2779 movl %r9d,%r13d
2780 addl %ebx,%r14d
2781 rorl $14,%r13d
2782 movl %r14d,%ebx
2783 movl %r10d,%r12d
2784 rorl $9,%r14d
2785 xorl %r9d,%r13d
2786 xorl %r11d,%r12d
2787 rorl $5,%r13d
2788 xorl %ebx,%r14d
2789 andl %r9d,%r12d
2790 xorl %r9d,%r13d
2791 addl 60(%rsp),%eax
2792 movl %ebx,%edi
2793 xorl %r11d,%r12d
2794 rorl $11,%r14d
2795 xorl %ecx,%edi
2796 addl %r12d,%eax
2797 rorl $6,%r13d
2798 andl %edi,%r15d
2799 xorl %ebx,%r14d
2800 addl %r13d,%eax
2801 xorl %ecx,%r15d
2802 rorl $2,%r14d
2803 addl %eax,%r8d
2804 addl %r15d,%eax
2805 movl %r8d,%r13d
2806 addl %eax,%r14d
2807 movq 64+0(%rsp),%rdi
2808 movl %r14d,%eax
2809
2810 addl 0(%rdi),%eax
2811 leaq 64(%rsi),%rsi
2812 addl 4(%rdi),%ebx
2813 addl 8(%rdi),%ecx
2814 addl 12(%rdi),%edx
2815 addl 16(%rdi),%r8d
2816 addl 20(%rdi),%r9d
2817 addl 24(%rdi),%r10d
2818 addl 28(%rdi),%r11d
2819
2820 cmpq 64+16(%rsp),%rsi
2821
2822 movl %eax,0(%rdi)
2823 movl %ebx,4(%rdi)
2824 movl %ecx,8(%rdi)
2825 movl %edx,12(%rdi)
2826 movl %r8d,16(%rdi)
2827 movl %r9d,20(%rdi)
2828 movl %r10d,24(%rdi)
2829 movl %r11d,28(%rdi)
2830 jb L$loop_ssse3
2831
2832 movq 64+24(%rsp),%rsi
2833 movq (%rsi),%r15
2834 movq 8(%rsi),%r14
2835 movq 16(%rsi),%r13
2836 movq 24(%rsi),%r12
2837 movq 32(%rsi),%rbp
2838 movq 40(%rsi),%rbx
2839 leaq 48(%rsi),%rsp
2840L$epilogue_ssse3:
2841 .byte 0xf3,0xc3
2842
2843#endif