1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__has_feature)
5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
6#define OPENSSL_NO_ASM
7#endif
8#endif
9
10#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
11#if defined(BORINGSSL_PREFIX)
12#include <boringssl_prefix_symbols_asm.h>
13#endif
14.text
15.extern OPENSSL_ia32cap_P
16.hidden OPENSSL_ia32cap_P
17
18.globl sha1_block_data_order
19.hidden sha1_block_data_order
20.type sha1_block_data_order,@function
21.align 16
22sha1_block_data_order:
23.cfi_startproc
24 leaq OPENSSL_ia32cap_P(%rip),%r10
25 movl 0(%r10),%r9d
26 movl 4(%r10),%r8d
27 movl 8(%r10),%r10d
28 testl $512,%r8d
29 jz .Lialu
30 andl $268435456,%r8d
31 andl $1073741824,%r9d
32 orl %r9d,%r8d
33 cmpl $1342177280,%r8d
34 je _avx_shortcut
35 jmp _ssse3_shortcut
36
37.align 16
38.Lialu:
39 movq %rsp,%rax
40.cfi_def_cfa_register %rax
41 pushq %rbx
42.cfi_offset %rbx,-16
43 pushq %rbp
44.cfi_offset %rbp,-24
45 pushq %r12
46.cfi_offset %r12,-32
47 pushq %r13
48.cfi_offset %r13,-40
49 pushq %r14
50.cfi_offset %r14,-48
51 movq %rdi,%r8
52 subq $72,%rsp
53 movq %rsi,%r9
54 andq $-64,%rsp
55 movq %rdx,%r10
56 movq %rax,64(%rsp)
57.cfi_escape 0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08
58.Lprologue:
59
60 movl 0(%r8),%esi
61 movl 4(%r8),%edi
62 movl 8(%r8),%r11d
63 movl 12(%r8),%r12d
64 movl 16(%r8),%r13d
65 jmp .Lloop
66
67.align 16
68.Lloop:
69 movl 0(%r9),%edx
70 bswapl %edx
71 movl 4(%r9),%ebp
72 movl %r12d,%eax
73 movl %edx,0(%rsp)
74 movl %esi,%ecx
75 bswapl %ebp
76 xorl %r11d,%eax
77 roll $5,%ecx
78 andl %edi,%eax
79 leal 1518500249(%rdx,%r13,1),%r13d
80 addl %ecx,%r13d
81 xorl %r12d,%eax
82 roll $30,%edi
83 addl %eax,%r13d
84 movl 8(%r9),%r14d
85 movl %r11d,%eax
86 movl %ebp,4(%rsp)
87 movl %r13d,%ecx
88 bswapl %r14d
89 xorl %edi,%eax
90 roll $5,%ecx
91 andl %esi,%eax
92 leal 1518500249(%rbp,%r12,1),%r12d
93 addl %ecx,%r12d
94 xorl %r11d,%eax
95 roll $30,%esi
96 addl %eax,%r12d
97 movl 12(%r9),%edx
98 movl %edi,%eax
99 movl %r14d,8(%rsp)
100 movl %r12d,%ecx
101 bswapl %edx
102 xorl %esi,%eax
103 roll $5,%ecx
104 andl %r13d,%eax
105 leal 1518500249(%r14,%r11,1),%r11d
106 addl %ecx,%r11d
107 xorl %edi,%eax
108 roll $30,%r13d
109 addl %eax,%r11d
110 movl 16(%r9),%ebp
111 movl %esi,%eax
112 movl %edx,12(%rsp)
113 movl %r11d,%ecx
114 bswapl %ebp
115 xorl %r13d,%eax
116 roll $5,%ecx
117 andl %r12d,%eax
118 leal 1518500249(%rdx,%rdi,1),%edi
119 addl %ecx,%edi
120 xorl %esi,%eax
121 roll $30,%r12d
122 addl %eax,%edi
123 movl 20(%r9),%r14d
124 movl %r13d,%eax
125 movl %ebp,16(%rsp)
126 movl %edi,%ecx
127 bswapl %r14d
128 xorl %r12d,%eax
129 roll $5,%ecx
130 andl %r11d,%eax
131 leal 1518500249(%rbp,%rsi,1),%esi
132 addl %ecx,%esi
133 xorl %r13d,%eax
134 roll $30,%r11d
135 addl %eax,%esi
136 movl 24(%r9),%edx
137 movl %r12d,%eax
138 movl %r14d,20(%rsp)
139 movl %esi,%ecx
140 bswapl %edx
141 xorl %r11d,%eax
142 roll $5,%ecx
143 andl %edi,%eax
144 leal 1518500249(%r14,%r13,1),%r13d
145 addl %ecx,%r13d
146 xorl %r12d,%eax
147 roll $30,%edi
148 addl %eax,%r13d
149 movl 28(%r9),%ebp
150 movl %r11d,%eax
151 movl %edx,24(%rsp)
152 movl %r13d,%ecx
153 bswapl %ebp
154 xorl %edi,%eax
155 roll $5,%ecx
156 andl %esi,%eax
157 leal 1518500249(%rdx,%r12,1),%r12d
158 addl %ecx,%r12d
159 xorl %r11d,%eax
160 roll $30,%esi
161 addl %eax,%r12d
162 movl 32(%r9),%r14d
163 movl %edi,%eax
164 movl %ebp,28(%rsp)
165 movl %r12d,%ecx
166 bswapl %r14d
167 xorl %esi,%eax
168 roll $5,%ecx
169 andl %r13d,%eax
170 leal 1518500249(%rbp,%r11,1),%r11d
171 addl %ecx,%r11d
172 xorl %edi,%eax
173 roll $30,%r13d
174 addl %eax,%r11d
175 movl 36(%r9),%edx
176 movl %esi,%eax
177 movl %r14d,32(%rsp)
178 movl %r11d,%ecx
179 bswapl %edx
180 xorl %r13d,%eax
181 roll $5,%ecx
182 andl %r12d,%eax
183 leal 1518500249(%r14,%rdi,1),%edi
184 addl %ecx,%edi
185 xorl %esi,%eax
186 roll $30,%r12d
187 addl %eax,%edi
188 movl 40(%r9),%ebp
189 movl %r13d,%eax
190 movl %edx,36(%rsp)
191 movl %edi,%ecx
192 bswapl %ebp
193 xorl %r12d,%eax
194 roll $5,%ecx
195 andl %r11d,%eax
196 leal 1518500249(%rdx,%rsi,1),%esi
197 addl %ecx,%esi
198 xorl %r13d,%eax
199 roll $30,%r11d
200 addl %eax,%esi
201 movl 44(%r9),%r14d
202 movl %r12d,%eax
203 movl %ebp,40(%rsp)
204 movl %esi,%ecx
205 bswapl %r14d
206 xorl %r11d,%eax
207 roll $5,%ecx
208 andl %edi,%eax
209 leal 1518500249(%rbp,%r13,1),%r13d
210 addl %ecx,%r13d
211 xorl %r12d,%eax
212 roll $30,%edi
213 addl %eax,%r13d
214 movl 48(%r9),%edx
215 movl %r11d,%eax
216 movl %r14d,44(%rsp)
217 movl %r13d,%ecx
218 bswapl %edx
219 xorl %edi,%eax
220 roll $5,%ecx
221 andl %esi,%eax
222 leal 1518500249(%r14,%r12,1),%r12d
223 addl %ecx,%r12d
224 xorl %r11d,%eax
225 roll $30,%esi
226 addl %eax,%r12d
227 movl 52(%r9),%ebp
228 movl %edi,%eax
229 movl %edx,48(%rsp)
230 movl %r12d,%ecx
231 bswapl %ebp
232 xorl %esi,%eax
233 roll $5,%ecx
234 andl %r13d,%eax
235 leal 1518500249(%rdx,%r11,1),%r11d
236 addl %ecx,%r11d
237 xorl %edi,%eax
238 roll $30,%r13d
239 addl %eax,%r11d
240 movl 56(%r9),%r14d
241 movl %esi,%eax
242 movl %ebp,52(%rsp)
243 movl %r11d,%ecx
244 bswapl %r14d
245 xorl %r13d,%eax
246 roll $5,%ecx
247 andl %r12d,%eax
248 leal 1518500249(%rbp,%rdi,1),%edi
249 addl %ecx,%edi
250 xorl %esi,%eax
251 roll $30,%r12d
252 addl %eax,%edi
253 movl 60(%r9),%edx
254 movl %r13d,%eax
255 movl %r14d,56(%rsp)
256 movl %edi,%ecx
257 bswapl %edx
258 xorl %r12d,%eax
259 roll $5,%ecx
260 andl %r11d,%eax
261 leal 1518500249(%r14,%rsi,1),%esi
262 addl %ecx,%esi
263 xorl %r13d,%eax
264 roll $30,%r11d
265 addl %eax,%esi
266 xorl 0(%rsp),%ebp
267 movl %r12d,%eax
268 movl %edx,60(%rsp)
269 movl %esi,%ecx
270 xorl 8(%rsp),%ebp
271 xorl %r11d,%eax
272 roll $5,%ecx
273 xorl 32(%rsp),%ebp
274 andl %edi,%eax
275 leal 1518500249(%rdx,%r13,1),%r13d
276 roll $30,%edi
277 xorl %r12d,%eax
278 addl %ecx,%r13d
279 roll $1,%ebp
280 addl %eax,%r13d
281 xorl 4(%rsp),%r14d
282 movl %r11d,%eax
283 movl %ebp,0(%rsp)
284 movl %r13d,%ecx
285 xorl 12(%rsp),%r14d
286 xorl %edi,%eax
287 roll $5,%ecx
288 xorl 36(%rsp),%r14d
289 andl %esi,%eax
290 leal 1518500249(%rbp,%r12,1),%r12d
291 roll $30,%esi
292 xorl %r11d,%eax
293 addl %ecx,%r12d
294 roll $1,%r14d
295 addl %eax,%r12d
296 xorl 8(%rsp),%edx
297 movl %edi,%eax
298 movl %r14d,4(%rsp)
299 movl %r12d,%ecx
300 xorl 16(%rsp),%edx
301 xorl %esi,%eax
302 roll $5,%ecx
303 xorl 40(%rsp),%edx
304 andl %r13d,%eax
305 leal 1518500249(%r14,%r11,1),%r11d
306 roll $30,%r13d
307 xorl %edi,%eax
308 addl %ecx,%r11d
309 roll $1,%edx
310 addl %eax,%r11d
311 xorl 12(%rsp),%ebp
312 movl %esi,%eax
313 movl %edx,8(%rsp)
314 movl %r11d,%ecx
315 xorl 20(%rsp),%ebp
316 xorl %r13d,%eax
317 roll $5,%ecx
318 xorl 44(%rsp),%ebp
319 andl %r12d,%eax
320 leal 1518500249(%rdx,%rdi,1),%edi
321 roll $30,%r12d
322 xorl %esi,%eax
323 addl %ecx,%edi
324 roll $1,%ebp
325 addl %eax,%edi
326 xorl 16(%rsp),%r14d
327 movl %r13d,%eax
328 movl %ebp,12(%rsp)
329 movl %edi,%ecx
330 xorl 24(%rsp),%r14d
331 xorl %r12d,%eax
332 roll $5,%ecx
333 xorl 48(%rsp),%r14d
334 andl %r11d,%eax
335 leal 1518500249(%rbp,%rsi,1),%esi
336 roll $30,%r11d
337 xorl %r13d,%eax
338 addl %ecx,%esi
339 roll $1,%r14d
340 addl %eax,%esi
341 xorl 20(%rsp),%edx
342 movl %edi,%eax
343 movl %r14d,16(%rsp)
344 movl %esi,%ecx
345 xorl 28(%rsp),%edx
346 xorl %r12d,%eax
347 roll $5,%ecx
348 xorl 52(%rsp),%edx
349 leal 1859775393(%r14,%r13,1),%r13d
350 xorl %r11d,%eax
351 addl %ecx,%r13d
352 roll $30,%edi
353 addl %eax,%r13d
354 roll $1,%edx
355 xorl 24(%rsp),%ebp
356 movl %esi,%eax
357 movl %edx,20(%rsp)
358 movl %r13d,%ecx
359 xorl 32(%rsp),%ebp
360 xorl %r11d,%eax
361 roll $5,%ecx
362 xorl 56(%rsp),%ebp
363 leal 1859775393(%rdx,%r12,1),%r12d
364 xorl %edi,%eax
365 addl %ecx,%r12d
366 roll $30,%esi
367 addl %eax,%r12d
368 roll $1,%ebp
369 xorl 28(%rsp),%r14d
370 movl %r13d,%eax
371 movl %ebp,24(%rsp)
372 movl %r12d,%ecx
373 xorl 36(%rsp),%r14d
374 xorl %edi,%eax
375 roll $5,%ecx
376 xorl 60(%rsp),%r14d
377 leal 1859775393(%rbp,%r11,1),%r11d
378 xorl %esi,%eax
379 addl %ecx,%r11d
380 roll $30,%r13d
381 addl %eax,%r11d
382 roll $1,%r14d
383 xorl 32(%rsp),%edx
384 movl %r12d,%eax
385 movl %r14d,28(%rsp)
386 movl %r11d,%ecx
387 xorl 40(%rsp),%edx
388 xorl %esi,%eax
389 roll $5,%ecx
390 xorl 0(%rsp),%edx
391 leal 1859775393(%r14,%rdi,1),%edi
392 xorl %r13d,%eax
393 addl %ecx,%edi
394 roll $30,%r12d
395 addl %eax,%edi
396 roll $1,%edx
397 xorl 36(%rsp),%ebp
398 movl %r11d,%eax
399 movl %edx,32(%rsp)
400 movl %edi,%ecx
401 xorl 44(%rsp),%ebp
402 xorl %r13d,%eax
403 roll $5,%ecx
404 xorl 4(%rsp),%ebp
405 leal 1859775393(%rdx,%rsi,1),%esi
406 xorl %r12d,%eax
407 addl %ecx,%esi
408 roll $30,%r11d
409 addl %eax,%esi
410 roll $1,%ebp
411 xorl 40(%rsp),%r14d
412 movl %edi,%eax
413 movl %ebp,36(%rsp)
414 movl %esi,%ecx
415 xorl 48(%rsp),%r14d
416 xorl %r12d,%eax
417 roll $5,%ecx
418 xorl 8(%rsp),%r14d
419 leal 1859775393(%rbp,%r13,1),%r13d
420 xorl %r11d,%eax
421 addl %ecx,%r13d
422 roll $30,%edi
423 addl %eax,%r13d
424 roll $1,%r14d
425 xorl 44(%rsp),%edx
426 movl %esi,%eax
427 movl %r14d,40(%rsp)
428 movl %r13d,%ecx
429 xorl 52(%rsp),%edx
430 xorl %r11d,%eax
431 roll $5,%ecx
432 xorl 12(%rsp),%edx
433 leal 1859775393(%r14,%r12,1),%r12d
434 xorl %edi,%eax
435 addl %ecx,%r12d
436 roll $30,%esi
437 addl %eax,%r12d
438 roll $1,%edx
439 xorl 48(%rsp),%ebp
440 movl %r13d,%eax
441 movl %edx,44(%rsp)
442 movl %r12d,%ecx
443 xorl 56(%rsp),%ebp
444 xorl %edi,%eax
445 roll $5,%ecx
446 xorl 16(%rsp),%ebp
447 leal 1859775393(%rdx,%r11,1),%r11d
448 xorl %esi,%eax
449 addl %ecx,%r11d
450 roll $30,%r13d
451 addl %eax,%r11d
452 roll $1,%ebp
453 xorl 52(%rsp),%r14d
454 movl %r12d,%eax
455 movl %ebp,48(%rsp)
456 movl %r11d,%ecx
457 xorl 60(%rsp),%r14d
458 xorl %esi,%eax
459 roll $5,%ecx
460 xorl 20(%rsp),%r14d
461 leal 1859775393(%rbp,%rdi,1),%edi
462 xorl %r13d,%eax
463 addl %ecx,%edi
464 roll $30,%r12d
465 addl %eax,%edi
466 roll $1,%r14d
467 xorl 56(%rsp),%edx
468 movl %r11d,%eax
469 movl %r14d,52(%rsp)
470 movl %edi,%ecx
471 xorl 0(%rsp),%edx
472 xorl %r13d,%eax
473 roll $5,%ecx
474 xorl 24(%rsp),%edx
475 leal 1859775393(%r14,%rsi,1),%esi
476 xorl %r12d,%eax
477 addl %ecx,%esi
478 roll $30,%r11d
479 addl %eax,%esi
480 roll $1,%edx
481 xorl 60(%rsp),%ebp
482 movl %edi,%eax
483 movl %edx,56(%rsp)
484 movl %esi,%ecx
485 xorl 4(%rsp),%ebp
486 xorl %r12d,%eax
487 roll $5,%ecx
488 xorl 28(%rsp),%ebp
489 leal 1859775393(%rdx,%r13,1),%r13d
490 xorl %r11d,%eax
491 addl %ecx,%r13d
492 roll $30,%edi
493 addl %eax,%r13d
494 roll $1,%ebp
495 xorl 0(%rsp),%r14d
496 movl %esi,%eax
497 movl %ebp,60(%rsp)
498 movl %r13d,%ecx
499 xorl 8(%rsp),%r14d
500 xorl %r11d,%eax
501 roll $5,%ecx
502 xorl 32(%rsp),%r14d
503 leal 1859775393(%rbp,%r12,1),%r12d
504 xorl %edi,%eax
505 addl %ecx,%r12d
506 roll $30,%esi
507 addl %eax,%r12d
508 roll $1,%r14d
509 xorl 4(%rsp),%edx
510 movl %r13d,%eax
511 movl %r14d,0(%rsp)
512 movl %r12d,%ecx
513 xorl 12(%rsp),%edx
514 xorl %edi,%eax
515 roll $5,%ecx
516 xorl 36(%rsp),%edx
517 leal 1859775393(%r14,%r11,1),%r11d
518 xorl %esi,%eax
519 addl %ecx,%r11d
520 roll $30,%r13d
521 addl %eax,%r11d
522 roll $1,%edx
523 xorl 8(%rsp),%ebp
524 movl %r12d,%eax
525 movl %edx,4(%rsp)
526 movl %r11d,%ecx
527 xorl 16(%rsp),%ebp
528 xorl %esi,%eax
529 roll $5,%ecx
530 xorl 40(%rsp),%ebp
531 leal 1859775393(%rdx,%rdi,1),%edi
532 xorl %r13d,%eax
533 addl %ecx,%edi
534 roll $30,%r12d
535 addl %eax,%edi
536 roll $1,%ebp
537 xorl 12(%rsp),%r14d
538 movl %r11d,%eax
539 movl %ebp,8(%rsp)
540 movl %edi,%ecx
541 xorl 20(%rsp),%r14d
542 xorl %r13d,%eax
543 roll $5,%ecx
544 xorl 44(%rsp),%r14d
545 leal 1859775393(%rbp,%rsi,1),%esi
546 xorl %r12d,%eax
547 addl %ecx,%esi
548 roll $30,%r11d
549 addl %eax,%esi
550 roll $1,%r14d
551 xorl 16(%rsp),%edx
552 movl %edi,%eax
553 movl %r14d,12(%rsp)
554 movl %esi,%ecx
555 xorl 24(%rsp),%edx
556 xorl %r12d,%eax
557 roll $5,%ecx
558 xorl 48(%rsp),%edx
559 leal 1859775393(%r14,%r13,1),%r13d
560 xorl %r11d,%eax
561 addl %ecx,%r13d
562 roll $30,%edi
563 addl %eax,%r13d
564 roll $1,%edx
565 xorl 20(%rsp),%ebp
566 movl %esi,%eax
567 movl %edx,16(%rsp)
568 movl %r13d,%ecx
569 xorl 28(%rsp),%ebp
570 xorl %r11d,%eax
571 roll $5,%ecx
572 xorl 52(%rsp),%ebp
573 leal 1859775393(%rdx,%r12,1),%r12d
574 xorl %edi,%eax
575 addl %ecx,%r12d
576 roll $30,%esi
577 addl %eax,%r12d
578 roll $1,%ebp
579 xorl 24(%rsp),%r14d
580 movl %r13d,%eax
581 movl %ebp,20(%rsp)
582 movl %r12d,%ecx
583 xorl 32(%rsp),%r14d
584 xorl %edi,%eax
585 roll $5,%ecx
586 xorl 56(%rsp),%r14d
587 leal 1859775393(%rbp,%r11,1),%r11d
588 xorl %esi,%eax
589 addl %ecx,%r11d
590 roll $30,%r13d
591 addl %eax,%r11d
592 roll $1,%r14d
593 xorl 28(%rsp),%edx
594 movl %r12d,%eax
595 movl %r14d,24(%rsp)
596 movl %r11d,%ecx
597 xorl 36(%rsp),%edx
598 xorl %esi,%eax
599 roll $5,%ecx
600 xorl 60(%rsp),%edx
601 leal 1859775393(%r14,%rdi,1),%edi
602 xorl %r13d,%eax
603 addl %ecx,%edi
604 roll $30,%r12d
605 addl %eax,%edi
606 roll $1,%edx
607 xorl 32(%rsp),%ebp
608 movl %r11d,%eax
609 movl %edx,28(%rsp)
610 movl %edi,%ecx
611 xorl 40(%rsp),%ebp
612 xorl %r13d,%eax
613 roll $5,%ecx
614 xorl 0(%rsp),%ebp
615 leal 1859775393(%rdx,%rsi,1),%esi
616 xorl %r12d,%eax
617 addl %ecx,%esi
618 roll $30,%r11d
619 addl %eax,%esi
620 roll $1,%ebp
621 xorl 36(%rsp),%r14d
622 movl %r12d,%eax
623 movl %ebp,32(%rsp)
624 movl %r12d,%ebx
625 xorl 44(%rsp),%r14d
626 andl %r11d,%eax
627 movl %esi,%ecx
628 xorl 4(%rsp),%r14d
629 leal -1894007588(%rbp,%r13,1),%r13d
630 xorl %r11d,%ebx
631 roll $5,%ecx
632 addl %eax,%r13d
633 roll $1,%r14d
634 andl %edi,%ebx
635 addl %ecx,%r13d
636 roll $30,%edi
637 addl %ebx,%r13d
638 xorl 40(%rsp),%edx
639 movl %r11d,%eax
640 movl %r14d,36(%rsp)
641 movl %r11d,%ebx
642 xorl 48(%rsp),%edx
643 andl %edi,%eax
644 movl %r13d,%ecx
645 xorl 8(%rsp),%edx
646 leal -1894007588(%r14,%r12,1),%r12d
647 xorl %edi,%ebx
648 roll $5,%ecx
649 addl %eax,%r12d
650 roll $1,%edx
651 andl %esi,%ebx
652 addl %ecx,%r12d
653 roll $30,%esi
654 addl %ebx,%r12d
655 xorl 44(%rsp),%ebp
656 movl %edi,%eax
657 movl %edx,40(%rsp)
658 movl %edi,%ebx
659 xorl 52(%rsp),%ebp
660 andl %esi,%eax
661 movl %r12d,%ecx
662 xorl 12(%rsp),%ebp
663 leal -1894007588(%rdx,%r11,1),%r11d
664 xorl %esi,%ebx
665 roll $5,%ecx
666 addl %eax,%r11d
667 roll $1,%ebp
668 andl %r13d,%ebx
669 addl %ecx,%r11d
670 roll $30,%r13d
671 addl %ebx,%r11d
672 xorl 48(%rsp),%r14d
673 movl %esi,%eax
674 movl %ebp,44(%rsp)
675 movl %esi,%ebx
676 xorl 56(%rsp),%r14d
677 andl %r13d,%eax
678 movl %r11d,%ecx
679 xorl 16(%rsp),%r14d
680 leal -1894007588(%rbp,%rdi,1),%edi
681 xorl %r13d,%ebx
682 roll $5,%ecx
683 addl %eax,%edi
684 roll $1,%r14d
685 andl %r12d,%ebx
686 addl %ecx,%edi
687 roll $30,%r12d
688 addl %ebx,%edi
689 xorl 52(%rsp),%edx
690 movl %r13d,%eax
691 movl %r14d,48(%rsp)
692 movl %r13d,%ebx
693 xorl 60(%rsp),%edx
694 andl %r12d,%eax
695 movl %edi,%ecx
696 xorl 20(%rsp),%edx
697 leal -1894007588(%r14,%rsi,1),%esi
698 xorl %r12d,%ebx
699 roll $5,%ecx
700 addl %eax,%esi
701 roll $1,%edx
702 andl %r11d,%ebx
703 addl %ecx,%esi
704 roll $30,%r11d
705 addl %ebx,%esi
706 xorl 56(%rsp),%ebp
707 movl %r12d,%eax
708 movl %edx,52(%rsp)
709 movl %r12d,%ebx
710 xorl 0(%rsp),%ebp
711 andl %r11d,%eax
712 movl %esi,%ecx
713 xorl 24(%rsp),%ebp
714 leal -1894007588(%rdx,%r13,1),%r13d
715 xorl %r11d,%ebx
716 roll $5,%ecx
717 addl %eax,%r13d
718 roll $1,%ebp
719 andl %edi,%ebx
720 addl %ecx,%r13d
721 roll $30,%edi
722 addl %ebx,%r13d
723 xorl 60(%rsp),%r14d
724 movl %r11d,%eax
725 movl %ebp,56(%rsp)
726 movl %r11d,%ebx
727 xorl 4(%rsp),%r14d
728 andl %edi,%eax
729 movl %r13d,%ecx
730 xorl 28(%rsp),%r14d
731 leal -1894007588(%rbp,%r12,1),%r12d
732 xorl %edi,%ebx
733 roll $5,%ecx
734 addl %eax,%r12d
735 roll $1,%r14d
736 andl %esi,%ebx
737 addl %ecx,%r12d
738 roll $30,%esi
739 addl %ebx,%r12d
740 xorl 0(%rsp),%edx
741 movl %edi,%eax
742 movl %r14d,60(%rsp)
743 movl %edi,%ebx
744 xorl 8(%rsp),%edx
745 andl %esi,%eax
746 movl %r12d,%ecx
747 xorl 32(%rsp),%edx
748 leal -1894007588(%r14,%r11,1),%r11d
749 xorl %esi,%ebx
750 roll $5,%ecx
751 addl %eax,%r11d
752 roll $1,%edx
753 andl %r13d,%ebx
754 addl %ecx,%r11d
755 roll $30,%r13d
756 addl %ebx,%r11d
757 xorl 4(%rsp),%ebp
758 movl %esi,%eax
759 movl %edx,0(%rsp)
760 movl %esi,%ebx
761 xorl 12(%rsp),%ebp
762 andl %r13d,%eax
763 movl %r11d,%ecx
764 xorl 36(%rsp),%ebp
765 leal -1894007588(%rdx,%rdi,1),%edi
766 xorl %r13d,%ebx
767 roll $5,%ecx
768 addl %eax,%edi
769 roll $1,%ebp
770 andl %r12d,%ebx
771 addl %ecx,%edi
772 roll $30,%r12d
773 addl %ebx,%edi
774 xorl 8(%rsp),%r14d
775 movl %r13d,%eax
776 movl %ebp,4(%rsp)
777 movl %r13d,%ebx
778 xorl 16(%rsp),%r14d
779 andl %r12d,%eax
780 movl %edi,%ecx
781 xorl 40(%rsp),%r14d
782 leal -1894007588(%rbp,%rsi,1),%esi
783 xorl %r12d,%ebx
784 roll $5,%ecx
785 addl %eax,%esi
786 roll $1,%r14d
787 andl %r11d,%ebx
788 addl %ecx,%esi
789 roll $30,%r11d
790 addl %ebx,%esi
791 xorl 12(%rsp),%edx
792 movl %r12d,%eax
793 movl %r14d,8(%rsp)
794 movl %r12d,%ebx
795 xorl 20(%rsp),%edx
796 andl %r11d,%eax
797 movl %esi,%ecx
798 xorl 44(%rsp),%edx
799 leal -1894007588(%r14,%r13,1),%r13d
800 xorl %r11d,%ebx
801 roll $5,%ecx
802 addl %eax,%r13d
803 roll $1,%edx
804 andl %edi,%ebx
805 addl %ecx,%r13d
806 roll $30,%edi
807 addl %ebx,%r13d
808 xorl 16(%rsp),%ebp
809 movl %r11d,%eax
810 movl %edx,12(%rsp)
811 movl %r11d,%ebx
812 xorl 24(%rsp),%ebp
813 andl %edi,%eax
814 movl %r13d,%ecx
815 xorl 48(%rsp),%ebp
816 leal -1894007588(%rdx,%r12,1),%r12d
817 xorl %edi,%ebx
818 roll $5,%ecx
819 addl %eax,%r12d
820 roll $1,%ebp
821 andl %esi,%ebx
822 addl %ecx,%r12d
823 roll $30,%esi
824 addl %ebx,%r12d
825 xorl 20(%rsp),%r14d
826 movl %edi,%eax
827 movl %ebp,16(%rsp)
828 movl %edi,%ebx
829 xorl 28(%rsp),%r14d
830 andl %esi,%eax
831 movl %r12d,%ecx
832 xorl 52(%rsp),%r14d
833 leal -1894007588(%rbp,%r11,1),%r11d
834 xorl %esi,%ebx
835 roll $5,%ecx
836 addl %eax,%r11d
837 roll $1,%r14d
838 andl %r13d,%ebx
839 addl %ecx,%r11d
840 roll $30,%r13d
841 addl %ebx,%r11d
842 xorl 24(%rsp),%edx
843 movl %esi,%eax
844 movl %r14d,20(%rsp)
845 movl %esi,%ebx
846 xorl 32(%rsp),%edx
847 andl %r13d,%eax
848 movl %r11d,%ecx
849 xorl 56(%rsp),%edx
850 leal -1894007588(%r14,%rdi,1),%edi
851 xorl %r13d,%ebx
852 roll $5,%ecx
853 addl %eax,%edi
854 roll $1,%edx
855 andl %r12d,%ebx
856 addl %ecx,%edi
857 roll $30,%r12d
858 addl %ebx,%edi
859 xorl 28(%rsp),%ebp
860 movl %r13d,%eax
861 movl %edx,24(%rsp)
862 movl %r13d,%ebx
863 xorl 36(%rsp),%ebp
864 andl %r12d,%eax
865 movl %edi,%ecx
866 xorl 60(%rsp),%ebp
867 leal -1894007588(%rdx,%rsi,1),%esi
868 xorl %r12d,%ebx
869 roll $5,%ecx
870 addl %eax,%esi
871 roll $1,%ebp
872 andl %r11d,%ebx
873 addl %ecx,%esi
874 roll $30,%r11d
875 addl %ebx,%esi
876 xorl 32(%rsp),%r14d
877 movl %r12d,%eax
878 movl %ebp,28(%rsp)
879 movl %r12d,%ebx
880 xorl 40(%rsp),%r14d
881 andl %r11d,%eax
882 movl %esi,%ecx
883 xorl 0(%rsp),%r14d
884 leal -1894007588(%rbp,%r13,1),%r13d
885 xorl %r11d,%ebx
886 roll $5,%ecx
887 addl %eax,%r13d
888 roll $1,%r14d
889 andl %edi,%ebx
890 addl %ecx,%r13d
891 roll $30,%edi
892 addl %ebx,%r13d
893 xorl 36(%rsp),%edx
894 movl %r11d,%eax
895 movl %r14d,32(%rsp)
896 movl %r11d,%ebx
897 xorl 44(%rsp),%edx
898 andl %edi,%eax
899 movl %r13d,%ecx
900 xorl 4(%rsp),%edx
901 leal -1894007588(%r14,%r12,1),%r12d
902 xorl %edi,%ebx
903 roll $5,%ecx
904 addl %eax,%r12d
905 roll $1,%edx
906 andl %esi,%ebx
907 addl %ecx,%r12d
908 roll $30,%esi
909 addl %ebx,%r12d
910 xorl 40(%rsp),%ebp
911 movl %edi,%eax
912 movl %edx,36(%rsp)
913 movl %edi,%ebx
914 xorl 48(%rsp),%ebp
915 andl %esi,%eax
916 movl %r12d,%ecx
917 xorl 8(%rsp),%ebp
918 leal -1894007588(%rdx,%r11,1),%r11d
919 xorl %esi,%ebx
920 roll $5,%ecx
921 addl %eax,%r11d
922 roll $1,%ebp
923 andl %r13d,%ebx
924 addl %ecx,%r11d
925 roll $30,%r13d
926 addl %ebx,%r11d
927 xorl 44(%rsp),%r14d
928 movl %esi,%eax
929 movl %ebp,40(%rsp)
930 movl %esi,%ebx
931 xorl 52(%rsp),%r14d
932 andl %r13d,%eax
933 movl %r11d,%ecx
934 xorl 12(%rsp),%r14d
935 leal -1894007588(%rbp,%rdi,1),%edi
936 xorl %r13d,%ebx
937 roll $5,%ecx
938 addl %eax,%edi
939 roll $1,%r14d
940 andl %r12d,%ebx
941 addl %ecx,%edi
942 roll $30,%r12d
943 addl %ebx,%edi
944 xorl 48(%rsp),%edx
945 movl %r13d,%eax
946 movl %r14d,44(%rsp)
947 movl %r13d,%ebx
948 xorl 56(%rsp),%edx
949 andl %r12d,%eax
950 movl %edi,%ecx
951 xorl 16(%rsp),%edx
952 leal -1894007588(%r14,%rsi,1),%esi
953 xorl %r12d,%ebx
954 roll $5,%ecx
955 addl %eax,%esi
956 roll $1,%edx
957 andl %r11d,%ebx
958 addl %ecx,%esi
959 roll $30,%r11d
960 addl %ebx,%esi
961 xorl 52(%rsp),%ebp
962 movl %edi,%eax
963 movl %edx,48(%rsp)
964 movl %esi,%ecx
965 xorl 60(%rsp),%ebp
966 xorl %r12d,%eax
967 roll $5,%ecx
968 xorl 20(%rsp),%ebp
969 leal -899497514(%rdx,%r13,1),%r13d
970 xorl %r11d,%eax
971 addl %ecx,%r13d
972 roll $30,%edi
973 addl %eax,%r13d
974 roll $1,%ebp
975 xorl 56(%rsp),%r14d
976 movl %esi,%eax
977 movl %ebp,52(%rsp)
978 movl %r13d,%ecx
979 xorl 0(%rsp),%r14d
980 xorl %r11d,%eax
981 roll $5,%ecx
982 xorl 24(%rsp),%r14d
983 leal -899497514(%rbp,%r12,1),%r12d
984 xorl %edi,%eax
985 addl %ecx,%r12d
986 roll $30,%esi
987 addl %eax,%r12d
988 roll $1,%r14d
989 xorl 60(%rsp),%edx
990 movl %r13d,%eax
991 movl %r14d,56(%rsp)
992 movl %r12d,%ecx
993 xorl 4(%rsp),%edx
994 xorl %edi,%eax
995 roll $5,%ecx
996 xorl 28(%rsp),%edx
997 leal -899497514(%r14,%r11,1),%r11d
998 xorl %esi,%eax
999 addl %ecx,%r11d
1000 roll $30,%r13d
1001 addl %eax,%r11d
1002 roll $1,%edx
1003 xorl 0(%rsp),%ebp
1004 movl %r12d,%eax
1005 movl %edx,60(%rsp)
1006 movl %r11d,%ecx
1007 xorl 8(%rsp),%ebp
1008 xorl %esi,%eax
1009 roll $5,%ecx
1010 xorl 32(%rsp),%ebp
1011 leal -899497514(%rdx,%rdi,1),%edi
1012 xorl %r13d,%eax
1013 addl %ecx,%edi
1014 roll $30,%r12d
1015 addl %eax,%edi
1016 roll $1,%ebp
1017 xorl 4(%rsp),%r14d
1018 movl %r11d,%eax
1019 movl %ebp,0(%rsp)
1020 movl %edi,%ecx
1021 xorl 12(%rsp),%r14d
1022 xorl %r13d,%eax
1023 roll $5,%ecx
1024 xorl 36(%rsp),%r14d
1025 leal -899497514(%rbp,%rsi,1),%esi
1026 xorl %r12d,%eax
1027 addl %ecx,%esi
1028 roll $30,%r11d
1029 addl %eax,%esi
1030 roll $1,%r14d
1031 xorl 8(%rsp),%edx
1032 movl %edi,%eax
1033 movl %r14d,4(%rsp)
1034 movl %esi,%ecx
1035 xorl 16(%rsp),%edx
1036 xorl %r12d,%eax
1037 roll $5,%ecx
1038 xorl 40(%rsp),%edx
1039 leal -899497514(%r14,%r13,1),%r13d
1040 xorl %r11d,%eax
1041 addl %ecx,%r13d
1042 roll $30,%edi
1043 addl %eax,%r13d
1044 roll $1,%edx
1045 xorl 12(%rsp),%ebp
1046 movl %esi,%eax
1047 movl %edx,8(%rsp)
1048 movl %r13d,%ecx
1049 xorl 20(%rsp),%ebp
1050 xorl %r11d,%eax
1051 roll $5,%ecx
1052 xorl 44(%rsp),%ebp
1053 leal -899497514(%rdx,%r12,1),%r12d
1054 xorl %edi,%eax
1055 addl %ecx,%r12d
1056 roll $30,%esi
1057 addl %eax,%r12d
1058 roll $1,%ebp
1059 xorl 16(%rsp),%r14d
1060 movl %r13d,%eax
1061 movl %ebp,12(%rsp)
1062 movl %r12d,%ecx
1063 xorl 24(%rsp),%r14d
1064 xorl %edi,%eax
1065 roll $5,%ecx
1066 xorl 48(%rsp),%r14d
1067 leal -899497514(%rbp,%r11,1),%r11d
1068 xorl %esi,%eax
1069 addl %ecx,%r11d
1070 roll $30,%r13d
1071 addl %eax,%r11d
1072 roll $1,%r14d
1073 xorl 20(%rsp),%edx
1074 movl %r12d,%eax
1075 movl %r14d,16(%rsp)
1076 movl %r11d,%ecx
1077 xorl 28(%rsp),%edx
1078 xorl %esi,%eax
1079 roll $5,%ecx
1080 xorl 52(%rsp),%edx
1081 leal -899497514(%r14,%rdi,1),%edi
1082 xorl %r13d,%eax
1083 addl %ecx,%edi
1084 roll $30,%r12d
1085 addl %eax,%edi
1086 roll $1,%edx
1087 xorl 24(%rsp),%ebp
1088 movl %r11d,%eax
1089 movl %edx,20(%rsp)
1090 movl %edi,%ecx
1091 xorl 32(%rsp),%ebp
1092 xorl %r13d,%eax
1093 roll $5,%ecx
1094 xorl 56(%rsp),%ebp
1095 leal -899497514(%rdx,%rsi,1),%esi
1096 xorl %r12d,%eax
1097 addl %ecx,%esi
1098 roll $30,%r11d
1099 addl %eax,%esi
1100 roll $1,%ebp
1101 xorl 28(%rsp),%r14d
1102 movl %edi,%eax
1103 movl %ebp,24(%rsp)
1104 movl %esi,%ecx
1105 xorl 36(%rsp),%r14d
1106 xorl %r12d,%eax
1107 roll $5,%ecx
1108 xorl 60(%rsp),%r14d
1109 leal -899497514(%rbp,%r13,1),%r13d
1110 xorl %r11d,%eax
1111 addl %ecx,%r13d
1112 roll $30,%edi
1113 addl %eax,%r13d
1114 roll $1,%r14d
1115 xorl 32(%rsp),%edx
1116 movl %esi,%eax
1117 movl %r14d,28(%rsp)
1118 movl %r13d,%ecx
1119 xorl 40(%rsp),%edx
1120 xorl %r11d,%eax
1121 roll $5,%ecx
1122 xorl 0(%rsp),%edx
1123 leal -899497514(%r14,%r12,1),%r12d
1124 xorl %edi,%eax
1125 addl %ecx,%r12d
1126 roll $30,%esi
1127 addl %eax,%r12d
1128 roll $1,%edx
1129 xorl 36(%rsp),%ebp
1130 movl %r13d,%eax
1131
1132 movl %r12d,%ecx
1133 xorl 44(%rsp),%ebp
1134 xorl %edi,%eax
1135 roll $5,%ecx
1136 xorl 4(%rsp),%ebp
1137 leal -899497514(%rdx,%r11,1),%r11d
1138 xorl %esi,%eax
1139 addl %ecx,%r11d
1140 roll $30,%r13d
1141 addl %eax,%r11d
1142 roll $1,%ebp
1143 xorl 40(%rsp),%r14d
1144 movl %r12d,%eax
1145
1146 movl %r11d,%ecx
1147 xorl 48(%rsp),%r14d
1148 xorl %esi,%eax
1149 roll $5,%ecx
1150 xorl 8(%rsp),%r14d
1151 leal -899497514(%rbp,%rdi,1),%edi
1152 xorl %r13d,%eax
1153 addl %ecx,%edi
1154 roll $30,%r12d
1155 addl %eax,%edi
1156 roll $1,%r14d
1157 xorl 44(%rsp),%edx
1158 movl %r11d,%eax
1159
1160 movl %edi,%ecx
1161 xorl 52(%rsp),%edx
1162 xorl %r13d,%eax
1163 roll $5,%ecx
1164 xorl 12(%rsp),%edx
1165 leal -899497514(%r14,%rsi,1),%esi
1166 xorl %r12d,%eax
1167 addl %ecx,%esi
1168 roll $30,%r11d
1169 addl %eax,%esi
1170 roll $1,%edx
1171 xorl 48(%rsp),%ebp
1172 movl %edi,%eax
1173
1174 movl %esi,%ecx
1175 xorl 56(%rsp),%ebp
1176 xorl %r12d,%eax
1177 roll $5,%ecx
1178 xorl 16(%rsp),%ebp
1179 leal -899497514(%rdx,%r13,1),%r13d
1180 xorl %r11d,%eax
1181 addl %ecx,%r13d
1182 roll $30,%edi
1183 addl %eax,%r13d
1184 roll $1,%ebp
1185 xorl 52(%rsp),%r14d
1186 movl %esi,%eax
1187
1188 movl %r13d,%ecx
1189 xorl 60(%rsp),%r14d
1190 xorl %r11d,%eax
1191 roll $5,%ecx
1192 xorl 20(%rsp),%r14d
1193 leal -899497514(%rbp,%r12,1),%r12d
1194 xorl %edi,%eax
1195 addl %ecx,%r12d
1196 roll $30,%esi
1197 addl %eax,%r12d
1198 roll $1,%r14d
1199 xorl 56(%rsp),%edx
1200 movl %r13d,%eax
1201
1202 movl %r12d,%ecx
1203 xorl 0(%rsp),%edx
1204 xorl %edi,%eax
1205 roll $5,%ecx
1206 xorl 24(%rsp),%edx
1207 leal -899497514(%r14,%r11,1),%r11d
1208 xorl %esi,%eax
1209 addl %ecx,%r11d
1210 roll $30,%r13d
1211 addl %eax,%r11d
1212 roll $1,%edx
1213 xorl 60(%rsp),%ebp
1214 movl %r12d,%eax
1215
1216 movl %r11d,%ecx
1217 xorl 4(%rsp),%ebp
1218 xorl %esi,%eax
1219 roll $5,%ecx
1220 xorl 28(%rsp),%ebp
1221 leal -899497514(%rdx,%rdi,1),%edi
1222 xorl %r13d,%eax
1223 addl %ecx,%edi
1224 roll $30,%r12d
1225 addl %eax,%edi
1226 roll $1,%ebp
1227 movl %r11d,%eax
1228 movl %edi,%ecx
1229 xorl %r13d,%eax
1230 leal -899497514(%rbp,%rsi,1),%esi
1231 roll $5,%ecx
1232 xorl %r12d,%eax
1233 addl %ecx,%esi
1234 roll $30,%r11d
1235 addl %eax,%esi
1236 addl 0(%r8),%esi
1237 addl 4(%r8),%edi
1238 addl 8(%r8),%r11d
1239 addl 12(%r8),%r12d
1240 addl 16(%r8),%r13d
1241 movl %esi,0(%r8)
1242 movl %edi,4(%r8)
1243 movl %r11d,8(%r8)
1244 movl %r12d,12(%r8)
1245 movl %r13d,16(%r8)
1246
1247 subq $1,%r10
1248 leaq 64(%r9),%r9
1249 jnz .Lloop
1250
1251 movq 64(%rsp),%rsi
1252.cfi_def_cfa %rsi,8
1253 movq -40(%rsi),%r14
1254.cfi_restore %r14
1255 movq -32(%rsi),%r13
1256.cfi_restore %r13
1257 movq -24(%rsi),%r12
1258.cfi_restore %r12
1259 movq -16(%rsi),%rbp
1260.cfi_restore %rbp
1261 movq -8(%rsi),%rbx
1262.cfi_restore %rbx
1263 leaq (%rsi),%rsp
1264.cfi_def_cfa_register %rsp
1265.Lepilogue:
1266 .byte 0xf3,0xc3
1267.cfi_endproc
1268.size sha1_block_data_order,.-sha1_block_data_order
1269.type sha1_block_data_order_ssse3,@function
1270.align 16
1271sha1_block_data_order_ssse3:
1272_ssse3_shortcut:
1273.cfi_startproc
1274 movq %rsp,%r11
1275.cfi_def_cfa_register %r11
1276 pushq %rbx
1277.cfi_offset %rbx,-16
1278 pushq %rbp
1279.cfi_offset %rbp,-24
1280 pushq %r12
1281.cfi_offset %r12,-32
1282 pushq %r13
1283.cfi_offset %r13,-40
1284 pushq %r14
1285.cfi_offset %r14,-48
1286 leaq -64(%rsp),%rsp
1287 andq $-64,%rsp
1288 movq %rdi,%r8
1289 movq %rsi,%r9
1290 movq %rdx,%r10
1291
1292 shlq $6,%r10
1293 addq %r9,%r10
1294 leaq K_XX_XX+64(%rip),%r14
1295
1296 movl 0(%r8),%eax
1297 movl 4(%r8),%ebx
1298 movl 8(%r8),%ecx
1299 movl 12(%r8),%edx
1300 movl %ebx,%esi
1301 movl 16(%r8),%ebp
1302 movl %ecx,%edi
1303 xorl %edx,%edi
1304 andl %edi,%esi
1305
1306 movdqa 64(%r14),%xmm6
1307 movdqa -64(%r14),%xmm9
1308 movdqu 0(%r9),%xmm0
1309 movdqu 16(%r9),%xmm1
1310 movdqu 32(%r9),%xmm2
1311 movdqu 48(%r9),%xmm3
1312.byte 102,15,56,0,198
1313.byte 102,15,56,0,206
1314.byte 102,15,56,0,214
1315 addq $64,%r9
1316 paddd %xmm9,%xmm0
1317.byte 102,15,56,0,222
1318 paddd %xmm9,%xmm1
1319 paddd %xmm9,%xmm2
1320 movdqa %xmm0,0(%rsp)
1321 psubd %xmm9,%xmm0
1322 movdqa %xmm1,16(%rsp)
1323 psubd %xmm9,%xmm1
1324 movdqa %xmm2,32(%rsp)
1325 psubd %xmm9,%xmm2
1326 jmp .Loop_ssse3
1327.align 16
1328.Loop_ssse3:
1329 rorl $2,%ebx
1330 pshufd $238,%xmm0,%xmm4
1331 xorl %edx,%esi
1332 movdqa %xmm3,%xmm8
1333 paddd %xmm3,%xmm9
1334 movl %eax,%edi
1335 addl 0(%rsp),%ebp
1336 punpcklqdq %xmm1,%xmm4
1337 xorl %ecx,%ebx
1338 roll $5,%eax
1339 addl %esi,%ebp
1340 psrldq $4,%xmm8
1341 andl %ebx,%edi
1342 xorl %ecx,%ebx
1343 pxor %xmm0,%xmm4
1344 addl %eax,%ebp
1345 rorl $7,%eax
1346 pxor %xmm2,%xmm8
1347 xorl %ecx,%edi
1348 movl %ebp,%esi
1349 addl 4(%rsp),%edx
1350 pxor %xmm8,%xmm4
1351 xorl %ebx,%eax
1352 roll $5,%ebp
1353 movdqa %xmm9,48(%rsp)
1354 addl %edi,%edx
1355 andl %eax,%esi
1356 movdqa %xmm4,%xmm10
1357 xorl %ebx,%eax
1358 addl %ebp,%edx
1359 rorl $7,%ebp
1360 movdqa %xmm4,%xmm8
1361 xorl %ebx,%esi
1362 pslldq $12,%xmm10
1363 paddd %xmm4,%xmm4
1364 movl %edx,%edi
1365 addl 8(%rsp),%ecx
1366 psrld $31,%xmm8
1367 xorl %eax,%ebp
1368 roll $5,%edx
1369 addl %esi,%ecx
1370 movdqa %xmm10,%xmm9
1371 andl %ebp,%edi
1372 xorl %eax,%ebp
1373 psrld $30,%xmm10
1374 addl %edx,%ecx
1375 rorl $7,%edx
1376 por %xmm8,%xmm4
1377 xorl %eax,%edi
1378 movl %ecx,%esi
1379 addl 12(%rsp),%ebx
1380 pslld $2,%xmm9
1381 pxor %xmm10,%xmm4
1382 xorl %ebp,%edx
1383 movdqa -64(%r14),%xmm10
1384 roll $5,%ecx
1385 addl %edi,%ebx
1386 andl %edx,%esi
1387 pxor %xmm9,%xmm4
1388 xorl %ebp,%edx
1389 addl %ecx,%ebx
1390 rorl $7,%ecx
1391 pshufd $238,%xmm1,%xmm5
1392 xorl %ebp,%esi
1393 movdqa %xmm4,%xmm9
1394 paddd %xmm4,%xmm10
1395 movl %ebx,%edi
1396 addl 16(%rsp),%eax
1397 punpcklqdq %xmm2,%xmm5
1398 xorl %edx,%ecx
1399 roll $5,%ebx
1400 addl %esi,%eax
1401 psrldq $4,%xmm9
1402 andl %ecx,%edi
1403 xorl %edx,%ecx
1404 pxor %xmm1,%xmm5
1405 addl %ebx,%eax
1406 rorl $7,%ebx
1407 pxor %xmm3,%xmm9
1408 xorl %edx,%edi
1409 movl %eax,%esi
1410 addl 20(%rsp),%ebp
1411 pxor %xmm9,%xmm5
1412 xorl %ecx,%ebx
1413 roll $5,%eax
1414 movdqa %xmm10,0(%rsp)
1415 addl %edi,%ebp
1416 andl %ebx,%esi
1417 movdqa %xmm5,%xmm8
1418 xorl %ecx,%ebx
1419 addl %eax,%ebp
1420 rorl $7,%eax
1421 movdqa %xmm5,%xmm9
1422 xorl %ecx,%esi
1423 pslldq $12,%xmm8
1424 paddd %xmm5,%xmm5
1425 movl %ebp,%edi
1426 addl 24(%rsp),%edx
1427 psrld $31,%xmm9
1428 xorl %ebx,%eax
1429 roll $5,%ebp
1430 addl %esi,%edx
1431 movdqa %xmm8,%xmm10
1432 andl %eax,%edi
1433 xorl %ebx,%eax
1434 psrld $30,%xmm8
1435 addl %ebp,%edx
1436 rorl $7,%ebp
1437 por %xmm9,%xmm5
1438 xorl %ebx,%edi
1439 movl %edx,%esi
1440 addl 28(%rsp),%ecx
1441 pslld $2,%xmm10
1442 pxor %xmm8,%xmm5
1443 xorl %eax,%ebp
1444 movdqa -32(%r14),%xmm8
1445 roll $5,%edx
1446 addl %edi,%ecx
1447 andl %ebp,%esi
1448 pxor %xmm10,%xmm5
1449 xorl %eax,%ebp
1450 addl %edx,%ecx
1451 rorl $7,%edx
1452 pshufd $238,%xmm2,%xmm6
1453 xorl %eax,%esi
1454 movdqa %xmm5,%xmm10
1455 paddd %xmm5,%xmm8
1456 movl %ecx,%edi
1457 addl 32(%rsp),%ebx
1458 punpcklqdq %xmm3,%xmm6
1459 xorl %ebp,%edx
1460 roll $5,%ecx
1461 addl %esi,%ebx
1462 psrldq $4,%xmm10
1463 andl %edx,%edi
1464 xorl %ebp,%edx
1465 pxor %xmm2,%xmm6
1466 addl %ecx,%ebx
1467 rorl $7,%ecx
1468 pxor %xmm4,%xmm10
1469 xorl %ebp,%edi
1470 movl %ebx,%esi
1471 addl 36(%rsp),%eax
1472 pxor %xmm10,%xmm6
1473 xorl %edx,%ecx
1474 roll $5,%ebx
1475 movdqa %xmm8,16(%rsp)
1476 addl %edi,%eax
1477 andl %ecx,%esi
1478 movdqa %xmm6,%xmm9
1479 xorl %edx,%ecx
1480 addl %ebx,%eax
1481 rorl $7,%ebx
1482 movdqa %xmm6,%xmm10
1483 xorl %edx,%esi
1484 pslldq $12,%xmm9
1485 paddd %xmm6,%xmm6
1486 movl %eax,%edi
1487 addl 40(%rsp),%ebp
1488 psrld $31,%xmm10
1489 xorl %ecx,%ebx
1490 roll $5,%eax
1491 addl %esi,%ebp
1492 movdqa %xmm9,%xmm8
1493 andl %ebx,%edi
1494 xorl %ecx,%ebx
1495 psrld $30,%xmm9
1496 addl %eax,%ebp
1497 rorl $7,%eax
1498 por %xmm10,%xmm6
1499 xorl %ecx,%edi
1500 movl %ebp,%esi
1501 addl 44(%rsp),%edx
1502 pslld $2,%xmm8
1503 pxor %xmm9,%xmm6
1504 xorl %ebx,%eax
1505 movdqa -32(%r14),%xmm9
1506 roll $5,%ebp
1507 addl %edi,%edx
1508 andl %eax,%esi
1509 pxor %xmm8,%xmm6
1510 xorl %ebx,%eax
1511 addl %ebp,%edx
1512 rorl $7,%ebp
1513 pshufd $238,%xmm3,%xmm7
1514 xorl %ebx,%esi
1515 movdqa %xmm6,%xmm8
1516 paddd %xmm6,%xmm9
1517 movl %edx,%edi
1518 addl 48(%rsp),%ecx
1519 punpcklqdq %xmm4,%xmm7
1520 xorl %eax,%ebp
1521 roll $5,%edx
1522 addl %esi,%ecx
1523 psrldq $4,%xmm8
1524 andl %ebp,%edi
1525 xorl %eax,%ebp
1526 pxor %xmm3,%xmm7
1527 addl %edx,%ecx
1528 rorl $7,%edx
1529 pxor %xmm5,%xmm8
1530 xorl %eax,%edi
1531 movl %ecx,%esi
1532 addl 52(%rsp),%ebx
1533 pxor %xmm8,%xmm7
1534 xorl %ebp,%edx
1535 roll $5,%ecx
1536 movdqa %xmm9,32(%rsp)
1537 addl %edi,%ebx
1538 andl %edx,%esi
1539 movdqa %xmm7,%xmm10
1540 xorl %ebp,%edx
1541 addl %ecx,%ebx
1542 rorl $7,%ecx
1543 movdqa %xmm7,%xmm8
1544 xorl %ebp,%esi
1545 pslldq $12,%xmm10
1546 paddd %xmm7,%xmm7
1547 movl %ebx,%edi
1548 addl 56(%rsp),%eax
1549 psrld $31,%xmm8
1550 xorl %edx,%ecx
1551 roll $5,%ebx
1552 addl %esi,%eax
1553 movdqa %xmm10,%xmm9
1554 andl %ecx,%edi
1555 xorl %edx,%ecx
1556 psrld $30,%xmm10
1557 addl %ebx,%eax
1558 rorl $7,%ebx
1559 por %xmm8,%xmm7
1560 xorl %edx,%edi
1561 movl %eax,%esi
1562 addl 60(%rsp),%ebp
1563 pslld $2,%xmm9
1564 pxor %xmm10,%xmm7
1565 xorl %ecx,%ebx
1566 movdqa -32(%r14),%xmm10
1567 roll $5,%eax
1568 addl %edi,%ebp
1569 andl %ebx,%esi
1570 pxor %xmm9,%xmm7
1571 pshufd $238,%xmm6,%xmm9
1572 xorl %ecx,%ebx
1573 addl %eax,%ebp
1574 rorl $7,%eax
1575 pxor %xmm4,%xmm0
1576 xorl %ecx,%esi
1577 movl %ebp,%edi
1578 addl 0(%rsp),%edx
1579 punpcklqdq %xmm7,%xmm9
1580 xorl %ebx,%eax
1581 roll $5,%ebp
1582 pxor %xmm1,%xmm0
1583 addl %esi,%edx
1584 andl %eax,%edi
1585 movdqa %xmm10,%xmm8
1586 xorl %ebx,%eax
1587 paddd %xmm7,%xmm10
1588 addl %ebp,%edx
1589 pxor %xmm9,%xmm0
1590 rorl $7,%ebp
1591 xorl %ebx,%edi
1592 movl %edx,%esi
1593 addl 4(%rsp),%ecx
1594 movdqa %xmm0,%xmm9
1595 xorl %eax,%ebp
1596 roll $5,%edx
1597 movdqa %xmm10,48(%rsp)
1598 addl %edi,%ecx
1599 andl %ebp,%esi
1600 xorl %eax,%ebp
1601 pslld $2,%xmm0
1602 addl %edx,%ecx
1603 rorl $7,%edx
1604 psrld $30,%xmm9
1605 xorl %eax,%esi
1606 movl %ecx,%edi
1607 addl 8(%rsp),%ebx
1608 por %xmm9,%xmm0
1609 xorl %ebp,%edx
1610 roll $5,%ecx
1611 pshufd $238,%xmm7,%xmm10
1612 addl %esi,%ebx
1613 andl %edx,%edi
1614 xorl %ebp,%edx
1615 addl %ecx,%ebx
1616 addl 12(%rsp),%eax
1617 xorl %ebp,%edi
1618 movl %ebx,%esi
1619 roll $5,%ebx
1620 addl %edi,%eax
1621 xorl %edx,%esi
1622 rorl $7,%ecx
1623 addl %ebx,%eax
1624 pxor %xmm5,%xmm1
1625 addl 16(%rsp),%ebp
1626 xorl %ecx,%esi
1627 punpcklqdq %xmm0,%xmm10
1628 movl %eax,%edi
1629 roll $5,%eax
1630 pxor %xmm2,%xmm1
1631 addl %esi,%ebp
1632 xorl %ecx,%edi
1633 movdqa %xmm8,%xmm9
1634 rorl $7,%ebx
1635 paddd %xmm0,%xmm8
1636 addl %eax,%ebp
1637 pxor %xmm10,%xmm1
1638 addl 20(%rsp),%edx
1639 xorl %ebx,%edi
1640 movl %ebp,%esi
1641 roll $5,%ebp
1642 movdqa %xmm1,%xmm10
1643 addl %edi,%edx
1644 xorl %ebx,%esi
1645 movdqa %xmm8,0(%rsp)
1646 rorl $7,%eax
1647 addl %ebp,%edx
1648 addl 24(%rsp),%ecx
1649 pslld $2,%xmm1
1650 xorl %eax,%esi
1651 movl %edx,%edi
1652 psrld $30,%xmm10
1653 roll $5,%edx
1654 addl %esi,%ecx
1655 xorl %eax,%edi
1656 rorl $7,%ebp
1657 por %xmm10,%xmm1
1658 addl %edx,%ecx
1659 addl 28(%rsp),%ebx
1660 pshufd $238,%xmm0,%xmm8
1661 xorl %ebp,%edi
1662 movl %ecx,%esi
1663 roll $5,%ecx
1664 addl %edi,%ebx
1665 xorl %ebp,%esi
1666 rorl $7,%edx
1667 addl %ecx,%ebx
1668 pxor %xmm6,%xmm2
1669 addl 32(%rsp),%eax
1670 xorl %edx,%esi
1671 punpcklqdq %xmm1,%xmm8
1672 movl %ebx,%edi
1673 roll $5,%ebx
1674 pxor %xmm3,%xmm2
1675 addl %esi,%eax
1676 xorl %edx,%edi
1677 movdqa 0(%r14),%xmm10
1678 rorl $7,%ecx
1679 paddd %xmm1,%xmm9
1680 addl %ebx,%eax
1681 pxor %xmm8,%xmm2
1682 addl 36(%rsp),%ebp
1683 xorl %ecx,%edi
1684 movl %eax,%esi
1685 roll $5,%eax
1686 movdqa %xmm2,%xmm8
1687 addl %edi,%ebp
1688 xorl %ecx,%esi
1689 movdqa %xmm9,16(%rsp)
1690 rorl $7,%ebx
1691 addl %eax,%ebp
1692 addl 40(%rsp),%edx
1693 pslld $2,%xmm2
1694 xorl %ebx,%esi
1695 movl %ebp,%edi
1696 psrld $30,%xmm8
1697 roll $5,%ebp
1698 addl %esi,%edx
1699 xorl %ebx,%edi
1700 rorl $7,%eax
1701 por %xmm8,%xmm2
1702 addl %ebp,%edx
1703 addl 44(%rsp),%ecx
1704 pshufd $238,%xmm1,%xmm9
1705 xorl %eax,%edi
1706 movl %edx,%esi
1707 roll $5,%edx
1708 addl %edi,%ecx
1709 xorl %eax,%esi
1710 rorl $7,%ebp
1711 addl %edx,%ecx
1712 pxor %xmm7,%xmm3
1713 addl 48(%rsp),%ebx
1714 xorl %ebp,%esi
1715 punpcklqdq %xmm2,%xmm9
1716 movl %ecx,%edi
1717 roll $5,%ecx
1718 pxor %xmm4,%xmm3
1719 addl %esi,%ebx
1720 xorl %ebp,%edi
1721 movdqa %xmm10,%xmm8
1722 rorl $7,%edx
1723 paddd %xmm2,%xmm10
1724 addl %ecx,%ebx
1725 pxor %xmm9,%xmm3
1726 addl 52(%rsp),%eax
1727 xorl %edx,%edi
1728 movl %ebx,%esi
1729 roll $5,%ebx
1730 movdqa %xmm3,%xmm9
1731 addl %edi,%eax
1732 xorl %edx,%esi
1733 movdqa %xmm10,32(%rsp)
1734 rorl $7,%ecx
1735 addl %ebx,%eax
1736 addl 56(%rsp),%ebp
1737 pslld $2,%xmm3
1738 xorl %ecx,%esi
1739 movl %eax,%edi
1740 psrld $30,%xmm9
1741 roll $5,%eax
1742 addl %esi,%ebp
1743 xorl %ecx,%edi
1744 rorl $7,%ebx
1745 por %xmm9,%xmm3
1746 addl %eax,%ebp
1747 addl 60(%rsp),%edx
1748 pshufd $238,%xmm2,%xmm10
1749 xorl %ebx,%edi
1750 movl %ebp,%esi
1751 roll $5,%ebp
1752 addl %edi,%edx
1753 xorl %ebx,%esi
1754 rorl $7,%eax
1755 addl %ebp,%edx
1756 pxor %xmm0,%xmm4
1757 addl 0(%rsp),%ecx
1758 xorl %eax,%esi
1759 punpcklqdq %xmm3,%xmm10
1760 movl %edx,%edi
1761 roll $5,%edx
1762 pxor %xmm5,%xmm4
1763 addl %esi,%ecx
1764 xorl %eax,%edi
1765 movdqa %xmm8,%xmm9
1766 rorl $7,%ebp
1767 paddd %xmm3,%xmm8
1768 addl %edx,%ecx
1769 pxor %xmm10,%xmm4
1770 addl 4(%rsp),%ebx
1771 xorl %ebp,%edi
1772 movl %ecx,%esi
1773 roll $5,%ecx
1774 movdqa %xmm4,%xmm10
1775 addl %edi,%ebx
1776 xorl %ebp,%esi
1777 movdqa %xmm8,48(%rsp)
1778 rorl $7,%edx
1779 addl %ecx,%ebx
1780 addl 8(%rsp),%eax
1781 pslld $2,%xmm4
1782 xorl %edx,%esi
1783 movl %ebx,%edi
1784 psrld $30,%xmm10
1785 roll $5,%ebx
1786 addl %esi,%eax
1787 xorl %edx,%edi
1788 rorl $7,%ecx
1789 por %xmm10,%xmm4
1790 addl %ebx,%eax
1791 addl 12(%rsp),%ebp
1792 pshufd $238,%xmm3,%xmm8
1793 xorl %ecx,%edi
1794 movl %eax,%esi
1795 roll $5,%eax
1796 addl %edi,%ebp
1797 xorl %ecx,%esi
1798 rorl $7,%ebx
1799 addl %eax,%ebp
1800 pxor %xmm1,%xmm5
1801 addl 16(%rsp),%edx
1802 xorl %ebx,%esi
1803 punpcklqdq %xmm4,%xmm8
1804 movl %ebp,%edi
1805 roll $5,%ebp
1806 pxor %xmm6,%xmm5
1807 addl %esi,%edx
1808 xorl %ebx,%edi
1809 movdqa %xmm9,%xmm10
1810 rorl $7,%eax
1811 paddd %xmm4,%xmm9
1812 addl %ebp,%edx
1813 pxor %xmm8,%xmm5
1814 addl 20(%rsp),%ecx
1815 xorl %eax,%edi
1816 movl %edx,%esi
1817 roll $5,%edx
1818 movdqa %xmm5,%xmm8
1819 addl %edi,%ecx
1820 xorl %eax,%esi
1821 movdqa %xmm9,0(%rsp)
1822 rorl $7,%ebp
1823 addl %edx,%ecx
1824 addl 24(%rsp),%ebx
1825 pslld $2,%xmm5
1826 xorl %ebp,%esi
1827 movl %ecx,%edi
1828 psrld $30,%xmm8
1829 roll $5,%ecx
1830 addl %esi,%ebx
1831 xorl %ebp,%edi
1832 rorl $7,%edx
1833 por %xmm8,%xmm5
1834 addl %ecx,%ebx
1835 addl 28(%rsp),%eax
1836 pshufd $238,%xmm4,%xmm9
1837 rorl $7,%ecx
1838 movl %ebx,%esi
1839 xorl %edx,%edi
1840 roll $5,%ebx
1841 addl %edi,%eax
1842 xorl %ecx,%esi
1843 xorl %edx,%ecx
1844 addl %ebx,%eax
1845 pxor %xmm2,%xmm6
1846 addl 32(%rsp),%ebp
1847 andl %ecx,%esi
1848 xorl %edx,%ecx
1849 rorl $7,%ebx
1850 punpcklqdq %xmm5,%xmm9
1851 movl %eax,%edi
1852 xorl %ecx,%esi
1853 pxor %xmm7,%xmm6
1854 roll $5,%eax
1855 addl %esi,%ebp
1856 movdqa %xmm10,%xmm8
1857 xorl %ebx,%edi
1858 paddd %xmm5,%xmm10
1859 xorl %ecx,%ebx
1860 pxor %xmm9,%xmm6
1861 addl %eax,%ebp
1862 addl 36(%rsp),%edx
1863 andl %ebx,%edi
1864 xorl %ecx,%ebx
1865 rorl $7,%eax
1866 movdqa %xmm6,%xmm9
1867 movl %ebp,%esi
1868 xorl %ebx,%edi
1869 movdqa %xmm10,16(%rsp)
1870 roll $5,%ebp
1871 addl %edi,%edx
1872 xorl %eax,%esi
1873 pslld $2,%xmm6
1874 xorl %ebx,%eax
1875 addl %ebp,%edx
1876 psrld $30,%xmm9
1877 addl 40(%rsp),%ecx
1878 andl %eax,%esi
1879 xorl %ebx,%eax
1880 por %xmm9,%xmm6
1881 rorl $7,%ebp
1882 movl %edx,%edi
1883 xorl %eax,%esi
1884 roll $5,%edx
1885 pshufd $238,%xmm5,%xmm10
1886 addl %esi,%ecx
1887 xorl %ebp,%edi
1888 xorl %eax,%ebp
1889 addl %edx,%ecx
1890 addl 44(%rsp),%ebx
1891 andl %ebp,%edi
1892 xorl %eax,%ebp
1893 rorl $7,%edx
1894 movl %ecx,%esi
1895 xorl %ebp,%edi
1896 roll $5,%ecx
1897 addl %edi,%ebx
1898 xorl %edx,%esi
1899 xorl %ebp,%edx
1900 addl %ecx,%ebx
1901 pxor %xmm3,%xmm7
1902 addl 48(%rsp),%eax
1903 andl %edx,%esi
1904 xorl %ebp,%edx
1905 rorl $7,%ecx
1906 punpcklqdq %xmm6,%xmm10
1907 movl %ebx,%edi
1908 xorl %edx,%esi
1909 pxor %xmm0,%xmm7
1910 roll $5,%ebx
1911 addl %esi,%eax
1912 movdqa 32(%r14),%xmm9
1913 xorl %ecx,%edi
1914 paddd %xmm6,%xmm8
1915 xorl %edx,%ecx
1916 pxor %xmm10,%xmm7
1917 addl %ebx,%eax
1918 addl 52(%rsp),%ebp
1919 andl %ecx,%edi
1920 xorl %edx,%ecx
1921 rorl $7,%ebx
1922 movdqa %xmm7,%xmm10
1923 movl %eax,%esi
1924 xorl %ecx,%edi
1925 movdqa %xmm8,32(%rsp)
1926 roll $5,%eax
1927 addl %edi,%ebp
1928 xorl %ebx,%esi
1929 pslld $2,%xmm7
1930 xorl %ecx,%ebx
1931 addl %eax,%ebp
1932 psrld $30,%xmm10
1933 addl 56(%rsp),%edx
1934 andl %ebx,%esi
1935 xorl %ecx,%ebx
1936 por %xmm10,%xmm7
1937 rorl $7,%eax
1938 movl %ebp,%edi
1939 xorl %ebx,%esi
1940 roll $5,%ebp
1941 pshufd $238,%xmm6,%xmm8
1942 addl %esi,%edx
1943 xorl %eax,%edi
1944 xorl %ebx,%eax
1945 addl %ebp,%edx
1946 addl 60(%rsp),%ecx
1947 andl %eax,%edi
1948 xorl %ebx,%eax
1949 rorl $7,%ebp
1950 movl %edx,%esi
1951 xorl %eax,%edi
1952 roll $5,%edx
1953 addl %edi,%ecx
1954 xorl %ebp,%esi
1955 xorl %eax,%ebp
1956 addl %edx,%ecx
1957 pxor %xmm4,%xmm0
1958 addl 0(%rsp),%ebx
1959 andl %ebp,%esi
1960 xorl %eax,%ebp
1961 rorl $7,%edx
1962 punpcklqdq %xmm7,%xmm8
1963 movl %ecx,%edi
1964 xorl %ebp,%esi
1965 pxor %xmm1,%xmm0
1966 roll $5,%ecx
1967 addl %esi,%ebx
1968 movdqa %xmm9,%xmm10
1969 xorl %edx,%edi
1970 paddd %xmm7,%xmm9
1971 xorl %ebp,%edx
1972 pxor %xmm8,%xmm0
1973 addl %ecx,%ebx
1974 addl 4(%rsp),%eax
1975 andl %edx,%edi
1976 xorl %ebp,%edx
1977 rorl $7,%ecx
1978 movdqa %xmm0,%xmm8
1979 movl %ebx,%esi
1980 xorl %edx,%edi
1981 movdqa %xmm9,48(%rsp)
1982 roll $5,%ebx
1983 addl %edi,%eax
1984 xorl %ecx,%esi
1985 pslld $2,%xmm0
1986 xorl %edx,%ecx
1987 addl %ebx,%eax
1988 psrld $30,%xmm8
1989 addl 8(%rsp),%ebp
1990 andl %ecx,%esi
1991 xorl %edx,%ecx
1992 por %xmm8,%xmm0
1993 rorl $7,%ebx
1994 movl %eax,%edi
1995 xorl %ecx,%esi
1996 roll $5,%eax
1997 pshufd $238,%xmm7,%xmm9
1998 addl %esi,%ebp
1999 xorl %ebx,%edi
2000 xorl %ecx,%ebx
2001 addl %eax,%ebp
2002 addl 12(%rsp),%edx
2003 andl %ebx,%edi
2004 xorl %ecx,%ebx
2005 rorl $7,%eax
2006 movl %ebp,%esi
2007 xorl %ebx,%edi
2008 roll $5,%ebp
2009 addl %edi,%edx
2010 xorl %eax,%esi
2011 xorl %ebx,%eax
2012 addl %ebp,%edx
2013 pxor %xmm5,%xmm1
2014 addl 16(%rsp),%ecx
2015 andl %eax,%esi
2016 xorl %ebx,%eax
2017 rorl $7,%ebp
2018 punpcklqdq %xmm0,%xmm9
2019 movl %edx,%edi
2020 xorl %eax,%esi
2021 pxor %xmm2,%xmm1
2022 roll $5,%edx
2023 addl %esi,%ecx
2024 movdqa %xmm10,%xmm8
2025 xorl %ebp,%edi
2026 paddd %xmm0,%xmm10
2027 xorl %eax,%ebp
2028 pxor %xmm9,%xmm1
2029 addl %edx,%ecx
2030 addl 20(%rsp),%ebx
2031 andl %ebp,%edi
2032 xorl %eax,%ebp
2033 rorl $7,%edx
2034 movdqa %xmm1,%xmm9
2035 movl %ecx,%esi
2036 xorl %ebp,%edi
2037 movdqa %xmm10,0(%rsp)
2038 roll $5,%ecx
2039 addl %edi,%ebx
2040 xorl %edx,%esi
2041 pslld $2,%xmm1
2042 xorl %ebp,%edx
2043 addl %ecx,%ebx
2044 psrld $30,%xmm9
2045 addl 24(%rsp),%eax
2046 andl %edx,%esi
2047 xorl %ebp,%edx
2048 por %xmm9,%xmm1
2049 rorl $7,%ecx
2050 movl %ebx,%edi
2051 xorl %edx,%esi
2052 roll $5,%ebx
2053 pshufd $238,%xmm0,%xmm10
2054 addl %esi,%eax
2055 xorl %ecx,%edi
2056 xorl %edx,%ecx
2057 addl %ebx,%eax
2058 addl 28(%rsp),%ebp
2059 andl %ecx,%edi
2060 xorl %edx,%ecx
2061 rorl $7,%ebx
2062 movl %eax,%esi
2063 xorl %ecx,%edi
2064 roll $5,%eax
2065 addl %edi,%ebp
2066 xorl %ebx,%esi
2067 xorl %ecx,%ebx
2068 addl %eax,%ebp
2069 pxor %xmm6,%xmm2
2070 addl 32(%rsp),%edx
2071 andl %ebx,%esi
2072 xorl %ecx,%ebx
2073 rorl $7,%eax
2074 punpcklqdq %xmm1,%xmm10
2075 movl %ebp,%edi
2076 xorl %ebx,%esi
2077 pxor %xmm3,%xmm2
2078 roll $5,%ebp
2079 addl %esi,%edx
2080 movdqa %xmm8,%xmm9
2081 xorl %eax,%edi
2082 paddd %xmm1,%xmm8
2083 xorl %ebx,%eax
2084 pxor %xmm10,%xmm2
2085 addl %ebp,%edx
2086 addl 36(%rsp),%ecx
2087 andl %eax,%edi
2088 xorl %ebx,%eax
2089 rorl $7,%ebp
2090 movdqa %xmm2,%xmm10
2091 movl %edx,%esi
2092 xorl %eax,%edi
2093 movdqa %xmm8,16(%rsp)
2094 roll $5,%edx
2095 addl %edi,%ecx
2096 xorl %ebp,%esi
2097 pslld $2,%xmm2
2098 xorl %eax,%ebp
2099 addl %edx,%ecx
2100 psrld $30,%xmm10
2101 addl 40(%rsp),%ebx
2102 andl %ebp,%esi
2103 xorl %eax,%ebp
2104 por %xmm10,%xmm2
2105 rorl $7,%edx
2106 movl %ecx,%edi
2107 xorl %ebp,%esi
2108 roll $5,%ecx
2109 pshufd $238,%xmm1,%xmm8
2110 addl %esi,%ebx
2111 xorl %edx,%edi
2112 xorl %ebp,%edx
2113 addl %ecx,%ebx
2114 addl 44(%rsp),%eax
2115 andl %edx,%edi
2116 xorl %ebp,%edx
2117 rorl $7,%ecx
2118 movl %ebx,%esi
2119 xorl %edx,%edi
2120 roll $5,%ebx
2121 addl %edi,%eax
2122 xorl %edx,%esi
2123 addl %ebx,%eax
2124 pxor %xmm7,%xmm3
2125 addl 48(%rsp),%ebp
2126 xorl %ecx,%esi
2127 punpcklqdq %xmm2,%xmm8
2128 movl %eax,%edi
2129 roll $5,%eax
2130 pxor %xmm4,%xmm3
2131 addl %esi,%ebp
2132 xorl %ecx,%edi
2133 movdqa %xmm9,%xmm10
2134 rorl $7,%ebx
2135 paddd %xmm2,%xmm9
2136 addl %eax,%ebp
2137 pxor %xmm8,%xmm3
2138 addl 52(%rsp),%edx
2139 xorl %ebx,%edi
2140 movl %ebp,%esi
2141 roll $5,%ebp
2142 movdqa %xmm3,%xmm8
2143 addl %edi,%edx
2144 xorl %ebx,%esi
2145 movdqa %xmm9,32(%rsp)
2146 rorl $7,%eax
2147 addl %ebp,%edx
2148 addl 56(%rsp),%ecx
2149 pslld $2,%xmm3
2150 xorl %eax,%esi
2151 movl %edx,%edi
2152 psrld $30,%xmm8
2153 roll $5,%edx
2154 addl %esi,%ecx
2155 xorl %eax,%edi
2156 rorl $7,%ebp
2157 por %xmm8,%xmm3
2158 addl %edx,%ecx
2159 addl 60(%rsp),%ebx
2160 xorl %ebp,%edi
2161 movl %ecx,%esi
2162 roll $5,%ecx
2163 addl %edi,%ebx
2164 xorl %ebp,%esi
2165 rorl $7,%edx
2166 addl %ecx,%ebx
2167 addl 0(%rsp),%eax
2168 xorl %edx,%esi
2169 movl %ebx,%edi
2170 roll $5,%ebx
2171 paddd %xmm3,%xmm10
2172 addl %esi,%eax
2173 xorl %edx,%edi
2174 movdqa %xmm10,48(%rsp)
2175 rorl $7,%ecx
2176 addl %ebx,%eax
2177 addl 4(%rsp),%ebp
2178 xorl %ecx,%edi
2179 movl %eax,%esi
2180 roll $5,%eax
2181 addl %edi,%ebp
2182 xorl %ecx,%esi
2183 rorl $7,%ebx
2184 addl %eax,%ebp
2185 addl 8(%rsp),%edx
2186 xorl %ebx,%esi
2187 movl %ebp,%edi
2188 roll $5,%ebp
2189 addl %esi,%edx
2190 xorl %ebx,%edi
2191 rorl $7,%eax
2192 addl %ebp,%edx
2193 addl 12(%rsp),%ecx
2194 xorl %eax,%edi
2195 movl %edx,%esi
2196 roll $5,%edx
2197 addl %edi,%ecx
2198 xorl %eax,%esi
2199 rorl $7,%ebp
2200 addl %edx,%ecx
2201 cmpq %r10,%r9
2202 je .Ldone_ssse3
2203 movdqa 64(%r14),%xmm6
2204 movdqa -64(%r14),%xmm9
2205 movdqu 0(%r9),%xmm0
2206 movdqu 16(%r9),%xmm1
2207 movdqu 32(%r9),%xmm2
2208 movdqu 48(%r9),%xmm3
2209.byte 102,15,56,0,198
2210 addq $64,%r9
2211 addl 16(%rsp),%ebx
2212 xorl %ebp,%esi
2213 movl %ecx,%edi
2214.byte 102,15,56,0,206
2215 roll $5,%ecx
2216 addl %esi,%ebx
2217 xorl %ebp,%edi
2218 rorl $7,%edx
2219 paddd %xmm9,%xmm0
2220 addl %ecx,%ebx
2221 addl 20(%rsp),%eax
2222 xorl %edx,%edi
2223 movl %ebx,%esi
2224 movdqa %xmm0,0(%rsp)
2225 roll $5,%ebx
2226 addl %edi,%eax
2227 xorl %edx,%esi
2228 rorl $7,%ecx
2229 psubd %xmm9,%xmm0
2230 addl %ebx,%eax
2231 addl 24(%rsp),%ebp
2232 xorl %ecx,%esi
2233 movl %eax,%edi
2234 roll $5,%eax
2235 addl %esi,%ebp
2236 xorl %ecx,%edi
2237 rorl $7,%ebx
2238 addl %eax,%ebp
2239 addl 28(%rsp),%edx
2240 xorl %ebx,%edi
2241 movl %ebp,%esi
2242 roll $5,%ebp
2243 addl %edi,%edx
2244 xorl %ebx,%esi
2245 rorl $7,%eax
2246 addl %ebp,%edx
2247 addl 32(%rsp),%ecx
2248 xorl %eax,%esi
2249 movl %edx,%edi
2250.byte 102,15,56,0,214
2251 roll $5,%edx
2252 addl %esi,%ecx
2253 xorl %eax,%edi
2254 rorl $7,%ebp
2255 paddd %xmm9,%xmm1
2256 addl %edx,%ecx
2257 addl 36(%rsp),%ebx
2258 xorl %ebp,%edi
2259 movl %ecx,%esi
2260 movdqa %xmm1,16(%rsp)
2261 roll $5,%ecx
2262 addl %edi,%ebx
2263 xorl %ebp,%esi
2264 rorl $7,%edx
2265 psubd %xmm9,%xmm1
2266 addl %ecx,%ebx
2267 addl 40(%rsp),%eax
2268 xorl %edx,%esi
2269 movl %ebx,%edi
2270 roll $5,%ebx
2271 addl %esi,%eax
2272 xorl %edx,%edi
2273 rorl $7,%ecx
2274 addl %ebx,%eax
2275 addl 44(%rsp),%ebp
2276 xorl %ecx,%edi
2277 movl %eax,%esi
2278 roll $5,%eax
2279 addl %edi,%ebp
2280 xorl %ecx,%esi
2281 rorl $7,%ebx
2282 addl %eax,%ebp
2283 addl 48(%rsp),%edx
2284 xorl %ebx,%esi
2285 movl %ebp,%edi
2286.byte 102,15,56,0,222
2287 roll $5,%ebp
2288 addl %esi,%edx
2289 xorl %ebx,%edi
2290 rorl $7,%eax
2291 paddd %xmm9,%xmm2
2292 addl %ebp,%edx
2293 addl 52(%rsp),%ecx
2294 xorl %eax,%edi
2295 movl %edx,%esi
2296 movdqa %xmm2,32(%rsp)
2297 roll $5,%edx
2298 addl %edi,%ecx
2299 xorl %eax,%esi
2300 rorl $7,%ebp
2301 psubd %xmm9,%xmm2
2302 addl %edx,%ecx
2303 addl 56(%rsp),%ebx
2304 xorl %ebp,%esi
2305 movl %ecx,%edi
2306 roll $5,%ecx
2307 addl %esi,%ebx
2308 xorl %ebp,%edi
2309 rorl $7,%edx
2310 addl %ecx,%ebx
2311 addl 60(%rsp),%eax
2312 xorl %edx,%edi
2313 movl %ebx,%esi
2314 roll $5,%ebx
2315 addl %edi,%eax
2316 rorl $7,%ecx
2317 addl %ebx,%eax
2318 addl 0(%r8),%eax
2319 addl 4(%r8),%esi
2320 addl 8(%r8),%ecx
2321 addl 12(%r8),%edx
2322 movl %eax,0(%r8)
2323 addl 16(%r8),%ebp
2324 movl %esi,4(%r8)
2325 movl %esi,%ebx
2326 movl %ecx,8(%r8)
2327 movl %ecx,%edi
2328 movl %edx,12(%r8)
2329 xorl %edx,%edi
2330 movl %ebp,16(%r8)
2331 andl %edi,%esi
2332 jmp .Loop_ssse3
2333
2334.align 16
2335.Ldone_ssse3:
2336 addl 16(%rsp),%ebx
2337 xorl %ebp,%esi
2338 movl %ecx,%edi
2339 roll $5,%ecx
2340 addl %esi,%ebx
2341 xorl %ebp,%edi
2342 rorl $7,%edx
2343 addl %ecx,%ebx
2344 addl 20(%rsp),%eax
2345 xorl %edx,%edi
2346 movl %ebx,%esi
2347 roll $5,%ebx
2348 addl %edi,%eax
2349 xorl %edx,%esi
2350 rorl $7,%ecx
2351 addl %ebx,%eax
2352 addl 24(%rsp),%ebp
2353 xorl %ecx,%esi
2354 movl %eax,%edi
2355 roll $5,%eax
2356 addl %esi,%ebp
2357 xorl %ecx,%edi
2358 rorl $7,%ebx
2359 addl %eax,%ebp
2360 addl 28(%rsp),%edx
2361 xorl %ebx,%edi
2362 movl %ebp,%esi
2363 roll $5,%ebp
2364 addl %edi,%edx
2365 xorl %ebx,%esi
2366 rorl $7,%eax
2367 addl %ebp,%edx
2368 addl 32(%rsp),%ecx
2369 xorl %eax,%esi
2370 movl %edx,%edi
2371 roll $5,%edx
2372 addl %esi,%ecx
2373 xorl %eax,%edi
2374 rorl $7,%ebp
2375 addl %edx,%ecx
2376 addl 36(%rsp),%ebx
2377 xorl %ebp,%edi
2378 movl %ecx,%esi
2379 roll $5,%ecx
2380 addl %edi,%ebx
2381 xorl %ebp,%esi
2382 rorl $7,%edx
2383 addl %ecx,%ebx
2384 addl 40(%rsp),%eax
2385 xorl %edx,%esi
2386 movl %ebx,%edi
2387 roll $5,%ebx
2388 addl %esi,%eax
2389 xorl %edx,%edi
2390 rorl $7,%ecx
2391 addl %ebx,%eax
2392 addl 44(%rsp),%ebp
2393 xorl %ecx,%edi
2394 movl %eax,%esi
2395 roll $5,%eax
2396 addl %edi,%ebp
2397 xorl %ecx,%esi
2398 rorl $7,%ebx
2399 addl %eax,%ebp
2400 addl 48(%rsp),%edx
2401 xorl %ebx,%esi
2402 movl %ebp,%edi
2403 roll $5,%ebp
2404 addl %esi,%edx
2405 xorl %ebx,%edi
2406 rorl $7,%eax
2407 addl %ebp,%edx
2408 addl 52(%rsp),%ecx
2409 xorl %eax,%edi
2410 movl %edx,%esi
2411 roll $5,%edx
2412 addl %edi,%ecx
2413 xorl %eax,%esi
2414 rorl $7,%ebp
2415 addl %edx,%ecx
2416 addl 56(%rsp),%ebx
2417 xorl %ebp,%esi
2418 movl %ecx,%edi
2419 roll $5,%ecx
2420 addl %esi,%ebx
2421 xorl %ebp,%edi
2422 rorl $7,%edx
2423 addl %ecx,%ebx
2424 addl 60(%rsp),%eax
2425 xorl %edx,%edi
2426 movl %ebx,%esi
2427 roll $5,%ebx
2428 addl %edi,%eax
2429 rorl $7,%ecx
2430 addl %ebx,%eax
2431 addl 0(%r8),%eax
2432 addl 4(%r8),%esi
2433 addl 8(%r8),%ecx
2434 movl %eax,0(%r8)
2435 addl 12(%r8),%edx
2436 movl %esi,4(%r8)
2437 addl 16(%r8),%ebp
2438 movl %ecx,8(%r8)
2439 movl %edx,12(%r8)
2440 movl %ebp,16(%r8)
2441 movq -40(%r11),%r14
2442.cfi_restore %r14
2443 movq -32(%r11),%r13
2444.cfi_restore %r13
2445 movq -24(%r11),%r12
2446.cfi_restore %r12
2447 movq -16(%r11),%rbp
2448.cfi_restore %rbp
2449 movq -8(%r11),%rbx
2450.cfi_restore %rbx
2451 leaq (%r11),%rsp
2452.cfi_def_cfa_register %rsp
2453.Lepilogue_ssse3:
2454 .byte 0xf3,0xc3
2455.cfi_endproc
2456.size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2457.type sha1_block_data_order_avx,@function
2458.align 16
2459sha1_block_data_order_avx:
2460_avx_shortcut:
2461.cfi_startproc
2462 movq %rsp,%r11
2463.cfi_def_cfa_register %r11
2464 pushq %rbx
2465.cfi_offset %rbx,-16
2466 pushq %rbp
2467.cfi_offset %rbp,-24
2468 pushq %r12
2469.cfi_offset %r12,-32
2470 pushq %r13
2471.cfi_offset %r13,-40
2472 pushq %r14
2473.cfi_offset %r14,-48
2474 leaq -64(%rsp),%rsp
2475 vzeroupper
2476 andq $-64,%rsp
2477 movq %rdi,%r8
2478 movq %rsi,%r9
2479 movq %rdx,%r10
2480
2481 shlq $6,%r10
2482 addq %r9,%r10
2483 leaq K_XX_XX+64(%rip),%r14
2484
2485 movl 0(%r8),%eax
2486 movl 4(%r8),%ebx
2487 movl 8(%r8),%ecx
2488 movl 12(%r8),%edx
2489 movl %ebx,%esi
2490 movl 16(%r8),%ebp
2491 movl %ecx,%edi
2492 xorl %edx,%edi
2493 andl %edi,%esi
2494
2495 vmovdqa 64(%r14),%xmm6
2496 vmovdqa -64(%r14),%xmm11
2497 vmovdqu 0(%r9),%xmm0
2498 vmovdqu 16(%r9),%xmm1
2499 vmovdqu 32(%r9),%xmm2
2500 vmovdqu 48(%r9),%xmm3
2501 vpshufb %xmm6,%xmm0,%xmm0
2502 addq $64,%r9
2503 vpshufb %xmm6,%xmm1,%xmm1
2504 vpshufb %xmm6,%xmm2,%xmm2
2505 vpshufb %xmm6,%xmm3,%xmm3
2506 vpaddd %xmm11,%xmm0,%xmm4
2507 vpaddd %xmm11,%xmm1,%xmm5
2508 vpaddd %xmm11,%xmm2,%xmm6
2509 vmovdqa %xmm4,0(%rsp)
2510 vmovdqa %xmm5,16(%rsp)
2511 vmovdqa %xmm6,32(%rsp)
2512 jmp .Loop_avx
2513.align 16
2514.Loop_avx:
2515 shrdl $2,%ebx,%ebx
2516 xorl %edx,%esi
2517 vpalignr $8,%xmm0,%xmm1,%xmm4
2518 movl %eax,%edi
2519 addl 0(%rsp),%ebp
2520 vpaddd %xmm3,%xmm11,%xmm9
2521 xorl %ecx,%ebx
2522 shldl $5,%eax,%eax
2523 vpsrldq $4,%xmm3,%xmm8
2524 addl %esi,%ebp
2525 andl %ebx,%edi
2526 vpxor %xmm0,%xmm4,%xmm4
2527 xorl %ecx,%ebx
2528 addl %eax,%ebp
2529 vpxor %xmm2,%xmm8,%xmm8
2530 shrdl $7,%eax,%eax
2531 xorl %ecx,%edi
2532 movl %ebp,%esi
2533 addl 4(%rsp),%edx
2534 vpxor %xmm8,%xmm4,%xmm4
2535 xorl %ebx,%eax
2536 shldl $5,%ebp,%ebp
2537 vmovdqa %xmm9,48(%rsp)
2538 addl %edi,%edx
2539 andl %eax,%esi
2540 vpsrld $31,%xmm4,%xmm8
2541 xorl %ebx,%eax
2542 addl %ebp,%edx
2543 shrdl $7,%ebp,%ebp
2544 xorl %ebx,%esi
2545 vpslldq $12,%xmm4,%xmm10
2546 vpaddd %xmm4,%xmm4,%xmm4
2547 movl %edx,%edi
2548 addl 8(%rsp),%ecx
2549 xorl %eax,%ebp
2550 shldl $5,%edx,%edx
2551 vpsrld $30,%xmm10,%xmm9
2552 vpor %xmm8,%xmm4,%xmm4
2553 addl %esi,%ecx
2554 andl %ebp,%edi
2555 xorl %eax,%ebp
2556 addl %edx,%ecx
2557 vpslld $2,%xmm10,%xmm10
2558 vpxor %xmm9,%xmm4,%xmm4
2559 shrdl $7,%edx,%edx
2560 xorl %eax,%edi
2561 movl %ecx,%esi
2562 addl 12(%rsp),%ebx
2563 vpxor %xmm10,%xmm4,%xmm4
2564 xorl %ebp,%edx
2565 shldl $5,%ecx,%ecx
2566 addl %edi,%ebx
2567 andl %edx,%esi
2568 xorl %ebp,%edx
2569 addl %ecx,%ebx
2570 shrdl $7,%ecx,%ecx
2571 xorl %ebp,%esi
2572 vpalignr $8,%xmm1,%xmm2,%xmm5
2573 movl %ebx,%edi
2574 addl 16(%rsp),%eax
2575 vpaddd %xmm4,%xmm11,%xmm9
2576 xorl %edx,%ecx
2577 shldl $5,%ebx,%ebx
2578 vpsrldq $4,%xmm4,%xmm8
2579 addl %esi,%eax
2580 andl %ecx,%edi
2581 vpxor %xmm1,%xmm5,%xmm5
2582 xorl %edx,%ecx
2583 addl %ebx,%eax
2584 vpxor %xmm3,%xmm8,%xmm8
2585 shrdl $7,%ebx,%ebx
2586 xorl %edx,%edi
2587 movl %eax,%esi
2588 addl 20(%rsp),%ebp
2589 vpxor %xmm8,%xmm5,%xmm5
2590 xorl %ecx,%ebx
2591 shldl $5,%eax,%eax
2592 vmovdqa %xmm9,0(%rsp)
2593 addl %edi,%ebp
2594 andl %ebx,%esi
2595 vpsrld $31,%xmm5,%xmm8
2596 xorl %ecx,%ebx
2597 addl %eax,%ebp
2598 shrdl $7,%eax,%eax
2599 xorl %ecx,%esi
2600 vpslldq $12,%xmm5,%xmm10
2601 vpaddd %xmm5,%xmm5,%xmm5
2602 movl %ebp,%edi
2603 addl 24(%rsp),%edx
2604 xorl %ebx,%eax
2605 shldl $5,%ebp,%ebp
2606 vpsrld $30,%xmm10,%xmm9
2607 vpor %xmm8,%xmm5,%xmm5
2608 addl %esi,%edx
2609 andl %eax,%edi
2610 xorl %ebx,%eax
2611 addl %ebp,%edx
2612 vpslld $2,%xmm10,%xmm10
2613 vpxor %xmm9,%xmm5,%xmm5
2614 shrdl $7,%ebp,%ebp
2615 xorl %ebx,%edi
2616 movl %edx,%esi
2617 addl 28(%rsp),%ecx
2618 vpxor %xmm10,%xmm5,%xmm5
2619 xorl %eax,%ebp
2620 shldl $5,%edx,%edx
2621 vmovdqa -32(%r14),%xmm11
2622 addl %edi,%ecx
2623 andl %ebp,%esi
2624 xorl %eax,%ebp
2625 addl %edx,%ecx
2626 shrdl $7,%edx,%edx
2627 xorl %eax,%esi
2628 vpalignr $8,%xmm2,%xmm3,%xmm6
2629 movl %ecx,%edi
2630 addl 32(%rsp),%ebx
2631 vpaddd %xmm5,%xmm11,%xmm9
2632 xorl %ebp,%edx
2633 shldl $5,%ecx,%ecx
2634 vpsrldq $4,%xmm5,%xmm8
2635 addl %esi,%ebx
2636 andl %edx,%edi
2637 vpxor %xmm2,%xmm6,%xmm6
2638 xorl %ebp,%edx
2639 addl %ecx,%ebx
2640 vpxor %xmm4,%xmm8,%xmm8
2641 shrdl $7,%ecx,%ecx
2642 xorl %ebp,%edi
2643 movl %ebx,%esi
2644 addl 36(%rsp),%eax
2645 vpxor %xmm8,%xmm6,%xmm6
2646 xorl %edx,%ecx
2647 shldl $5,%ebx,%ebx
2648 vmovdqa %xmm9,16(%rsp)
2649 addl %edi,%eax
2650 andl %ecx,%esi
2651 vpsrld $31,%xmm6,%xmm8
2652 xorl %edx,%ecx
2653 addl %ebx,%eax
2654 shrdl $7,%ebx,%ebx
2655 xorl %edx,%esi
2656 vpslldq $12,%xmm6,%xmm10
2657 vpaddd %xmm6,%xmm6,%xmm6
2658 movl %eax,%edi
2659 addl 40(%rsp),%ebp
2660 xorl %ecx,%ebx
2661 shldl $5,%eax,%eax
2662 vpsrld $30,%xmm10,%xmm9
2663 vpor %xmm8,%xmm6,%xmm6
2664 addl %esi,%ebp
2665 andl %ebx,%edi
2666 xorl %ecx,%ebx
2667 addl %eax,%ebp
2668 vpslld $2,%xmm10,%xmm10
2669 vpxor %xmm9,%xmm6,%xmm6
2670 shrdl $7,%eax,%eax
2671 xorl %ecx,%edi
2672 movl %ebp,%esi
2673 addl 44(%rsp),%edx
2674 vpxor %xmm10,%xmm6,%xmm6
2675 xorl %ebx,%eax
2676 shldl $5,%ebp,%ebp
2677 addl %edi,%edx
2678 andl %eax,%esi
2679 xorl %ebx,%eax
2680 addl %ebp,%edx
2681 shrdl $7,%ebp,%ebp
2682 xorl %ebx,%esi
2683 vpalignr $8,%xmm3,%xmm4,%xmm7
2684 movl %edx,%edi
2685 addl 48(%rsp),%ecx
2686 vpaddd %xmm6,%xmm11,%xmm9
2687 xorl %eax,%ebp
2688 shldl $5,%edx,%edx
2689 vpsrldq $4,%xmm6,%xmm8
2690 addl %esi,%ecx
2691 andl %ebp,%edi
2692 vpxor %xmm3,%xmm7,%xmm7
2693 xorl %eax,%ebp
2694 addl %edx,%ecx
2695 vpxor %xmm5,%xmm8,%xmm8
2696 shrdl $7,%edx,%edx
2697 xorl %eax,%edi
2698 movl %ecx,%esi
2699 addl 52(%rsp),%ebx
2700 vpxor %xmm8,%xmm7,%xmm7
2701 xorl %ebp,%edx
2702 shldl $5,%ecx,%ecx
2703 vmovdqa %xmm9,32(%rsp)
2704 addl %edi,%ebx
2705 andl %edx,%esi
2706 vpsrld $31,%xmm7,%xmm8
2707 xorl %ebp,%edx
2708 addl %ecx,%ebx
2709 shrdl $7,%ecx,%ecx
2710 xorl %ebp,%esi
2711 vpslldq $12,%xmm7,%xmm10
2712 vpaddd %xmm7,%xmm7,%xmm7
2713 movl %ebx,%edi
2714 addl 56(%rsp),%eax
2715 xorl %edx,%ecx
2716 shldl $5,%ebx,%ebx
2717 vpsrld $30,%xmm10,%xmm9
2718 vpor %xmm8,%xmm7,%xmm7
2719 addl %esi,%eax
2720 andl %ecx,%edi
2721 xorl %edx,%ecx
2722 addl %ebx,%eax
2723 vpslld $2,%xmm10,%xmm10
2724 vpxor %xmm9,%xmm7,%xmm7
2725 shrdl $7,%ebx,%ebx
2726 xorl %edx,%edi
2727 movl %eax,%esi
2728 addl 60(%rsp),%ebp
2729 vpxor %xmm10,%xmm7,%xmm7
2730 xorl %ecx,%ebx
2731 shldl $5,%eax,%eax
2732 addl %edi,%ebp
2733 andl %ebx,%esi
2734 xorl %ecx,%ebx
2735 addl %eax,%ebp
2736 vpalignr $8,%xmm6,%xmm7,%xmm8
2737 vpxor %xmm4,%xmm0,%xmm0
2738 shrdl $7,%eax,%eax
2739 xorl %ecx,%esi
2740 movl %ebp,%edi
2741 addl 0(%rsp),%edx
2742 vpxor %xmm1,%xmm0,%xmm0
2743 xorl %ebx,%eax
2744 shldl $5,%ebp,%ebp
2745 vpaddd %xmm7,%xmm11,%xmm9
2746 addl %esi,%edx
2747 andl %eax,%edi
2748 vpxor %xmm8,%xmm0,%xmm0
2749 xorl %ebx,%eax
2750 addl %ebp,%edx
2751 shrdl $7,%ebp,%ebp
2752 xorl %ebx,%edi
2753 vpsrld $30,%xmm0,%xmm8
2754 vmovdqa %xmm9,48(%rsp)
2755 movl %edx,%esi
2756 addl 4(%rsp),%ecx
2757 xorl %eax,%ebp
2758 shldl $5,%edx,%edx
2759 vpslld $2,%xmm0,%xmm0
2760 addl %edi,%ecx
2761 andl %ebp,%esi
2762 xorl %eax,%ebp
2763 addl %edx,%ecx
2764 shrdl $7,%edx,%edx
2765 xorl %eax,%esi
2766 movl %ecx,%edi
2767 addl 8(%rsp),%ebx
2768 vpor %xmm8,%xmm0,%xmm0
2769 xorl %ebp,%edx
2770 shldl $5,%ecx,%ecx
2771 addl %esi,%ebx
2772 andl %edx,%edi
2773 xorl %ebp,%edx
2774 addl %ecx,%ebx
2775 addl 12(%rsp),%eax
2776 xorl %ebp,%edi
2777 movl %ebx,%esi
2778 shldl $5,%ebx,%ebx
2779 addl %edi,%eax
2780 xorl %edx,%esi
2781 shrdl $7,%ecx,%ecx
2782 addl %ebx,%eax
2783 vpalignr $8,%xmm7,%xmm0,%xmm8
2784 vpxor %xmm5,%xmm1,%xmm1
2785 addl 16(%rsp),%ebp
2786 xorl %ecx,%esi
2787 movl %eax,%edi
2788 shldl $5,%eax,%eax
2789 vpxor %xmm2,%xmm1,%xmm1
2790 addl %esi,%ebp
2791 xorl %ecx,%edi
2792 vpaddd %xmm0,%xmm11,%xmm9
2793 shrdl $7,%ebx,%ebx
2794 addl %eax,%ebp
2795 vpxor %xmm8,%xmm1,%xmm1
2796 addl 20(%rsp),%edx
2797 xorl %ebx,%edi
2798 movl %ebp,%esi
2799 shldl $5,%ebp,%ebp
2800 vpsrld $30,%xmm1,%xmm8
2801 vmovdqa %xmm9,0(%rsp)
2802 addl %edi,%edx
2803 xorl %ebx,%esi
2804 shrdl $7,%eax,%eax
2805 addl %ebp,%edx
2806 vpslld $2,%xmm1,%xmm1
2807 addl 24(%rsp),%ecx
2808 xorl %eax,%esi
2809 movl %edx,%edi
2810 shldl $5,%edx,%edx
2811 addl %esi,%ecx
2812 xorl %eax,%edi
2813 shrdl $7,%ebp,%ebp
2814 addl %edx,%ecx
2815 vpor %xmm8,%xmm1,%xmm1
2816 addl 28(%rsp),%ebx
2817 xorl %ebp,%edi
2818 movl %ecx,%esi
2819 shldl $5,%ecx,%ecx
2820 addl %edi,%ebx
2821 xorl %ebp,%esi
2822 shrdl $7,%edx,%edx
2823 addl %ecx,%ebx
2824 vpalignr $8,%xmm0,%xmm1,%xmm8
2825 vpxor %xmm6,%xmm2,%xmm2
2826 addl 32(%rsp),%eax
2827 xorl %edx,%esi
2828 movl %ebx,%edi
2829 shldl $5,%ebx,%ebx
2830 vpxor %xmm3,%xmm2,%xmm2
2831 addl %esi,%eax
2832 xorl %edx,%edi
2833 vpaddd %xmm1,%xmm11,%xmm9
2834 vmovdqa 0(%r14),%xmm11
2835 shrdl $7,%ecx,%ecx
2836 addl %ebx,%eax
2837 vpxor %xmm8,%xmm2,%xmm2
2838 addl 36(%rsp),%ebp
2839 xorl %ecx,%edi
2840 movl %eax,%esi
2841 shldl $5,%eax,%eax
2842 vpsrld $30,%xmm2,%xmm8
2843 vmovdqa %xmm9,16(%rsp)
2844 addl %edi,%ebp
2845 xorl %ecx,%esi
2846 shrdl $7,%ebx,%ebx
2847 addl %eax,%ebp
2848 vpslld $2,%xmm2,%xmm2
2849 addl 40(%rsp),%edx
2850 xorl %ebx,%esi
2851 movl %ebp,%edi
2852 shldl $5,%ebp,%ebp
2853 addl %esi,%edx
2854 xorl %ebx,%edi
2855 shrdl $7,%eax,%eax
2856 addl %ebp,%edx
2857 vpor %xmm8,%xmm2,%xmm2
2858 addl 44(%rsp),%ecx
2859 xorl %eax,%edi
2860 movl %edx,%esi
2861 shldl $5,%edx,%edx
2862 addl %edi,%ecx
2863 xorl %eax,%esi
2864 shrdl $7,%ebp,%ebp
2865 addl %edx,%ecx
2866 vpalignr $8,%xmm1,%xmm2,%xmm8
2867 vpxor %xmm7,%xmm3,%xmm3
2868 addl 48(%rsp),%ebx
2869 xorl %ebp,%esi
2870 movl %ecx,%edi
2871 shldl $5,%ecx,%ecx
2872 vpxor %xmm4,%xmm3,%xmm3
2873 addl %esi,%ebx
2874 xorl %ebp,%edi
2875 vpaddd %xmm2,%xmm11,%xmm9
2876 shrdl $7,%edx,%edx
2877 addl %ecx,%ebx
2878 vpxor %xmm8,%xmm3,%xmm3
2879 addl 52(%rsp),%eax
2880 xorl %edx,%edi
2881 movl %ebx,%esi
2882 shldl $5,%ebx,%ebx
2883 vpsrld $30,%xmm3,%xmm8
2884 vmovdqa %xmm9,32(%rsp)
2885 addl %edi,%eax
2886 xorl %edx,%esi
2887 shrdl $7,%ecx,%ecx
2888 addl %ebx,%eax
2889 vpslld $2,%xmm3,%xmm3
2890 addl 56(%rsp),%ebp
2891 xorl %ecx,%esi
2892 movl %eax,%edi
2893 shldl $5,%eax,%eax
2894 addl %esi,%ebp
2895 xorl %ecx,%edi
2896 shrdl $7,%ebx,%ebx
2897 addl %eax,%ebp
2898 vpor %xmm8,%xmm3,%xmm3
2899 addl 60(%rsp),%edx
2900 xorl %ebx,%edi
2901 movl %ebp,%esi
2902 shldl $5,%ebp,%ebp
2903 addl %edi,%edx
2904 xorl %ebx,%esi
2905 shrdl $7,%eax,%eax
2906 addl %ebp,%edx
2907 vpalignr $8,%xmm2,%xmm3,%xmm8
2908 vpxor %xmm0,%xmm4,%xmm4
2909 addl 0(%rsp),%ecx
2910 xorl %eax,%esi
2911 movl %edx,%edi
2912 shldl $5,%edx,%edx
2913 vpxor %xmm5,%xmm4,%xmm4
2914 addl %esi,%ecx
2915 xorl %eax,%edi
2916 vpaddd %xmm3,%xmm11,%xmm9
2917 shrdl $7,%ebp,%ebp
2918 addl %edx,%ecx
2919 vpxor %xmm8,%xmm4,%xmm4
2920 addl 4(%rsp),%ebx
2921 xorl %ebp,%edi
2922 movl %ecx,%esi
2923 shldl $5,%ecx,%ecx
2924 vpsrld $30,%xmm4,%xmm8
2925 vmovdqa %xmm9,48(%rsp)
2926 addl %edi,%ebx
2927 xorl %ebp,%esi
2928 shrdl $7,%edx,%edx
2929 addl %ecx,%ebx
2930 vpslld $2,%xmm4,%xmm4
2931 addl 8(%rsp),%eax
2932 xorl %edx,%esi
2933 movl %ebx,%edi
2934 shldl $5,%ebx,%ebx
2935 addl %esi,%eax
2936 xorl %edx,%edi
2937 shrdl $7,%ecx,%ecx
2938 addl %ebx,%eax
2939 vpor %xmm8,%xmm4,%xmm4
2940 addl 12(%rsp),%ebp
2941 xorl %ecx,%edi
2942 movl %eax,%esi
2943 shldl $5,%eax,%eax
2944 addl %edi,%ebp
2945 xorl %ecx,%esi
2946 shrdl $7,%ebx,%ebx
2947 addl %eax,%ebp
2948 vpalignr $8,%xmm3,%xmm4,%xmm8
2949 vpxor %xmm1,%xmm5,%xmm5
2950 addl 16(%rsp),%edx
2951 xorl %ebx,%esi
2952 movl %ebp,%edi
2953 shldl $5,%ebp,%ebp
2954 vpxor %xmm6,%xmm5,%xmm5
2955 addl %esi,%edx
2956 xorl %ebx,%edi
2957 vpaddd %xmm4,%xmm11,%xmm9
2958 shrdl $7,%eax,%eax
2959 addl %ebp,%edx
2960 vpxor %xmm8,%xmm5,%xmm5
2961 addl 20(%rsp),%ecx
2962 xorl %eax,%edi
2963 movl %edx,%esi
2964 shldl $5,%edx,%edx
2965 vpsrld $30,%xmm5,%xmm8
2966 vmovdqa %xmm9,0(%rsp)
2967 addl %edi,%ecx
2968 xorl %eax,%esi
2969 shrdl $7,%ebp,%ebp
2970 addl %edx,%ecx
2971 vpslld $2,%xmm5,%xmm5
2972 addl 24(%rsp),%ebx
2973 xorl %ebp,%esi
2974 movl %ecx,%edi
2975 shldl $5,%ecx,%ecx
2976 addl %esi,%ebx
2977 xorl %ebp,%edi
2978 shrdl $7,%edx,%edx
2979 addl %ecx,%ebx
2980 vpor %xmm8,%xmm5,%xmm5
2981 addl 28(%rsp),%eax
2982 shrdl $7,%ecx,%ecx
2983 movl %ebx,%esi
2984 xorl %edx,%edi
2985 shldl $5,%ebx,%ebx
2986 addl %edi,%eax
2987 xorl %ecx,%esi
2988 xorl %edx,%ecx
2989 addl %ebx,%eax
2990 vpalignr $8,%xmm4,%xmm5,%xmm8
2991 vpxor %xmm2,%xmm6,%xmm6
2992 addl 32(%rsp),%ebp
2993 andl %ecx,%esi
2994 xorl %edx,%ecx
2995 shrdl $7,%ebx,%ebx
2996 vpxor %xmm7,%xmm6,%xmm6
2997 movl %eax,%edi
2998 xorl %ecx,%esi
2999 vpaddd %xmm5,%xmm11,%xmm9
3000 shldl $5,%eax,%eax
3001 addl %esi,%ebp
3002 vpxor %xmm8,%xmm6,%xmm6
3003 xorl %ebx,%edi
3004 xorl %ecx,%ebx
3005 addl %eax,%ebp
3006 addl 36(%rsp),%edx
3007 vpsrld $30,%xmm6,%xmm8
3008 vmovdqa %xmm9,16(%rsp)
3009 andl %ebx,%edi
3010 xorl %ecx,%ebx
3011 shrdl $7,%eax,%eax
3012 movl %ebp,%esi
3013 vpslld $2,%xmm6,%xmm6
3014 xorl %ebx,%edi
3015 shldl $5,%ebp,%ebp
3016 addl %edi,%edx
3017 xorl %eax,%esi
3018 xorl %ebx,%eax
3019 addl %ebp,%edx
3020 addl 40(%rsp),%ecx
3021 andl %eax,%esi
3022 vpor %xmm8,%xmm6,%xmm6
3023 xorl %ebx,%eax
3024 shrdl $7,%ebp,%ebp
3025 movl %edx,%edi
3026 xorl %eax,%esi
3027 shldl $5,%edx,%edx
3028 addl %esi,%ecx
3029 xorl %ebp,%edi
3030 xorl %eax,%ebp
3031 addl %edx,%ecx
3032 addl 44(%rsp),%ebx
3033 andl %ebp,%edi
3034 xorl %eax,%ebp
3035 shrdl $7,%edx,%edx
3036 movl %ecx,%esi
3037 xorl %ebp,%edi
3038 shldl $5,%ecx,%ecx
3039 addl %edi,%ebx
3040 xorl %edx,%esi
3041 xorl %ebp,%edx
3042 addl %ecx,%ebx
3043 vpalignr $8,%xmm5,%xmm6,%xmm8
3044 vpxor %xmm3,%xmm7,%xmm7
3045 addl 48(%rsp),%eax
3046 andl %edx,%esi
3047 xorl %ebp,%edx
3048 shrdl $7,%ecx,%ecx
3049 vpxor %xmm0,%xmm7,%xmm7
3050 movl %ebx,%edi
3051 xorl %edx,%esi
3052 vpaddd %xmm6,%xmm11,%xmm9
3053 vmovdqa 32(%r14),%xmm11
3054 shldl $5,%ebx,%ebx
3055 addl %esi,%eax
3056 vpxor %xmm8,%xmm7,%xmm7
3057 xorl %ecx,%edi
3058 xorl %edx,%ecx
3059 addl %ebx,%eax
3060 addl 52(%rsp),%ebp
3061 vpsrld $30,%xmm7,%xmm8
3062 vmovdqa %xmm9,32(%rsp)
3063 andl %ecx,%edi
3064 xorl %edx,%ecx
3065 shrdl $7,%ebx,%ebx
3066 movl %eax,%esi
3067 vpslld $2,%xmm7,%xmm7
3068 xorl %ecx,%edi
3069 shldl $5,%eax,%eax
3070 addl %edi,%ebp
3071 xorl %ebx,%esi
3072 xorl %ecx,%ebx
3073 addl %eax,%ebp
3074 addl 56(%rsp),%edx
3075 andl %ebx,%esi
3076 vpor %xmm8,%xmm7,%xmm7
3077 xorl %ecx,%ebx
3078 shrdl $7,%eax,%eax
3079 movl %ebp,%edi
3080 xorl %ebx,%esi
3081 shldl $5,%ebp,%ebp
3082 addl %esi,%edx
3083 xorl %eax,%edi
3084 xorl %ebx,%eax
3085 addl %ebp,%edx
3086 addl 60(%rsp),%ecx
3087 andl %eax,%edi
3088 xorl %ebx,%eax
3089 shrdl $7,%ebp,%ebp
3090 movl %edx,%esi
3091 xorl %eax,%edi
3092 shldl $5,%edx,%edx
3093 addl %edi,%ecx
3094 xorl %ebp,%esi
3095 xorl %eax,%ebp
3096 addl %edx,%ecx
3097 vpalignr $8,%xmm6,%xmm7,%xmm8
3098 vpxor %xmm4,%xmm0,%xmm0
3099 addl 0(%rsp),%ebx
3100 andl %ebp,%esi
3101 xorl %eax,%ebp
3102 shrdl $7,%edx,%edx
3103 vpxor %xmm1,%xmm0,%xmm0
3104 movl %ecx,%edi
3105 xorl %ebp,%esi
3106 vpaddd %xmm7,%xmm11,%xmm9
3107 shldl $5,%ecx,%ecx
3108 addl %esi,%ebx
3109 vpxor %xmm8,%xmm0,%xmm0
3110 xorl %edx,%edi
3111 xorl %ebp,%edx
3112 addl %ecx,%ebx
3113 addl 4(%rsp),%eax
3114 vpsrld $30,%xmm0,%xmm8
3115 vmovdqa %xmm9,48(%rsp)
3116 andl %edx,%edi
3117 xorl %ebp,%edx
3118 shrdl $7,%ecx,%ecx
3119 movl %ebx,%esi
3120 vpslld $2,%xmm0,%xmm0
3121 xorl %edx,%edi
3122 shldl $5,%ebx,%ebx
3123 addl %edi,%eax
3124 xorl %ecx,%esi
3125 xorl %edx,%ecx
3126 addl %ebx,%eax
3127 addl 8(%rsp),%ebp
3128 andl %ecx,%esi
3129 vpor %xmm8,%xmm0,%xmm0
3130 xorl %edx,%ecx
3131 shrdl $7,%ebx,%ebx
3132 movl %eax,%edi
3133 xorl %ecx,%esi
3134 shldl $5,%eax,%eax
3135 addl %esi,%ebp
3136 xorl %ebx,%edi
3137 xorl %ecx,%ebx
3138 addl %eax,%ebp
3139 addl 12(%rsp),%edx
3140 andl %ebx,%edi
3141 xorl %ecx,%ebx
3142 shrdl $7,%eax,%eax
3143 movl %ebp,%esi
3144 xorl %ebx,%edi
3145 shldl $5,%ebp,%ebp
3146 addl %edi,%edx
3147 xorl %eax,%esi
3148 xorl %ebx,%eax
3149 addl %ebp,%edx
3150 vpalignr $8,%xmm7,%xmm0,%xmm8
3151 vpxor %xmm5,%xmm1,%xmm1
3152 addl 16(%rsp),%ecx
3153 andl %eax,%esi
3154 xorl %ebx,%eax
3155 shrdl $7,%ebp,%ebp
3156 vpxor %xmm2,%xmm1,%xmm1
3157 movl %edx,%edi
3158 xorl %eax,%esi
3159 vpaddd %xmm0,%xmm11,%xmm9
3160 shldl $5,%edx,%edx
3161 addl %esi,%ecx
3162 vpxor %xmm8,%xmm1,%xmm1
3163 xorl %ebp,%edi
3164 xorl %eax,%ebp
3165 addl %edx,%ecx
3166 addl 20(%rsp),%ebx
3167 vpsrld $30,%xmm1,%xmm8
3168 vmovdqa %xmm9,0(%rsp)
3169 andl %ebp,%edi
3170 xorl %eax,%ebp
3171 shrdl $7,%edx,%edx
3172 movl %ecx,%esi
3173 vpslld $2,%xmm1,%xmm1
3174 xorl %ebp,%edi
3175 shldl $5,%ecx,%ecx
3176 addl %edi,%ebx
3177 xorl %edx,%esi
3178 xorl %ebp,%edx
3179 addl %ecx,%ebx
3180 addl 24(%rsp),%eax
3181 andl %edx,%esi
3182 vpor %xmm8,%xmm1,%xmm1
3183 xorl %ebp,%edx
3184 shrdl $7,%ecx,%ecx
3185 movl %ebx,%edi
3186 xorl %edx,%esi
3187 shldl $5,%ebx,%ebx
3188 addl %esi,%eax
3189 xorl %ecx,%edi
3190 xorl %edx,%ecx
3191 addl %ebx,%eax
3192 addl 28(%rsp),%ebp
3193 andl %ecx,%edi
3194 xorl %edx,%ecx
3195 shrdl $7,%ebx,%ebx
3196 movl %eax,%esi
3197 xorl %ecx,%edi
3198 shldl $5,%eax,%eax
3199 addl %edi,%ebp
3200 xorl %ebx,%esi
3201 xorl %ecx,%ebx
3202 addl %eax,%ebp
3203 vpalignr $8,%xmm0,%xmm1,%xmm8
3204 vpxor %xmm6,%xmm2,%xmm2
3205 addl 32(%rsp),%edx
3206 andl %ebx,%esi
3207 xorl %ecx,%ebx
3208 shrdl $7,%eax,%eax
3209 vpxor %xmm3,%xmm2,%xmm2
3210 movl %ebp,%edi
3211 xorl %ebx,%esi
3212 vpaddd %xmm1,%xmm11,%xmm9
3213 shldl $5,%ebp,%ebp
3214 addl %esi,%edx
3215 vpxor %xmm8,%xmm2,%xmm2
3216 xorl %eax,%edi
3217 xorl %ebx,%eax
3218 addl %ebp,%edx
3219 addl 36(%rsp),%ecx
3220 vpsrld $30,%xmm2,%xmm8
3221 vmovdqa %xmm9,16(%rsp)
3222 andl %eax,%edi
3223 xorl %ebx,%eax
3224 shrdl $7,%ebp,%ebp
3225 movl %edx,%esi
3226 vpslld $2,%xmm2,%xmm2
3227 xorl %eax,%edi
3228 shldl $5,%edx,%edx
3229 addl %edi,%ecx
3230 xorl %ebp,%esi
3231 xorl %eax,%ebp
3232 addl %edx,%ecx
3233 addl 40(%rsp),%ebx
3234 andl %ebp,%esi
3235 vpor %xmm8,%xmm2,%xmm2
3236 xorl %eax,%ebp
3237 shrdl $7,%edx,%edx
3238 movl %ecx,%edi
3239 xorl %ebp,%esi
3240 shldl $5,%ecx,%ecx
3241 addl %esi,%ebx
3242 xorl %edx,%edi
3243 xorl %ebp,%edx
3244 addl %ecx,%ebx
3245 addl 44(%rsp),%eax
3246 andl %edx,%edi
3247 xorl %ebp,%edx
3248 shrdl $7,%ecx,%ecx
3249 movl %ebx,%esi
3250 xorl %edx,%edi
3251 shldl $5,%ebx,%ebx
3252 addl %edi,%eax
3253 xorl %edx,%esi
3254 addl %ebx,%eax
3255 vpalignr $8,%xmm1,%xmm2,%xmm8
3256 vpxor %xmm7,%xmm3,%xmm3
3257 addl 48(%rsp),%ebp
3258 xorl %ecx,%esi
3259 movl %eax,%edi
3260 shldl $5,%eax,%eax
3261 vpxor %xmm4,%xmm3,%xmm3
3262 addl %esi,%ebp
3263 xorl %ecx,%edi
3264 vpaddd %xmm2,%xmm11,%xmm9
3265 shrdl $7,%ebx,%ebx
3266 addl %eax,%ebp
3267 vpxor %xmm8,%xmm3,%xmm3
3268 addl 52(%rsp),%edx
3269 xorl %ebx,%edi
3270 movl %ebp,%esi
3271 shldl $5,%ebp,%ebp
3272 vpsrld $30,%xmm3,%xmm8
3273 vmovdqa %xmm9,32(%rsp)
3274 addl %edi,%edx
3275 xorl %ebx,%esi
3276 shrdl $7,%eax,%eax
3277 addl %ebp,%edx
3278 vpslld $2,%xmm3,%xmm3
3279 addl 56(%rsp),%ecx
3280 xorl %eax,%esi
3281 movl %edx,%edi
3282 shldl $5,%edx,%edx
3283 addl %esi,%ecx
3284 xorl %eax,%edi
3285 shrdl $7,%ebp,%ebp
3286 addl %edx,%ecx
3287 vpor %xmm8,%xmm3,%xmm3
3288 addl 60(%rsp),%ebx
3289 xorl %ebp,%edi
3290 movl %ecx,%esi
3291 shldl $5,%ecx,%ecx
3292 addl %edi,%ebx
3293 xorl %ebp,%esi
3294 shrdl $7,%edx,%edx
3295 addl %ecx,%ebx
3296 addl 0(%rsp),%eax
3297 vpaddd %xmm3,%xmm11,%xmm9
3298 xorl %edx,%esi
3299 movl %ebx,%edi
3300 shldl $5,%ebx,%ebx
3301 addl %esi,%eax
3302 vmovdqa %xmm9,48(%rsp)
3303 xorl %edx,%edi
3304 shrdl $7,%ecx,%ecx
3305 addl %ebx,%eax
3306 addl 4(%rsp),%ebp
3307 xorl %ecx,%edi
3308 movl %eax,%esi
3309 shldl $5,%eax,%eax
3310 addl %edi,%ebp
3311 xorl %ecx,%esi
3312 shrdl $7,%ebx,%ebx
3313 addl %eax,%ebp
3314 addl 8(%rsp),%edx
3315 xorl %ebx,%esi
3316 movl %ebp,%edi
3317 shldl $5,%ebp,%ebp
3318 addl %esi,%edx
3319 xorl %ebx,%edi
3320 shrdl $7,%eax,%eax
3321 addl %ebp,%edx
3322 addl 12(%rsp),%ecx
3323 xorl %eax,%edi
3324 movl %edx,%esi
3325 shldl $5,%edx,%edx
3326 addl %edi,%ecx
3327 xorl %eax,%esi
3328 shrdl $7,%ebp,%ebp
3329 addl %edx,%ecx
3330 cmpq %r10,%r9
3331 je .Ldone_avx
3332 vmovdqa 64(%r14),%xmm6
3333 vmovdqa -64(%r14),%xmm11
3334 vmovdqu 0(%r9),%xmm0
3335 vmovdqu 16(%r9),%xmm1
3336 vmovdqu 32(%r9),%xmm2
3337 vmovdqu 48(%r9),%xmm3
3338 vpshufb %xmm6,%xmm0,%xmm0
3339 addq $64,%r9
3340 addl 16(%rsp),%ebx
3341 xorl %ebp,%esi
3342 vpshufb %xmm6,%xmm1,%xmm1
3343 movl %ecx,%edi
3344 shldl $5,%ecx,%ecx
3345 vpaddd %xmm11,%xmm0,%xmm4
3346 addl %esi,%ebx
3347 xorl %ebp,%edi
3348 shrdl $7,%edx,%edx
3349 addl %ecx,%ebx
3350 vmovdqa %xmm4,0(%rsp)
3351 addl 20(%rsp),%eax
3352 xorl %edx,%edi
3353 movl %ebx,%esi
3354 shldl $5,%ebx,%ebx
3355 addl %edi,%eax
3356 xorl %edx,%esi
3357 shrdl $7,%ecx,%ecx
3358 addl %ebx,%eax
3359 addl 24(%rsp),%ebp
3360 xorl %ecx,%esi
3361 movl %eax,%edi
3362 shldl $5,%eax,%eax
3363 addl %esi,%ebp
3364 xorl %ecx,%edi
3365 shrdl $7,%ebx,%ebx
3366 addl %eax,%ebp
3367 addl 28(%rsp),%edx
3368 xorl %ebx,%edi
3369 movl %ebp,%esi
3370 shldl $5,%ebp,%ebp
3371 addl %edi,%edx
3372 xorl %ebx,%esi
3373 shrdl $7,%eax,%eax
3374 addl %ebp,%edx
3375 addl 32(%rsp),%ecx
3376 xorl %eax,%esi
3377 vpshufb %xmm6,%xmm2,%xmm2
3378 movl %edx,%edi
3379 shldl $5,%edx,%edx
3380 vpaddd %xmm11,%xmm1,%xmm5
3381 addl %esi,%ecx
3382 xorl %eax,%edi
3383 shrdl $7,%ebp,%ebp
3384 addl %edx,%ecx
3385 vmovdqa %xmm5,16(%rsp)
3386 addl 36(%rsp),%ebx
3387 xorl %ebp,%edi
3388 movl %ecx,%esi
3389 shldl $5,%ecx,%ecx
3390 addl %edi,%ebx
3391 xorl %ebp,%esi
3392 shrdl $7,%edx,%edx
3393 addl %ecx,%ebx
3394 addl 40(%rsp),%eax
3395 xorl %edx,%esi
3396 movl %ebx,%edi
3397 shldl $5,%ebx,%ebx
3398 addl %esi,%eax
3399 xorl %edx,%edi
3400 shrdl $7,%ecx,%ecx
3401 addl %ebx,%eax
3402 addl 44(%rsp),%ebp
3403 xorl %ecx,%edi
3404 movl %eax,%esi
3405 shldl $5,%eax,%eax
3406 addl %edi,%ebp
3407 xorl %ecx,%esi
3408 shrdl $7,%ebx,%ebx
3409 addl %eax,%ebp
3410 addl 48(%rsp),%edx
3411 xorl %ebx,%esi
3412 vpshufb %xmm6,%xmm3,%xmm3
3413 movl %ebp,%edi
3414 shldl $5,%ebp,%ebp
3415 vpaddd %xmm11,%xmm2,%xmm6
3416 addl %esi,%edx
3417 xorl %ebx,%edi
3418 shrdl $7,%eax,%eax
3419 addl %ebp,%edx
3420 vmovdqa %xmm6,32(%rsp)
3421 addl 52(%rsp),%ecx
3422 xorl %eax,%edi
3423 movl %edx,%esi
3424 shldl $5,%edx,%edx
3425 addl %edi,%ecx
3426 xorl %eax,%esi
3427 shrdl $7,%ebp,%ebp
3428 addl %edx,%ecx
3429 addl 56(%rsp),%ebx
3430 xorl %ebp,%esi
3431 movl %ecx,%edi
3432 shldl $5,%ecx,%ecx
3433 addl %esi,%ebx
3434 xorl %ebp,%edi
3435 shrdl $7,%edx,%edx
3436 addl %ecx,%ebx
3437 addl 60(%rsp),%eax
3438 xorl %edx,%edi
3439 movl %ebx,%esi
3440 shldl $5,%ebx,%ebx
3441 addl %edi,%eax
3442 shrdl $7,%ecx,%ecx
3443 addl %ebx,%eax
3444 addl 0(%r8),%eax
3445 addl 4(%r8),%esi
3446 addl 8(%r8),%ecx
3447 addl 12(%r8),%edx
3448 movl %eax,0(%r8)
3449 addl 16(%r8),%ebp
3450 movl %esi,4(%r8)
3451 movl %esi,%ebx
3452 movl %ecx,8(%r8)
3453 movl %ecx,%edi
3454 movl %edx,12(%r8)
3455 xorl %edx,%edi
3456 movl %ebp,16(%r8)
3457 andl %edi,%esi
3458 jmp .Loop_avx
3459
3460.align 16
3461.Ldone_avx:
3462 addl 16(%rsp),%ebx
3463 xorl %ebp,%esi
3464 movl %ecx,%edi
3465 shldl $5,%ecx,%ecx
3466 addl %esi,%ebx
3467 xorl %ebp,%edi
3468 shrdl $7,%edx,%edx
3469 addl %ecx,%ebx
3470 addl 20(%rsp),%eax
3471 xorl %edx,%edi
3472 movl %ebx,%esi
3473 shldl $5,%ebx,%ebx
3474 addl %edi,%eax
3475 xorl %edx,%esi
3476 shrdl $7,%ecx,%ecx
3477 addl %ebx,%eax
3478 addl 24(%rsp),%ebp
3479 xorl %ecx,%esi
3480 movl %eax,%edi
3481 shldl $5,%eax,%eax
3482 addl %esi,%ebp
3483 xorl %ecx,%edi
3484 shrdl $7,%ebx,%ebx
3485 addl %eax,%ebp
3486 addl 28(%rsp),%edx
3487 xorl %ebx,%edi
3488 movl %ebp,%esi
3489 shldl $5,%ebp,%ebp
3490 addl %edi,%edx
3491 xorl %ebx,%esi
3492 shrdl $7,%eax,%eax
3493 addl %ebp,%edx
3494 addl 32(%rsp),%ecx
3495 xorl %eax,%esi
3496 movl %edx,%edi
3497 shldl $5,%edx,%edx
3498 addl %esi,%ecx
3499 xorl %eax,%edi
3500 shrdl $7,%ebp,%ebp
3501 addl %edx,%ecx
3502 addl 36(%rsp),%ebx
3503 xorl %ebp,%edi
3504 movl %ecx,%esi
3505 shldl $5,%ecx,%ecx
3506 addl %edi,%ebx
3507 xorl %ebp,%esi
3508 shrdl $7,%edx,%edx
3509 addl %ecx,%ebx
3510 addl 40(%rsp),%eax
3511 xorl %edx,%esi
3512 movl %ebx,%edi
3513 shldl $5,%ebx,%ebx
3514 addl %esi,%eax
3515 xorl %edx,%edi
3516 shrdl $7,%ecx,%ecx
3517 addl %ebx,%eax
3518 addl 44(%rsp),%ebp
3519 xorl %ecx,%edi
3520 movl %eax,%esi
3521 shldl $5,%eax,%eax
3522 addl %edi,%ebp
3523 xorl %ecx,%esi
3524 shrdl $7,%ebx,%ebx
3525 addl %eax,%ebp
3526 addl 48(%rsp),%edx
3527 xorl %ebx,%esi
3528 movl %ebp,%edi
3529 shldl $5,%ebp,%ebp
3530 addl %esi,%edx
3531 xorl %ebx,%edi
3532 shrdl $7,%eax,%eax
3533 addl %ebp,%edx
3534 addl 52(%rsp),%ecx
3535 xorl %eax,%edi
3536 movl %edx,%esi
3537 shldl $5,%edx,%edx
3538 addl %edi,%ecx
3539 xorl %eax,%esi
3540 shrdl $7,%ebp,%ebp
3541 addl %edx,%ecx
3542 addl 56(%rsp),%ebx
3543 xorl %ebp,%esi
3544 movl %ecx,%edi
3545 shldl $5,%ecx,%ecx
3546 addl %esi,%ebx
3547 xorl %ebp,%edi
3548 shrdl $7,%edx,%edx
3549 addl %ecx,%ebx
3550 addl 60(%rsp),%eax
3551 xorl %edx,%edi
3552 movl %ebx,%esi
3553 shldl $5,%ebx,%ebx
3554 addl %edi,%eax
3555 shrdl $7,%ecx,%ecx
3556 addl %ebx,%eax
3557 vzeroupper
3558
3559 addl 0(%r8),%eax
3560 addl 4(%r8),%esi
3561 addl 8(%r8),%ecx
3562 movl %eax,0(%r8)
3563 addl 12(%r8),%edx
3564 movl %esi,4(%r8)
3565 addl 16(%r8),%ebp
3566 movl %ecx,8(%r8)
3567 movl %edx,12(%r8)
3568 movl %ebp,16(%r8)
3569 movq -40(%r11),%r14
3570.cfi_restore %r14
3571 movq -32(%r11),%r13
3572.cfi_restore %r13
3573 movq -24(%r11),%r12
3574.cfi_restore %r12
3575 movq -16(%r11),%rbp
3576.cfi_restore %rbp
3577 movq -8(%r11),%rbx
3578.cfi_restore %rbx
3579 leaq (%r11),%rsp
3580.cfi_def_cfa_register %rsp
3581.Lepilogue_avx:
3582 .byte 0xf3,0xc3
3583.cfi_endproc
3584.size sha1_block_data_order_avx,.-sha1_block_data_order_avx
3585.align 64
3586K_XX_XX:
3587.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
3588.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
3589.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3590.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3591.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3592.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3593.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3594.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3595.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3596.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3597.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
3598.byte 83,72,65,49,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
3599.align 64
3600#endif
3601