1/* sha256_asm
2 *
3 * Copyright (C) 2006-2021 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22#ifndef HAVE_INTEL_AVX1
23#define HAVE_INTEL_AVX1
24#endif /* HAVE_INTEL_AVX1 */
25#ifndef NO_AVX2_SUPPORT
26#define HAVE_INTEL_AVX2
27#endif /* NO_AVX2_SUPPORT */
28
29#ifdef HAVE_INTEL_AVX1
30#ifndef __APPLE__
31.data
32#else
33.section	__DATA,__data
34#endif /* __APPLE__ */
35L_avx1_sha256_k:
36.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
37.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
38.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
39.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
40.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
41.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
42.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
43.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
44.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
45.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
46.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
47.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
48.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
49.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
50.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
51.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
52#ifndef __APPLE__
53.data
54#else
55.section	__DATA,__data
56#endif /* __APPLE__ */
57#ifndef __APPLE__
58.align	16
59#else
60.p2align	4
61#endif /* __APPLE__ */
62L_avx1_sha256_shuf_00BA:
63.quad	0xb0a090803020100, 0xffffffffffffffff
64#ifndef __APPLE__
65.data
66#else
67.section	__DATA,__data
68#endif /* __APPLE__ */
69#ifndef __APPLE__
70.align	16
71#else
72.p2align	4
73#endif /* __APPLE__ */
74L_avx1_sha256_shuf_DC00:
75.quad	0xffffffffffffffff, 0xb0a090803020100
76#ifndef __APPLE__
77.data
78#else
79.section	__DATA,__data
80#endif /* __APPLE__ */
81#ifndef __APPLE__
82.align	16
83#else
84.p2align	4
85#endif /* __APPLE__ */
86L_avx1_sha256_flip_mask:
87.quad	0x405060700010203, 0xc0d0e0f08090a0b
88#ifndef __APPLE__
89.text
90.globl	Transform_Sha256_AVX1
91.type	Transform_Sha256_AVX1,@function
92.align	16
93Transform_Sha256_AVX1:
94#else
95.section	__TEXT,__text
96.globl	_Transform_Sha256_AVX1
97.p2align	4
98_Transform_Sha256_AVX1:
99#endif /* __APPLE__ */
100        pushq	%rbx
101        pushq	%r12
102        pushq	%r13
103        pushq	%r14
104        pushq	%r15
105        subq	$0x40, %rsp
106        leaq	32(%rdi), %rax
107        vmovdqa	L_avx1_sha256_flip_mask(%rip), %xmm13
108        vmovdqa	L_avx1_sha256_shuf_00BA(%rip), %xmm11
109        vmovdqa	L_avx1_sha256_shuf_DC00(%rip), %xmm12
110        movl	(%rdi), %r8d
111        movl	4(%rdi), %r9d
112        movl	8(%rdi), %r10d
113        movl	12(%rdi), %r11d
114        movl	16(%rdi), %r12d
115        movl	20(%rdi), %r13d
116        movl	24(%rdi), %r14d
117        movl	28(%rdi), %r15d
118        # X0, X1, X2, X3 = W[0..15]
119        vmovdqu	(%rax), %xmm0
120        vmovdqu	16(%rax), %xmm1
121        vpshufb	%xmm13, %xmm0, %xmm0
122        vpshufb	%xmm13, %xmm1, %xmm1
123        vmovdqu	32(%rax), %xmm2
124        vmovdqu	48(%rax), %xmm3
125        vpshufb	%xmm13, %xmm2, %xmm2
126        vpshufb	%xmm13, %xmm3, %xmm3
127        movl	%r9d, %ebx
128        movl	%r12d, %edx
129        xorl	%r10d, %ebx
130        # set_w_k_xfer_4: 0
131        vpaddd	0+L_avx1_sha256_k(%rip), %xmm0, %xmm4
132        vpaddd	16+L_avx1_sha256_k(%rip), %xmm1, %xmm5
133        vmovdqu	%xmm4, (%rsp)
134        vmovdqu	%xmm5, 16(%rsp)
135        vpaddd	32+L_avx1_sha256_k(%rip), %xmm2, %xmm6
136        vpaddd	48+L_avx1_sha256_k(%rip), %xmm3, %xmm7
137        vmovdqu	%xmm6, 32(%rsp)
138        vmovdqu	%xmm7, 48(%rsp)
139        # msg_sched: 0-3
140        # rnd_0: 0 - 0
141        rorl	$14, %edx
142        vpalignr	$4, %xmm0, %xmm1, %xmm5
143        vpalignr	$4, %xmm2, %xmm3, %xmm4
144        # rnd_0: 1 - 2
145        movl	%r9d, %eax
146        movl	%r13d, %ecx
147        addl	(%rsp), %r15d
148        xorl	%r14d, %ecx
149        xorl	%r12d, %edx
150        andl	%r12d, %ecx
151        vpsrld	$7, %xmm5, %xmm6
152        vpslld	$25, %xmm5, %xmm7
153        # rnd_0: 3 - 4
154        rorl	$5, %edx
155        xorl	%r14d, %ecx
156        xorl	%r12d, %edx
157        addl	%ecx, %r15d
158        rorl	$6, %edx
159        xorl	%r8d, %eax
160        addl	%edx, %r15d
161        movl	%r8d, %ecx
162        vpsrld	$18, %xmm5, %xmm8
163        vpslld	$14, %xmm5, %xmm9
164        # rnd_0: 5 - 6
165        andl	%eax, %ebx
166        rorl	$9, %ecx
167        xorl	%r8d, %ecx
168        xorl	%r9d, %ebx
169        rorl	$11, %ecx
170        addl	%r15d, %r11d
171        xorl	%r8d, %ecx
172        addl	%ebx, %r15d
173        vpor	%xmm6, %xmm7, %xmm6
174        vpor	%xmm8, %xmm9, %xmm8
175        # rnd_0: 7 - 7
176        rorl	$2, %ecx
177        movl	%r11d, %edx
178        addl	%ecx, %r15d
179        # rnd_1: 0 - 1
180        rorl	$14, %edx
181        movl	%r8d, %ebx
182        movl	%r12d, %ecx
183        addl	4(%rsp), %r14d
184        xorl	%r13d, %ecx
185        vpsrld	$3, %xmm5, %xmm9
186        vpxor	%xmm6, %xmm8, %xmm6
187        # rnd_1: 2 - 3
188        xorl	%r11d, %edx
189        andl	%r11d, %ecx
190        rorl	$5, %edx
191        xorl	%r13d, %ecx
192        xorl	%r11d, %edx
193        addl	%ecx, %r14d
194        vpxor	%xmm6, %xmm9, %xmm5
195        vpshufd	$0xfa, %xmm3, %xmm6
196        # rnd_1: 4 - 5
197        rorl	$6, %edx
198        xorl	%r15d, %ebx
199        addl	%edx, %r14d
200        movl	%r15d, %ecx
201        andl	%ebx, %eax
202        rorl	$9, %ecx
203        xorl	%r15d, %ecx
204        xorl	%r8d, %eax
205        vpsrld	$10, %xmm6, %xmm8
206        vpsrlq	$19, %xmm6, %xmm7
207        # rnd_1: 6 - 7
208        rorl	$11, %ecx
209        addl	%r14d, %r10d
210        xorl	%r15d, %ecx
211        addl	%eax, %r14d
212        rorl	$2, %ecx
213        movl	%r10d, %edx
214        addl	%ecx, %r14d
215        # rnd_0: 0 - 0
216        rorl	$14, %edx
217        vpsrlq	$0x11, %xmm6, %xmm6
218        vpaddd	%xmm0, %xmm4, %xmm4
219        # rnd_0: 1 - 3
220        movl	%r15d, %eax
221        movl	%r11d, %ecx
222        addl	8(%rsp), %r13d
223        xorl	%r12d, %ecx
224        xorl	%r10d, %edx
225        andl	%r10d, %ecx
226        rorl	$5, %edx
227        xorl	%r12d, %ecx
228        xorl	%r10d, %edx
229        addl	%ecx, %r13d
230        vpxor	%xmm6, %xmm7, %xmm6
231        vpaddd	%xmm5, %xmm4, %xmm4
232        # rnd_0: 4 - 4
233        rorl	$6, %edx
234        xorl	%r14d, %eax
235        addl	%edx, %r13d
236        movl	%r14d, %ecx
237        vpxor	%xmm6, %xmm8, %xmm8
238        # rnd_0: 5 - 5
239        andl	%eax, %ebx
240        rorl	$9, %ecx
241        xorl	%r14d, %ecx
242        xorl	%r15d, %ebx
243        vpshufb	%xmm11, %xmm8, %xmm8
244        # rnd_0: 6 - 6
245        rorl	$11, %ecx
246        addl	%r13d, %r9d
247        xorl	%r14d, %ecx
248        addl	%ebx, %r13d
249        vpaddd	%xmm8, %xmm4, %xmm4
250        # rnd_0: 7 - 7
251        rorl	$2, %ecx
252        movl	%r9d, %edx
253        addl	%ecx, %r13d
254        # rnd_1: 0 - 0
255        rorl	$14, %edx
256        vpshufd	$0x50, %xmm4, %xmm6
257        # rnd_1: 1 - 1
258        movl	%r14d, %ebx
259        movl	%r10d, %ecx
260        addl	12(%rsp), %r12d
261        xorl	%r11d, %ecx
262        vpsrlq	$0x11, %xmm6, %xmm8
263        vpsrlq	$19, %xmm6, %xmm7
264        # rnd_1: 2 - 3
265        xorl	%r9d, %edx
266        andl	%r9d, %ecx
267        rorl	$5, %edx
268        xorl	%r11d, %ecx
269        xorl	%r9d, %edx
270        addl	%ecx, %r12d
271        vpsrld	$10, %xmm6, %xmm9
272        vpxor	%xmm8, %xmm7, %xmm8
273        # rnd_1: 4 - 5
274        rorl	$6, %edx
275        xorl	%r13d, %ebx
276        addl	%edx, %r12d
277        movl	%r13d, %ecx
278        andl	%ebx, %eax
279        rorl	$9, %ecx
280        xorl	%r13d, %ecx
281        xorl	%r14d, %eax
282        vpxor	%xmm9, %xmm8, %xmm9
283        # rnd_1: 6 - 6
284        rorl	$11, %ecx
285        addl	%r12d, %r8d
286        xorl	%r13d, %ecx
287        addl	%eax, %r12d
288        vpshufb	%xmm12, %xmm9, %xmm9
289        # rnd_1: 7 - 7
290        rorl	$2, %ecx
291        movl	%r8d, %edx
292        addl	%ecx, %r12d
293        vpaddd	%xmm4, %xmm9, %xmm0
294        # msg_sched done: 0-3
295        # msg_sched: 4-7
296        # rnd_0: 0 - 0
297        rorl	$14, %edx
298        vpalignr	$4, %xmm1, %xmm2, %xmm5
299        vpalignr	$4, %xmm3, %xmm0, %xmm4
300        # rnd_0: 1 - 2
301        movl	%r13d, %eax
302        movl	%r9d, %ecx
303        addl	16(%rsp), %r11d
304        xorl	%r10d, %ecx
305        xorl	%r8d, %edx
306        andl	%r8d, %ecx
307        vpsrld	$7, %xmm5, %xmm6
308        vpslld	$25, %xmm5, %xmm7
309        # rnd_0: 3 - 4
310        rorl	$5, %edx
311        xorl	%r10d, %ecx
312        xorl	%r8d, %edx
313        addl	%ecx, %r11d
314        rorl	$6, %edx
315        xorl	%r12d, %eax
316        addl	%edx, %r11d
317        movl	%r12d, %ecx
318        vpsrld	$18, %xmm5, %xmm8
319        vpslld	$14, %xmm5, %xmm9
320        # rnd_0: 5 - 6
321        andl	%eax, %ebx
322        rorl	$9, %ecx
323        xorl	%r12d, %ecx
324        xorl	%r13d, %ebx
325        rorl	$11, %ecx
326        addl	%r11d, %r15d
327        xorl	%r12d, %ecx
328        addl	%ebx, %r11d
329        vpor	%xmm6, %xmm7, %xmm6
330        vpor	%xmm8, %xmm9, %xmm8
331        # rnd_0: 7 - 7
332        rorl	$2, %ecx
333        movl	%r15d, %edx
334        addl	%ecx, %r11d
335        # rnd_1: 0 - 1
336        rorl	$14, %edx
337        movl	%r12d, %ebx
338        movl	%r8d, %ecx
339        addl	20(%rsp), %r10d
340        xorl	%r9d, %ecx
341        vpsrld	$3, %xmm5, %xmm9
342        vpxor	%xmm6, %xmm8, %xmm6
343        # rnd_1: 2 - 3
344        xorl	%r15d, %edx
345        andl	%r15d, %ecx
346        rorl	$5, %edx
347        xorl	%r9d, %ecx
348        xorl	%r15d, %edx
349        addl	%ecx, %r10d
350        vpxor	%xmm6, %xmm9, %xmm5
351        vpshufd	$0xfa, %xmm0, %xmm6
352        # rnd_1: 4 - 5
353        rorl	$6, %edx
354        xorl	%r11d, %ebx
355        addl	%edx, %r10d
356        movl	%r11d, %ecx
357        andl	%ebx, %eax
358        rorl	$9, %ecx
359        xorl	%r11d, %ecx
360        xorl	%r12d, %eax
361        vpsrld	$10, %xmm6, %xmm8
362        vpsrlq	$19, %xmm6, %xmm7
363        # rnd_1: 6 - 7
364        rorl	$11, %ecx
365        addl	%r10d, %r14d
366        xorl	%r11d, %ecx
367        addl	%eax, %r10d
368        rorl	$2, %ecx
369        movl	%r14d, %edx
370        addl	%ecx, %r10d
371        # rnd_0: 0 - 0
372        rorl	$14, %edx
373        vpsrlq	$0x11, %xmm6, %xmm6
374        vpaddd	%xmm1, %xmm4, %xmm4
375        # rnd_0: 1 - 3
376        movl	%r11d, %eax
377        movl	%r15d, %ecx
378        addl	24(%rsp), %r9d
379        xorl	%r8d, %ecx
380        xorl	%r14d, %edx
381        andl	%r14d, %ecx
382        rorl	$5, %edx
383        xorl	%r8d, %ecx
384        xorl	%r14d, %edx
385        addl	%ecx, %r9d
386        vpxor	%xmm6, %xmm7, %xmm6
387        vpaddd	%xmm5, %xmm4, %xmm4
388        # rnd_0: 4 - 4
389        rorl	$6, %edx
390        xorl	%r10d, %eax
391        addl	%edx, %r9d
392        movl	%r10d, %ecx
393        vpxor	%xmm6, %xmm8, %xmm8
394        # rnd_0: 5 - 5
395        andl	%eax, %ebx
396        rorl	$9, %ecx
397        xorl	%r10d, %ecx
398        xorl	%r11d, %ebx
399        vpshufb	%xmm11, %xmm8, %xmm8
400        # rnd_0: 6 - 6
401        rorl	$11, %ecx
402        addl	%r9d, %r13d
403        xorl	%r10d, %ecx
404        addl	%ebx, %r9d
405        vpaddd	%xmm8, %xmm4, %xmm4
406        # rnd_0: 7 - 7
407        rorl	$2, %ecx
408        movl	%r13d, %edx
409        addl	%ecx, %r9d
410        # rnd_1: 0 - 0
411        rorl	$14, %edx
412        vpshufd	$0x50, %xmm4, %xmm6
413        # rnd_1: 1 - 1
414        movl	%r10d, %ebx
415        movl	%r14d, %ecx
416        addl	28(%rsp), %r8d
417        xorl	%r15d, %ecx
418        vpsrlq	$0x11, %xmm6, %xmm8
419        vpsrlq	$19, %xmm6, %xmm7
420        # rnd_1: 2 - 3
421        xorl	%r13d, %edx
422        andl	%r13d, %ecx
423        rorl	$5, %edx
424        xorl	%r15d, %ecx
425        xorl	%r13d, %edx
426        addl	%ecx, %r8d
427        vpsrld	$10, %xmm6, %xmm9
428        vpxor	%xmm8, %xmm7, %xmm8
429        # rnd_1: 4 - 5
430        rorl	$6, %edx
431        xorl	%r9d, %ebx
432        addl	%edx, %r8d
433        movl	%r9d, %ecx
434        andl	%ebx, %eax
435        rorl	$9, %ecx
436        xorl	%r9d, %ecx
437        xorl	%r10d, %eax
438        vpxor	%xmm9, %xmm8, %xmm9
439        # rnd_1: 6 - 6
440        rorl	$11, %ecx
441        addl	%r8d, %r12d
442        xorl	%r9d, %ecx
443        addl	%eax, %r8d
444        vpshufb	%xmm12, %xmm9, %xmm9
445        # rnd_1: 7 - 7
446        rorl	$2, %ecx
447        movl	%r12d, %edx
448        addl	%ecx, %r8d
449        vpaddd	%xmm4, %xmm9, %xmm1
450        # msg_sched done: 4-7
451        # msg_sched: 8-11
452        # rnd_0: 0 - 0
453        rorl	$14, %edx
454        vpalignr	$4, %xmm2, %xmm3, %xmm5
455        vpalignr	$4, %xmm0, %xmm1, %xmm4
456        # rnd_0: 1 - 2
457        movl	%r9d, %eax
458        movl	%r13d, %ecx
459        addl	32(%rsp), %r15d
460        xorl	%r14d, %ecx
461        xorl	%r12d, %edx
462        andl	%r12d, %ecx
463        vpsrld	$7, %xmm5, %xmm6
464        vpslld	$25, %xmm5, %xmm7
465        # rnd_0: 3 - 4
466        rorl	$5, %edx
467        xorl	%r14d, %ecx
468        xorl	%r12d, %edx
469        addl	%ecx, %r15d
470        rorl	$6, %edx
471        xorl	%r8d, %eax
472        addl	%edx, %r15d
473        movl	%r8d, %ecx
474        vpsrld	$18, %xmm5, %xmm8
475        vpslld	$14, %xmm5, %xmm9
476        # rnd_0: 5 - 6
477        andl	%eax, %ebx
478        rorl	$9, %ecx
479        xorl	%r8d, %ecx
480        xorl	%r9d, %ebx
481        rorl	$11, %ecx
482        addl	%r15d, %r11d
483        xorl	%r8d, %ecx
484        addl	%ebx, %r15d
485        vpor	%xmm6, %xmm7, %xmm6
486        vpor	%xmm8, %xmm9, %xmm8
487        # rnd_0: 7 - 7
488        rorl	$2, %ecx
489        movl	%r11d, %edx
490        addl	%ecx, %r15d
491        # rnd_1: 0 - 1
492        rorl	$14, %edx
493        movl	%r8d, %ebx
494        movl	%r12d, %ecx
495        addl	36(%rsp), %r14d
496        xorl	%r13d, %ecx
497        vpsrld	$3, %xmm5, %xmm9
498        vpxor	%xmm6, %xmm8, %xmm6
499        # rnd_1: 2 - 3
500        xorl	%r11d, %edx
501        andl	%r11d, %ecx
502        rorl	$5, %edx
503        xorl	%r13d, %ecx
504        xorl	%r11d, %edx
505        addl	%ecx, %r14d
506        vpxor	%xmm6, %xmm9, %xmm5
507        vpshufd	$0xfa, %xmm1, %xmm6
508        # rnd_1: 4 - 5
509        rorl	$6, %edx
510        xorl	%r15d, %ebx
511        addl	%edx, %r14d
512        movl	%r15d, %ecx
513        andl	%ebx, %eax
514        rorl	$9, %ecx
515        xorl	%r15d, %ecx
516        xorl	%r8d, %eax
517        vpsrld	$10, %xmm6, %xmm8
518        vpsrlq	$19, %xmm6, %xmm7
519        # rnd_1: 6 - 7
520        rorl	$11, %ecx
521        addl	%r14d, %r10d
522        xorl	%r15d, %ecx
523        addl	%eax, %r14d
524        rorl	$2, %ecx
525        movl	%r10d, %edx
526        addl	%ecx, %r14d
527        # rnd_0: 0 - 0
528        rorl	$14, %edx
529        vpsrlq	$0x11, %xmm6, %xmm6
530        vpaddd	%xmm2, %xmm4, %xmm4
531        # rnd_0: 1 - 3
532        movl	%r15d, %eax
533        movl	%r11d, %ecx
534        addl	40(%rsp), %r13d
535        xorl	%r12d, %ecx
536        xorl	%r10d, %edx
537        andl	%r10d, %ecx
538        rorl	$5, %edx
539        xorl	%r12d, %ecx
540        xorl	%r10d, %edx
541        addl	%ecx, %r13d
542        vpxor	%xmm6, %xmm7, %xmm6
543        vpaddd	%xmm5, %xmm4, %xmm4
544        # rnd_0: 4 - 4
545        rorl	$6, %edx
546        xorl	%r14d, %eax
547        addl	%edx, %r13d
548        movl	%r14d, %ecx
549        vpxor	%xmm6, %xmm8, %xmm8
550        # rnd_0: 5 - 5
551        andl	%eax, %ebx
552        rorl	$9, %ecx
553        xorl	%r14d, %ecx
554        xorl	%r15d, %ebx
555        vpshufb	%xmm11, %xmm8, %xmm8
556        # rnd_0: 6 - 6
557        rorl	$11, %ecx
558        addl	%r13d, %r9d
559        xorl	%r14d, %ecx
560        addl	%ebx, %r13d
561        vpaddd	%xmm8, %xmm4, %xmm4
562        # rnd_0: 7 - 7
563        rorl	$2, %ecx
564        movl	%r9d, %edx
565        addl	%ecx, %r13d
566        # rnd_1: 0 - 0
567        rorl	$14, %edx
568        vpshufd	$0x50, %xmm4, %xmm6
569        # rnd_1: 1 - 1
570        movl	%r14d, %ebx
571        movl	%r10d, %ecx
572        addl	44(%rsp), %r12d
573        xorl	%r11d, %ecx
574        vpsrlq	$0x11, %xmm6, %xmm8
575        vpsrlq	$19, %xmm6, %xmm7
576        # rnd_1: 2 - 3
577        xorl	%r9d, %edx
578        andl	%r9d, %ecx
579        rorl	$5, %edx
580        xorl	%r11d, %ecx
581        xorl	%r9d, %edx
582        addl	%ecx, %r12d
583        vpsrld	$10, %xmm6, %xmm9
584        vpxor	%xmm8, %xmm7, %xmm8
585        # rnd_1: 4 - 5
586        rorl	$6, %edx
587        xorl	%r13d, %ebx
588        addl	%edx, %r12d
589        movl	%r13d, %ecx
590        andl	%ebx, %eax
591        rorl	$9, %ecx
592        xorl	%r13d, %ecx
593        xorl	%r14d, %eax
594        vpxor	%xmm9, %xmm8, %xmm9
595        # rnd_1: 6 - 6
596        rorl	$11, %ecx
597        addl	%r12d, %r8d
598        xorl	%r13d, %ecx
599        addl	%eax, %r12d
600        vpshufb	%xmm12, %xmm9, %xmm9
601        # rnd_1: 7 - 7
602        rorl	$2, %ecx
603        movl	%r8d, %edx
604        addl	%ecx, %r12d
605        vpaddd	%xmm4, %xmm9, %xmm2
606        # msg_sched done: 8-11
607        # msg_sched: 12-15
608        # rnd_0: 0 - 0
609        rorl	$14, %edx
610        vpalignr	$4, %xmm3, %xmm0, %xmm5
611        vpalignr	$4, %xmm1, %xmm2, %xmm4
612        # rnd_0: 1 - 2
613        movl	%r13d, %eax
614        movl	%r9d, %ecx
615        addl	48(%rsp), %r11d
616        xorl	%r10d, %ecx
617        xorl	%r8d, %edx
618        andl	%r8d, %ecx
619        vpsrld	$7, %xmm5, %xmm6
620        vpslld	$25, %xmm5, %xmm7
621        # rnd_0: 3 - 4
622        rorl	$5, %edx
623        xorl	%r10d, %ecx
624        xorl	%r8d, %edx
625        addl	%ecx, %r11d
626        rorl	$6, %edx
627        xorl	%r12d, %eax
628        addl	%edx, %r11d
629        movl	%r12d, %ecx
630        vpsrld	$18, %xmm5, %xmm8
631        vpslld	$14, %xmm5, %xmm9
632        # rnd_0: 5 - 6
633        andl	%eax, %ebx
634        rorl	$9, %ecx
635        xorl	%r12d, %ecx
636        xorl	%r13d, %ebx
637        rorl	$11, %ecx
638        addl	%r11d, %r15d
639        xorl	%r12d, %ecx
640        addl	%ebx, %r11d
641        vpor	%xmm6, %xmm7, %xmm6
642        vpor	%xmm8, %xmm9, %xmm8
643        # rnd_0: 7 - 7
644        rorl	$2, %ecx
645        movl	%r15d, %edx
646        addl	%ecx, %r11d
647        # rnd_1: 0 - 1
648        rorl	$14, %edx
649        movl	%r12d, %ebx
650        movl	%r8d, %ecx
651        addl	52(%rsp), %r10d
652        xorl	%r9d, %ecx
653        vpsrld	$3, %xmm5, %xmm9
654        vpxor	%xmm6, %xmm8, %xmm6
655        # rnd_1: 2 - 3
656        xorl	%r15d, %edx
657        andl	%r15d, %ecx
658        rorl	$5, %edx
659        xorl	%r9d, %ecx
660        xorl	%r15d, %edx
661        addl	%ecx, %r10d
662        vpxor	%xmm6, %xmm9, %xmm5
663        vpshufd	$0xfa, %xmm2, %xmm6
664        # rnd_1: 4 - 5
665        rorl	$6, %edx
666        xorl	%r11d, %ebx
667        addl	%edx, %r10d
668        movl	%r11d, %ecx
669        andl	%ebx, %eax
670        rorl	$9, %ecx
671        xorl	%r11d, %ecx
672        xorl	%r12d, %eax
673        vpsrld	$10, %xmm6, %xmm8
674        vpsrlq	$19, %xmm6, %xmm7
675        # rnd_1: 6 - 7
676        rorl	$11, %ecx
677        addl	%r10d, %r14d
678        xorl	%r11d, %ecx
679        addl	%eax, %r10d
680        rorl	$2, %ecx
681        movl	%r14d, %edx
682        addl	%ecx, %r10d
683        # rnd_0: 0 - 0
684        rorl	$14, %edx
685        vpsrlq	$0x11, %xmm6, %xmm6
686        vpaddd	%xmm3, %xmm4, %xmm4
687        # rnd_0: 1 - 3
688        movl	%r11d, %eax
689        movl	%r15d, %ecx
690        addl	56(%rsp), %r9d
691        xorl	%r8d, %ecx
692        xorl	%r14d, %edx
693        andl	%r14d, %ecx
694        rorl	$5, %edx
695        xorl	%r8d, %ecx
696        xorl	%r14d, %edx
697        addl	%ecx, %r9d
698        vpxor	%xmm6, %xmm7, %xmm6
699        vpaddd	%xmm5, %xmm4, %xmm4
700        # rnd_0: 4 - 4
701        rorl	$6, %edx
702        xorl	%r10d, %eax
703        addl	%edx, %r9d
704        movl	%r10d, %ecx
705        vpxor	%xmm6, %xmm8, %xmm8
706        # rnd_0: 5 - 5
707        andl	%eax, %ebx
708        rorl	$9, %ecx
709        xorl	%r10d, %ecx
710        xorl	%r11d, %ebx
711        vpshufb	%xmm11, %xmm8, %xmm8
712        # rnd_0: 6 - 6
713        rorl	$11, %ecx
714        addl	%r9d, %r13d
715        xorl	%r10d, %ecx
716        addl	%ebx, %r9d
717        vpaddd	%xmm8, %xmm4, %xmm4
718        # rnd_0: 7 - 7
719        rorl	$2, %ecx
720        movl	%r13d, %edx
721        addl	%ecx, %r9d
722        # rnd_1: 0 - 0
723        rorl	$14, %edx
724        vpshufd	$0x50, %xmm4, %xmm6
725        # rnd_1: 1 - 1
726        movl	%r10d, %ebx
727        movl	%r14d, %ecx
728        addl	60(%rsp), %r8d
729        xorl	%r15d, %ecx
730        vpsrlq	$0x11, %xmm6, %xmm8
731        vpsrlq	$19, %xmm6, %xmm7
732        # rnd_1: 2 - 3
733        xorl	%r13d, %edx
734        andl	%r13d, %ecx
735        rorl	$5, %edx
736        xorl	%r15d, %ecx
737        xorl	%r13d, %edx
738        addl	%ecx, %r8d
739        vpsrld	$10, %xmm6, %xmm9
740        vpxor	%xmm8, %xmm7, %xmm8
741        # rnd_1: 4 - 5
742        rorl	$6, %edx
743        xorl	%r9d, %ebx
744        addl	%edx, %r8d
745        movl	%r9d, %ecx
746        andl	%ebx, %eax
747        rorl	$9, %ecx
748        xorl	%r9d, %ecx
749        xorl	%r10d, %eax
750        vpxor	%xmm9, %xmm8, %xmm9
751        # rnd_1: 6 - 6
752        rorl	$11, %ecx
753        addl	%r8d, %r12d
754        xorl	%r9d, %ecx
755        addl	%eax, %r8d
756        vpshufb	%xmm12, %xmm9, %xmm9
757        # rnd_1: 7 - 7
758        rorl	$2, %ecx
759        movl	%r12d, %edx
760        addl	%ecx, %r8d
761        vpaddd	%xmm4, %xmm9, %xmm3
762        # msg_sched done: 12-15
763        # set_w_k_xfer_4: 4
764        vpaddd	64+L_avx1_sha256_k(%rip), %xmm0, %xmm4
765        vpaddd	80+L_avx1_sha256_k(%rip), %xmm1, %xmm5
766        vmovdqu	%xmm4, (%rsp)
767        vmovdqu	%xmm5, 16(%rsp)
768        vpaddd	96+L_avx1_sha256_k(%rip), %xmm2, %xmm6
769        vpaddd	112+L_avx1_sha256_k(%rip), %xmm3, %xmm7
770        vmovdqu	%xmm6, 32(%rsp)
771        vmovdqu	%xmm7, 48(%rsp)
772        # msg_sched: 0-3
773        # rnd_0: 0 - 0
774        rorl	$14, %edx
775        vpalignr	$4, %xmm0, %xmm1, %xmm5
776        vpalignr	$4, %xmm2, %xmm3, %xmm4
777        # rnd_0: 1 - 2
778        movl	%r9d, %eax
779        movl	%r13d, %ecx
780        addl	(%rsp), %r15d
781        xorl	%r14d, %ecx
782        xorl	%r12d, %edx
783        andl	%r12d, %ecx
784        vpsrld	$7, %xmm5, %xmm6
785        vpslld	$25, %xmm5, %xmm7
786        # rnd_0: 3 - 4
787        rorl	$5, %edx
788        xorl	%r14d, %ecx
789        xorl	%r12d, %edx
790        addl	%ecx, %r15d
791        rorl	$6, %edx
792        xorl	%r8d, %eax
793        addl	%edx, %r15d
794        movl	%r8d, %ecx
795        vpsrld	$18, %xmm5, %xmm8
796        vpslld	$14, %xmm5, %xmm9
797        # rnd_0: 5 - 6
798        andl	%eax, %ebx
799        rorl	$9, %ecx
800        xorl	%r8d, %ecx
801        xorl	%r9d, %ebx
802        rorl	$11, %ecx
803        addl	%r15d, %r11d
804        xorl	%r8d, %ecx
805        addl	%ebx, %r15d
806        vpor	%xmm6, %xmm7, %xmm6
807        vpor	%xmm8, %xmm9, %xmm8
808        # rnd_0: 7 - 7
809        rorl	$2, %ecx
810        movl	%r11d, %edx
811        addl	%ecx, %r15d
812        # rnd_1: 0 - 1
813        rorl	$14, %edx
814        movl	%r8d, %ebx
815        movl	%r12d, %ecx
816        addl	4(%rsp), %r14d
817        xorl	%r13d, %ecx
818        vpsrld	$3, %xmm5, %xmm9
819        vpxor	%xmm6, %xmm8, %xmm6
820        # rnd_1: 2 - 3
821        xorl	%r11d, %edx
822        andl	%r11d, %ecx
823        rorl	$5, %edx
824        xorl	%r13d, %ecx
825        xorl	%r11d, %edx
826        addl	%ecx, %r14d
827        vpxor	%xmm6, %xmm9, %xmm5
828        vpshufd	$0xfa, %xmm3, %xmm6
829        # rnd_1: 4 - 5
830        rorl	$6, %edx
831        xorl	%r15d, %ebx
832        addl	%edx, %r14d
833        movl	%r15d, %ecx
834        andl	%ebx, %eax
835        rorl	$9, %ecx
836        xorl	%r15d, %ecx
837        xorl	%r8d, %eax
838        vpsrld	$10, %xmm6, %xmm8
839        vpsrlq	$19, %xmm6, %xmm7
840        # rnd_1: 6 - 7
841        rorl	$11, %ecx
842        addl	%r14d, %r10d
843        xorl	%r15d, %ecx
844        addl	%eax, %r14d
845        rorl	$2, %ecx
846        movl	%r10d, %edx
847        addl	%ecx, %r14d
848        # rnd_0: 0 - 0
849        rorl	$14, %edx
850        vpsrlq	$0x11, %xmm6, %xmm6
851        vpaddd	%xmm0, %xmm4, %xmm4
852        # rnd_0: 1 - 3
853        movl	%r15d, %eax
854        movl	%r11d, %ecx
855        addl	8(%rsp), %r13d
856        xorl	%r12d, %ecx
857        xorl	%r10d, %edx
858        andl	%r10d, %ecx
859        rorl	$5, %edx
860        xorl	%r12d, %ecx
861        xorl	%r10d, %edx
862        addl	%ecx, %r13d
863        vpxor	%xmm6, %xmm7, %xmm6
864        vpaddd	%xmm5, %xmm4, %xmm4
865        # rnd_0: 4 - 4
866        rorl	$6, %edx
867        xorl	%r14d, %eax
868        addl	%edx, %r13d
869        movl	%r14d, %ecx
870        vpxor	%xmm6, %xmm8, %xmm8
871        # rnd_0: 5 - 5
872        andl	%eax, %ebx
873        rorl	$9, %ecx
874        xorl	%r14d, %ecx
875        xorl	%r15d, %ebx
876        vpshufb	%xmm11, %xmm8, %xmm8
877        # rnd_0: 6 - 6
878        rorl	$11, %ecx
879        addl	%r13d, %r9d
880        xorl	%r14d, %ecx
881        addl	%ebx, %r13d
882        vpaddd	%xmm8, %xmm4, %xmm4
883        # rnd_0: 7 - 7
884        rorl	$2, %ecx
885        movl	%r9d, %edx
886        addl	%ecx, %r13d
887        # rnd_1: 0 - 0
888        rorl	$14, %edx
889        vpshufd	$0x50, %xmm4, %xmm6
890        # rnd_1: 1 - 1
891        movl	%r14d, %ebx
892        movl	%r10d, %ecx
893        addl	12(%rsp), %r12d
894        xorl	%r11d, %ecx
895        vpsrlq	$0x11, %xmm6, %xmm8
896        vpsrlq	$19, %xmm6, %xmm7
897        # rnd_1: 2 - 3
898        xorl	%r9d, %edx
899        andl	%r9d, %ecx
900        rorl	$5, %edx
901        xorl	%r11d, %ecx
902        xorl	%r9d, %edx
903        addl	%ecx, %r12d
904        vpsrld	$10, %xmm6, %xmm9
905        vpxor	%xmm8, %xmm7, %xmm8
906        # rnd_1: 4 - 5
907        rorl	$6, %edx
908        xorl	%r13d, %ebx
909        addl	%edx, %r12d
910        movl	%r13d, %ecx
911        andl	%ebx, %eax
912        rorl	$9, %ecx
913        xorl	%r13d, %ecx
914        xorl	%r14d, %eax
915        vpxor	%xmm9, %xmm8, %xmm9
916        # rnd_1: 6 - 6
917        rorl	$11, %ecx
918        addl	%r12d, %r8d
919        xorl	%r13d, %ecx
920        addl	%eax, %r12d
921        vpshufb	%xmm12, %xmm9, %xmm9
922        # rnd_1: 7 - 7
923        rorl	$2, %ecx
924        movl	%r8d, %edx
925        addl	%ecx, %r12d
926        vpaddd	%xmm4, %xmm9, %xmm0
927        # msg_sched done: 0-3
928        # msg_sched: 4-7
929        # rnd_0: 0 - 0
930        rorl	$14, %edx
931        vpalignr	$4, %xmm1, %xmm2, %xmm5
932        vpalignr	$4, %xmm3, %xmm0, %xmm4
933        # rnd_0: 1 - 2
934        movl	%r13d, %eax
935        movl	%r9d, %ecx
936        addl	16(%rsp), %r11d
937        xorl	%r10d, %ecx
938        xorl	%r8d, %edx
939        andl	%r8d, %ecx
940        vpsrld	$7, %xmm5, %xmm6
941        vpslld	$25, %xmm5, %xmm7
942        # rnd_0: 3 - 4
943        rorl	$5, %edx
944        xorl	%r10d, %ecx
945        xorl	%r8d, %edx
946        addl	%ecx, %r11d
947        rorl	$6, %edx
948        xorl	%r12d, %eax
949        addl	%edx, %r11d
950        movl	%r12d, %ecx
951        vpsrld	$18, %xmm5, %xmm8
952        vpslld	$14, %xmm5, %xmm9
953        # rnd_0: 5 - 6
954        andl	%eax, %ebx
955        rorl	$9, %ecx
956        xorl	%r12d, %ecx
957        xorl	%r13d, %ebx
958        rorl	$11, %ecx
959        addl	%r11d, %r15d
960        xorl	%r12d, %ecx
961        addl	%ebx, %r11d
962        vpor	%xmm6, %xmm7, %xmm6
963        vpor	%xmm8, %xmm9, %xmm8
964        # rnd_0: 7 - 7
965        rorl	$2, %ecx
966        movl	%r15d, %edx
967        addl	%ecx, %r11d
968        # rnd_1: 0 - 1
969        rorl	$14, %edx
970        movl	%r12d, %ebx
971        movl	%r8d, %ecx
972        addl	20(%rsp), %r10d
973        xorl	%r9d, %ecx
974        vpsrld	$3, %xmm5, %xmm9
975        vpxor	%xmm6, %xmm8, %xmm6
976        # rnd_1: 2 - 3
977        xorl	%r15d, %edx
978        andl	%r15d, %ecx
979        rorl	$5, %edx
980        xorl	%r9d, %ecx
981        xorl	%r15d, %edx
982        addl	%ecx, %r10d
983        vpxor	%xmm6, %xmm9, %xmm5
984        vpshufd	$0xfa, %xmm0, %xmm6
985        # rnd_1: 4 - 5
986        rorl	$6, %edx
987        xorl	%r11d, %ebx
988        addl	%edx, %r10d
989        movl	%r11d, %ecx
990        andl	%ebx, %eax
991        rorl	$9, %ecx
992        xorl	%r11d, %ecx
993        xorl	%r12d, %eax
994        vpsrld	$10, %xmm6, %xmm8
995        vpsrlq	$19, %xmm6, %xmm7
996        # rnd_1: 6 - 7
997        rorl	$11, %ecx
998        addl	%r10d, %r14d
999        xorl	%r11d, %ecx
1000        addl	%eax, %r10d
1001        rorl	$2, %ecx
1002        movl	%r14d, %edx
1003        addl	%ecx, %r10d
1004        # rnd_0: 0 - 0
1005        rorl	$14, %edx
1006        vpsrlq	$0x11, %xmm6, %xmm6
1007        vpaddd	%xmm1, %xmm4, %xmm4
1008        # rnd_0: 1 - 3
1009        movl	%r11d, %eax
1010        movl	%r15d, %ecx
1011        addl	24(%rsp), %r9d
1012        xorl	%r8d, %ecx
1013        xorl	%r14d, %edx
1014        andl	%r14d, %ecx
1015        rorl	$5, %edx
1016        xorl	%r8d, %ecx
1017        xorl	%r14d, %edx
1018        addl	%ecx, %r9d
1019        vpxor	%xmm6, %xmm7, %xmm6
1020        vpaddd	%xmm5, %xmm4, %xmm4
1021        # rnd_0: 4 - 4
1022        rorl	$6, %edx
1023        xorl	%r10d, %eax
1024        addl	%edx, %r9d
1025        movl	%r10d, %ecx
1026        vpxor	%xmm6, %xmm8, %xmm8
1027        # rnd_0: 5 - 5
1028        andl	%eax, %ebx
1029        rorl	$9, %ecx
1030        xorl	%r10d, %ecx
1031        xorl	%r11d, %ebx
1032        vpshufb	%xmm11, %xmm8, %xmm8
1033        # rnd_0: 6 - 6
1034        rorl	$11, %ecx
1035        addl	%r9d, %r13d
1036        xorl	%r10d, %ecx
1037        addl	%ebx, %r9d
1038        vpaddd	%xmm8, %xmm4, %xmm4
1039        # rnd_0: 7 - 7
1040        rorl	$2, %ecx
1041        movl	%r13d, %edx
1042        addl	%ecx, %r9d
1043        # rnd_1: 0 - 0
1044        rorl	$14, %edx
1045        vpshufd	$0x50, %xmm4, %xmm6
1046        # rnd_1: 1 - 1
1047        movl	%r10d, %ebx
1048        movl	%r14d, %ecx
1049        addl	28(%rsp), %r8d
1050        xorl	%r15d, %ecx
1051        vpsrlq	$0x11, %xmm6, %xmm8
1052        vpsrlq	$19, %xmm6, %xmm7
1053        # rnd_1: 2 - 3
1054        xorl	%r13d, %edx
1055        andl	%r13d, %ecx
1056        rorl	$5, %edx
1057        xorl	%r15d, %ecx
1058        xorl	%r13d, %edx
1059        addl	%ecx, %r8d
1060        vpsrld	$10, %xmm6, %xmm9
1061        vpxor	%xmm8, %xmm7, %xmm8
1062        # rnd_1: 4 - 5
1063        rorl	$6, %edx
1064        xorl	%r9d, %ebx
1065        addl	%edx, %r8d
1066        movl	%r9d, %ecx
1067        andl	%ebx, %eax
1068        rorl	$9, %ecx
1069        xorl	%r9d, %ecx
1070        xorl	%r10d, %eax
1071        vpxor	%xmm9, %xmm8, %xmm9
1072        # rnd_1: 6 - 6
1073        rorl	$11, %ecx
1074        addl	%r8d, %r12d
1075        xorl	%r9d, %ecx
1076        addl	%eax, %r8d
1077        vpshufb	%xmm12, %xmm9, %xmm9
1078        # rnd_1: 7 - 7
1079        rorl	$2, %ecx
1080        movl	%r12d, %edx
1081        addl	%ecx, %r8d
1082        vpaddd	%xmm4, %xmm9, %xmm1
1083        # msg_sched done: 4-7
1084        # msg_sched: 8-11
1085        # rnd_0: 0 - 0
1086        rorl	$14, %edx
1087        vpalignr	$4, %xmm2, %xmm3, %xmm5
1088        vpalignr	$4, %xmm0, %xmm1, %xmm4
1089        # rnd_0: 1 - 2
1090        movl	%r9d, %eax
1091        movl	%r13d, %ecx
1092        addl	32(%rsp), %r15d
1093        xorl	%r14d, %ecx
1094        xorl	%r12d, %edx
1095        andl	%r12d, %ecx
1096        vpsrld	$7, %xmm5, %xmm6
1097        vpslld	$25, %xmm5, %xmm7
1098        # rnd_0: 3 - 4
1099        rorl	$5, %edx
1100        xorl	%r14d, %ecx
1101        xorl	%r12d, %edx
1102        addl	%ecx, %r15d
1103        rorl	$6, %edx
1104        xorl	%r8d, %eax
1105        addl	%edx, %r15d
1106        movl	%r8d, %ecx
1107        vpsrld	$18, %xmm5, %xmm8
1108        vpslld	$14, %xmm5, %xmm9
1109        # rnd_0: 5 - 6
1110        andl	%eax, %ebx
1111        rorl	$9, %ecx
1112        xorl	%r8d, %ecx
1113        xorl	%r9d, %ebx
1114        rorl	$11, %ecx
1115        addl	%r15d, %r11d
1116        xorl	%r8d, %ecx
1117        addl	%ebx, %r15d
1118        vpor	%xmm6, %xmm7, %xmm6
1119        vpor	%xmm8, %xmm9, %xmm8
1120        # rnd_0: 7 - 7
1121        rorl	$2, %ecx
1122        movl	%r11d, %edx
1123        addl	%ecx, %r15d
1124        # rnd_1: 0 - 1
1125        rorl	$14, %edx
1126        movl	%r8d, %ebx
1127        movl	%r12d, %ecx
1128        addl	36(%rsp), %r14d
1129        xorl	%r13d, %ecx
1130        vpsrld	$3, %xmm5, %xmm9
1131        vpxor	%xmm6, %xmm8, %xmm6
1132        # rnd_1: 2 - 3
1133        xorl	%r11d, %edx
1134        andl	%r11d, %ecx
1135        rorl	$5, %edx
1136        xorl	%r13d, %ecx
1137        xorl	%r11d, %edx
1138        addl	%ecx, %r14d
1139        vpxor	%xmm6, %xmm9, %xmm5
1140        vpshufd	$0xfa, %xmm1, %xmm6
1141        # rnd_1: 4 - 5
1142        rorl	$6, %edx
1143        xorl	%r15d, %ebx
1144        addl	%edx, %r14d
1145        movl	%r15d, %ecx
1146        andl	%ebx, %eax
1147        rorl	$9, %ecx
1148        xorl	%r15d, %ecx
1149        xorl	%r8d, %eax
1150        vpsrld	$10, %xmm6, %xmm8
1151        vpsrlq	$19, %xmm6, %xmm7
1152        # rnd_1: 6 - 7
1153        rorl	$11, %ecx
1154        addl	%r14d, %r10d
1155        xorl	%r15d, %ecx
1156        addl	%eax, %r14d
1157        rorl	$2, %ecx
1158        movl	%r10d, %edx
1159        addl	%ecx, %r14d
1160        # rnd_0: 0 - 0
1161        rorl	$14, %edx
1162        vpsrlq	$0x11, %xmm6, %xmm6
1163        vpaddd	%xmm2, %xmm4, %xmm4
1164        # rnd_0: 1 - 3
1165        movl	%r15d, %eax
1166        movl	%r11d, %ecx
1167        addl	40(%rsp), %r13d
1168        xorl	%r12d, %ecx
1169        xorl	%r10d, %edx
1170        andl	%r10d, %ecx
1171        rorl	$5, %edx
1172        xorl	%r12d, %ecx
1173        xorl	%r10d, %edx
1174        addl	%ecx, %r13d
1175        vpxor	%xmm6, %xmm7, %xmm6
1176        vpaddd	%xmm5, %xmm4, %xmm4
1177        # rnd_0: 4 - 4
1178        rorl	$6, %edx
1179        xorl	%r14d, %eax
1180        addl	%edx, %r13d
1181        movl	%r14d, %ecx
1182        vpxor	%xmm6, %xmm8, %xmm8
1183        # rnd_0: 5 - 5
1184        andl	%eax, %ebx
1185        rorl	$9, %ecx
1186        xorl	%r14d, %ecx
1187        xorl	%r15d, %ebx
1188        vpshufb	%xmm11, %xmm8, %xmm8
1189        # rnd_0: 6 - 6
1190        rorl	$11, %ecx
1191        addl	%r13d, %r9d
1192        xorl	%r14d, %ecx
1193        addl	%ebx, %r13d
1194        vpaddd	%xmm8, %xmm4, %xmm4
1195        # rnd_0: 7 - 7
1196        rorl	$2, %ecx
1197        movl	%r9d, %edx
1198        addl	%ecx, %r13d
1199        # rnd_1: 0 - 0
1200        rorl	$14, %edx
1201        vpshufd	$0x50, %xmm4, %xmm6
1202        # rnd_1: 1 - 1
1203        movl	%r14d, %ebx
1204        movl	%r10d, %ecx
1205        addl	44(%rsp), %r12d
1206        xorl	%r11d, %ecx
1207        vpsrlq	$0x11, %xmm6, %xmm8
1208        vpsrlq	$19, %xmm6, %xmm7
1209        # rnd_1: 2 - 3
1210        xorl	%r9d, %edx
1211        andl	%r9d, %ecx
1212        rorl	$5, %edx
1213        xorl	%r11d, %ecx
1214        xorl	%r9d, %edx
1215        addl	%ecx, %r12d
1216        vpsrld	$10, %xmm6, %xmm9
1217        vpxor	%xmm8, %xmm7, %xmm8
1218        # rnd_1: 4 - 5
1219        rorl	$6, %edx
1220        xorl	%r13d, %ebx
1221        addl	%edx, %r12d
1222        movl	%r13d, %ecx
1223        andl	%ebx, %eax
1224        rorl	$9, %ecx
1225        xorl	%r13d, %ecx
1226        xorl	%r14d, %eax
1227        vpxor	%xmm9, %xmm8, %xmm9
1228        # rnd_1: 6 - 6
1229        rorl	$11, %ecx
1230        addl	%r12d, %r8d
1231        xorl	%r13d, %ecx
1232        addl	%eax, %r12d
1233        vpshufb	%xmm12, %xmm9, %xmm9
1234        # rnd_1: 7 - 7
1235        rorl	$2, %ecx
1236        movl	%r8d, %edx
1237        addl	%ecx, %r12d
1238        vpaddd	%xmm4, %xmm9, %xmm2
1239        # msg_sched done: 8-11
1240        # msg_sched: 12-15
1241        # rnd_0: 0 - 0
1242        rorl	$14, %edx
1243        vpalignr	$4, %xmm3, %xmm0, %xmm5
1244        vpalignr	$4, %xmm1, %xmm2, %xmm4
1245        # rnd_0: 1 - 2
1246        movl	%r13d, %eax
1247        movl	%r9d, %ecx
1248        addl	48(%rsp), %r11d
1249        xorl	%r10d, %ecx
1250        xorl	%r8d, %edx
1251        andl	%r8d, %ecx
1252        vpsrld	$7, %xmm5, %xmm6
1253        vpslld	$25, %xmm5, %xmm7
1254        # rnd_0: 3 - 4
1255        rorl	$5, %edx
1256        xorl	%r10d, %ecx
1257        xorl	%r8d, %edx
1258        addl	%ecx, %r11d
1259        rorl	$6, %edx
1260        xorl	%r12d, %eax
1261        addl	%edx, %r11d
1262        movl	%r12d, %ecx
1263        vpsrld	$18, %xmm5, %xmm8
1264        vpslld	$14, %xmm5, %xmm9
1265        # rnd_0: 5 - 6
1266        andl	%eax, %ebx
1267        rorl	$9, %ecx
1268        xorl	%r12d, %ecx
1269        xorl	%r13d, %ebx
1270        rorl	$11, %ecx
1271        addl	%r11d, %r15d
1272        xorl	%r12d, %ecx
1273        addl	%ebx, %r11d
1274        vpor	%xmm6, %xmm7, %xmm6
1275        vpor	%xmm8, %xmm9, %xmm8
1276        # rnd_0: 7 - 7
1277        rorl	$2, %ecx
1278        movl	%r15d, %edx
1279        addl	%ecx, %r11d
1280        # rnd_1: 0 - 1
1281        rorl	$14, %edx
1282        movl	%r12d, %ebx
1283        movl	%r8d, %ecx
1284        addl	52(%rsp), %r10d
1285        xorl	%r9d, %ecx
1286        vpsrld	$3, %xmm5, %xmm9
1287        vpxor	%xmm6, %xmm8, %xmm6
1288        # rnd_1: 2 - 3
1289        xorl	%r15d, %edx
1290        andl	%r15d, %ecx
1291        rorl	$5, %edx
1292        xorl	%r9d, %ecx
1293        xorl	%r15d, %edx
1294        addl	%ecx, %r10d
1295        vpxor	%xmm6, %xmm9, %xmm5
1296        vpshufd	$0xfa, %xmm2, %xmm6
1297        # rnd_1: 4 - 5
1298        rorl	$6, %edx
1299        xorl	%r11d, %ebx
1300        addl	%edx, %r10d
1301        movl	%r11d, %ecx
1302        andl	%ebx, %eax
1303        rorl	$9, %ecx
1304        xorl	%r11d, %ecx
1305        xorl	%r12d, %eax
1306        vpsrld	$10, %xmm6, %xmm8
1307        vpsrlq	$19, %xmm6, %xmm7
1308        # rnd_1: 6 - 7
1309        rorl	$11, %ecx
1310        addl	%r10d, %r14d
1311        xorl	%r11d, %ecx
1312        addl	%eax, %r10d
1313        rorl	$2, %ecx
1314        movl	%r14d, %edx
1315        addl	%ecx, %r10d
1316        # rnd_0: 0 - 0
1317        rorl	$14, %edx
1318        vpsrlq	$0x11, %xmm6, %xmm6
1319        vpaddd	%xmm3, %xmm4, %xmm4
1320        # rnd_0: 1 - 3
1321        movl	%r11d, %eax
1322        movl	%r15d, %ecx
1323        addl	56(%rsp), %r9d
1324        xorl	%r8d, %ecx
1325        xorl	%r14d, %edx
1326        andl	%r14d, %ecx
1327        rorl	$5, %edx
1328        xorl	%r8d, %ecx
1329        xorl	%r14d, %edx
1330        addl	%ecx, %r9d
1331        vpxor	%xmm6, %xmm7, %xmm6
1332        vpaddd	%xmm5, %xmm4, %xmm4
1333        # rnd_0: 4 - 4
1334        rorl	$6, %edx
1335        xorl	%r10d, %eax
1336        addl	%edx, %r9d
1337        movl	%r10d, %ecx
1338        vpxor	%xmm6, %xmm8, %xmm8
1339        # rnd_0: 5 - 5
1340        andl	%eax, %ebx
1341        rorl	$9, %ecx
1342        xorl	%r10d, %ecx
1343        xorl	%r11d, %ebx
1344        vpshufb	%xmm11, %xmm8, %xmm8
1345        # rnd_0: 6 - 6
1346        rorl	$11, %ecx
1347        addl	%r9d, %r13d
1348        xorl	%r10d, %ecx
1349        addl	%ebx, %r9d
1350        vpaddd	%xmm8, %xmm4, %xmm4
1351        # rnd_0: 7 - 7
1352        rorl	$2, %ecx
1353        movl	%r13d, %edx
1354        addl	%ecx, %r9d
1355        # rnd_1: 0 - 0
1356        rorl	$14, %edx
1357        vpshufd	$0x50, %xmm4, %xmm6
1358        # rnd_1: 1 - 1
1359        movl	%r10d, %ebx
1360        movl	%r14d, %ecx
1361        addl	60(%rsp), %r8d
1362        xorl	%r15d, %ecx
1363        vpsrlq	$0x11, %xmm6, %xmm8
1364        vpsrlq	$19, %xmm6, %xmm7
1365        # rnd_1: 2 - 3
1366        xorl	%r13d, %edx
1367        andl	%r13d, %ecx
1368        rorl	$5, %edx
1369        xorl	%r15d, %ecx
1370        xorl	%r13d, %edx
1371        addl	%ecx, %r8d
1372        vpsrld	$10, %xmm6, %xmm9
1373        vpxor	%xmm8, %xmm7, %xmm8
1374        # rnd_1: 4 - 5
1375        rorl	$6, %edx
1376        xorl	%r9d, %ebx
1377        addl	%edx, %r8d
1378        movl	%r9d, %ecx
1379        andl	%ebx, %eax
1380        rorl	$9, %ecx
1381        xorl	%r9d, %ecx
1382        xorl	%r10d, %eax
1383        vpxor	%xmm9, %xmm8, %xmm9
1384        # rnd_1: 6 - 6
1385        rorl	$11, %ecx
1386        addl	%r8d, %r12d
1387        xorl	%r9d, %ecx
1388        addl	%eax, %r8d
1389        vpshufb	%xmm12, %xmm9, %xmm9
1390        # rnd_1: 7 - 7
1391        rorl	$2, %ecx
1392        movl	%r12d, %edx
1393        addl	%ecx, %r8d
1394        vpaddd	%xmm4, %xmm9, %xmm3
1395        # msg_sched done: 12-15
1396        # set_w_k_xfer_4: 8
1397        vpaddd	128+L_avx1_sha256_k(%rip), %xmm0, %xmm4
1398        vpaddd	144+L_avx1_sha256_k(%rip), %xmm1, %xmm5
1399        vmovdqu	%xmm4, (%rsp)
1400        vmovdqu	%xmm5, 16(%rsp)
1401        vpaddd	160+L_avx1_sha256_k(%rip), %xmm2, %xmm6
1402        vpaddd	176+L_avx1_sha256_k(%rip), %xmm3, %xmm7
1403        vmovdqu	%xmm6, 32(%rsp)
1404        vmovdqu	%xmm7, 48(%rsp)
1405        # msg_sched: 0-3
1406        # rnd_0: 0 - 0
1407        rorl	$14, %edx
1408        vpalignr	$4, %xmm0, %xmm1, %xmm5
1409        vpalignr	$4, %xmm2, %xmm3, %xmm4
1410        # rnd_0: 1 - 2
1411        movl	%r9d, %eax
1412        movl	%r13d, %ecx
1413        addl	(%rsp), %r15d
1414        xorl	%r14d, %ecx
1415        xorl	%r12d, %edx
1416        andl	%r12d, %ecx
1417        vpsrld	$7, %xmm5, %xmm6
1418        vpslld	$25, %xmm5, %xmm7
1419        # rnd_0: 3 - 4
1420        rorl	$5, %edx
1421        xorl	%r14d, %ecx
1422        xorl	%r12d, %edx
1423        addl	%ecx, %r15d
1424        rorl	$6, %edx
1425        xorl	%r8d, %eax
1426        addl	%edx, %r15d
1427        movl	%r8d, %ecx
1428        vpsrld	$18, %xmm5, %xmm8
1429        vpslld	$14, %xmm5, %xmm9
1430        # rnd_0: 5 - 6
1431        andl	%eax, %ebx
1432        rorl	$9, %ecx
1433        xorl	%r8d, %ecx
1434        xorl	%r9d, %ebx
1435        rorl	$11, %ecx
1436        addl	%r15d, %r11d
1437        xorl	%r8d, %ecx
1438        addl	%ebx, %r15d
1439        vpor	%xmm6, %xmm7, %xmm6
1440        vpor	%xmm8, %xmm9, %xmm8
1441        # rnd_0: 7 - 7
1442        rorl	$2, %ecx
1443        movl	%r11d, %edx
1444        addl	%ecx, %r15d
1445        # rnd_1: 0 - 1
1446        rorl	$14, %edx
1447        movl	%r8d, %ebx
1448        movl	%r12d, %ecx
1449        addl	4(%rsp), %r14d
1450        xorl	%r13d, %ecx
1451        vpsrld	$3, %xmm5, %xmm9
1452        vpxor	%xmm6, %xmm8, %xmm6
1453        # rnd_1: 2 - 3
1454        xorl	%r11d, %edx
1455        andl	%r11d, %ecx
1456        rorl	$5, %edx
1457        xorl	%r13d, %ecx
1458        xorl	%r11d, %edx
1459        addl	%ecx, %r14d
1460        vpxor	%xmm6, %xmm9, %xmm5
1461        vpshufd	$0xfa, %xmm3, %xmm6
1462        # rnd_1: 4 - 5
1463        rorl	$6, %edx
1464        xorl	%r15d, %ebx
1465        addl	%edx, %r14d
1466        movl	%r15d, %ecx
1467        andl	%ebx, %eax
1468        rorl	$9, %ecx
1469        xorl	%r15d, %ecx
1470        xorl	%r8d, %eax
1471        vpsrld	$10, %xmm6, %xmm8
1472        vpsrlq	$19, %xmm6, %xmm7
1473        # rnd_1: 6 - 7
1474        rorl	$11, %ecx
1475        addl	%r14d, %r10d
1476        xorl	%r15d, %ecx
1477        addl	%eax, %r14d
1478        rorl	$2, %ecx
1479        movl	%r10d, %edx
1480        addl	%ecx, %r14d
1481        # rnd_0: 0 - 0
1482        rorl	$14, %edx
1483        vpsrlq	$0x11, %xmm6, %xmm6
1484        vpaddd	%xmm0, %xmm4, %xmm4
1485        # rnd_0: 1 - 3
1486        movl	%r15d, %eax
1487        movl	%r11d, %ecx
1488        addl	8(%rsp), %r13d
1489        xorl	%r12d, %ecx
1490        xorl	%r10d, %edx
1491        andl	%r10d, %ecx
1492        rorl	$5, %edx
1493        xorl	%r12d, %ecx
1494        xorl	%r10d, %edx
1495        addl	%ecx, %r13d
1496        vpxor	%xmm6, %xmm7, %xmm6
1497        vpaddd	%xmm5, %xmm4, %xmm4
1498        # rnd_0: 4 - 4
1499        rorl	$6, %edx
1500        xorl	%r14d, %eax
1501        addl	%edx, %r13d
1502        movl	%r14d, %ecx
1503        vpxor	%xmm6, %xmm8, %xmm8
1504        # rnd_0: 5 - 5
1505        andl	%eax, %ebx
1506        rorl	$9, %ecx
1507        xorl	%r14d, %ecx
1508        xorl	%r15d, %ebx
1509        vpshufb	%xmm11, %xmm8, %xmm8
1510        # rnd_0: 6 - 6
1511        rorl	$11, %ecx
1512        addl	%r13d, %r9d
1513        xorl	%r14d, %ecx
1514        addl	%ebx, %r13d
1515        vpaddd	%xmm8, %xmm4, %xmm4
1516        # rnd_0: 7 - 7
1517        rorl	$2, %ecx
1518        movl	%r9d, %edx
1519        addl	%ecx, %r13d
1520        # rnd_1: 0 - 0
1521        rorl	$14, %edx
1522        vpshufd	$0x50, %xmm4, %xmm6
1523        # rnd_1: 1 - 1
1524        movl	%r14d, %ebx
1525        movl	%r10d, %ecx
1526        addl	12(%rsp), %r12d
1527        xorl	%r11d, %ecx
1528        vpsrlq	$0x11, %xmm6, %xmm8
1529        vpsrlq	$19, %xmm6, %xmm7
1530        # rnd_1: 2 - 3
1531        xorl	%r9d, %edx
1532        andl	%r9d, %ecx
1533        rorl	$5, %edx
1534        xorl	%r11d, %ecx
1535        xorl	%r9d, %edx
1536        addl	%ecx, %r12d
1537        vpsrld	$10, %xmm6, %xmm9
1538        vpxor	%xmm8, %xmm7, %xmm8
1539        # rnd_1: 4 - 5
1540        rorl	$6, %edx
1541        xorl	%r13d, %ebx
1542        addl	%edx, %r12d
1543        movl	%r13d, %ecx
1544        andl	%ebx, %eax
1545        rorl	$9, %ecx
1546        xorl	%r13d, %ecx
1547        xorl	%r14d, %eax
1548        vpxor	%xmm9, %xmm8, %xmm9
1549        # rnd_1: 6 - 6
1550        rorl	$11, %ecx
1551        addl	%r12d, %r8d
1552        xorl	%r13d, %ecx
1553        addl	%eax, %r12d
1554        vpshufb	%xmm12, %xmm9, %xmm9
1555        # rnd_1: 7 - 7
1556        rorl	$2, %ecx
1557        movl	%r8d, %edx
1558        addl	%ecx, %r12d
1559        vpaddd	%xmm4, %xmm9, %xmm0
1560        # msg_sched done: 0-3
1561        # msg_sched: 4-7
1562        # rnd_0: 0 - 0
1563        rorl	$14, %edx
1564        vpalignr	$4, %xmm1, %xmm2, %xmm5
1565        vpalignr	$4, %xmm3, %xmm0, %xmm4
1566        # rnd_0: 1 - 2
1567        movl	%r13d, %eax
1568        movl	%r9d, %ecx
1569        addl	16(%rsp), %r11d
1570        xorl	%r10d, %ecx
1571        xorl	%r8d, %edx
1572        andl	%r8d, %ecx
1573        vpsrld	$7, %xmm5, %xmm6
1574        vpslld	$25, %xmm5, %xmm7
1575        # rnd_0: 3 - 4
1576        rorl	$5, %edx
1577        xorl	%r10d, %ecx
1578        xorl	%r8d, %edx
1579        addl	%ecx, %r11d
1580        rorl	$6, %edx
1581        xorl	%r12d, %eax
1582        addl	%edx, %r11d
1583        movl	%r12d, %ecx
1584        vpsrld	$18, %xmm5, %xmm8
1585        vpslld	$14, %xmm5, %xmm9
1586        # rnd_0: 5 - 6
1587        andl	%eax, %ebx
1588        rorl	$9, %ecx
1589        xorl	%r12d, %ecx
1590        xorl	%r13d, %ebx
1591        rorl	$11, %ecx
1592        addl	%r11d, %r15d
1593        xorl	%r12d, %ecx
1594        addl	%ebx, %r11d
1595        vpor	%xmm6, %xmm7, %xmm6
1596        vpor	%xmm8, %xmm9, %xmm8
1597        # rnd_0: 7 - 7
1598        rorl	$2, %ecx
1599        movl	%r15d, %edx
1600        addl	%ecx, %r11d
1601        # rnd_1: 0 - 1
1602        rorl	$14, %edx
1603        movl	%r12d, %ebx
1604        movl	%r8d, %ecx
1605        addl	20(%rsp), %r10d
1606        xorl	%r9d, %ecx
1607        vpsrld	$3, %xmm5, %xmm9
1608        vpxor	%xmm6, %xmm8, %xmm6
1609        # rnd_1: 2 - 3
1610        xorl	%r15d, %edx
1611        andl	%r15d, %ecx
1612        rorl	$5, %edx
1613        xorl	%r9d, %ecx
1614        xorl	%r15d, %edx
1615        addl	%ecx, %r10d
1616        vpxor	%xmm6, %xmm9, %xmm5
1617        vpshufd	$0xfa, %xmm0, %xmm6
1618        # rnd_1: 4 - 5
1619        rorl	$6, %edx
1620        xorl	%r11d, %ebx
1621        addl	%edx, %r10d
1622        movl	%r11d, %ecx
1623        andl	%ebx, %eax
1624        rorl	$9, %ecx
1625        xorl	%r11d, %ecx
1626        xorl	%r12d, %eax
1627        vpsrld	$10, %xmm6, %xmm8
1628        vpsrlq	$19, %xmm6, %xmm7
1629        # rnd_1: 6 - 7
1630        rorl	$11, %ecx
1631        addl	%r10d, %r14d
1632        xorl	%r11d, %ecx
1633        addl	%eax, %r10d
1634        rorl	$2, %ecx
1635        movl	%r14d, %edx
1636        addl	%ecx, %r10d
1637        # rnd_0: 0 - 0
1638        rorl	$14, %edx
1639        vpsrlq	$0x11, %xmm6, %xmm6
1640        vpaddd	%xmm1, %xmm4, %xmm4
1641        # rnd_0: 1 - 3
1642        movl	%r11d, %eax
1643        movl	%r15d, %ecx
1644        addl	24(%rsp), %r9d
1645        xorl	%r8d, %ecx
1646        xorl	%r14d, %edx
1647        andl	%r14d, %ecx
1648        rorl	$5, %edx
1649        xorl	%r8d, %ecx
1650        xorl	%r14d, %edx
1651        addl	%ecx, %r9d
1652        vpxor	%xmm6, %xmm7, %xmm6
1653        vpaddd	%xmm5, %xmm4, %xmm4
1654        # rnd_0: 4 - 4
1655        rorl	$6, %edx
1656        xorl	%r10d, %eax
1657        addl	%edx, %r9d
1658        movl	%r10d, %ecx
1659        vpxor	%xmm6, %xmm8, %xmm8
1660        # rnd_0: 5 - 5
1661        andl	%eax, %ebx
1662        rorl	$9, %ecx
1663        xorl	%r10d, %ecx
1664        xorl	%r11d, %ebx
1665        vpshufb	%xmm11, %xmm8, %xmm8
1666        # rnd_0: 6 - 6
1667        rorl	$11, %ecx
1668        addl	%r9d, %r13d
1669        xorl	%r10d, %ecx
1670        addl	%ebx, %r9d
1671        vpaddd	%xmm8, %xmm4, %xmm4
1672        # rnd_0: 7 - 7
1673        rorl	$2, %ecx
1674        movl	%r13d, %edx
1675        addl	%ecx, %r9d
1676        # rnd_1: 0 - 0
1677        rorl	$14, %edx
1678        vpshufd	$0x50, %xmm4, %xmm6
1679        # rnd_1: 1 - 1
1680        movl	%r10d, %ebx
1681        movl	%r14d, %ecx
1682        addl	28(%rsp), %r8d
1683        xorl	%r15d, %ecx
1684        vpsrlq	$0x11, %xmm6, %xmm8
1685        vpsrlq	$19, %xmm6, %xmm7
1686        # rnd_1: 2 - 3
1687        xorl	%r13d, %edx
1688        andl	%r13d, %ecx
1689        rorl	$5, %edx
1690        xorl	%r15d, %ecx
1691        xorl	%r13d, %edx
1692        addl	%ecx, %r8d
1693        vpsrld	$10, %xmm6, %xmm9
1694        vpxor	%xmm8, %xmm7, %xmm8
1695        # rnd_1: 4 - 5
1696        rorl	$6, %edx
1697        xorl	%r9d, %ebx
1698        addl	%edx, %r8d
1699        movl	%r9d, %ecx
1700        andl	%ebx, %eax
1701        rorl	$9, %ecx
1702        xorl	%r9d, %ecx
1703        xorl	%r10d, %eax
1704        vpxor	%xmm9, %xmm8, %xmm9
1705        # rnd_1: 6 - 6
1706        rorl	$11, %ecx
1707        addl	%r8d, %r12d
1708        xorl	%r9d, %ecx
1709        addl	%eax, %r8d
1710        vpshufb	%xmm12, %xmm9, %xmm9
1711        # rnd_1: 7 - 7
1712        rorl	$2, %ecx
1713        movl	%r12d, %edx
1714        addl	%ecx, %r8d
1715        vpaddd	%xmm4, %xmm9, %xmm1
1716        # msg_sched done: 4-7
1717        # msg_sched: 8-11
1718        # rnd_0: 0 - 0
1719        rorl	$14, %edx
1720        vpalignr	$4, %xmm2, %xmm3, %xmm5
1721        vpalignr	$4, %xmm0, %xmm1, %xmm4
1722        # rnd_0: 1 - 2
1723        movl	%r9d, %eax
1724        movl	%r13d, %ecx
1725        addl	32(%rsp), %r15d
1726        xorl	%r14d, %ecx
1727        xorl	%r12d, %edx
1728        andl	%r12d, %ecx
1729        vpsrld	$7, %xmm5, %xmm6
1730        vpslld	$25, %xmm5, %xmm7
1731        # rnd_0: 3 - 4
1732        rorl	$5, %edx
1733        xorl	%r14d, %ecx
1734        xorl	%r12d, %edx
1735        addl	%ecx, %r15d
1736        rorl	$6, %edx
1737        xorl	%r8d, %eax
1738        addl	%edx, %r15d
1739        movl	%r8d, %ecx
1740        vpsrld	$18, %xmm5, %xmm8
1741        vpslld	$14, %xmm5, %xmm9
1742        # rnd_0: 5 - 6
1743        andl	%eax, %ebx
1744        rorl	$9, %ecx
1745        xorl	%r8d, %ecx
1746        xorl	%r9d, %ebx
1747        rorl	$11, %ecx
1748        addl	%r15d, %r11d
1749        xorl	%r8d, %ecx
1750        addl	%ebx, %r15d
1751        vpor	%xmm6, %xmm7, %xmm6
1752        vpor	%xmm8, %xmm9, %xmm8
1753        # rnd_0: 7 - 7
1754        rorl	$2, %ecx
1755        movl	%r11d, %edx
1756        addl	%ecx, %r15d
1757        # rnd_1: 0 - 1
1758        rorl	$14, %edx
1759        movl	%r8d, %ebx
1760        movl	%r12d, %ecx
1761        addl	36(%rsp), %r14d
1762        xorl	%r13d, %ecx
1763        vpsrld	$3, %xmm5, %xmm9
1764        vpxor	%xmm6, %xmm8, %xmm6
1765        # rnd_1: 2 - 3
1766        xorl	%r11d, %edx
1767        andl	%r11d, %ecx
1768        rorl	$5, %edx
1769        xorl	%r13d, %ecx
1770        xorl	%r11d, %edx
1771        addl	%ecx, %r14d
1772        vpxor	%xmm6, %xmm9, %xmm5
1773        vpshufd	$0xfa, %xmm1, %xmm6
1774        # rnd_1: 4 - 5
1775        rorl	$6, %edx
1776        xorl	%r15d, %ebx
1777        addl	%edx, %r14d
1778        movl	%r15d, %ecx
1779        andl	%ebx, %eax
1780        rorl	$9, %ecx
1781        xorl	%r15d, %ecx
1782        xorl	%r8d, %eax
1783        vpsrld	$10, %xmm6, %xmm8
1784        vpsrlq	$19, %xmm6, %xmm7
1785        # rnd_1: 6 - 7
1786        rorl	$11, %ecx
1787        addl	%r14d, %r10d
1788        xorl	%r15d, %ecx
1789        addl	%eax, %r14d
1790        rorl	$2, %ecx
1791        movl	%r10d, %edx
1792        addl	%ecx, %r14d
1793        # rnd_0: 0 - 0
1794        rorl	$14, %edx
1795        vpsrlq	$0x11, %xmm6, %xmm6
1796        vpaddd	%xmm2, %xmm4, %xmm4
1797        # rnd_0: 1 - 3
1798        movl	%r15d, %eax
1799        movl	%r11d, %ecx
1800        addl	40(%rsp), %r13d
1801        xorl	%r12d, %ecx
1802        xorl	%r10d, %edx
1803        andl	%r10d, %ecx
1804        rorl	$5, %edx
1805        xorl	%r12d, %ecx
1806        xorl	%r10d, %edx
1807        addl	%ecx, %r13d
1808        vpxor	%xmm6, %xmm7, %xmm6
1809        vpaddd	%xmm5, %xmm4, %xmm4
1810        # rnd_0: 4 - 4
1811        rorl	$6, %edx
1812        xorl	%r14d, %eax
1813        addl	%edx, %r13d
1814        movl	%r14d, %ecx
1815        vpxor	%xmm6, %xmm8, %xmm8
1816        # rnd_0: 5 - 5
1817        andl	%eax, %ebx
1818        rorl	$9, %ecx
1819        xorl	%r14d, %ecx
1820        xorl	%r15d, %ebx
1821        vpshufb	%xmm11, %xmm8, %xmm8
1822        # rnd_0: 6 - 6
1823        rorl	$11, %ecx
1824        addl	%r13d, %r9d
1825        xorl	%r14d, %ecx
1826        addl	%ebx, %r13d
1827        vpaddd	%xmm8, %xmm4, %xmm4
1828        # rnd_0: 7 - 7
1829        rorl	$2, %ecx
1830        movl	%r9d, %edx
1831        addl	%ecx, %r13d
1832        # rnd_1: 0 - 0
1833        rorl	$14, %edx
1834        vpshufd	$0x50, %xmm4, %xmm6
1835        # rnd_1: 1 - 1
1836        movl	%r14d, %ebx
1837        movl	%r10d, %ecx
1838        addl	44(%rsp), %r12d
1839        xorl	%r11d, %ecx
1840        vpsrlq	$0x11, %xmm6, %xmm8
1841        vpsrlq	$19, %xmm6, %xmm7
1842        # rnd_1: 2 - 3
1843        xorl	%r9d, %edx
1844        andl	%r9d, %ecx
1845        rorl	$5, %edx
1846        xorl	%r11d, %ecx
1847        xorl	%r9d, %edx
1848        addl	%ecx, %r12d
1849        vpsrld	$10, %xmm6, %xmm9
1850        vpxor	%xmm8, %xmm7, %xmm8
1851        # rnd_1: 4 - 5
1852        rorl	$6, %edx
1853        xorl	%r13d, %ebx
1854        addl	%edx, %r12d
1855        movl	%r13d, %ecx
1856        andl	%ebx, %eax
1857        rorl	$9, %ecx
1858        xorl	%r13d, %ecx
1859        xorl	%r14d, %eax
1860        vpxor	%xmm9, %xmm8, %xmm9
1861        # rnd_1: 6 - 6
1862        rorl	$11, %ecx
1863        addl	%r12d, %r8d
1864        xorl	%r13d, %ecx
1865        addl	%eax, %r12d
1866        vpshufb	%xmm12, %xmm9, %xmm9
1867        # rnd_1: 7 - 7
1868        rorl	$2, %ecx
1869        movl	%r8d, %edx
1870        addl	%ecx, %r12d
1871        vpaddd	%xmm4, %xmm9, %xmm2
1872        # msg_sched done: 8-11
1873        # msg_sched: 12-15
1874        # rnd_0: 0 - 0
1875        rorl	$14, %edx
1876        vpalignr	$4, %xmm3, %xmm0, %xmm5
1877        vpalignr	$4, %xmm1, %xmm2, %xmm4
1878        # rnd_0: 1 - 2
1879        movl	%r13d, %eax
1880        movl	%r9d, %ecx
1881        addl	48(%rsp), %r11d
1882        xorl	%r10d, %ecx
1883        xorl	%r8d, %edx
1884        andl	%r8d, %ecx
1885        vpsrld	$7, %xmm5, %xmm6
1886        vpslld	$25, %xmm5, %xmm7
1887        # rnd_0: 3 - 4
1888        rorl	$5, %edx
1889        xorl	%r10d, %ecx
1890        xorl	%r8d, %edx
1891        addl	%ecx, %r11d
1892        rorl	$6, %edx
1893        xorl	%r12d, %eax
1894        addl	%edx, %r11d
1895        movl	%r12d, %ecx
1896        vpsrld	$18, %xmm5, %xmm8
1897        vpslld	$14, %xmm5, %xmm9
1898        # rnd_0: 5 - 6
1899        andl	%eax, %ebx
1900        rorl	$9, %ecx
1901        xorl	%r12d, %ecx
1902        xorl	%r13d, %ebx
1903        rorl	$11, %ecx
1904        addl	%r11d, %r15d
1905        xorl	%r12d, %ecx
1906        addl	%ebx, %r11d
1907        vpor	%xmm6, %xmm7, %xmm6
1908        vpor	%xmm8, %xmm9, %xmm8
1909        # rnd_0: 7 - 7
1910        rorl	$2, %ecx
1911        movl	%r15d, %edx
1912        addl	%ecx, %r11d
1913        # rnd_1: 0 - 1
1914        rorl	$14, %edx
1915        movl	%r12d, %ebx
1916        movl	%r8d, %ecx
1917        addl	52(%rsp), %r10d
1918        xorl	%r9d, %ecx
1919        vpsrld	$3, %xmm5, %xmm9
1920        vpxor	%xmm6, %xmm8, %xmm6
1921        # rnd_1: 2 - 3
1922        xorl	%r15d, %edx
1923        andl	%r15d, %ecx
1924        rorl	$5, %edx
1925        xorl	%r9d, %ecx
1926        xorl	%r15d, %edx
1927        addl	%ecx, %r10d
1928        vpxor	%xmm6, %xmm9, %xmm5
1929        vpshufd	$0xfa, %xmm2, %xmm6
1930        # rnd_1: 4 - 5
1931        rorl	$6, %edx
1932        xorl	%r11d, %ebx
1933        addl	%edx, %r10d
1934        movl	%r11d, %ecx
1935        andl	%ebx, %eax
1936        rorl	$9, %ecx
1937        xorl	%r11d, %ecx
1938        xorl	%r12d, %eax
1939        vpsrld	$10, %xmm6, %xmm8
1940        vpsrlq	$19, %xmm6, %xmm7
1941        # rnd_1: 6 - 7
1942        rorl	$11, %ecx
1943        addl	%r10d, %r14d
1944        xorl	%r11d, %ecx
1945        addl	%eax, %r10d
1946        rorl	$2, %ecx
1947        movl	%r14d, %edx
1948        addl	%ecx, %r10d
1949        # rnd_0: 0 - 0
1950        rorl	$14, %edx
1951        vpsrlq	$0x11, %xmm6, %xmm6
1952        vpaddd	%xmm3, %xmm4, %xmm4
1953        # rnd_0: 1 - 3
1954        movl	%r11d, %eax
1955        movl	%r15d, %ecx
1956        addl	56(%rsp), %r9d
1957        xorl	%r8d, %ecx
1958        xorl	%r14d, %edx
1959        andl	%r14d, %ecx
1960        rorl	$5, %edx
1961        xorl	%r8d, %ecx
1962        xorl	%r14d, %edx
1963        addl	%ecx, %r9d
1964        vpxor	%xmm6, %xmm7, %xmm6
1965        vpaddd	%xmm5, %xmm4, %xmm4
1966        # rnd_0: 4 - 4
1967        rorl	$6, %edx
1968        xorl	%r10d, %eax
1969        addl	%edx, %r9d
1970        movl	%r10d, %ecx
1971        vpxor	%xmm6, %xmm8, %xmm8
1972        # rnd_0: 5 - 5
1973        andl	%eax, %ebx
1974        rorl	$9, %ecx
1975        xorl	%r10d, %ecx
1976        xorl	%r11d, %ebx
1977        vpshufb	%xmm11, %xmm8, %xmm8
1978        # rnd_0: 6 - 6
1979        rorl	$11, %ecx
1980        addl	%r9d, %r13d
1981        xorl	%r10d, %ecx
1982        addl	%ebx, %r9d
1983        vpaddd	%xmm8, %xmm4, %xmm4
1984        # rnd_0: 7 - 7
1985        rorl	$2, %ecx
1986        movl	%r13d, %edx
1987        addl	%ecx, %r9d
1988        # rnd_1: 0 - 0
1989        rorl	$14, %edx
1990        vpshufd	$0x50, %xmm4, %xmm6
1991        # rnd_1: 1 - 1
1992        movl	%r10d, %ebx
1993        movl	%r14d, %ecx
1994        addl	60(%rsp), %r8d
1995        xorl	%r15d, %ecx
1996        vpsrlq	$0x11, %xmm6, %xmm8
1997        vpsrlq	$19, %xmm6, %xmm7
1998        # rnd_1: 2 - 3
1999        xorl	%r13d, %edx
2000        andl	%r13d, %ecx
2001        rorl	$5, %edx
2002        xorl	%r15d, %ecx
2003        xorl	%r13d, %edx
2004        addl	%ecx, %r8d
2005        vpsrld	$10, %xmm6, %xmm9
2006        vpxor	%xmm8, %xmm7, %xmm8
2007        # rnd_1: 4 - 5
2008        rorl	$6, %edx
2009        xorl	%r9d, %ebx
2010        addl	%edx, %r8d
2011        movl	%r9d, %ecx
2012        andl	%ebx, %eax
2013        rorl	$9, %ecx
2014        xorl	%r9d, %ecx
2015        xorl	%r10d, %eax
2016        vpxor	%xmm9, %xmm8, %xmm9
2017        # rnd_1: 6 - 6
2018        rorl	$11, %ecx
2019        addl	%r8d, %r12d
2020        xorl	%r9d, %ecx
2021        addl	%eax, %r8d
2022        vpshufb	%xmm12, %xmm9, %xmm9
2023        # rnd_1: 7 - 7
2024        rorl	$2, %ecx
2025        movl	%r12d, %edx
2026        addl	%ecx, %r8d
2027        vpaddd	%xmm4, %xmm9, %xmm3
2028        # msg_sched done: 12-15
2029        # set_w_k_xfer_4: 12
2030        vpaddd	192+L_avx1_sha256_k(%rip), %xmm0, %xmm4
2031        vpaddd	208+L_avx1_sha256_k(%rip), %xmm1, %xmm5
2032        vmovdqu	%xmm4, (%rsp)
2033        vmovdqu	%xmm5, 16(%rsp)
2034        vpaddd	224+L_avx1_sha256_k(%rip), %xmm2, %xmm6
2035        vpaddd	240+L_avx1_sha256_k(%rip), %xmm3, %xmm7
2036        vmovdqu	%xmm6, 32(%rsp)
2037        vmovdqu	%xmm7, 48(%rsp)
2038        # rnd_all_4: 0-3
2039        addl	(%rsp), %r15d
2040        movl	%r13d, %ecx
2041        movl	%r9d, %eax
2042        xorl	%r14d, %ecx
2043        rorl	$14, %edx
2044        andl	%r12d, %ecx
2045        xorl	%r12d, %edx
2046        xorl	%r14d, %ecx
2047        rorl	$5, %edx
2048        addl	%ecx, %r15d
2049        xorl	%r12d, %edx
2050        xorl	%r8d, %eax
2051        rorl	$6, %edx
2052        movl	%r8d, %ecx
2053        addl	%edx, %r15d
2054        rorl	$9, %ecx
2055        andl	%eax, %ebx
2056        xorl	%r8d, %ecx
2057        xorl	%r9d, %ebx
2058        rorl	$11, %ecx
2059        addl	%r15d, %r11d
2060        xorl	%r8d, %ecx
2061        addl	%ebx, %r15d
2062        rorl	$2, %ecx
2063        movl	%r11d, %edx
2064        addl	%ecx, %r15d
2065        addl	4(%rsp), %r14d
2066        movl	%r12d, %ecx
2067        movl	%r8d, %ebx
2068        xorl	%r13d, %ecx
2069        rorl	$14, %edx
2070        andl	%r11d, %ecx
2071        xorl	%r11d, %edx
2072        xorl	%r13d, %ecx
2073        rorl	$5, %edx
2074        addl	%ecx, %r14d
2075        xorl	%r11d, %edx
2076        xorl	%r15d, %ebx
2077        rorl	$6, %edx
2078        movl	%r15d, %ecx
2079        addl	%edx, %r14d
2080        rorl	$9, %ecx
2081        andl	%ebx, %eax
2082        xorl	%r15d, %ecx
2083        xorl	%r8d, %eax
2084        rorl	$11, %ecx
2085        addl	%r14d, %r10d
2086        xorl	%r15d, %ecx
2087        addl	%eax, %r14d
2088        rorl	$2, %ecx
2089        movl	%r10d, %edx
2090        addl	%ecx, %r14d
2091        addl	8(%rsp), %r13d
2092        movl	%r11d, %ecx
2093        movl	%r15d, %eax
2094        xorl	%r12d, %ecx
2095        rorl	$14, %edx
2096        andl	%r10d, %ecx
2097        xorl	%r10d, %edx
2098        xorl	%r12d, %ecx
2099        rorl	$5, %edx
2100        addl	%ecx, %r13d
2101        xorl	%r10d, %edx
2102        xorl	%r14d, %eax
2103        rorl	$6, %edx
2104        movl	%r14d, %ecx
2105        addl	%edx, %r13d
2106        rorl	$9, %ecx
2107        andl	%eax, %ebx
2108        xorl	%r14d, %ecx
2109        xorl	%r15d, %ebx
2110        rorl	$11, %ecx
2111        addl	%r13d, %r9d
2112        xorl	%r14d, %ecx
2113        addl	%ebx, %r13d
2114        rorl	$2, %ecx
2115        movl	%r9d, %edx
2116        addl	%ecx, %r13d
2117        addl	12(%rsp), %r12d
2118        movl	%r10d, %ecx
2119        movl	%r14d, %ebx
2120        xorl	%r11d, %ecx
2121        rorl	$14, %edx
2122        andl	%r9d, %ecx
2123        xorl	%r9d, %edx
2124        xorl	%r11d, %ecx
2125        rorl	$5, %edx
2126        addl	%ecx, %r12d
2127        xorl	%r9d, %edx
2128        xorl	%r13d, %ebx
2129        rorl	$6, %edx
2130        movl	%r13d, %ecx
2131        addl	%edx, %r12d
2132        rorl	$9, %ecx
2133        andl	%ebx, %eax
2134        xorl	%r13d, %ecx
2135        xorl	%r14d, %eax
2136        rorl	$11, %ecx
2137        addl	%r12d, %r8d
2138        xorl	%r13d, %ecx
2139        addl	%eax, %r12d
2140        rorl	$2, %ecx
2141        movl	%r8d, %edx
2142        addl	%ecx, %r12d
2143        # rnd_all_4: 1-4
2144        addl	16(%rsp), %r11d
2145        movl	%r9d, %ecx
2146        movl	%r13d, %eax
2147        xorl	%r10d, %ecx
2148        rorl	$14, %edx
2149        andl	%r8d, %ecx
2150        xorl	%r8d, %edx
2151        xorl	%r10d, %ecx
2152        rorl	$5, %edx
2153        addl	%ecx, %r11d
2154        xorl	%r8d, %edx
2155        xorl	%r12d, %eax
2156        rorl	$6, %edx
2157        movl	%r12d, %ecx
2158        addl	%edx, %r11d
2159        rorl	$9, %ecx
2160        andl	%eax, %ebx
2161        xorl	%r12d, %ecx
2162        xorl	%r13d, %ebx
2163        rorl	$11, %ecx
2164        addl	%r11d, %r15d
2165        xorl	%r12d, %ecx
2166        addl	%ebx, %r11d
2167        rorl	$2, %ecx
2168        movl	%r15d, %edx
2169        addl	%ecx, %r11d
2170        addl	20(%rsp), %r10d
2171        movl	%r8d, %ecx
2172        movl	%r12d, %ebx
2173        xorl	%r9d, %ecx
2174        rorl	$14, %edx
2175        andl	%r15d, %ecx
2176        xorl	%r15d, %edx
2177        xorl	%r9d, %ecx
2178        rorl	$5, %edx
2179        addl	%ecx, %r10d
2180        xorl	%r15d, %edx
2181        xorl	%r11d, %ebx
2182        rorl	$6, %edx
2183        movl	%r11d, %ecx
2184        addl	%edx, %r10d
2185        rorl	$9, %ecx
2186        andl	%ebx, %eax
2187        xorl	%r11d, %ecx
2188        xorl	%r12d, %eax
2189        rorl	$11, %ecx
2190        addl	%r10d, %r14d
2191        xorl	%r11d, %ecx
2192        addl	%eax, %r10d
2193        rorl	$2, %ecx
2194        movl	%r14d, %edx
2195        addl	%ecx, %r10d
2196        addl	24(%rsp), %r9d
2197        movl	%r15d, %ecx
2198        movl	%r11d, %eax
2199        xorl	%r8d, %ecx
2200        rorl	$14, %edx
2201        andl	%r14d, %ecx
2202        xorl	%r14d, %edx
2203        xorl	%r8d, %ecx
2204        rorl	$5, %edx
2205        addl	%ecx, %r9d
2206        xorl	%r14d, %edx
2207        xorl	%r10d, %eax
2208        rorl	$6, %edx
2209        movl	%r10d, %ecx
2210        addl	%edx, %r9d
2211        rorl	$9, %ecx
2212        andl	%eax, %ebx
2213        xorl	%r10d, %ecx
2214        xorl	%r11d, %ebx
2215        rorl	$11, %ecx
2216        addl	%r9d, %r13d
2217        xorl	%r10d, %ecx
2218        addl	%ebx, %r9d
2219        rorl	$2, %ecx
2220        movl	%r13d, %edx
2221        addl	%ecx, %r9d
2222        addl	28(%rsp), %r8d
2223        movl	%r14d, %ecx
2224        movl	%r10d, %ebx
2225        xorl	%r15d, %ecx
2226        rorl	$14, %edx
2227        andl	%r13d, %ecx
2228        xorl	%r13d, %edx
2229        xorl	%r15d, %ecx
2230        rorl	$5, %edx
2231        addl	%ecx, %r8d
2232        xorl	%r13d, %edx
2233        xorl	%r9d, %ebx
2234        rorl	$6, %edx
2235        movl	%r9d, %ecx
2236        addl	%edx, %r8d
2237        rorl	$9, %ecx
2238        andl	%ebx, %eax
2239        xorl	%r9d, %ecx
2240        xorl	%r10d, %eax
2241        rorl	$11, %ecx
2242        addl	%r8d, %r12d
2243        xorl	%r9d, %ecx
2244        addl	%eax, %r8d
2245        rorl	$2, %ecx
2246        movl	%r12d, %edx
2247        addl	%ecx, %r8d
2248        # rnd_all_4: 2-5
2249        addl	32(%rsp), %r15d
2250        movl	%r13d, %ecx
2251        movl	%r9d, %eax
2252        xorl	%r14d, %ecx
2253        rorl	$14, %edx
2254        andl	%r12d, %ecx
2255        xorl	%r12d, %edx
2256        xorl	%r14d, %ecx
2257        rorl	$5, %edx
2258        addl	%ecx, %r15d
2259        xorl	%r12d, %edx
2260        xorl	%r8d, %eax
2261        rorl	$6, %edx
2262        movl	%r8d, %ecx
2263        addl	%edx, %r15d
2264        rorl	$9, %ecx
2265        andl	%eax, %ebx
2266        xorl	%r8d, %ecx
2267        xorl	%r9d, %ebx
2268        rorl	$11, %ecx
2269        addl	%r15d, %r11d
2270        xorl	%r8d, %ecx
2271        addl	%ebx, %r15d
2272        rorl	$2, %ecx
2273        movl	%r11d, %edx
2274        addl	%ecx, %r15d
2275        addl	36(%rsp), %r14d
2276        movl	%r12d, %ecx
2277        movl	%r8d, %ebx
2278        xorl	%r13d, %ecx
2279        rorl	$14, %edx
2280        andl	%r11d, %ecx
2281        xorl	%r11d, %edx
2282        xorl	%r13d, %ecx
2283        rorl	$5, %edx
2284        addl	%ecx, %r14d
2285        xorl	%r11d, %edx
2286        xorl	%r15d, %ebx
2287        rorl	$6, %edx
2288        movl	%r15d, %ecx
2289        addl	%edx, %r14d
2290        rorl	$9, %ecx
2291        andl	%ebx, %eax
2292        xorl	%r15d, %ecx
2293        xorl	%r8d, %eax
2294        rorl	$11, %ecx
2295        addl	%r14d, %r10d
2296        xorl	%r15d, %ecx
2297        addl	%eax, %r14d
2298        rorl	$2, %ecx
2299        movl	%r10d, %edx
2300        addl	%ecx, %r14d
2301        addl	40(%rsp), %r13d
2302        movl	%r11d, %ecx
2303        movl	%r15d, %eax
2304        xorl	%r12d, %ecx
2305        rorl	$14, %edx
2306        andl	%r10d, %ecx
2307        xorl	%r10d, %edx
2308        xorl	%r12d, %ecx
2309        rorl	$5, %edx
2310        addl	%ecx, %r13d
2311        xorl	%r10d, %edx
2312        xorl	%r14d, %eax
2313        rorl	$6, %edx
2314        movl	%r14d, %ecx
2315        addl	%edx, %r13d
2316        rorl	$9, %ecx
2317        andl	%eax, %ebx
2318        xorl	%r14d, %ecx
2319        xorl	%r15d, %ebx
2320        rorl	$11, %ecx
2321        addl	%r13d, %r9d
2322        xorl	%r14d, %ecx
2323        addl	%ebx, %r13d
2324        rorl	$2, %ecx
2325        movl	%r9d, %edx
2326        addl	%ecx, %r13d
2327        addl	44(%rsp), %r12d
2328        movl	%r10d, %ecx
2329        movl	%r14d, %ebx
2330        xorl	%r11d, %ecx
2331        rorl	$14, %edx
2332        andl	%r9d, %ecx
2333        xorl	%r9d, %edx
2334        xorl	%r11d, %ecx
2335        rorl	$5, %edx
2336        addl	%ecx, %r12d
2337        xorl	%r9d, %edx
2338        xorl	%r13d, %ebx
2339        rorl	$6, %edx
2340        movl	%r13d, %ecx
2341        addl	%edx, %r12d
2342        rorl	$9, %ecx
2343        andl	%ebx, %eax
2344        xorl	%r13d, %ecx
2345        xorl	%r14d, %eax
2346        rorl	$11, %ecx
2347        addl	%r12d, %r8d
2348        xorl	%r13d, %ecx
2349        addl	%eax, %r12d
2350        rorl	$2, %ecx
2351        movl	%r8d, %edx
2352        addl	%ecx, %r12d
2353        # rnd_all_4: 3-6
2354        addl	48(%rsp), %r11d
2355        movl	%r9d, %ecx
2356        movl	%r13d, %eax
2357        xorl	%r10d, %ecx
2358        rorl	$14, %edx
2359        andl	%r8d, %ecx
2360        xorl	%r8d, %edx
2361        xorl	%r10d, %ecx
2362        rorl	$5, %edx
2363        addl	%ecx, %r11d
2364        xorl	%r8d, %edx
2365        xorl	%r12d, %eax
2366        rorl	$6, %edx
2367        movl	%r12d, %ecx
2368        addl	%edx, %r11d
2369        rorl	$9, %ecx
2370        andl	%eax, %ebx
2371        xorl	%r12d, %ecx
2372        xorl	%r13d, %ebx
2373        rorl	$11, %ecx
2374        addl	%r11d, %r15d
2375        xorl	%r12d, %ecx
2376        addl	%ebx, %r11d
2377        rorl	$2, %ecx
2378        movl	%r15d, %edx
2379        addl	%ecx, %r11d
2380        addl	52(%rsp), %r10d
2381        movl	%r8d, %ecx
2382        movl	%r12d, %ebx
2383        xorl	%r9d, %ecx
2384        rorl	$14, %edx
2385        andl	%r15d, %ecx
2386        xorl	%r15d, %edx
2387        xorl	%r9d, %ecx
2388        rorl	$5, %edx
2389        addl	%ecx, %r10d
2390        xorl	%r15d, %edx
2391        xorl	%r11d, %ebx
2392        rorl	$6, %edx
2393        movl	%r11d, %ecx
2394        addl	%edx, %r10d
2395        rorl	$9, %ecx
2396        andl	%ebx, %eax
2397        xorl	%r11d, %ecx
2398        xorl	%r12d, %eax
2399        rorl	$11, %ecx
2400        addl	%r10d, %r14d
2401        xorl	%r11d, %ecx
2402        addl	%eax, %r10d
2403        rorl	$2, %ecx
2404        movl	%r14d, %edx
2405        addl	%ecx, %r10d
2406        addl	56(%rsp), %r9d
2407        movl	%r15d, %ecx
2408        movl	%r11d, %eax
2409        xorl	%r8d, %ecx
2410        rorl	$14, %edx
2411        andl	%r14d, %ecx
2412        xorl	%r14d, %edx
2413        xorl	%r8d, %ecx
2414        rorl	$5, %edx
2415        addl	%ecx, %r9d
2416        xorl	%r14d, %edx
2417        xorl	%r10d, %eax
2418        rorl	$6, %edx
2419        movl	%r10d, %ecx
2420        addl	%edx, %r9d
2421        rorl	$9, %ecx
2422        andl	%eax, %ebx
2423        xorl	%r10d, %ecx
2424        xorl	%r11d, %ebx
2425        rorl	$11, %ecx
2426        addl	%r9d, %r13d
2427        xorl	%r10d, %ecx
2428        addl	%ebx, %r9d
2429        rorl	$2, %ecx
2430        movl	%r13d, %edx
2431        addl	%ecx, %r9d
2432        addl	60(%rsp), %r8d
2433        movl	%r14d, %ecx
2434        movl	%r10d, %ebx
2435        xorl	%r15d, %ecx
2436        rorl	$14, %edx
2437        andl	%r13d, %ecx
2438        xorl	%r13d, %edx
2439        xorl	%r15d, %ecx
2440        rorl	$5, %edx
2441        addl	%ecx, %r8d
2442        xorl	%r13d, %edx
2443        xorl	%r9d, %ebx
2444        rorl	$6, %edx
2445        movl	%r9d, %ecx
2446        addl	%edx, %r8d
2447        rorl	$9, %ecx
2448        andl	%ebx, %eax
2449        xorl	%r9d, %ecx
2450        xorl	%r10d, %eax
2451        rorl	$11, %ecx
2452        addl	%r8d, %r12d
2453        xorl	%r9d, %ecx
2454        addl	%eax, %r8d
2455        rorl	$2, %ecx
2456        movl	%r12d, %edx
2457        addl	%ecx, %r8d
2458        addl	%r8d, (%rdi)
2459        addl	%r9d, 4(%rdi)
2460        addl	%r10d, 8(%rdi)
2461        addl	%r11d, 12(%rdi)
2462        addl	%r12d, 16(%rdi)
2463        addl	%r13d, 20(%rdi)
2464        addl	%r14d, 24(%rdi)
2465        addl	%r15d, 28(%rdi)
2466        xorq	%rax, %rax
2467        vzeroupper
2468        addq	$0x40, %rsp
2469        popq	%r15
2470        popq	%r14
2471        popq	%r13
2472        popq	%r12
2473        popq	%rbx
2474        repz retq
2475#ifndef __APPLE__
2476.size	Transform_Sha256_AVX1,.-Transform_Sha256_AVX1
2477#endif /* __APPLE__ */
2478#ifndef __APPLE__
2479.text
2480.globl	Transform_Sha256_AVX1_Len
2481.type	Transform_Sha256_AVX1_Len,@function
2482.align	16
2483Transform_Sha256_AVX1_Len:
2484#else
2485.section	__TEXT,__text
2486.globl	_Transform_Sha256_AVX1_Len
2487.p2align	4
2488_Transform_Sha256_AVX1_Len:
2489#endif /* __APPLE__ */
2490        pushq	%rbx
2491        pushq	%r12
2492        pushq	%r13
2493        pushq	%r14
2494        pushq	%r15
2495        pushq	%rbp
2496        movq	%rsi, %rbp
2497        movq	%rdx, %rsi
2498        subq	$0x40, %rsp
2499        vmovdqa	L_avx1_sha256_flip_mask(%rip), %xmm13
2500        vmovdqa	L_avx1_sha256_shuf_00BA(%rip), %xmm11
2501        vmovdqa	L_avx1_sha256_shuf_DC00(%rip), %xmm12
2502        movl	(%rdi), %r8d
2503        movl	4(%rdi), %r9d
2504        movl	8(%rdi), %r10d
2505        movl	12(%rdi), %r11d
2506        movl	16(%rdi), %r12d
2507        movl	20(%rdi), %r13d
2508        movl	24(%rdi), %r14d
2509        movl	28(%rdi), %r15d
2510        # Start of loop processing a block
2511L_sha256_len_avx1_start:
2512        # X0, X1, X2, X3 = W[0..15]
2513        vmovdqu	(%rbp), %xmm0
2514        vmovdqu	16(%rbp), %xmm1
2515        vpshufb	%xmm13, %xmm0, %xmm0
2516        vpshufb	%xmm13, %xmm1, %xmm1
2517        vmovdqu	32(%rbp), %xmm2
2518        vmovdqu	48(%rbp), %xmm3
2519        vpshufb	%xmm13, %xmm2, %xmm2
2520        vpshufb	%xmm13, %xmm3, %xmm3
2521        movl	%r9d, %ebx
2522        movl	%r12d, %edx
2523        xorl	%r10d, %ebx
2524        # set_w_k_xfer_4: 0
2525        vpaddd	0+L_avx1_sha256_k(%rip), %xmm0, %xmm4
2526        vpaddd	16+L_avx1_sha256_k(%rip), %xmm1, %xmm5
2527        vmovdqu	%xmm4, (%rsp)
2528        vmovdqu	%xmm5, 16(%rsp)
2529        vpaddd	32+L_avx1_sha256_k(%rip), %xmm2, %xmm6
2530        vpaddd	48+L_avx1_sha256_k(%rip), %xmm3, %xmm7
2531        vmovdqu	%xmm6, 32(%rsp)
2532        vmovdqu	%xmm7, 48(%rsp)
2533        # msg_sched: 0-3
2534        # rnd_0: 0 - 0
2535        rorl	$14, %edx
2536        vpalignr	$4, %xmm0, %xmm1, %xmm5
2537        vpalignr	$4, %xmm2, %xmm3, %xmm4
2538        # rnd_0: 1 - 2
2539        movl	%r9d, %eax
2540        movl	%r13d, %ecx
2541        addl	(%rsp), %r15d
2542        xorl	%r14d, %ecx
2543        xorl	%r12d, %edx
2544        andl	%r12d, %ecx
2545        vpsrld	$7, %xmm5, %xmm6
2546        vpslld	$25, %xmm5, %xmm7
2547        # rnd_0: 3 - 4
2548        rorl	$5, %edx
2549        xorl	%r14d, %ecx
2550        xorl	%r12d, %edx
2551        addl	%ecx, %r15d
2552        rorl	$6, %edx
2553        xorl	%r8d, %eax
2554        addl	%edx, %r15d
2555        movl	%r8d, %ecx
2556        vpsrld	$18, %xmm5, %xmm8
2557        vpslld	$14, %xmm5, %xmm9
2558        # rnd_0: 5 - 6
2559        andl	%eax, %ebx
2560        rorl	$9, %ecx
2561        xorl	%r8d, %ecx
2562        xorl	%r9d, %ebx
2563        rorl	$11, %ecx
2564        addl	%r15d, %r11d
2565        xorl	%r8d, %ecx
2566        addl	%ebx, %r15d
2567        vpor	%xmm6, %xmm7, %xmm6
2568        vpor	%xmm8, %xmm9, %xmm8
2569        # rnd_0: 7 - 7
2570        rorl	$2, %ecx
2571        movl	%r11d, %edx
2572        addl	%ecx, %r15d
2573        # rnd_1: 0 - 1
2574        rorl	$14, %edx
2575        movl	%r8d, %ebx
2576        movl	%r12d, %ecx
2577        addl	4(%rsp), %r14d
2578        xorl	%r13d, %ecx
2579        vpsrld	$3, %xmm5, %xmm9
2580        vpxor	%xmm6, %xmm8, %xmm6
2581        # rnd_1: 2 - 3
2582        xorl	%r11d, %edx
2583        andl	%r11d, %ecx
2584        rorl	$5, %edx
2585        xorl	%r13d, %ecx
2586        xorl	%r11d, %edx
2587        addl	%ecx, %r14d
2588        vpxor	%xmm6, %xmm9, %xmm5
2589        vpshufd	$0xfa, %xmm3, %xmm6
2590        # rnd_1: 4 - 5
2591        rorl	$6, %edx
2592        xorl	%r15d, %ebx
2593        addl	%edx, %r14d
2594        movl	%r15d, %ecx
2595        andl	%ebx, %eax
2596        rorl	$9, %ecx
2597        xorl	%r15d, %ecx
2598        xorl	%r8d, %eax
2599        vpsrld	$10, %xmm6, %xmm8
2600        vpsrlq	$19, %xmm6, %xmm7
2601        # rnd_1: 6 - 7
2602        rorl	$11, %ecx
2603        addl	%r14d, %r10d
2604        xorl	%r15d, %ecx
2605        addl	%eax, %r14d
2606        rorl	$2, %ecx
2607        movl	%r10d, %edx
2608        addl	%ecx, %r14d
2609        # rnd_0: 0 - 0
2610        rorl	$14, %edx
2611        vpsrlq	$0x11, %xmm6, %xmm6
2612        vpaddd	%xmm0, %xmm4, %xmm4
2613        # rnd_0: 1 - 3
2614        movl	%r15d, %eax
2615        movl	%r11d, %ecx
2616        addl	8(%rsp), %r13d
2617        xorl	%r12d, %ecx
2618        xorl	%r10d, %edx
2619        andl	%r10d, %ecx
2620        rorl	$5, %edx
2621        xorl	%r12d, %ecx
2622        xorl	%r10d, %edx
2623        addl	%ecx, %r13d
2624        vpxor	%xmm6, %xmm7, %xmm6
2625        vpaddd	%xmm5, %xmm4, %xmm4
2626        # rnd_0: 4 - 4
2627        rorl	$6, %edx
2628        xorl	%r14d, %eax
2629        addl	%edx, %r13d
2630        movl	%r14d, %ecx
2631        vpxor	%xmm6, %xmm8, %xmm8
2632        # rnd_0: 5 - 5
2633        andl	%eax, %ebx
2634        rorl	$9, %ecx
2635        xorl	%r14d, %ecx
2636        xorl	%r15d, %ebx
2637        vpshufb	%xmm11, %xmm8, %xmm8
2638        # rnd_0: 6 - 6
2639        rorl	$11, %ecx
2640        addl	%r13d, %r9d
2641        xorl	%r14d, %ecx
2642        addl	%ebx, %r13d
2643        vpaddd	%xmm8, %xmm4, %xmm4
2644        # rnd_0: 7 - 7
2645        rorl	$2, %ecx
2646        movl	%r9d, %edx
2647        addl	%ecx, %r13d
2648        # rnd_1: 0 - 0
2649        rorl	$14, %edx
2650        vpshufd	$0x50, %xmm4, %xmm6
2651        # rnd_1: 1 - 1
2652        movl	%r14d, %ebx
2653        movl	%r10d, %ecx
2654        addl	12(%rsp), %r12d
2655        xorl	%r11d, %ecx
2656        vpsrlq	$0x11, %xmm6, %xmm8
2657        vpsrlq	$19, %xmm6, %xmm7
2658        # rnd_1: 2 - 3
2659        xorl	%r9d, %edx
2660        andl	%r9d, %ecx
2661        rorl	$5, %edx
2662        xorl	%r11d, %ecx
2663        xorl	%r9d, %edx
2664        addl	%ecx, %r12d
2665        vpsrld	$10, %xmm6, %xmm9
2666        vpxor	%xmm8, %xmm7, %xmm8
2667        # rnd_1: 4 - 5
2668        rorl	$6, %edx
2669        xorl	%r13d, %ebx
2670        addl	%edx, %r12d
2671        movl	%r13d, %ecx
2672        andl	%ebx, %eax
2673        rorl	$9, %ecx
2674        xorl	%r13d, %ecx
2675        xorl	%r14d, %eax
2676        vpxor	%xmm9, %xmm8, %xmm9
2677        # rnd_1: 6 - 6
2678        rorl	$11, %ecx
2679        addl	%r12d, %r8d
2680        xorl	%r13d, %ecx
2681        addl	%eax, %r12d
2682        vpshufb	%xmm12, %xmm9, %xmm9
2683        # rnd_1: 7 - 7
2684        rorl	$2, %ecx
2685        movl	%r8d, %edx
2686        addl	%ecx, %r12d
2687        vpaddd	%xmm4, %xmm9, %xmm0
2688        # msg_sched done: 0-3
2689        # msg_sched: 4-7
2690        # rnd_0: 0 - 0
2691        rorl	$14, %edx
2692        vpalignr	$4, %xmm1, %xmm2, %xmm5
2693        vpalignr	$4, %xmm3, %xmm0, %xmm4
2694        # rnd_0: 1 - 2
2695        movl	%r13d, %eax
2696        movl	%r9d, %ecx
2697        addl	16(%rsp), %r11d
2698        xorl	%r10d, %ecx
2699        xorl	%r8d, %edx
2700        andl	%r8d, %ecx
2701        vpsrld	$7, %xmm5, %xmm6
2702        vpslld	$25, %xmm5, %xmm7
2703        # rnd_0: 3 - 4
2704        rorl	$5, %edx
2705        xorl	%r10d, %ecx
2706        xorl	%r8d, %edx
2707        addl	%ecx, %r11d
2708        rorl	$6, %edx
2709        xorl	%r12d, %eax
2710        addl	%edx, %r11d
2711        movl	%r12d, %ecx
2712        vpsrld	$18, %xmm5, %xmm8
2713        vpslld	$14, %xmm5, %xmm9
2714        # rnd_0: 5 - 6
2715        andl	%eax, %ebx
2716        rorl	$9, %ecx
2717        xorl	%r12d, %ecx
2718        xorl	%r13d, %ebx
2719        rorl	$11, %ecx
2720        addl	%r11d, %r15d
2721        xorl	%r12d, %ecx
2722        addl	%ebx, %r11d
2723        vpor	%xmm6, %xmm7, %xmm6
2724        vpor	%xmm8, %xmm9, %xmm8
2725        # rnd_0: 7 - 7
2726        rorl	$2, %ecx
2727        movl	%r15d, %edx
2728        addl	%ecx, %r11d
2729        # rnd_1: 0 - 1
2730        rorl	$14, %edx
2731        movl	%r12d, %ebx
2732        movl	%r8d, %ecx
2733        addl	20(%rsp), %r10d
2734        xorl	%r9d, %ecx
2735        vpsrld	$3, %xmm5, %xmm9
2736        vpxor	%xmm6, %xmm8, %xmm6
2737        # rnd_1: 2 - 3
2738        xorl	%r15d, %edx
2739        andl	%r15d, %ecx
2740        rorl	$5, %edx
2741        xorl	%r9d, %ecx
2742        xorl	%r15d, %edx
2743        addl	%ecx, %r10d
2744        vpxor	%xmm6, %xmm9, %xmm5
2745        vpshufd	$0xfa, %xmm0, %xmm6
2746        # rnd_1: 4 - 5
2747        rorl	$6, %edx
2748        xorl	%r11d, %ebx
2749        addl	%edx, %r10d
2750        movl	%r11d, %ecx
2751        andl	%ebx, %eax
2752        rorl	$9, %ecx
2753        xorl	%r11d, %ecx
2754        xorl	%r12d, %eax
2755        vpsrld	$10, %xmm6, %xmm8
2756        vpsrlq	$19, %xmm6, %xmm7
2757        # rnd_1: 6 - 7
2758        rorl	$11, %ecx
2759        addl	%r10d, %r14d
2760        xorl	%r11d, %ecx
2761        addl	%eax, %r10d
2762        rorl	$2, %ecx
2763        movl	%r14d, %edx
2764        addl	%ecx, %r10d
2765        # rnd_0: 0 - 0
2766        rorl	$14, %edx
2767        vpsrlq	$0x11, %xmm6, %xmm6
2768        vpaddd	%xmm1, %xmm4, %xmm4
2769        # rnd_0: 1 - 3
2770        movl	%r11d, %eax
2771        movl	%r15d, %ecx
2772        addl	24(%rsp), %r9d
2773        xorl	%r8d, %ecx
2774        xorl	%r14d, %edx
2775        andl	%r14d, %ecx
2776        rorl	$5, %edx
2777        xorl	%r8d, %ecx
2778        xorl	%r14d, %edx
2779        addl	%ecx, %r9d
2780        vpxor	%xmm6, %xmm7, %xmm6
2781        vpaddd	%xmm5, %xmm4, %xmm4
2782        # rnd_0: 4 - 4
2783        rorl	$6, %edx
2784        xorl	%r10d, %eax
2785        addl	%edx, %r9d
2786        movl	%r10d, %ecx
2787        vpxor	%xmm6, %xmm8, %xmm8
2788        # rnd_0: 5 - 5
2789        andl	%eax, %ebx
2790        rorl	$9, %ecx
2791        xorl	%r10d, %ecx
2792        xorl	%r11d, %ebx
2793        vpshufb	%xmm11, %xmm8, %xmm8
2794        # rnd_0: 6 - 6
2795        rorl	$11, %ecx
2796        addl	%r9d, %r13d
2797        xorl	%r10d, %ecx
2798        addl	%ebx, %r9d
2799        vpaddd	%xmm8, %xmm4, %xmm4
2800        # rnd_0: 7 - 7
2801        rorl	$2, %ecx
2802        movl	%r13d, %edx
2803        addl	%ecx, %r9d
2804        # rnd_1: 0 - 0
2805        rorl	$14, %edx
2806        vpshufd	$0x50, %xmm4, %xmm6
2807        # rnd_1: 1 - 1
2808        movl	%r10d, %ebx
2809        movl	%r14d, %ecx
2810        addl	28(%rsp), %r8d
2811        xorl	%r15d, %ecx
2812        vpsrlq	$0x11, %xmm6, %xmm8
2813        vpsrlq	$19, %xmm6, %xmm7
2814        # rnd_1: 2 - 3
2815        xorl	%r13d, %edx
2816        andl	%r13d, %ecx
2817        rorl	$5, %edx
2818        xorl	%r15d, %ecx
2819        xorl	%r13d, %edx
2820        addl	%ecx, %r8d
2821        vpsrld	$10, %xmm6, %xmm9
2822        vpxor	%xmm8, %xmm7, %xmm8
2823        # rnd_1: 4 - 5
2824        rorl	$6, %edx
2825        xorl	%r9d, %ebx
2826        addl	%edx, %r8d
2827        movl	%r9d, %ecx
2828        andl	%ebx, %eax
2829        rorl	$9, %ecx
2830        xorl	%r9d, %ecx
2831        xorl	%r10d, %eax
2832        vpxor	%xmm9, %xmm8, %xmm9
2833        # rnd_1: 6 - 6
2834        rorl	$11, %ecx
2835        addl	%r8d, %r12d
2836        xorl	%r9d, %ecx
2837        addl	%eax, %r8d
2838        vpshufb	%xmm12, %xmm9, %xmm9
2839        # rnd_1: 7 - 7
2840        rorl	$2, %ecx
2841        movl	%r12d, %edx
2842        addl	%ecx, %r8d
2843        vpaddd	%xmm4, %xmm9, %xmm1
2844        # msg_sched done: 4-7
2845        # msg_sched: 8-11
2846        # rnd_0: 0 - 0
2847        rorl	$14, %edx
2848        vpalignr	$4, %xmm2, %xmm3, %xmm5
2849        vpalignr	$4, %xmm0, %xmm1, %xmm4
2850        # rnd_0: 1 - 2
2851        movl	%r9d, %eax
2852        movl	%r13d, %ecx
2853        addl	32(%rsp), %r15d
2854        xorl	%r14d, %ecx
2855        xorl	%r12d, %edx
2856        andl	%r12d, %ecx
2857        vpsrld	$7, %xmm5, %xmm6
2858        vpslld	$25, %xmm5, %xmm7
2859        # rnd_0: 3 - 4
2860        rorl	$5, %edx
2861        xorl	%r14d, %ecx
2862        xorl	%r12d, %edx
2863        addl	%ecx, %r15d
2864        rorl	$6, %edx
2865        xorl	%r8d, %eax
2866        addl	%edx, %r15d
2867        movl	%r8d, %ecx
2868        vpsrld	$18, %xmm5, %xmm8
2869        vpslld	$14, %xmm5, %xmm9
2870        # rnd_0: 5 - 6
2871        andl	%eax, %ebx
2872        rorl	$9, %ecx
2873        xorl	%r8d, %ecx
2874        xorl	%r9d, %ebx
2875        rorl	$11, %ecx
2876        addl	%r15d, %r11d
2877        xorl	%r8d, %ecx
2878        addl	%ebx, %r15d
2879        vpor	%xmm6, %xmm7, %xmm6
2880        vpor	%xmm8, %xmm9, %xmm8
2881        # rnd_0: 7 - 7
2882        rorl	$2, %ecx
2883        movl	%r11d, %edx
2884        addl	%ecx, %r15d
2885        # rnd_1: 0 - 1
2886        rorl	$14, %edx
2887        movl	%r8d, %ebx
2888        movl	%r12d, %ecx
2889        addl	36(%rsp), %r14d
2890        xorl	%r13d, %ecx
2891        vpsrld	$3, %xmm5, %xmm9
2892        vpxor	%xmm6, %xmm8, %xmm6
2893        # rnd_1: 2 - 3
2894        xorl	%r11d, %edx
2895        andl	%r11d, %ecx
2896        rorl	$5, %edx
2897        xorl	%r13d, %ecx
2898        xorl	%r11d, %edx
2899        addl	%ecx, %r14d
2900        vpxor	%xmm6, %xmm9, %xmm5
2901        vpshufd	$0xfa, %xmm1, %xmm6
2902        # rnd_1: 4 - 5
2903        rorl	$6, %edx
2904        xorl	%r15d, %ebx
2905        addl	%edx, %r14d
2906        movl	%r15d, %ecx
2907        andl	%ebx, %eax
2908        rorl	$9, %ecx
2909        xorl	%r15d, %ecx
2910        xorl	%r8d, %eax
2911        vpsrld	$10, %xmm6, %xmm8
2912        vpsrlq	$19, %xmm6, %xmm7
2913        # rnd_1: 6 - 7
2914        rorl	$11, %ecx
2915        addl	%r14d, %r10d
2916        xorl	%r15d, %ecx
2917        addl	%eax, %r14d
2918        rorl	$2, %ecx
2919        movl	%r10d, %edx
2920        addl	%ecx, %r14d
2921        # rnd_0: 0 - 0
2922        rorl	$14, %edx
2923        vpsrlq	$0x11, %xmm6, %xmm6
2924        vpaddd	%xmm2, %xmm4, %xmm4
2925        # rnd_0: 1 - 3
2926        movl	%r15d, %eax
2927        movl	%r11d, %ecx
2928        addl	40(%rsp), %r13d
2929        xorl	%r12d, %ecx
2930        xorl	%r10d, %edx
2931        andl	%r10d, %ecx
2932        rorl	$5, %edx
2933        xorl	%r12d, %ecx
2934        xorl	%r10d, %edx
2935        addl	%ecx, %r13d
2936        vpxor	%xmm6, %xmm7, %xmm6
2937        vpaddd	%xmm5, %xmm4, %xmm4
2938        # rnd_0: 4 - 4
2939        rorl	$6, %edx
2940        xorl	%r14d, %eax
2941        addl	%edx, %r13d
2942        movl	%r14d, %ecx
2943        vpxor	%xmm6, %xmm8, %xmm8
2944        # rnd_0: 5 - 5
2945        andl	%eax, %ebx
2946        rorl	$9, %ecx
2947        xorl	%r14d, %ecx
2948        xorl	%r15d, %ebx
2949        vpshufb	%xmm11, %xmm8, %xmm8
2950        # rnd_0: 6 - 6
2951        rorl	$11, %ecx
2952        addl	%r13d, %r9d
2953        xorl	%r14d, %ecx
2954        addl	%ebx, %r13d
2955        vpaddd	%xmm8, %xmm4, %xmm4
2956        # rnd_0: 7 - 7
2957        rorl	$2, %ecx
2958        movl	%r9d, %edx
2959        addl	%ecx, %r13d
2960        # rnd_1: 0 - 0
2961        rorl	$14, %edx
2962        vpshufd	$0x50, %xmm4, %xmm6
2963        # rnd_1: 1 - 1
2964        movl	%r14d, %ebx
2965        movl	%r10d, %ecx
2966        addl	44(%rsp), %r12d
2967        xorl	%r11d, %ecx
2968        vpsrlq	$0x11, %xmm6, %xmm8
2969        vpsrlq	$19, %xmm6, %xmm7
2970        # rnd_1: 2 - 3
2971        xorl	%r9d, %edx
2972        andl	%r9d, %ecx
2973        rorl	$5, %edx
2974        xorl	%r11d, %ecx
2975        xorl	%r9d, %edx
2976        addl	%ecx, %r12d
2977        vpsrld	$10, %xmm6, %xmm9
2978        vpxor	%xmm8, %xmm7, %xmm8
2979        # rnd_1: 4 - 5
2980        rorl	$6, %edx
2981        xorl	%r13d, %ebx
2982        addl	%edx, %r12d
2983        movl	%r13d, %ecx
2984        andl	%ebx, %eax
2985        rorl	$9, %ecx
2986        xorl	%r13d, %ecx
2987        xorl	%r14d, %eax
2988        vpxor	%xmm9, %xmm8, %xmm9
2989        # rnd_1: 6 - 6
2990        rorl	$11, %ecx
2991        addl	%r12d, %r8d
2992        xorl	%r13d, %ecx
2993        addl	%eax, %r12d
2994        vpshufb	%xmm12, %xmm9, %xmm9
2995        # rnd_1: 7 - 7
2996        rorl	$2, %ecx
2997        movl	%r8d, %edx
2998        addl	%ecx, %r12d
2999        vpaddd	%xmm4, %xmm9, %xmm2
3000        # msg_sched done: 8-11
3001        # msg_sched: 12-15
3002        # rnd_0: 0 - 0
3003        rorl	$14, %edx
3004        vpalignr	$4, %xmm3, %xmm0, %xmm5
3005        vpalignr	$4, %xmm1, %xmm2, %xmm4
3006        # rnd_0: 1 - 2
3007        movl	%r13d, %eax
3008        movl	%r9d, %ecx
3009        addl	48(%rsp), %r11d
3010        xorl	%r10d, %ecx
3011        xorl	%r8d, %edx
3012        andl	%r8d, %ecx
3013        vpsrld	$7, %xmm5, %xmm6
3014        vpslld	$25, %xmm5, %xmm7
3015        # rnd_0: 3 - 4
3016        rorl	$5, %edx
3017        xorl	%r10d, %ecx
3018        xorl	%r8d, %edx
3019        addl	%ecx, %r11d
3020        rorl	$6, %edx
3021        xorl	%r12d, %eax
3022        addl	%edx, %r11d
3023        movl	%r12d, %ecx
3024        vpsrld	$18, %xmm5, %xmm8
3025        vpslld	$14, %xmm5, %xmm9
3026        # rnd_0: 5 - 6
3027        andl	%eax, %ebx
3028        rorl	$9, %ecx
3029        xorl	%r12d, %ecx
3030        xorl	%r13d, %ebx
3031        rorl	$11, %ecx
3032        addl	%r11d, %r15d
3033        xorl	%r12d, %ecx
3034        addl	%ebx, %r11d
3035        vpor	%xmm6, %xmm7, %xmm6
3036        vpor	%xmm8, %xmm9, %xmm8
3037        # rnd_0: 7 - 7
3038        rorl	$2, %ecx
3039        movl	%r15d, %edx
3040        addl	%ecx, %r11d
3041        # rnd_1: 0 - 1
3042        rorl	$14, %edx
3043        movl	%r12d, %ebx
3044        movl	%r8d, %ecx
3045        addl	52(%rsp), %r10d
3046        xorl	%r9d, %ecx
3047        vpsrld	$3, %xmm5, %xmm9
3048        vpxor	%xmm6, %xmm8, %xmm6
3049        # rnd_1: 2 - 3
3050        xorl	%r15d, %edx
3051        andl	%r15d, %ecx
3052        rorl	$5, %edx
3053        xorl	%r9d, %ecx
3054        xorl	%r15d, %edx
3055        addl	%ecx, %r10d
3056        vpxor	%xmm6, %xmm9, %xmm5
3057        vpshufd	$0xfa, %xmm2, %xmm6
3058        # rnd_1: 4 - 5
3059        rorl	$6, %edx
3060        xorl	%r11d, %ebx
3061        addl	%edx, %r10d
3062        movl	%r11d, %ecx
3063        andl	%ebx, %eax
3064        rorl	$9, %ecx
3065        xorl	%r11d, %ecx
3066        xorl	%r12d, %eax
3067        vpsrld	$10, %xmm6, %xmm8
3068        vpsrlq	$19, %xmm6, %xmm7
3069        # rnd_1: 6 - 7
3070        rorl	$11, %ecx
3071        addl	%r10d, %r14d
3072        xorl	%r11d, %ecx
3073        addl	%eax, %r10d
3074        rorl	$2, %ecx
3075        movl	%r14d, %edx
3076        addl	%ecx, %r10d
3077        # rnd_0: 0 - 0
3078        rorl	$14, %edx
3079        vpsrlq	$0x11, %xmm6, %xmm6
3080        vpaddd	%xmm3, %xmm4, %xmm4
3081        # rnd_0: 1 - 3
3082        movl	%r11d, %eax
3083        movl	%r15d, %ecx
3084        addl	56(%rsp), %r9d
3085        xorl	%r8d, %ecx
3086        xorl	%r14d, %edx
3087        andl	%r14d, %ecx
3088        rorl	$5, %edx
3089        xorl	%r8d, %ecx
3090        xorl	%r14d, %edx
3091        addl	%ecx, %r9d
3092        vpxor	%xmm6, %xmm7, %xmm6
3093        vpaddd	%xmm5, %xmm4, %xmm4
3094        # rnd_0: 4 - 4
3095        rorl	$6, %edx
3096        xorl	%r10d, %eax
3097        addl	%edx, %r9d
3098        movl	%r10d, %ecx
3099        vpxor	%xmm6, %xmm8, %xmm8
3100        # rnd_0: 5 - 5
3101        andl	%eax, %ebx
3102        rorl	$9, %ecx
3103        xorl	%r10d, %ecx
3104        xorl	%r11d, %ebx
3105        vpshufb	%xmm11, %xmm8, %xmm8
3106        # rnd_0: 6 - 6
3107        rorl	$11, %ecx
3108        addl	%r9d, %r13d
3109        xorl	%r10d, %ecx
3110        addl	%ebx, %r9d
3111        vpaddd	%xmm8, %xmm4, %xmm4
3112        # rnd_0: 7 - 7
3113        rorl	$2, %ecx
3114        movl	%r13d, %edx
3115        addl	%ecx, %r9d
3116        # rnd_1: 0 - 0
3117        rorl	$14, %edx
3118        vpshufd	$0x50, %xmm4, %xmm6
3119        # rnd_1: 1 - 1
3120        movl	%r10d, %ebx
3121        movl	%r14d, %ecx
3122        addl	60(%rsp), %r8d
3123        xorl	%r15d, %ecx
3124        vpsrlq	$0x11, %xmm6, %xmm8
3125        vpsrlq	$19, %xmm6, %xmm7
3126        # rnd_1: 2 - 3
3127        xorl	%r13d, %edx
3128        andl	%r13d, %ecx
3129        rorl	$5, %edx
3130        xorl	%r15d, %ecx
3131        xorl	%r13d, %edx
3132        addl	%ecx, %r8d
3133        vpsrld	$10, %xmm6, %xmm9
3134        vpxor	%xmm8, %xmm7, %xmm8
3135        # rnd_1: 4 - 5
3136        rorl	$6, %edx
3137        xorl	%r9d, %ebx
3138        addl	%edx, %r8d
3139        movl	%r9d, %ecx
3140        andl	%ebx, %eax
3141        rorl	$9, %ecx
3142        xorl	%r9d, %ecx
3143        xorl	%r10d, %eax
3144        vpxor	%xmm9, %xmm8, %xmm9
3145        # rnd_1: 6 - 6
3146        rorl	$11, %ecx
3147        addl	%r8d, %r12d
3148        xorl	%r9d, %ecx
3149        addl	%eax, %r8d
3150        vpshufb	%xmm12, %xmm9, %xmm9
3151        # rnd_1: 7 - 7
3152        rorl	$2, %ecx
3153        movl	%r12d, %edx
3154        addl	%ecx, %r8d
3155        vpaddd	%xmm4, %xmm9, %xmm3
3156        # msg_sched done: 12-15
3157        # set_w_k_xfer_4: 4
3158        vpaddd	64+L_avx1_sha256_k(%rip), %xmm0, %xmm4
3159        vpaddd	80+L_avx1_sha256_k(%rip), %xmm1, %xmm5
3160        vmovdqu	%xmm4, (%rsp)
3161        vmovdqu	%xmm5, 16(%rsp)
3162        vpaddd	96+L_avx1_sha256_k(%rip), %xmm2, %xmm6
3163        vpaddd	112+L_avx1_sha256_k(%rip), %xmm3, %xmm7
3164        vmovdqu	%xmm6, 32(%rsp)
3165        vmovdqu	%xmm7, 48(%rsp)
3166        # msg_sched: 0-3
3167        # rnd_0: 0 - 0
3168        rorl	$14, %edx
3169        vpalignr	$4, %xmm0, %xmm1, %xmm5
3170        vpalignr	$4, %xmm2, %xmm3, %xmm4
3171        # rnd_0: 1 - 2
3172        movl	%r9d, %eax
3173        movl	%r13d, %ecx
3174        addl	(%rsp), %r15d
3175        xorl	%r14d, %ecx
3176        xorl	%r12d, %edx
3177        andl	%r12d, %ecx
3178        vpsrld	$7, %xmm5, %xmm6
3179        vpslld	$25, %xmm5, %xmm7
3180        # rnd_0: 3 - 4
3181        rorl	$5, %edx
3182        xorl	%r14d, %ecx
3183        xorl	%r12d, %edx
3184        addl	%ecx, %r15d
3185        rorl	$6, %edx
3186        xorl	%r8d, %eax
3187        addl	%edx, %r15d
3188        movl	%r8d, %ecx
3189        vpsrld	$18, %xmm5, %xmm8
3190        vpslld	$14, %xmm5, %xmm9
3191        # rnd_0: 5 - 6
3192        andl	%eax, %ebx
3193        rorl	$9, %ecx
3194        xorl	%r8d, %ecx
3195        xorl	%r9d, %ebx
3196        rorl	$11, %ecx
3197        addl	%r15d, %r11d
3198        xorl	%r8d, %ecx
3199        addl	%ebx, %r15d
3200        vpor	%xmm6, %xmm7, %xmm6
3201        vpor	%xmm8, %xmm9, %xmm8
3202        # rnd_0: 7 - 7
3203        rorl	$2, %ecx
3204        movl	%r11d, %edx
3205        addl	%ecx, %r15d
3206        # rnd_1: 0 - 1
3207        rorl	$14, %edx
3208        movl	%r8d, %ebx
3209        movl	%r12d, %ecx
3210        addl	4(%rsp), %r14d
3211        xorl	%r13d, %ecx
3212        vpsrld	$3, %xmm5, %xmm9
3213        vpxor	%xmm6, %xmm8, %xmm6
3214        # rnd_1: 2 - 3
3215        xorl	%r11d, %edx
3216        andl	%r11d, %ecx
3217        rorl	$5, %edx
3218        xorl	%r13d, %ecx
3219        xorl	%r11d, %edx
3220        addl	%ecx, %r14d
3221        vpxor	%xmm6, %xmm9, %xmm5
3222        vpshufd	$0xfa, %xmm3, %xmm6
3223        # rnd_1: 4 - 5
3224        rorl	$6, %edx
3225        xorl	%r15d, %ebx
3226        addl	%edx, %r14d
3227        movl	%r15d, %ecx
3228        andl	%ebx, %eax
3229        rorl	$9, %ecx
3230        xorl	%r15d, %ecx
3231        xorl	%r8d, %eax
3232        vpsrld	$10, %xmm6, %xmm8
3233        vpsrlq	$19, %xmm6, %xmm7
3234        # rnd_1: 6 - 7
3235        rorl	$11, %ecx
3236        addl	%r14d, %r10d
3237        xorl	%r15d, %ecx
3238        addl	%eax, %r14d
3239        rorl	$2, %ecx
3240        movl	%r10d, %edx
3241        addl	%ecx, %r14d
3242        # rnd_0: 0 - 0
3243        rorl	$14, %edx
3244        vpsrlq	$0x11, %xmm6, %xmm6
3245        vpaddd	%xmm0, %xmm4, %xmm4
3246        # rnd_0: 1 - 3
3247        movl	%r15d, %eax
3248        movl	%r11d, %ecx
3249        addl	8(%rsp), %r13d
3250        xorl	%r12d, %ecx
3251        xorl	%r10d, %edx
3252        andl	%r10d, %ecx
3253        rorl	$5, %edx
3254        xorl	%r12d, %ecx
3255        xorl	%r10d, %edx
3256        addl	%ecx, %r13d
3257        vpxor	%xmm6, %xmm7, %xmm6
3258        vpaddd	%xmm5, %xmm4, %xmm4
3259        # rnd_0: 4 - 4
3260        rorl	$6, %edx
3261        xorl	%r14d, %eax
3262        addl	%edx, %r13d
3263        movl	%r14d, %ecx
3264        vpxor	%xmm6, %xmm8, %xmm8
3265        # rnd_0: 5 - 5
3266        andl	%eax, %ebx
3267        rorl	$9, %ecx
3268        xorl	%r14d, %ecx
3269        xorl	%r15d, %ebx
3270        vpshufb	%xmm11, %xmm8, %xmm8
3271        # rnd_0: 6 - 6
3272        rorl	$11, %ecx
3273        addl	%r13d, %r9d
3274        xorl	%r14d, %ecx
3275        addl	%ebx, %r13d
3276        vpaddd	%xmm8, %xmm4, %xmm4
3277        # rnd_0: 7 - 7
3278        rorl	$2, %ecx
3279        movl	%r9d, %edx
3280        addl	%ecx, %r13d
3281        # rnd_1: 0 - 0
3282        rorl	$14, %edx
3283        vpshufd	$0x50, %xmm4, %xmm6
3284        # rnd_1: 1 - 1
3285        movl	%r14d, %ebx
3286        movl	%r10d, %ecx
3287        addl	12(%rsp), %r12d
3288        xorl	%r11d, %ecx
3289        vpsrlq	$0x11, %xmm6, %xmm8
3290        vpsrlq	$19, %xmm6, %xmm7
3291        # rnd_1: 2 - 3
3292        xorl	%r9d, %edx
3293        andl	%r9d, %ecx
3294        rorl	$5, %edx
3295        xorl	%r11d, %ecx
3296        xorl	%r9d, %edx
3297        addl	%ecx, %r12d
3298        vpsrld	$10, %xmm6, %xmm9
3299        vpxor	%xmm8, %xmm7, %xmm8
3300        # rnd_1: 4 - 5
3301        rorl	$6, %edx
3302        xorl	%r13d, %ebx
3303        addl	%edx, %r12d
3304        movl	%r13d, %ecx
3305        andl	%ebx, %eax
3306        rorl	$9, %ecx
3307        xorl	%r13d, %ecx
3308        xorl	%r14d, %eax
3309        vpxor	%xmm9, %xmm8, %xmm9
3310        # rnd_1: 6 - 6
3311        rorl	$11, %ecx
3312        addl	%r12d, %r8d
3313        xorl	%r13d, %ecx
3314        addl	%eax, %r12d
3315        vpshufb	%xmm12, %xmm9, %xmm9
3316        # rnd_1: 7 - 7
3317        rorl	$2, %ecx
3318        movl	%r8d, %edx
3319        addl	%ecx, %r12d
3320        vpaddd	%xmm4, %xmm9, %xmm0
3321        # msg_sched done: 0-3
3322        # msg_sched: 4-7
3323        # rnd_0: 0 - 0
3324        rorl	$14, %edx
3325        vpalignr	$4, %xmm1, %xmm2, %xmm5
3326        vpalignr	$4, %xmm3, %xmm0, %xmm4
3327        # rnd_0: 1 - 2
3328        movl	%r13d, %eax
3329        movl	%r9d, %ecx
3330        addl	16(%rsp), %r11d
3331        xorl	%r10d, %ecx
3332        xorl	%r8d, %edx
3333        andl	%r8d, %ecx
3334        vpsrld	$7, %xmm5, %xmm6
3335        vpslld	$25, %xmm5, %xmm7
3336        # rnd_0: 3 - 4
3337        rorl	$5, %edx
3338        xorl	%r10d, %ecx
3339        xorl	%r8d, %edx
3340        addl	%ecx, %r11d
3341        rorl	$6, %edx
3342        xorl	%r12d, %eax
3343        addl	%edx, %r11d
3344        movl	%r12d, %ecx
3345        vpsrld	$18, %xmm5, %xmm8
3346        vpslld	$14, %xmm5, %xmm9
3347        # rnd_0: 5 - 6
3348        andl	%eax, %ebx
3349        rorl	$9, %ecx
3350        xorl	%r12d, %ecx
3351        xorl	%r13d, %ebx
3352        rorl	$11, %ecx
3353        addl	%r11d, %r15d
3354        xorl	%r12d, %ecx
3355        addl	%ebx, %r11d
3356        vpor	%xmm6, %xmm7, %xmm6
3357        vpor	%xmm8, %xmm9, %xmm8
3358        # rnd_0: 7 - 7
3359        rorl	$2, %ecx
3360        movl	%r15d, %edx
3361        addl	%ecx, %r11d
3362        # rnd_1: 0 - 1
3363        rorl	$14, %edx
3364        movl	%r12d, %ebx
3365        movl	%r8d, %ecx
3366        addl	20(%rsp), %r10d
3367        xorl	%r9d, %ecx
3368        vpsrld	$3, %xmm5, %xmm9
3369        vpxor	%xmm6, %xmm8, %xmm6
3370        # rnd_1: 2 - 3
3371        xorl	%r15d, %edx
3372        andl	%r15d, %ecx
3373        rorl	$5, %edx
3374        xorl	%r9d, %ecx
3375        xorl	%r15d, %edx
3376        addl	%ecx, %r10d
3377        vpxor	%xmm6, %xmm9, %xmm5
3378        vpshufd	$0xfa, %xmm0, %xmm6
3379        # rnd_1: 4 - 5
3380        rorl	$6, %edx
3381        xorl	%r11d, %ebx
3382        addl	%edx, %r10d
3383        movl	%r11d, %ecx
3384        andl	%ebx, %eax
3385        rorl	$9, %ecx
3386        xorl	%r11d, %ecx
3387        xorl	%r12d, %eax
3388        vpsrld	$10, %xmm6, %xmm8
3389        vpsrlq	$19, %xmm6, %xmm7
3390        # rnd_1: 6 - 7
3391        rorl	$11, %ecx
3392        addl	%r10d, %r14d
3393        xorl	%r11d, %ecx
3394        addl	%eax, %r10d
3395        rorl	$2, %ecx
3396        movl	%r14d, %edx
3397        addl	%ecx, %r10d
3398        # rnd_0: 0 - 0
3399        rorl	$14, %edx
3400        vpsrlq	$0x11, %xmm6, %xmm6
3401        vpaddd	%xmm1, %xmm4, %xmm4
3402        # rnd_0: 1 - 3
3403        movl	%r11d, %eax
3404        movl	%r15d, %ecx
3405        addl	24(%rsp), %r9d
3406        xorl	%r8d, %ecx
3407        xorl	%r14d, %edx
3408        andl	%r14d, %ecx
3409        rorl	$5, %edx
3410        xorl	%r8d, %ecx
3411        xorl	%r14d, %edx
3412        addl	%ecx, %r9d
3413        vpxor	%xmm6, %xmm7, %xmm6
3414        vpaddd	%xmm5, %xmm4, %xmm4
3415        # rnd_0: 4 - 4
3416        rorl	$6, %edx
3417        xorl	%r10d, %eax
3418        addl	%edx, %r9d
3419        movl	%r10d, %ecx
3420        vpxor	%xmm6, %xmm8, %xmm8
3421        # rnd_0: 5 - 5
3422        andl	%eax, %ebx
3423        rorl	$9, %ecx
3424        xorl	%r10d, %ecx
3425        xorl	%r11d, %ebx
3426        vpshufb	%xmm11, %xmm8, %xmm8
3427        # rnd_0: 6 - 6
3428        rorl	$11, %ecx
3429        addl	%r9d, %r13d
3430        xorl	%r10d, %ecx
3431        addl	%ebx, %r9d
3432        vpaddd	%xmm8, %xmm4, %xmm4
3433        # rnd_0: 7 - 7
3434        rorl	$2, %ecx
3435        movl	%r13d, %edx
3436        addl	%ecx, %r9d
3437        # rnd_1: 0 - 0
3438        rorl	$14, %edx
3439        vpshufd	$0x50, %xmm4, %xmm6
3440        # rnd_1: 1 - 1
3441        movl	%r10d, %ebx
3442        movl	%r14d, %ecx
3443        addl	28(%rsp), %r8d
3444        xorl	%r15d, %ecx
3445        vpsrlq	$0x11, %xmm6, %xmm8
3446        vpsrlq	$19, %xmm6, %xmm7
3447        # rnd_1: 2 - 3
3448        xorl	%r13d, %edx
3449        andl	%r13d, %ecx
3450        rorl	$5, %edx
3451        xorl	%r15d, %ecx
3452        xorl	%r13d, %edx
3453        addl	%ecx, %r8d
3454        vpsrld	$10, %xmm6, %xmm9
3455        vpxor	%xmm8, %xmm7, %xmm8
3456        # rnd_1: 4 - 5
3457        rorl	$6, %edx
3458        xorl	%r9d, %ebx
3459        addl	%edx, %r8d
3460        movl	%r9d, %ecx
3461        andl	%ebx, %eax
3462        rorl	$9, %ecx
3463        xorl	%r9d, %ecx
3464        xorl	%r10d, %eax
3465        vpxor	%xmm9, %xmm8, %xmm9
3466        # rnd_1: 6 - 6
3467        rorl	$11, %ecx
3468        addl	%r8d, %r12d
3469        xorl	%r9d, %ecx
3470        addl	%eax, %r8d
3471        vpshufb	%xmm12, %xmm9, %xmm9
3472        # rnd_1: 7 - 7
3473        rorl	$2, %ecx
3474        movl	%r12d, %edx
3475        addl	%ecx, %r8d
3476        vpaddd	%xmm4, %xmm9, %xmm1
3477        # msg_sched done: 4-7
3478        # msg_sched: 8-11
3479        # rnd_0: 0 - 0
3480        rorl	$14, %edx
3481        vpalignr	$4, %xmm2, %xmm3, %xmm5
3482        vpalignr	$4, %xmm0, %xmm1, %xmm4
3483        # rnd_0: 1 - 2
3484        movl	%r9d, %eax
3485        movl	%r13d, %ecx
3486        addl	32(%rsp), %r15d
3487        xorl	%r14d, %ecx
3488        xorl	%r12d, %edx
3489        andl	%r12d, %ecx
3490        vpsrld	$7, %xmm5, %xmm6
3491        vpslld	$25, %xmm5, %xmm7
3492        # rnd_0: 3 - 4
3493        rorl	$5, %edx
3494        xorl	%r14d, %ecx
3495        xorl	%r12d, %edx
3496        addl	%ecx, %r15d
3497        rorl	$6, %edx
3498        xorl	%r8d, %eax
3499        addl	%edx, %r15d
3500        movl	%r8d, %ecx
3501        vpsrld	$18, %xmm5, %xmm8
3502        vpslld	$14, %xmm5, %xmm9
3503        # rnd_0: 5 - 6
3504        andl	%eax, %ebx
3505        rorl	$9, %ecx
3506        xorl	%r8d, %ecx
3507        xorl	%r9d, %ebx
3508        rorl	$11, %ecx
3509        addl	%r15d, %r11d
3510        xorl	%r8d, %ecx
3511        addl	%ebx, %r15d
3512        vpor	%xmm6, %xmm7, %xmm6
3513        vpor	%xmm8, %xmm9, %xmm8
3514        # rnd_0: 7 - 7
3515        rorl	$2, %ecx
3516        movl	%r11d, %edx
3517        addl	%ecx, %r15d
3518        # rnd_1: 0 - 1
3519        rorl	$14, %edx
3520        movl	%r8d, %ebx
3521        movl	%r12d, %ecx
3522        addl	36(%rsp), %r14d
3523        xorl	%r13d, %ecx
3524        vpsrld	$3, %xmm5, %xmm9
3525        vpxor	%xmm6, %xmm8, %xmm6
3526        # rnd_1: 2 - 3
3527        xorl	%r11d, %edx
3528        andl	%r11d, %ecx
3529        rorl	$5, %edx
3530        xorl	%r13d, %ecx
3531        xorl	%r11d, %edx
3532        addl	%ecx, %r14d
3533        vpxor	%xmm6, %xmm9, %xmm5
3534        vpshufd	$0xfa, %xmm1, %xmm6
3535        # rnd_1: 4 - 5
3536        rorl	$6, %edx
3537        xorl	%r15d, %ebx
3538        addl	%edx, %r14d
3539        movl	%r15d, %ecx
3540        andl	%ebx, %eax
3541        rorl	$9, %ecx
3542        xorl	%r15d, %ecx
3543        xorl	%r8d, %eax
3544        vpsrld	$10, %xmm6, %xmm8
3545        vpsrlq	$19, %xmm6, %xmm7
3546        # rnd_1: 6 - 7
3547        rorl	$11, %ecx
3548        addl	%r14d, %r10d
3549        xorl	%r15d, %ecx
3550        addl	%eax, %r14d
3551        rorl	$2, %ecx
3552        movl	%r10d, %edx
3553        addl	%ecx, %r14d
3554        # rnd_0: 0 - 0
3555        rorl	$14, %edx
3556        vpsrlq	$0x11, %xmm6, %xmm6
3557        vpaddd	%xmm2, %xmm4, %xmm4
3558        # rnd_0: 1 - 3
3559        movl	%r15d, %eax
3560        movl	%r11d, %ecx
3561        addl	40(%rsp), %r13d
3562        xorl	%r12d, %ecx
3563        xorl	%r10d, %edx
3564        andl	%r10d, %ecx
3565        rorl	$5, %edx
3566        xorl	%r12d, %ecx
3567        xorl	%r10d, %edx
3568        addl	%ecx, %r13d
3569        vpxor	%xmm6, %xmm7, %xmm6
3570        vpaddd	%xmm5, %xmm4, %xmm4
3571        # rnd_0: 4 - 4
3572        rorl	$6, %edx
3573        xorl	%r14d, %eax
3574        addl	%edx, %r13d
3575        movl	%r14d, %ecx
3576        vpxor	%xmm6, %xmm8, %xmm8
3577        # rnd_0: 5 - 5
3578        andl	%eax, %ebx
3579        rorl	$9, %ecx
3580        xorl	%r14d, %ecx
3581        xorl	%r15d, %ebx
3582        vpshufb	%xmm11, %xmm8, %xmm8
3583        # rnd_0: 6 - 6
3584        rorl	$11, %ecx
3585        addl	%r13d, %r9d
3586        xorl	%r14d, %ecx
3587        addl	%ebx, %r13d
3588        vpaddd	%xmm8, %xmm4, %xmm4
3589        # rnd_0: 7 - 7
3590        rorl	$2, %ecx
3591        movl	%r9d, %edx
3592        addl	%ecx, %r13d
3593        # rnd_1: 0 - 0
3594        rorl	$14, %edx
3595        vpshufd	$0x50, %xmm4, %xmm6
3596        # rnd_1: 1 - 1
3597        movl	%r14d, %ebx
3598        movl	%r10d, %ecx
3599        addl	44(%rsp), %r12d
3600        xorl	%r11d, %ecx
3601        vpsrlq	$0x11, %xmm6, %xmm8
3602        vpsrlq	$19, %xmm6, %xmm7
3603        # rnd_1: 2 - 3
3604        xorl	%r9d, %edx
3605        andl	%r9d, %ecx
3606        rorl	$5, %edx
3607        xorl	%r11d, %ecx
3608        xorl	%r9d, %edx
3609        addl	%ecx, %r12d
3610        vpsrld	$10, %xmm6, %xmm9
3611        vpxor	%xmm8, %xmm7, %xmm8
3612        # rnd_1: 4 - 5
3613        rorl	$6, %edx
3614        xorl	%r13d, %ebx
3615        addl	%edx, %r12d
3616        movl	%r13d, %ecx
3617        andl	%ebx, %eax
3618        rorl	$9, %ecx
3619        xorl	%r13d, %ecx
3620        xorl	%r14d, %eax
3621        vpxor	%xmm9, %xmm8, %xmm9
3622        # rnd_1: 6 - 6
3623        rorl	$11, %ecx
3624        addl	%r12d, %r8d
3625        xorl	%r13d, %ecx
3626        addl	%eax, %r12d
3627        vpshufb	%xmm12, %xmm9, %xmm9
3628        # rnd_1: 7 - 7
3629        rorl	$2, %ecx
3630        movl	%r8d, %edx
3631        addl	%ecx, %r12d
3632        vpaddd	%xmm4, %xmm9, %xmm2
3633        # msg_sched done: 8-11
3634        # msg_sched: 12-15
3635        # rnd_0: 0 - 0
3636        rorl	$14, %edx
3637        vpalignr	$4, %xmm3, %xmm0, %xmm5
3638        vpalignr	$4, %xmm1, %xmm2, %xmm4
3639        # rnd_0: 1 - 2
3640        movl	%r13d, %eax
3641        movl	%r9d, %ecx
3642        addl	48(%rsp), %r11d
3643        xorl	%r10d, %ecx
3644        xorl	%r8d, %edx
3645        andl	%r8d, %ecx
3646        vpsrld	$7, %xmm5, %xmm6
3647        vpslld	$25, %xmm5, %xmm7
3648        # rnd_0: 3 - 4
3649        rorl	$5, %edx
3650        xorl	%r10d, %ecx
3651        xorl	%r8d, %edx
3652        addl	%ecx, %r11d
3653        rorl	$6, %edx
3654        xorl	%r12d, %eax
3655        addl	%edx, %r11d
3656        movl	%r12d, %ecx
3657        vpsrld	$18, %xmm5, %xmm8
3658        vpslld	$14, %xmm5, %xmm9
3659        # rnd_0: 5 - 6
3660        andl	%eax, %ebx
3661        rorl	$9, %ecx
3662        xorl	%r12d, %ecx
3663        xorl	%r13d, %ebx
3664        rorl	$11, %ecx
3665        addl	%r11d, %r15d
3666        xorl	%r12d, %ecx
3667        addl	%ebx, %r11d
3668        vpor	%xmm6, %xmm7, %xmm6
3669        vpor	%xmm8, %xmm9, %xmm8
3670        # rnd_0: 7 - 7
3671        rorl	$2, %ecx
3672        movl	%r15d, %edx
3673        addl	%ecx, %r11d
3674        # rnd_1: 0 - 1
3675        rorl	$14, %edx
3676        movl	%r12d, %ebx
3677        movl	%r8d, %ecx
3678        addl	52(%rsp), %r10d
3679        xorl	%r9d, %ecx
3680        vpsrld	$3, %xmm5, %xmm9
3681        vpxor	%xmm6, %xmm8, %xmm6
3682        # rnd_1: 2 - 3
3683        xorl	%r15d, %edx
3684        andl	%r15d, %ecx
3685        rorl	$5, %edx
3686        xorl	%r9d, %ecx
3687        xorl	%r15d, %edx
3688        addl	%ecx, %r10d
3689        vpxor	%xmm6, %xmm9, %xmm5
3690        vpshufd	$0xfa, %xmm2, %xmm6
3691        # rnd_1: 4 - 5
3692        rorl	$6, %edx
3693        xorl	%r11d, %ebx
3694        addl	%edx, %r10d
3695        movl	%r11d, %ecx
3696        andl	%ebx, %eax
3697        rorl	$9, %ecx
3698        xorl	%r11d, %ecx
3699        xorl	%r12d, %eax
3700        vpsrld	$10, %xmm6, %xmm8
3701        vpsrlq	$19, %xmm6, %xmm7
3702        # rnd_1: 6 - 7
3703        rorl	$11, %ecx
3704        addl	%r10d, %r14d
3705        xorl	%r11d, %ecx
3706        addl	%eax, %r10d
3707        rorl	$2, %ecx
3708        movl	%r14d, %edx
3709        addl	%ecx, %r10d
3710        # rnd_0: 0 - 0
3711        rorl	$14, %edx
3712        vpsrlq	$0x11, %xmm6, %xmm6
3713        vpaddd	%xmm3, %xmm4, %xmm4
3714        # rnd_0: 1 - 3
3715        movl	%r11d, %eax
3716        movl	%r15d, %ecx
3717        addl	56(%rsp), %r9d
3718        xorl	%r8d, %ecx
3719        xorl	%r14d, %edx
3720        andl	%r14d, %ecx
3721        rorl	$5, %edx
3722        xorl	%r8d, %ecx
3723        xorl	%r14d, %edx
3724        addl	%ecx, %r9d
3725        vpxor	%xmm6, %xmm7, %xmm6
3726        vpaddd	%xmm5, %xmm4, %xmm4
3727        # rnd_0: 4 - 4
3728        rorl	$6, %edx
3729        xorl	%r10d, %eax
3730        addl	%edx, %r9d
3731        movl	%r10d, %ecx
3732        vpxor	%xmm6, %xmm8, %xmm8
3733        # rnd_0: 5 - 5
3734        andl	%eax, %ebx
3735        rorl	$9, %ecx
3736        xorl	%r10d, %ecx
3737        xorl	%r11d, %ebx
3738        vpshufb	%xmm11, %xmm8, %xmm8
3739        # rnd_0: 6 - 6
3740        rorl	$11, %ecx
3741        addl	%r9d, %r13d
3742        xorl	%r10d, %ecx
3743        addl	%ebx, %r9d
3744        vpaddd	%xmm8, %xmm4, %xmm4
3745        # rnd_0: 7 - 7
3746        rorl	$2, %ecx
3747        movl	%r13d, %edx
3748        addl	%ecx, %r9d
3749        # rnd_1: 0 - 0
3750        rorl	$14, %edx
3751        vpshufd	$0x50, %xmm4, %xmm6
3752        # rnd_1: 1 - 1
3753        movl	%r10d, %ebx
3754        movl	%r14d, %ecx
3755        addl	60(%rsp), %r8d
3756        xorl	%r15d, %ecx
3757        vpsrlq	$0x11, %xmm6, %xmm8
3758        vpsrlq	$19, %xmm6, %xmm7
3759        # rnd_1: 2 - 3
3760        xorl	%r13d, %edx
3761        andl	%r13d, %ecx
3762        rorl	$5, %edx
3763        xorl	%r15d, %ecx
3764        xorl	%r13d, %edx
3765        addl	%ecx, %r8d
3766        vpsrld	$10, %xmm6, %xmm9
3767        vpxor	%xmm8, %xmm7, %xmm8
3768        # rnd_1: 4 - 5
3769        rorl	$6, %edx
3770        xorl	%r9d, %ebx
3771        addl	%edx, %r8d
3772        movl	%r9d, %ecx
3773        andl	%ebx, %eax
3774        rorl	$9, %ecx
3775        xorl	%r9d, %ecx
3776        xorl	%r10d, %eax
3777        vpxor	%xmm9, %xmm8, %xmm9
3778        # rnd_1: 6 - 6
3779        rorl	$11, %ecx
3780        addl	%r8d, %r12d
3781        xorl	%r9d, %ecx
3782        addl	%eax, %r8d
3783        vpshufb	%xmm12, %xmm9, %xmm9
3784        # rnd_1: 7 - 7
3785        rorl	$2, %ecx
3786        movl	%r12d, %edx
3787        addl	%ecx, %r8d
3788        vpaddd	%xmm4, %xmm9, %xmm3
3789        # msg_sched done: 12-15
3790        # set_w_k_xfer_4: 8
3791        vpaddd	128+L_avx1_sha256_k(%rip), %xmm0, %xmm4
3792        vpaddd	144+L_avx1_sha256_k(%rip), %xmm1, %xmm5
3793        vmovdqu	%xmm4, (%rsp)
3794        vmovdqu	%xmm5, 16(%rsp)
3795        vpaddd	160+L_avx1_sha256_k(%rip), %xmm2, %xmm6
3796        vpaddd	176+L_avx1_sha256_k(%rip), %xmm3, %xmm7
3797        vmovdqu	%xmm6, 32(%rsp)
3798        vmovdqu	%xmm7, 48(%rsp)
3799        # msg_sched: 0-3
3800        # rnd_0: 0 - 0
3801        rorl	$14, %edx
3802        vpalignr	$4, %xmm0, %xmm1, %xmm5
3803        vpalignr	$4, %xmm2, %xmm3, %xmm4
3804        # rnd_0: 1 - 2
3805        movl	%r9d, %eax
3806        movl	%r13d, %ecx
3807        addl	(%rsp), %r15d
3808        xorl	%r14d, %ecx
3809        xorl	%r12d, %edx
3810        andl	%r12d, %ecx
3811        vpsrld	$7, %xmm5, %xmm6
3812        vpslld	$25, %xmm5, %xmm7
3813        # rnd_0: 3 - 4
3814        rorl	$5, %edx
3815        xorl	%r14d, %ecx
3816        xorl	%r12d, %edx
3817        addl	%ecx, %r15d
3818        rorl	$6, %edx
3819        xorl	%r8d, %eax
3820        addl	%edx, %r15d
3821        movl	%r8d, %ecx
3822        vpsrld	$18, %xmm5, %xmm8
3823        vpslld	$14, %xmm5, %xmm9
3824        # rnd_0: 5 - 6
3825        andl	%eax, %ebx
3826        rorl	$9, %ecx
3827        xorl	%r8d, %ecx
3828        xorl	%r9d, %ebx
3829        rorl	$11, %ecx
3830        addl	%r15d, %r11d
3831        xorl	%r8d, %ecx
3832        addl	%ebx, %r15d
3833        vpor	%xmm6, %xmm7, %xmm6
3834        vpor	%xmm8, %xmm9, %xmm8
3835        # rnd_0: 7 - 7
3836        rorl	$2, %ecx
3837        movl	%r11d, %edx
3838        addl	%ecx, %r15d
3839        # rnd_1: 0 - 1
3840        rorl	$14, %edx
3841        movl	%r8d, %ebx
3842        movl	%r12d, %ecx
3843        addl	4(%rsp), %r14d
3844        xorl	%r13d, %ecx
3845        vpsrld	$3, %xmm5, %xmm9
3846        vpxor	%xmm6, %xmm8, %xmm6
3847        # rnd_1: 2 - 3
3848        xorl	%r11d, %edx
3849        andl	%r11d, %ecx
3850        rorl	$5, %edx
3851        xorl	%r13d, %ecx
3852        xorl	%r11d, %edx
3853        addl	%ecx, %r14d
3854        vpxor	%xmm6, %xmm9, %xmm5
3855        vpshufd	$0xfa, %xmm3, %xmm6
3856        # rnd_1: 4 - 5
3857        rorl	$6, %edx
3858        xorl	%r15d, %ebx
3859        addl	%edx, %r14d
3860        movl	%r15d, %ecx
3861        andl	%ebx, %eax
3862        rorl	$9, %ecx
3863        xorl	%r15d, %ecx
3864        xorl	%r8d, %eax
3865        vpsrld	$10, %xmm6, %xmm8
3866        vpsrlq	$19, %xmm6, %xmm7
3867        # rnd_1: 6 - 7
3868        rorl	$11, %ecx
3869        addl	%r14d, %r10d
3870        xorl	%r15d, %ecx
3871        addl	%eax, %r14d
3872        rorl	$2, %ecx
3873        movl	%r10d, %edx
3874        addl	%ecx, %r14d
3875        # rnd_0: 0 - 0
3876        rorl	$14, %edx
3877        vpsrlq	$0x11, %xmm6, %xmm6
3878        vpaddd	%xmm0, %xmm4, %xmm4
3879        # rnd_0: 1 - 3
3880        movl	%r15d, %eax
3881        movl	%r11d, %ecx
3882        addl	8(%rsp), %r13d
3883        xorl	%r12d, %ecx
3884        xorl	%r10d, %edx
3885        andl	%r10d, %ecx
3886        rorl	$5, %edx
3887        xorl	%r12d, %ecx
3888        xorl	%r10d, %edx
3889        addl	%ecx, %r13d
3890        vpxor	%xmm6, %xmm7, %xmm6
3891        vpaddd	%xmm5, %xmm4, %xmm4
3892        # rnd_0: 4 - 4
3893        rorl	$6, %edx
3894        xorl	%r14d, %eax
3895        addl	%edx, %r13d
3896        movl	%r14d, %ecx
3897        vpxor	%xmm6, %xmm8, %xmm8
3898        # rnd_0: 5 - 5
3899        andl	%eax, %ebx
3900        rorl	$9, %ecx
3901        xorl	%r14d, %ecx
3902        xorl	%r15d, %ebx
3903        vpshufb	%xmm11, %xmm8, %xmm8
3904        # rnd_0: 6 - 6
3905        rorl	$11, %ecx
3906        addl	%r13d, %r9d
3907        xorl	%r14d, %ecx
3908        addl	%ebx, %r13d
3909        vpaddd	%xmm8, %xmm4, %xmm4
3910        # rnd_0: 7 - 7
3911        rorl	$2, %ecx
3912        movl	%r9d, %edx
3913        addl	%ecx, %r13d
3914        # rnd_1: 0 - 0
3915        rorl	$14, %edx
3916        vpshufd	$0x50, %xmm4, %xmm6
3917        # rnd_1: 1 - 1
3918        movl	%r14d, %ebx
3919        movl	%r10d, %ecx
3920        addl	12(%rsp), %r12d
3921        xorl	%r11d, %ecx
3922        vpsrlq	$0x11, %xmm6, %xmm8
3923        vpsrlq	$19, %xmm6, %xmm7
3924        # rnd_1: 2 - 3
3925        xorl	%r9d, %edx
3926        andl	%r9d, %ecx
3927        rorl	$5, %edx
3928        xorl	%r11d, %ecx
3929        xorl	%r9d, %edx
3930        addl	%ecx, %r12d
3931        vpsrld	$10, %xmm6, %xmm9
3932        vpxor	%xmm8, %xmm7, %xmm8
3933        # rnd_1: 4 - 5
3934        rorl	$6, %edx
3935        xorl	%r13d, %ebx
3936        addl	%edx, %r12d
3937        movl	%r13d, %ecx
3938        andl	%ebx, %eax
3939        rorl	$9, %ecx
3940        xorl	%r13d, %ecx
3941        xorl	%r14d, %eax
3942        vpxor	%xmm9, %xmm8, %xmm9
3943        # rnd_1: 6 - 6
3944        rorl	$11, %ecx
3945        addl	%r12d, %r8d
3946        xorl	%r13d, %ecx
3947        addl	%eax, %r12d
3948        vpshufb	%xmm12, %xmm9, %xmm9
3949        # rnd_1: 7 - 7
3950        rorl	$2, %ecx
3951        movl	%r8d, %edx
3952        addl	%ecx, %r12d
3953        vpaddd	%xmm4, %xmm9, %xmm0
3954        # msg_sched done: 0-3
3955        # msg_sched: 4-7
3956        # rnd_0: 0 - 0
3957        rorl	$14, %edx
3958        vpalignr	$4, %xmm1, %xmm2, %xmm5
3959        vpalignr	$4, %xmm3, %xmm0, %xmm4
3960        # rnd_0: 1 - 2
3961        movl	%r13d, %eax
3962        movl	%r9d, %ecx
3963        addl	16(%rsp), %r11d
3964        xorl	%r10d, %ecx
3965        xorl	%r8d, %edx
3966        andl	%r8d, %ecx
3967        vpsrld	$7, %xmm5, %xmm6
3968        vpslld	$25, %xmm5, %xmm7
3969        # rnd_0: 3 - 4
3970        rorl	$5, %edx
3971        xorl	%r10d, %ecx
3972        xorl	%r8d, %edx
3973        addl	%ecx, %r11d
3974        rorl	$6, %edx
3975        xorl	%r12d, %eax
3976        addl	%edx, %r11d
3977        movl	%r12d, %ecx
3978        vpsrld	$18, %xmm5, %xmm8
3979        vpslld	$14, %xmm5, %xmm9
3980        # rnd_0: 5 - 6
3981        andl	%eax, %ebx
3982        rorl	$9, %ecx
3983        xorl	%r12d, %ecx
3984        xorl	%r13d, %ebx
3985        rorl	$11, %ecx
3986        addl	%r11d, %r15d
3987        xorl	%r12d, %ecx
3988        addl	%ebx, %r11d
3989        vpor	%xmm6, %xmm7, %xmm6
3990        vpor	%xmm8, %xmm9, %xmm8
3991        # rnd_0: 7 - 7
3992        rorl	$2, %ecx
3993        movl	%r15d, %edx
3994        addl	%ecx, %r11d
3995        # rnd_1: 0 - 1
3996        rorl	$14, %edx
3997        movl	%r12d, %ebx
3998        movl	%r8d, %ecx
3999        addl	20(%rsp), %r10d
4000        xorl	%r9d, %ecx
4001        vpsrld	$3, %xmm5, %xmm9
4002        vpxor	%xmm6, %xmm8, %xmm6
4003        # rnd_1: 2 - 3
4004        xorl	%r15d, %edx
4005        andl	%r15d, %ecx
4006        rorl	$5, %edx
4007        xorl	%r9d, %ecx
4008        xorl	%r15d, %edx
4009        addl	%ecx, %r10d
4010        vpxor	%xmm6, %xmm9, %xmm5
4011        vpshufd	$0xfa, %xmm0, %xmm6
4012        # rnd_1: 4 - 5
4013        rorl	$6, %edx
4014        xorl	%r11d, %ebx
4015        addl	%edx, %r10d
4016        movl	%r11d, %ecx
4017        andl	%ebx, %eax
4018        rorl	$9, %ecx
4019        xorl	%r11d, %ecx
4020        xorl	%r12d, %eax
4021        vpsrld	$10, %xmm6, %xmm8
4022        vpsrlq	$19, %xmm6, %xmm7
4023        # rnd_1: 6 - 7
4024        rorl	$11, %ecx
4025        addl	%r10d, %r14d
4026        xorl	%r11d, %ecx
4027        addl	%eax, %r10d
4028        rorl	$2, %ecx
4029        movl	%r14d, %edx
4030        addl	%ecx, %r10d
4031        # rnd_0: 0 - 0
4032        rorl	$14, %edx
4033        vpsrlq	$0x11, %xmm6, %xmm6
4034        vpaddd	%xmm1, %xmm4, %xmm4
4035        # rnd_0: 1 - 3
4036        movl	%r11d, %eax
4037        movl	%r15d, %ecx
4038        addl	24(%rsp), %r9d
4039        xorl	%r8d, %ecx
4040        xorl	%r14d, %edx
4041        andl	%r14d, %ecx
4042        rorl	$5, %edx
4043        xorl	%r8d, %ecx
4044        xorl	%r14d, %edx
4045        addl	%ecx, %r9d
4046        vpxor	%xmm6, %xmm7, %xmm6
4047        vpaddd	%xmm5, %xmm4, %xmm4
4048        # rnd_0: 4 - 4
4049        rorl	$6, %edx
4050        xorl	%r10d, %eax
4051        addl	%edx, %r9d
4052        movl	%r10d, %ecx
4053        vpxor	%xmm6, %xmm8, %xmm8
4054        # rnd_0: 5 - 5
4055        andl	%eax, %ebx
4056        rorl	$9, %ecx
4057        xorl	%r10d, %ecx
4058        xorl	%r11d, %ebx
4059        vpshufb	%xmm11, %xmm8, %xmm8
4060        # rnd_0: 6 - 6
4061        rorl	$11, %ecx
4062        addl	%r9d, %r13d
4063        xorl	%r10d, %ecx
4064        addl	%ebx, %r9d
4065        vpaddd	%xmm8, %xmm4, %xmm4
4066        # rnd_0: 7 - 7
4067        rorl	$2, %ecx
4068        movl	%r13d, %edx
4069        addl	%ecx, %r9d
4070        # rnd_1: 0 - 0
4071        rorl	$14, %edx
4072        vpshufd	$0x50, %xmm4, %xmm6
4073        # rnd_1: 1 - 1
4074        movl	%r10d, %ebx
4075        movl	%r14d, %ecx
4076        addl	28(%rsp), %r8d
4077        xorl	%r15d, %ecx
4078        vpsrlq	$0x11, %xmm6, %xmm8
4079        vpsrlq	$19, %xmm6, %xmm7
4080        # rnd_1: 2 - 3
4081        xorl	%r13d, %edx
4082        andl	%r13d, %ecx
4083        rorl	$5, %edx
4084        xorl	%r15d, %ecx
4085        xorl	%r13d, %edx
4086        addl	%ecx, %r8d
4087        vpsrld	$10, %xmm6, %xmm9
4088        vpxor	%xmm8, %xmm7, %xmm8
4089        # rnd_1: 4 - 5
4090        rorl	$6, %edx
4091        xorl	%r9d, %ebx
4092        addl	%edx, %r8d
4093        movl	%r9d, %ecx
4094        andl	%ebx, %eax
4095        rorl	$9, %ecx
4096        xorl	%r9d, %ecx
4097        xorl	%r10d, %eax
4098        vpxor	%xmm9, %xmm8, %xmm9
4099        # rnd_1: 6 - 6
4100        rorl	$11, %ecx
4101        addl	%r8d, %r12d
4102        xorl	%r9d, %ecx
4103        addl	%eax, %r8d
4104        vpshufb	%xmm12, %xmm9, %xmm9
4105        # rnd_1: 7 - 7
4106        rorl	$2, %ecx
4107        movl	%r12d, %edx
4108        addl	%ecx, %r8d
4109        vpaddd	%xmm4, %xmm9, %xmm1
4110        # msg_sched done: 4-7
4111        # msg_sched: 8-11
4112        # rnd_0: 0 - 0
4113        rorl	$14, %edx
4114        vpalignr	$4, %xmm2, %xmm3, %xmm5
4115        vpalignr	$4, %xmm0, %xmm1, %xmm4
4116        # rnd_0: 1 - 2
4117        movl	%r9d, %eax
4118        movl	%r13d, %ecx
4119        addl	32(%rsp), %r15d
4120        xorl	%r14d, %ecx
4121        xorl	%r12d, %edx
4122        andl	%r12d, %ecx
4123        vpsrld	$7, %xmm5, %xmm6
4124        vpslld	$25, %xmm5, %xmm7
4125        # rnd_0: 3 - 4
4126        rorl	$5, %edx
4127        xorl	%r14d, %ecx
4128        xorl	%r12d, %edx
4129        addl	%ecx, %r15d
4130        rorl	$6, %edx
4131        xorl	%r8d, %eax
4132        addl	%edx, %r15d
4133        movl	%r8d, %ecx
4134        vpsrld	$18, %xmm5, %xmm8
4135        vpslld	$14, %xmm5, %xmm9
4136        # rnd_0: 5 - 6
4137        andl	%eax, %ebx
4138        rorl	$9, %ecx
4139        xorl	%r8d, %ecx
4140        xorl	%r9d, %ebx
4141        rorl	$11, %ecx
4142        addl	%r15d, %r11d
4143        xorl	%r8d, %ecx
4144        addl	%ebx, %r15d
4145        vpor	%xmm6, %xmm7, %xmm6
4146        vpor	%xmm8, %xmm9, %xmm8
4147        # rnd_0: 7 - 7
4148        rorl	$2, %ecx
4149        movl	%r11d, %edx
4150        addl	%ecx, %r15d
4151        # rnd_1: 0 - 1
4152        rorl	$14, %edx
4153        movl	%r8d, %ebx
4154        movl	%r12d, %ecx
4155        addl	36(%rsp), %r14d
4156        xorl	%r13d, %ecx
4157        vpsrld	$3, %xmm5, %xmm9
4158        vpxor	%xmm6, %xmm8, %xmm6
4159        # rnd_1: 2 - 3
4160        xorl	%r11d, %edx
4161        andl	%r11d, %ecx
4162        rorl	$5, %edx
4163        xorl	%r13d, %ecx
4164        xorl	%r11d, %edx
4165        addl	%ecx, %r14d
4166        vpxor	%xmm6, %xmm9, %xmm5
4167        vpshufd	$0xfa, %xmm1, %xmm6
4168        # rnd_1: 4 - 5
4169        rorl	$6, %edx
4170        xorl	%r15d, %ebx
4171        addl	%edx, %r14d
4172        movl	%r15d, %ecx
4173        andl	%ebx, %eax
4174        rorl	$9, %ecx
4175        xorl	%r15d, %ecx
4176        xorl	%r8d, %eax
4177        vpsrld	$10, %xmm6, %xmm8
4178        vpsrlq	$19, %xmm6, %xmm7
4179        # rnd_1: 6 - 7
4180        rorl	$11, %ecx
4181        addl	%r14d, %r10d
4182        xorl	%r15d, %ecx
4183        addl	%eax, %r14d
4184        rorl	$2, %ecx
4185        movl	%r10d, %edx
4186        addl	%ecx, %r14d
4187        # rnd_0: 0 - 0
4188        rorl	$14, %edx
4189        vpsrlq	$0x11, %xmm6, %xmm6
4190        vpaddd	%xmm2, %xmm4, %xmm4
4191        # rnd_0: 1 - 3
4192        movl	%r15d, %eax
4193        movl	%r11d, %ecx
4194        addl	40(%rsp), %r13d
4195        xorl	%r12d, %ecx
4196        xorl	%r10d, %edx
4197        andl	%r10d, %ecx
4198        rorl	$5, %edx
4199        xorl	%r12d, %ecx
4200        xorl	%r10d, %edx
4201        addl	%ecx, %r13d
4202        vpxor	%xmm6, %xmm7, %xmm6
4203        vpaddd	%xmm5, %xmm4, %xmm4
4204        # rnd_0: 4 - 4
4205        rorl	$6, %edx
4206        xorl	%r14d, %eax
4207        addl	%edx, %r13d
4208        movl	%r14d, %ecx
4209        vpxor	%xmm6, %xmm8, %xmm8
4210        # rnd_0: 5 - 5
4211        andl	%eax, %ebx
4212        rorl	$9, %ecx
4213        xorl	%r14d, %ecx
4214        xorl	%r15d, %ebx
4215        vpshufb	%xmm11, %xmm8, %xmm8
4216        # rnd_0: 6 - 6
4217        rorl	$11, %ecx
4218        addl	%r13d, %r9d
4219        xorl	%r14d, %ecx
4220        addl	%ebx, %r13d
4221        vpaddd	%xmm8, %xmm4, %xmm4
4222        # rnd_0: 7 - 7
4223        rorl	$2, %ecx
4224        movl	%r9d, %edx
4225        addl	%ecx, %r13d
4226        # rnd_1: 0 - 0
4227        rorl	$14, %edx
4228        vpshufd	$0x50, %xmm4, %xmm6
4229        # rnd_1: 1 - 1
4230        movl	%r14d, %ebx
4231        movl	%r10d, %ecx
4232        addl	44(%rsp), %r12d
4233        xorl	%r11d, %ecx
4234        vpsrlq	$0x11, %xmm6, %xmm8
4235        vpsrlq	$19, %xmm6, %xmm7
4236        # rnd_1: 2 - 3
4237        xorl	%r9d, %edx
4238        andl	%r9d, %ecx
4239        rorl	$5, %edx
4240        xorl	%r11d, %ecx
4241        xorl	%r9d, %edx
4242        addl	%ecx, %r12d
4243        vpsrld	$10, %xmm6, %xmm9
4244        vpxor	%xmm8, %xmm7, %xmm8
4245        # rnd_1: 4 - 5
4246        rorl	$6, %edx
4247        xorl	%r13d, %ebx
4248        addl	%edx, %r12d
4249        movl	%r13d, %ecx
4250        andl	%ebx, %eax
4251        rorl	$9, %ecx
4252        xorl	%r13d, %ecx
4253        xorl	%r14d, %eax
4254        vpxor	%xmm9, %xmm8, %xmm9
4255        # rnd_1: 6 - 6
4256        rorl	$11, %ecx
4257        addl	%r12d, %r8d
4258        xorl	%r13d, %ecx
4259        addl	%eax, %r12d
4260        vpshufb	%xmm12, %xmm9, %xmm9
4261        # rnd_1: 7 - 7
4262        rorl	$2, %ecx
4263        movl	%r8d, %edx
4264        addl	%ecx, %r12d
4265        vpaddd	%xmm4, %xmm9, %xmm2
4266        # msg_sched done: 8-11
4267        # msg_sched: 12-15
4268        # rnd_0: 0 - 0
4269        rorl	$14, %edx
4270        vpalignr	$4, %xmm3, %xmm0, %xmm5
4271        vpalignr	$4, %xmm1, %xmm2, %xmm4
4272        # rnd_0: 1 - 2
4273        movl	%r13d, %eax
4274        movl	%r9d, %ecx
4275        addl	48(%rsp), %r11d
4276        xorl	%r10d, %ecx
4277        xorl	%r8d, %edx
4278        andl	%r8d, %ecx
4279        vpsrld	$7, %xmm5, %xmm6
4280        vpslld	$25, %xmm5, %xmm7
4281        # rnd_0: 3 - 4
4282        rorl	$5, %edx
4283        xorl	%r10d, %ecx
4284        xorl	%r8d, %edx
4285        addl	%ecx, %r11d
4286        rorl	$6, %edx
4287        xorl	%r12d, %eax
4288        addl	%edx, %r11d
4289        movl	%r12d, %ecx
4290        vpsrld	$18, %xmm5, %xmm8
4291        vpslld	$14, %xmm5, %xmm9
4292        # rnd_0: 5 - 6
4293        andl	%eax, %ebx
4294        rorl	$9, %ecx
4295        xorl	%r12d, %ecx
4296        xorl	%r13d, %ebx
4297        rorl	$11, %ecx
4298        addl	%r11d, %r15d
4299        xorl	%r12d, %ecx
4300        addl	%ebx, %r11d
4301        vpor	%xmm6, %xmm7, %xmm6
4302        vpor	%xmm8, %xmm9, %xmm8
4303        # rnd_0: 7 - 7
4304        rorl	$2, %ecx
4305        movl	%r15d, %edx
4306        addl	%ecx, %r11d
4307        # rnd_1: 0 - 1
4308        rorl	$14, %edx
4309        movl	%r12d, %ebx
4310        movl	%r8d, %ecx
4311        addl	52(%rsp), %r10d
4312        xorl	%r9d, %ecx
4313        vpsrld	$3, %xmm5, %xmm9
4314        vpxor	%xmm6, %xmm8, %xmm6
4315        # rnd_1: 2 - 3
4316        xorl	%r15d, %edx
4317        andl	%r15d, %ecx
4318        rorl	$5, %edx
4319        xorl	%r9d, %ecx
4320        xorl	%r15d, %edx
4321        addl	%ecx, %r10d
4322        vpxor	%xmm6, %xmm9, %xmm5
4323        vpshufd	$0xfa, %xmm2, %xmm6
4324        # rnd_1: 4 - 5
4325        rorl	$6, %edx
4326        xorl	%r11d, %ebx
4327        addl	%edx, %r10d
4328        movl	%r11d, %ecx
4329        andl	%ebx, %eax
4330        rorl	$9, %ecx
4331        xorl	%r11d, %ecx
4332        xorl	%r12d, %eax
4333        vpsrld	$10, %xmm6, %xmm8
4334        vpsrlq	$19, %xmm6, %xmm7
4335        # rnd_1: 6 - 7
4336        rorl	$11, %ecx
4337        addl	%r10d, %r14d
4338        xorl	%r11d, %ecx
4339        addl	%eax, %r10d
4340        rorl	$2, %ecx
4341        movl	%r14d, %edx
4342        addl	%ecx, %r10d
4343        # rnd_0: 0 - 0
4344        rorl	$14, %edx
4345        vpsrlq	$0x11, %xmm6, %xmm6
4346        vpaddd	%xmm3, %xmm4, %xmm4
4347        # rnd_0: 1 - 3
4348        movl	%r11d, %eax
4349        movl	%r15d, %ecx
4350        addl	56(%rsp), %r9d
4351        xorl	%r8d, %ecx
4352        xorl	%r14d, %edx
4353        andl	%r14d, %ecx
4354        rorl	$5, %edx
4355        xorl	%r8d, %ecx
4356        xorl	%r14d, %edx
4357        addl	%ecx, %r9d
4358        vpxor	%xmm6, %xmm7, %xmm6
4359        vpaddd	%xmm5, %xmm4, %xmm4
4360        # rnd_0: 4 - 4
4361        rorl	$6, %edx
4362        xorl	%r10d, %eax
4363        addl	%edx, %r9d
4364        movl	%r10d, %ecx
4365        vpxor	%xmm6, %xmm8, %xmm8
4366        # rnd_0: 5 - 5
4367        andl	%eax, %ebx
4368        rorl	$9, %ecx
4369        xorl	%r10d, %ecx
4370        xorl	%r11d, %ebx
4371        vpshufb	%xmm11, %xmm8, %xmm8
4372        # rnd_0: 6 - 6
4373        rorl	$11, %ecx
4374        addl	%r9d, %r13d
4375        xorl	%r10d, %ecx
4376        addl	%ebx, %r9d
4377        vpaddd	%xmm8, %xmm4, %xmm4
4378        # rnd_0: 7 - 7
4379        rorl	$2, %ecx
4380        movl	%r13d, %edx
4381        addl	%ecx, %r9d
4382        # rnd_1: 0 - 0
4383        rorl	$14, %edx
4384        vpshufd	$0x50, %xmm4, %xmm6
4385        # rnd_1: 1 - 1
4386        movl	%r10d, %ebx
4387        movl	%r14d, %ecx
4388        addl	60(%rsp), %r8d
4389        xorl	%r15d, %ecx
4390        vpsrlq	$0x11, %xmm6, %xmm8
4391        vpsrlq	$19, %xmm6, %xmm7
4392        # rnd_1: 2 - 3
4393        xorl	%r13d, %edx
4394        andl	%r13d, %ecx
4395        rorl	$5, %edx
4396        xorl	%r15d, %ecx
4397        xorl	%r13d, %edx
4398        addl	%ecx, %r8d
4399        vpsrld	$10, %xmm6, %xmm9
4400        vpxor	%xmm8, %xmm7, %xmm8
4401        # rnd_1: 4 - 5
4402        rorl	$6, %edx
4403        xorl	%r9d, %ebx
4404        addl	%edx, %r8d
4405        movl	%r9d, %ecx
4406        andl	%ebx, %eax
4407        rorl	$9, %ecx
4408        xorl	%r9d, %ecx
4409        xorl	%r10d, %eax
4410        vpxor	%xmm9, %xmm8, %xmm9
4411        # rnd_1: 6 - 6
4412        rorl	$11, %ecx
4413        addl	%r8d, %r12d
4414        xorl	%r9d, %ecx
4415        addl	%eax, %r8d
4416        vpshufb	%xmm12, %xmm9, %xmm9
4417        # rnd_1: 7 - 7
4418        rorl	$2, %ecx
4419        movl	%r12d, %edx
4420        addl	%ecx, %r8d
4421        vpaddd	%xmm4, %xmm9, %xmm3
4422        # msg_sched done: 12-15
4423        # set_w_k_xfer_4: 12
4424        vpaddd	192+L_avx1_sha256_k(%rip), %xmm0, %xmm4
4425        vpaddd	208+L_avx1_sha256_k(%rip), %xmm1, %xmm5
4426        vmovdqu	%xmm4, (%rsp)
4427        vmovdqu	%xmm5, 16(%rsp)
4428        vpaddd	224+L_avx1_sha256_k(%rip), %xmm2, %xmm6
4429        vpaddd	240+L_avx1_sha256_k(%rip), %xmm3, %xmm7
4430        vmovdqu	%xmm6, 32(%rsp)
4431        vmovdqu	%xmm7, 48(%rsp)
4432        # rnd_all_4: 0-3
4433        addl	(%rsp), %r15d
4434        movl	%r13d, %ecx
4435        movl	%r9d, %eax
4436        xorl	%r14d, %ecx
4437        rorl	$14, %edx
4438        andl	%r12d, %ecx
4439        xorl	%r12d, %edx
4440        xorl	%r14d, %ecx
4441        rorl	$5, %edx
4442        addl	%ecx, %r15d
4443        xorl	%r12d, %edx
4444        xorl	%r8d, %eax
4445        rorl	$6, %edx
4446        movl	%r8d, %ecx
4447        addl	%edx, %r15d
4448        rorl	$9, %ecx
4449        andl	%eax, %ebx
4450        xorl	%r8d, %ecx
4451        xorl	%r9d, %ebx
4452        rorl	$11, %ecx
4453        addl	%r15d, %r11d
4454        xorl	%r8d, %ecx
4455        addl	%ebx, %r15d
4456        rorl	$2, %ecx
4457        movl	%r11d, %edx
4458        addl	%ecx, %r15d
4459        addl	4(%rsp), %r14d
4460        movl	%r12d, %ecx
4461        movl	%r8d, %ebx
4462        xorl	%r13d, %ecx
4463        rorl	$14, %edx
4464        andl	%r11d, %ecx
4465        xorl	%r11d, %edx
4466        xorl	%r13d, %ecx
4467        rorl	$5, %edx
4468        addl	%ecx, %r14d
4469        xorl	%r11d, %edx
4470        xorl	%r15d, %ebx
4471        rorl	$6, %edx
4472        movl	%r15d, %ecx
4473        addl	%edx, %r14d
4474        rorl	$9, %ecx
4475        andl	%ebx, %eax
4476        xorl	%r15d, %ecx
4477        xorl	%r8d, %eax
4478        rorl	$11, %ecx
4479        addl	%r14d, %r10d
4480        xorl	%r15d, %ecx
4481        addl	%eax, %r14d
4482        rorl	$2, %ecx
4483        movl	%r10d, %edx
4484        addl	%ecx, %r14d
4485        addl	8(%rsp), %r13d
4486        movl	%r11d, %ecx
4487        movl	%r15d, %eax
4488        xorl	%r12d, %ecx
4489        rorl	$14, %edx
4490        andl	%r10d, %ecx
4491        xorl	%r10d, %edx
4492        xorl	%r12d, %ecx
4493        rorl	$5, %edx
4494        addl	%ecx, %r13d
4495        xorl	%r10d, %edx
4496        xorl	%r14d, %eax
4497        rorl	$6, %edx
4498        movl	%r14d, %ecx
4499        addl	%edx, %r13d
4500        rorl	$9, %ecx
4501        andl	%eax, %ebx
4502        xorl	%r14d, %ecx
4503        xorl	%r15d, %ebx
4504        rorl	$11, %ecx
4505        addl	%r13d, %r9d
4506        xorl	%r14d, %ecx
4507        addl	%ebx, %r13d
4508        rorl	$2, %ecx
4509        movl	%r9d, %edx
4510        addl	%ecx, %r13d
4511        addl	12(%rsp), %r12d
4512        movl	%r10d, %ecx
4513        movl	%r14d, %ebx
4514        xorl	%r11d, %ecx
4515        rorl	$14, %edx
4516        andl	%r9d, %ecx
4517        xorl	%r9d, %edx
4518        xorl	%r11d, %ecx
4519        rorl	$5, %edx
4520        addl	%ecx, %r12d
4521        xorl	%r9d, %edx
4522        xorl	%r13d, %ebx
4523        rorl	$6, %edx
4524        movl	%r13d, %ecx
4525        addl	%edx, %r12d
4526        rorl	$9, %ecx
4527        andl	%ebx, %eax
4528        xorl	%r13d, %ecx
4529        xorl	%r14d, %eax
4530        rorl	$11, %ecx
4531        addl	%r12d, %r8d
4532        xorl	%r13d, %ecx
4533        addl	%eax, %r12d
4534        rorl	$2, %ecx
4535        movl	%r8d, %edx
4536        addl	%ecx, %r12d
4537        # rnd_all_4: 1-4
4538        addl	16(%rsp), %r11d
4539        movl	%r9d, %ecx
4540        movl	%r13d, %eax
4541        xorl	%r10d, %ecx
4542        rorl	$14, %edx
4543        andl	%r8d, %ecx
4544        xorl	%r8d, %edx
4545        xorl	%r10d, %ecx
4546        rorl	$5, %edx
4547        addl	%ecx, %r11d
4548        xorl	%r8d, %edx
4549        xorl	%r12d, %eax
4550        rorl	$6, %edx
4551        movl	%r12d, %ecx
4552        addl	%edx, %r11d
4553        rorl	$9, %ecx
4554        andl	%eax, %ebx
4555        xorl	%r12d, %ecx
4556        xorl	%r13d, %ebx
4557        rorl	$11, %ecx
4558        addl	%r11d, %r15d
4559        xorl	%r12d, %ecx
4560        addl	%ebx, %r11d
4561        rorl	$2, %ecx
4562        movl	%r15d, %edx
4563        addl	%ecx, %r11d
4564        addl	20(%rsp), %r10d
4565        movl	%r8d, %ecx
4566        movl	%r12d, %ebx
4567        xorl	%r9d, %ecx
4568        rorl	$14, %edx
4569        andl	%r15d, %ecx
4570        xorl	%r15d, %edx
4571        xorl	%r9d, %ecx
4572        rorl	$5, %edx
4573        addl	%ecx, %r10d
4574        xorl	%r15d, %edx
4575        xorl	%r11d, %ebx
4576        rorl	$6, %edx
4577        movl	%r11d, %ecx
4578        addl	%edx, %r10d
4579        rorl	$9, %ecx
4580        andl	%ebx, %eax
4581        xorl	%r11d, %ecx
4582        xorl	%r12d, %eax
4583        rorl	$11, %ecx
4584        addl	%r10d, %r14d
4585        xorl	%r11d, %ecx
4586        addl	%eax, %r10d
4587        rorl	$2, %ecx
4588        movl	%r14d, %edx
4589        addl	%ecx, %r10d
4590        addl	24(%rsp), %r9d
4591        movl	%r15d, %ecx
4592        movl	%r11d, %eax
4593        xorl	%r8d, %ecx
4594        rorl	$14, %edx
4595        andl	%r14d, %ecx
4596        xorl	%r14d, %edx
4597        xorl	%r8d, %ecx
4598        rorl	$5, %edx
4599        addl	%ecx, %r9d
4600        xorl	%r14d, %edx
4601        xorl	%r10d, %eax
4602        rorl	$6, %edx
4603        movl	%r10d, %ecx
4604        addl	%edx, %r9d
4605        rorl	$9, %ecx
4606        andl	%eax, %ebx
4607        xorl	%r10d, %ecx
4608        xorl	%r11d, %ebx
4609        rorl	$11, %ecx
4610        addl	%r9d, %r13d
4611        xorl	%r10d, %ecx
4612        addl	%ebx, %r9d
4613        rorl	$2, %ecx
4614        movl	%r13d, %edx
4615        addl	%ecx, %r9d
4616        addl	28(%rsp), %r8d
4617        movl	%r14d, %ecx
4618        movl	%r10d, %ebx
4619        xorl	%r15d, %ecx
4620        rorl	$14, %edx
4621        andl	%r13d, %ecx
4622        xorl	%r13d, %edx
4623        xorl	%r15d, %ecx
4624        rorl	$5, %edx
4625        addl	%ecx, %r8d
4626        xorl	%r13d, %edx
4627        xorl	%r9d, %ebx
4628        rorl	$6, %edx
4629        movl	%r9d, %ecx
4630        addl	%edx, %r8d
4631        rorl	$9, %ecx
4632        andl	%ebx, %eax
4633        xorl	%r9d, %ecx
4634        xorl	%r10d, %eax
4635        rorl	$11, %ecx
4636        addl	%r8d, %r12d
4637        xorl	%r9d, %ecx
4638        addl	%eax, %r8d
4639        rorl	$2, %ecx
4640        movl	%r12d, %edx
4641        addl	%ecx, %r8d
4642        # rnd_all_4: 2-5
4643        addl	32(%rsp), %r15d
4644        movl	%r13d, %ecx
4645        movl	%r9d, %eax
4646        xorl	%r14d, %ecx
4647        rorl	$14, %edx
4648        andl	%r12d, %ecx
4649        xorl	%r12d, %edx
4650        xorl	%r14d, %ecx
4651        rorl	$5, %edx
4652        addl	%ecx, %r15d
4653        xorl	%r12d, %edx
4654        xorl	%r8d, %eax
4655        rorl	$6, %edx
4656        movl	%r8d, %ecx
4657        addl	%edx, %r15d
4658        rorl	$9, %ecx
4659        andl	%eax, %ebx
4660        xorl	%r8d, %ecx
4661        xorl	%r9d, %ebx
4662        rorl	$11, %ecx
4663        addl	%r15d, %r11d
4664        xorl	%r8d, %ecx
4665        addl	%ebx, %r15d
4666        rorl	$2, %ecx
4667        movl	%r11d, %edx
4668        addl	%ecx, %r15d
4669        addl	36(%rsp), %r14d
4670        movl	%r12d, %ecx
4671        movl	%r8d, %ebx
4672        xorl	%r13d, %ecx
4673        rorl	$14, %edx
4674        andl	%r11d, %ecx
4675        xorl	%r11d, %edx
4676        xorl	%r13d, %ecx
4677        rorl	$5, %edx
4678        addl	%ecx, %r14d
4679        xorl	%r11d, %edx
4680        xorl	%r15d, %ebx
4681        rorl	$6, %edx
4682        movl	%r15d, %ecx
4683        addl	%edx, %r14d
4684        rorl	$9, %ecx
4685        andl	%ebx, %eax
4686        xorl	%r15d, %ecx
4687        xorl	%r8d, %eax
4688        rorl	$11, %ecx
4689        addl	%r14d, %r10d
4690        xorl	%r15d, %ecx
4691        addl	%eax, %r14d
4692        rorl	$2, %ecx
4693        movl	%r10d, %edx
4694        addl	%ecx, %r14d
4695        addl	40(%rsp), %r13d
4696        movl	%r11d, %ecx
4697        movl	%r15d, %eax
4698        xorl	%r12d, %ecx
4699        rorl	$14, %edx
4700        andl	%r10d, %ecx
4701        xorl	%r10d, %edx
4702        xorl	%r12d, %ecx
4703        rorl	$5, %edx
4704        addl	%ecx, %r13d
4705        xorl	%r10d, %edx
4706        xorl	%r14d, %eax
4707        rorl	$6, %edx
4708        movl	%r14d, %ecx
4709        addl	%edx, %r13d
4710        rorl	$9, %ecx
4711        andl	%eax, %ebx
4712        xorl	%r14d, %ecx
4713        xorl	%r15d, %ebx
4714        rorl	$11, %ecx
4715        addl	%r13d, %r9d
4716        xorl	%r14d, %ecx
4717        addl	%ebx, %r13d
4718        rorl	$2, %ecx
4719        movl	%r9d, %edx
4720        addl	%ecx, %r13d
4721        addl	44(%rsp), %r12d
4722        movl	%r10d, %ecx
4723        movl	%r14d, %ebx
4724        xorl	%r11d, %ecx
4725        rorl	$14, %edx
4726        andl	%r9d, %ecx
4727        xorl	%r9d, %edx
4728        xorl	%r11d, %ecx
4729        rorl	$5, %edx
4730        addl	%ecx, %r12d
4731        xorl	%r9d, %edx
4732        xorl	%r13d, %ebx
4733        rorl	$6, %edx
4734        movl	%r13d, %ecx
4735        addl	%edx, %r12d
4736        rorl	$9, %ecx
4737        andl	%ebx, %eax
4738        xorl	%r13d, %ecx
4739        xorl	%r14d, %eax
4740        rorl	$11, %ecx
4741        addl	%r12d, %r8d
4742        xorl	%r13d, %ecx
4743        addl	%eax, %r12d
4744        rorl	$2, %ecx
4745        movl	%r8d, %edx
4746        addl	%ecx, %r12d
4747        # rnd_all_4: 3-6
4748        addl	48(%rsp), %r11d
4749        movl	%r9d, %ecx
4750        movl	%r13d, %eax
4751        xorl	%r10d, %ecx
4752        rorl	$14, %edx
4753        andl	%r8d, %ecx
4754        xorl	%r8d, %edx
4755        xorl	%r10d, %ecx
4756        rorl	$5, %edx
4757        addl	%ecx, %r11d
4758        xorl	%r8d, %edx
4759        xorl	%r12d, %eax
4760        rorl	$6, %edx
4761        movl	%r12d, %ecx
4762        addl	%edx, %r11d
4763        rorl	$9, %ecx
4764        andl	%eax, %ebx
4765        xorl	%r12d, %ecx
4766        xorl	%r13d, %ebx
4767        rorl	$11, %ecx
4768        addl	%r11d, %r15d
4769        xorl	%r12d, %ecx
4770        addl	%ebx, %r11d
4771        rorl	$2, %ecx
4772        movl	%r15d, %edx
4773        addl	%ecx, %r11d
4774        addl	52(%rsp), %r10d
4775        movl	%r8d, %ecx
4776        movl	%r12d, %ebx
4777        xorl	%r9d, %ecx
4778        rorl	$14, %edx
4779        andl	%r15d, %ecx
4780        xorl	%r15d, %edx
4781        xorl	%r9d, %ecx
4782        rorl	$5, %edx
4783        addl	%ecx, %r10d
4784        xorl	%r15d, %edx
4785        xorl	%r11d, %ebx
4786        rorl	$6, %edx
4787        movl	%r11d, %ecx
4788        addl	%edx, %r10d
4789        rorl	$9, %ecx
4790        andl	%ebx, %eax
4791        xorl	%r11d, %ecx
4792        xorl	%r12d, %eax
4793        rorl	$11, %ecx
4794        addl	%r10d, %r14d
4795        xorl	%r11d, %ecx
4796        addl	%eax, %r10d
4797        rorl	$2, %ecx
4798        movl	%r14d, %edx
4799        addl	%ecx, %r10d
4800        addl	56(%rsp), %r9d
4801        movl	%r15d, %ecx
4802        movl	%r11d, %eax
4803        xorl	%r8d, %ecx
4804        rorl	$14, %edx
4805        andl	%r14d, %ecx
4806        xorl	%r14d, %edx
4807        xorl	%r8d, %ecx
4808        rorl	$5, %edx
4809        addl	%ecx, %r9d
4810        xorl	%r14d, %edx
4811        xorl	%r10d, %eax
4812        rorl	$6, %edx
4813        movl	%r10d, %ecx
4814        addl	%edx, %r9d
4815        rorl	$9, %ecx
4816        andl	%eax, %ebx
4817        xorl	%r10d, %ecx
4818        xorl	%r11d, %ebx
4819        rorl	$11, %ecx
4820        addl	%r9d, %r13d
4821        xorl	%r10d, %ecx
4822        addl	%ebx, %r9d
4823        rorl	$2, %ecx
4824        movl	%r13d, %edx
4825        addl	%ecx, %r9d
4826        addl	60(%rsp), %r8d
4827        movl	%r14d, %ecx
4828        movl	%r10d, %ebx
4829        xorl	%r15d, %ecx
4830        rorl	$14, %edx
4831        andl	%r13d, %ecx
4832        xorl	%r13d, %edx
4833        xorl	%r15d, %ecx
4834        rorl	$5, %edx
4835        addl	%ecx, %r8d
4836        xorl	%r13d, %edx
4837        xorl	%r9d, %ebx
4838        rorl	$6, %edx
4839        movl	%r9d, %ecx
4840        addl	%edx, %r8d
4841        rorl	$9, %ecx
4842        andl	%ebx, %eax
4843        xorl	%r9d, %ecx
4844        xorl	%r10d, %eax
4845        rorl	$11, %ecx
4846        addl	%r8d, %r12d
4847        xorl	%r9d, %ecx
4848        addl	%eax, %r8d
4849        rorl	$2, %ecx
4850        movl	%r12d, %edx
4851        addl	%ecx, %r8d
4852        addl	(%rdi), %r8d
4853        addl	4(%rdi), %r9d
4854        addl	8(%rdi), %r10d
4855        addl	12(%rdi), %r11d
4856        addl	16(%rdi), %r12d
4857        addl	20(%rdi), %r13d
4858        addl	24(%rdi), %r14d
4859        addl	28(%rdi), %r15d
4860        addq	$0x40, %rbp
4861        subl	$0x40, %esi
4862        movl	%r8d, (%rdi)
4863        movl	%r9d, 4(%rdi)
4864        movl	%r10d, 8(%rdi)
4865        movl	%r11d, 12(%rdi)
4866        movl	%r12d, 16(%rdi)
4867        movl	%r13d, 20(%rdi)
4868        movl	%r14d, 24(%rdi)
4869        movl	%r15d, 28(%rdi)
4870        jnz	L_sha256_len_avx1_start
4871        xorq	%rax, %rax
4872        vzeroupper
4873        addq	$0x40, %rsp
4874        popq	%rbp
4875        popq	%r15
4876        popq	%r14
4877        popq	%r13
4878        popq	%r12
4879        popq	%rbx
4880        repz retq
4881#ifndef __APPLE__
4882.size	Transform_Sha256_AVX1_Len,.-Transform_Sha256_AVX1_Len
4883#endif /* __APPLE__ */
4884#ifndef __APPLE__
4885.data
4886#else
4887.section	__DATA,__data
4888#endif /* __APPLE__ */
4889L_avx1_rorx_sha256_k:
4890.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
4891.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
4892.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
4893.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
4894.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
4895.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
4896.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
4897.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
4898.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
4899.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
4900.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
4901.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
4902.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
4903.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
4904.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
4905.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
4906#ifndef __APPLE__
4907.data
4908#else
4909.section	__DATA,__data
4910#endif /* __APPLE__ */
4911#ifndef __APPLE__
4912.align	16
4913#else
4914.p2align	4
4915#endif /* __APPLE__ */
4916L_avx1_rorx_sha256_shuf_00BA:
4917.quad	0xb0a090803020100, 0xffffffffffffffff
4918#ifndef __APPLE__
4919.data
4920#else
4921.section	__DATA,__data
4922#endif /* __APPLE__ */
4923#ifndef __APPLE__
4924.align	16
4925#else
4926.p2align	4
4927#endif /* __APPLE__ */
4928L_avx1_rorx_sha256_shuf_DC00:
4929.quad	0xffffffffffffffff, 0xb0a090803020100
4930#ifndef __APPLE__
4931.data
4932#else
4933.section	__DATA,__data
4934#endif /* __APPLE__ */
4935#ifndef __APPLE__
4936.align	16
4937#else
4938.p2align	4
4939#endif /* __APPLE__ */
4940L_avx1_rorx_sha256_flip_mask:
4941.quad	0x405060700010203, 0xc0d0e0f08090a0b
4942#ifndef __APPLE__
4943.text
4944.globl	Transform_Sha256_AVX1_RORX
4945.type	Transform_Sha256_AVX1_RORX,@function
4946.align	16
4947Transform_Sha256_AVX1_RORX:
4948#else
4949.section	__TEXT,__text
4950.globl	_Transform_Sha256_AVX1_RORX
4951.p2align	4
4952_Transform_Sha256_AVX1_RORX:
4953#endif /* __APPLE__ */
4954        pushq	%rbx
4955        pushq	%r12
4956        pushq	%r13
4957        pushq	%r14
4958        pushq	%r15
4959        subq	$0x40, %rsp
4960        vmovdqa	L_avx1_rorx_sha256_flip_mask(%rip), %xmm13
4961        vmovdqa	L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11
4962        vmovdqa	L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12
4963        leaq	32(%rdi), %rax
4964        # X0, X1, X2, X3 = W[0..15]
4965        vmovdqu	(%rax), %xmm0
4966        vmovdqu	16(%rax), %xmm1
4967        vpshufb	%xmm13, %xmm0, %xmm0
4968        vpshufb	%xmm13, %xmm1, %xmm1
4969        vmovdqu	32(%rax), %xmm2
4970        vmovdqu	48(%rax), %xmm3
4971        vpshufb	%xmm13, %xmm2, %xmm2
4972        vpshufb	%xmm13, %xmm3, %xmm3
4973        movl	(%rdi), %r8d
4974        movl	4(%rdi), %r9d
4975        movl	8(%rdi), %r10d
4976        movl	12(%rdi), %r11d
4977        movl	16(%rdi), %r12d
4978        movl	20(%rdi), %r13d
4979        movl	24(%rdi), %r14d
4980        movl	28(%rdi), %r15d
4981        # set_w_k_xfer_4: 0
4982        vpaddd	0+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
4983        vpaddd	16+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
4984        vmovdqu	%xmm4, (%rsp)
4985        vmovdqu	%xmm5, 16(%rsp)
4986        vpaddd	32+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
4987        vpaddd	48+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
4988        vmovdqu	%xmm6, 32(%rsp)
4989        vmovdqu	%xmm7, 48(%rsp)
4990        movl	%r9d, %ebx
4991        rorxl	$6, %r12d, %edx
4992        xorl	%r10d, %ebx
4993        # msg_sched: 0-3
4994        # rnd_0: 0 - 0
4995        movl	%r13d, %eax
4996        rorxl	$11, %r12d, %ecx
4997        addl	(%rsp), %r15d
4998        vpalignr	$4, %xmm2, %xmm3, %xmm4
4999        vpalignr	$4, %xmm0, %xmm1, %xmm5
5000        # rnd_0: 1 - 2
5001        xorl	%edx, %ecx
5002        xorl	%r14d, %eax
5003        rorxl	$25, %r12d, %edx
5004        andl	%r12d, %eax
5005        xorl	%ecx, %edx
5006        rorxl	$13, %r8d, %ecx
5007        vpsrld	$7, %xmm5, %xmm6
5008        vpslld	$25, %xmm5, %xmm7
5009        # rnd_0: 3 - 4
5010        addl	%edx, %r15d
5011        rorxl	$2, %r8d, %edx
5012        xorl	%r14d, %eax
5013        xorl	%edx, %ecx
5014        rorxl	$22, %r8d, %edx
5015        addl	%eax, %r15d
5016        vpsrld	$3, %xmm5, %xmm8
5017        vpor	%xmm6, %xmm7, %xmm7
5018        # rnd_0: 5 - 7
5019        xorl	%ecx, %edx
5020        movl	%r9d, %eax
5021        addl	%r15d, %r11d
5022        xorl	%r8d, %eax
5023        addl	%edx, %r15d
5024        andl	%eax, %ebx
5025        xorl	%r9d, %ebx
5026        rorxl	$6, %r11d, %edx
5027        addl	%ebx, %r15d
5028        # rnd_1: 0 - 0
5029        movl	%r12d, %ebx
5030        rorxl	$11, %r11d, %ecx
5031        addl	4(%rsp), %r14d
5032        vpsrld	$18, %xmm5, %xmm6
5033        # rnd_1: 1 - 1
5034        xorl	%edx, %ecx
5035        xorl	%r13d, %ebx
5036        rorxl	$25, %r11d, %edx
5037        vpslld	$14, %xmm5, %xmm5
5038        # rnd_1: 2 - 2
5039        andl	%r11d, %ebx
5040        xorl	%ecx, %edx
5041        rorxl	$13, %r15d, %ecx
5042        vpxor	%xmm5, %xmm7, %xmm7
5043        # rnd_1: 3 - 3
5044        addl	%edx, %r14d
5045        rorxl	$2, %r15d, %edx
5046        xorl	%r13d, %ebx
5047        vpxor	%xmm6, %xmm7, %xmm7
5048        # rnd_1: 4 - 4
5049        xorl	%edx, %ecx
5050        rorxl	$22, %r15d, %edx
5051        addl	%ebx, %r14d
5052        vpshufd	$0xfa, %xmm3, %xmm6
5053        # rnd_1: 5 - 5
5054        xorl	%ecx, %edx
5055        movl	%r8d, %ebx
5056        addl	%r14d, %r10d
5057        vpxor	%xmm8, %xmm7, %xmm5
5058        # rnd_1: 6 - 6
5059        xorl	%r15d, %ebx
5060        addl	%edx, %r14d
5061        andl	%ebx, %eax
5062        vpsrld	$10, %xmm6, %xmm8
5063        # rnd_1: 7 - 7
5064        xorl	%r8d, %eax
5065        rorxl	$6, %r10d, %edx
5066        addl	%eax, %r14d
5067        # rnd_0: 0 - 0
5068        movl	%r11d, %eax
5069        rorxl	$11, %r10d, %ecx
5070        addl	8(%rsp), %r13d
5071        vpsrlq	$19, %xmm6, %xmm7
5072        # rnd_0: 1 - 1
5073        xorl	%edx, %ecx
5074        xorl	%r12d, %eax
5075        rorxl	$25, %r10d, %edx
5076        vpsrlq	$0x11, %xmm6, %xmm6
5077        vpaddd	%xmm0, %xmm4, %xmm4
5078        # rnd_0: 2 - 2
5079        andl	%r10d, %eax
5080        xorl	%ecx, %edx
5081        rorxl	$13, %r14d, %ecx
5082        vpaddd	%xmm5, %xmm4, %xmm4
5083        # rnd_0: 3 - 3
5084        addl	%edx, %r13d
5085        rorxl	$2, %r14d, %edx
5086        xorl	%r12d, %eax
5087        vpxor	%xmm7, %xmm6, %xmm6
5088        # rnd_0: 4 - 4
5089        xorl	%edx, %ecx
5090        rorxl	$22, %r14d, %edx
5091        addl	%eax, %r13d
5092        vpxor	%xmm6, %xmm8, %xmm8
5093        # rnd_0: 5 - 5
5094        xorl	%ecx, %edx
5095        movl	%r15d, %eax
5096        addl	%r13d, %r9d
5097        vpshufb	%xmm11, %xmm8, %xmm8
5098        # rnd_0: 6 - 6
5099        xorl	%r14d, %eax
5100        addl	%edx, %r13d
5101        andl	%eax, %ebx
5102        vpaddd	%xmm8, %xmm4, %xmm4
5103        # rnd_0: 7 - 7
5104        xorl	%r15d, %ebx
5105        rorxl	$6, %r9d, %edx
5106        addl	%ebx, %r13d
5107        # rnd_1: 0 - 0
5108        movl	%r10d, %ebx
5109        rorxl	$11, %r9d, %ecx
5110        addl	12(%rsp), %r12d
5111        vpshufd	$0x50, %xmm4, %xmm6
5112        # rnd_1: 1 - 1
5113        xorl	%edx, %ecx
5114        xorl	%r11d, %ebx
5115        rorxl	$25, %r9d, %edx
5116        vpsrld	$10, %xmm6, %xmm9
5117        # rnd_1: 2 - 2
5118        andl	%r9d, %ebx
5119        xorl	%ecx, %edx
5120        rorxl	$13, %r13d, %ecx
5121        vpsrlq	$19, %xmm6, %xmm7
5122        # rnd_1: 3 - 3
5123        addl	%edx, %r12d
5124        rorxl	$2, %r13d, %edx
5125        xorl	%r11d, %ebx
5126        vpsrlq	$0x11, %xmm6, %xmm6
5127        # rnd_1: 4 - 4
5128        xorl	%edx, %ecx
5129        rorxl	$22, %r13d, %edx
5130        addl	%ebx, %r12d
5131        vpxor	%xmm7, %xmm6, %xmm6
5132        # rnd_1: 5 - 5
5133        xorl	%ecx, %edx
5134        movl	%r14d, %ebx
5135        addl	%r12d, %r8d
5136        vpxor	%xmm6, %xmm9, %xmm9
5137        # rnd_1: 6 - 6
5138        xorl	%r13d, %ebx
5139        addl	%edx, %r12d
5140        andl	%ebx, %eax
5141        vpshufb	%xmm12, %xmm9, %xmm9
5142        # rnd_1: 7 - 7
5143        xorl	%r14d, %eax
5144        rorxl	$6, %r8d, %edx
5145        addl	%eax, %r12d
5146        vpaddd	%xmm4, %xmm9, %xmm0
5147        # msg_sched done: 0-3
5148        # msg_sched: 4-7
5149        # rnd_0: 0 - 0
5150        movl	%r9d, %eax
5151        rorxl	$11, %r8d, %ecx
5152        addl	16(%rsp), %r11d
5153        vpalignr	$4, %xmm3, %xmm0, %xmm4
5154        vpalignr	$4, %xmm1, %xmm2, %xmm5
5155        # rnd_0: 1 - 2
5156        xorl	%edx, %ecx
5157        xorl	%r10d, %eax
5158        rorxl	$25, %r8d, %edx
5159        andl	%r8d, %eax
5160        xorl	%ecx, %edx
5161        rorxl	$13, %r12d, %ecx
5162        vpsrld	$7, %xmm5, %xmm6
5163        vpslld	$25, %xmm5, %xmm7
5164        # rnd_0: 3 - 4
5165        addl	%edx, %r11d
5166        rorxl	$2, %r12d, %edx
5167        xorl	%r10d, %eax
5168        xorl	%edx, %ecx
5169        rorxl	$22, %r12d, %edx
5170        addl	%eax, %r11d
5171        vpsrld	$3, %xmm5, %xmm8
5172        vpor	%xmm6, %xmm7, %xmm7
5173        # rnd_0: 5 - 7
5174        xorl	%ecx, %edx
5175        movl	%r13d, %eax
5176        addl	%r11d, %r15d
5177        xorl	%r12d, %eax
5178        addl	%edx, %r11d
5179        andl	%eax, %ebx
5180        xorl	%r13d, %ebx
5181        rorxl	$6, %r15d, %edx
5182        addl	%ebx, %r11d
5183        # rnd_1: 0 - 0
5184        movl	%r8d, %ebx
5185        rorxl	$11, %r15d, %ecx
5186        addl	20(%rsp), %r10d
5187        vpsrld	$18, %xmm5, %xmm6
5188        # rnd_1: 1 - 1
5189        xorl	%edx, %ecx
5190        xorl	%r9d, %ebx
5191        rorxl	$25, %r15d, %edx
5192        vpslld	$14, %xmm5, %xmm5
5193        # rnd_1: 2 - 2
5194        andl	%r15d, %ebx
5195        xorl	%ecx, %edx
5196        rorxl	$13, %r11d, %ecx
5197        vpxor	%xmm5, %xmm7, %xmm7
5198        # rnd_1: 3 - 3
5199        addl	%edx, %r10d
5200        rorxl	$2, %r11d, %edx
5201        xorl	%r9d, %ebx
5202        vpxor	%xmm6, %xmm7, %xmm7
5203        # rnd_1: 4 - 4
5204        xorl	%edx, %ecx
5205        rorxl	$22, %r11d, %edx
5206        addl	%ebx, %r10d
5207        vpshufd	$0xfa, %xmm0, %xmm6
5208        # rnd_1: 5 - 5
5209        xorl	%ecx, %edx
5210        movl	%r12d, %ebx
5211        addl	%r10d, %r14d
5212        vpxor	%xmm8, %xmm7, %xmm5
5213        # rnd_1: 6 - 6
5214        xorl	%r11d, %ebx
5215        addl	%edx, %r10d
5216        andl	%ebx, %eax
5217        vpsrld	$10, %xmm6, %xmm8
5218        # rnd_1: 7 - 7
5219        xorl	%r12d, %eax
5220        rorxl	$6, %r14d, %edx
5221        addl	%eax, %r10d
5222        # rnd_0: 0 - 0
5223        movl	%r15d, %eax
5224        rorxl	$11, %r14d, %ecx
5225        addl	24(%rsp), %r9d
5226        vpsrlq	$19, %xmm6, %xmm7
5227        # rnd_0: 1 - 1
5228        xorl	%edx, %ecx
5229        xorl	%r8d, %eax
5230        rorxl	$25, %r14d, %edx
5231        vpsrlq	$0x11, %xmm6, %xmm6
5232        vpaddd	%xmm1, %xmm4, %xmm4
5233        # rnd_0: 2 - 2
5234        andl	%r14d, %eax
5235        xorl	%ecx, %edx
5236        rorxl	$13, %r10d, %ecx
5237        vpaddd	%xmm5, %xmm4, %xmm4
5238        # rnd_0: 3 - 3
5239        addl	%edx, %r9d
5240        rorxl	$2, %r10d, %edx
5241        xorl	%r8d, %eax
5242        vpxor	%xmm7, %xmm6, %xmm6
5243        # rnd_0: 4 - 4
5244        xorl	%edx, %ecx
5245        rorxl	$22, %r10d, %edx
5246        addl	%eax, %r9d
5247        vpxor	%xmm6, %xmm8, %xmm8
5248        # rnd_0: 5 - 5
5249        xorl	%ecx, %edx
5250        movl	%r11d, %eax
5251        addl	%r9d, %r13d
5252        vpshufb	%xmm11, %xmm8, %xmm8
5253        # rnd_0: 6 - 6
5254        xorl	%r10d, %eax
5255        addl	%edx, %r9d
5256        andl	%eax, %ebx
5257        vpaddd	%xmm8, %xmm4, %xmm4
5258        # rnd_0: 7 - 7
5259        xorl	%r11d, %ebx
5260        rorxl	$6, %r13d, %edx
5261        addl	%ebx, %r9d
5262        # rnd_1: 0 - 0
5263        movl	%r14d, %ebx
5264        rorxl	$11, %r13d, %ecx
5265        addl	28(%rsp), %r8d
5266        vpshufd	$0x50, %xmm4, %xmm6
5267        # rnd_1: 1 - 1
5268        xorl	%edx, %ecx
5269        xorl	%r15d, %ebx
5270        rorxl	$25, %r13d, %edx
5271        vpsrld	$10, %xmm6, %xmm9
5272        # rnd_1: 2 - 2
5273        andl	%r13d, %ebx
5274        xorl	%ecx, %edx
5275        rorxl	$13, %r9d, %ecx
5276        vpsrlq	$19, %xmm6, %xmm7
5277        # rnd_1: 3 - 3
5278        addl	%edx, %r8d
5279        rorxl	$2, %r9d, %edx
5280        xorl	%r15d, %ebx
5281        vpsrlq	$0x11, %xmm6, %xmm6
5282        # rnd_1: 4 - 4
5283        xorl	%edx, %ecx
5284        rorxl	$22, %r9d, %edx
5285        addl	%ebx, %r8d
5286        vpxor	%xmm7, %xmm6, %xmm6
5287        # rnd_1: 5 - 5
5288        xorl	%ecx, %edx
5289        movl	%r10d, %ebx
5290        addl	%r8d, %r12d
5291        vpxor	%xmm6, %xmm9, %xmm9
5292        # rnd_1: 6 - 6
5293        xorl	%r9d, %ebx
5294        addl	%edx, %r8d
5295        andl	%ebx, %eax
5296        vpshufb	%xmm12, %xmm9, %xmm9
5297        # rnd_1: 7 - 7
5298        xorl	%r10d, %eax
5299        rorxl	$6, %r12d, %edx
5300        addl	%eax, %r8d
5301        vpaddd	%xmm4, %xmm9, %xmm1
5302        # msg_sched done: 4-7
5303        # msg_sched: 8-11
5304        # rnd_0: 0 - 0
5305        movl	%r13d, %eax
5306        rorxl	$11, %r12d, %ecx
5307        addl	32(%rsp), %r15d
5308        vpalignr	$4, %xmm0, %xmm1, %xmm4
5309        vpalignr	$4, %xmm2, %xmm3, %xmm5
5310        # rnd_0: 1 - 2
5311        xorl	%edx, %ecx
5312        xorl	%r14d, %eax
5313        rorxl	$25, %r12d, %edx
5314        andl	%r12d, %eax
5315        xorl	%ecx, %edx
5316        rorxl	$13, %r8d, %ecx
5317        vpsrld	$7, %xmm5, %xmm6
5318        vpslld	$25, %xmm5, %xmm7
5319        # rnd_0: 3 - 4
5320        addl	%edx, %r15d
5321        rorxl	$2, %r8d, %edx
5322        xorl	%r14d, %eax
5323        xorl	%edx, %ecx
5324        rorxl	$22, %r8d, %edx
5325        addl	%eax, %r15d
5326        vpsrld	$3, %xmm5, %xmm8
5327        vpor	%xmm6, %xmm7, %xmm7
5328        # rnd_0: 5 - 7
5329        xorl	%ecx, %edx
5330        movl	%r9d, %eax
5331        addl	%r15d, %r11d
5332        xorl	%r8d, %eax
5333        addl	%edx, %r15d
5334        andl	%eax, %ebx
5335        xorl	%r9d, %ebx
5336        rorxl	$6, %r11d, %edx
5337        addl	%ebx, %r15d
5338        # rnd_1: 0 - 0
5339        movl	%r12d, %ebx
5340        rorxl	$11, %r11d, %ecx
5341        addl	36(%rsp), %r14d
5342        vpsrld	$18, %xmm5, %xmm6
5343        # rnd_1: 1 - 1
5344        xorl	%edx, %ecx
5345        xorl	%r13d, %ebx
5346        rorxl	$25, %r11d, %edx
5347        vpslld	$14, %xmm5, %xmm5
5348        # rnd_1: 2 - 2
5349        andl	%r11d, %ebx
5350        xorl	%ecx, %edx
5351        rorxl	$13, %r15d, %ecx
5352        vpxor	%xmm5, %xmm7, %xmm7
5353        # rnd_1: 3 - 3
5354        addl	%edx, %r14d
5355        rorxl	$2, %r15d, %edx
5356        xorl	%r13d, %ebx
5357        vpxor	%xmm6, %xmm7, %xmm7
5358        # rnd_1: 4 - 4
5359        xorl	%edx, %ecx
5360        rorxl	$22, %r15d, %edx
5361        addl	%ebx, %r14d
5362        vpshufd	$0xfa, %xmm1, %xmm6
5363        # rnd_1: 5 - 5
5364        xorl	%ecx, %edx
5365        movl	%r8d, %ebx
5366        addl	%r14d, %r10d
5367        vpxor	%xmm8, %xmm7, %xmm5
5368        # rnd_1: 6 - 6
5369        xorl	%r15d, %ebx
5370        addl	%edx, %r14d
5371        andl	%ebx, %eax
5372        vpsrld	$10, %xmm6, %xmm8
5373        # rnd_1: 7 - 7
5374        xorl	%r8d, %eax
5375        rorxl	$6, %r10d, %edx
5376        addl	%eax, %r14d
5377        # rnd_0: 0 - 0
5378        movl	%r11d, %eax
5379        rorxl	$11, %r10d, %ecx
5380        addl	40(%rsp), %r13d
5381        vpsrlq	$19, %xmm6, %xmm7
5382        # rnd_0: 1 - 1
5383        xorl	%edx, %ecx
5384        xorl	%r12d, %eax
5385        rorxl	$25, %r10d, %edx
5386        vpsrlq	$0x11, %xmm6, %xmm6
5387        vpaddd	%xmm2, %xmm4, %xmm4
5388        # rnd_0: 2 - 2
5389        andl	%r10d, %eax
5390        xorl	%ecx, %edx
5391        rorxl	$13, %r14d, %ecx
5392        vpaddd	%xmm5, %xmm4, %xmm4
5393        # rnd_0: 3 - 3
5394        addl	%edx, %r13d
5395        rorxl	$2, %r14d, %edx
5396        xorl	%r12d, %eax
5397        vpxor	%xmm7, %xmm6, %xmm6
5398        # rnd_0: 4 - 4
5399        xorl	%edx, %ecx
5400        rorxl	$22, %r14d, %edx
5401        addl	%eax, %r13d
5402        vpxor	%xmm6, %xmm8, %xmm8
5403        # rnd_0: 5 - 5
5404        xorl	%ecx, %edx
5405        movl	%r15d, %eax
5406        addl	%r13d, %r9d
5407        vpshufb	%xmm11, %xmm8, %xmm8
5408        # rnd_0: 6 - 6
5409        xorl	%r14d, %eax
5410        addl	%edx, %r13d
5411        andl	%eax, %ebx
5412        vpaddd	%xmm8, %xmm4, %xmm4
5413        # rnd_0: 7 - 7
5414        xorl	%r15d, %ebx
5415        rorxl	$6, %r9d, %edx
5416        addl	%ebx, %r13d
5417        # rnd_1: 0 - 0
5418        movl	%r10d, %ebx
5419        rorxl	$11, %r9d, %ecx
5420        addl	44(%rsp), %r12d
5421        vpshufd	$0x50, %xmm4, %xmm6
5422        # rnd_1: 1 - 1
5423        xorl	%edx, %ecx
5424        xorl	%r11d, %ebx
5425        rorxl	$25, %r9d, %edx
5426        vpsrld	$10, %xmm6, %xmm9
5427        # rnd_1: 2 - 2
5428        andl	%r9d, %ebx
5429        xorl	%ecx, %edx
5430        rorxl	$13, %r13d, %ecx
5431        vpsrlq	$19, %xmm6, %xmm7
5432        # rnd_1: 3 - 3
5433        addl	%edx, %r12d
5434        rorxl	$2, %r13d, %edx
5435        xorl	%r11d, %ebx
5436        vpsrlq	$0x11, %xmm6, %xmm6
5437        # rnd_1: 4 - 4
5438        xorl	%edx, %ecx
5439        rorxl	$22, %r13d, %edx
5440        addl	%ebx, %r12d
5441        vpxor	%xmm7, %xmm6, %xmm6
5442        # rnd_1: 5 - 5
5443        xorl	%ecx, %edx
5444        movl	%r14d, %ebx
5445        addl	%r12d, %r8d
5446        vpxor	%xmm6, %xmm9, %xmm9
5447        # rnd_1: 6 - 6
5448        xorl	%r13d, %ebx
5449        addl	%edx, %r12d
5450        andl	%ebx, %eax
5451        vpshufb	%xmm12, %xmm9, %xmm9
5452        # rnd_1: 7 - 7
5453        xorl	%r14d, %eax
5454        rorxl	$6, %r8d, %edx
5455        addl	%eax, %r12d
5456        vpaddd	%xmm4, %xmm9, %xmm2
5457        # msg_sched done: 8-11
5458        # msg_sched: 12-15
5459        # rnd_0: 0 - 0
5460        movl	%r9d, %eax
5461        rorxl	$11, %r8d, %ecx
5462        addl	48(%rsp), %r11d
5463        vpalignr	$4, %xmm1, %xmm2, %xmm4
5464        vpalignr	$4, %xmm3, %xmm0, %xmm5
5465        # rnd_0: 1 - 2
5466        xorl	%edx, %ecx
5467        xorl	%r10d, %eax
5468        rorxl	$25, %r8d, %edx
5469        andl	%r8d, %eax
5470        xorl	%ecx, %edx
5471        rorxl	$13, %r12d, %ecx
5472        vpsrld	$7, %xmm5, %xmm6
5473        vpslld	$25, %xmm5, %xmm7
5474        # rnd_0: 3 - 4
5475        addl	%edx, %r11d
5476        rorxl	$2, %r12d, %edx
5477        xorl	%r10d, %eax
5478        xorl	%edx, %ecx
5479        rorxl	$22, %r12d, %edx
5480        addl	%eax, %r11d
5481        vpsrld	$3, %xmm5, %xmm8
5482        vpor	%xmm6, %xmm7, %xmm7
5483        # rnd_0: 5 - 7
5484        xorl	%ecx, %edx
5485        movl	%r13d, %eax
5486        addl	%r11d, %r15d
5487        xorl	%r12d, %eax
5488        addl	%edx, %r11d
5489        andl	%eax, %ebx
5490        xorl	%r13d, %ebx
5491        rorxl	$6, %r15d, %edx
5492        addl	%ebx, %r11d
5493        # rnd_1: 0 - 0
5494        movl	%r8d, %ebx
5495        rorxl	$11, %r15d, %ecx
5496        addl	52(%rsp), %r10d
5497        vpsrld	$18, %xmm5, %xmm6
5498        # rnd_1: 1 - 1
5499        xorl	%edx, %ecx
5500        xorl	%r9d, %ebx
5501        rorxl	$25, %r15d, %edx
5502        vpslld	$14, %xmm5, %xmm5
5503        # rnd_1: 2 - 2
5504        andl	%r15d, %ebx
5505        xorl	%ecx, %edx
5506        rorxl	$13, %r11d, %ecx
5507        vpxor	%xmm5, %xmm7, %xmm7
5508        # rnd_1: 3 - 3
5509        addl	%edx, %r10d
5510        rorxl	$2, %r11d, %edx
5511        xorl	%r9d, %ebx
5512        vpxor	%xmm6, %xmm7, %xmm7
5513        # rnd_1: 4 - 4
5514        xorl	%edx, %ecx
5515        rorxl	$22, %r11d, %edx
5516        addl	%ebx, %r10d
5517        vpshufd	$0xfa, %xmm2, %xmm6
5518        # rnd_1: 5 - 5
5519        xorl	%ecx, %edx
5520        movl	%r12d, %ebx
5521        addl	%r10d, %r14d
5522        vpxor	%xmm8, %xmm7, %xmm5
5523        # rnd_1: 6 - 6
5524        xorl	%r11d, %ebx
5525        addl	%edx, %r10d
5526        andl	%ebx, %eax
5527        vpsrld	$10, %xmm6, %xmm8
5528        # rnd_1: 7 - 7
5529        xorl	%r12d, %eax
5530        rorxl	$6, %r14d, %edx
5531        addl	%eax, %r10d
5532        # rnd_0: 0 - 0
5533        movl	%r15d, %eax
5534        rorxl	$11, %r14d, %ecx
5535        addl	56(%rsp), %r9d
5536        vpsrlq	$19, %xmm6, %xmm7
5537        # rnd_0: 1 - 1
5538        xorl	%edx, %ecx
5539        xorl	%r8d, %eax
5540        rorxl	$25, %r14d, %edx
5541        vpsrlq	$0x11, %xmm6, %xmm6
5542        vpaddd	%xmm3, %xmm4, %xmm4
5543        # rnd_0: 2 - 2
5544        andl	%r14d, %eax
5545        xorl	%ecx, %edx
5546        rorxl	$13, %r10d, %ecx
5547        vpaddd	%xmm5, %xmm4, %xmm4
5548        # rnd_0: 3 - 3
5549        addl	%edx, %r9d
5550        rorxl	$2, %r10d, %edx
5551        xorl	%r8d, %eax
5552        vpxor	%xmm7, %xmm6, %xmm6
5553        # rnd_0: 4 - 4
5554        xorl	%edx, %ecx
5555        rorxl	$22, %r10d, %edx
5556        addl	%eax, %r9d
5557        vpxor	%xmm6, %xmm8, %xmm8
5558        # rnd_0: 5 - 5
5559        xorl	%ecx, %edx
5560        movl	%r11d, %eax
5561        addl	%r9d, %r13d
5562        vpshufb	%xmm11, %xmm8, %xmm8
5563        # rnd_0: 6 - 6
5564        xorl	%r10d, %eax
5565        addl	%edx, %r9d
5566        andl	%eax, %ebx
5567        vpaddd	%xmm8, %xmm4, %xmm4
5568        # rnd_0: 7 - 7
5569        xorl	%r11d, %ebx
5570        rorxl	$6, %r13d, %edx
5571        addl	%ebx, %r9d
5572        # rnd_1: 0 - 0
5573        movl	%r14d, %ebx
5574        rorxl	$11, %r13d, %ecx
5575        addl	60(%rsp), %r8d
5576        vpshufd	$0x50, %xmm4, %xmm6
5577        # rnd_1: 1 - 1
5578        xorl	%edx, %ecx
5579        xorl	%r15d, %ebx
5580        rorxl	$25, %r13d, %edx
5581        vpsrld	$10, %xmm6, %xmm9
5582        # rnd_1: 2 - 2
5583        andl	%r13d, %ebx
5584        xorl	%ecx, %edx
5585        rorxl	$13, %r9d, %ecx
5586        vpsrlq	$19, %xmm6, %xmm7
5587        # rnd_1: 3 - 3
5588        addl	%edx, %r8d
5589        rorxl	$2, %r9d, %edx
5590        xorl	%r15d, %ebx
5591        vpsrlq	$0x11, %xmm6, %xmm6
5592        # rnd_1: 4 - 4
5593        xorl	%edx, %ecx
5594        rorxl	$22, %r9d, %edx
5595        addl	%ebx, %r8d
5596        vpxor	%xmm7, %xmm6, %xmm6
5597        # rnd_1: 5 - 5
5598        xorl	%ecx, %edx
5599        movl	%r10d, %ebx
5600        addl	%r8d, %r12d
5601        vpxor	%xmm6, %xmm9, %xmm9
5602        # rnd_1: 6 - 6
5603        xorl	%r9d, %ebx
5604        addl	%edx, %r8d
5605        andl	%ebx, %eax
5606        vpshufb	%xmm12, %xmm9, %xmm9
5607        # rnd_1: 7 - 7
5608        xorl	%r10d, %eax
5609        rorxl	$6, %r12d, %edx
5610        addl	%eax, %r8d
5611        vpaddd	%xmm4, %xmm9, %xmm3
5612        # msg_sched done: 12-15
5613        # set_w_k_xfer_4: 4
5614        vpaddd	64+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
5615        vpaddd	80+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
5616        vmovdqu	%xmm4, (%rsp)
5617        vmovdqu	%xmm5, 16(%rsp)
5618        vpaddd	96+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
5619        vpaddd	112+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
5620        vmovdqu	%xmm6, 32(%rsp)
5621        vmovdqu	%xmm7, 48(%rsp)
5622        # msg_sched: 0-3
5623        # rnd_0: 0 - 0
5624        movl	%r13d, %eax
5625        rorxl	$11, %r12d, %ecx
5626        addl	(%rsp), %r15d
5627        vpalignr	$4, %xmm2, %xmm3, %xmm4
5628        vpalignr	$4, %xmm0, %xmm1, %xmm5
5629        # rnd_0: 1 - 2
5630        xorl	%edx, %ecx
5631        xorl	%r14d, %eax
5632        rorxl	$25, %r12d, %edx
5633        andl	%r12d, %eax
5634        xorl	%ecx, %edx
5635        rorxl	$13, %r8d, %ecx
5636        vpsrld	$7, %xmm5, %xmm6
5637        vpslld	$25, %xmm5, %xmm7
5638        # rnd_0: 3 - 4
5639        addl	%edx, %r15d
5640        rorxl	$2, %r8d, %edx
5641        xorl	%r14d, %eax
5642        xorl	%edx, %ecx
5643        rorxl	$22, %r8d, %edx
5644        addl	%eax, %r15d
5645        vpsrld	$3, %xmm5, %xmm8
5646        vpor	%xmm6, %xmm7, %xmm7
5647        # rnd_0: 5 - 7
5648        xorl	%ecx, %edx
5649        movl	%r9d, %eax
5650        addl	%r15d, %r11d
5651        xorl	%r8d, %eax
5652        addl	%edx, %r15d
5653        andl	%eax, %ebx
5654        xorl	%r9d, %ebx
5655        rorxl	$6, %r11d, %edx
5656        addl	%ebx, %r15d
5657        # rnd_1: 0 - 0
5658        movl	%r12d, %ebx
5659        rorxl	$11, %r11d, %ecx
5660        addl	4(%rsp), %r14d
5661        vpsrld	$18, %xmm5, %xmm6
5662        # rnd_1: 1 - 1
5663        xorl	%edx, %ecx
5664        xorl	%r13d, %ebx
5665        rorxl	$25, %r11d, %edx
5666        vpslld	$14, %xmm5, %xmm5
5667        # rnd_1: 2 - 2
5668        andl	%r11d, %ebx
5669        xorl	%ecx, %edx
5670        rorxl	$13, %r15d, %ecx
5671        vpxor	%xmm5, %xmm7, %xmm7
5672        # rnd_1: 3 - 3
5673        addl	%edx, %r14d
5674        rorxl	$2, %r15d, %edx
5675        xorl	%r13d, %ebx
5676        vpxor	%xmm6, %xmm7, %xmm7
5677        # rnd_1: 4 - 4
5678        xorl	%edx, %ecx
5679        rorxl	$22, %r15d, %edx
5680        addl	%ebx, %r14d
5681        vpshufd	$0xfa, %xmm3, %xmm6
5682        # rnd_1: 5 - 5
5683        xorl	%ecx, %edx
5684        movl	%r8d, %ebx
5685        addl	%r14d, %r10d
5686        vpxor	%xmm8, %xmm7, %xmm5
5687        # rnd_1: 6 - 6
5688        xorl	%r15d, %ebx
5689        addl	%edx, %r14d
5690        andl	%ebx, %eax
5691        vpsrld	$10, %xmm6, %xmm8
5692        # rnd_1: 7 - 7
5693        xorl	%r8d, %eax
5694        rorxl	$6, %r10d, %edx
5695        addl	%eax, %r14d
5696        # rnd_0: 0 - 0
5697        movl	%r11d, %eax
5698        rorxl	$11, %r10d, %ecx
5699        addl	8(%rsp), %r13d
5700        vpsrlq	$19, %xmm6, %xmm7
5701        # rnd_0: 1 - 1
5702        xorl	%edx, %ecx
5703        xorl	%r12d, %eax
5704        rorxl	$25, %r10d, %edx
5705        vpsrlq	$0x11, %xmm6, %xmm6
5706        vpaddd	%xmm0, %xmm4, %xmm4
5707        # rnd_0: 2 - 2
5708        andl	%r10d, %eax
5709        xorl	%ecx, %edx
5710        rorxl	$13, %r14d, %ecx
5711        vpaddd	%xmm5, %xmm4, %xmm4
5712        # rnd_0: 3 - 3
5713        addl	%edx, %r13d
5714        rorxl	$2, %r14d, %edx
5715        xorl	%r12d, %eax
5716        vpxor	%xmm7, %xmm6, %xmm6
5717        # rnd_0: 4 - 4
5718        xorl	%edx, %ecx
5719        rorxl	$22, %r14d, %edx
5720        addl	%eax, %r13d
5721        vpxor	%xmm6, %xmm8, %xmm8
5722        # rnd_0: 5 - 5
5723        xorl	%ecx, %edx
5724        movl	%r15d, %eax
5725        addl	%r13d, %r9d
5726        vpshufb	%xmm11, %xmm8, %xmm8
5727        # rnd_0: 6 - 6
5728        xorl	%r14d, %eax
5729        addl	%edx, %r13d
5730        andl	%eax, %ebx
5731        vpaddd	%xmm8, %xmm4, %xmm4
5732        # rnd_0: 7 - 7
5733        xorl	%r15d, %ebx
5734        rorxl	$6, %r9d, %edx
5735        addl	%ebx, %r13d
5736        # rnd_1: 0 - 0
5737        movl	%r10d, %ebx
5738        rorxl	$11, %r9d, %ecx
5739        addl	12(%rsp), %r12d
5740        vpshufd	$0x50, %xmm4, %xmm6
5741        # rnd_1: 1 - 1
5742        xorl	%edx, %ecx
5743        xorl	%r11d, %ebx
5744        rorxl	$25, %r9d, %edx
5745        vpsrld	$10, %xmm6, %xmm9
5746        # rnd_1: 2 - 2
5747        andl	%r9d, %ebx
5748        xorl	%ecx, %edx
5749        rorxl	$13, %r13d, %ecx
5750        vpsrlq	$19, %xmm6, %xmm7
5751        # rnd_1: 3 - 3
5752        addl	%edx, %r12d
5753        rorxl	$2, %r13d, %edx
5754        xorl	%r11d, %ebx
5755        vpsrlq	$0x11, %xmm6, %xmm6
5756        # rnd_1: 4 - 4
5757        xorl	%edx, %ecx
5758        rorxl	$22, %r13d, %edx
5759        addl	%ebx, %r12d
5760        vpxor	%xmm7, %xmm6, %xmm6
5761        # rnd_1: 5 - 5
5762        xorl	%ecx, %edx
5763        movl	%r14d, %ebx
5764        addl	%r12d, %r8d
5765        vpxor	%xmm6, %xmm9, %xmm9
5766        # rnd_1: 6 - 6
5767        xorl	%r13d, %ebx
5768        addl	%edx, %r12d
5769        andl	%ebx, %eax
5770        vpshufb	%xmm12, %xmm9, %xmm9
5771        # rnd_1: 7 - 7
5772        xorl	%r14d, %eax
5773        rorxl	$6, %r8d, %edx
5774        addl	%eax, %r12d
5775        vpaddd	%xmm4, %xmm9, %xmm0
5776        # msg_sched done: 0-3
5777        # msg_sched: 4-7
5778        # rnd_0: 0 - 0
5779        movl	%r9d, %eax
5780        rorxl	$11, %r8d, %ecx
5781        addl	16(%rsp), %r11d
5782        vpalignr	$4, %xmm3, %xmm0, %xmm4
5783        vpalignr	$4, %xmm1, %xmm2, %xmm5
5784        # rnd_0: 1 - 2
5785        xorl	%edx, %ecx
5786        xorl	%r10d, %eax
5787        rorxl	$25, %r8d, %edx
5788        andl	%r8d, %eax
5789        xorl	%ecx, %edx
5790        rorxl	$13, %r12d, %ecx
5791        vpsrld	$7, %xmm5, %xmm6
5792        vpslld	$25, %xmm5, %xmm7
5793        # rnd_0: 3 - 4
5794        addl	%edx, %r11d
5795        rorxl	$2, %r12d, %edx
5796        xorl	%r10d, %eax
5797        xorl	%edx, %ecx
5798        rorxl	$22, %r12d, %edx
5799        addl	%eax, %r11d
5800        vpsrld	$3, %xmm5, %xmm8
5801        vpor	%xmm6, %xmm7, %xmm7
5802        # rnd_0: 5 - 7
5803        xorl	%ecx, %edx
5804        movl	%r13d, %eax
5805        addl	%r11d, %r15d
5806        xorl	%r12d, %eax
5807        addl	%edx, %r11d
5808        andl	%eax, %ebx
5809        xorl	%r13d, %ebx
5810        rorxl	$6, %r15d, %edx
5811        addl	%ebx, %r11d
5812        # rnd_1: 0 - 0
5813        movl	%r8d, %ebx
5814        rorxl	$11, %r15d, %ecx
5815        addl	20(%rsp), %r10d
5816        vpsrld	$18, %xmm5, %xmm6
5817        # rnd_1: 1 - 1
5818        xorl	%edx, %ecx
5819        xorl	%r9d, %ebx
5820        rorxl	$25, %r15d, %edx
5821        vpslld	$14, %xmm5, %xmm5
5822        # rnd_1: 2 - 2
5823        andl	%r15d, %ebx
5824        xorl	%ecx, %edx
5825        rorxl	$13, %r11d, %ecx
5826        vpxor	%xmm5, %xmm7, %xmm7
5827        # rnd_1: 3 - 3
5828        addl	%edx, %r10d
5829        rorxl	$2, %r11d, %edx
5830        xorl	%r9d, %ebx
5831        vpxor	%xmm6, %xmm7, %xmm7
5832        # rnd_1: 4 - 4
5833        xorl	%edx, %ecx
5834        rorxl	$22, %r11d, %edx
5835        addl	%ebx, %r10d
5836        vpshufd	$0xfa, %xmm0, %xmm6
5837        # rnd_1: 5 - 5
5838        xorl	%ecx, %edx
5839        movl	%r12d, %ebx
5840        addl	%r10d, %r14d
5841        vpxor	%xmm8, %xmm7, %xmm5
5842        # rnd_1: 6 - 6
5843        xorl	%r11d, %ebx
5844        addl	%edx, %r10d
5845        andl	%ebx, %eax
5846        vpsrld	$10, %xmm6, %xmm8
5847        # rnd_1: 7 - 7
5848        xorl	%r12d, %eax
5849        rorxl	$6, %r14d, %edx
5850        addl	%eax, %r10d
5851        # rnd_0: 0 - 0
5852        movl	%r15d, %eax
5853        rorxl	$11, %r14d, %ecx
5854        addl	24(%rsp), %r9d
5855        vpsrlq	$19, %xmm6, %xmm7
5856        # rnd_0: 1 - 1
5857        xorl	%edx, %ecx
5858        xorl	%r8d, %eax
5859        rorxl	$25, %r14d, %edx
5860        vpsrlq	$0x11, %xmm6, %xmm6
5861        vpaddd	%xmm1, %xmm4, %xmm4
5862        # rnd_0: 2 - 2
5863        andl	%r14d, %eax
5864        xorl	%ecx, %edx
5865        rorxl	$13, %r10d, %ecx
5866        vpaddd	%xmm5, %xmm4, %xmm4
5867        # rnd_0: 3 - 3
5868        addl	%edx, %r9d
5869        rorxl	$2, %r10d, %edx
5870        xorl	%r8d, %eax
5871        vpxor	%xmm7, %xmm6, %xmm6
5872        # rnd_0: 4 - 4
5873        xorl	%edx, %ecx
5874        rorxl	$22, %r10d, %edx
5875        addl	%eax, %r9d
5876        vpxor	%xmm6, %xmm8, %xmm8
5877        # rnd_0: 5 - 5
5878        xorl	%ecx, %edx
5879        movl	%r11d, %eax
5880        addl	%r9d, %r13d
5881        vpshufb	%xmm11, %xmm8, %xmm8
5882        # rnd_0: 6 - 6
5883        xorl	%r10d, %eax
5884        addl	%edx, %r9d
5885        andl	%eax, %ebx
5886        vpaddd	%xmm8, %xmm4, %xmm4
5887        # rnd_0: 7 - 7
5888        xorl	%r11d, %ebx
5889        rorxl	$6, %r13d, %edx
5890        addl	%ebx, %r9d
5891        # rnd_1: 0 - 0
5892        movl	%r14d, %ebx
5893        rorxl	$11, %r13d, %ecx
5894        addl	28(%rsp), %r8d
5895        vpshufd	$0x50, %xmm4, %xmm6
5896        # rnd_1: 1 - 1
5897        xorl	%edx, %ecx
5898        xorl	%r15d, %ebx
5899        rorxl	$25, %r13d, %edx
5900        vpsrld	$10, %xmm6, %xmm9
5901        # rnd_1: 2 - 2
5902        andl	%r13d, %ebx
5903        xorl	%ecx, %edx
5904        rorxl	$13, %r9d, %ecx
5905        vpsrlq	$19, %xmm6, %xmm7
5906        # rnd_1: 3 - 3
5907        addl	%edx, %r8d
5908        rorxl	$2, %r9d, %edx
5909        xorl	%r15d, %ebx
5910        vpsrlq	$0x11, %xmm6, %xmm6
5911        # rnd_1: 4 - 4
5912        xorl	%edx, %ecx
5913        rorxl	$22, %r9d, %edx
5914        addl	%ebx, %r8d
5915        vpxor	%xmm7, %xmm6, %xmm6
5916        # rnd_1: 5 - 5
5917        xorl	%ecx, %edx
5918        movl	%r10d, %ebx
5919        addl	%r8d, %r12d
5920        vpxor	%xmm6, %xmm9, %xmm9
5921        # rnd_1: 6 - 6
5922        xorl	%r9d, %ebx
5923        addl	%edx, %r8d
5924        andl	%ebx, %eax
5925        vpshufb	%xmm12, %xmm9, %xmm9
5926        # rnd_1: 7 - 7
5927        xorl	%r10d, %eax
5928        rorxl	$6, %r12d, %edx
5929        addl	%eax, %r8d
5930        vpaddd	%xmm4, %xmm9, %xmm1
5931        # msg_sched done: 4-7
5932        # msg_sched: 8-11
5933        # rnd_0: 0 - 0
5934        movl	%r13d, %eax
5935        rorxl	$11, %r12d, %ecx
5936        addl	32(%rsp), %r15d
5937        vpalignr	$4, %xmm0, %xmm1, %xmm4
5938        vpalignr	$4, %xmm2, %xmm3, %xmm5
5939        # rnd_0: 1 - 2
5940        xorl	%edx, %ecx
5941        xorl	%r14d, %eax
5942        rorxl	$25, %r12d, %edx
5943        andl	%r12d, %eax
5944        xorl	%ecx, %edx
5945        rorxl	$13, %r8d, %ecx
5946        vpsrld	$7, %xmm5, %xmm6
5947        vpslld	$25, %xmm5, %xmm7
5948        # rnd_0: 3 - 4
5949        addl	%edx, %r15d
5950        rorxl	$2, %r8d, %edx
5951        xorl	%r14d, %eax
5952        xorl	%edx, %ecx
5953        rorxl	$22, %r8d, %edx
5954        addl	%eax, %r15d
5955        vpsrld	$3, %xmm5, %xmm8
5956        vpor	%xmm6, %xmm7, %xmm7
5957        # rnd_0: 5 - 7
5958        xorl	%ecx, %edx
5959        movl	%r9d, %eax
5960        addl	%r15d, %r11d
5961        xorl	%r8d, %eax
5962        addl	%edx, %r15d
5963        andl	%eax, %ebx
5964        xorl	%r9d, %ebx
5965        rorxl	$6, %r11d, %edx
5966        addl	%ebx, %r15d
5967        # rnd_1: 0 - 0
5968        movl	%r12d, %ebx
5969        rorxl	$11, %r11d, %ecx
5970        addl	36(%rsp), %r14d
5971        vpsrld	$18, %xmm5, %xmm6
5972        # rnd_1: 1 - 1
5973        xorl	%edx, %ecx
5974        xorl	%r13d, %ebx
5975        rorxl	$25, %r11d, %edx
5976        vpslld	$14, %xmm5, %xmm5
5977        # rnd_1: 2 - 2
5978        andl	%r11d, %ebx
5979        xorl	%ecx, %edx
5980        rorxl	$13, %r15d, %ecx
5981        vpxor	%xmm5, %xmm7, %xmm7
5982        # rnd_1: 3 - 3
5983        addl	%edx, %r14d
5984        rorxl	$2, %r15d, %edx
5985        xorl	%r13d, %ebx
5986        vpxor	%xmm6, %xmm7, %xmm7
5987        # rnd_1: 4 - 4
5988        xorl	%edx, %ecx
5989        rorxl	$22, %r15d, %edx
5990        addl	%ebx, %r14d
5991        vpshufd	$0xfa, %xmm1, %xmm6
5992        # rnd_1: 5 - 5
5993        xorl	%ecx, %edx
5994        movl	%r8d, %ebx
5995        addl	%r14d, %r10d
5996        vpxor	%xmm8, %xmm7, %xmm5
5997        # rnd_1: 6 - 6
5998        xorl	%r15d, %ebx
5999        addl	%edx, %r14d
6000        andl	%ebx, %eax
6001        vpsrld	$10, %xmm6, %xmm8
6002        # rnd_1: 7 - 7
6003        xorl	%r8d, %eax
6004        rorxl	$6, %r10d, %edx
6005        addl	%eax, %r14d
6006        # rnd_0: 0 - 0
6007        movl	%r11d, %eax
6008        rorxl	$11, %r10d, %ecx
6009        addl	40(%rsp), %r13d
6010        vpsrlq	$19, %xmm6, %xmm7
6011        # rnd_0: 1 - 1
6012        xorl	%edx, %ecx
6013        xorl	%r12d, %eax
6014        rorxl	$25, %r10d, %edx
6015        vpsrlq	$0x11, %xmm6, %xmm6
6016        vpaddd	%xmm2, %xmm4, %xmm4
6017        # rnd_0: 2 - 2
6018        andl	%r10d, %eax
6019        xorl	%ecx, %edx
6020        rorxl	$13, %r14d, %ecx
6021        vpaddd	%xmm5, %xmm4, %xmm4
6022        # rnd_0: 3 - 3
6023        addl	%edx, %r13d
6024        rorxl	$2, %r14d, %edx
6025        xorl	%r12d, %eax
6026        vpxor	%xmm7, %xmm6, %xmm6
6027        # rnd_0: 4 - 4
6028        xorl	%edx, %ecx
6029        rorxl	$22, %r14d, %edx
6030        addl	%eax, %r13d
6031        vpxor	%xmm6, %xmm8, %xmm8
6032        # rnd_0: 5 - 5
6033        xorl	%ecx, %edx
6034        movl	%r15d, %eax
6035        addl	%r13d, %r9d
6036        vpshufb	%xmm11, %xmm8, %xmm8
6037        # rnd_0: 6 - 6
6038        xorl	%r14d, %eax
6039        addl	%edx, %r13d
6040        andl	%eax, %ebx
6041        vpaddd	%xmm8, %xmm4, %xmm4
6042        # rnd_0: 7 - 7
6043        xorl	%r15d, %ebx
6044        rorxl	$6, %r9d, %edx
6045        addl	%ebx, %r13d
6046        # rnd_1: 0 - 0
6047        movl	%r10d, %ebx
6048        rorxl	$11, %r9d, %ecx
6049        addl	44(%rsp), %r12d
6050        vpshufd	$0x50, %xmm4, %xmm6
6051        # rnd_1: 1 - 1
6052        xorl	%edx, %ecx
6053        xorl	%r11d, %ebx
6054        rorxl	$25, %r9d, %edx
6055        vpsrld	$10, %xmm6, %xmm9
6056        # rnd_1: 2 - 2
6057        andl	%r9d, %ebx
6058        xorl	%ecx, %edx
6059        rorxl	$13, %r13d, %ecx
6060        vpsrlq	$19, %xmm6, %xmm7
6061        # rnd_1: 3 - 3
6062        addl	%edx, %r12d
6063        rorxl	$2, %r13d, %edx
6064        xorl	%r11d, %ebx
6065        vpsrlq	$0x11, %xmm6, %xmm6
6066        # rnd_1: 4 - 4
6067        xorl	%edx, %ecx
6068        rorxl	$22, %r13d, %edx
6069        addl	%ebx, %r12d
6070        vpxor	%xmm7, %xmm6, %xmm6
6071        # rnd_1: 5 - 5
6072        xorl	%ecx, %edx
6073        movl	%r14d, %ebx
6074        addl	%r12d, %r8d
6075        vpxor	%xmm6, %xmm9, %xmm9
6076        # rnd_1: 6 - 6
6077        xorl	%r13d, %ebx
6078        addl	%edx, %r12d
6079        andl	%ebx, %eax
6080        vpshufb	%xmm12, %xmm9, %xmm9
6081        # rnd_1: 7 - 7
6082        xorl	%r14d, %eax
6083        rorxl	$6, %r8d, %edx
6084        addl	%eax, %r12d
6085        vpaddd	%xmm4, %xmm9, %xmm2
6086        # msg_sched done: 8-11
6087        # msg_sched: 12-15
6088        # rnd_0: 0 - 0
6089        movl	%r9d, %eax
6090        rorxl	$11, %r8d, %ecx
6091        addl	48(%rsp), %r11d
6092        vpalignr	$4, %xmm1, %xmm2, %xmm4
6093        vpalignr	$4, %xmm3, %xmm0, %xmm5
6094        # rnd_0: 1 - 2
6095        xorl	%edx, %ecx
6096        xorl	%r10d, %eax
6097        rorxl	$25, %r8d, %edx
6098        andl	%r8d, %eax
6099        xorl	%ecx, %edx
6100        rorxl	$13, %r12d, %ecx
6101        vpsrld	$7, %xmm5, %xmm6
6102        vpslld	$25, %xmm5, %xmm7
6103        # rnd_0: 3 - 4
6104        addl	%edx, %r11d
6105        rorxl	$2, %r12d, %edx
6106        xorl	%r10d, %eax
6107        xorl	%edx, %ecx
6108        rorxl	$22, %r12d, %edx
6109        addl	%eax, %r11d
6110        vpsrld	$3, %xmm5, %xmm8
6111        vpor	%xmm6, %xmm7, %xmm7
6112        # rnd_0: 5 - 7
6113        xorl	%ecx, %edx
6114        movl	%r13d, %eax
6115        addl	%r11d, %r15d
6116        xorl	%r12d, %eax
6117        addl	%edx, %r11d
6118        andl	%eax, %ebx
6119        xorl	%r13d, %ebx
6120        rorxl	$6, %r15d, %edx
6121        addl	%ebx, %r11d
6122        # rnd_1: 0 - 0
6123        movl	%r8d, %ebx
6124        rorxl	$11, %r15d, %ecx
6125        addl	52(%rsp), %r10d
6126        vpsrld	$18, %xmm5, %xmm6
6127        # rnd_1: 1 - 1
6128        xorl	%edx, %ecx
6129        xorl	%r9d, %ebx
6130        rorxl	$25, %r15d, %edx
6131        vpslld	$14, %xmm5, %xmm5
6132        # rnd_1: 2 - 2
6133        andl	%r15d, %ebx
6134        xorl	%ecx, %edx
6135        rorxl	$13, %r11d, %ecx
6136        vpxor	%xmm5, %xmm7, %xmm7
6137        # rnd_1: 3 - 3
6138        addl	%edx, %r10d
6139        rorxl	$2, %r11d, %edx
6140        xorl	%r9d, %ebx
6141        vpxor	%xmm6, %xmm7, %xmm7
6142        # rnd_1: 4 - 4
6143        xorl	%edx, %ecx
6144        rorxl	$22, %r11d, %edx
6145        addl	%ebx, %r10d
6146        vpshufd	$0xfa, %xmm2, %xmm6
6147        # rnd_1: 5 - 5
6148        xorl	%ecx, %edx
6149        movl	%r12d, %ebx
6150        addl	%r10d, %r14d
6151        vpxor	%xmm8, %xmm7, %xmm5
6152        # rnd_1: 6 - 6
6153        xorl	%r11d, %ebx
6154        addl	%edx, %r10d
6155        andl	%ebx, %eax
6156        vpsrld	$10, %xmm6, %xmm8
6157        # rnd_1: 7 - 7
6158        xorl	%r12d, %eax
6159        rorxl	$6, %r14d, %edx
6160        addl	%eax, %r10d
6161        # rnd_0: 0 - 0
6162        movl	%r15d, %eax
6163        rorxl	$11, %r14d, %ecx
6164        addl	56(%rsp), %r9d
6165        vpsrlq	$19, %xmm6, %xmm7
6166        # rnd_0: 1 - 1
6167        xorl	%edx, %ecx
6168        xorl	%r8d, %eax
6169        rorxl	$25, %r14d, %edx
6170        vpsrlq	$0x11, %xmm6, %xmm6
6171        vpaddd	%xmm3, %xmm4, %xmm4
6172        # rnd_0: 2 - 2
6173        andl	%r14d, %eax
6174        xorl	%ecx, %edx
6175        rorxl	$13, %r10d, %ecx
6176        vpaddd	%xmm5, %xmm4, %xmm4
6177        # rnd_0: 3 - 3
6178        addl	%edx, %r9d
6179        rorxl	$2, %r10d, %edx
6180        xorl	%r8d, %eax
6181        vpxor	%xmm7, %xmm6, %xmm6
6182        # rnd_0: 4 - 4
6183        xorl	%edx, %ecx
6184        rorxl	$22, %r10d, %edx
6185        addl	%eax, %r9d
6186        vpxor	%xmm6, %xmm8, %xmm8
6187        # rnd_0: 5 - 5
6188        xorl	%ecx, %edx
6189        movl	%r11d, %eax
6190        addl	%r9d, %r13d
6191        vpshufb	%xmm11, %xmm8, %xmm8
6192        # rnd_0: 6 - 6
6193        xorl	%r10d, %eax
6194        addl	%edx, %r9d
6195        andl	%eax, %ebx
6196        vpaddd	%xmm8, %xmm4, %xmm4
6197        # rnd_0: 7 - 7
6198        xorl	%r11d, %ebx
6199        rorxl	$6, %r13d, %edx
6200        addl	%ebx, %r9d
6201        # rnd_1: 0 - 0
6202        movl	%r14d, %ebx
6203        rorxl	$11, %r13d, %ecx
6204        addl	60(%rsp), %r8d
6205        vpshufd	$0x50, %xmm4, %xmm6
6206        # rnd_1: 1 - 1
6207        xorl	%edx, %ecx
6208        xorl	%r15d, %ebx
6209        rorxl	$25, %r13d, %edx
6210        vpsrld	$10, %xmm6, %xmm9
6211        # rnd_1: 2 - 2
6212        andl	%r13d, %ebx
6213        xorl	%ecx, %edx
6214        rorxl	$13, %r9d, %ecx
6215        vpsrlq	$19, %xmm6, %xmm7
6216        # rnd_1: 3 - 3
6217        addl	%edx, %r8d
6218        rorxl	$2, %r9d, %edx
6219        xorl	%r15d, %ebx
6220        vpsrlq	$0x11, %xmm6, %xmm6
6221        # rnd_1: 4 - 4
6222        xorl	%edx, %ecx
6223        rorxl	$22, %r9d, %edx
6224        addl	%ebx, %r8d
6225        vpxor	%xmm7, %xmm6, %xmm6
6226        # rnd_1: 5 - 5
6227        xorl	%ecx, %edx
6228        movl	%r10d, %ebx
6229        addl	%r8d, %r12d
6230        vpxor	%xmm6, %xmm9, %xmm9
6231        # rnd_1: 6 - 6
6232        xorl	%r9d, %ebx
6233        addl	%edx, %r8d
6234        andl	%ebx, %eax
6235        vpshufb	%xmm12, %xmm9, %xmm9
6236        # rnd_1: 7 - 7
6237        xorl	%r10d, %eax
6238        rorxl	$6, %r12d, %edx
6239        addl	%eax, %r8d
6240        vpaddd	%xmm4, %xmm9, %xmm3
6241        # msg_sched done: 12-15
6242        # set_w_k_xfer_4: 8
6243        vpaddd	128+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
6244        vpaddd	144+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
6245        vmovdqu	%xmm4, (%rsp)
6246        vmovdqu	%xmm5, 16(%rsp)
6247        vpaddd	160+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
6248        vpaddd	176+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
6249        vmovdqu	%xmm6, 32(%rsp)
6250        vmovdqu	%xmm7, 48(%rsp)
6251        # msg_sched: 0-3
6252        # rnd_0: 0 - 0
6253        movl	%r13d, %eax
6254        rorxl	$11, %r12d, %ecx
6255        addl	(%rsp), %r15d
6256        vpalignr	$4, %xmm2, %xmm3, %xmm4
6257        vpalignr	$4, %xmm0, %xmm1, %xmm5
6258        # rnd_0: 1 - 2
6259        xorl	%edx, %ecx
6260        xorl	%r14d, %eax
6261        rorxl	$25, %r12d, %edx
6262        andl	%r12d, %eax
6263        xorl	%ecx, %edx
6264        rorxl	$13, %r8d, %ecx
6265        vpsrld	$7, %xmm5, %xmm6
6266        vpslld	$25, %xmm5, %xmm7
6267        # rnd_0: 3 - 4
6268        addl	%edx, %r15d
6269        rorxl	$2, %r8d, %edx
6270        xorl	%r14d, %eax
6271        xorl	%edx, %ecx
6272        rorxl	$22, %r8d, %edx
6273        addl	%eax, %r15d
6274        vpsrld	$3, %xmm5, %xmm8
6275        vpor	%xmm6, %xmm7, %xmm7
6276        # rnd_0: 5 - 7
6277        xorl	%ecx, %edx
6278        movl	%r9d, %eax
6279        addl	%r15d, %r11d
6280        xorl	%r8d, %eax
6281        addl	%edx, %r15d
6282        andl	%eax, %ebx
6283        xorl	%r9d, %ebx
6284        rorxl	$6, %r11d, %edx
6285        addl	%ebx, %r15d
6286        # rnd_1: 0 - 0
6287        movl	%r12d, %ebx
6288        rorxl	$11, %r11d, %ecx
6289        addl	4(%rsp), %r14d
6290        vpsrld	$18, %xmm5, %xmm6
6291        # rnd_1: 1 - 1
6292        xorl	%edx, %ecx
6293        xorl	%r13d, %ebx
6294        rorxl	$25, %r11d, %edx
6295        vpslld	$14, %xmm5, %xmm5
6296        # rnd_1: 2 - 2
6297        andl	%r11d, %ebx
6298        xorl	%ecx, %edx
6299        rorxl	$13, %r15d, %ecx
6300        vpxor	%xmm5, %xmm7, %xmm7
6301        # rnd_1: 3 - 3
6302        addl	%edx, %r14d
6303        rorxl	$2, %r15d, %edx
6304        xorl	%r13d, %ebx
6305        vpxor	%xmm6, %xmm7, %xmm7
6306        # rnd_1: 4 - 4
6307        xorl	%edx, %ecx
6308        rorxl	$22, %r15d, %edx
6309        addl	%ebx, %r14d
6310        vpshufd	$0xfa, %xmm3, %xmm6
6311        # rnd_1: 5 - 5
6312        xorl	%ecx, %edx
6313        movl	%r8d, %ebx
6314        addl	%r14d, %r10d
6315        vpxor	%xmm8, %xmm7, %xmm5
6316        # rnd_1: 6 - 6
6317        xorl	%r15d, %ebx
6318        addl	%edx, %r14d
6319        andl	%ebx, %eax
6320        vpsrld	$10, %xmm6, %xmm8
6321        # rnd_1: 7 - 7
6322        xorl	%r8d, %eax
6323        rorxl	$6, %r10d, %edx
6324        addl	%eax, %r14d
6325        # rnd_0: 0 - 0
6326        movl	%r11d, %eax
6327        rorxl	$11, %r10d, %ecx
6328        addl	8(%rsp), %r13d
6329        vpsrlq	$19, %xmm6, %xmm7
6330        # rnd_0: 1 - 1
6331        xorl	%edx, %ecx
6332        xorl	%r12d, %eax
6333        rorxl	$25, %r10d, %edx
6334        vpsrlq	$0x11, %xmm6, %xmm6
6335        vpaddd	%xmm0, %xmm4, %xmm4
6336        # rnd_0: 2 - 2
6337        andl	%r10d, %eax
6338        xorl	%ecx, %edx
6339        rorxl	$13, %r14d, %ecx
6340        vpaddd	%xmm5, %xmm4, %xmm4
6341        # rnd_0: 3 - 3
6342        addl	%edx, %r13d
6343        rorxl	$2, %r14d, %edx
6344        xorl	%r12d, %eax
6345        vpxor	%xmm7, %xmm6, %xmm6
6346        # rnd_0: 4 - 4
6347        xorl	%edx, %ecx
6348        rorxl	$22, %r14d, %edx
6349        addl	%eax, %r13d
6350        vpxor	%xmm6, %xmm8, %xmm8
6351        # rnd_0: 5 - 5
6352        xorl	%ecx, %edx
6353        movl	%r15d, %eax
6354        addl	%r13d, %r9d
6355        vpshufb	%xmm11, %xmm8, %xmm8
6356        # rnd_0: 6 - 6
6357        xorl	%r14d, %eax
6358        addl	%edx, %r13d
6359        andl	%eax, %ebx
6360        vpaddd	%xmm8, %xmm4, %xmm4
6361        # rnd_0: 7 - 7
6362        xorl	%r15d, %ebx
6363        rorxl	$6, %r9d, %edx
6364        addl	%ebx, %r13d
6365        # rnd_1: 0 - 0
6366        movl	%r10d, %ebx
6367        rorxl	$11, %r9d, %ecx
6368        addl	12(%rsp), %r12d
6369        vpshufd	$0x50, %xmm4, %xmm6
6370        # rnd_1: 1 - 1
6371        xorl	%edx, %ecx
6372        xorl	%r11d, %ebx
6373        rorxl	$25, %r9d, %edx
6374        vpsrld	$10, %xmm6, %xmm9
6375        # rnd_1: 2 - 2
6376        andl	%r9d, %ebx
6377        xorl	%ecx, %edx
6378        rorxl	$13, %r13d, %ecx
6379        vpsrlq	$19, %xmm6, %xmm7
6380        # rnd_1: 3 - 3
6381        addl	%edx, %r12d
6382        rorxl	$2, %r13d, %edx
6383        xorl	%r11d, %ebx
6384        vpsrlq	$0x11, %xmm6, %xmm6
6385        # rnd_1: 4 - 4
6386        xorl	%edx, %ecx
6387        rorxl	$22, %r13d, %edx
6388        addl	%ebx, %r12d
6389        vpxor	%xmm7, %xmm6, %xmm6
6390        # rnd_1: 5 - 5
6391        xorl	%ecx, %edx
6392        movl	%r14d, %ebx
6393        addl	%r12d, %r8d
6394        vpxor	%xmm6, %xmm9, %xmm9
6395        # rnd_1: 6 - 6
6396        xorl	%r13d, %ebx
6397        addl	%edx, %r12d
6398        andl	%ebx, %eax
6399        vpshufb	%xmm12, %xmm9, %xmm9
6400        # rnd_1: 7 - 7
6401        xorl	%r14d, %eax
6402        rorxl	$6, %r8d, %edx
6403        addl	%eax, %r12d
6404        vpaddd	%xmm4, %xmm9, %xmm0
6405        # msg_sched done: 0-3
6406        # msg_sched: 4-7
6407        # rnd_0: 0 - 0
6408        movl	%r9d, %eax
6409        rorxl	$11, %r8d, %ecx
6410        addl	16(%rsp), %r11d
6411        vpalignr	$4, %xmm3, %xmm0, %xmm4
6412        vpalignr	$4, %xmm1, %xmm2, %xmm5
6413        # rnd_0: 1 - 2
6414        xorl	%edx, %ecx
6415        xorl	%r10d, %eax
6416        rorxl	$25, %r8d, %edx
6417        andl	%r8d, %eax
6418        xorl	%ecx, %edx
6419        rorxl	$13, %r12d, %ecx
6420        vpsrld	$7, %xmm5, %xmm6
6421        vpslld	$25, %xmm5, %xmm7
6422        # rnd_0: 3 - 4
6423        addl	%edx, %r11d
6424        rorxl	$2, %r12d, %edx
6425        xorl	%r10d, %eax
6426        xorl	%edx, %ecx
6427        rorxl	$22, %r12d, %edx
6428        addl	%eax, %r11d
6429        vpsrld	$3, %xmm5, %xmm8
6430        vpor	%xmm6, %xmm7, %xmm7
6431        # rnd_0: 5 - 7
6432        xorl	%ecx, %edx
6433        movl	%r13d, %eax
6434        addl	%r11d, %r15d
6435        xorl	%r12d, %eax
6436        addl	%edx, %r11d
6437        andl	%eax, %ebx
6438        xorl	%r13d, %ebx
6439        rorxl	$6, %r15d, %edx
6440        addl	%ebx, %r11d
6441        # rnd_1: 0 - 0
6442        movl	%r8d, %ebx
6443        rorxl	$11, %r15d, %ecx
6444        addl	20(%rsp), %r10d
6445        vpsrld	$18, %xmm5, %xmm6
6446        # rnd_1: 1 - 1
6447        xorl	%edx, %ecx
6448        xorl	%r9d, %ebx
6449        rorxl	$25, %r15d, %edx
6450        vpslld	$14, %xmm5, %xmm5
6451        # rnd_1: 2 - 2
6452        andl	%r15d, %ebx
6453        xorl	%ecx, %edx
6454        rorxl	$13, %r11d, %ecx
6455        vpxor	%xmm5, %xmm7, %xmm7
6456        # rnd_1: 3 - 3
6457        addl	%edx, %r10d
6458        rorxl	$2, %r11d, %edx
6459        xorl	%r9d, %ebx
6460        vpxor	%xmm6, %xmm7, %xmm7
6461        # rnd_1: 4 - 4
6462        xorl	%edx, %ecx
6463        rorxl	$22, %r11d, %edx
6464        addl	%ebx, %r10d
6465        vpshufd	$0xfa, %xmm0, %xmm6
6466        # rnd_1: 5 - 5
6467        xorl	%ecx, %edx
6468        movl	%r12d, %ebx
6469        addl	%r10d, %r14d
6470        vpxor	%xmm8, %xmm7, %xmm5
6471        # rnd_1: 6 - 6
6472        xorl	%r11d, %ebx
6473        addl	%edx, %r10d
6474        andl	%ebx, %eax
6475        vpsrld	$10, %xmm6, %xmm8
6476        # rnd_1: 7 - 7
6477        xorl	%r12d, %eax
6478        rorxl	$6, %r14d, %edx
6479        addl	%eax, %r10d
6480        # rnd_0: 0 - 0
6481        movl	%r15d, %eax
6482        rorxl	$11, %r14d, %ecx
6483        addl	24(%rsp), %r9d
6484        vpsrlq	$19, %xmm6, %xmm7
6485        # rnd_0: 1 - 1
6486        xorl	%edx, %ecx
6487        xorl	%r8d, %eax
6488        rorxl	$25, %r14d, %edx
6489        vpsrlq	$0x11, %xmm6, %xmm6
6490        vpaddd	%xmm1, %xmm4, %xmm4
6491        # rnd_0: 2 - 2
6492        andl	%r14d, %eax
6493        xorl	%ecx, %edx
6494        rorxl	$13, %r10d, %ecx
6495        vpaddd	%xmm5, %xmm4, %xmm4
6496        # rnd_0: 3 - 3
6497        addl	%edx, %r9d
6498        rorxl	$2, %r10d, %edx
6499        xorl	%r8d, %eax
6500        vpxor	%xmm7, %xmm6, %xmm6
6501        # rnd_0: 4 - 4
6502        xorl	%edx, %ecx
6503        rorxl	$22, %r10d, %edx
6504        addl	%eax, %r9d
6505        vpxor	%xmm6, %xmm8, %xmm8
6506        # rnd_0: 5 - 5
6507        xorl	%ecx, %edx
6508        movl	%r11d, %eax
6509        addl	%r9d, %r13d
6510        vpshufb	%xmm11, %xmm8, %xmm8
6511        # rnd_0: 6 - 6
6512        xorl	%r10d, %eax
6513        addl	%edx, %r9d
6514        andl	%eax, %ebx
6515        vpaddd	%xmm8, %xmm4, %xmm4
6516        # rnd_0: 7 - 7
6517        xorl	%r11d, %ebx
6518        rorxl	$6, %r13d, %edx
6519        addl	%ebx, %r9d
6520        # rnd_1: 0 - 0
6521        movl	%r14d, %ebx
6522        rorxl	$11, %r13d, %ecx
6523        addl	28(%rsp), %r8d
6524        vpshufd	$0x50, %xmm4, %xmm6
6525        # rnd_1: 1 - 1
6526        xorl	%edx, %ecx
6527        xorl	%r15d, %ebx
6528        rorxl	$25, %r13d, %edx
6529        vpsrld	$10, %xmm6, %xmm9
6530        # rnd_1: 2 - 2
6531        andl	%r13d, %ebx
6532        xorl	%ecx, %edx
6533        rorxl	$13, %r9d, %ecx
6534        vpsrlq	$19, %xmm6, %xmm7
6535        # rnd_1: 3 - 3
6536        addl	%edx, %r8d
6537        rorxl	$2, %r9d, %edx
6538        xorl	%r15d, %ebx
6539        vpsrlq	$0x11, %xmm6, %xmm6
6540        # rnd_1: 4 - 4
6541        xorl	%edx, %ecx
6542        rorxl	$22, %r9d, %edx
6543        addl	%ebx, %r8d
6544        vpxor	%xmm7, %xmm6, %xmm6
6545        # rnd_1: 5 - 5
6546        xorl	%ecx, %edx
6547        movl	%r10d, %ebx
6548        addl	%r8d, %r12d
6549        vpxor	%xmm6, %xmm9, %xmm9
6550        # rnd_1: 6 - 6
6551        xorl	%r9d, %ebx
6552        addl	%edx, %r8d
6553        andl	%ebx, %eax
6554        vpshufb	%xmm12, %xmm9, %xmm9
6555        # rnd_1: 7 - 7
6556        xorl	%r10d, %eax
6557        rorxl	$6, %r12d, %edx
6558        addl	%eax, %r8d
6559        vpaddd	%xmm4, %xmm9, %xmm1
6560        # msg_sched done: 4-7
6561        # msg_sched: 8-11
6562        # rnd_0: 0 - 0
6563        movl	%r13d, %eax
6564        rorxl	$11, %r12d, %ecx
6565        addl	32(%rsp), %r15d
6566        vpalignr	$4, %xmm0, %xmm1, %xmm4
6567        vpalignr	$4, %xmm2, %xmm3, %xmm5
6568        # rnd_0: 1 - 2
6569        xorl	%edx, %ecx
6570        xorl	%r14d, %eax
6571        rorxl	$25, %r12d, %edx
6572        andl	%r12d, %eax
6573        xorl	%ecx, %edx
6574        rorxl	$13, %r8d, %ecx
6575        vpsrld	$7, %xmm5, %xmm6
6576        vpslld	$25, %xmm5, %xmm7
6577        # rnd_0: 3 - 4
6578        addl	%edx, %r15d
6579        rorxl	$2, %r8d, %edx
6580        xorl	%r14d, %eax
6581        xorl	%edx, %ecx
6582        rorxl	$22, %r8d, %edx
6583        addl	%eax, %r15d
6584        vpsrld	$3, %xmm5, %xmm8
6585        vpor	%xmm6, %xmm7, %xmm7
6586        # rnd_0: 5 - 7
6587        xorl	%ecx, %edx
6588        movl	%r9d, %eax
6589        addl	%r15d, %r11d
6590        xorl	%r8d, %eax
6591        addl	%edx, %r15d
6592        andl	%eax, %ebx
6593        xorl	%r9d, %ebx
6594        rorxl	$6, %r11d, %edx
6595        addl	%ebx, %r15d
6596        # rnd_1: 0 - 0
6597        movl	%r12d, %ebx
6598        rorxl	$11, %r11d, %ecx
6599        addl	36(%rsp), %r14d
6600        vpsrld	$18, %xmm5, %xmm6
6601        # rnd_1: 1 - 1
6602        xorl	%edx, %ecx
6603        xorl	%r13d, %ebx
6604        rorxl	$25, %r11d, %edx
6605        vpslld	$14, %xmm5, %xmm5
6606        # rnd_1: 2 - 2
6607        andl	%r11d, %ebx
6608        xorl	%ecx, %edx
6609        rorxl	$13, %r15d, %ecx
6610        vpxor	%xmm5, %xmm7, %xmm7
6611        # rnd_1: 3 - 3
6612        addl	%edx, %r14d
6613        rorxl	$2, %r15d, %edx
6614        xorl	%r13d, %ebx
6615        vpxor	%xmm6, %xmm7, %xmm7
6616        # rnd_1: 4 - 4
6617        xorl	%edx, %ecx
6618        rorxl	$22, %r15d, %edx
6619        addl	%ebx, %r14d
6620        vpshufd	$0xfa, %xmm1, %xmm6
6621        # rnd_1: 5 - 5
6622        xorl	%ecx, %edx
6623        movl	%r8d, %ebx
6624        addl	%r14d, %r10d
6625        vpxor	%xmm8, %xmm7, %xmm5
6626        # rnd_1: 6 - 6
6627        xorl	%r15d, %ebx
6628        addl	%edx, %r14d
6629        andl	%ebx, %eax
6630        vpsrld	$10, %xmm6, %xmm8
6631        # rnd_1: 7 - 7
6632        xorl	%r8d, %eax
6633        rorxl	$6, %r10d, %edx
6634        addl	%eax, %r14d
6635        # rnd_0: 0 - 0
6636        movl	%r11d, %eax
6637        rorxl	$11, %r10d, %ecx
6638        addl	40(%rsp), %r13d
6639        vpsrlq	$19, %xmm6, %xmm7
6640        # rnd_0: 1 - 1
6641        xorl	%edx, %ecx
6642        xorl	%r12d, %eax
6643        rorxl	$25, %r10d, %edx
6644        vpsrlq	$0x11, %xmm6, %xmm6
6645        vpaddd	%xmm2, %xmm4, %xmm4
6646        # rnd_0: 2 - 2
6647        andl	%r10d, %eax
6648        xorl	%ecx, %edx
6649        rorxl	$13, %r14d, %ecx
6650        vpaddd	%xmm5, %xmm4, %xmm4
6651        # rnd_0: 3 - 3
6652        addl	%edx, %r13d
6653        rorxl	$2, %r14d, %edx
6654        xorl	%r12d, %eax
6655        vpxor	%xmm7, %xmm6, %xmm6
6656        # rnd_0: 4 - 4
6657        xorl	%edx, %ecx
6658        rorxl	$22, %r14d, %edx
6659        addl	%eax, %r13d
6660        vpxor	%xmm6, %xmm8, %xmm8
6661        # rnd_0: 5 - 5
6662        xorl	%ecx, %edx
6663        movl	%r15d, %eax
6664        addl	%r13d, %r9d
6665        vpshufb	%xmm11, %xmm8, %xmm8
6666        # rnd_0: 6 - 6
6667        xorl	%r14d, %eax
6668        addl	%edx, %r13d
6669        andl	%eax, %ebx
6670        vpaddd	%xmm8, %xmm4, %xmm4
6671        # rnd_0: 7 - 7
6672        xorl	%r15d, %ebx
6673        rorxl	$6, %r9d, %edx
6674        addl	%ebx, %r13d
6675        # rnd_1: 0 - 0
6676        movl	%r10d, %ebx
6677        rorxl	$11, %r9d, %ecx
6678        addl	44(%rsp), %r12d
6679        vpshufd	$0x50, %xmm4, %xmm6
6680        # rnd_1: 1 - 1
6681        xorl	%edx, %ecx
6682        xorl	%r11d, %ebx
6683        rorxl	$25, %r9d, %edx
6684        vpsrld	$10, %xmm6, %xmm9
6685        # rnd_1: 2 - 2
6686        andl	%r9d, %ebx
6687        xorl	%ecx, %edx
6688        rorxl	$13, %r13d, %ecx
6689        vpsrlq	$19, %xmm6, %xmm7
6690        # rnd_1: 3 - 3
6691        addl	%edx, %r12d
6692        rorxl	$2, %r13d, %edx
6693        xorl	%r11d, %ebx
6694        vpsrlq	$0x11, %xmm6, %xmm6
6695        # rnd_1: 4 - 4
6696        xorl	%edx, %ecx
6697        rorxl	$22, %r13d, %edx
6698        addl	%ebx, %r12d
6699        vpxor	%xmm7, %xmm6, %xmm6
6700        # rnd_1: 5 - 5
6701        xorl	%ecx, %edx
6702        movl	%r14d, %ebx
6703        addl	%r12d, %r8d
6704        vpxor	%xmm6, %xmm9, %xmm9
6705        # rnd_1: 6 - 6
6706        xorl	%r13d, %ebx
6707        addl	%edx, %r12d
6708        andl	%ebx, %eax
6709        vpshufb	%xmm12, %xmm9, %xmm9
6710        # rnd_1: 7 - 7
6711        xorl	%r14d, %eax
6712        rorxl	$6, %r8d, %edx
6713        addl	%eax, %r12d
6714        vpaddd	%xmm4, %xmm9, %xmm2
6715        # msg_sched done: 8-11
6716        # msg_sched: 12-15
6717        # rnd_0: 0 - 0
6718        movl	%r9d, %eax
6719        rorxl	$11, %r8d, %ecx
6720        addl	48(%rsp), %r11d
6721        vpalignr	$4, %xmm1, %xmm2, %xmm4
6722        vpalignr	$4, %xmm3, %xmm0, %xmm5
6723        # rnd_0: 1 - 2
6724        xorl	%edx, %ecx
6725        xorl	%r10d, %eax
6726        rorxl	$25, %r8d, %edx
6727        andl	%r8d, %eax
6728        xorl	%ecx, %edx
6729        rorxl	$13, %r12d, %ecx
6730        vpsrld	$7, %xmm5, %xmm6
6731        vpslld	$25, %xmm5, %xmm7
6732        # rnd_0: 3 - 4
6733        addl	%edx, %r11d
6734        rorxl	$2, %r12d, %edx
6735        xorl	%r10d, %eax
6736        xorl	%edx, %ecx
6737        rorxl	$22, %r12d, %edx
6738        addl	%eax, %r11d
6739        vpsrld	$3, %xmm5, %xmm8
6740        vpor	%xmm6, %xmm7, %xmm7
6741        # rnd_0: 5 - 7
6742        xorl	%ecx, %edx
6743        movl	%r13d, %eax
6744        addl	%r11d, %r15d
6745        xorl	%r12d, %eax
6746        addl	%edx, %r11d
6747        andl	%eax, %ebx
6748        xorl	%r13d, %ebx
6749        rorxl	$6, %r15d, %edx
6750        addl	%ebx, %r11d
6751        # rnd_1: 0 - 0
6752        movl	%r8d, %ebx
6753        rorxl	$11, %r15d, %ecx
6754        addl	52(%rsp), %r10d
6755        vpsrld	$18, %xmm5, %xmm6
6756        # rnd_1: 1 - 1
6757        xorl	%edx, %ecx
6758        xorl	%r9d, %ebx
6759        rorxl	$25, %r15d, %edx
6760        vpslld	$14, %xmm5, %xmm5
6761        # rnd_1: 2 - 2
6762        andl	%r15d, %ebx
6763        xorl	%ecx, %edx
6764        rorxl	$13, %r11d, %ecx
6765        vpxor	%xmm5, %xmm7, %xmm7
6766        # rnd_1: 3 - 3
6767        addl	%edx, %r10d
6768        rorxl	$2, %r11d, %edx
6769        xorl	%r9d, %ebx
6770        vpxor	%xmm6, %xmm7, %xmm7
6771        # rnd_1: 4 - 4
6772        xorl	%edx, %ecx
6773        rorxl	$22, %r11d, %edx
6774        addl	%ebx, %r10d
6775        vpshufd	$0xfa, %xmm2, %xmm6
6776        # rnd_1: 5 - 5
6777        xorl	%ecx, %edx
6778        movl	%r12d, %ebx
6779        addl	%r10d, %r14d
6780        vpxor	%xmm8, %xmm7, %xmm5
6781        # rnd_1: 6 - 6
6782        xorl	%r11d, %ebx
6783        addl	%edx, %r10d
6784        andl	%ebx, %eax
6785        vpsrld	$10, %xmm6, %xmm8
6786        # rnd_1: 7 - 7
6787        xorl	%r12d, %eax
6788        rorxl	$6, %r14d, %edx
6789        addl	%eax, %r10d
6790        # rnd_0: 0 - 0
6791        movl	%r15d, %eax
6792        rorxl	$11, %r14d, %ecx
6793        addl	56(%rsp), %r9d
6794        vpsrlq	$19, %xmm6, %xmm7
6795        # rnd_0: 1 - 1
6796        xorl	%edx, %ecx
6797        xorl	%r8d, %eax
6798        rorxl	$25, %r14d, %edx
6799        vpsrlq	$0x11, %xmm6, %xmm6
6800        vpaddd	%xmm3, %xmm4, %xmm4
6801        # rnd_0: 2 - 2
6802        andl	%r14d, %eax
6803        xorl	%ecx, %edx
6804        rorxl	$13, %r10d, %ecx
6805        vpaddd	%xmm5, %xmm4, %xmm4
6806        # rnd_0: 3 - 3
6807        addl	%edx, %r9d
6808        rorxl	$2, %r10d, %edx
6809        xorl	%r8d, %eax
6810        vpxor	%xmm7, %xmm6, %xmm6
6811        # rnd_0: 4 - 4
6812        xorl	%edx, %ecx
6813        rorxl	$22, %r10d, %edx
6814        addl	%eax, %r9d
6815        vpxor	%xmm6, %xmm8, %xmm8
6816        # rnd_0: 5 - 5
6817        xorl	%ecx, %edx
6818        movl	%r11d, %eax
6819        addl	%r9d, %r13d
6820        vpshufb	%xmm11, %xmm8, %xmm8
6821        # rnd_0: 6 - 6
6822        xorl	%r10d, %eax
6823        addl	%edx, %r9d
6824        andl	%eax, %ebx
6825        vpaddd	%xmm8, %xmm4, %xmm4
6826        # rnd_0: 7 - 7
6827        xorl	%r11d, %ebx
6828        rorxl	$6, %r13d, %edx
6829        addl	%ebx, %r9d
6830        # rnd_1: 0 - 0
6831        movl	%r14d, %ebx
6832        rorxl	$11, %r13d, %ecx
6833        addl	60(%rsp), %r8d
6834        vpshufd	$0x50, %xmm4, %xmm6
6835        # rnd_1: 1 - 1
6836        xorl	%edx, %ecx
6837        xorl	%r15d, %ebx
6838        rorxl	$25, %r13d, %edx
6839        vpsrld	$10, %xmm6, %xmm9
6840        # rnd_1: 2 - 2
6841        andl	%r13d, %ebx
6842        xorl	%ecx, %edx
6843        rorxl	$13, %r9d, %ecx
6844        vpsrlq	$19, %xmm6, %xmm7
6845        # rnd_1: 3 - 3
6846        addl	%edx, %r8d
6847        rorxl	$2, %r9d, %edx
6848        xorl	%r15d, %ebx
6849        vpsrlq	$0x11, %xmm6, %xmm6
6850        # rnd_1: 4 - 4
6851        xorl	%edx, %ecx
6852        rorxl	$22, %r9d, %edx
6853        addl	%ebx, %r8d
6854        vpxor	%xmm7, %xmm6, %xmm6
6855        # rnd_1: 5 - 5
6856        xorl	%ecx, %edx
6857        movl	%r10d, %ebx
6858        addl	%r8d, %r12d
6859        vpxor	%xmm6, %xmm9, %xmm9
6860        # rnd_1: 6 - 6
6861        xorl	%r9d, %ebx
6862        addl	%edx, %r8d
6863        andl	%ebx, %eax
6864        vpshufb	%xmm12, %xmm9, %xmm9
6865        # rnd_1: 7 - 7
6866        xorl	%r10d, %eax
6867        rorxl	$6, %r12d, %edx
6868        addl	%eax, %r8d
6869        vpaddd	%xmm4, %xmm9, %xmm3
6870        # msg_sched done: 12-15
6871        # set_w_k_xfer_4: 12
6872        vpaddd	192+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
6873        vpaddd	208+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
6874        vmovdqu	%xmm4, (%rsp)
6875        vmovdqu	%xmm5, 16(%rsp)
6876        vpaddd	224+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
6877        vpaddd	240+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
6878        vmovdqu	%xmm6, 32(%rsp)
6879        vmovdqu	%xmm7, 48(%rsp)
6880        xorl	%eax, %eax
6881        # rnd_all_4: 0-3
6882        rorxl	$6, %r12d, %edx
6883        rorxl	$11, %r12d, %ecx
6884        addl	%eax, %r8d
6885        addl	(%rsp), %r15d
6886        movl	%r13d, %eax
6887        xorl	%edx, %ecx
6888        xorl	%r14d, %eax
6889        rorxl	$25, %r12d, %edx
6890        xorl	%ecx, %edx
6891        andl	%r12d, %eax
6892        addl	%edx, %r15d
6893        rorxl	$2, %r8d, %edx
6894        rorxl	$13, %r8d, %ecx
6895        xorl	%r14d, %eax
6896        xorl	%edx, %ecx
6897        rorxl	$22, %r8d, %edx
6898        addl	%eax, %r15d
6899        xorl	%ecx, %edx
6900        movl	%r9d, %eax
6901        addl	%r15d, %r11d
6902        xorl	%r8d, %eax
6903        andl	%eax, %ebx
6904        addl	%edx, %r15d
6905        xorl	%r9d, %ebx
6906        rorxl	$6, %r11d, %edx
6907        rorxl	$11, %r11d, %ecx
6908        addl	%ebx, %r15d
6909        addl	4(%rsp), %r14d
6910        movl	%r12d, %ebx
6911        xorl	%edx, %ecx
6912        xorl	%r13d, %ebx
6913        rorxl	$25, %r11d, %edx
6914        xorl	%ecx, %edx
6915        andl	%r11d, %ebx
6916        addl	%edx, %r14d
6917        rorxl	$2, %r15d, %edx
6918        rorxl	$13, %r15d, %ecx
6919        xorl	%r13d, %ebx
6920        xorl	%edx, %ecx
6921        rorxl	$22, %r15d, %edx
6922        addl	%ebx, %r14d
6923        xorl	%ecx, %edx
6924        movl	%r8d, %ebx
6925        addl	%r14d, %r10d
6926        xorl	%r15d, %ebx
6927        andl	%ebx, %eax
6928        addl	%edx, %r14d
6929        xorl	%r8d, %eax
6930        rorxl	$6, %r10d, %edx
6931        rorxl	$11, %r10d, %ecx
6932        addl	%eax, %r14d
6933        addl	8(%rsp), %r13d
6934        movl	%r11d, %eax
6935        xorl	%edx, %ecx
6936        xorl	%r12d, %eax
6937        rorxl	$25, %r10d, %edx
6938        xorl	%ecx, %edx
6939        andl	%r10d, %eax
6940        addl	%edx, %r13d
6941        rorxl	$2, %r14d, %edx
6942        rorxl	$13, %r14d, %ecx
6943        xorl	%r12d, %eax
6944        xorl	%edx, %ecx
6945        rorxl	$22, %r14d, %edx
6946        addl	%eax, %r13d
6947        xorl	%ecx, %edx
6948        movl	%r15d, %eax
6949        addl	%r13d, %r9d
6950        xorl	%r14d, %eax
6951        andl	%eax, %ebx
6952        addl	%edx, %r13d
6953        xorl	%r15d, %ebx
6954        rorxl	$6, %r9d, %edx
6955        rorxl	$11, %r9d, %ecx
6956        addl	%ebx, %r13d
6957        addl	12(%rsp), %r12d
6958        movl	%r10d, %ebx
6959        xorl	%edx, %ecx
6960        xorl	%r11d, %ebx
6961        rorxl	$25, %r9d, %edx
6962        xorl	%ecx, %edx
6963        andl	%r9d, %ebx
6964        addl	%edx, %r12d
6965        rorxl	$2, %r13d, %edx
6966        rorxl	$13, %r13d, %ecx
6967        xorl	%r11d, %ebx
6968        xorl	%edx, %ecx
6969        rorxl	$22, %r13d, %edx
6970        addl	%ebx, %r12d
6971        xorl	%ecx, %edx
6972        movl	%r14d, %ebx
6973        addl	%r12d, %r8d
6974        xorl	%r13d, %ebx
6975        andl	%ebx, %eax
6976        addl	%edx, %r12d
6977        xorl	%r14d, %eax
6978        # rnd_all_4: 1-4
6979        rorxl	$6, %r8d, %edx
6980        rorxl	$11, %r8d, %ecx
6981        addl	%eax, %r12d
6982        addl	16(%rsp), %r11d
6983        movl	%r9d, %eax
6984        xorl	%edx, %ecx
6985        xorl	%r10d, %eax
6986        rorxl	$25, %r8d, %edx
6987        xorl	%ecx, %edx
6988        andl	%r8d, %eax
6989        addl	%edx, %r11d
6990        rorxl	$2, %r12d, %edx
6991        rorxl	$13, %r12d, %ecx
6992        xorl	%r10d, %eax
6993        xorl	%edx, %ecx
6994        rorxl	$22, %r12d, %edx
6995        addl	%eax, %r11d
6996        xorl	%ecx, %edx
6997        movl	%r13d, %eax
6998        addl	%r11d, %r15d
6999        xorl	%r12d, %eax
7000        andl	%eax, %ebx
7001        addl	%edx, %r11d
7002        xorl	%r13d, %ebx
7003        rorxl	$6, %r15d, %edx
7004        rorxl	$11, %r15d, %ecx
7005        addl	%ebx, %r11d
7006        addl	20(%rsp), %r10d
7007        movl	%r8d, %ebx
7008        xorl	%edx, %ecx
7009        xorl	%r9d, %ebx
7010        rorxl	$25, %r15d, %edx
7011        xorl	%ecx, %edx
7012        andl	%r15d, %ebx
7013        addl	%edx, %r10d
7014        rorxl	$2, %r11d, %edx
7015        rorxl	$13, %r11d, %ecx
7016        xorl	%r9d, %ebx
7017        xorl	%edx, %ecx
7018        rorxl	$22, %r11d, %edx
7019        addl	%ebx, %r10d
7020        xorl	%ecx, %edx
7021        movl	%r12d, %ebx
7022        addl	%r10d, %r14d
7023        xorl	%r11d, %ebx
7024        andl	%ebx, %eax
7025        addl	%edx, %r10d
7026        xorl	%r12d, %eax
7027        rorxl	$6, %r14d, %edx
7028        rorxl	$11, %r14d, %ecx
7029        addl	%eax, %r10d
7030        addl	24(%rsp), %r9d
7031        movl	%r15d, %eax
7032        xorl	%edx, %ecx
7033        xorl	%r8d, %eax
7034        rorxl	$25, %r14d, %edx
7035        xorl	%ecx, %edx
7036        andl	%r14d, %eax
7037        addl	%edx, %r9d
7038        rorxl	$2, %r10d, %edx
7039        rorxl	$13, %r10d, %ecx
7040        xorl	%r8d, %eax
7041        xorl	%edx, %ecx
7042        rorxl	$22, %r10d, %edx
7043        addl	%eax, %r9d
7044        xorl	%ecx, %edx
7045        movl	%r11d, %eax
7046        addl	%r9d, %r13d
7047        xorl	%r10d, %eax
7048        andl	%eax, %ebx
7049        addl	%edx, %r9d
7050        xorl	%r11d, %ebx
7051        rorxl	$6, %r13d, %edx
7052        rorxl	$11, %r13d, %ecx
7053        addl	%ebx, %r9d
7054        addl	28(%rsp), %r8d
7055        movl	%r14d, %ebx
7056        xorl	%edx, %ecx
7057        xorl	%r15d, %ebx
7058        rorxl	$25, %r13d, %edx
7059        xorl	%ecx, %edx
7060        andl	%r13d, %ebx
7061        addl	%edx, %r8d
7062        rorxl	$2, %r9d, %edx
7063        rorxl	$13, %r9d, %ecx
7064        xorl	%r15d, %ebx
7065        xorl	%edx, %ecx
7066        rorxl	$22, %r9d, %edx
7067        addl	%ebx, %r8d
7068        xorl	%ecx, %edx
7069        movl	%r10d, %ebx
7070        addl	%r8d, %r12d
7071        xorl	%r9d, %ebx
7072        andl	%ebx, %eax
7073        addl	%edx, %r8d
7074        xorl	%r10d, %eax
7075        # rnd_all_4: 2-5
7076        rorxl	$6, %r12d, %edx
7077        rorxl	$11, %r12d, %ecx
7078        addl	%eax, %r8d
7079        addl	32(%rsp), %r15d
7080        movl	%r13d, %eax
7081        xorl	%edx, %ecx
7082        xorl	%r14d, %eax
7083        rorxl	$25, %r12d, %edx
7084        xorl	%ecx, %edx
7085        andl	%r12d, %eax
7086        addl	%edx, %r15d
7087        rorxl	$2, %r8d, %edx
7088        rorxl	$13, %r8d, %ecx
7089        xorl	%r14d, %eax
7090        xorl	%edx, %ecx
7091        rorxl	$22, %r8d, %edx
7092        addl	%eax, %r15d
7093        xorl	%ecx, %edx
7094        movl	%r9d, %eax
7095        addl	%r15d, %r11d
7096        xorl	%r8d, %eax
7097        andl	%eax, %ebx
7098        addl	%edx, %r15d
7099        xorl	%r9d, %ebx
7100        rorxl	$6, %r11d, %edx
7101        rorxl	$11, %r11d, %ecx
7102        addl	%ebx, %r15d
7103        addl	36(%rsp), %r14d
7104        movl	%r12d, %ebx
7105        xorl	%edx, %ecx
7106        xorl	%r13d, %ebx
7107        rorxl	$25, %r11d, %edx
7108        xorl	%ecx, %edx
7109        andl	%r11d, %ebx
7110        addl	%edx, %r14d
7111        rorxl	$2, %r15d, %edx
7112        rorxl	$13, %r15d, %ecx
7113        xorl	%r13d, %ebx
7114        xorl	%edx, %ecx
7115        rorxl	$22, %r15d, %edx
7116        addl	%ebx, %r14d
7117        xorl	%ecx, %edx
7118        movl	%r8d, %ebx
7119        addl	%r14d, %r10d
7120        xorl	%r15d, %ebx
7121        andl	%ebx, %eax
7122        addl	%edx, %r14d
7123        xorl	%r8d, %eax
7124        rorxl	$6, %r10d, %edx
7125        rorxl	$11, %r10d, %ecx
7126        addl	%eax, %r14d
7127        addl	40(%rsp), %r13d
7128        movl	%r11d, %eax
7129        xorl	%edx, %ecx
7130        xorl	%r12d, %eax
7131        rorxl	$25, %r10d, %edx
7132        xorl	%ecx, %edx
7133        andl	%r10d, %eax
7134        addl	%edx, %r13d
7135        rorxl	$2, %r14d, %edx
7136        rorxl	$13, %r14d, %ecx
7137        xorl	%r12d, %eax
7138        xorl	%edx, %ecx
7139        rorxl	$22, %r14d, %edx
7140        addl	%eax, %r13d
7141        xorl	%ecx, %edx
7142        movl	%r15d, %eax
7143        addl	%r13d, %r9d
7144        xorl	%r14d, %eax
7145        andl	%eax, %ebx
7146        addl	%edx, %r13d
7147        xorl	%r15d, %ebx
7148        rorxl	$6, %r9d, %edx
7149        rorxl	$11, %r9d, %ecx
7150        addl	%ebx, %r13d
7151        addl	44(%rsp), %r12d
7152        movl	%r10d, %ebx
7153        xorl	%edx, %ecx
7154        xorl	%r11d, %ebx
7155        rorxl	$25, %r9d, %edx
7156        xorl	%ecx, %edx
7157        andl	%r9d, %ebx
7158        addl	%edx, %r12d
7159        rorxl	$2, %r13d, %edx
7160        rorxl	$13, %r13d, %ecx
7161        xorl	%r11d, %ebx
7162        xorl	%edx, %ecx
7163        rorxl	$22, %r13d, %edx
7164        addl	%ebx, %r12d
7165        xorl	%ecx, %edx
7166        movl	%r14d, %ebx
7167        addl	%r12d, %r8d
7168        xorl	%r13d, %ebx
7169        andl	%ebx, %eax
7170        addl	%edx, %r12d
7171        xorl	%r14d, %eax
7172        # rnd_all_4: 3-6
7173        rorxl	$6, %r8d, %edx
7174        rorxl	$11, %r8d, %ecx
7175        addl	%eax, %r12d
7176        addl	48(%rsp), %r11d
7177        movl	%r9d, %eax
7178        xorl	%edx, %ecx
7179        xorl	%r10d, %eax
7180        rorxl	$25, %r8d, %edx
7181        xorl	%ecx, %edx
7182        andl	%r8d, %eax
7183        addl	%edx, %r11d
7184        rorxl	$2, %r12d, %edx
7185        rorxl	$13, %r12d, %ecx
7186        xorl	%r10d, %eax
7187        xorl	%edx, %ecx
7188        rorxl	$22, %r12d, %edx
7189        addl	%eax, %r11d
7190        xorl	%ecx, %edx
7191        movl	%r13d, %eax
7192        addl	%r11d, %r15d
7193        xorl	%r12d, %eax
7194        andl	%eax, %ebx
7195        addl	%edx, %r11d
7196        xorl	%r13d, %ebx
7197        rorxl	$6, %r15d, %edx
7198        rorxl	$11, %r15d, %ecx
7199        addl	%ebx, %r11d
7200        addl	52(%rsp), %r10d
7201        movl	%r8d, %ebx
7202        xorl	%edx, %ecx
7203        xorl	%r9d, %ebx
7204        rorxl	$25, %r15d, %edx
7205        xorl	%ecx, %edx
7206        andl	%r15d, %ebx
7207        addl	%edx, %r10d
7208        rorxl	$2, %r11d, %edx
7209        rorxl	$13, %r11d, %ecx
7210        xorl	%r9d, %ebx
7211        xorl	%edx, %ecx
7212        rorxl	$22, %r11d, %edx
7213        addl	%ebx, %r10d
7214        xorl	%ecx, %edx
7215        movl	%r12d, %ebx
7216        addl	%r10d, %r14d
7217        xorl	%r11d, %ebx
7218        andl	%ebx, %eax
7219        addl	%edx, %r10d
7220        xorl	%r12d, %eax
7221        rorxl	$6, %r14d, %edx
7222        rorxl	$11, %r14d, %ecx
7223        addl	%eax, %r10d
7224        addl	56(%rsp), %r9d
7225        movl	%r15d, %eax
7226        xorl	%edx, %ecx
7227        xorl	%r8d, %eax
7228        rorxl	$25, %r14d, %edx
7229        xorl	%ecx, %edx
7230        andl	%r14d, %eax
7231        addl	%edx, %r9d
7232        rorxl	$2, %r10d, %edx
7233        rorxl	$13, %r10d, %ecx
7234        xorl	%r8d, %eax
7235        xorl	%edx, %ecx
7236        rorxl	$22, %r10d, %edx
7237        addl	%eax, %r9d
7238        xorl	%ecx, %edx
7239        movl	%r11d, %eax
7240        addl	%r9d, %r13d
7241        xorl	%r10d, %eax
7242        andl	%eax, %ebx
7243        addl	%edx, %r9d
7244        xorl	%r11d, %ebx
7245        rorxl	$6, %r13d, %edx
7246        rorxl	$11, %r13d, %ecx
7247        addl	%ebx, %r9d
7248        addl	60(%rsp), %r8d
7249        movl	%r14d, %ebx
7250        xorl	%edx, %ecx
7251        xorl	%r15d, %ebx
7252        rorxl	$25, %r13d, %edx
7253        xorl	%ecx, %edx
7254        andl	%r13d, %ebx
7255        addl	%edx, %r8d
7256        rorxl	$2, %r9d, %edx
7257        rorxl	$13, %r9d, %ecx
7258        xorl	%r15d, %ebx
7259        xorl	%edx, %ecx
7260        rorxl	$22, %r9d, %edx
7261        addl	%ebx, %r8d
7262        xorl	%ecx, %edx
7263        movl	%r10d, %ebx
7264        addl	%r8d, %r12d
7265        xorl	%r9d, %ebx
7266        andl	%ebx, %eax
7267        addl	%edx, %r8d
7268        xorl	%r10d, %eax
7269        addl	%eax, %r8d
7270        addl	%r8d, (%rdi)
7271        addl	%r9d, 4(%rdi)
7272        addl	%r10d, 8(%rdi)
7273        addl	%r11d, 12(%rdi)
7274        addl	%r12d, 16(%rdi)
7275        addl	%r13d, 20(%rdi)
7276        addl	%r14d, 24(%rdi)
7277        addl	%r15d, 28(%rdi)
7278        xorq	%rax, %rax
7279        vzeroupper
7280        addq	$0x40, %rsp
7281        popq	%r15
7282        popq	%r14
7283        popq	%r13
7284        popq	%r12
7285        popq	%rbx
7286        repz retq
7287#ifndef __APPLE__
7288.size	Transform_Sha256_AVX1_RORX,.-Transform_Sha256_AVX1_RORX
7289#endif /* __APPLE__ */
7290#ifndef __APPLE__
7291.text
7292.globl	Transform_Sha256_AVX1_RORX_Len
7293.type	Transform_Sha256_AVX1_RORX_Len,@function
7294.align	16
7295Transform_Sha256_AVX1_RORX_Len:
7296#else
7297.section	__TEXT,__text
7298.globl	_Transform_Sha256_AVX1_RORX_Len
7299.p2align	4
7300_Transform_Sha256_AVX1_RORX_Len:
7301#endif /* __APPLE__ */
7302        pushq	%rbx
7303        pushq	%r12
7304        pushq	%r13
7305        pushq	%r14
7306        pushq	%r15
7307        pushq	%rbp
7308        movq	%rsi, %rbp
7309        movq	%rdx, %rsi
7310        subq	$0x40, %rsp
7311        vmovdqa	L_avx1_rorx_sha256_flip_mask(%rip), %xmm13
7312        vmovdqa	L_avx1_rorx_sha256_shuf_00BA(%rip), %xmm11
7313        vmovdqa	L_avx1_rorx_sha256_shuf_DC00(%rip), %xmm12
7314        movl	(%rdi), %r8d
7315        movl	4(%rdi), %r9d
7316        movl	8(%rdi), %r10d
7317        movl	12(%rdi), %r11d
7318        movl	16(%rdi), %r12d
7319        movl	20(%rdi), %r13d
7320        movl	24(%rdi), %r14d
7321        movl	28(%rdi), %r15d
7322        # Start of loop processing a block
7323L_sha256_len_avx1_len_rorx_start:
7324        # X0, X1, X2, X3 = W[0..15]
7325        vmovdqu	(%rbp), %xmm0
7326        vmovdqu	16(%rbp), %xmm1
7327        vpshufb	%xmm13, %xmm0, %xmm0
7328        vpshufb	%xmm13, %xmm1, %xmm1
7329        vmovdqu	32(%rbp), %xmm2
7330        vmovdqu	48(%rbp), %xmm3
7331        vpshufb	%xmm13, %xmm2, %xmm2
7332        vpshufb	%xmm13, %xmm3, %xmm3
7333        # set_w_k_xfer_4: 0
7334        vpaddd	0+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
7335        vpaddd	16+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
7336        vmovdqu	%xmm4, (%rsp)
7337        vmovdqu	%xmm5, 16(%rsp)
7338        vpaddd	32+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
7339        vpaddd	48+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
7340        vmovdqu	%xmm6, 32(%rsp)
7341        vmovdqu	%xmm7, 48(%rsp)
7342        movl	%r9d, %ebx
7343        rorxl	$6, %r12d, %edx
7344        xorl	%r10d, %ebx
7345        # msg_sched: 0-3
7346        # rnd_0: 0 - 0
7347        movl	%r13d, %eax
7348        rorxl	$11, %r12d, %ecx
7349        addl	(%rsp), %r15d
7350        vpalignr	$4, %xmm2, %xmm3, %xmm4
7351        vpalignr	$4, %xmm0, %xmm1, %xmm5
7352        # rnd_0: 1 - 2
7353        xorl	%edx, %ecx
7354        xorl	%r14d, %eax
7355        rorxl	$25, %r12d, %edx
7356        andl	%r12d, %eax
7357        xorl	%ecx, %edx
7358        rorxl	$13, %r8d, %ecx
7359        vpsrld	$7, %xmm5, %xmm6
7360        vpslld	$25, %xmm5, %xmm7
7361        # rnd_0: 3 - 4
7362        addl	%edx, %r15d
7363        rorxl	$2, %r8d, %edx
7364        xorl	%r14d, %eax
7365        xorl	%edx, %ecx
7366        rorxl	$22, %r8d, %edx
7367        addl	%eax, %r15d
7368        vpsrld	$3, %xmm5, %xmm8
7369        vpor	%xmm6, %xmm7, %xmm7
7370        # rnd_0: 5 - 7
7371        xorl	%ecx, %edx
7372        movl	%r9d, %eax
7373        addl	%r15d, %r11d
7374        xorl	%r8d, %eax
7375        addl	%edx, %r15d
7376        andl	%eax, %ebx
7377        xorl	%r9d, %ebx
7378        rorxl	$6, %r11d, %edx
7379        addl	%ebx, %r15d
7380        # rnd_1: 0 - 0
7381        movl	%r12d, %ebx
7382        rorxl	$11, %r11d, %ecx
7383        addl	4(%rsp), %r14d
7384        vpsrld	$18, %xmm5, %xmm6
7385        # rnd_1: 1 - 1
7386        xorl	%edx, %ecx
7387        xorl	%r13d, %ebx
7388        rorxl	$25, %r11d, %edx
7389        vpslld	$14, %xmm5, %xmm5
7390        # rnd_1: 2 - 2
7391        andl	%r11d, %ebx
7392        xorl	%ecx, %edx
7393        rorxl	$13, %r15d, %ecx
7394        vpxor	%xmm5, %xmm7, %xmm7
7395        # rnd_1: 3 - 3
7396        addl	%edx, %r14d
7397        rorxl	$2, %r15d, %edx
7398        xorl	%r13d, %ebx
7399        vpxor	%xmm6, %xmm7, %xmm7
7400        # rnd_1: 4 - 4
7401        xorl	%edx, %ecx
7402        rorxl	$22, %r15d, %edx
7403        addl	%ebx, %r14d
7404        vpshufd	$0xfa, %xmm3, %xmm6
7405        # rnd_1: 5 - 5
7406        xorl	%ecx, %edx
7407        movl	%r8d, %ebx
7408        addl	%r14d, %r10d
7409        vpxor	%xmm8, %xmm7, %xmm5
7410        # rnd_1: 6 - 6
7411        xorl	%r15d, %ebx
7412        addl	%edx, %r14d
7413        andl	%ebx, %eax
7414        vpsrld	$10, %xmm6, %xmm8
7415        # rnd_1: 7 - 7
7416        xorl	%r8d, %eax
7417        rorxl	$6, %r10d, %edx
7418        addl	%eax, %r14d
7419        # rnd_0: 0 - 0
7420        movl	%r11d, %eax
7421        rorxl	$11, %r10d, %ecx
7422        addl	8(%rsp), %r13d
7423        vpsrlq	$19, %xmm6, %xmm7
7424        # rnd_0: 1 - 1
7425        xorl	%edx, %ecx
7426        xorl	%r12d, %eax
7427        rorxl	$25, %r10d, %edx
7428        vpsrlq	$0x11, %xmm6, %xmm6
7429        vpaddd	%xmm0, %xmm4, %xmm4
7430        # rnd_0: 2 - 2
7431        andl	%r10d, %eax
7432        xorl	%ecx, %edx
7433        rorxl	$13, %r14d, %ecx
7434        vpaddd	%xmm5, %xmm4, %xmm4
7435        # rnd_0: 3 - 3
7436        addl	%edx, %r13d
7437        rorxl	$2, %r14d, %edx
7438        xorl	%r12d, %eax
7439        vpxor	%xmm7, %xmm6, %xmm6
7440        # rnd_0: 4 - 4
7441        xorl	%edx, %ecx
7442        rorxl	$22, %r14d, %edx
7443        addl	%eax, %r13d
7444        vpxor	%xmm6, %xmm8, %xmm8
7445        # rnd_0: 5 - 5
7446        xorl	%ecx, %edx
7447        movl	%r15d, %eax
7448        addl	%r13d, %r9d
7449        vpshufb	%xmm11, %xmm8, %xmm8
7450        # rnd_0: 6 - 6
7451        xorl	%r14d, %eax
7452        addl	%edx, %r13d
7453        andl	%eax, %ebx
7454        vpaddd	%xmm8, %xmm4, %xmm4
7455        # rnd_0: 7 - 7
7456        xorl	%r15d, %ebx
7457        rorxl	$6, %r9d, %edx
7458        addl	%ebx, %r13d
7459        # rnd_1: 0 - 0
7460        movl	%r10d, %ebx
7461        rorxl	$11, %r9d, %ecx
7462        addl	12(%rsp), %r12d
7463        vpshufd	$0x50, %xmm4, %xmm6
7464        # rnd_1: 1 - 1
7465        xorl	%edx, %ecx
7466        xorl	%r11d, %ebx
7467        rorxl	$25, %r9d, %edx
7468        vpsrld	$10, %xmm6, %xmm9
7469        # rnd_1: 2 - 2
7470        andl	%r9d, %ebx
7471        xorl	%ecx, %edx
7472        rorxl	$13, %r13d, %ecx
7473        vpsrlq	$19, %xmm6, %xmm7
7474        # rnd_1: 3 - 3
7475        addl	%edx, %r12d
7476        rorxl	$2, %r13d, %edx
7477        xorl	%r11d, %ebx
7478        vpsrlq	$0x11, %xmm6, %xmm6
7479        # rnd_1: 4 - 4
7480        xorl	%edx, %ecx
7481        rorxl	$22, %r13d, %edx
7482        addl	%ebx, %r12d
7483        vpxor	%xmm7, %xmm6, %xmm6
7484        # rnd_1: 5 - 5
7485        xorl	%ecx, %edx
7486        movl	%r14d, %ebx
7487        addl	%r12d, %r8d
7488        vpxor	%xmm6, %xmm9, %xmm9
7489        # rnd_1: 6 - 6
7490        xorl	%r13d, %ebx
7491        addl	%edx, %r12d
7492        andl	%ebx, %eax
7493        vpshufb	%xmm12, %xmm9, %xmm9
7494        # rnd_1: 7 - 7
7495        xorl	%r14d, %eax
7496        rorxl	$6, %r8d, %edx
7497        addl	%eax, %r12d
7498        vpaddd	%xmm4, %xmm9, %xmm0
7499        # msg_sched done: 0-3
7500        # msg_sched: 4-7
7501        # rnd_0: 0 - 0
7502        movl	%r9d, %eax
7503        rorxl	$11, %r8d, %ecx
7504        addl	16(%rsp), %r11d
7505        vpalignr	$4, %xmm3, %xmm0, %xmm4
7506        vpalignr	$4, %xmm1, %xmm2, %xmm5
7507        # rnd_0: 1 - 2
7508        xorl	%edx, %ecx
7509        xorl	%r10d, %eax
7510        rorxl	$25, %r8d, %edx
7511        andl	%r8d, %eax
7512        xorl	%ecx, %edx
7513        rorxl	$13, %r12d, %ecx
7514        vpsrld	$7, %xmm5, %xmm6
7515        vpslld	$25, %xmm5, %xmm7
7516        # rnd_0: 3 - 4
7517        addl	%edx, %r11d
7518        rorxl	$2, %r12d, %edx
7519        xorl	%r10d, %eax
7520        xorl	%edx, %ecx
7521        rorxl	$22, %r12d, %edx
7522        addl	%eax, %r11d
7523        vpsrld	$3, %xmm5, %xmm8
7524        vpor	%xmm6, %xmm7, %xmm7
7525        # rnd_0: 5 - 7
7526        xorl	%ecx, %edx
7527        movl	%r13d, %eax
7528        addl	%r11d, %r15d
7529        xorl	%r12d, %eax
7530        addl	%edx, %r11d
7531        andl	%eax, %ebx
7532        xorl	%r13d, %ebx
7533        rorxl	$6, %r15d, %edx
7534        addl	%ebx, %r11d
7535        # rnd_1: 0 - 0
7536        movl	%r8d, %ebx
7537        rorxl	$11, %r15d, %ecx
7538        addl	20(%rsp), %r10d
7539        vpsrld	$18, %xmm5, %xmm6
7540        # rnd_1: 1 - 1
7541        xorl	%edx, %ecx
7542        xorl	%r9d, %ebx
7543        rorxl	$25, %r15d, %edx
7544        vpslld	$14, %xmm5, %xmm5
7545        # rnd_1: 2 - 2
7546        andl	%r15d, %ebx
7547        xorl	%ecx, %edx
7548        rorxl	$13, %r11d, %ecx
7549        vpxor	%xmm5, %xmm7, %xmm7
7550        # rnd_1: 3 - 3
7551        addl	%edx, %r10d
7552        rorxl	$2, %r11d, %edx
7553        xorl	%r9d, %ebx
7554        vpxor	%xmm6, %xmm7, %xmm7
7555        # rnd_1: 4 - 4
7556        xorl	%edx, %ecx
7557        rorxl	$22, %r11d, %edx
7558        addl	%ebx, %r10d
7559        vpshufd	$0xfa, %xmm0, %xmm6
7560        # rnd_1: 5 - 5
7561        xorl	%ecx, %edx
7562        movl	%r12d, %ebx
7563        addl	%r10d, %r14d
7564        vpxor	%xmm8, %xmm7, %xmm5
7565        # rnd_1: 6 - 6
7566        xorl	%r11d, %ebx
7567        addl	%edx, %r10d
7568        andl	%ebx, %eax
7569        vpsrld	$10, %xmm6, %xmm8
7570        # rnd_1: 7 - 7
7571        xorl	%r12d, %eax
7572        rorxl	$6, %r14d, %edx
7573        addl	%eax, %r10d
7574        # rnd_0: 0 - 0
7575        movl	%r15d, %eax
7576        rorxl	$11, %r14d, %ecx
7577        addl	24(%rsp), %r9d
7578        vpsrlq	$19, %xmm6, %xmm7
7579        # rnd_0: 1 - 1
7580        xorl	%edx, %ecx
7581        xorl	%r8d, %eax
7582        rorxl	$25, %r14d, %edx
7583        vpsrlq	$0x11, %xmm6, %xmm6
7584        vpaddd	%xmm1, %xmm4, %xmm4
7585        # rnd_0: 2 - 2
7586        andl	%r14d, %eax
7587        xorl	%ecx, %edx
7588        rorxl	$13, %r10d, %ecx
7589        vpaddd	%xmm5, %xmm4, %xmm4
7590        # rnd_0: 3 - 3
7591        addl	%edx, %r9d
7592        rorxl	$2, %r10d, %edx
7593        xorl	%r8d, %eax
7594        vpxor	%xmm7, %xmm6, %xmm6
7595        # rnd_0: 4 - 4
7596        xorl	%edx, %ecx
7597        rorxl	$22, %r10d, %edx
7598        addl	%eax, %r9d
7599        vpxor	%xmm6, %xmm8, %xmm8
7600        # rnd_0: 5 - 5
7601        xorl	%ecx, %edx
7602        movl	%r11d, %eax
7603        addl	%r9d, %r13d
7604        vpshufb	%xmm11, %xmm8, %xmm8
7605        # rnd_0: 6 - 6
7606        xorl	%r10d, %eax
7607        addl	%edx, %r9d
7608        andl	%eax, %ebx
7609        vpaddd	%xmm8, %xmm4, %xmm4
7610        # rnd_0: 7 - 7
7611        xorl	%r11d, %ebx
7612        rorxl	$6, %r13d, %edx
7613        addl	%ebx, %r9d
7614        # rnd_1: 0 - 0
7615        movl	%r14d, %ebx
7616        rorxl	$11, %r13d, %ecx
7617        addl	28(%rsp), %r8d
7618        vpshufd	$0x50, %xmm4, %xmm6
7619        # rnd_1: 1 - 1
7620        xorl	%edx, %ecx
7621        xorl	%r15d, %ebx
7622        rorxl	$25, %r13d, %edx
7623        vpsrld	$10, %xmm6, %xmm9
7624        # rnd_1: 2 - 2
7625        andl	%r13d, %ebx
7626        xorl	%ecx, %edx
7627        rorxl	$13, %r9d, %ecx
7628        vpsrlq	$19, %xmm6, %xmm7
7629        # rnd_1: 3 - 3
7630        addl	%edx, %r8d
7631        rorxl	$2, %r9d, %edx
7632        xorl	%r15d, %ebx
7633        vpsrlq	$0x11, %xmm6, %xmm6
7634        # rnd_1: 4 - 4
7635        xorl	%edx, %ecx
7636        rorxl	$22, %r9d, %edx
7637        addl	%ebx, %r8d
7638        vpxor	%xmm7, %xmm6, %xmm6
7639        # rnd_1: 5 - 5
7640        xorl	%ecx, %edx
7641        movl	%r10d, %ebx
7642        addl	%r8d, %r12d
7643        vpxor	%xmm6, %xmm9, %xmm9
7644        # rnd_1: 6 - 6
7645        xorl	%r9d, %ebx
7646        addl	%edx, %r8d
7647        andl	%ebx, %eax
7648        vpshufb	%xmm12, %xmm9, %xmm9
7649        # rnd_1: 7 - 7
7650        xorl	%r10d, %eax
7651        rorxl	$6, %r12d, %edx
7652        addl	%eax, %r8d
7653        vpaddd	%xmm4, %xmm9, %xmm1
7654        # msg_sched done: 4-7
7655        # msg_sched: 8-11
7656        # rnd_0: 0 - 0
7657        movl	%r13d, %eax
7658        rorxl	$11, %r12d, %ecx
7659        addl	32(%rsp), %r15d
7660        vpalignr	$4, %xmm0, %xmm1, %xmm4
7661        vpalignr	$4, %xmm2, %xmm3, %xmm5
7662        # rnd_0: 1 - 2
7663        xorl	%edx, %ecx
7664        xorl	%r14d, %eax
7665        rorxl	$25, %r12d, %edx
7666        andl	%r12d, %eax
7667        xorl	%ecx, %edx
7668        rorxl	$13, %r8d, %ecx
7669        vpsrld	$7, %xmm5, %xmm6
7670        vpslld	$25, %xmm5, %xmm7
7671        # rnd_0: 3 - 4
7672        addl	%edx, %r15d
7673        rorxl	$2, %r8d, %edx
7674        xorl	%r14d, %eax
7675        xorl	%edx, %ecx
7676        rorxl	$22, %r8d, %edx
7677        addl	%eax, %r15d
7678        vpsrld	$3, %xmm5, %xmm8
7679        vpor	%xmm6, %xmm7, %xmm7
7680        # rnd_0: 5 - 7
7681        xorl	%ecx, %edx
7682        movl	%r9d, %eax
7683        addl	%r15d, %r11d
7684        xorl	%r8d, %eax
7685        addl	%edx, %r15d
7686        andl	%eax, %ebx
7687        xorl	%r9d, %ebx
7688        rorxl	$6, %r11d, %edx
7689        addl	%ebx, %r15d
7690        # rnd_1: 0 - 0
7691        movl	%r12d, %ebx
7692        rorxl	$11, %r11d, %ecx
7693        addl	36(%rsp), %r14d
7694        vpsrld	$18, %xmm5, %xmm6
7695        # rnd_1: 1 - 1
7696        xorl	%edx, %ecx
7697        xorl	%r13d, %ebx
7698        rorxl	$25, %r11d, %edx
7699        vpslld	$14, %xmm5, %xmm5
7700        # rnd_1: 2 - 2
7701        andl	%r11d, %ebx
7702        xorl	%ecx, %edx
7703        rorxl	$13, %r15d, %ecx
7704        vpxor	%xmm5, %xmm7, %xmm7
7705        # rnd_1: 3 - 3
7706        addl	%edx, %r14d
7707        rorxl	$2, %r15d, %edx
7708        xorl	%r13d, %ebx
7709        vpxor	%xmm6, %xmm7, %xmm7
7710        # rnd_1: 4 - 4
7711        xorl	%edx, %ecx
7712        rorxl	$22, %r15d, %edx
7713        addl	%ebx, %r14d
7714        vpshufd	$0xfa, %xmm1, %xmm6
7715        # rnd_1: 5 - 5
7716        xorl	%ecx, %edx
7717        movl	%r8d, %ebx
7718        addl	%r14d, %r10d
7719        vpxor	%xmm8, %xmm7, %xmm5
7720        # rnd_1: 6 - 6
7721        xorl	%r15d, %ebx
7722        addl	%edx, %r14d
7723        andl	%ebx, %eax
7724        vpsrld	$10, %xmm6, %xmm8
7725        # rnd_1: 7 - 7
7726        xorl	%r8d, %eax
7727        rorxl	$6, %r10d, %edx
7728        addl	%eax, %r14d
7729        # rnd_0: 0 - 0
7730        movl	%r11d, %eax
7731        rorxl	$11, %r10d, %ecx
7732        addl	40(%rsp), %r13d
7733        vpsrlq	$19, %xmm6, %xmm7
7734        # rnd_0: 1 - 1
7735        xorl	%edx, %ecx
7736        xorl	%r12d, %eax
7737        rorxl	$25, %r10d, %edx
7738        vpsrlq	$0x11, %xmm6, %xmm6
7739        vpaddd	%xmm2, %xmm4, %xmm4
7740        # rnd_0: 2 - 2
7741        andl	%r10d, %eax
7742        xorl	%ecx, %edx
7743        rorxl	$13, %r14d, %ecx
7744        vpaddd	%xmm5, %xmm4, %xmm4
7745        # rnd_0: 3 - 3
7746        addl	%edx, %r13d
7747        rorxl	$2, %r14d, %edx
7748        xorl	%r12d, %eax
7749        vpxor	%xmm7, %xmm6, %xmm6
7750        # rnd_0: 4 - 4
7751        xorl	%edx, %ecx
7752        rorxl	$22, %r14d, %edx
7753        addl	%eax, %r13d
7754        vpxor	%xmm6, %xmm8, %xmm8
7755        # rnd_0: 5 - 5
7756        xorl	%ecx, %edx
7757        movl	%r15d, %eax
7758        addl	%r13d, %r9d
7759        vpshufb	%xmm11, %xmm8, %xmm8
7760        # rnd_0: 6 - 6
7761        xorl	%r14d, %eax
7762        addl	%edx, %r13d
7763        andl	%eax, %ebx
7764        vpaddd	%xmm8, %xmm4, %xmm4
7765        # rnd_0: 7 - 7
7766        xorl	%r15d, %ebx
7767        rorxl	$6, %r9d, %edx
7768        addl	%ebx, %r13d
7769        # rnd_1: 0 - 0
7770        movl	%r10d, %ebx
7771        rorxl	$11, %r9d, %ecx
7772        addl	44(%rsp), %r12d
7773        vpshufd	$0x50, %xmm4, %xmm6
7774        # rnd_1: 1 - 1
7775        xorl	%edx, %ecx
7776        xorl	%r11d, %ebx
7777        rorxl	$25, %r9d, %edx
7778        vpsrld	$10, %xmm6, %xmm9
7779        # rnd_1: 2 - 2
7780        andl	%r9d, %ebx
7781        xorl	%ecx, %edx
7782        rorxl	$13, %r13d, %ecx
7783        vpsrlq	$19, %xmm6, %xmm7
7784        # rnd_1: 3 - 3
7785        addl	%edx, %r12d
7786        rorxl	$2, %r13d, %edx
7787        xorl	%r11d, %ebx
7788        vpsrlq	$0x11, %xmm6, %xmm6
7789        # rnd_1: 4 - 4
7790        xorl	%edx, %ecx
7791        rorxl	$22, %r13d, %edx
7792        addl	%ebx, %r12d
7793        vpxor	%xmm7, %xmm6, %xmm6
7794        # rnd_1: 5 - 5
7795        xorl	%ecx, %edx
7796        movl	%r14d, %ebx
7797        addl	%r12d, %r8d
7798        vpxor	%xmm6, %xmm9, %xmm9
7799        # rnd_1: 6 - 6
7800        xorl	%r13d, %ebx
7801        addl	%edx, %r12d
7802        andl	%ebx, %eax
7803        vpshufb	%xmm12, %xmm9, %xmm9
7804        # rnd_1: 7 - 7
7805        xorl	%r14d, %eax
7806        rorxl	$6, %r8d, %edx
7807        addl	%eax, %r12d
7808        vpaddd	%xmm4, %xmm9, %xmm2
7809        # msg_sched done: 8-11
7810        # msg_sched: 12-15
7811        # rnd_0: 0 - 0
7812        movl	%r9d, %eax
7813        rorxl	$11, %r8d, %ecx
7814        addl	48(%rsp), %r11d
7815        vpalignr	$4, %xmm1, %xmm2, %xmm4
7816        vpalignr	$4, %xmm3, %xmm0, %xmm5
7817        # rnd_0: 1 - 2
7818        xorl	%edx, %ecx
7819        xorl	%r10d, %eax
7820        rorxl	$25, %r8d, %edx
7821        andl	%r8d, %eax
7822        xorl	%ecx, %edx
7823        rorxl	$13, %r12d, %ecx
7824        vpsrld	$7, %xmm5, %xmm6
7825        vpslld	$25, %xmm5, %xmm7
7826        # rnd_0: 3 - 4
7827        addl	%edx, %r11d
7828        rorxl	$2, %r12d, %edx
7829        xorl	%r10d, %eax
7830        xorl	%edx, %ecx
7831        rorxl	$22, %r12d, %edx
7832        addl	%eax, %r11d
7833        vpsrld	$3, %xmm5, %xmm8
7834        vpor	%xmm6, %xmm7, %xmm7
7835        # rnd_0: 5 - 7
7836        xorl	%ecx, %edx
7837        movl	%r13d, %eax
7838        addl	%r11d, %r15d
7839        xorl	%r12d, %eax
7840        addl	%edx, %r11d
7841        andl	%eax, %ebx
7842        xorl	%r13d, %ebx
7843        rorxl	$6, %r15d, %edx
7844        addl	%ebx, %r11d
7845        # rnd_1: 0 - 0
7846        movl	%r8d, %ebx
7847        rorxl	$11, %r15d, %ecx
7848        addl	52(%rsp), %r10d
7849        vpsrld	$18, %xmm5, %xmm6
7850        # rnd_1: 1 - 1
7851        xorl	%edx, %ecx
7852        xorl	%r9d, %ebx
7853        rorxl	$25, %r15d, %edx
7854        vpslld	$14, %xmm5, %xmm5
7855        # rnd_1: 2 - 2
7856        andl	%r15d, %ebx
7857        xorl	%ecx, %edx
7858        rorxl	$13, %r11d, %ecx
7859        vpxor	%xmm5, %xmm7, %xmm7
7860        # rnd_1: 3 - 3
7861        addl	%edx, %r10d
7862        rorxl	$2, %r11d, %edx
7863        xorl	%r9d, %ebx
7864        vpxor	%xmm6, %xmm7, %xmm7
7865        # rnd_1: 4 - 4
7866        xorl	%edx, %ecx
7867        rorxl	$22, %r11d, %edx
7868        addl	%ebx, %r10d
7869        vpshufd	$0xfa, %xmm2, %xmm6
7870        # rnd_1: 5 - 5
7871        xorl	%ecx, %edx
7872        movl	%r12d, %ebx
7873        addl	%r10d, %r14d
7874        vpxor	%xmm8, %xmm7, %xmm5
7875        # rnd_1: 6 - 6
7876        xorl	%r11d, %ebx
7877        addl	%edx, %r10d
7878        andl	%ebx, %eax
7879        vpsrld	$10, %xmm6, %xmm8
7880        # rnd_1: 7 - 7
7881        xorl	%r12d, %eax
7882        rorxl	$6, %r14d, %edx
7883        addl	%eax, %r10d
7884        # rnd_0: 0 - 0
7885        movl	%r15d, %eax
7886        rorxl	$11, %r14d, %ecx
7887        addl	56(%rsp), %r9d
7888        vpsrlq	$19, %xmm6, %xmm7
7889        # rnd_0: 1 - 1
7890        xorl	%edx, %ecx
7891        xorl	%r8d, %eax
7892        rorxl	$25, %r14d, %edx
7893        vpsrlq	$0x11, %xmm6, %xmm6
7894        vpaddd	%xmm3, %xmm4, %xmm4
7895        # rnd_0: 2 - 2
7896        andl	%r14d, %eax
7897        xorl	%ecx, %edx
7898        rorxl	$13, %r10d, %ecx
7899        vpaddd	%xmm5, %xmm4, %xmm4
7900        # rnd_0: 3 - 3
7901        addl	%edx, %r9d
7902        rorxl	$2, %r10d, %edx
7903        xorl	%r8d, %eax
7904        vpxor	%xmm7, %xmm6, %xmm6
7905        # rnd_0: 4 - 4
7906        xorl	%edx, %ecx
7907        rorxl	$22, %r10d, %edx
7908        addl	%eax, %r9d
7909        vpxor	%xmm6, %xmm8, %xmm8
7910        # rnd_0: 5 - 5
7911        xorl	%ecx, %edx
7912        movl	%r11d, %eax
7913        addl	%r9d, %r13d
7914        vpshufb	%xmm11, %xmm8, %xmm8
7915        # rnd_0: 6 - 6
7916        xorl	%r10d, %eax
7917        addl	%edx, %r9d
7918        andl	%eax, %ebx
7919        vpaddd	%xmm8, %xmm4, %xmm4
7920        # rnd_0: 7 - 7
7921        xorl	%r11d, %ebx
7922        rorxl	$6, %r13d, %edx
7923        addl	%ebx, %r9d
7924        # rnd_1: 0 - 0
7925        movl	%r14d, %ebx
7926        rorxl	$11, %r13d, %ecx
7927        addl	60(%rsp), %r8d
7928        vpshufd	$0x50, %xmm4, %xmm6
7929        # rnd_1: 1 - 1
7930        xorl	%edx, %ecx
7931        xorl	%r15d, %ebx
7932        rorxl	$25, %r13d, %edx
7933        vpsrld	$10, %xmm6, %xmm9
7934        # rnd_1: 2 - 2
7935        andl	%r13d, %ebx
7936        xorl	%ecx, %edx
7937        rorxl	$13, %r9d, %ecx
7938        vpsrlq	$19, %xmm6, %xmm7
7939        # rnd_1: 3 - 3
7940        addl	%edx, %r8d
7941        rorxl	$2, %r9d, %edx
7942        xorl	%r15d, %ebx
7943        vpsrlq	$0x11, %xmm6, %xmm6
7944        # rnd_1: 4 - 4
7945        xorl	%edx, %ecx
7946        rorxl	$22, %r9d, %edx
7947        addl	%ebx, %r8d
7948        vpxor	%xmm7, %xmm6, %xmm6
7949        # rnd_1: 5 - 5
7950        xorl	%ecx, %edx
7951        movl	%r10d, %ebx
7952        addl	%r8d, %r12d
7953        vpxor	%xmm6, %xmm9, %xmm9
7954        # rnd_1: 6 - 6
7955        xorl	%r9d, %ebx
7956        addl	%edx, %r8d
7957        andl	%ebx, %eax
7958        vpshufb	%xmm12, %xmm9, %xmm9
7959        # rnd_1: 7 - 7
7960        xorl	%r10d, %eax
7961        rorxl	$6, %r12d, %edx
7962        addl	%eax, %r8d
7963        vpaddd	%xmm4, %xmm9, %xmm3
7964        # msg_sched done: 12-15
7965        # set_w_k_xfer_4: 4
7966        vpaddd	64+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
7967        vpaddd	80+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
7968        vmovdqu	%xmm4, (%rsp)
7969        vmovdqu	%xmm5, 16(%rsp)
7970        vpaddd	96+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
7971        vpaddd	112+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
7972        vmovdqu	%xmm6, 32(%rsp)
7973        vmovdqu	%xmm7, 48(%rsp)
7974        # msg_sched: 0-3
7975        # rnd_0: 0 - 0
7976        movl	%r13d, %eax
7977        rorxl	$11, %r12d, %ecx
7978        addl	(%rsp), %r15d
7979        vpalignr	$4, %xmm2, %xmm3, %xmm4
7980        vpalignr	$4, %xmm0, %xmm1, %xmm5
7981        # rnd_0: 1 - 2
7982        xorl	%edx, %ecx
7983        xorl	%r14d, %eax
7984        rorxl	$25, %r12d, %edx
7985        andl	%r12d, %eax
7986        xorl	%ecx, %edx
7987        rorxl	$13, %r8d, %ecx
7988        vpsrld	$7, %xmm5, %xmm6
7989        vpslld	$25, %xmm5, %xmm7
7990        # rnd_0: 3 - 4
7991        addl	%edx, %r15d
7992        rorxl	$2, %r8d, %edx
7993        xorl	%r14d, %eax
7994        xorl	%edx, %ecx
7995        rorxl	$22, %r8d, %edx
7996        addl	%eax, %r15d
7997        vpsrld	$3, %xmm5, %xmm8
7998        vpor	%xmm6, %xmm7, %xmm7
7999        # rnd_0: 5 - 7
8000        xorl	%ecx, %edx
8001        movl	%r9d, %eax
8002        addl	%r15d, %r11d
8003        xorl	%r8d, %eax
8004        addl	%edx, %r15d
8005        andl	%eax, %ebx
8006        xorl	%r9d, %ebx
8007        rorxl	$6, %r11d, %edx
8008        addl	%ebx, %r15d
8009        # rnd_1: 0 - 0
8010        movl	%r12d, %ebx
8011        rorxl	$11, %r11d, %ecx
8012        addl	4(%rsp), %r14d
8013        vpsrld	$18, %xmm5, %xmm6
8014        # rnd_1: 1 - 1
8015        xorl	%edx, %ecx
8016        xorl	%r13d, %ebx
8017        rorxl	$25, %r11d, %edx
8018        vpslld	$14, %xmm5, %xmm5
8019        # rnd_1: 2 - 2
8020        andl	%r11d, %ebx
8021        xorl	%ecx, %edx
8022        rorxl	$13, %r15d, %ecx
8023        vpxor	%xmm5, %xmm7, %xmm7
8024        # rnd_1: 3 - 3
8025        addl	%edx, %r14d
8026        rorxl	$2, %r15d, %edx
8027        xorl	%r13d, %ebx
8028        vpxor	%xmm6, %xmm7, %xmm7
8029        # rnd_1: 4 - 4
8030        xorl	%edx, %ecx
8031        rorxl	$22, %r15d, %edx
8032        addl	%ebx, %r14d
8033        vpshufd	$0xfa, %xmm3, %xmm6
8034        # rnd_1: 5 - 5
8035        xorl	%ecx, %edx
8036        movl	%r8d, %ebx
8037        addl	%r14d, %r10d
8038        vpxor	%xmm8, %xmm7, %xmm5
8039        # rnd_1: 6 - 6
8040        xorl	%r15d, %ebx
8041        addl	%edx, %r14d
8042        andl	%ebx, %eax
8043        vpsrld	$10, %xmm6, %xmm8
8044        # rnd_1: 7 - 7
8045        xorl	%r8d, %eax
8046        rorxl	$6, %r10d, %edx
8047        addl	%eax, %r14d
8048        # rnd_0: 0 - 0
8049        movl	%r11d, %eax
8050        rorxl	$11, %r10d, %ecx
8051        addl	8(%rsp), %r13d
8052        vpsrlq	$19, %xmm6, %xmm7
8053        # rnd_0: 1 - 1
8054        xorl	%edx, %ecx
8055        xorl	%r12d, %eax
8056        rorxl	$25, %r10d, %edx
8057        vpsrlq	$0x11, %xmm6, %xmm6
8058        vpaddd	%xmm0, %xmm4, %xmm4
8059        # rnd_0: 2 - 2
8060        andl	%r10d, %eax
8061        xorl	%ecx, %edx
8062        rorxl	$13, %r14d, %ecx
8063        vpaddd	%xmm5, %xmm4, %xmm4
8064        # rnd_0: 3 - 3
8065        addl	%edx, %r13d
8066        rorxl	$2, %r14d, %edx
8067        xorl	%r12d, %eax
8068        vpxor	%xmm7, %xmm6, %xmm6
8069        # rnd_0: 4 - 4
8070        xorl	%edx, %ecx
8071        rorxl	$22, %r14d, %edx
8072        addl	%eax, %r13d
8073        vpxor	%xmm6, %xmm8, %xmm8
8074        # rnd_0: 5 - 5
8075        xorl	%ecx, %edx
8076        movl	%r15d, %eax
8077        addl	%r13d, %r9d
8078        vpshufb	%xmm11, %xmm8, %xmm8
8079        # rnd_0: 6 - 6
8080        xorl	%r14d, %eax
8081        addl	%edx, %r13d
8082        andl	%eax, %ebx
8083        vpaddd	%xmm8, %xmm4, %xmm4
8084        # rnd_0: 7 - 7
8085        xorl	%r15d, %ebx
8086        rorxl	$6, %r9d, %edx
8087        addl	%ebx, %r13d
8088        # rnd_1: 0 - 0
8089        movl	%r10d, %ebx
8090        rorxl	$11, %r9d, %ecx
8091        addl	12(%rsp), %r12d
8092        vpshufd	$0x50, %xmm4, %xmm6
8093        # rnd_1: 1 - 1
8094        xorl	%edx, %ecx
8095        xorl	%r11d, %ebx
8096        rorxl	$25, %r9d, %edx
8097        vpsrld	$10, %xmm6, %xmm9
8098        # rnd_1: 2 - 2
8099        andl	%r9d, %ebx
8100        xorl	%ecx, %edx
8101        rorxl	$13, %r13d, %ecx
8102        vpsrlq	$19, %xmm6, %xmm7
8103        # rnd_1: 3 - 3
8104        addl	%edx, %r12d
8105        rorxl	$2, %r13d, %edx
8106        xorl	%r11d, %ebx
8107        vpsrlq	$0x11, %xmm6, %xmm6
8108        # rnd_1: 4 - 4
8109        xorl	%edx, %ecx
8110        rorxl	$22, %r13d, %edx
8111        addl	%ebx, %r12d
8112        vpxor	%xmm7, %xmm6, %xmm6
8113        # rnd_1: 5 - 5
8114        xorl	%ecx, %edx
8115        movl	%r14d, %ebx
8116        addl	%r12d, %r8d
8117        vpxor	%xmm6, %xmm9, %xmm9
8118        # rnd_1: 6 - 6
8119        xorl	%r13d, %ebx
8120        addl	%edx, %r12d
8121        andl	%ebx, %eax
8122        vpshufb	%xmm12, %xmm9, %xmm9
8123        # rnd_1: 7 - 7
8124        xorl	%r14d, %eax
8125        rorxl	$6, %r8d, %edx
8126        addl	%eax, %r12d
8127        vpaddd	%xmm4, %xmm9, %xmm0
8128        # msg_sched done: 0-3
8129        # msg_sched: 4-7
8130        # rnd_0: 0 - 0
8131        movl	%r9d, %eax
8132        rorxl	$11, %r8d, %ecx
8133        addl	16(%rsp), %r11d
8134        vpalignr	$4, %xmm3, %xmm0, %xmm4
8135        vpalignr	$4, %xmm1, %xmm2, %xmm5
8136        # rnd_0: 1 - 2
8137        xorl	%edx, %ecx
8138        xorl	%r10d, %eax
8139        rorxl	$25, %r8d, %edx
8140        andl	%r8d, %eax
8141        xorl	%ecx, %edx
8142        rorxl	$13, %r12d, %ecx
8143        vpsrld	$7, %xmm5, %xmm6
8144        vpslld	$25, %xmm5, %xmm7
8145        # rnd_0: 3 - 4
8146        addl	%edx, %r11d
8147        rorxl	$2, %r12d, %edx
8148        xorl	%r10d, %eax
8149        xorl	%edx, %ecx
8150        rorxl	$22, %r12d, %edx
8151        addl	%eax, %r11d
8152        vpsrld	$3, %xmm5, %xmm8
8153        vpor	%xmm6, %xmm7, %xmm7
8154        # rnd_0: 5 - 7
8155        xorl	%ecx, %edx
8156        movl	%r13d, %eax
8157        addl	%r11d, %r15d
8158        xorl	%r12d, %eax
8159        addl	%edx, %r11d
8160        andl	%eax, %ebx
8161        xorl	%r13d, %ebx
8162        rorxl	$6, %r15d, %edx
8163        addl	%ebx, %r11d
8164        # rnd_1: 0 - 0
8165        movl	%r8d, %ebx
8166        rorxl	$11, %r15d, %ecx
8167        addl	20(%rsp), %r10d
8168        vpsrld	$18, %xmm5, %xmm6
8169        # rnd_1: 1 - 1
8170        xorl	%edx, %ecx
8171        xorl	%r9d, %ebx
8172        rorxl	$25, %r15d, %edx
8173        vpslld	$14, %xmm5, %xmm5
8174        # rnd_1: 2 - 2
8175        andl	%r15d, %ebx
8176        xorl	%ecx, %edx
8177        rorxl	$13, %r11d, %ecx
8178        vpxor	%xmm5, %xmm7, %xmm7
8179        # rnd_1: 3 - 3
8180        addl	%edx, %r10d
8181        rorxl	$2, %r11d, %edx
8182        xorl	%r9d, %ebx
8183        vpxor	%xmm6, %xmm7, %xmm7
8184        # rnd_1: 4 - 4
8185        xorl	%edx, %ecx
8186        rorxl	$22, %r11d, %edx
8187        addl	%ebx, %r10d
8188        vpshufd	$0xfa, %xmm0, %xmm6
8189        # rnd_1: 5 - 5
8190        xorl	%ecx, %edx
8191        movl	%r12d, %ebx
8192        addl	%r10d, %r14d
8193        vpxor	%xmm8, %xmm7, %xmm5
8194        # rnd_1: 6 - 6
8195        xorl	%r11d, %ebx
8196        addl	%edx, %r10d
8197        andl	%ebx, %eax
8198        vpsrld	$10, %xmm6, %xmm8
8199        # rnd_1: 7 - 7
8200        xorl	%r12d, %eax
8201        rorxl	$6, %r14d, %edx
8202        addl	%eax, %r10d
8203        # rnd_0: 0 - 0
8204        movl	%r15d, %eax
8205        rorxl	$11, %r14d, %ecx
8206        addl	24(%rsp), %r9d
8207        vpsrlq	$19, %xmm6, %xmm7
8208        # rnd_0: 1 - 1
8209        xorl	%edx, %ecx
8210        xorl	%r8d, %eax
8211        rorxl	$25, %r14d, %edx
8212        vpsrlq	$0x11, %xmm6, %xmm6
8213        vpaddd	%xmm1, %xmm4, %xmm4
8214        # rnd_0: 2 - 2
8215        andl	%r14d, %eax
8216        xorl	%ecx, %edx
8217        rorxl	$13, %r10d, %ecx
8218        vpaddd	%xmm5, %xmm4, %xmm4
8219        # rnd_0: 3 - 3
8220        addl	%edx, %r9d
8221        rorxl	$2, %r10d, %edx
8222        xorl	%r8d, %eax
8223        vpxor	%xmm7, %xmm6, %xmm6
8224        # rnd_0: 4 - 4
8225        xorl	%edx, %ecx
8226        rorxl	$22, %r10d, %edx
8227        addl	%eax, %r9d
8228        vpxor	%xmm6, %xmm8, %xmm8
8229        # rnd_0: 5 - 5
8230        xorl	%ecx, %edx
8231        movl	%r11d, %eax
8232        addl	%r9d, %r13d
8233        vpshufb	%xmm11, %xmm8, %xmm8
8234        # rnd_0: 6 - 6
8235        xorl	%r10d, %eax
8236        addl	%edx, %r9d
8237        andl	%eax, %ebx
8238        vpaddd	%xmm8, %xmm4, %xmm4
8239        # rnd_0: 7 - 7
8240        xorl	%r11d, %ebx
8241        rorxl	$6, %r13d, %edx
8242        addl	%ebx, %r9d
8243        # rnd_1: 0 - 0
8244        movl	%r14d, %ebx
8245        rorxl	$11, %r13d, %ecx
8246        addl	28(%rsp), %r8d
8247        vpshufd	$0x50, %xmm4, %xmm6
8248        # rnd_1: 1 - 1
8249        xorl	%edx, %ecx
8250        xorl	%r15d, %ebx
8251        rorxl	$25, %r13d, %edx
8252        vpsrld	$10, %xmm6, %xmm9
8253        # rnd_1: 2 - 2
8254        andl	%r13d, %ebx
8255        xorl	%ecx, %edx
8256        rorxl	$13, %r9d, %ecx
8257        vpsrlq	$19, %xmm6, %xmm7
8258        # rnd_1: 3 - 3
8259        addl	%edx, %r8d
8260        rorxl	$2, %r9d, %edx
8261        xorl	%r15d, %ebx
8262        vpsrlq	$0x11, %xmm6, %xmm6
8263        # rnd_1: 4 - 4
8264        xorl	%edx, %ecx
8265        rorxl	$22, %r9d, %edx
8266        addl	%ebx, %r8d
8267        vpxor	%xmm7, %xmm6, %xmm6
8268        # rnd_1: 5 - 5
8269        xorl	%ecx, %edx
8270        movl	%r10d, %ebx
8271        addl	%r8d, %r12d
8272        vpxor	%xmm6, %xmm9, %xmm9
8273        # rnd_1: 6 - 6
8274        xorl	%r9d, %ebx
8275        addl	%edx, %r8d
8276        andl	%ebx, %eax
8277        vpshufb	%xmm12, %xmm9, %xmm9
8278        # rnd_1: 7 - 7
8279        xorl	%r10d, %eax
8280        rorxl	$6, %r12d, %edx
8281        addl	%eax, %r8d
8282        vpaddd	%xmm4, %xmm9, %xmm1
8283        # msg_sched done: 4-7
8284        # msg_sched: 8-11
8285        # rnd_0: 0 - 0
8286        movl	%r13d, %eax
8287        rorxl	$11, %r12d, %ecx
8288        addl	32(%rsp), %r15d
8289        vpalignr	$4, %xmm0, %xmm1, %xmm4
8290        vpalignr	$4, %xmm2, %xmm3, %xmm5
8291        # rnd_0: 1 - 2
8292        xorl	%edx, %ecx
8293        xorl	%r14d, %eax
8294        rorxl	$25, %r12d, %edx
8295        andl	%r12d, %eax
8296        xorl	%ecx, %edx
8297        rorxl	$13, %r8d, %ecx
8298        vpsrld	$7, %xmm5, %xmm6
8299        vpslld	$25, %xmm5, %xmm7
8300        # rnd_0: 3 - 4
8301        addl	%edx, %r15d
8302        rorxl	$2, %r8d, %edx
8303        xorl	%r14d, %eax
8304        xorl	%edx, %ecx
8305        rorxl	$22, %r8d, %edx
8306        addl	%eax, %r15d
8307        vpsrld	$3, %xmm5, %xmm8
8308        vpor	%xmm6, %xmm7, %xmm7
8309        # rnd_0: 5 - 7
8310        xorl	%ecx, %edx
8311        movl	%r9d, %eax
8312        addl	%r15d, %r11d
8313        xorl	%r8d, %eax
8314        addl	%edx, %r15d
8315        andl	%eax, %ebx
8316        xorl	%r9d, %ebx
8317        rorxl	$6, %r11d, %edx
8318        addl	%ebx, %r15d
8319        # rnd_1: 0 - 0
8320        movl	%r12d, %ebx
8321        rorxl	$11, %r11d, %ecx
8322        addl	36(%rsp), %r14d
8323        vpsrld	$18, %xmm5, %xmm6
8324        # rnd_1: 1 - 1
8325        xorl	%edx, %ecx
8326        xorl	%r13d, %ebx
8327        rorxl	$25, %r11d, %edx
8328        vpslld	$14, %xmm5, %xmm5
8329        # rnd_1: 2 - 2
8330        andl	%r11d, %ebx
8331        xorl	%ecx, %edx
8332        rorxl	$13, %r15d, %ecx
8333        vpxor	%xmm5, %xmm7, %xmm7
8334        # rnd_1: 3 - 3
8335        addl	%edx, %r14d
8336        rorxl	$2, %r15d, %edx
8337        xorl	%r13d, %ebx
8338        vpxor	%xmm6, %xmm7, %xmm7
8339        # rnd_1: 4 - 4
8340        xorl	%edx, %ecx
8341        rorxl	$22, %r15d, %edx
8342        addl	%ebx, %r14d
8343        vpshufd	$0xfa, %xmm1, %xmm6
8344        # rnd_1: 5 - 5
8345        xorl	%ecx, %edx
8346        movl	%r8d, %ebx
8347        addl	%r14d, %r10d
8348        vpxor	%xmm8, %xmm7, %xmm5
8349        # rnd_1: 6 - 6
8350        xorl	%r15d, %ebx
8351        addl	%edx, %r14d
8352        andl	%ebx, %eax
8353        vpsrld	$10, %xmm6, %xmm8
8354        # rnd_1: 7 - 7
8355        xorl	%r8d, %eax
8356        rorxl	$6, %r10d, %edx
8357        addl	%eax, %r14d
8358        # rnd_0: 0 - 0
8359        movl	%r11d, %eax
8360        rorxl	$11, %r10d, %ecx
8361        addl	40(%rsp), %r13d
8362        vpsrlq	$19, %xmm6, %xmm7
8363        # rnd_0: 1 - 1
8364        xorl	%edx, %ecx
8365        xorl	%r12d, %eax
8366        rorxl	$25, %r10d, %edx
8367        vpsrlq	$0x11, %xmm6, %xmm6
8368        vpaddd	%xmm2, %xmm4, %xmm4
8369        # rnd_0: 2 - 2
8370        andl	%r10d, %eax
8371        xorl	%ecx, %edx
8372        rorxl	$13, %r14d, %ecx
8373        vpaddd	%xmm5, %xmm4, %xmm4
8374        # rnd_0: 3 - 3
8375        addl	%edx, %r13d
8376        rorxl	$2, %r14d, %edx
8377        xorl	%r12d, %eax
8378        vpxor	%xmm7, %xmm6, %xmm6
8379        # rnd_0: 4 - 4
8380        xorl	%edx, %ecx
8381        rorxl	$22, %r14d, %edx
8382        addl	%eax, %r13d
8383        vpxor	%xmm6, %xmm8, %xmm8
8384        # rnd_0: 5 - 5
8385        xorl	%ecx, %edx
8386        movl	%r15d, %eax
8387        addl	%r13d, %r9d
8388        vpshufb	%xmm11, %xmm8, %xmm8
8389        # rnd_0: 6 - 6
8390        xorl	%r14d, %eax
8391        addl	%edx, %r13d
8392        andl	%eax, %ebx
8393        vpaddd	%xmm8, %xmm4, %xmm4
8394        # rnd_0: 7 - 7
8395        xorl	%r15d, %ebx
8396        rorxl	$6, %r9d, %edx
8397        addl	%ebx, %r13d
8398        # rnd_1: 0 - 0
8399        movl	%r10d, %ebx
8400        rorxl	$11, %r9d, %ecx
8401        addl	44(%rsp), %r12d
8402        vpshufd	$0x50, %xmm4, %xmm6
8403        # rnd_1: 1 - 1
8404        xorl	%edx, %ecx
8405        xorl	%r11d, %ebx
8406        rorxl	$25, %r9d, %edx
8407        vpsrld	$10, %xmm6, %xmm9
8408        # rnd_1: 2 - 2
8409        andl	%r9d, %ebx
8410        xorl	%ecx, %edx
8411        rorxl	$13, %r13d, %ecx
8412        vpsrlq	$19, %xmm6, %xmm7
8413        # rnd_1: 3 - 3
8414        addl	%edx, %r12d
8415        rorxl	$2, %r13d, %edx
8416        xorl	%r11d, %ebx
8417        vpsrlq	$0x11, %xmm6, %xmm6
8418        # rnd_1: 4 - 4
8419        xorl	%edx, %ecx
8420        rorxl	$22, %r13d, %edx
8421        addl	%ebx, %r12d
8422        vpxor	%xmm7, %xmm6, %xmm6
8423        # rnd_1: 5 - 5
8424        xorl	%ecx, %edx
8425        movl	%r14d, %ebx
8426        addl	%r12d, %r8d
8427        vpxor	%xmm6, %xmm9, %xmm9
8428        # rnd_1: 6 - 6
8429        xorl	%r13d, %ebx
8430        addl	%edx, %r12d
8431        andl	%ebx, %eax
8432        vpshufb	%xmm12, %xmm9, %xmm9
8433        # rnd_1: 7 - 7
8434        xorl	%r14d, %eax
8435        rorxl	$6, %r8d, %edx
8436        addl	%eax, %r12d
8437        vpaddd	%xmm4, %xmm9, %xmm2
8438        # msg_sched done: 8-11
8439        # msg_sched: 12-15
8440        # rnd_0: 0 - 0
8441        movl	%r9d, %eax
8442        rorxl	$11, %r8d, %ecx
8443        addl	48(%rsp), %r11d
8444        vpalignr	$4, %xmm1, %xmm2, %xmm4
8445        vpalignr	$4, %xmm3, %xmm0, %xmm5
8446        # rnd_0: 1 - 2
8447        xorl	%edx, %ecx
8448        xorl	%r10d, %eax
8449        rorxl	$25, %r8d, %edx
8450        andl	%r8d, %eax
8451        xorl	%ecx, %edx
8452        rorxl	$13, %r12d, %ecx
8453        vpsrld	$7, %xmm5, %xmm6
8454        vpslld	$25, %xmm5, %xmm7
8455        # rnd_0: 3 - 4
8456        addl	%edx, %r11d
8457        rorxl	$2, %r12d, %edx
8458        xorl	%r10d, %eax
8459        xorl	%edx, %ecx
8460        rorxl	$22, %r12d, %edx
8461        addl	%eax, %r11d
8462        vpsrld	$3, %xmm5, %xmm8
8463        vpor	%xmm6, %xmm7, %xmm7
8464        # rnd_0: 5 - 7
8465        xorl	%ecx, %edx
8466        movl	%r13d, %eax
8467        addl	%r11d, %r15d
8468        xorl	%r12d, %eax
8469        addl	%edx, %r11d
8470        andl	%eax, %ebx
8471        xorl	%r13d, %ebx
8472        rorxl	$6, %r15d, %edx
8473        addl	%ebx, %r11d
8474        # rnd_1: 0 - 0
8475        movl	%r8d, %ebx
8476        rorxl	$11, %r15d, %ecx
8477        addl	52(%rsp), %r10d
8478        vpsrld	$18, %xmm5, %xmm6
8479        # rnd_1: 1 - 1
8480        xorl	%edx, %ecx
8481        xorl	%r9d, %ebx
8482        rorxl	$25, %r15d, %edx
8483        vpslld	$14, %xmm5, %xmm5
8484        # rnd_1: 2 - 2
8485        andl	%r15d, %ebx
8486        xorl	%ecx, %edx
8487        rorxl	$13, %r11d, %ecx
8488        vpxor	%xmm5, %xmm7, %xmm7
8489        # rnd_1: 3 - 3
8490        addl	%edx, %r10d
8491        rorxl	$2, %r11d, %edx
8492        xorl	%r9d, %ebx
8493        vpxor	%xmm6, %xmm7, %xmm7
8494        # rnd_1: 4 - 4
8495        xorl	%edx, %ecx
8496        rorxl	$22, %r11d, %edx
8497        addl	%ebx, %r10d
8498        vpshufd	$0xfa, %xmm2, %xmm6
8499        # rnd_1: 5 - 5
8500        xorl	%ecx, %edx
8501        movl	%r12d, %ebx
8502        addl	%r10d, %r14d
8503        vpxor	%xmm8, %xmm7, %xmm5
8504        # rnd_1: 6 - 6
8505        xorl	%r11d, %ebx
8506        addl	%edx, %r10d
8507        andl	%ebx, %eax
8508        vpsrld	$10, %xmm6, %xmm8
8509        # rnd_1: 7 - 7
8510        xorl	%r12d, %eax
8511        rorxl	$6, %r14d, %edx
8512        addl	%eax, %r10d
8513        # rnd_0: 0 - 0
8514        movl	%r15d, %eax
8515        rorxl	$11, %r14d, %ecx
8516        addl	56(%rsp), %r9d
8517        vpsrlq	$19, %xmm6, %xmm7
8518        # rnd_0: 1 - 1
8519        xorl	%edx, %ecx
8520        xorl	%r8d, %eax
8521        rorxl	$25, %r14d, %edx
8522        vpsrlq	$0x11, %xmm6, %xmm6
8523        vpaddd	%xmm3, %xmm4, %xmm4
8524        # rnd_0: 2 - 2
8525        andl	%r14d, %eax
8526        xorl	%ecx, %edx
8527        rorxl	$13, %r10d, %ecx
8528        vpaddd	%xmm5, %xmm4, %xmm4
8529        # rnd_0: 3 - 3
8530        addl	%edx, %r9d
8531        rorxl	$2, %r10d, %edx
8532        xorl	%r8d, %eax
8533        vpxor	%xmm7, %xmm6, %xmm6
8534        # rnd_0: 4 - 4
8535        xorl	%edx, %ecx
8536        rorxl	$22, %r10d, %edx
8537        addl	%eax, %r9d
8538        vpxor	%xmm6, %xmm8, %xmm8
8539        # rnd_0: 5 - 5
8540        xorl	%ecx, %edx
8541        movl	%r11d, %eax
8542        addl	%r9d, %r13d
8543        vpshufb	%xmm11, %xmm8, %xmm8
8544        # rnd_0: 6 - 6
8545        xorl	%r10d, %eax
8546        addl	%edx, %r9d
8547        andl	%eax, %ebx
8548        vpaddd	%xmm8, %xmm4, %xmm4
8549        # rnd_0: 7 - 7
8550        xorl	%r11d, %ebx
8551        rorxl	$6, %r13d, %edx
8552        addl	%ebx, %r9d
8553        # rnd_1: 0 - 0
8554        movl	%r14d, %ebx
8555        rorxl	$11, %r13d, %ecx
8556        addl	60(%rsp), %r8d
8557        vpshufd	$0x50, %xmm4, %xmm6
8558        # rnd_1: 1 - 1
8559        xorl	%edx, %ecx
8560        xorl	%r15d, %ebx
8561        rorxl	$25, %r13d, %edx
8562        vpsrld	$10, %xmm6, %xmm9
8563        # rnd_1: 2 - 2
8564        andl	%r13d, %ebx
8565        xorl	%ecx, %edx
8566        rorxl	$13, %r9d, %ecx
8567        vpsrlq	$19, %xmm6, %xmm7
8568        # rnd_1: 3 - 3
8569        addl	%edx, %r8d
8570        rorxl	$2, %r9d, %edx
8571        xorl	%r15d, %ebx
8572        vpsrlq	$0x11, %xmm6, %xmm6
8573        # rnd_1: 4 - 4
8574        xorl	%edx, %ecx
8575        rorxl	$22, %r9d, %edx
8576        addl	%ebx, %r8d
8577        vpxor	%xmm7, %xmm6, %xmm6
8578        # rnd_1: 5 - 5
8579        xorl	%ecx, %edx
8580        movl	%r10d, %ebx
8581        addl	%r8d, %r12d
8582        vpxor	%xmm6, %xmm9, %xmm9
8583        # rnd_1: 6 - 6
8584        xorl	%r9d, %ebx
8585        addl	%edx, %r8d
8586        andl	%ebx, %eax
8587        vpshufb	%xmm12, %xmm9, %xmm9
8588        # rnd_1: 7 - 7
8589        xorl	%r10d, %eax
8590        rorxl	$6, %r12d, %edx
8591        addl	%eax, %r8d
8592        vpaddd	%xmm4, %xmm9, %xmm3
8593        # msg_sched done: 12-15
8594        # set_w_k_xfer_4: 8
8595        vpaddd	128+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
8596        vpaddd	144+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
8597        vmovdqu	%xmm4, (%rsp)
8598        vmovdqu	%xmm5, 16(%rsp)
8599        vpaddd	160+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
8600        vpaddd	176+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
8601        vmovdqu	%xmm6, 32(%rsp)
8602        vmovdqu	%xmm7, 48(%rsp)
8603        # msg_sched: 0-3
8604        # rnd_0: 0 - 0
8605        movl	%r13d, %eax
8606        rorxl	$11, %r12d, %ecx
8607        addl	(%rsp), %r15d
8608        vpalignr	$4, %xmm2, %xmm3, %xmm4
8609        vpalignr	$4, %xmm0, %xmm1, %xmm5
8610        # rnd_0: 1 - 2
8611        xorl	%edx, %ecx
8612        xorl	%r14d, %eax
8613        rorxl	$25, %r12d, %edx
8614        andl	%r12d, %eax
8615        xorl	%ecx, %edx
8616        rorxl	$13, %r8d, %ecx
8617        vpsrld	$7, %xmm5, %xmm6
8618        vpslld	$25, %xmm5, %xmm7
8619        # rnd_0: 3 - 4
8620        addl	%edx, %r15d
8621        rorxl	$2, %r8d, %edx
8622        xorl	%r14d, %eax
8623        xorl	%edx, %ecx
8624        rorxl	$22, %r8d, %edx
8625        addl	%eax, %r15d
8626        vpsrld	$3, %xmm5, %xmm8
8627        vpor	%xmm6, %xmm7, %xmm7
8628        # rnd_0: 5 - 7
8629        xorl	%ecx, %edx
8630        movl	%r9d, %eax
8631        addl	%r15d, %r11d
8632        xorl	%r8d, %eax
8633        addl	%edx, %r15d
8634        andl	%eax, %ebx
8635        xorl	%r9d, %ebx
8636        rorxl	$6, %r11d, %edx
8637        addl	%ebx, %r15d
8638        # rnd_1: 0 - 0
8639        movl	%r12d, %ebx
8640        rorxl	$11, %r11d, %ecx
8641        addl	4(%rsp), %r14d
8642        vpsrld	$18, %xmm5, %xmm6
8643        # rnd_1: 1 - 1
8644        xorl	%edx, %ecx
8645        xorl	%r13d, %ebx
8646        rorxl	$25, %r11d, %edx
8647        vpslld	$14, %xmm5, %xmm5
8648        # rnd_1: 2 - 2
8649        andl	%r11d, %ebx
8650        xorl	%ecx, %edx
8651        rorxl	$13, %r15d, %ecx
8652        vpxor	%xmm5, %xmm7, %xmm7
8653        # rnd_1: 3 - 3
8654        addl	%edx, %r14d
8655        rorxl	$2, %r15d, %edx
8656        xorl	%r13d, %ebx
8657        vpxor	%xmm6, %xmm7, %xmm7
8658        # rnd_1: 4 - 4
8659        xorl	%edx, %ecx
8660        rorxl	$22, %r15d, %edx
8661        addl	%ebx, %r14d
8662        vpshufd	$0xfa, %xmm3, %xmm6
8663        # rnd_1: 5 - 5
8664        xorl	%ecx, %edx
8665        movl	%r8d, %ebx
8666        addl	%r14d, %r10d
8667        vpxor	%xmm8, %xmm7, %xmm5
8668        # rnd_1: 6 - 6
8669        xorl	%r15d, %ebx
8670        addl	%edx, %r14d
8671        andl	%ebx, %eax
8672        vpsrld	$10, %xmm6, %xmm8
8673        # rnd_1: 7 - 7
8674        xorl	%r8d, %eax
8675        rorxl	$6, %r10d, %edx
8676        addl	%eax, %r14d
8677        # rnd_0: 0 - 0
8678        movl	%r11d, %eax
8679        rorxl	$11, %r10d, %ecx
8680        addl	8(%rsp), %r13d
8681        vpsrlq	$19, %xmm6, %xmm7
8682        # rnd_0: 1 - 1
8683        xorl	%edx, %ecx
8684        xorl	%r12d, %eax
8685        rorxl	$25, %r10d, %edx
8686        vpsrlq	$0x11, %xmm6, %xmm6
8687        vpaddd	%xmm0, %xmm4, %xmm4
8688        # rnd_0: 2 - 2
8689        andl	%r10d, %eax
8690        xorl	%ecx, %edx
8691        rorxl	$13, %r14d, %ecx
8692        vpaddd	%xmm5, %xmm4, %xmm4
8693        # rnd_0: 3 - 3
8694        addl	%edx, %r13d
8695        rorxl	$2, %r14d, %edx
8696        xorl	%r12d, %eax
8697        vpxor	%xmm7, %xmm6, %xmm6
8698        # rnd_0: 4 - 4
8699        xorl	%edx, %ecx
8700        rorxl	$22, %r14d, %edx
8701        addl	%eax, %r13d
8702        vpxor	%xmm6, %xmm8, %xmm8
8703        # rnd_0: 5 - 5
8704        xorl	%ecx, %edx
8705        movl	%r15d, %eax
8706        addl	%r13d, %r9d
8707        vpshufb	%xmm11, %xmm8, %xmm8
8708        # rnd_0: 6 - 6
8709        xorl	%r14d, %eax
8710        addl	%edx, %r13d
8711        andl	%eax, %ebx
8712        vpaddd	%xmm8, %xmm4, %xmm4
8713        # rnd_0: 7 - 7
8714        xorl	%r15d, %ebx
8715        rorxl	$6, %r9d, %edx
8716        addl	%ebx, %r13d
8717        # rnd_1: 0 - 0
8718        movl	%r10d, %ebx
8719        rorxl	$11, %r9d, %ecx
8720        addl	12(%rsp), %r12d
8721        vpshufd	$0x50, %xmm4, %xmm6
8722        # rnd_1: 1 - 1
8723        xorl	%edx, %ecx
8724        xorl	%r11d, %ebx
8725        rorxl	$25, %r9d, %edx
8726        vpsrld	$10, %xmm6, %xmm9
8727        # rnd_1: 2 - 2
8728        andl	%r9d, %ebx
8729        xorl	%ecx, %edx
8730        rorxl	$13, %r13d, %ecx
8731        vpsrlq	$19, %xmm6, %xmm7
8732        # rnd_1: 3 - 3
8733        addl	%edx, %r12d
8734        rorxl	$2, %r13d, %edx
8735        xorl	%r11d, %ebx
8736        vpsrlq	$0x11, %xmm6, %xmm6
8737        # rnd_1: 4 - 4
8738        xorl	%edx, %ecx
8739        rorxl	$22, %r13d, %edx
8740        addl	%ebx, %r12d
8741        vpxor	%xmm7, %xmm6, %xmm6
8742        # rnd_1: 5 - 5
8743        xorl	%ecx, %edx
8744        movl	%r14d, %ebx
8745        addl	%r12d, %r8d
8746        vpxor	%xmm6, %xmm9, %xmm9
8747        # rnd_1: 6 - 6
8748        xorl	%r13d, %ebx
8749        addl	%edx, %r12d
8750        andl	%ebx, %eax
8751        vpshufb	%xmm12, %xmm9, %xmm9
8752        # rnd_1: 7 - 7
8753        xorl	%r14d, %eax
8754        rorxl	$6, %r8d, %edx
8755        addl	%eax, %r12d
8756        vpaddd	%xmm4, %xmm9, %xmm0
8757        # msg_sched done: 0-3
8758        # msg_sched: 4-7
8759        # rnd_0: 0 - 0
8760        movl	%r9d, %eax
8761        rorxl	$11, %r8d, %ecx
8762        addl	16(%rsp), %r11d
8763        vpalignr	$4, %xmm3, %xmm0, %xmm4
8764        vpalignr	$4, %xmm1, %xmm2, %xmm5
8765        # rnd_0: 1 - 2
8766        xorl	%edx, %ecx
8767        xorl	%r10d, %eax
8768        rorxl	$25, %r8d, %edx
8769        andl	%r8d, %eax
8770        xorl	%ecx, %edx
8771        rorxl	$13, %r12d, %ecx
8772        vpsrld	$7, %xmm5, %xmm6
8773        vpslld	$25, %xmm5, %xmm7
8774        # rnd_0: 3 - 4
8775        addl	%edx, %r11d
8776        rorxl	$2, %r12d, %edx
8777        xorl	%r10d, %eax
8778        xorl	%edx, %ecx
8779        rorxl	$22, %r12d, %edx
8780        addl	%eax, %r11d
8781        vpsrld	$3, %xmm5, %xmm8
8782        vpor	%xmm6, %xmm7, %xmm7
8783        # rnd_0: 5 - 7
8784        xorl	%ecx, %edx
8785        movl	%r13d, %eax
8786        addl	%r11d, %r15d
8787        xorl	%r12d, %eax
8788        addl	%edx, %r11d
8789        andl	%eax, %ebx
8790        xorl	%r13d, %ebx
8791        rorxl	$6, %r15d, %edx
8792        addl	%ebx, %r11d
8793        # rnd_1: 0 - 0
8794        movl	%r8d, %ebx
8795        rorxl	$11, %r15d, %ecx
8796        addl	20(%rsp), %r10d
8797        vpsrld	$18, %xmm5, %xmm6
8798        # rnd_1: 1 - 1
8799        xorl	%edx, %ecx
8800        xorl	%r9d, %ebx
8801        rorxl	$25, %r15d, %edx
8802        vpslld	$14, %xmm5, %xmm5
8803        # rnd_1: 2 - 2
8804        andl	%r15d, %ebx
8805        xorl	%ecx, %edx
8806        rorxl	$13, %r11d, %ecx
8807        vpxor	%xmm5, %xmm7, %xmm7
8808        # rnd_1: 3 - 3
8809        addl	%edx, %r10d
8810        rorxl	$2, %r11d, %edx
8811        xorl	%r9d, %ebx
8812        vpxor	%xmm6, %xmm7, %xmm7
8813        # rnd_1: 4 - 4
8814        xorl	%edx, %ecx
8815        rorxl	$22, %r11d, %edx
8816        addl	%ebx, %r10d
8817        vpshufd	$0xfa, %xmm0, %xmm6
8818        # rnd_1: 5 - 5
8819        xorl	%ecx, %edx
8820        movl	%r12d, %ebx
8821        addl	%r10d, %r14d
8822        vpxor	%xmm8, %xmm7, %xmm5
8823        # rnd_1: 6 - 6
8824        xorl	%r11d, %ebx
8825        addl	%edx, %r10d
8826        andl	%ebx, %eax
8827        vpsrld	$10, %xmm6, %xmm8
8828        # rnd_1: 7 - 7
8829        xorl	%r12d, %eax
8830        rorxl	$6, %r14d, %edx
8831        addl	%eax, %r10d
8832        # rnd_0: 0 - 0
8833        movl	%r15d, %eax
8834        rorxl	$11, %r14d, %ecx
8835        addl	24(%rsp), %r9d
8836        vpsrlq	$19, %xmm6, %xmm7
8837        # rnd_0: 1 - 1
8838        xorl	%edx, %ecx
8839        xorl	%r8d, %eax
8840        rorxl	$25, %r14d, %edx
8841        vpsrlq	$0x11, %xmm6, %xmm6
8842        vpaddd	%xmm1, %xmm4, %xmm4
8843        # rnd_0: 2 - 2
8844        andl	%r14d, %eax
8845        xorl	%ecx, %edx
8846        rorxl	$13, %r10d, %ecx
8847        vpaddd	%xmm5, %xmm4, %xmm4
8848        # rnd_0: 3 - 3
8849        addl	%edx, %r9d
8850        rorxl	$2, %r10d, %edx
8851        xorl	%r8d, %eax
8852        vpxor	%xmm7, %xmm6, %xmm6
8853        # rnd_0: 4 - 4
8854        xorl	%edx, %ecx
8855        rorxl	$22, %r10d, %edx
8856        addl	%eax, %r9d
8857        vpxor	%xmm6, %xmm8, %xmm8
8858        # rnd_0: 5 - 5
8859        xorl	%ecx, %edx
8860        movl	%r11d, %eax
8861        addl	%r9d, %r13d
8862        vpshufb	%xmm11, %xmm8, %xmm8
8863        # rnd_0: 6 - 6
8864        xorl	%r10d, %eax
8865        addl	%edx, %r9d
8866        andl	%eax, %ebx
8867        vpaddd	%xmm8, %xmm4, %xmm4
8868        # rnd_0: 7 - 7
8869        xorl	%r11d, %ebx
8870        rorxl	$6, %r13d, %edx
8871        addl	%ebx, %r9d
8872        # rnd_1: 0 - 0
8873        movl	%r14d, %ebx
8874        rorxl	$11, %r13d, %ecx
8875        addl	28(%rsp), %r8d
8876        vpshufd	$0x50, %xmm4, %xmm6
8877        # rnd_1: 1 - 1
8878        xorl	%edx, %ecx
8879        xorl	%r15d, %ebx
8880        rorxl	$25, %r13d, %edx
8881        vpsrld	$10, %xmm6, %xmm9
8882        # rnd_1: 2 - 2
8883        andl	%r13d, %ebx
8884        xorl	%ecx, %edx
8885        rorxl	$13, %r9d, %ecx
8886        vpsrlq	$19, %xmm6, %xmm7
8887        # rnd_1: 3 - 3
8888        addl	%edx, %r8d
8889        rorxl	$2, %r9d, %edx
8890        xorl	%r15d, %ebx
8891        vpsrlq	$0x11, %xmm6, %xmm6
8892        # rnd_1: 4 - 4
8893        xorl	%edx, %ecx
8894        rorxl	$22, %r9d, %edx
8895        addl	%ebx, %r8d
8896        vpxor	%xmm7, %xmm6, %xmm6
8897        # rnd_1: 5 - 5
8898        xorl	%ecx, %edx
8899        movl	%r10d, %ebx
8900        addl	%r8d, %r12d
8901        vpxor	%xmm6, %xmm9, %xmm9
8902        # rnd_1: 6 - 6
8903        xorl	%r9d, %ebx
8904        addl	%edx, %r8d
8905        andl	%ebx, %eax
8906        vpshufb	%xmm12, %xmm9, %xmm9
8907        # rnd_1: 7 - 7
8908        xorl	%r10d, %eax
8909        rorxl	$6, %r12d, %edx
8910        addl	%eax, %r8d
8911        vpaddd	%xmm4, %xmm9, %xmm1
8912        # msg_sched done: 4-7
8913        # msg_sched: 8-11
8914        # rnd_0: 0 - 0
8915        movl	%r13d, %eax
8916        rorxl	$11, %r12d, %ecx
8917        addl	32(%rsp), %r15d
8918        vpalignr	$4, %xmm0, %xmm1, %xmm4
8919        vpalignr	$4, %xmm2, %xmm3, %xmm5
8920        # rnd_0: 1 - 2
8921        xorl	%edx, %ecx
8922        xorl	%r14d, %eax
8923        rorxl	$25, %r12d, %edx
8924        andl	%r12d, %eax
8925        xorl	%ecx, %edx
8926        rorxl	$13, %r8d, %ecx
8927        vpsrld	$7, %xmm5, %xmm6
8928        vpslld	$25, %xmm5, %xmm7
8929        # rnd_0: 3 - 4
8930        addl	%edx, %r15d
8931        rorxl	$2, %r8d, %edx
8932        xorl	%r14d, %eax
8933        xorl	%edx, %ecx
8934        rorxl	$22, %r8d, %edx
8935        addl	%eax, %r15d
8936        vpsrld	$3, %xmm5, %xmm8
8937        vpor	%xmm6, %xmm7, %xmm7
8938        # rnd_0: 5 - 7
8939        xorl	%ecx, %edx
8940        movl	%r9d, %eax
8941        addl	%r15d, %r11d
8942        xorl	%r8d, %eax
8943        addl	%edx, %r15d
8944        andl	%eax, %ebx
8945        xorl	%r9d, %ebx
8946        rorxl	$6, %r11d, %edx
8947        addl	%ebx, %r15d
8948        # rnd_1: 0 - 0
8949        movl	%r12d, %ebx
8950        rorxl	$11, %r11d, %ecx
8951        addl	36(%rsp), %r14d
8952        vpsrld	$18, %xmm5, %xmm6
8953        # rnd_1: 1 - 1
8954        xorl	%edx, %ecx
8955        xorl	%r13d, %ebx
8956        rorxl	$25, %r11d, %edx
8957        vpslld	$14, %xmm5, %xmm5
8958        # rnd_1: 2 - 2
8959        andl	%r11d, %ebx
8960        xorl	%ecx, %edx
8961        rorxl	$13, %r15d, %ecx
8962        vpxor	%xmm5, %xmm7, %xmm7
8963        # rnd_1: 3 - 3
8964        addl	%edx, %r14d
8965        rorxl	$2, %r15d, %edx
8966        xorl	%r13d, %ebx
8967        vpxor	%xmm6, %xmm7, %xmm7
8968        # rnd_1: 4 - 4
8969        xorl	%edx, %ecx
8970        rorxl	$22, %r15d, %edx
8971        addl	%ebx, %r14d
8972        vpshufd	$0xfa, %xmm1, %xmm6
8973        # rnd_1: 5 - 5
8974        xorl	%ecx, %edx
8975        movl	%r8d, %ebx
8976        addl	%r14d, %r10d
8977        vpxor	%xmm8, %xmm7, %xmm5
8978        # rnd_1: 6 - 6
8979        xorl	%r15d, %ebx
8980        addl	%edx, %r14d
8981        andl	%ebx, %eax
8982        vpsrld	$10, %xmm6, %xmm8
8983        # rnd_1: 7 - 7
8984        xorl	%r8d, %eax
8985        rorxl	$6, %r10d, %edx
8986        addl	%eax, %r14d
8987        # rnd_0: 0 - 0
8988        movl	%r11d, %eax
8989        rorxl	$11, %r10d, %ecx
8990        addl	40(%rsp), %r13d
8991        vpsrlq	$19, %xmm6, %xmm7
8992        # rnd_0: 1 - 1
8993        xorl	%edx, %ecx
8994        xorl	%r12d, %eax
8995        rorxl	$25, %r10d, %edx
8996        vpsrlq	$0x11, %xmm6, %xmm6
8997        vpaddd	%xmm2, %xmm4, %xmm4
8998        # rnd_0: 2 - 2
8999        andl	%r10d, %eax
9000        xorl	%ecx, %edx
9001        rorxl	$13, %r14d, %ecx
9002        vpaddd	%xmm5, %xmm4, %xmm4
9003        # rnd_0: 3 - 3
9004        addl	%edx, %r13d
9005        rorxl	$2, %r14d, %edx
9006        xorl	%r12d, %eax
9007        vpxor	%xmm7, %xmm6, %xmm6
9008        # rnd_0: 4 - 4
9009        xorl	%edx, %ecx
9010        rorxl	$22, %r14d, %edx
9011        addl	%eax, %r13d
9012        vpxor	%xmm6, %xmm8, %xmm8
9013        # rnd_0: 5 - 5
9014        xorl	%ecx, %edx
9015        movl	%r15d, %eax
9016        addl	%r13d, %r9d
9017        vpshufb	%xmm11, %xmm8, %xmm8
9018        # rnd_0: 6 - 6
9019        xorl	%r14d, %eax
9020        addl	%edx, %r13d
9021        andl	%eax, %ebx
9022        vpaddd	%xmm8, %xmm4, %xmm4
9023        # rnd_0: 7 - 7
9024        xorl	%r15d, %ebx
9025        rorxl	$6, %r9d, %edx
9026        addl	%ebx, %r13d
9027        # rnd_1: 0 - 0
9028        movl	%r10d, %ebx
9029        rorxl	$11, %r9d, %ecx
9030        addl	44(%rsp), %r12d
9031        vpshufd	$0x50, %xmm4, %xmm6
9032        # rnd_1: 1 - 1
9033        xorl	%edx, %ecx
9034        xorl	%r11d, %ebx
9035        rorxl	$25, %r9d, %edx
9036        vpsrld	$10, %xmm6, %xmm9
9037        # rnd_1: 2 - 2
9038        andl	%r9d, %ebx
9039        xorl	%ecx, %edx
9040        rorxl	$13, %r13d, %ecx
9041        vpsrlq	$19, %xmm6, %xmm7
9042        # rnd_1: 3 - 3
9043        addl	%edx, %r12d
9044        rorxl	$2, %r13d, %edx
9045        xorl	%r11d, %ebx
9046        vpsrlq	$0x11, %xmm6, %xmm6
9047        # rnd_1: 4 - 4
9048        xorl	%edx, %ecx
9049        rorxl	$22, %r13d, %edx
9050        addl	%ebx, %r12d
9051        vpxor	%xmm7, %xmm6, %xmm6
9052        # rnd_1: 5 - 5
9053        xorl	%ecx, %edx
9054        movl	%r14d, %ebx
9055        addl	%r12d, %r8d
9056        vpxor	%xmm6, %xmm9, %xmm9
9057        # rnd_1: 6 - 6
9058        xorl	%r13d, %ebx
9059        addl	%edx, %r12d
9060        andl	%ebx, %eax
9061        vpshufb	%xmm12, %xmm9, %xmm9
9062        # rnd_1: 7 - 7
9063        xorl	%r14d, %eax
9064        rorxl	$6, %r8d, %edx
9065        addl	%eax, %r12d
9066        vpaddd	%xmm4, %xmm9, %xmm2
9067        # msg_sched done: 8-11
9068        # msg_sched: 12-15
9069        # rnd_0: 0 - 0
9070        movl	%r9d, %eax
9071        rorxl	$11, %r8d, %ecx
9072        addl	48(%rsp), %r11d
9073        vpalignr	$4, %xmm1, %xmm2, %xmm4
9074        vpalignr	$4, %xmm3, %xmm0, %xmm5
9075        # rnd_0: 1 - 2
9076        xorl	%edx, %ecx
9077        xorl	%r10d, %eax
9078        rorxl	$25, %r8d, %edx
9079        andl	%r8d, %eax
9080        xorl	%ecx, %edx
9081        rorxl	$13, %r12d, %ecx
9082        vpsrld	$7, %xmm5, %xmm6
9083        vpslld	$25, %xmm5, %xmm7
9084        # rnd_0: 3 - 4
9085        addl	%edx, %r11d
9086        rorxl	$2, %r12d, %edx
9087        xorl	%r10d, %eax
9088        xorl	%edx, %ecx
9089        rorxl	$22, %r12d, %edx
9090        addl	%eax, %r11d
9091        vpsrld	$3, %xmm5, %xmm8
9092        vpor	%xmm6, %xmm7, %xmm7
9093        # rnd_0: 5 - 7
9094        xorl	%ecx, %edx
9095        movl	%r13d, %eax
9096        addl	%r11d, %r15d
9097        xorl	%r12d, %eax
9098        addl	%edx, %r11d
9099        andl	%eax, %ebx
9100        xorl	%r13d, %ebx
9101        rorxl	$6, %r15d, %edx
9102        addl	%ebx, %r11d
9103        # rnd_1: 0 - 0
9104        movl	%r8d, %ebx
9105        rorxl	$11, %r15d, %ecx
9106        addl	52(%rsp), %r10d
9107        vpsrld	$18, %xmm5, %xmm6
9108        # rnd_1: 1 - 1
9109        xorl	%edx, %ecx
9110        xorl	%r9d, %ebx
9111        rorxl	$25, %r15d, %edx
9112        vpslld	$14, %xmm5, %xmm5
9113        # rnd_1: 2 - 2
9114        andl	%r15d, %ebx
9115        xorl	%ecx, %edx
9116        rorxl	$13, %r11d, %ecx
9117        vpxor	%xmm5, %xmm7, %xmm7
9118        # rnd_1: 3 - 3
9119        addl	%edx, %r10d
9120        rorxl	$2, %r11d, %edx
9121        xorl	%r9d, %ebx
9122        vpxor	%xmm6, %xmm7, %xmm7
9123        # rnd_1: 4 - 4
9124        xorl	%edx, %ecx
9125        rorxl	$22, %r11d, %edx
9126        addl	%ebx, %r10d
9127        vpshufd	$0xfa, %xmm2, %xmm6
9128        # rnd_1: 5 - 5
9129        xorl	%ecx, %edx
9130        movl	%r12d, %ebx
9131        addl	%r10d, %r14d
9132        vpxor	%xmm8, %xmm7, %xmm5
9133        # rnd_1: 6 - 6
9134        xorl	%r11d, %ebx
9135        addl	%edx, %r10d
9136        andl	%ebx, %eax
9137        vpsrld	$10, %xmm6, %xmm8
9138        # rnd_1: 7 - 7
9139        xorl	%r12d, %eax
9140        rorxl	$6, %r14d, %edx
9141        addl	%eax, %r10d
9142        # rnd_0: 0 - 0
9143        movl	%r15d, %eax
9144        rorxl	$11, %r14d, %ecx
9145        addl	56(%rsp), %r9d
9146        vpsrlq	$19, %xmm6, %xmm7
9147        # rnd_0: 1 - 1
9148        xorl	%edx, %ecx
9149        xorl	%r8d, %eax
9150        rorxl	$25, %r14d, %edx
9151        vpsrlq	$0x11, %xmm6, %xmm6
9152        vpaddd	%xmm3, %xmm4, %xmm4
9153        # rnd_0: 2 - 2
9154        andl	%r14d, %eax
9155        xorl	%ecx, %edx
9156        rorxl	$13, %r10d, %ecx
9157        vpaddd	%xmm5, %xmm4, %xmm4
9158        # rnd_0: 3 - 3
9159        addl	%edx, %r9d
9160        rorxl	$2, %r10d, %edx
9161        xorl	%r8d, %eax
9162        vpxor	%xmm7, %xmm6, %xmm6
9163        # rnd_0: 4 - 4
9164        xorl	%edx, %ecx
9165        rorxl	$22, %r10d, %edx
9166        addl	%eax, %r9d
9167        vpxor	%xmm6, %xmm8, %xmm8
9168        # rnd_0: 5 - 5
9169        xorl	%ecx, %edx
9170        movl	%r11d, %eax
9171        addl	%r9d, %r13d
9172        vpshufb	%xmm11, %xmm8, %xmm8
9173        # rnd_0: 6 - 6
9174        xorl	%r10d, %eax
9175        addl	%edx, %r9d
9176        andl	%eax, %ebx
9177        vpaddd	%xmm8, %xmm4, %xmm4
9178        # rnd_0: 7 - 7
9179        xorl	%r11d, %ebx
9180        rorxl	$6, %r13d, %edx
9181        addl	%ebx, %r9d
9182        # rnd_1: 0 - 0
9183        movl	%r14d, %ebx
9184        rorxl	$11, %r13d, %ecx
9185        addl	60(%rsp), %r8d
9186        vpshufd	$0x50, %xmm4, %xmm6
9187        # rnd_1: 1 - 1
9188        xorl	%edx, %ecx
9189        xorl	%r15d, %ebx
9190        rorxl	$25, %r13d, %edx
9191        vpsrld	$10, %xmm6, %xmm9
9192        # rnd_1: 2 - 2
9193        andl	%r13d, %ebx
9194        xorl	%ecx, %edx
9195        rorxl	$13, %r9d, %ecx
9196        vpsrlq	$19, %xmm6, %xmm7
9197        # rnd_1: 3 - 3
9198        addl	%edx, %r8d
9199        rorxl	$2, %r9d, %edx
9200        xorl	%r15d, %ebx
9201        vpsrlq	$0x11, %xmm6, %xmm6
9202        # rnd_1: 4 - 4
9203        xorl	%edx, %ecx
9204        rorxl	$22, %r9d, %edx
9205        addl	%ebx, %r8d
9206        vpxor	%xmm7, %xmm6, %xmm6
9207        # rnd_1: 5 - 5
9208        xorl	%ecx, %edx
9209        movl	%r10d, %ebx
9210        addl	%r8d, %r12d
9211        vpxor	%xmm6, %xmm9, %xmm9
9212        # rnd_1: 6 - 6
9213        xorl	%r9d, %ebx
9214        addl	%edx, %r8d
9215        andl	%ebx, %eax
9216        vpshufb	%xmm12, %xmm9, %xmm9
9217        # rnd_1: 7 - 7
9218        xorl	%r10d, %eax
9219        rorxl	$6, %r12d, %edx
9220        addl	%eax, %r8d
9221        vpaddd	%xmm4, %xmm9, %xmm3
9222        # msg_sched done: 12-15
9223        # set_w_k_xfer_4: 12
9224        vpaddd	192+L_avx1_rorx_sha256_k(%rip), %xmm0, %xmm4
9225        vpaddd	208+L_avx1_rorx_sha256_k(%rip), %xmm1, %xmm5
9226        vmovdqu	%xmm4, (%rsp)
9227        vmovdqu	%xmm5, 16(%rsp)
9228        vpaddd	224+L_avx1_rorx_sha256_k(%rip), %xmm2, %xmm6
9229        vpaddd	240+L_avx1_rorx_sha256_k(%rip), %xmm3, %xmm7
9230        vmovdqu	%xmm6, 32(%rsp)
9231        vmovdqu	%xmm7, 48(%rsp)
9232        xorl	%eax, %eax
9233        xorl	%ecx, %ecx
9234        # rnd_all_4: 0-3
9235        rorxl	$6, %r12d, %edx
9236        rorxl	$11, %r12d, %ecx
9237        addl	%eax, %r8d
9238        addl	(%rsp), %r15d
9239        movl	%r13d, %eax
9240        xorl	%edx, %ecx
9241        xorl	%r14d, %eax
9242        rorxl	$25, %r12d, %edx
9243        xorl	%ecx, %edx
9244        andl	%r12d, %eax
9245        addl	%edx, %r15d
9246        rorxl	$2, %r8d, %edx
9247        rorxl	$13, %r8d, %ecx
9248        xorl	%r14d, %eax
9249        xorl	%edx, %ecx
9250        rorxl	$22, %r8d, %edx
9251        addl	%eax, %r15d
9252        xorl	%ecx, %edx
9253        movl	%r9d, %eax
9254        addl	%r15d, %r11d
9255        xorl	%r8d, %eax
9256        andl	%eax, %ebx
9257        addl	%edx, %r15d
9258        xorl	%r9d, %ebx
9259        rorxl	$6, %r11d, %edx
9260        rorxl	$11, %r11d, %ecx
9261        addl	%ebx, %r15d
9262        addl	4(%rsp), %r14d
9263        movl	%r12d, %ebx
9264        xorl	%edx, %ecx
9265        xorl	%r13d, %ebx
9266        rorxl	$25, %r11d, %edx
9267        xorl	%ecx, %edx
9268        andl	%r11d, %ebx
9269        addl	%edx, %r14d
9270        rorxl	$2, %r15d, %edx
9271        rorxl	$13, %r15d, %ecx
9272        xorl	%r13d, %ebx
9273        xorl	%edx, %ecx
9274        rorxl	$22, %r15d, %edx
9275        addl	%ebx, %r14d
9276        xorl	%ecx, %edx
9277        movl	%r8d, %ebx
9278        addl	%r14d, %r10d
9279        xorl	%r15d, %ebx
9280        andl	%ebx, %eax
9281        addl	%edx, %r14d
9282        xorl	%r8d, %eax
9283        rorxl	$6, %r10d, %edx
9284        rorxl	$11, %r10d, %ecx
9285        addl	%eax, %r14d
9286        addl	8(%rsp), %r13d
9287        movl	%r11d, %eax
9288        xorl	%edx, %ecx
9289        xorl	%r12d, %eax
9290        rorxl	$25, %r10d, %edx
9291        xorl	%ecx, %edx
9292        andl	%r10d, %eax
9293        addl	%edx, %r13d
9294        rorxl	$2, %r14d, %edx
9295        rorxl	$13, %r14d, %ecx
9296        xorl	%r12d, %eax
9297        xorl	%edx, %ecx
9298        rorxl	$22, %r14d, %edx
9299        addl	%eax, %r13d
9300        xorl	%ecx, %edx
9301        movl	%r15d, %eax
9302        addl	%r13d, %r9d
9303        xorl	%r14d, %eax
9304        andl	%eax, %ebx
9305        addl	%edx, %r13d
9306        xorl	%r15d, %ebx
9307        rorxl	$6, %r9d, %edx
9308        rorxl	$11, %r9d, %ecx
9309        addl	%ebx, %r13d
9310        addl	12(%rsp), %r12d
9311        movl	%r10d, %ebx
9312        xorl	%edx, %ecx
9313        xorl	%r11d, %ebx
9314        rorxl	$25, %r9d, %edx
9315        xorl	%ecx, %edx
9316        andl	%r9d, %ebx
9317        addl	%edx, %r12d
9318        rorxl	$2, %r13d, %edx
9319        rorxl	$13, %r13d, %ecx
9320        xorl	%r11d, %ebx
9321        xorl	%edx, %ecx
9322        rorxl	$22, %r13d, %edx
9323        addl	%ebx, %r12d
9324        xorl	%ecx, %edx
9325        movl	%r14d, %ebx
9326        addl	%r12d, %r8d
9327        xorl	%r13d, %ebx
9328        andl	%ebx, %eax
9329        addl	%edx, %r12d
9330        xorl	%r14d, %eax
9331        # rnd_all_4: 1-4
9332        rorxl	$6, %r8d, %edx
9333        rorxl	$11, %r8d, %ecx
9334        addl	%eax, %r12d
9335        addl	16(%rsp), %r11d
9336        movl	%r9d, %eax
9337        xorl	%edx, %ecx
9338        xorl	%r10d, %eax
9339        rorxl	$25, %r8d, %edx
9340        xorl	%ecx, %edx
9341        andl	%r8d, %eax
9342        addl	%edx, %r11d
9343        rorxl	$2, %r12d, %edx
9344        rorxl	$13, %r12d, %ecx
9345        xorl	%r10d, %eax
9346        xorl	%edx, %ecx
9347        rorxl	$22, %r12d, %edx
9348        addl	%eax, %r11d
9349        xorl	%ecx, %edx
9350        movl	%r13d, %eax
9351        addl	%r11d, %r15d
9352        xorl	%r12d, %eax
9353        andl	%eax, %ebx
9354        addl	%edx, %r11d
9355        xorl	%r13d, %ebx
9356        rorxl	$6, %r15d, %edx
9357        rorxl	$11, %r15d, %ecx
9358        addl	%ebx, %r11d
9359        addl	20(%rsp), %r10d
9360        movl	%r8d, %ebx
9361        xorl	%edx, %ecx
9362        xorl	%r9d, %ebx
9363        rorxl	$25, %r15d, %edx
9364        xorl	%ecx, %edx
9365        andl	%r15d, %ebx
9366        addl	%edx, %r10d
9367        rorxl	$2, %r11d, %edx
9368        rorxl	$13, %r11d, %ecx
9369        xorl	%r9d, %ebx
9370        xorl	%edx, %ecx
9371        rorxl	$22, %r11d, %edx
9372        addl	%ebx, %r10d
9373        xorl	%ecx, %edx
9374        movl	%r12d, %ebx
9375        addl	%r10d, %r14d
9376        xorl	%r11d, %ebx
9377        andl	%ebx, %eax
9378        addl	%edx, %r10d
9379        xorl	%r12d, %eax
9380        rorxl	$6, %r14d, %edx
9381        rorxl	$11, %r14d, %ecx
9382        addl	%eax, %r10d
9383        addl	24(%rsp), %r9d
9384        movl	%r15d, %eax
9385        xorl	%edx, %ecx
9386        xorl	%r8d, %eax
9387        rorxl	$25, %r14d, %edx
9388        xorl	%ecx, %edx
9389        andl	%r14d, %eax
9390        addl	%edx, %r9d
9391        rorxl	$2, %r10d, %edx
9392        rorxl	$13, %r10d, %ecx
9393        xorl	%r8d, %eax
9394        xorl	%edx, %ecx
9395        rorxl	$22, %r10d, %edx
9396        addl	%eax, %r9d
9397        xorl	%ecx, %edx
9398        movl	%r11d, %eax
9399        addl	%r9d, %r13d
9400        xorl	%r10d, %eax
9401        andl	%eax, %ebx
9402        addl	%edx, %r9d
9403        xorl	%r11d, %ebx
9404        rorxl	$6, %r13d, %edx
9405        rorxl	$11, %r13d, %ecx
9406        addl	%ebx, %r9d
9407        addl	28(%rsp), %r8d
9408        movl	%r14d, %ebx
9409        xorl	%edx, %ecx
9410        xorl	%r15d, %ebx
9411        rorxl	$25, %r13d, %edx
9412        xorl	%ecx, %edx
9413        andl	%r13d, %ebx
9414        addl	%edx, %r8d
9415        rorxl	$2, %r9d, %edx
9416        rorxl	$13, %r9d, %ecx
9417        xorl	%r15d, %ebx
9418        xorl	%edx, %ecx
9419        rorxl	$22, %r9d, %edx
9420        addl	%ebx, %r8d
9421        xorl	%ecx, %edx
9422        movl	%r10d, %ebx
9423        addl	%r8d, %r12d
9424        xorl	%r9d, %ebx
9425        andl	%ebx, %eax
9426        addl	%edx, %r8d
9427        xorl	%r10d, %eax
9428        # rnd_all_4: 2-5
9429        rorxl	$6, %r12d, %edx
9430        rorxl	$11, %r12d, %ecx
9431        addl	%eax, %r8d
9432        addl	32(%rsp), %r15d
9433        movl	%r13d, %eax
9434        xorl	%edx, %ecx
9435        xorl	%r14d, %eax
9436        rorxl	$25, %r12d, %edx
9437        xorl	%ecx, %edx
9438        andl	%r12d, %eax
9439        addl	%edx, %r15d
9440        rorxl	$2, %r8d, %edx
9441        rorxl	$13, %r8d, %ecx
9442        xorl	%r14d, %eax
9443        xorl	%edx, %ecx
9444        rorxl	$22, %r8d, %edx
9445        addl	%eax, %r15d
9446        xorl	%ecx, %edx
9447        movl	%r9d, %eax
9448        addl	%r15d, %r11d
9449        xorl	%r8d, %eax
9450        andl	%eax, %ebx
9451        addl	%edx, %r15d
9452        xorl	%r9d, %ebx
9453        rorxl	$6, %r11d, %edx
9454        rorxl	$11, %r11d, %ecx
9455        addl	%ebx, %r15d
9456        addl	36(%rsp), %r14d
9457        movl	%r12d, %ebx
9458        xorl	%edx, %ecx
9459        xorl	%r13d, %ebx
9460        rorxl	$25, %r11d, %edx
9461        xorl	%ecx, %edx
9462        andl	%r11d, %ebx
9463        addl	%edx, %r14d
9464        rorxl	$2, %r15d, %edx
9465        rorxl	$13, %r15d, %ecx
9466        xorl	%r13d, %ebx
9467        xorl	%edx, %ecx
9468        rorxl	$22, %r15d, %edx
9469        addl	%ebx, %r14d
9470        xorl	%ecx, %edx
9471        movl	%r8d, %ebx
9472        addl	%r14d, %r10d
9473        xorl	%r15d, %ebx
9474        andl	%ebx, %eax
9475        addl	%edx, %r14d
9476        xorl	%r8d, %eax
9477        rorxl	$6, %r10d, %edx
9478        rorxl	$11, %r10d, %ecx
9479        addl	%eax, %r14d
9480        addl	40(%rsp), %r13d
9481        movl	%r11d, %eax
9482        xorl	%edx, %ecx
9483        xorl	%r12d, %eax
9484        rorxl	$25, %r10d, %edx
9485        xorl	%ecx, %edx
9486        andl	%r10d, %eax
9487        addl	%edx, %r13d
9488        rorxl	$2, %r14d, %edx
9489        rorxl	$13, %r14d, %ecx
9490        xorl	%r12d, %eax
9491        xorl	%edx, %ecx
9492        rorxl	$22, %r14d, %edx
9493        addl	%eax, %r13d
9494        xorl	%ecx, %edx
9495        movl	%r15d, %eax
9496        addl	%r13d, %r9d
9497        xorl	%r14d, %eax
9498        andl	%eax, %ebx
9499        addl	%edx, %r13d
9500        xorl	%r15d, %ebx
9501        rorxl	$6, %r9d, %edx
9502        rorxl	$11, %r9d, %ecx
9503        addl	%ebx, %r13d
9504        addl	44(%rsp), %r12d
9505        movl	%r10d, %ebx
9506        xorl	%edx, %ecx
9507        xorl	%r11d, %ebx
9508        rorxl	$25, %r9d, %edx
9509        xorl	%ecx, %edx
9510        andl	%r9d, %ebx
9511        addl	%edx, %r12d
9512        rorxl	$2, %r13d, %edx
9513        rorxl	$13, %r13d, %ecx
9514        xorl	%r11d, %ebx
9515        xorl	%edx, %ecx
9516        rorxl	$22, %r13d, %edx
9517        addl	%ebx, %r12d
9518        xorl	%ecx, %edx
9519        movl	%r14d, %ebx
9520        addl	%r12d, %r8d
9521        xorl	%r13d, %ebx
9522        andl	%ebx, %eax
9523        addl	%edx, %r12d
9524        xorl	%r14d, %eax
9525        # rnd_all_4: 3-6
9526        rorxl	$6, %r8d, %edx
9527        rorxl	$11, %r8d, %ecx
9528        addl	%eax, %r12d
9529        addl	48(%rsp), %r11d
9530        movl	%r9d, %eax
9531        xorl	%edx, %ecx
9532        xorl	%r10d, %eax
9533        rorxl	$25, %r8d, %edx
9534        xorl	%ecx, %edx
9535        andl	%r8d, %eax
9536        addl	%edx, %r11d
9537        rorxl	$2, %r12d, %edx
9538        rorxl	$13, %r12d, %ecx
9539        xorl	%r10d, %eax
9540        xorl	%edx, %ecx
9541        rorxl	$22, %r12d, %edx
9542        addl	%eax, %r11d
9543        xorl	%ecx, %edx
9544        movl	%r13d, %eax
9545        addl	%r11d, %r15d
9546        xorl	%r12d, %eax
9547        andl	%eax, %ebx
9548        addl	%edx, %r11d
9549        xorl	%r13d, %ebx
9550        rorxl	$6, %r15d, %edx
9551        rorxl	$11, %r15d, %ecx
9552        addl	%ebx, %r11d
9553        addl	52(%rsp), %r10d
9554        movl	%r8d, %ebx
9555        xorl	%edx, %ecx
9556        xorl	%r9d, %ebx
9557        rorxl	$25, %r15d, %edx
9558        xorl	%ecx, %edx
9559        andl	%r15d, %ebx
9560        addl	%edx, %r10d
9561        rorxl	$2, %r11d, %edx
9562        rorxl	$13, %r11d, %ecx
9563        xorl	%r9d, %ebx
9564        xorl	%edx, %ecx
9565        rorxl	$22, %r11d, %edx
9566        addl	%ebx, %r10d
9567        xorl	%ecx, %edx
9568        movl	%r12d, %ebx
9569        addl	%r10d, %r14d
9570        xorl	%r11d, %ebx
9571        andl	%ebx, %eax
9572        addl	%edx, %r10d
9573        xorl	%r12d, %eax
9574        rorxl	$6, %r14d, %edx
9575        rorxl	$11, %r14d, %ecx
9576        addl	%eax, %r10d
9577        addl	56(%rsp), %r9d
9578        movl	%r15d, %eax
9579        xorl	%edx, %ecx
9580        xorl	%r8d, %eax
9581        rorxl	$25, %r14d, %edx
9582        xorl	%ecx, %edx
9583        andl	%r14d, %eax
9584        addl	%edx, %r9d
9585        rorxl	$2, %r10d, %edx
9586        rorxl	$13, %r10d, %ecx
9587        xorl	%r8d, %eax
9588        xorl	%edx, %ecx
9589        rorxl	$22, %r10d, %edx
9590        addl	%eax, %r9d
9591        xorl	%ecx, %edx
9592        movl	%r11d, %eax
9593        addl	%r9d, %r13d
9594        xorl	%r10d, %eax
9595        andl	%eax, %ebx
9596        addl	%edx, %r9d
9597        xorl	%r11d, %ebx
9598        rorxl	$6, %r13d, %edx
9599        rorxl	$11, %r13d, %ecx
9600        addl	%ebx, %r9d
9601        addl	60(%rsp), %r8d
9602        movl	%r14d, %ebx
9603        xorl	%edx, %ecx
9604        xorl	%r15d, %ebx
9605        rorxl	$25, %r13d, %edx
9606        xorl	%ecx, %edx
9607        andl	%r13d, %ebx
9608        addl	%edx, %r8d
9609        rorxl	$2, %r9d, %edx
9610        rorxl	$13, %r9d, %ecx
9611        xorl	%r15d, %ebx
9612        xorl	%edx, %ecx
9613        rorxl	$22, %r9d, %edx
9614        addl	%ebx, %r8d
9615        xorl	%ecx, %edx
9616        movl	%r10d, %ebx
9617        addl	%r8d, %r12d
9618        xorl	%r9d, %ebx
9619        andl	%ebx, %eax
9620        addl	%edx, %r8d
9621        xorl	%r10d, %eax
9622        addl	%eax, %r8d
9623        addl	(%rdi), %r8d
9624        addl	4(%rdi), %r9d
9625        addl	8(%rdi), %r10d
9626        addl	12(%rdi), %r11d
9627        addl	16(%rdi), %r12d
9628        addl	20(%rdi), %r13d
9629        addl	24(%rdi), %r14d
9630        addl	28(%rdi), %r15d
9631        addq	$0x40, %rbp
9632        subl	$0x40, %esi
9633        movl	%r8d, (%rdi)
9634        movl	%r9d, 4(%rdi)
9635        movl	%r10d, 8(%rdi)
9636        movl	%r11d, 12(%rdi)
9637        movl	%r12d, 16(%rdi)
9638        movl	%r13d, 20(%rdi)
9639        movl	%r14d, 24(%rdi)
9640        movl	%r15d, 28(%rdi)
9641        jnz	L_sha256_len_avx1_len_rorx_start
9642        xorq	%rax, %rax
9643        vzeroupper
9644        addq	$0x40, %rsp
9645        popq	%rbp
9646        popq	%r15
9647        popq	%r14
9648        popq	%r13
9649        popq	%r12
9650        popq	%rbx
9651        repz retq
9652#ifndef __APPLE__
9653.size	Transform_Sha256_AVX1_RORX_Len,.-Transform_Sha256_AVX1_RORX_Len
9654#endif /* __APPLE__ */
9655#endif /* HAVE_INTEL_AVX1 */
9656#ifdef HAVE_INTEL_AVX2
9657#ifndef __APPLE__
9658.data
9659#else
9660.section	__DATA,__data
9661#endif /* __APPLE__ */
9662L_avx2_sha256_k:
9663.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
9664.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
9665.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
9666.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
9667.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
9668.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
9669.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
9670.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
9671.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
9672.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
9673.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
9674.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
9675.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
9676.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
9677.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
9678.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
9679.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
9680.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
9681.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
9682.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
9683.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
9684.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
9685.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
9686.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
9687.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
9688.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
9689.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
9690.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
9691.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
9692.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
9693.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
9694.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
9695#ifndef __APPLE__
9696.data
9697#else
9698.section	__DATA,__data
9699#endif /* __APPLE__ */
9700#ifndef __APPLE__
9701.align	32
9702#else
9703.p2align	5
9704#endif /* __APPLE__ */
9705L_avx2_sha256_shuf_00BA:
9706.quad	0xb0a090803020100, 0xffffffffffffffff
9707.quad	0xb0a090803020100, 0xffffffffffffffff
9708#ifndef __APPLE__
9709.data
9710#else
9711.section	__DATA,__data
9712#endif /* __APPLE__ */
9713#ifndef __APPLE__
9714.align	32
9715#else
9716.p2align	5
9717#endif /* __APPLE__ */
9718L_avx2_sha256_shuf_DC00:
9719.quad	0xffffffffffffffff, 0xb0a090803020100
9720.quad	0xffffffffffffffff, 0xb0a090803020100
9721#ifndef __APPLE__
9722.data
9723#else
9724.section	__DATA,__data
9725#endif /* __APPLE__ */
9726#ifndef __APPLE__
9727.align	32
9728#else
9729.p2align	5
9730#endif /* __APPLE__ */
9731L_avx2_sha256_flip_mask:
9732.quad	0x405060700010203, 0xc0d0e0f08090a0b
9733.quad	0x405060700010203, 0xc0d0e0f08090a0b
9734#ifndef __APPLE__
9735.text
9736.globl	Transform_Sha256_AVX2
9737.type	Transform_Sha256_AVX2,@function
9738.align	16
9739Transform_Sha256_AVX2:
9740#else
9741.section	__TEXT,__text
9742.globl	_Transform_Sha256_AVX2
9743.p2align	4
9744_Transform_Sha256_AVX2:
9745#endif /* __APPLE__ */
9746        pushq	%rbx
9747        pushq	%r12
9748        pushq	%r13
9749        pushq	%r14
9750        pushq	%r15
9751        subq	$0x200, %rsp
9752        leaq	32(%rdi), %rax
9753        vmovdqa	L_avx2_sha256_flip_mask(%rip), %xmm13
9754        vmovdqa	L_avx2_sha256_shuf_00BA(%rip), %ymm11
9755        vmovdqa	L_avx2_sha256_shuf_DC00(%rip), %ymm12
9756        movl	(%rdi), %r8d
9757        movl	4(%rdi), %r9d
9758        movl	8(%rdi), %r10d
9759        movl	12(%rdi), %r11d
9760        movl	16(%rdi), %r12d
9761        movl	20(%rdi), %r13d
9762        movl	24(%rdi), %r14d
9763        movl	28(%rdi), %r15d
9764        # X0, X1, X2, X3 = W[0..15]
9765        vmovdqu	(%rax), %xmm0
9766        vmovdqu	16(%rax), %xmm1
9767        vpshufb	%xmm13, %xmm0, %xmm0
9768        vpshufb	%xmm13, %xmm1, %xmm1
9769        vmovdqu	32(%rax), %xmm2
9770        vmovdqu	48(%rax), %xmm3
9771        vpshufb	%xmm13, %xmm2, %xmm2
9772        vpshufb	%xmm13, %xmm3, %xmm3
9773        movl	%r9d, %ebx
9774        movl	%r12d, %edx
9775        xorl	%r10d, %ebx
9776        # set_w_k_xfer_4: 0
9777        vpaddd	0+L_avx2_sha256_k(%rip), %ymm0, %ymm4
9778        vpaddd	32+L_avx2_sha256_k(%rip), %ymm1, %ymm5
9779        vmovdqu	%ymm4, (%rsp)
9780        vmovdqu	%ymm5, 32(%rsp)
9781        vpaddd	64+L_avx2_sha256_k(%rip), %ymm2, %ymm4
9782        vpaddd	96+L_avx2_sha256_k(%rip), %ymm3, %ymm5
9783        vmovdqu	%ymm4, 64(%rsp)
9784        vmovdqu	%ymm5, 96(%rsp)
9785        # msg_sched: 0-3
9786        # rnd_0: 0 - 0
9787        rorl	$14, %edx
9788        vpalignr	$4, %ymm0, %ymm1, %ymm5
9789        vpalignr	$4, %ymm2, %ymm3, %ymm4
9790        # rnd_0: 1 - 2
9791        movl	%r9d, %eax
9792        movl	%r13d, %ecx
9793        addl	(%rsp), %r15d
9794        xorl	%r14d, %ecx
9795        xorl	%r12d, %edx
9796        andl	%r12d, %ecx
9797        vpsrld	$7, %ymm5, %ymm6
9798        vpslld	$25, %ymm5, %ymm7
9799        # rnd_0: 3 - 4
9800        rorl	$5, %edx
9801        xorl	%r14d, %ecx
9802        xorl	%r12d, %edx
9803        addl	%ecx, %r15d
9804        rorl	$6, %edx
9805        xorl	%r8d, %eax
9806        addl	%edx, %r15d
9807        movl	%r8d, %ecx
9808        vpsrld	$18, %ymm5, %ymm8
9809        vpslld	$14, %ymm5, %ymm9
9810        # rnd_0: 5 - 6
9811        andl	%eax, %ebx
9812        rorl	$9, %ecx
9813        xorl	%r8d, %ecx
9814        xorl	%r9d, %ebx
9815        rorl	$11, %ecx
9816        addl	%r15d, %r11d
9817        xorl	%r8d, %ecx
9818        addl	%ebx, %r15d
9819        vpor	%ymm6, %ymm7, %ymm6
9820        vpor	%ymm8, %ymm9, %ymm8
9821        # rnd_0: 7 - 7
9822        rorl	$2, %ecx
9823        movl	%r11d, %edx
9824        addl	%ecx, %r15d
9825        # rnd_1: 0 - 1
9826        rorl	$14, %edx
9827        movl	%r8d, %ebx
9828        movl	%r12d, %ecx
9829        addl	4(%rsp), %r14d
9830        xorl	%r13d, %ecx
9831        vpsrld	$3, %ymm5, %ymm9
9832        vpxor	%ymm6, %ymm8, %ymm6
9833        # rnd_1: 2 - 3
9834        xorl	%r11d, %edx
9835        andl	%r11d, %ecx
9836        rorl	$5, %edx
9837        xorl	%r13d, %ecx
9838        xorl	%r11d, %edx
9839        addl	%ecx, %r14d
9840        vpxor	%ymm6, %ymm9, %ymm5
9841        vpshufd	$0xfa, %ymm3, %ymm6
9842        # rnd_1: 4 - 5
9843        rorl	$6, %edx
9844        xorl	%r15d, %ebx
9845        addl	%edx, %r14d
9846        movl	%r15d, %ecx
9847        andl	%ebx, %eax
9848        rorl	$9, %ecx
9849        xorl	%r15d, %ecx
9850        xorl	%r8d, %eax
9851        vpsrld	$10, %ymm6, %ymm8
9852        vpsrlq	$19, %ymm6, %ymm7
9853        # rnd_1: 6 - 7
9854        rorl	$11, %ecx
9855        addl	%r14d, %r10d
9856        xorl	%r15d, %ecx
9857        addl	%eax, %r14d
9858        rorl	$2, %ecx
9859        movl	%r10d, %edx
9860        addl	%ecx, %r14d
9861        # rnd_0: 0 - 0
9862        rorl	$14, %edx
9863        vpsrlq	$0x11, %ymm6, %ymm6
9864        vpaddd	%ymm0, %ymm4, %ymm4
9865        # rnd_0: 1 - 3
9866        movl	%r15d, %eax
9867        movl	%r11d, %ecx
9868        addl	8(%rsp), %r13d
9869        xorl	%r12d, %ecx
9870        xorl	%r10d, %edx
9871        andl	%r10d, %ecx
9872        rorl	$5, %edx
9873        xorl	%r12d, %ecx
9874        xorl	%r10d, %edx
9875        addl	%ecx, %r13d
9876        vpxor	%ymm6, %ymm7, %ymm6
9877        vpaddd	%ymm5, %ymm4, %ymm4
9878        # rnd_0: 4 - 4
9879        rorl	$6, %edx
9880        xorl	%r14d, %eax
9881        addl	%edx, %r13d
9882        movl	%r14d, %ecx
9883        vpxor	%ymm6, %ymm8, %ymm8
9884        # rnd_0: 5 - 5
9885        andl	%eax, %ebx
9886        rorl	$9, %ecx
9887        xorl	%r14d, %ecx
9888        xorl	%r15d, %ebx
9889        vpshufb	%ymm11, %ymm8, %ymm8
9890        # rnd_0: 6 - 6
9891        rorl	$11, %ecx
9892        addl	%r13d, %r9d
9893        xorl	%r14d, %ecx
9894        addl	%ebx, %r13d
9895        vpaddd	%ymm8, %ymm4, %ymm4
9896        # rnd_0: 7 - 7
9897        rorl	$2, %ecx
9898        movl	%r9d, %edx
9899        addl	%ecx, %r13d
9900        # rnd_1: 0 - 0
9901        rorl	$14, %edx
9902        vpshufd	$0x50, %ymm4, %ymm6
9903        # rnd_1: 1 - 1
9904        movl	%r14d, %ebx
9905        movl	%r10d, %ecx
9906        addl	12(%rsp), %r12d
9907        xorl	%r11d, %ecx
9908        vpsrlq	$0x11, %ymm6, %ymm8
9909        vpsrlq	$19, %ymm6, %ymm7
9910        # rnd_1: 2 - 3
9911        xorl	%r9d, %edx
9912        andl	%r9d, %ecx
9913        rorl	$5, %edx
9914        xorl	%r11d, %ecx
9915        xorl	%r9d, %edx
9916        addl	%ecx, %r12d
9917        vpsrld	$10, %ymm6, %ymm9
9918        vpxor	%ymm8, %ymm7, %ymm8
9919        # rnd_1: 4 - 5
9920        rorl	$6, %edx
9921        xorl	%r13d, %ebx
9922        addl	%edx, %r12d
9923        movl	%r13d, %ecx
9924        andl	%ebx, %eax
9925        rorl	$9, %ecx
9926        xorl	%r13d, %ecx
9927        xorl	%r14d, %eax
9928        vpxor	%ymm9, %ymm8, %ymm9
9929        # rnd_1: 6 - 6
9930        rorl	$11, %ecx
9931        addl	%r12d, %r8d
9932        xorl	%r13d, %ecx
9933        addl	%eax, %r12d
9934        vpshufb	%ymm12, %ymm9, %ymm9
9935        # rnd_1: 7 - 7
9936        rorl	$2, %ecx
9937        movl	%r8d, %edx
9938        addl	%ecx, %r12d
9939        vpaddd	%ymm4, %ymm9, %ymm0
9940        # msg_sched done: 0-3
9941        # msg_sched: 8-11
9942        # rnd_0: 0 - 0
9943        rorl	$14, %edx
9944        vpalignr	$4, %ymm1, %ymm2, %ymm5
9945        vpalignr	$4, %ymm3, %ymm0, %ymm4
9946        # rnd_0: 1 - 2
9947        movl	%r13d, %eax
9948        movl	%r9d, %ecx
9949        addl	32(%rsp), %r11d
9950        xorl	%r10d, %ecx
9951        xorl	%r8d, %edx
9952        andl	%r8d, %ecx
9953        vpsrld	$7, %ymm5, %ymm6
9954        vpslld	$25, %ymm5, %ymm7
9955        # rnd_0: 3 - 4
9956        rorl	$5, %edx
9957        xorl	%r10d, %ecx
9958        xorl	%r8d, %edx
9959        addl	%ecx, %r11d
9960        rorl	$6, %edx
9961        xorl	%r12d, %eax
9962        addl	%edx, %r11d
9963        movl	%r12d, %ecx
9964        vpsrld	$18, %ymm5, %ymm8
9965        vpslld	$14, %ymm5, %ymm9
9966        # rnd_0: 5 - 6
9967        andl	%eax, %ebx
9968        rorl	$9, %ecx
9969        xorl	%r12d, %ecx
9970        xorl	%r13d, %ebx
9971        rorl	$11, %ecx
9972        addl	%r11d, %r15d
9973        xorl	%r12d, %ecx
9974        addl	%ebx, %r11d
9975        vpor	%ymm6, %ymm7, %ymm6
9976        vpor	%ymm8, %ymm9, %ymm8
9977        # rnd_0: 7 - 7
9978        rorl	$2, %ecx
9979        movl	%r15d, %edx
9980        addl	%ecx, %r11d
9981        # rnd_1: 0 - 1
9982        rorl	$14, %edx
9983        movl	%r12d, %ebx
9984        movl	%r8d, %ecx
9985        addl	36(%rsp), %r10d
9986        xorl	%r9d, %ecx
9987        vpsrld	$3, %ymm5, %ymm9
9988        vpxor	%ymm6, %ymm8, %ymm6
9989        # rnd_1: 2 - 3
9990        xorl	%r15d, %edx
9991        andl	%r15d, %ecx
9992        rorl	$5, %edx
9993        xorl	%r9d, %ecx
9994        xorl	%r15d, %edx
9995        addl	%ecx, %r10d
9996        vpxor	%ymm6, %ymm9, %ymm5
9997        vpshufd	$0xfa, %ymm0, %ymm6
9998        # rnd_1: 4 - 5
9999        rorl	$6, %edx
10000        xorl	%r11d, %ebx
10001        addl	%edx, %r10d
10002        movl	%r11d, %ecx
10003        andl	%ebx, %eax
10004        rorl	$9, %ecx
10005        xorl	%r11d, %ecx
10006        xorl	%r12d, %eax
10007        vpsrld	$10, %ymm6, %ymm8
10008        vpsrlq	$19, %ymm6, %ymm7
10009        # rnd_1: 6 - 7
10010        rorl	$11, %ecx
10011        addl	%r10d, %r14d
10012        xorl	%r11d, %ecx
10013        addl	%eax, %r10d
10014        rorl	$2, %ecx
10015        movl	%r14d, %edx
10016        addl	%ecx, %r10d
10017        # rnd_0: 0 - 0
10018        rorl	$14, %edx
10019        vpsrlq	$0x11, %ymm6, %ymm6
10020        vpaddd	%ymm1, %ymm4, %ymm4
10021        # rnd_0: 1 - 3
10022        movl	%r11d, %eax
10023        movl	%r15d, %ecx
10024        addl	40(%rsp), %r9d
10025        xorl	%r8d, %ecx
10026        xorl	%r14d, %edx
10027        andl	%r14d, %ecx
10028        rorl	$5, %edx
10029        xorl	%r8d, %ecx
10030        xorl	%r14d, %edx
10031        addl	%ecx, %r9d
10032        vpxor	%ymm6, %ymm7, %ymm6
10033        vpaddd	%ymm5, %ymm4, %ymm4
10034        # rnd_0: 4 - 4
10035        rorl	$6, %edx
10036        xorl	%r10d, %eax
10037        addl	%edx, %r9d
10038        movl	%r10d, %ecx
10039        vpxor	%ymm6, %ymm8, %ymm8
10040        # rnd_0: 5 - 5
10041        andl	%eax, %ebx
10042        rorl	$9, %ecx
10043        xorl	%r10d, %ecx
10044        xorl	%r11d, %ebx
10045        vpshufb	%ymm11, %ymm8, %ymm8
10046        # rnd_0: 6 - 6
10047        rorl	$11, %ecx
10048        addl	%r9d, %r13d
10049        xorl	%r10d, %ecx
10050        addl	%ebx, %r9d
10051        vpaddd	%ymm8, %ymm4, %ymm4
10052        # rnd_0: 7 - 7
10053        rorl	$2, %ecx
10054        movl	%r13d, %edx
10055        addl	%ecx, %r9d
10056        # rnd_1: 0 - 0
10057        rorl	$14, %edx
10058        vpshufd	$0x50, %ymm4, %ymm6
10059        # rnd_1: 1 - 1
10060        movl	%r10d, %ebx
10061        movl	%r14d, %ecx
10062        addl	44(%rsp), %r8d
10063        xorl	%r15d, %ecx
10064        vpsrlq	$0x11, %ymm6, %ymm8
10065        vpsrlq	$19, %ymm6, %ymm7
10066        # rnd_1: 2 - 3
10067        xorl	%r13d, %edx
10068        andl	%r13d, %ecx
10069        rorl	$5, %edx
10070        xorl	%r15d, %ecx
10071        xorl	%r13d, %edx
10072        addl	%ecx, %r8d
10073        vpsrld	$10, %ymm6, %ymm9
10074        vpxor	%ymm8, %ymm7, %ymm8
10075        # rnd_1: 4 - 5
10076        rorl	$6, %edx
10077        xorl	%r9d, %ebx
10078        addl	%edx, %r8d
10079        movl	%r9d, %ecx
10080        andl	%ebx, %eax
10081        rorl	$9, %ecx
10082        xorl	%r9d, %ecx
10083        xorl	%r10d, %eax
10084        vpxor	%ymm9, %ymm8, %ymm9
10085        # rnd_1: 6 - 6
10086        rorl	$11, %ecx
10087        addl	%r8d, %r12d
10088        xorl	%r9d, %ecx
10089        addl	%eax, %r8d
10090        vpshufb	%ymm12, %ymm9, %ymm9
10091        # rnd_1: 7 - 7
10092        rorl	$2, %ecx
10093        movl	%r12d, %edx
10094        addl	%ecx, %r8d
10095        vpaddd	%ymm4, %ymm9, %ymm1
10096        # msg_sched done: 8-11
10097        # msg_sched: 16-19
10098        # rnd_0: 0 - 0
10099        rorl	$14, %edx
10100        vpalignr	$4, %ymm2, %ymm3, %ymm5
10101        vpalignr	$4, %ymm0, %ymm1, %ymm4
10102        # rnd_0: 1 - 2
10103        movl	%r9d, %eax
10104        movl	%r13d, %ecx
10105        addl	64(%rsp), %r15d
10106        xorl	%r14d, %ecx
10107        xorl	%r12d, %edx
10108        andl	%r12d, %ecx
10109        vpsrld	$7, %ymm5, %ymm6
10110        vpslld	$25, %ymm5, %ymm7
10111        # rnd_0: 3 - 4
10112        rorl	$5, %edx
10113        xorl	%r14d, %ecx
10114        xorl	%r12d, %edx
10115        addl	%ecx, %r15d
10116        rorl	$6, %edx
10117        xorl	%r8d, %eax
10118        addl	%edx, %r15d
10119        movl	%r8d, %ecx
10120        vpsrld	$18, %ymm5, %ymm8
10121        vpslld	$14, %ymm5, %ymm9
10122        # rnd_0: 5 - 6
10123        andl	%eax, %ebx
10124        rorl	$9, %ecx
10125        xorl	%r8d, %ecx
10126        xorl	%r9d, %ebx
10127        rorl	$11, %ecx
10128        addl	%r15d, %r11d
10129        xorl	%r8d, %ecx
10130        addl	%ebx, %r15d
10131        vpor	%ymm6, %ymm7, %ymm6
10132        vpor	%ymm8, %ymm9, %ymm8
10133        # rnd_0: 7 - 7
10134        rorl	$2, %ecx
10135        movl	%r11d, %edx
10136        addl	%ecx, %r15d
10137        # rnd_1: 0 - 1
10138        rorl	$14, %edx
10139        movl	%r8d, %ebx
10140        movl	%r12d, %ecx
10141        addl	68(%rsp), %r14d
10142        xorl	%r13d, %ecx
10143        vpsrld	$3, %ymm5, %ymm9
10144        vpxor	%ymm6, %ymm8, %ymm6
10145        # rnd_1: 2 - 3
10146        xorl	%r11d, %edx
10147        andl	%r11d, %ecx
10148        rorl	$5, %edx
10149        xorl	%r13d, %ecx
10150        xorl	%r11d, %edx
10151        addl	%ecx, %r14d
10152        vpxor	%ymm6, %ymm9, %ymm5
10153        vpshufd	$0xfa, %ymm1, %ymm6
10154        # rnd_1: 4 - 5
10155        rorl	$6, %edx
10156        xorl	%r15d, %ebx
10157        addl	%edx, %r14d
10158        movl	%r15d, %ecx
10159        andl	%ebx, %eax
10160        rorl	$9, %ecx
10161        xorl	%r15d, %ecx
10162        xorl	%r8d, %eax
10163        vpsrld	$10, %ymm6, %ymm8
10164        vpsrlq	$19, %ymm6, %ymm7
10165        # rnd_1: 6 - 7
10166        rorl	$11, %ecx
10167        addl	%r14d, %r10d
10168        xorl	%r15d, %ecx
10169        addl	%eax, %r14d
10170        rorl	$2, %ecx
10171        movl	%r10d, %edx
10172        addl	%ecx, %r14d
10173        # rnd_0: 0 - 0
10174        rorl	$14, %edx
10175        vpsrlq	$0x11, %ymm6, %ymm6
10176        vpaddd	%ymm2, %ymm4, %ymm4
10177        # rnd_0: 1 - 3
10178        movl	%r15d, %eax
10179        movl	%r11d, %ecx
10180        addl	72(%rsp), %r13d
10181        xorl	%r12d, %ecx
10182        xorl	%r10d, %edx
10183        andl	%r10d, %ecx
10184        rorl	$5, %edx
10185        xorl	%r12d, %ecx
10186        xorl	%r10d, %edx
10187        addl	%ecx, %r13d
10188        vpxor	%ymm6, %ymm7, %ymm6
10189        vpaddd	%ymm5, %ymm4, %ymm4
10190        # rnd_0: 4 - 4
10191        rorl	$6, %edx
10192        xorl	%r14d, %eax
10193        addl	%edx, %r13d
10194        movl	%r14d, %ecx
10195        vpxor	%ymm6, %ymm8, %ymm8
10196        # rnd_0: 5 - 5
10197        andl	%eax, %ebx
10198        rorl	$9, %ecx
10199        xorl	%r14d, %ecx
10200        xorl	%r15d, %ebx
10201        vpshufb	%ymm11, %ymm8, %ymm8
10202        # rnd_0: 6 - 6
10203        rorl	$11, %ecx
10204        addl	%r13d, %r9d
10205        xorl	%r14d, %ecx
10206        addl	%ebx, %r13d
10207        vpaddd	%ymm8, %ymm4, %ymm4
10208        # rnd_0: 7 - 7
10209        rorl	$2, %ecx
10210        movl	%r9d, %edx
10211        addl	%ecx, %r13d
10212        # rnd_1: 0 - 0
10213        rorl	$14, %edx
10214        vpshufd	$0x50, %ymm4, %ymm6
10215        # rnd_1: 1 - 1
10216        movl	%r14d, %ebx
10217        movl	%r10d, %ecx
10218        addl	76(%rsp), %r12d
10219        xorl	%r11d, %ecx
10220        vpsrlq	$0x11, %ymm6, %ymm8
10221        vpsrlq	$19, %ymm6, %ymm7
10222        # rnd_1: 2 - 3
10223        xorl	%r9d, %edx
10224        andl	%r9d, %ecx
10225        rorl	$5, %edx
10226        xorl	%r11d, %ecx
10227        xorl	%r9d, %edx
10228        addl	%ecx, %r12d
10229        vpsrld	$10, %ymm6, %ymm9
10230        vpxor	%ymm8, %ymm7, %ymm8
10231        # rnd_1: 4 - 5
10232        rorl	$6, %edx
10233        xorl	%r13d, %ebx
10234        addl	%edx, %r12d
10235        movl	%r13d, %ecx
10236        andl	%ebx, %eax
10237        rorl	$9, %ecx
10238        xorl	%r13d, %ecx
10239        xorl	%r14d, %eax
10240        vpxor	%ymm9, %ymm8, %ymm9
10241        # rnd_1: 6 - 6
10242        rorl	$11, %ecx
10243        addl	%r12d, %r8d
10244        xorl	%r13d, %ecx
10245        addl	%eax, %r12d
10246        vpshufb	%ymm12, %ymm9, %ymm9
10247        # rnd_1: 7 - 7
10248        rorl	$2, %ecx
10249        movl	%r8d, %edx
10250        addl	%ecx, %r12d
10251        vpaddd	%ymm4, %ymm9, %ymm2
10252        # msg_sched done: 16-19
10253        # msg_sched: 24-27
10254        # rnd_0: 0 - 0
10255        rorl	$14, %edx
10256        vpalignr	$4, %ymm3, %ymm0, %ymm5
10257        vpalignr	$4, %ymm1, %ymm2, %ymm4
10258        # rnd_0: 1 - 2
10259        movl	%r13d, %eax
10260        movl	%r9d, %ecx
10261        addl	96(%rsp), %r11d
10262        xorl	%r10d, %ecx
10263        xorl	%r8d, %edx
10264        andl	%r8d, %ecx
10265        vpsrld	$7, %ymm5, %ymm6
10266        vpslld	$25, %ymm5, %ymm7
10267        # rnd_0: 3 - 4
10268        rorl	$5, %edx
10269        xorl	%r10d, %ecx
10270        xorl	%r8d, %edx
10271        addl	%ecx, %r11d
10272        rorl	$6, %edx
10273        xorl	%r12d, %eax
10274        addl	%edx, %r11d
10275        movl	%r12d, %ecx
10276        vpsrld	$18, %ymm5, %ymm8
10277        vpslld	$14, %ymm5, %ymm9
10278        # rnd_0: 5 - 6
10279        andl	%eax, %ebx
10280        rorl	$9, %ecx
10281        xorl	%r12d, %ecx
10282        xorl	%r13d, %ebx
10283        rorl	$11, %ecx
10284        addl	%r11d, %r15d
10285        xorl	%r12d, %ecx
10286        addl	%ebx, %r11d
10287        vpor	%ymm6, %ymm7, %ymm6
10288        vpor	%ymm8, %ymm9, %ymm8
10289        # rnd_0: 7 - 7
10290        rorl	$2, %ecx
10291        movl	%r15d, %edx
10292        addl	%ecx, %r11d
10293        # rnd_1: 0 - 1
10294        rorl	$14, %edx
10295        movl	%r12d, %ebx
10296        movl	%r8d, %ecx
10297        addl	100(%rsp), %r10d
10298        xorl	%r9d, %ecx
10299        vpsrld	$3, %ymm5, %ymm9
10300        vpxor	%ymm6, %ymm8, %ymm6
10301        # rnd_1: 2 - 3
10302        xorl	%r15d, %edx
10303        andl	%r15d, %ecx
10304        rorl	$5, %edx
10305        xorl	%r9d, %ecx
10306        xorl	%r15d, %edx
10307        addl	%ecx, %r10d
10308        vpxor	%ymm6, %ymm9, %ymm5
10309        vpshufd	$0xfa, %ymm2, %ymm6
10310        # rnd_1: 4 - 5
10311        rorl	$6, %edx
10312        xorl	%r11d, %ebx
10313        addl	%edx, %r10d
10314        movl	%r11d, %ecx
10315        andl	%ebx, %eax
10316        rorl	$9, %ecx
10317        xorl	%r11d, %ecx
10318        xorl	%r12d, %eax
10319        vpsrld	$10, %ymm6, %ymm8
10320        vpsrlq	$19, %ymm6, %ymm7
10321        # rnd_1: 6 - 7
10322        rorl	$11, %ecx
10323        addl	%r10d, %r14d
10324        xorl	%r11d, %ecx
10325        addl	%eax, %r10d
10326        rorl	$2, %ecx
10327        movl	%r14d, %edx
10328        addl	%ecx, %r10d
10329        # rnd_0: 0 - 0
10330        rorl	$14, %edx
10331        vpsrlq	$0x11, %ymm6, %ymm6
10332        vpaddd	%ymm3, %ymm4, %ymm4
10333        # rnd_0: 1 - 3
10334        movl	%r11d, %eax
10335        movl	%r15d, %ecx
10336        addl	104(%rsp), %r9d
10337        xorl	%r8d, %ecx
10338        xorl	%r14d, %edx
10339        andl	%r14d, %ecx
10340        rorl	$5, %edx
10341        xorl	%r8d, %ecx
10342        xorl	%r14d, %edx
10343        addl	%ecx, %r9d
10344        vpxor	%ymm6, %ymm7, %ymm6
10345        vpaddd	%ymm5, %ymm4, %ymm4
10346        # rnd_0: 4 - 4
10347        rorl	$6, %edx
10348        xorl	%r10d, %eax
10349        addl	%edx, %r9d
10350        movl	%r10d, %ecx
10351        vpxor	%ymm6, %ymm8, %ymm8
10352        # rnd_0: 5 - 5
10353        andl	%eax, %ebx
10354        rorl	$9, %ecx
10355        xorl	%r10d, %ecx
10356        xorl	%r11d, %ebx
10357        vpshufb	%ymm11, %ymm8, %ymm8
10358        # rnd_0: 6 - 6
10359        rorl	$11, %ecx
10360        addl	%r9d, %r13d
10361        xorl	%r10d, %ecx
10362        addl	%ebx, %r9d
10363        vpaddd	%ymm8, %ymm4, %ymm4
10364        # rnd_0: 7 - 7
10365        rorl	$2, %ecx
10366        movl	%r13d, %edx
10367        addl	%ecx, %r9d
10368        # rnd_1: 0 - 0
10369        rorl	$14, %edx
10370        vpshufd	$0x50, %ymm4, %ymm6
10371        # rnd_1: 1 - 1
10372        movl	%r10d, %ebx
10373        movl	%r14d, %ecx
10374        addl	108(%rsp), %r8d
10375        xorl	%r15d, %ecx
10376        vpsrlq	$0x11, %ymm6, %ymm8
10377        vpsrlq	$19, %ymm6, %ymm7
10378        # rnd_1: 2 - 3
10379        xorl	%r13d, %edx
10380        andl	%r13d, %ecx
10381        rorl	$5, %edx
10382        xorl	%r15d, %ecx
10383        xorl	%r13d, %edx
10384        addl	%ecx, %r8d
10385        vpsrld	$10, %ymm6, %ymm9
10386        vpxor	%ymm8, %ymm7, %ymm8
10387        # rnd_1: 4 - 5
10388        rorl	$6, %edx
10389        xorl	%r9d, %ebx
10390        addl	%edx, %r8d
10391        movl	%r9d, %ecx
10392        andl	%ebx, %eax
10393        rorl	$9, %ecx
10394        xorl	%r9d, %ecx
10395        xorl	%r10d, %eax
10396        vpxor	%ymm9, %ymm8, %ymm9
10397        # rnd_1: 6 - 6
10398        rorl	$11, %ecx
10399        addl	%r8d, %r12d
10400        xorl	%r9d, %ecx
10401        addl	%eax, %r8d
10402        vpshufb	%ymm12, %ymm9, %ymm9
10403        # rnd_1: 7 - 7
10404        rorl	$2, %ecx
10405        movl	%r12d, %edx
10406        addl	%ecx, %r8d
10407        vpaddd	%ymm4, %ymm9, %ymm3
10408        # msg_sched done: 24-27
10409        # set_w_k_xfer_4: 4
10410        vpaddd	128+L_avx2_sha256_k(%rip), %ymm0, %ymm4
10411        vpaddd	160+L_avx2_sha256_k(%rip), %ymm1, %ymm5
10412        vmovdqu	%ymm4, 128(%rsp)
10413        vmovdqu	%ymm5, 160(%rsp)
10414        vpaddd	192+L_avx2_sha256_k(%rip), %ymm2, %ymm4
10415        vpaddd	224+L_avx2_sha256_k(%rip), %ymm3, %ymm5
10416        vmovdqu	%ymm4, 192(%rsp)
10417        vmovdqu	%ymm5, 224(%rsp)
10418        # msg_sched: 32-35
10419        # rnd_0: 0 - 0
10420        rorl	$14, %edx
10421        vpalignr	$4, %ymm0, %ymm1, %ymm5
10422        vpalignr	$4, %ymm2, %ymm3, %ymm4
10423        # rnd_0: 1 - 2
10424        movl	%r9d, %eax
10425        movl	%r13d, %ecx
10426        addl	128(%rsp), %r15d
10427        xorl	%r14d, %ecx
10428        xorl	%r12d, %edx
10429        andl	%r12d, %ecx
10430        vpsrld	$7, %ymm5, %ymm6
10431        vpslld	$25, %ymm5, %ymm7
10432        # rnd_0: 3 - 4
10433        rorl	$5, %edx
10434        xorl	%r14d, %ecx
10435        xorl	%r12d, %edx
10436        addl	%ecx, %r15d
10437        rorl	$6, %edx
10438        xorl	%r8d, %eax
10439        addl	%edx, %r15d
10440        movl	%r8d, %ecx
10441        vpsrld	$18, %ymm5, %ymm8
10442        vpslld	$14, %ymm5, %ymm9
10443        # rnd_0: 5 - 6
10444        andl	%eax, %ebx
10445        rorl	$9, %ecx
10446        xorl	%r8d, %ecx
10447        xorl	%r9d, %ebx
10448        rorl	$11, %ecx
10449        addl	%r15d, %r11d
10450        xorl	%r8d, %ecx
10451        addl	%ebx, %r15d
10452        vpor	%ymm6, %ymm7, %ymm6
10453        vpor	%ymm8, %ymm9, %ymm8
10454        # rnd_0: 7 - 7
10455        rorl	$2, %ecx
10456        movl	%r11d, %edx
10457        addl	%ecx, %r15d
10458        # rnd_1: 0 - 1
10459        rorl	$14, %edx
10460        movl	%r8d, %ebx
10461        movl	%r12d, %ecx
10462        addl	132(%rsp), %r14d
10463        xorl	%r13d, %ecx
10464        vpsrld	$3, %ymm5, %ymm9
10465        vpxor	%ymm6, %ymm8, %ymm6
10466        # rnd_1: 2 - 3
10467        xorl	%r11d, %edx
10468        andl	%r11d, %ecx
10469        rorl	$5, %edx
10470        xorl	%r13d, %ecx
10471        xorl	%r11d, %edx
10472        addl	%ecx, %r14d
10473        vpxor	%ymm6, %ymm9, %ymm5
10474        vpshufd	$0xfa, %ymm3, %ymm6
10475        # rnd_1: 4 - 5
10476        rorl	$6, %edx
10477        xorl	%r15d, %ebx
10478        addl	%edx, %r14d
10479        movl	%r15d, %ecx
10480        andl	%ebx, %eax
10481        rorl	$9, %ecx
10482        xorl	%r15d, %ecx
10483        xorl	%r8d, %eax
10484        vpsrld	$10, %ymm6, %ymm8
10485        vpsrlq	$19, %ymm6, %ymm7
10486        # rnd_1: 6 - 7
10487        rorl	$11, %ecx
10488        addl	%r14d, %r10d
10489        xorl	%r15d, %ecx
10490        addl	%eax, %r14d
10491        rorl	$2, %ecx
10492        movl	%r10d, %edx
10493        addl	%ecx, %r14d
10494        # rnd_0: 0 - 0
10495        rorl	$14, %edx
10496        vpsrlq	$0x11, %ymm6, %ymm6
10497        vpaddd	%ymm0, %ymm4, %ymm4
10498        # rnd_0: 1 - 3
10499        movl	%r15d, %eax
10500        movl	%r11d, %ecx
10501        addl	136(%rsp), %r13d
10502        xorl	%r12d, %ecx
10503        xorl	%r10d, %edx
10504        andl	%r10d, %ecx
10505        rorl	$5, %edx
10506        xorl	%r12d, %ecx
10507        xorl	%r10d, %edx
10508        addl	%ecx, %r13d
10509        vpxor	%ymm6, %ymm7, %ymm6
10510        vpaddd	%ymm5, %ymm4, %ymm4
10511        # rnd_0: 4 - 4
10512        rorl	$6, %edx
10513        xorl	%r14d, %eax
10514        addl	%edx, %r13d
10515        movl	%r14d, %ecx
10516        vpxor	%ymm6, %ymm8, %ymm8
10517        # rnd_0: 5 - 5
10518        andl	%eax, %ebx
10519        rorl	$9, %ecx
10520        xorl	%r14d, %ecx
10521        xorl	%r15d, %ebx
10522        vpshufb	%ymm11, %ymm8, %ymm8
10523        # rnd_0: 6 - 6
10524        rorl	$11, %ecx
10525        addl	%r13d, %r9d
10526        xorl	%r14d, %ecx
10527        addl	%ebx, %r13d
10528        vpaddd	%ymm8, %ymm4, %ymm4
10529        # rnd_0: 7 - 7
10530        rorl	$2, %ecx
10531        movl	%r9d, %edx
10532        addl	%ecx, %r13d
10533        # rnd_1: 0 - 0
10534        rorl	$14, %edx
10535        vpshufd	$0x50, %ymm4, %ymm6
10536        # rnd_1: 1 - 1
10537        movl	%r14d, %ebx
10538        movl	%r10d, %ecx
10539        addl	140(%rsp), %r12d
10540        xorl	%r11d, %ecx
10541        vpsrlq	$0x11, %ymm6, %ymm8
10542        vpsrlq	$19, %ymm6, %ymm7
10543        # rnd_1: 2 - 3
10544        xorl	%r9d, %edx
10545        andl	%r9d, %ecx
10546        rorl	$5, %edx
10547        xorl	%r11d, %ecx
10548        xorl	%r9d, %edx
10549        addl	%ecx, %r12d
10550        vpsrld	$10, %ymm6, %ymm9
10551        vpxor	%ymm8, %ymm7, %ymm8
10552        # rnd_1: 4 - 5
10553        rorl	$6, %edx
10554        xorl	%r13d, %ebx
10555        addl	%edx, %r12d
10556        movl	%r13d, %ecx
10557        andl	%ebx, %eax
10558        rorl	$9, %ecx
10559        xorl	%r13d, %ecx
10560        xorl	%r14d, %eax
10561        vpxor	%ymm9, %ymm8, %ymm9
10562        # rnd_1: 6 - 6
10563        rorl	$11, %ecx
10564        addl	%r12d, %r8d
10565        xorl	%r13d, %ecx
10566        addl	%eax, %r12d
10567        vpshufb	%ymm12, %ymm9, %ymm9
10568        # rnd_1: 7 - 7
10569        rorl	$2, %ecx
10570        movl	%r8d, %edx
10571        addl	%ecx, %r12d
10572        vpaddd	%ymm4, %ymm9, %ymm0
10573        # msg_sched done: 32-35
10574        # msg_sched: 40-43
10575        # rnd_0: 0 - 0
10576        rorl	$14, %edx
10577        vpalignr	$4, %ymm1, %ymm2, %ymm5
10578        vpalignr	$4, %ymm3, %ymm0, %ymm4
10579        # rnd_0: 1 - 2
10580        movl	%r13d, %eax
10581        movl	%r9d, %ecx
10582        addl	160(%rsp), %r11d
10583        xorl	%r10d, %ecx
10584        xorl	%r8d, %edx
10585        andl	%r8d, %ecx
10586        vpsrld	$7, %ymm5, %ymm6
10587        vpslld	$25, %ymm5, %ymm7
10588        # rnd_0: 3 - 4
10589        rorl	$5, %edx
10590        xorl	%r10d, %ecx
10591        xorl	%r8d, %edx
10592        addl	%ecx, %r11d
10593        rorl	$6, %edx
10594        xorl	%r12d, %eax
10595        addl	%edx, %r11d
10596        movl	%r12d, %ecx
10597        vpsrld	$18, %ymm5, %ymm8
10598        vpslld	$14, %ymm5, %ymm9
10599        # rnd_0: 5 - 6
10600        andl	%eax, %ebx
10601        rorl	$9, %ecx
10602        xorl	%r12d, %ecx
10603        xorl	%r13d, %ebx
10604        rorl	$11, %ecx
10605        addl	%r11d, %r15d
10606        xorl	%r12d, %ecx
10607        addl	%ebx, %r11d
10608        vpor	%ymm6, %ymm7, %ymm6
10609        vpor	%ymm8, %ymm9, %ymm8
10610        # rnd_0: 7 - 7
10611        rorl	$2, %ecx
10612        movl	%r15d, %edx
10613        addl	%ecx, %r11d
10614        # rnd_1: 0 - 1
10615        rorl	$14, %edx
10616        movl	%r12d, %ebx
10617        movl	%r8d, %ecx
10618        addl	164(%rsp), %r10d
10619        xorl	%r9d, %ecx
10620        vpsrld	$3, %ymm5, %ymm9
10621        vpxor	%ymm6, %ymm8, %ymm6
10622        # rnd_1: 2 - 3
10623        xorl	%r15d, %edx
10624        andl	%r15d, %ecx
10625        rorl	$5, %edx
10626        xorl	%r9d, %ecx
10627        xorl	%r15d, %edx
10628        addl	%ecx, %r10d
10629        vpxor	%ymm6, %ymm9, %ymm5
10630        vpshufd	$0xfa, %ymm0, %ymm6
10631        # rnd_1: 4 - 5
10632        rorl	$6, %edx
10633        xorl	%r11d, %ebx
10634        addl	%edx, %r10d
10635        movl	%r11d, %ecx
10636        andl	%ebx, %eax
10637        rorl	$9, %ecx
10638        xorl	%r11d, %ecx
10639        xorl	%r12d, %eax
10640        vpsrld	$10, %ymm6, %ymm8
10641        vpsrlq	$19, %ymm6, %ymm7
10642        # rnd_1: 6 - 7
10643        rorl	$11, %ecx
10644        addl	%r10d, %r14d
10645        xorl	%r11d, %ecx
10646        addl	%eax, %r10d
10647        rorl	$2, %ecx
10648        movl	%r14d, %edx
10649        addl	%ecx, %r10d
10650        # rnd_0: 0 - 0
10651        rorl	$14, %edx
10652        vpsrlq	$0x11, %ymm6, %ymm6
10653        vpaddd	%ymm1, %ymm4, %ymm4
10654        # rnd_0: 1 - 3
10655        movl	%r11d, %eax
10656        movl	%r15d, %ecx
10657        addl	168(%rsp), %r9d
10658        xorl	%r8d, %ecx
10659        xorl	%r14d, %edx
10660        andl	%r14d, %ecx
10661        rorl	$5, %edx
10662        xorl	%r8d, %ecx
10663        xorl	%r14d, %edx
10664        addl	%ecx, %r9d
10665        vpxor	%ymm6, %ymm7, %ymm6
10666        vpaddd	%ymm5, %ymm4, %ymm4
10667        # rnd_0: 4 - 4
10668        rorl	$6, %edx
10669        xorl	%r10d, %eax
10670        addl	%edx, %r9d
10671        movl	%r10d, %ecx
10672        vpxor	%ymm6, %ymm8, %ymm8
10673        # rnd_0: 5 - 5
10674        andl	%eax, %ebx
10675        rorl	$9, %ecx
10676        xorl	%r10d, %ecx
10677        xorl	%r11d, %ebx
10678        vpshufb	%ymm11, %ymm8, %ymm8
10679        # rnd_0: 6 - 6
10680        rorl	$11, %ecx
10681        addl	%r9d, %r13d
10682        xorl	%r10d, %ecx
10683        addl	%ebx, %r9d
10684        vpaddd	%ymm8, %ymm4, %ymm4
10685        # rnd_0: 7 - 7
10686        rorl	$2, %ecx
10687        movl	%r13d, %edx
10688        addl	%ecx, %r9d
10689        # rnd_1: 0 - 0
10690        rorl	$14, %edx
10691        vpshufd	$0x50, %ymm4, %ymm6
10692        # rnd_1: 1 - 1
10693        movl	%r10d, %ebx
10694        movl	%r14d, %ecx
10695        addl	172(%rsp), %r8d
10696        xorl	%r15d, %ecx
10697        vpsrlq	$0x11, %ymm6, %ymm8
10698        vpsrlq	$19, %ymm6, %ymm7
10699        # rnd_1: 2 - 3
10700        xorl	%r13d, %edx
10701        andl	%r13d, %ecx
10702        rorl	$5, %edx
10703        xorl	%r15d, %ecx
10704        xorl	%r13d, %edx
10705        addl	%ecx, %r8d
10706        vpsrld	$10, %ymm6, %ymm9
10707        vpxor	%ymm8, %ymm7, %ymm8
10708        # rnd_1: 4 - 5
10709        rorl	$6, %edx
10710        xorl	%r9d, %ebx
10711        addl	%edx, %r8d
10712        movl	%r9d, %ecx
10713        andl	%ebx, %eax
10714        rorl	$9, %ecx
10715        xorl	%r9d, %ecx
10716        xorl	%r10d, %eax
10717        vpxor	%ymm9, %ymm8, %ymm9
10718        # rnd_1: 6 - 6
10719        rorl	$11, %ecx
10720        addl	%r8d, %r12d
10721        xorl	%r9d, %ecx
10722        addl	%eax, %r8d
10723        vpshufb	%ymm12, %ymm9, %ymm9
10724        # rnd_1: 7 - 7
10725        rorl	$2, %ecx
10726        movl	%r12d, %edx
10727        addl	%ecx, %r8d
10728        vpaddd	%ymm4, %ymm9, %ymm1
10729        # msg_sched done: 40-43
10730        # msg_sched: 48-51
10731        # rnd_0: 0 - 0
10732        rorl	$14, %edx
10733        vpalignr	$4, %ymm2, %ymm3, %ymm5
10734        vpalignr	$4, %ymm0, %ymm1, %ymm4
10735        # rnd_0: 1 - 2
10736        movl	%r9d, %eax
10737        movl	%r13d, %ecx
10738        addl	192(%rsp), %r15d
10739        xorl	%r14d, %ecx
10740        xorl	%r12d, %edx
10741        andl	%r12d, %ecx
10742        vpsrld	$7, %ymm5, %ymm6
10743        vpslld	$25, %ymm5, %ymm7
10744        # rnd_0: 3 - 4
10745        rorl	$5, %edx
10746        xorl	%r14d, %ecx
10747        xorl	%r12d, %edx
10748        addl	%ecx, %r15d
10749        rorl	$6, %edx
10750        xorl	%r8d, %eax
10751        addl	%edx, %r15d
10752        movl	%r8d, %ecx
10753        vpsrld	$18, %ymm5, %ymm8
10754        vpslld	$14, %ymm5, %ymm9
10755        # rnd_0: 5 - 6
10756        andl	%eax, %ebx
10757        rorl	$9, %ecx
10758        xorl	%r8d, %ecx
10759        xorl	%r9d, %ebx
10760        rorl	$11, %ecx
10761        addl	%r15d, %r11d
10762        xorl	%r8d, %ecx
10763        addl	%ebx, %r15d
10764        vpor	%ymm6, %ymm7, %ymm6
10765        vpor	%ymm8, %ymm9, %ymm8
10766        # rnd_0: 7 - 7
10767        rorl	$2, %ecx
10768        movl	%r11d, %edx
10769        addl	%ecx, %r15d
10770        # rnd_1: 0 - 1
10771        rorl	$14, %edx
10772        movl	%r8d, %ebx
10773        movl	%r12d, %ecx
10774        addl	196(%rsp), %r14d
10775        xorl	%r13d, %ecx
10776        vpsrld	$3, %ymm5, %ymm9
10777        vpxor	%ymm6, %ymm8, %ymm6
10778        # rnd_1: 2 - 3
10779        xorl	%r11d, %edx
10780        andl	%r11d, %ecx
10781        rorl	$5, %edx
10782        xorl	%r13d, %ecx
10783        xorl	%r11d, %edx
10784        addl	%ecx, %r14d
10785        vpxor	%ymm6, %ymm9, %ymm5
10786        vpshufd	$0xfa, %ymm1, %ymm6
10787        # rnd_1: 4 - 5
10788        rorl	$6, %edx
10789        xorl	%r15d, %ebx
10790        addl	%edx, %r14d
10791        movl	%r15d, %ecx
10792        andl	%ebx, %eax
10793        rorl	$9, %ecx
10794        xorl	%r15d, %ecx
10795        xorl	%r8d, %eax
10796        vpsrld	$10, %ymm6, %ymm8
10797        vpsrlq	$19, %ymm6, %ymm7
10798        # rnd_1: 6 - 7
10799        rorl	$11, %ecx
10800        addl	%r14d, %r10d
10801        xorl	%r15d, %ecx
10802        addl	%eax, %r14d
10803        rorl	$2, %ecx
10804        movl	%r10d, %edx
10805        addl	%ecx, %r14d
10806        # rnd_0: 0 - 0
10807        rorl	$14, %edx
10808        vpsrlq	$0x11, %ymm6, %ymm6
10809        vpaddd	%ymm2, %ymm4, %ymm4
10810        # rnd_0: 1 - 3
10811        movl	%r15d, %eax
10812        movl	%r11d, %ecx
10813        addl	200(%rsp), %r13d
10814        xorl	%r12d, %ecx
10815        xorl	%r10d, %edx
10816        andl	%r10d, %ecx
10817        rorl	$5, %edx
10818        xorl	%r12d, %ecx
10819        xorl	%r10d, %edx
10820        addl	%ecx, %r13d
10821        vpxor	%ymm6, %ymm7, %ymm6
10822        vpaddd	%ymm5, %ymm4, %ymm4
10823        # rnd_0: 4 - 4
10824        rorl	$6, %edx
10825        xorl	%r14d, %eax
10826        addl	%edx, %r13d
10827        movl	%r14d, %ecx
10828        vpxor	%ymm6, %ymm8, %ymm8
10829        # rnd_0: 5 - 5
10830        andl	%eax, %ebx
10831        rorl	$9, %ecx
10832        xorl	%r14d, %ecx
10833        xorl	%r15d, %ebx
10834        vpshufb	%ymm11, %ymm8, %ymm8
10835        # rnd_0: 6 - 6
10836        rorl	$11, %ecx
10837        addl	%r13d, %r9d
10838        xorl	%r14d, %ecx
10839        addl	%ebx, %r13d
10840        vpaddd	%ymm8, %ymm4, %ymm4
10841        # rnd_0: 7 - 7
10842        rorl	$2, %ecx
10843        movl	%r9d, %edx
10844        addl	%ecx, %r13d
10845        # rnd_1: 0 - 0
10846        rorl	$14, %edx
10847        vpshufd	$0x50, %ymm4, %ymm6
10848        # rnd_1: 1 - 1
10849        movl	%r14d, %ebx
10850        movl	%r10d, %ecx
10851        addl	204(%rsp), %r12d
10852        xorl	%r11d, %ecx
10853        vpsrlq	$0x11, %ymm6, %ymm8
10854        vpsrlq	$19, %ymm6, %ymm7
10855        # rnd_1: 2 - 3
10856        xorl	%r9d, %edx
10857        andl	%r9d, %ecx
10858        rorl	$5, %edx
10859        xorl	%r11d, %ecx
10860        xorl	%r9d, %edx
10861        addl	%ecx, %r12d
10862        vpsrld	$10, %ymm6, %ymm9
10863        vpxor	%ymm8, %ymm7, %ymm8
10864        # rnd_1: 4 - 5
10865        rorl	$6, %edx
10866        xorl	%r13d, %ebx
10867        addl	%edx, %r12d
10868        movl	%r13d, %ecx
10869        andl	%ebx, %eax
10870        rorl	$9, %ecx
10871        xorl	%r13d, %ecx
10872        xorl	%r14d, %eax
10873        vpxor	%ymm9, %ymm8, %ymm9
10874        # rnd_1: 6 - 6
10875        rorl	$11, %ecx
10876        addl	%r12d, %r8d
10877        xorl	%r13d, %ecx
10878        addl	%eax, %r12d
10879        vpshufb	%ymm12, %ymm9, %ymm9
10880        # rnd_1: 7 - 7
10881        rorl	$2, %ecx
10882        movl	%r8d, %edx
10883        addl	%ecx, %r12d
10884        vpaddd	%ymm4, %ymm9, %ymm2
10885        # msg_sched done: 48-51
10886        # msg_sched: 56-59
10887        # rnd_0: 0 - 0
10888        rorl	$14, %edx
10889        vpalignr	$4, %ymm3, %ymm0, %ymm5
10890        vpalignr	$4, %ymm1, %ymm2, %ymm4
10891        # rnd_0: 1 - 2
10892        movl	%r13d, %eax
10893        movl	%r9d, %ecx
10894        addl	224(%rsp), %r11d
10895        xorl	%r10d, %ecx
10896        xorl	%r8d, %edx
10897        andl	%r8d, %ecx
10898        vpsrld	$7, %ymm5, %ymm6
10899        vpslld	$25, %ymm5, %ymm7
10900        # rnd_0: 3 - 4
10901        rorl	$5, %edx
10902        xorl	%r10d, %ecx
10903        xorl	%r8d, %edx
10904        addl	%ecx, %r11d
10905        rorl	$6, %edx
10906        xorl	%r12d, %eax
10907        addl	%edx, %r11d
10908        movl	%r12d, %ecx
10909        vpsrld	$18, %ymm5, %ymm8
10910        vpslld	$14, %ymm5, %ymm9
10911        # rnd_0: 5 - 6
10912        andl	%eax, %ebx
10913        rorl	$9, %ecx
10914        xorl	%r12d, %ecx
10915        xorl	%r13d, %ebx
10916        rorl	$11, %ecx
10917        addl	%r11d, %r15d
10918        xorl	%r12d, %ecx
10919        addl	%ebx, %r11d
10920        vpor	%ymm6, %ymm7, %ymm6
10921        vpor	%ymm8, %ymm9, %ymm8
10922        # rnd_0: 7 - 7
10923        rorl	$2, %ecx
10924        movl	%r15d, %edx
10925        addl	%ecx, %r11d
10926        # rnd_1: 0 - 1
10927        rorl	$14, %edx
10928        movl	%r12d, %ebx
10929        movl	%r8d, %ecx
10930        addl	228(%rsp), %r10d
10931        xorl	%r9d, %ecx
10932        vpsrld	$3, %ymm5, %ymm9
10933        vpxor	%ymm6, %ymm8, %ymm6
10934        # rnd_1: 2 - 3
10935        xorl	%r15d, %edx
10936        andl	%r15d, %ecx
10937        rorl	$5, %edx
10938        xorl	%r9d, %ecx
10939        xorl	%r15d, %edx
10940        addl	%ecx, %r10d
10941        vpxor	%ymm6, %ymm9, %ymm5
10942        vpshufd	$0xfa, %ymm2, %ymm6
10943        # rnd_1: 4 - 5
10944        rorl	$6, %edx
10945        xorl	%r11d, %ebx
10946        addl	%edx, %r10d
10947        movl	%r11d, %ecx
10948        andl	%ebx, %eax
10949        rorl	$9, %ecx
10950        xorl	%r11d, %ecx
10951        xorl	%r12d, %eax
10952        vpsrld	$10, %ymm6, %ymm8
10953        vpsrlq	$19, %ymm6, %ymm7
10954        # rnd_1: 6 - 7
10955        rorl	$11, %ecx
10956        addl	%r10d, %r14d
10957        xorl	%r11d, %ecx
10958        addl	%eax, %r10d
10959        rorl	$2, %ecx
10960        movl	%r14d, %edx
10961        addl	%ecx, %r10d
10962        # rnd_0: 0 - 0
10963        rorl	$14, %edx
10964        vpsrlq	$0x11, %ymm6, %ymm6
10965        vpaddd	%ymm3, %ymm4, %ymm4
10966        # rnd_0: 1 - 3
10967        movl	%r11d, %eax
10968        movl	%r15d, %ecx
10969        addl	232(%rsp), %r9d
10970        xorl	%r8d, %ecx
10971        xorl	%r14d, %edx
10972        andl	%r14d, %ecx
10973        rorl	$5, %edx
10974        xorl	%r8d, %ecx
10975        xorl	%r14d, %edx
10976        addl	%ecx, %r9d
10977        vpxor	%ymm6, %ymm7, %ymm6
10978        vpaddd	%ymm5, %ymm4, %ymm4
10979        # rnd_0: 4 - 4
10980        rorl	$6, %edx
10981        xorl	%r10d, %eax
10982        addl	%edx, %r9d
10983        movl	%r10d, %ecx
10984        vpxor	%ymm6, %ymm8, %ymm8
10985        # rnd_0: 5 - 5
10986        andl	%eax, %ebx
10987        rorl	$9, %ecx
10988        xorl	%r10d, %ecx
10989        xorl	%r11d, %ebx
10990        vpshufb	%ymm11, %ymm8, %ymm8
10991        # rnd_0: 6 - 6
10992        rorl	$11, %ecx
10993        addl	%r9d, %r13d
10994        xorl	%r10d, %ecx
10995        addl	%ebx, %r9d
10996        vpaddd	%ymm8, %ymm4, %ymm4
10997        # rnd_0: 7 - 7
10998        rorl	$2, %ecx
10999        movl	%r13d, %edx
11000        addl	%ecx, %r9d
11001        # rnd_1: 0 - 0
11002        rorl	$14, %edx
11003        vpshufd	$0x50, %ymm4, %ymm6
11004        # rnd_1: 1 - 1
11005        movl	%r10d, %ebx
11006        movl	%r14d, %ecx
11007        addl	236(%rsp), %r8d
11008        xorl	%r15d, %ecx
11009        vpsrlq	$0x11, %ymm6, %ymm8
11010        vpsrlq	$19, %ymm6, %ymm7
11011        # rnd_1: 2 - 3
11012        xorl	%r13d, %edx
11013        andl	%r13d, %ecx
11014        rorl	$5, %edx
11015        xorl	%r15d, %ecx
11016        xorl	%r13d, %edx
11017        addl	%ecx, %r8d
11018        vpsrld	$10, %ymm6, %ymm9
11019        vpxor	%ymm8, %ymm7, %ymm8
11020        # rnd_1: 4 - 5
11021        rorl	$6, %edx
11022        xorl	%r9d, %ebx
11023        addl	%edx, %r8d
11024        movl	%r9d, %ecx
11025        andl	%ebx, %eax
11026        rorl	$9, %ecx
11027        xorl	%r9d, %ecx
11028        xorl	%r10d, %eax
11029        vpxor	%ymm9, %ymm8, %ymm9
11030        # rnd_1: 6 - 6
11031        rorl	$11, %ecx
11032        addl	%r8d, %r12d
11033        xorl	%r9d, %ecx
11034        addl	%eax, %r8d
11035        vpshufb	%ymm12, %ymm9, %ymm9
11036        # rnd_1: 7 - 7
11037        rorl	$2, %ecx
11038        movl	%r12d, %edx
11039        addl	%ecx, %r8d
11040        vpaddd	%ymm4, %ymm9, %ymm3
11041        # msg_sched done: 56-59
11042        # set_w_k_xfer_4: 8
11043        vpaddd	256+L_avx2_sha256_k(%rip), %ymm0, %ymm4
11044        vpaddd	288+L_avx2_sha256_k(%rip), %ymm1, %ymm5
11045        vmovdqu	%ymm4, 256(%rsp)
11046        vmovdqu	%ymm5, 288(%rsp)
11047        vpaddd	320+L_avx2_sha256_k(%rip), %ymm2, %ymm4
11048        vpaddd	352+L_avx2_sha256_k(%rip), %ymm3, %ymm5
11049        vmovdqu	%ymm4, 320(%rsp)
11050        vmovdqu	%ymm5, 352(%rsp)
11051        # msg_sched: 64-67
11052        # rnd_0: 0 - 0
11053        rorl	$14, %edx
11054        vpalignr	$4, %ymm0, %ymm1, %ymm5
11055        vpalignr	$4, %ymm2, %ymm3, %ymm4
11056        # rnd_0: 1 - 2
11057        movl	%r9d, %eax
11058        movl	%r13d, %ecx
11059        addl	256(%rsp), %r15d
11060        xorl	%r14d, %ecx
11061        xorl	%r12d, %edx
11062        andl	%r12d, %ecx
11063        vpsrld	$7, %ymm5, %ymm6
11064        vpslld	$25, %ymm5, %ymm7
11065        # rnd_0: 3 - 4
11066        rorl	$5, %edx
11067        xorl	%r14d, %ecx
11068        xorl	%r12d, %edx
11069        addl	%ecx, %r15d
11070        rorl	$6, %edx
11071        xorl	%r8d, %eax
11072        addl	%edx, %r15d
11073        movl	%r8d, %ecx
11074        vpsrld	$18, %ymm5, %ymm8
11075        vpslld	$14, %ymm5, %ymm9
11076        # rnd_0: 5 - 6
11077        andl	%eax, %ebx
11078        rorl	$9, %ecx
11079        xorl	%r8d, %ecx
11080        xorl	%r9d, %ebx
11081        rorl	$11, %ecx
11082        addl	%r15d, %r11d
11083        xorl	%r8d, %ecx
11084        addl	%ebx, %r15d
11085        vpor	%ymm6, %ymm7, %ymm6
11086        vpor	%ymm8, %ymm9, %ymm8
11087        # rnd_0: 7 - 7
11088        rorl	$2, %ecx
11089        movl	%r11d, %edx
11090        addl	%ecx, %r15d
11091        # rnd_1: 0 - 1
11092        rorl	$14, %edx
11093        movl	%r8d, %ebx
11094        movl	%r12d, %ecx
11095        addl	260(%rsp), %r14d
11096        xorl	%r13d, %ecx
11097        vpsrld	$3, %ymm5, %ymm9
11098        vpxor	%ymm6, %ymm8, %ymm6
11099        # rnd_1: 2 - 3
11100        xorl	%r11d, %edx
11101        andl	%r11d, %ecx
11102        rorl	$5, %edx
11103        xorl	%r13d, %ecx
11104        xorl	%r11d, %edx
11105        addl	%ecx, %r14d
11106        vpxor	%ymm6, %ymm9, %ymm5
11107        vpshufd	$0xfa, %ymm3, %ymm6
11108        # rnd_1: 4 - 5
11109        rorl	$6, %edx
11110        xorl	%r15d, %ebx
11111        addl	%edx, %r14d
11112        movl	%r15d, %ecx
11113        andl	%ebx, %eax
11114        rorl	$9, %ecx
11115        xorl	%r15d, %ecx
11116        xorl	%r8d, %eax
11117        vpsrld	$10, %ymm6, %ymm8
11118        vpsrlq	$19, %ymm6, %ymm7
11119        # rnd_1: 6 - 7
11120        rorl	$11, %ecx
11121        addl	%r14d, %r10d
11122        xorl	%r15d, %ecx
11123        addl	%eax, %r14d
11124        rorl	$2, %ecx
11125        movl	%r10d, %edx
11126        addl	%ecx, %r14d
11127        # rnd_0: 0 - 0
11128        rorl	$14, %edx
11129        vpsrlq	$0x11, %ymm6, %ymm6
11130        vpaddd	%ymm0, %ymm4, %ymm4
11131        # rnd_0: 1 - 3
11132        movl	%r15d, %eax
11133        movl	%r11d, %ecx
11134        addl	264(%rsp), %r13d
11135        xorl	%r12d, %ecx
11136        xorl	%r10d, %edx
11137        andl	%r10d, %ecx
11138        rorl	$5, %edx
11139        xorl	%r12d, %ecx
11140        xorl	%r10d, %edx
11141        addl	%ecx, %r13d
11142        vpxor	%ymm6, %ymm7, %ymm6
11143        vpaddd	%ymm5, %ymm4, %ymm4
11144        # rnd_0: 4 - 4
11145        rorl	$6, %edx
11146        xorl	%r14d, %eax
11147        addl	%edx, %r13d
11148        movl	%r14d, %ecx
11149        vpxor	%ymm6, %ymm8, %ymm8
11150        # rnd_0: 5 - 5
11151        andl	%eax, %ebx
11152        rorl	$9, %ecx
11153        xorl	%r14d, %ecx
11154        xorl	%r15d, %ebx
11155        vpshufb	%ymm11, %ymm8, %ymm8
11156        # rnd_0: 6 - 6
11157        rorl	$11, %ecx
11158        addl	%r13d, %r9d
11159        xorl	%r14d, %ecx
11160        addl	%ebx, %r13d
11161        vpaddd	%ymm8, %ymm4, %ymm4
11162        # rnd_0: 7 - 7
11163        rorl	$2, %ecx
11164        movl	%r9d, %edx
11165        addl	%ecx, %r13d
11166        # rnd_1: 0 - 0
11167        rorl	$14, %edx
11168        vpshufd	$0x50, %ymm4, %ymm6
11169        # rnd_1: 1 - 1
11170        movl	%r14d, %ebx
11171        movl	%r10d, %ecx
11172        addl	268(%rsp), %r12d
11173        xorl	%r11d, %ecx
11174        vpsrlq	$0x11, %ymm6, %ymm8
11175        vpsrlq	$19, %ymm6, %ymm7
11176        # rnd_1: 2 - 3
11177        xorl	%r9d, %edx
11178        andl	%r9d, %ecx
11179        rorl	$5, %edx
11180        xorl	%r11d, %ecx
11181        xorl	%r9d, %edx
11182        addl	%ecx, %r12d
11183        vpsrld	$10, %ymm6, %ymm9
11184        vpxor	%ymm8, %ymm7, %ymm8
11185        # rnd_1: 4 - 5
11186        rorl	$6, %edx
11187        xorl	%r13d, %ebx
11188        addl	%edx, %r12d
11189        movl	%r13d, %ecx
11190        andl	%ebx, %eax
11191        rorl	$9, %ecx
11192        xorl	%r13d, %ecx
11193        xorl	%r14d, %eax
11194        vpxor	%ymm9, %ymm8, %ymm9
11195        # rnd_1: 6 - 6
11196        rorl	$11, %ecx
11197        addl	%r12d, %r8d
11198        xorl	%r13d, %ecx
11199        addl	%eax, %r12d
11200        vpshufb	%ymm12, %ymm9, %ymm9
11201        # rnd_1: 7 - 7
11202        rorl	$2, %ecx
11203        movl	%r8d, %edx
11204        addl	%ecx, %r12d
11205        vpaddd	%ymm4, %ymm9, %ymm0
11206        # msg_sched done: 64-67
11207        # msg_sched: 72-75
11208        # rnd_0: 0 - 0
11209        rorl	$14, %edx
11210        vpalignr	$4, %ymm1, %ymm2, %ymm5
11211        vpalignr	$4, %ymm3, %ymm0, %ymm4
11212        # rnd_0: 1 - 2
11213        movl	%r13d, %eax
11214        movl	%r9d, %ecx
11215        addl	288(%rsp), %r11d
11216        xorl	%r10d, %ecx
11217        xorl	%r8d, %edx
11218        andl	%r8d, %ecx
11219        vpsrld	$7, %ymm5, %ymm6
11220        vpslld	$25, %ymm5, %ymm7
11221        # rnd_0: 3 - 4
11222        rorl	$5, %edx
11223        xorl	%r10d, %ecx
11224        xorl	%r8d, %edx
11225        addl	%ecx, %r11d
11226        rorl	$6, %edx
11227        xorl	%r12d, %eax
11228        addl	%edx, %r11d
11229        movl	%r12d, %ecx
11230        vpsrld	$18, %ymm5, %ymm8
11231        vpslld	$14, %ymm5, %ymm9
11232        # rnd_0: 5 - 6
11233        andl	%eax, %ebx
11234        rorl	$9, %ecx
11235        xorl	%r12d, %ecx
11236        xorl	%r13d, %ebx
11237        rorl	$11, %ecx
11238        addl	%r11d, %r15d
11239        xorl	%r12d, %ecx
11240        addl	%ebx, %r11d
11241        vpor	%ymm6, %ymm7, %ymm6
11242        vpor	%ymm8, %ymm9, %ymm8
11243        # rnd_0: 7 - 7
11244        rorl	$2, %ecx
11245        movl	%r15d, %edx
11246        addl	%ecx, %r11d
11247        # rnd_1: 0 - 1
11248        rorl	$14, %edx
11249        movl	%r12d, %ebx
11250        movl	%r8d, %ecx
11251        addl	292(%rsp), %r10d
11252        xorl	%r9d, %ecx
11253        vpsrld	$3, %ymm5, %ymm9
11254        vpxor	%ymm6, %ymm8, %ymm6
11255        # rnd_1: 2 - 3
11256        xorl	%r15d, %edx
11257        andl	%r15d, %ecx
11258        rorl	$5, %edx
11259        xorl	%r9d, %ecx
11260        xorl	%r15d, %edx
11261        addl	%ecx, %r10d
11262        vpxor	%ymm6, %ymm9, %ymm5
11263        vpshufd	$0xfa, %ymm0, %ymm6
11264        # rnd_1: 4 - 5
11265        rorl	$6, %edx
11266        xorl	%r11d, %ebx
11267        addl	%edx, %r10d
11268        movl	%r11d, %ecx
11269        andl	%ebx, %eax
11270        rorl	$9, %ecx
11271        xorl	%r11d, %ecx
11272        xorl	%r12d, %eax
11273        vpsrld	$10, %ymm6, %ymm8
11274        vpsrlq	$19, %ymm6, %ymm7
11275        # rnd_1: 6 - 7
11276        rorl	$11, %ecx
11277        addl	%r10d, %r14d
11278        xorl	%r11d, %ecx
11279        addl	%eax, %r10d
11280        rorl	$2, %ecx
11281        movl	%r14d, %edx
11282        addl	%ecx, %r10d
11283        # rnd_0: 0 - 0
11284        rorl	$14, %edx
11285        vpsrlq	$0x11, %ymm6, %ymm6
11286        vpaddd	%ymm1, %ymm4, %ymm4
11287        # rnd_0: 1 - 3
11288        movl	%r11d, %eax
11289        movl	%r15d, %ecx
11290        addl	296(%rsp), %r9d
11291        xorl	%r8d, %ecx
11292        xorl	%r14d, %edx
11293        andl	%r14d, %ecx
11294        rorl	$5, %edx
11295        xorl	%r8d, %ecx
11296        xorl	%r14d, %edx
11297        addl	%ecx, %r9d
11298        vpxor	%ymm6, %ymm7, %ymm6
11299        vpaddd	%ymm5, %ymm4, %ymm4
11300        # rnd_0: 4 - 4
11301        rorl	$6, %edx
11302        xorl	%r10d, %eax
11303        addl	%edx, %r9d
11304        movl	%r10d, %ecx
11305        vpxor	%ymm6, %ymm8, %ymm8
11306        # rnd_0: 5 - 5
11307        andl	%eax, %ebx
11308        rorl	$9, %ecx
11309        xorl	%r10d, %ecx
11310        xorl	%r11d, %ebx
11311        vpshufb	%ymm11, %ymm8, %ymm8
11312        # rnd_0: 6 - 6
11313        rorl	$11, %ecx
11314        addl	%r9d, %r13d
11315        xorl	%r10d, %ecx
11316        addl	%ebx, %r9d
11317        vpaddd	%ymm8, %ymm4, %ymm4
11318        # rnd_0: 7 - 7
11319        rorl	$2, %ecx
11320        movl	%r13d, %edx
11321        addl	%ecx, %r9d
11322        # rnd_1: 0 - 0
11323        rorl	$14, %edx
11324        vpshufd	$0x50, %ymm4, %ymm6
11325        # rnd_1: 1 - 1
11326        movl	%r10d, %ebx
11327        movl	%r14d, %ecx
11328        addl	300(%rsp), %r8d
11329        xorl	%r15d, %ecx
11330        vpsrlq	$0x11, %ymm6, %ymm8
11331        vpsrlq	$19, %ymm6, %ymm7
11332        # rnd_1: 2 - 3
11333        xorl	%r13d, %edx
11334        andl	%r13d, %ecx
11335        rorl	$5, %edx
11336        xorl	%r15d, %ecx
11337        xorl	%r13d, %edx
11338        addl	%ecx, %r8d
11339        vpsrld	$10, %ymm6, %ymm9
11340        vpxor	%ymm8, %ymm7, %ymm8
11341        # rnd_1: 4 - 5
11342        rorl	$6, %edx
11343        xorl	%r9d, %ebx
11344        addl	%edx, %r8d
11345        movl	%r9d, %ecx
11346        andl	%ebx, %eax
11347        rorl	$9, %ecx
11348        xorl	%r9d, %ecx
11349        xorl	%r10d, %eax
11350        vpxor	%ymm9, %ymm8, %ymm9
11351        # rnd_1: 6 - 6
11352        rorl	$11, %ecx
11353        addl	%r8d, %r12d
11354        xorl	%r9d, %ecx
11355        addl	%eax, %r8d
11356        vpshufb	%ymm12, %ymm9, %ymm9
11357        # rnd_1: 7 - 7
11358        rorl	$2, %ecx
11359        movl	%r12d, %edx
11360        addl	%ecx, %r8d
11361        vpaddd	%ymm4, %ymm9, %ymm1
11362        # msg_sched done: 72-75
11363        # msg_sched: 80-83
11364        # rnd_0: 0 - 0
11365        rorl	$14, %edx
11366        vpalignr	$4, %ymm2, %ymm3, %ymm5
11367        vpalignr	$4, %ymm0, %ymm1, %ymm4
11368        # rnd_0: 1 - 2
11369        movl	%r9d, %eax
11370        movl	%r13d, %ecx
11371        addl	320(%rsp), %r15d
11372        xorl	%r14d, %ecx
11373        xorl	%r12d, %edx
11374        andl	%r12d, %ecx
11375        vpsrld	$7, %ymm5, %ymm6
11376        vpslld	$25, %ymm5, %ymm7
11377        # rnd_0: 3 - 4
11378        rorl	$5, %edx
11379        xorl	%r14d, %ecx
11380        xorl	%r12d, %edx
11381        addl	%ecx, %r15d
11382        rorl	$6, %edx
11383        xorl	%r8d, %eax
11384        addl	%edx, %r15d
11385        movl	%r8d, %ecx
11386        vpsrld	$18, %ymm5, %ymm8
11387        vpslld	$14, %ymm5, %ymm9
11388        # rnd_0: 5 - 6
11389        andl	%eax, %ebx
11390        rorl	$9, %ecx
11391        xorl	%r8d, %ecx
11392        xorl	%r9d, %ebx
11393        rorl	$11, %ecx
11394        addl	%r15d, %r11d
11395        xorl	%r8d, %ecx
11396        addl	%ebx, %r15d
11397        vpor	%ymm6, %ymm7, %ymm6
11398        vpor	%ymm8, %ymm9, %ymm8
11399        # rnd_0: 7 - 7
11400        rorl	$2, %ecx
11401        movl	%r11d, %edx
11402        addl	%ecx, %r15d
11403        # rnd_1: 0 - 1
11404        rorl	$14, %edx
11405        movl	%r8d, %ebx
11406        movl	%r12d, %ecx
11407        addl	324(%rsp), %r14d
11408        xorl	%r13d, %ecx
11409        vpsrld	$3, %ymm5, %ymm9
11410        vpxor	%ymm6, %ymm8, %ymm6
11411        # rnd_1: 2 - 3
11412        xorl	%r11d, %edx
11413        andl	%r11d, %ecx
11414        rorl	$5, %edx
11415        xorl	%r13d, %ecx
11416        xorl	%r11d, %edx
11417        addl	%ecx, %r14d
11418        vpxor	%ymm6, %ymm9, %ymm5
11419        vpshufd	$0xfa, %ymm1, %ymm6
11420        # rnd_1: 4 - 5
11421        rorl	$6, %edx
11422        xorl	%r15d, %ebx
11423        addl	%edx, %r14d
11424        movl	%r15d, %ecx
11425        andl	%ebx, %eax
11426        rorl	$9, %ecx
11427        xorl	%r15d, %ecx
11428        xorl	%r8d, %eax
11429        vpsrld	$10, %ymm6, %ymm8
11430        vpsrlq	$19, %ymm6, %ymm7
11431        # rnd_1: 6 - 7
11432        rorl	$11, %ecx
11433        addl	%r14d, %r10d
11434        xorl	%r15d, %ecx
11435        addl	%eax, %r14d
11436        rorl	$2, %ecx
11437        movl	%r10d, %edx
11438        addl	%ecx, %r14d
11439        # rnd_0: 0 - 0
11440        rorl	$14, %edx
11441        vpsrlq	$0x11, %ymm6, %ymm6
11442        vpaddd	%ymm2, %ymm4, %ymm4
11443        # rnd_0: 1 - 3
11444        movl	%r15d, %eax
11445        movl	%r11d, %ecx
11446        addl	328(%rsp), %r13d
11447        xorl	%r12d, %ecx
11448        xorl	%r10d, %edx
11449        andl	%r10d, %ecx
11450        rorl	$5, %edx
11451        xorl	%r12d, %ecx
11452        xorl	%r10d, %edx
11453        addl	%ecx, %r13d
11454        vpxor	%ymm6, %ymm7, %ymm6
11455        vpaddd	%ymm5, %ymm4, %ymm4
11456        # rnd_0: 4 - 4
11457        rorl	$6, %edx
11458        xorl	%r14d, %eax
11459        addl	%edx, %r13d
11460        movl	%r14d, %ecx
11461        vpxor	%ymm6, %ymm8, %ymm8
11462        # rnd_0: 5 - 5
11463        andl	%eax, %ebx
11464        rorl	$9, %ecx
11465        xorl	%r14d, %ecx
11466        xorl	%r15d, %ebx
11467        vpshufb	%ymm11, %ymm8, %ymm8
11468        # rnd_0: 6 - 6
11469        rorl	$11, %ecx
11470        addl	%r13d, %r9d
11471        xorl	%r14d, %ecx
11472        addl	%ebx, %r13d
11473        vpaddd	%ymm8, %ymm4, %ymm4
11474        # rnd_0: 7 - 7
11475        rorl	$2, %ecx
11476        movl	%r9d, %edx
11477        addl	%ecx, %r13d
11478        # rnd_1: 0 - 0
11479        rorl	$14, %edx
11480        vpshufd	$0x50, %ymm4, %ymm6
11481        # rnd_1: 1 - 1
11482        movl	%r14d, %ebx
11483        movl	%r10d, %ecx
11484        addl	332(%rsp), %r12d
11485        xorl	%r11d, %ecx
11486        vpsrlq	$0x11, %ymm6, %ymm8
11487        vpsrlq	$19, %ymm6, %ymm7
11488        # rnd_1: 2 - 3
11489        xorl	%r9d, %edx
11490        andl	%r9d, %ecx
11491        rorl	$5, %edx
11492        xorl	%r11d, %ecx
11493        xorl	%r9d, %edx
11494        addl	%ecx, %r12d
11495        vpsrld	$10, %ymm6, %ymm9
11496        vpxor	%ymm8, %ymm7, %ymm8
11497        # rnd_1: 4 - 5
11498        rorl	$6, %edx
11499        xorl	%r13d, %ebx
11500        addl	%edx, %r12d
11501        movl	%r13d, %ecx
11502        andl	%ebx, %eax
11503        rorl	$9, %ecx
11504        xorl	%r13d, %ecx
11505        xorl	%r14d, %eax
11506        vpxor	%ymm9, %ymm8, %ymm9
11507        # rnd_1: 6 - 6
11508        rorl	$11, %ecx
11509        addl	%r12d, %r8d
11510        xorl	%r13d, %ecx
11511        addl	%eax, %r12d
11512        vpshufb	%ymm12, %ymm9, %ymm9
11513        # rnd_1: 7 - 7
11514        rorl	$2, %ecx
11515        movl	%r8d, %edx
11516        addl	%ecx, %r12d
11517        vpaddd	%ymm4, %ymm9, %ymm2
11518        # msg_sched done: 80-83
11519        # msg_sched: 88-91
11520        # rnd_0: 0 - 0
11521        rorl	$14, %edx
11522        vpalignr	$4, %ymm3, %ymm0, %ymm5
11523        vpalignr	$4, %ymm1, %ymm2, %ymm4
11524        # rnd_0: 1 - 2
11525        movl	%r13d, %eax
11526        movl	%r9d, %ecx
11527        addl	352(%rsp), %r11d
11528        xorl	%r10d, %ecx
11529        xorl	%r8d, %edx
11530        andl	%r8d, %ecx
11531        vpsrld	$7, %ymm5, %ymm6
11532        vpslld	$25, %ymm5, %ymm7
11533        # rnd_0: 3 - 4
11534        rorl	$5, %edx
11535        xorl	%r10d, %ecx
11536        xorl	%r8d, %edx
11537        addl	%ecx, %r11d
11538        rorl	$6, %edx
11539        xorl	%r12d, %eax
11540        addl	%edx, %r11d
11541        movl	%r12d, %ecx
11542        vpsrld	$18, %ymm5, %ymm8
11543        vpslld	$14, %ymm5, %ymm9
11544        # rnd_0: 5 - 6
11545        andl	%eax, %ebx
11546        rorl	$9, %ecx
11547        xorl	%r12d, %ecx
11548        xorl	%r13d, %ebx
11549        rorl	$11, %ecx
11550        addl	%r11d, %r15d
11551        xorl	%r12d, %ecx
11552        addl	%ebx, %r11d
11553        vpor	%ymm6, %ymm7, %ymm6
11554        vpor	%ymm8, %ymm9, %ymm8
11555        # rnd_0: 7 - 7
11556        rorl	$2, %ecx
11557        movl	%r15d, %edx
11558        addl	%ecx, %r11d
11559        # rnd_1: 0 - 1
11560        rorl	$14, %edx
11561        movl	%r12d, %ebx
11562        movl	%r8d, %ecx
11563        addl	356(%rsp), %r10d
11564        xorl	%r9d, %ecx
11565        vpsrld	$3, %ymm5, %ymm9
11566        vpxor	%ymm6, %ymm8, %ymm6
11567        # rnd_1: 2 - 3
11568        xorl	%r15d, %edx
11569        andl	%r15d, %ecx
11570        rorl	$5, %edx
11571        xorl	%r9d, %ecx
11572        xorl	%r15d, %edx
11573        addl	%ecx, %r10d
11574        vpxor	%ymm6, %ymm9, %ymm5
11575        vpshufd	$0xfa, %ymm2, %ymm6
11576        # rnd_1: 4 - 5
11577        rorl	$6, %edx
11578        xorl	%r11d, %ebx
11579        addl	%edx, %r10d
11580        movl	%r11d, %ecx
11581        andl	%ebx, %eax
11582        rorl	$9, %ecx
11583        xorl	%r11d, %ecx
11584        xorl	%r12d, %eax
11585        vpsrld	$10, %ymm6, %ymm8
11586        vpsrlq	$19, %ymm6, %ymm7
11587        # rnd_1: 6 - 7
11588        rorl	$11, %ecx
11589        addl	%r10d, %r14d
11590        xorl	%r11d, %ecx
11591        addl	%eax, %r10d
11592        rorl	$2, %ecx
11593        movl	%r14d, %edx
11594        addl	%ecx, %r10d
11595        # rnd_0: 0 - 0
11596        rorl	$14, %edx
11597        vpsrlq	$0x11, %ymm6, %ymm6
11598        vpaddd	%ymm3, %ymm4, %ymm4
11599        # rnd_0: 1 - 3
11600        movl	%r11d, %eax
11601        movl	%r15d, %ecx
11602        addl	360(%rsp), %r9d
11603        xorl	%r8d, %ecx
11604        xorl	%r14d, %edx
11605        andl	%r14d, %ecx
11606        rorl	$5, %edx
11607        xorl	%r8d, %ecx
11608        xorl	%r14d, %edx
11609        addl	%ecx, %r9d
11610        vpxor	%ymm6, %ymm7, %ymm6
11611        vpaddd	%ymm5, %ymm4, %ymm4
11612        # rnd_0: 4 - 4
11613        rorl	$6, %edx
11614        xorl	%r10d, %eax
11615        addl	%edx, %r9d
11616        movl	%r10d, %ecx
11617        vpxor	%ymm6, %ymm8, %ymm8
11618        # rnd_0: 5 - 5
11619        andl	%eax, %ebx
11620        rorl	$9, %ecx
11621        xorl	%r10d, %ecx
11622        xorl	%r11d, %ebx
11623        vpshufb	%ymm11, %ymm8, %ymm8
11624        # rnd_0: 6 - 6
11625        rorl	$11, %ecx
11626        addl	%r9d, %r13d
11627        xorl	%r10d, %ecx
11628        addl	%ebx, %r9d
11629        vpaddd	%ymm8, %ymm4, %ymm4
11630        # rnd_0: 7 - 7
11631        rorl	$2, %ecx
11632        movl	%r13d, %edx
11633        addl	%ecx, %r9d
11634        # rnd_1: 0 - 0
11635        rorl	$14, %edx
11636        vpshufd	$0x50, %ymm4, %ymm6
11637        # rnd_1: 1 - 1
11638        movl	%r10d, %ebx
11639        movl	%r14d, %ecx
11640        addl	364(%rsp), %r8d
11641        xorl	%r15d, %ecx
11642        vpsrlq	$0x11, %ymm6, %ymm8
11643        vpsrlq	$19, %ymm6, %ymm7
11644        # rnd_1: 2 - 3
11645        xorl	%r13d, %edx
11646        andl	%r13d, %ecx
11647        rorl	$5, %edx
11648        xorl	%r15d, %ecx
11649        xorl	%r13d, %edx
11650        addl	%ecx, %r8d
11651        vpsrld	$10, %ymm6, %ymm9
11652        vpxor	%ymm8, %ymm7, %ymm8
11653        # rnd_1: 4 - 5
11654        rorl	$6, %edx
11655        xorl	%r9d, %ebx
11656        addl	%edx, %r8d
11657        movl	%r9d, %ecx
11658        andl	%ebx, %eax
11659        rorl	$9, %ecx
11660        xorl	%r9d, %ecx
11661        xorl	%r10d, %eax
11662        vpxor	%ymm9, %ymm8, %ymm9
11663        # rnd_1: 6 - 6
11664        rorl	$11, %ecx
11665        addl	%r8d, %r12d
11666        xorl	%r9d, %ecx
11667        addl	%eax, %r8d
11668        vpshufb	%ymm12, %ymm9, %ymm9
11669        # rnd_1: 7 - 7
11670        rorl	$2, %ecx
11671        movl	%r12d, %edx
11672        addl	%ecx, %r8d
11673        vpaddd	%ymm4, %ymm9, %ymm3
11674        # msg_sched done: 88-91
11675        # set_w_k_xfer_4: 12
11676        vpaddd	384+L_avx2_sha256_k(%rip), %ymm0, %ymm4
11677        vpaddd	416+L_avx2_sha256_k(%rip), %ymm1, %ymm5
11678        vmovdqu	%ymm4, 384(%rsp)
11679        vmovdqu	%ymm5, 416(%rsp)
11680        vpaddd	448+L_avx2_sha256_k(%rip), %ymm2, %ymm4
11681        vpaddd	480+L_avx2_sha256_k(%rip), %ymm3, %ymm5
11682        vmovdqu	%ymm4, 448(%rsp)
11683        vmovdqu	%ymm5, 480(%rsp)
11684        # rnd_all_4: 24-27
11685        addl	384(%rsp), %r15d
11686        movl	%r13d, %ecx
11687        movl	%r9d, %eax
11688        xorl	%r14d, %ecx
11689        rorl	$14, %edx
11690        andl	%r12d, %ecx
11691        xorl	%r12d, %edx
11692        xorl	%r14d, %ecx
11693        rorl	$5, %edx
11694        addl	%ecx, %r15d
11695        xorl	%r12d, %edx
11696        xorl	%r8d, %eax
11697        rorl	$6, %edx
11698        movl	%r8d, %ecx
11699        addl	%edx, %r15d
11700        rorl	$9, %ecx
11701        andl	%eax, %ebx
11702        xorl	%r8d, %ecx
11703        xorl	%r9d, %ebx
11704        rorl	$11, %ecx
11705        addl	%r15d, %r11d
11706        xorl	%r8d, %ecx
11707        addl	%ebx, %r15d
11708        rorl	$2, %ecx
11709        movl	%r11d, %edx
11710        addl	%ecx, %r15d
11711        addl	388(%rsp), %r14d
11712        movl	%r12d, %ecx
11713        movl	%r8d, %ebx
11714        xorl	%r13d, %ecx
11715        rorl	$14, %edx
11716        andl	%r11d, %ecx
11717        xorl	%r11d, %edx
11718        xorl	%r13d, %ecx
11719        rorl	$5, %edx
11720        addl	%ecx, %r14d
11721        xorl	%r11d, %edx
11722        xorl	%r15d, %ebx
11723        rorl	$6, %edx
11724        movl	%r15d, %ecx
11725        addl	%edx, %r14d
11726        rorl	$9, %ecx
11727        andl	%ebx, %eax
11728        xorl	%r15d, %ecx
11729        xorl	%r8d, %eax
11730        rorl	$11, %ecx
11731        addl	%r14d, %r10d
11732        xorl	%r15d, %ecx
11733        addl	%eax, %r14d
11734        rorl	$2, %ecx
11735        movl	%r10d, %edx
11736        addl	%ecx, %r14d
11737        addl	392(%rsp), %r13d
11738        movl	%r11d, %ecx
11739        movl	%r15d, %eax
11740        xorl	%r12d, %ecx
11741        rorl	$14, %edx
11742        andl	%r10d, %ecx
11743        xorl	%r10d, %edx
11744        xorl	%r12d, %ecx
11745        rorl	$5, %edx
11746        addl	%ecx, %r13d
11747        xorl	%r10d, %edx
11748        xorl	%r14d, %eax
11749        rorl	$6, %edx
11750        movl	%r14d, %ecx
11751        addl	%edx, %r13d
11752        rorl	$9, %ecx
11753        andl	%eax, %ebx
11754        xorl	%r14d, %ecx
11755        xorl	%r15d, %ebx
11756        rorl	$11, %ecx
11757        addl	%r13d, %r9d
11758        xorl	%r14d, %ecx
11759        addl	%ebx, %r13d
11760        rorl	$2, %ecx
11761        movl	%r9d, %edx
11762        addl	%ecx, %r13d
11763        addl	396(%rsp), %r12d
11764        movl	%r10d, %ecx
11765        movl	%r14d, %ebx
11766        xorl	%r11d, %ecx
11767        rorl	$14, %edx
11768        andl	%r9d, %ecx
11769        xorl	%r9d, %edx
11770        xorl	%r11d, %ecx
11771        rorl	$5, %edx
11772        addl	%ecx, %r12d
11773        xorl	%r9d, %edx
11774        xorl	%r13d, %ebx
11775        rorl	$6, %edx
11776        movl	%r13d, %ecx
11777        addl	%edx, %r12d
11778        rorl	$9, %ecx
11779        andl	%ebx, %eax
11780        xorl	%r13d, %ecx
11781        xorl	%r14d, %eax
11782        rorl	$11, %ecx
11783        addl	%r12d, %r8d
11784        xorl	%r13d, %ecx
11785        addl	%eax, %r12d
11786        rorl	$2, %ecx
11787        movl	%r8d, %edx
11788        addl	%ecx, %r12d
11789        # rnd_all_4: 26-29
11790        addl	416(%rsp), %r11d
11791        movl	%r9d, %ecx
11792        movl	%r13d, %eax
11793        xorl	%r10d, %ecx
11794        rorl	$14, %edx
11795        andl	%r8d, %ecx
11796        xorl	%r8d, %edx
11797        xorl	%r10d, %ecx
11798        rorl	$5, %edx
11799        addl	%ecx, %r11d
11800        xorl	%r8d, %edx
11801        xorl	%r12d, %eax
11802        rorl	$6, %edx
11803        movl	%r12d, %ecx
11804        addl	%edx, %r11d
11805        rorl	$9, %ecx
11806        andl	%eax, %ebx
11807        xorl	%r12d, %ecx
11808        xorl	%r13d, %ebx
11809        rorl	$11, %ecx
11810        addl	%r11d, %r15d
11811        xorl	%r12d, %ecx
11812        addl	%ebx, %r11d
11813        rorl	$2, %ecx
11814        movl	%r15d, %edx
11815        addl	%ecx, %r11d
11816        addl	420(%rsp), %r10d
11817        movl	%r8d, %ecx
11818        movl	%r12d, %ebx
11819        xorl	%r9d, %ecx
11820        rorl	$14, %edx
11821        andl	%r15d, %ecx
11822        xorl	%r15d, %edx
11823        xorl	%r9d, %ecx
11824        rorl	$5, %edx
11825        addl	%ecx, %r10d
11826        xorl	%r15d, %edx
11827        xorl	%r11d, %ebx
11828        rorl	$6, %edx
11829        movl	%r11d, %ecx
11830        addl	%edx, %r10d
11831        rorl	$9, %ecx
11832        andl	%ebx, %eax
11833        xorl	%r11d, %ecx
11834        xorl	%r12d, %eax
11835        rorl	$11, %ecx
11836        addl	%r10d, %r14d
11837        xorl	%r11d, %ecx
11838        addl	%eax, %r10d
11839        rorl	$2, %ecx
11840        movl	%r14d, %edx
11841        addl	%ecx, %r10d
11842        addl	424(%rsp), %r9d
11843        movl	%r15d, %ecx
11844        movl	%r11d, %eax
11845        xorl	%r8d, %ecx
11846        rorl	$14, %edx
11847        andl	%r14d, %ecx
11848        xorl	%r14d, %edx
11849        xorl	%r8d, %ecx
11850        rorl	$5, %edx
11851        addl	%ecx, %r9d
11852        xorl	%r14d, %edx
11853        xorl	%r10d, %eax
11854        rorl	$6, %edx
11855        movl	%r10d, %ecx
11856        addl	%edx, %r9d
11857        rorl	$9, %ecx
11858        andl	%eax, %ebx
11859        xorl	%r10d, %ecx
11860        xorl	%r11d, %ebx
11861        rorl	$11, %ecx
11862        addl	%r9d, %r13d
11863        xorl	%r10d, %ecx
11864        addl	%ebx, %r9d
11865        rorl	$2, %ecx
11866        movl	%r13d, %edx
11867        addl	%ecx, %r9d
11868        addl	428(%rsp), %r8d
11869        movl	%r14d, %ecx
11870        movl	%r10d, %ebx
11871        xorl	%r15d, %ecx
11872        rorl	$14, %edx
11873        andl	%r13d, %ecx
11874        xorl	%r13d, %edx
11875        xorl	%r15d, %ecx
11876        rorl	$5, %edx
11877        addl	%ecx, %r8d
11878        xorl	%r13d, %edx
11879        xorl	%r9d, %ebx
11880        rorl	$6, %edx
11881        movl	%r9d, %ecx
11882        addl	%edx, %r8d
11883        rorl	$9, %ecx
11884        andl	%ebx, %eax
11885        xorl	%r9d, %ecx
11886        xorl	%r10d, %eax
11887        rorl	$11, %ecx
11888        addl	%r8d, %r12d
11889        xorl	%r9d, %ecx
11890        addl	%eax, %r8d
11891        rorl	$2, %ecx
11892        movl	%r12d, %edx
11893        addl	%ecx, %r8d
11894        # rnd_all_4: 28-31
11895        addl	448(%rsp), %r15d
11896        movl	%r13d, %ecx
11897        movl	%r9d, %eax
11898        xorl	%r14d, %ecx
11899        rorl	$14, %edx
11900        andl	%r12d, %ecx
11901        xorl	%r12d, %edx
11902        xorl	%r14d, %ecx
11903        rorl	$5, %edx
11904        addl	%ecx, %r15d
11905        xorl	%r12d, %edx
11906        xorl	%r8d, %eax
11907        rorl	$6, %edx
11908        movl	%r8d, %ecx
11909        addl	%edx, %r15d
11910        rorl	$9, %ecx
11911        andl	%eax, %ebx
11912        xorl	%r8d, %ecx
11913        xorl	%r9d, %ebx
11914        rorl	$11, %ecx
11915        addl	%r15d, %r11d
11916        xorl	%r8d, %ecx
11917        addl	%ebx, %r15d
11918        rorl	$2, %ecx
11919        movl	%r11d, %edx
11920        addl	%ecx, %r15d
11921        addl	452(%rsp), %r14d
11922        movl	%r12d, %ecx
11923        movl	%r8d, %ebx
11924        xorl	%r13d, %ecx
11925        rorl	$14, %edx
11926        andl	%r11d, %ecx
11927        xorl	%r11d, %edx
11928        xorl	%r13d, %ecx
11929        rorl	$5, %edx
11930        addl	%ecx, %r14d
11931        xorl	%r11d, %edx
11932        xorl	%r15d, %ebx
11933        rorl	$6, %edx
11934        movl	%r15d, %ecx
11935        addl	%edx, %r14d
11936        rorl	$9, %ecx
11937        andl	%ebx, %eax
11938        xorl	%r15d, %ecx
11939        xorl	%r8d, %eax
11940        rorl	$11, %ecx
11941        addl	%r14d, %r10d
11942        xorl	%r15d, %ecx
11943        addl	%eax, %r14d
11944        rorl	$2, %ecx
11945        movl	%r10d, %edx
11946        addl	%ecx, %r14d
11947        addl	456(%rsp), %r13d
11948        movl	%r11d, %ecx
11949        movl	%r15d, %eax
11950        xorl	%r12d, %ecx
11951        rorl	$14, %edx
11952        andl	%r10d, %ecx
11953        xorl	%r10d, %edx
11954        xorl	%r12d, %ecx
11955        rorl	$5, %edx
11956        addl	%ecx, %r13d
11957        xorl	%r10d, %edx
11958        xorl	%r14d, %eax
11959        rorl	$6, %edx
11960        movl	%r14d, %ecx
11961        addl	%edx, %r13d
11962        rorl	$9, %ecx
11963        andl	%eax, %ebx
11964        xorl	%r14d, %ecx
11965        xorl	%r15d, %ebx
11966        rorl	$11, %ecx
11967        addl	%r13d, %r9d
11968        xorl	%r14d, %ecx
11969        addl	%ebx, %r13d
11970        rorl	$2, %ecx
11971        movl	%r9d, %edx
11972        addl	%ecx, %r13d
11973        addl	460(%rsp), %r12d
11974        movl	%r10d, %ecx
11975        movl	%r14d, %ebx
11976        xorl	%r11d, %ecx
11977        rorl	$14, %edx
11978        andl	%r9d, %ecx
11979        xorl	%r9d, %edx
11980        xorl	%r11d, %ecx
11981        rorl	$5, %edx
11982        addl	%ecx, %r12d
11983        xorl	%r9d, %edx
11984        xorl	%r13d, %ebx
11985        rorl	$6, %edx
11986        movl	%r13d, %ecx
11987        addl	%edx, %r12d
11988        rorl	$9, %ecx
11989        andl	%ebx, %eax
11990        xorl	%r13d, %ecx
11991        xorl	%r14d, %eax
11992        rorl	$11, %ecx
11993        addl	%r12d, %r8d
11994        xorl	%r13d, %ecx
11995        addl	%eax, %r12d
11996        rorl	$2, %ecx
11997        movl	%r8d, %edx
11998        addl	%ecx, %r12d
11999        # rnd_all_4: 30-33
12000        addl	480(%rsp), %r11d
12001        movl	%r9d, %ecx
12002        movl	%r13d, %eax
12003        xorl	%r10d, %ecx
12004        rorl	$14, %edx
12005        andl	%r8d, %ecx
12006        xorl	%r8d, %edx
12007        xorl	%r10d, %ecx
12008        rorl	$5, %edx
12009        addl	%ecx, %r11d
12010        xorl	%r8d, %edx
12011        xorl	%r12d, %eax
12012        rorl	$6, %edx
12013        movl	%r12d, %ecx
12014        addl	%edx, %r11d
12015        rorl	$9, %ecx
12016        andl	%eax, %ebx
12017        xorl	%r12d, %ecx
12018        xorl	%r13d, %ebx
12019        rorl	$11, %ecx
12020        addl	%r11d, %r15d
12021        xorl	%r12d, %ecx
12022        addl	%ebx, %r11d
12023        rorl	$2, %ecx
12024        movl	%r15d, %edx
12025        addl	%ecx, %r11d
12026        addl	484(%rsp), %r10d
12027        movl	%r8d, %ecx
12028        movl	%r12d, %ebx
12029        xorl	%r9d, %ecx
12030        rorl	$14, %edx
12031        andl	%r15d, %ecx
12032        xorl	%r15d, %edx
12033        xorl	%r9d, %ecx
12034        rorl	$5, %edx
12035        addl	%ecx, %r10d
12036        xorl	%r15d, %edx
12037        xorl	%r11d, %ebx
12038        rorl	$6, %edx
12039        movl	%r11d, %ecx
12040        addl	%edx, %r10d
12041        rorl	$9, %ecx
12042        andl	%ebx, %eax
12043        xorl	%r11d, %ecx
12044        xorl	%r12d, %eax
12045        rorl	$11, %ecx
12046        addl	%r10d, %r14d
12047        xorl	%r11d, %ecx
12048        addl	%eax, %r10d
12049        rorl	$2, %ecx
12050        movl	%r14d, %edx
12051        addl	%ecx, %r10d
12052        addl	488(%rsp), %r9d
12053        movl	%r15d, %ecx
12054        movl	%r11d, %eax
12055        xorl	%r8d, %ecx
12056        rorl	$14, %edx
12057        andl	%r14d, %ecx
12058        xorl	%r14d, %edx
12059        xorl	%r8d, %ecx
12060        rorl	$5, %edx
12061        addl	%ecx, %r9d
12062        xorl	%r14d, %edx
12063        xorl	%r10d, %eax
12064        rorl	$6, %edx
12065        movl	%r10d, %ecx
12066        addl	%edx, %r9d
12067        rorl	$9, %ecx
12068        andl	%eax, %ebx
12069        xorl	%r10d, %ecx
12070        xorl	%r11d, %ebx
12071        rorl	$11, %ecx
12072        addl	%r9d, %r13d
12073        xorl	%r10d, %ecx
12074        addl	%ebx, %r9d
12075        rorl	$2, %ecx
12076        movl	%r13d, %edx
12077        addl	%ecx, %r9d
12078        addl	492(%rsp), %r8d
12079        movl	%r14d, %ecx
12080        movl	%r10d, %ebx
12081        xorl	%r15d, %ecx
12082        rorl	$14, %edx
12083        andl	%r13d, %ecx
12084        xorl	%r13d, %edx
12085        xorl	%r15d, %ecx
12086        rorl	$5, %edx
12087        addl	%ecx, %r8d
12088        xorl	%r13d, %edx
12089        xorl	%r9d, %ebx
12090        rorl	$6, %edx
12091        movl	%r9d, %ecx
12092        addl	%edx, %r8d
12093        rorl	$9, %ecx
12094        andl	%ebx, %eax
12095        xorl	%r9d, %ecx
12096        xorl	%r10d, %eax
12097        rorl	$11, %ecx
12098        addl	%r8d, %r12d
12099        xorl	%r9d, %ecx
12100        addl	%eax, %r8d
12101        rorl	$2, %ecx
12102        movl	%r12d, %edx
12103        addl	%ecx, %r8d
12104        addl	%r8d, (%rdi)
12105        addl	%r9d, 4(%rdi)
12106        addl	%r10d, 8(%rdi)
12107        addl	%r11d, 12(%rdi)
12108        addl	%r12d, 16(%rdi)
12109        addl	%r13d, 20(%rdi)
12110        addl	%r14d, 24(%rdi)
12111        addl	%r15d, 28(%rdi)
12112        xorq	%rax, %rax
12113        vzeroupper
12114        addq	$0x200, %rsp
12115        popq	%r15
12116        popq	%r14
12117        popq	%r13
12118        popq	%r12
12119        popq	%rbx
12120        repz retq
12121#ifndef __APPLE__
12122.size	Transform_Sha256_AVX2,.-Transform_Sha256_AVX2
12123#endif /* __APPLE__ */
12124#ifndef __APPLE__
12125.text
12126.globl	Transform_Sha256_AVX2_Len
12127.type	Transform_Sha256_AVX2_Len,@function
12128.align	16
12129Transform_Sha256_AVX2_Len:
12130#else
12131.section	__TEXT,__text
12132.globl	_Transform_Sha256_AVX2_Len
12133.p2align	4
12134_Transform_Sha256_AVX2_Len:
12135#endif /* __APPLE__ */
12136        pushq	%rbx
12137        pushq	%r12
12138        pushq	%r13
12139        pushq	%r14
12140        pushq	%r15
12141        pushq	%rbp
12142        movq	%rsi, %rbp
12143        movq	%rdx, %rsi
12144        subq	$0x200, %rsp
12145        testb	$0x40, %sil
12146        je	L_sha256_len_avx2_block
12147        vmovdqu	(%rbp), %ymm0
12148        vmovdqu	32(%rbp), %ymm1
12149        vmovups	%ymm0, 32(%rdi)
12150        vmovups	%ymm1, 64(%rdi)
12151#ifndef __APPLE__
12152        call	Transform_Sha256_AVX2@plt
12153#else
12154        call	_Transform_Sha256_AVX2
12155#endif /* __APPLE__ */
12156        addq	$0x40, %rbp
12157        subl	$0x40, %esi
12158        jz	L_sha256_len_avx2_done
12159L_sha256_len_avx2_block:
12160        vmovdqa	L_avx2_sha256_flip_mask(%rip), %ymm13
12161        vmovdqa	L_avx2_sha256_shuf_00BA(%rip), %ymm11
12162        vmovdqa	L_avx2_sha256_shuf_DC00(%rip), %ymm12
12163        movl	(%rdi), %r8d
12164        movl	4(%rdi), %r9d
12165        movl	8(%rdi), %r10d
12166        movl	12(%rdi), %r11d
12167        movl	16(%rdi), %r12d
12168        movl	20(%rdi), %r13d
12169        movl	24(%rdi), %r14d
12170        movl	28(%rdi), %r15d
12171        # Start of loop processing two blocks
12172L_sha256_len_avx2_start:
12173        # X0, X1, X2, X3 = W[0..15]
12174        vmovdqu	(%rbp), %xmm0
12175        vmovdqu	16(%rbp), %xmm1
12176        vmovdqu	64(%rbp), %xmm4
12177        vmovdqu	80(%rbp), %xmm5
12178        vinserti128	$0x01, %xmm4, %ymm0, %ymm0
12179        vinserti128	$0x01, %xmm5, %ymm1, %ymm1
12180        vpshufb	%ymm13, %ymm0, %ymm0
12181        vpshufb	%ymm13, %ymm1, %ymm1
12182        vmovdqu	32(%rbp), %xmm2
12183        vmovdqu	48(%rbp), %xmm3
12184        vmovdqu	96(%rbp), %xmm6
12185        vmovdqu	112(%rbp), %xmm7
12186        vinserti128	$0x01, %xmm6, %ymm2, %ymm2
12187        vinserti128	$0x01, %xmm7, %ymm3, %ymm3
12188        vpshufb	%ymm13, %ymm2, %ymm2
12189        vpshufb	%ymm13, %ymm3, %ymm3
12190        movl	%r9d, %ebx
12191        movl	%r12d, %edx
12192        xorl	%r10d, %ebx
12193        # set_w_k_xfer_4: 0
12194        vpaddd	0+L_avx2_sha256_k(%rip), %ymm0, %ymm4
12195        vpaddd	32+L_avx2_sha256_k(%rip), %ymm1, %ymm5
12196        vmovdqu	%ymm4, (%rsp)
12197        vmovdqu	%ymm5, 32(%rsp)
12198        vpaddd	64+L_avx2_sha256_k(%rip), %ymm2, %ymm4
12199        vpaddd	96+L_avx2_sha256_k(%rip), %ymm3, %ymm5
12200        vmovdqu	%ymm4, 64(%rsp)
12201        vmovdqu	%ymm5, 96(%rsp)
12202        # msg_sched: 0-3
12203        # rnd_0: 0 - 0
12204        rorl	$14, %edx
12205        vpalignr	$4, %ymm0, %ymm1, %ymm5
12206        vpalignr	$4, %ymm2, %ymm3, %ymm4
12207        # rnd_0: 1 - 2
12208        movl	%r9d, %eax
12209        movl	%r13d, %ecx
12210        addl	(%rsp), %r15d
12211        xorl	%r14d, %ecx
12212        xorl	%r12d, %edx
12213        andl	%r12d, %ecx
12214        vpsrld	$7, %ymm5, %ymm6
12215        vpslld	$25, %ymm5, %ymm7
12216        # rnd_0: 3 - 4
12217        rorl	$5, %edx
12218        xorl	%r14d, %ecx
12219        xorl	%r12d, %edx
12220        addl	%ecx, %r15d
12221        rorl	$6, %edx
12222        xorl	%r8d, %eax
12223        addl	%edx, %r15d
12224        movl	%r8d, %ecx
12225        vpsrld	$18, %ymm5, %ymm8
12226        vpslld	$14, %ymm5, %ymm9
12227        # rnd_0: 5 - 6
12228        andl	%eax, %ebx
12229        rorl	$9, %ecx
12230        xorl	%r8d, %ecx
12231        xorl	%r9d, %ebx
12232        rorl	$11, %ecx
12233        addl	%r15d, %r11d
12234        xorl	%r8d, %ecx
12235        addl	%ebx, %r15d
12236        vpor	%ymm6, %ymm7, %ymm6
12237        vpor	%ymm8, %ymm9, %ymm8
12238        # rnd_0: 7 - 7
12239        rorl	$2, %ecx
12240        movl	%r11d, %edx
12241        addl	%ecx, %r15d
12242        # rnd_1: 0 - 1
12243        rorl	$14, %edx
12244        movl	%r8d, %ebx
12245        movl	%r12d, %ecx
12246        addl	4(%rsp), %r14d
12247        xorl	%r13d, %ecx
12248        vpsrld	$3, %ymm5, %ymm9
12249        vpxor	%ymm6, %ymm8, %ymm6
12250        # rnd_1: 2 - 3
12251        xorl	%r11d, %edx
12252        andl	%r11d, %ecx
12253        rorl	$5, %edx
12254        xorl	%r13d, %ecx
12255        xorl	%r11d, %edx
12256        addl	%ecx, %r14d
12257        vpxor	%ymm6, %ymm9, %ymm5
12258        vpshufd	$0xfa, %ymm3, %ymm6
12259        # rnd_1: 4 - 5
12260        rorl	$6, %edx
12261        xorl	%r15d, %ebx
12262        addl	%edx, %r14d
12263        movl	%r15d, %ecx
12264        andl	%ebx, %eax
12265        rorl	$9, %ecx
12266        xorl	%r15d, %ecx
12267        xorl	%r8d, %eax
12268        vpsrld	$10, %ymm6, %ymm8
12269        vpsrlq	$19, %ymm6, %ymm7
12270        # rnd_1: 6 - 7
12271        rorl	$11, %ecx
12272        addl	%r14d, %r10d
12273        xorl	%r15d, %ecx
12274        addl	%eax, %r14d
12275        rorl	$2, %ecx
12276        movl	%r10d, %edx
12277        addl	%ecx, %r14d
12278        # rnd_0: 0 - 0
12279        rorl	$14, %edx
12280        vpsrlq	$0x11, %ymm6, %ymm6
12281        vpaddd	%ymm0, %ymm4, %ymm4
12282        # rnd_0: 1 - 3
12283        movl	%r15d, %eax
12284        movl	%r11d, %ecx
12285        addl	8(%rsp), %r13d
12286        xorl	%r12d, %ecx
12287        xorl	%r10d, %edx
12288        andl	%r10d, %ecx
12289        rorl	$5, %edx
12290        xorl	%r12d, %ecx
12291        xorl	%r10d, %edx
12292        addl	%ecx, %r13d
12293        vpxor	%ymm6, %ymm7, %ymm6
12294        vpaddd	%ymm5, %ymm4, %ymm4
12295        # rnd_0: 4 - 4
12296        rorl	$6, %edx
12297        xorl	%r14d, %eax
12298        addl	%edx, %r13d
12299        movl	%r14d, %ecx
12300        vpxor	%ymm6, %ymm8, %ymm8
12301        # rnd_0: 5 - 5
12302        andl	%eax, %ebx
12303        rorl	$9, %ecx
12304        xorl	%r14d, %ecx
12305        xorl	%r15d, %ebx
12306        vpshufb	%ymm11, %ymm8, %ymm8
12307        # rnd_0: 6 - 6
12308        rorl	$11, %ecx
12309        addl	%r13d, %r9d
12310        xorl	%r14d, %ecx
12311        addl	%ebx, %r13d
12312        vpaddd	%ymm8, %ymm4, %ymm4
12313        # rnd_0: 7 - 7
12314        rorl	$2, %ecx
12315        movl	%r9d, %edx
12316        addl	%ecx, %r13d
12317        # rnd_1: 0 - 0
12318        rorl	$14, %edx
12319        vpshufd	$0x50, %ymm4, %ymm6
12320        # rnd_1: 1 - 1
12321        movl	%r14d, %ebx
12322        movl	%r10d, %ecx
12323        addl	12(%rsp), %r12d
12324        xorl	%r11d, %ecx
12325        vpsrlq	$0x11, %ymm6, %ymm8
12326        vpsrlq	$19, %ymm6, %ymm7
12327        # rnd_1: 2 - 3
12328        xorl	%r9d, %edx
12329        andl	%r9d, %ecx
12330        rorl	$5, %edx
12331        xorl	%r11d, %ecx
12332        xorl	%r9d, %edx
12333        addl	%ecx, %r12d
12334        vpsrld	$10, %ymm6, %ymm9
12335        vpxor	%ymm8, %ymm7, %ymm8
12336        # rnd_1: 4 - 5
12337        rorl	$6, %edx
12338        xorl	%r13d, %ebx
12339        addl	%edx, %r12d
12340        movl	%r13d, %ecx
12341        andl	%ebx, %eax
12342        rorl	$9, %ecx
12343        xorl	%r13d, %ecx
12344        xorl	%r14d, %eax
12345        vpxor	%ymm9, %ymm8, %ymm9
12346        # rnd_1: 6 - 6
12347        rorl	$11, %ecx
12348        addl	%r12d, %r8d
12349        xorl	%r13d, %ecx
12350        addl	%eax, %r12d
12351        vpshufb	%ymm12, %ymm9, %ymm9
12352        # rnd_1: 7 - 7
12353        rorl	$2, %ecx
12354        movl	%r8d, %edx
12355        addl	%ecx, %r12d
12356        vpaddd	%ymm4, %ymm9, %ymm0
12357        # msg_sched done: 0-3
12358        # msg_sched: 8-11
12359        # rnd_0: 0 - 0
12360        rorl	$14, %edx
12361        vpalignr	$4, %ymm1, %ymm2, %ymm5
12362        vpalignr	$4, %ymm3, %ymm0, %ymm4
12363        # rnd_0: 1 - 2
12364        movl	%r13d, %eax
12365        movl	%r9d, %ecx
12366        addl	32(%rsp), %r11d
12367        xorl	%r10d, %ecx
12368        xorl	%r8d, %edx
12369        andl	%r8d, %ecx
12370        vpsrld	$7, %ymm5, %ymm6
12371        vpslld	$25, %ymm5, %ymm7
12372        # rnd_0: 3 - 4
12373        rorl	$5, %edx
12374        xorl	%r10d, %ecx
12375        xorl	%r8d, %edx
12376        addl	%ecx, %r11d
12377        rorl	$6, %edx
12378        xorl	%r12d, %eax
12379        addl	%edx, %r11d
12380        movl	%r12d, %ecx
12381        vpsrld	$18, %ymm5, %ymm8
12382        vpslld	$14, %ymm5, %ymm9
12383        # rnd_0: 5 - 6
12384        andl	%eax, %ebx
12385        rorl	$9, %ecx
12386        xorl	%r12d, %ecx
12387        xorl	%r13d, %ebx
12388        rorl	$11, %ecx
12389        addl	%r11d, %r15d
12390        xorl	%r12d, %ecx
12391        addl	%ebx, %r11d
12392        vpor	%ymm6, %ymm7, %ymm6
12393        vpor	%ymm8, %ymm9, %ymm8
12394        # rnd_0: 7 - 7
12395        rorl	$2, %ecx
12396        movl	%r15d, %edx
12397        addl	%ecx, %r11d
12398        # rnd_1: 0 - 1
12399        rorl	$14, %edx
12400        movl	%r12d, %ebx
12401        movl	%r8d, %ecx
12402        addl	36(%rsp), %r10d
12403        xorl	%r9d, %ecx
12404        vpsrld	$3, %ymm5, %ymm9
12405        vpxor	%ymm6, %ymm8, %ymm6
12406        # rnd_1: 2 - 3
12407        xorl	%r15d, %edx
12408        andl	%r15d, %ecx
12409        rorl	$5, %edx
12410        xorl	%r9d, %ecx
12411        xorl	%r15d, %edx
12412        addl	%ecx, %r10d
12413        vpxor	%ymm6, %ymm9, %ymm5
12414        vpshufd	$0xfa, %ymm0, %ymm6
12415        # rnd_1: 4 - 5
12416        rorl	$6, %edx
12417        xorl	%r11d, %ebx
12418        addl	%edx, %r10d
12419        movl	%r11d, %ecx
12420        andl	%ebx, %eax
12421        rorl	$9, %ecx
12422        xorl	%r11d, %ecx
12423        xorl	%r12d, %eax
12424        vpsrld	$10, %ymm6, %ymm8
12425        vpsrlq	$19, %ymm6, %ymm7
12426        # rnd_1: 6 - 7
12427        rorl	$11, %ecx
12428        addl	%r10d, %r14d
12429        xorl	%r11d, %ecx
12430        addl	%eax, %r10d
12431        rorl	$2, %ecx
12432        movl	%r14d, %edx
12433        addl	%ecx, %r10d
12434        # rnd_0: 0 - 0
12435        rorl	$14, %edx
12436        vpsrlq	$0x11, %ymm6, %ymm6
12437        vpaddd	%ymm1, %ymm4, %ymm4
12438        # rnd_0: 1 - 3
12439        movl	%r11d, %eax
12440        movl	%r15d, %ecx
12441        addl	40(%rsp), %r9d
12442        xorl	%r8d, %ecx
12443        xorl	%r14d, %edx
12444        andl	%r14d, %ecx
12445        rorl	$5, %edx
12446        xorl	%r8d, %ecx
12447        xorl	%r14d, %edx
12448        addl	%ecx, %r9d
12449        vpxor	%ymm6, %ymm7, %ymm6
12450        vpaddd	%ymm5, %ymm4, %ymm4
12451        # rnd_0: 4 - 4
12452        rorl	$6, %edx
12453        xorl	%r10d, %eax
12454        addl	%edx, %r9d
12455        movl	%r10d, %ecx
12456        vpxor	%ymm6, %ymm8, %ymm8
12457        # rnd_0: 5 - 5
12458        andl	%eax, %ebx
12459        rorl	$9, %ecx
12460        xorl	%r10d, %ecx
12461        xorl	%r11d, %ebx
12462        vpshufb	%ymm11, %ymm8, %ymm8
12463        # rnd_0: 6 - 6
12464        rorl	$11, %ecx
12465        addl	%r9d, %r13d
12466        xorl	%r10d, %ecx
12467        addl	%ebx, %r9d
12468        vpaddd	%ymm8, %ymm4, %ymm4
12469        # rnd_0: 7 - 7
12470        rorl	$2, %ecx
12471        movl	%r13d, %edx
12472        addl	%ecx, %r9d
12473        # rnd_1: 0 - 0
12474        rorl	$14, %edx
12475        vpshufd	$0x50, %ymm4, %ymm6
12476        # rnd_1: 1 - 1
12477        movl	%r10d, %ebx
12478        movl	%r14d, %ecx
12479        addl	44(%rsp), %r8d
12480        xorl	%r15d, %ecx
12481        vpsrlq	$0x11, %ymm6, %ymm8
12482        vpsrlq	$19, %ymm6, %ymm7
12483        # rnd_1: 2 - 3
12484        xorl	%r13d, %edx
12485        andl	%r13d, %ecx
12486        rorl	$5, %edx
12487        xorl	%r15d, %ecx
12488        xorl	%r13d, %edx
12489        addl	%ecx, %r8d
12490        vpsrld	$10, %ymm6, %ymm9
12491        vpxor	%ymm8, %ymm7, %ymm8
12492        # rnd_1: 4 - 5
12493        rorl	$6, %edx
12494        xorl	%r9d, %ebx
12495        addl	%edx, %r8d
12496        movl	%r9d, %ecx
12497        andl	%ebx, %eax
12498        rorl	$9, %ecx
12499        xorl	%r9d, %ecx
12500        xorl	%r10d, %eax
12501        vpxor	%ymm9, %ymm8, %ymm9
12502        # rnd_1: 6 - 6
12503        rorl	$11, %ecx
12504        addl	%r8d, %r12d
12505        xorl	%r9d, %ecx
12506        addl	%eax, %r8d
12507        vpshufb	%ymm12, %ymm9, %ymm9
12508        # rnd_1: 7 - 7
12509        rorl	$2, %ecx
12510        movl	%r12d, %edx
12511        addl	%ecx, %r8d
12512        vpaddd	%ymm4, %ymm9, %ymm1
12513        # msg_sched done: 8-11
12514        # msg_sched: 16-19
12515        # rnd_0: 0 - 0
12516        rorl	$14, %edx
12517        vpalignr	$4, %ymm2, %ymm3, %ymm5
12518        vpalignr	$4, %ymm0, %ymm1, %ymm4
12519        # rnd_0: 1 - 2
12520        movl	%r9d, %eax
12521        movl	%r13d, %ecx
12522        addl	64(%rsp), %r15d
12523        xorl	%r14d, %ecx
12524        xorl	%r12d, %edx
12525        andl	%r12d, %ecx
12526        vpsrld	$7, %ymm5, %ymm6
12527        vpslld	$25, %ymm5, %ymm7
12528        # rnd_0: 3 - 4
12529        rorl	$5, %edx
12530        xorl	%r14d, %ecx
12531        xorl	%r12d, %edx
12532        addl	%ecx, %r15d
12533        rorl	$6, %edx
12534        xorl	%r8d, %eax
12535        addl	%edx, %r15d
12536        movl	%r8d, %ecx
12537        vpsrld	$18, %ymm5, %ymm8
12538        vpslld	$14, %ymm5, %ymm9
12539        # rnd_0: 5 - 6
12540        andl	%eax, %ebx
12541        rorl	$9, %ecx
12542        xorl	%r8d, %ecx
12543        xorl	%r9d, %ebx
12544        rorl	$11, %ecx
12545        addl	%r15d, %r11d
12546        xorl	%r8d, %ecx
12547        addl	%ebx, %r15d
12548        vpor	%ymm6, %ymm7, %ymm6
12549        vpor	%ymm8, %ymm9, %ymm8
12550        # rnd_0: 7 - 7
12551        rorl	$2, %ecx
12552        movl	%r11d, %edx
12553        addl	%ecx, %r15d
12554        # rnd_1: 0 - 1
12555        rorl	$14, %edx
12556        movl	%r8d, %ebx
12557        movl	%r12d, %ecx
12558        addl	68(%rsp), %r14d
12559        xorl	%r13d, %ecx
12560        vpsrld	$3, %ymm5, %ymm9
12561        vpxor	%ymm6, %ymm8, %ymm6
12562        # rnd_1: 2 - 3
12563        xorl	%r11d, %edx
12564        andl	%r11d, %ecx
12565        rorl	$5, %edx
12566        xorl	%r13d, %ecx
12567        xorl	%r11d, %edx
12568        addl	%ecx, %r14d
12569        vpxor	%ymm6, %ymm9, %ymm5
12570        vpshufd	$0xfa, %ymm1, %ymm6
12571        # rnd_1: 4 - 5
12572        rorl	$6, %edx
12573        xorl	%r15d, %ebx
12574        addl	%edx, %r14d
12575        movl	%r15d, %ecx
12576        andl	%ebx, %eax
12577        rorl	$9, %ecx
12578        xorl	%r15d, %ecx
12579        xorl	%r8d, %eax
12580        vpsrld	$10, %ymm6, %ymm8
12581        vpsrlq	$19, %ymm6, %ymm7
12582        # rnd_1: 6 - 7
12583        rorl	$11, %ecx
12584        addl	%r14d, %r10d
12585        xorl	%r15d, %ecx
12586        addl	%eax, %r14d
12587        rorl	$2, %ecx
12588        movl	%r10d, %edx
12589        addl	%ecx, %r14d
12590        # rnd_0: 0 - 0
12591        rorl	$14, %edx
12592        vpsrlq	$0x11, %ymm6, %ymm6
12593        vpaddd	%ymm2, %ymm4, %ymm4
12594        # rnd_0: 1 - 3
12595        movl	%r15d, %eax
12596        movl	%r11d, %ecx
12597        addl	72(%rsp), %r13d
12598        xorl	%r12d, %ecx
12599        xorl	%r10d, %edx
12600        andl	%r10d, %ecx
12601        rorl	$5, %edx
12602        xorl	%r12d, %ecx
12603        xorl	%r10d, %edx
12604        addl	%ecx, %r13d
12605        vpxor	%ymm6, %ymm7, %ymm6
12606        vpaddd	%ymm5, %ymm4, %ymm4
12607        # rnd_0: 4 - 4
12608        rorl	$6, %edx
12609        xorl	%r14d, %eax
12610        addl	%edx, %r13d
12611        movl	%r14d, %ecx
12612        vpxor	%ymm6, %ymm8, %ymm8
12613        # rnd_0: 5 - 5
12614        andl	%eax, %ebx
12615        rorl	$9, %ecx
12616        xorl	%r14d, %ecx
12617        xorl	%r15d, %ebx
12618        vpshufb	%ymm11, %ymm8, %ymm8
12619        # rnd_0: 6 - 6
12620        rorl	$11, %ecx
12621        addl	%r13d, %r9d
12622        xorl	%r14d, %ecx
12623        addl	%ebx, %r13d
12624        vpaddd	%ymm8, %ymm4, %ymm4
12625        # rnd_0: 7 - 7
12626        rorl	$2, %ecx
12627        movl	%r9d, %edx
12628        addl	%ecx, %r13d
12629        # rnd_1: 0 - 0
12630        rorl	$14, %edx
12631        vpshufd	$0x50, %ymm4, %ymm6
12632        # rnd_1: 1 - 1
12633        movl	%r14d, %ebx
12634        movl	%r10d, %ecx
12635        addl	76(%rsp), %r12d
12636        xorl	%r11d, %ecx
12637        vpsrlq	$0x11, %ymm6, %ymm8
12638        vpsrlq	$19, %ymm6, %ymm7
12639        # rnd_1: 2 - 3
12640        xorl	%r9d, %edx
12641        andl	%r9d, %ecx
12642        rorl	$5, %edx
12643        xorl	%r11d, %ecx
12644        xorl	%r9d, %edx
12645        addl	%ecx, %r12d
12646        vpsrld	$10, %ymm6, %ymm9
12647        vpxor	%ymm8, %ymm7, %ymm8
12648        # rnd_1: 4 - 5
12649        rorl	$6, %edx
12650        xorl	%r13d, %ebx
12651        addl	%edx, %r12d
12652        movl	%r13d, %ecx
12653        andl	%ebx, %eax
12654        rorl	$9, %ecx
12655        xorl	%r13d, %ecx
12656        xorl	%r14d, %eax
12657        vpxor	%ymm9, %ymm8, %ymm9
12658        # rnd_1: 6 - 6
12659        rorl	$11, %ecx
12660        addl	%r12d, %r8d
12661        xorl	%r13d, %ecx
12662        addl	%eax, %r12d
12663        vpshufb	%ymm12, %ymm9, %ymm9
12664        # rnd_1: 7 - 7
12665        rorl	$2, %ecx
12666        movl	%r8d, %edx
12667        addl	%ecx, %r12d
12668        vpaddd	%ymm4, %ymm9, %ymm2
12669        # msg_sched done: 16-19
12670        # msg_sched: 24-27
12671        # rnd_0: 0 - 0
12672        rorl	$14, %edx
12673        vpalignr	$4, %ymm3, %ymm0, %ymm5
12674        vpalignr	$4, %ymm1, %ymm2, %ymm4
12675        # rnd_0: 1 - 2
12676        movl	%r13d, %eax
12677        movl	%r9d, %ecx
12678        addl	96(%rsp), %r11d
12679        xorl	%r10d, %ecx
12680        xorl	%r8d, %edx
12681        andl	%r8d, %ecx
12682        vpsrld	$7, %ymm5, %ymm6
12683        vpslld	$25, %ymm5, %ymm7
12684        # rnd_0: 3 - 4
12685        rorl	$5, %edx
12686        xorl	%r10d, %ecx
12687        xorl	%r8d, %edx
12688        addl	%ecx, %r11d
12689        rorl	$6, %edx
12690        xorl	%r12d, %eax
12691        addl	%edx, %r11d
12692        movl	%r12d, %ecx
12693        vpsrld	$18, %ymm5, %ymm8
12694        vpslld	$14, %ymm5, %ymm9
12695        # rnd_0: 5 - 6
12696        andl	%eax, %ebx
12697        rorl	$9, %ecx
12698        xorl	%r12d, %ecx
12699        xorl	%r13d, %ebx
12700        rorl	$11, %ecx
12701        addl	%r11d, %r15d
12702        xorl	%r12d, %ecx
12703        addl	%ebx, %r11d
12704        vpor	%ymm6, %ymm7, %ymm6
12705        vpor	%ymm8, %ymm9, %ymm8
12706        # rnd_0: 7 - 7
12707        rorl	$2, %ecx
12708        movl	%r15d, %edx
12709        addl	%ecx, %r11d
12710        # rnd_1: 0 - 1
12711        rorl	$14, %edx
12712        movl	%r12d, %ebx
12713        movl	%r8d, %ecx
12714        addl	100(%rsp), %r10d
12715        xorl	%r9d, %ecx
12716        vpsrld	$3, %ymm5, %ymm9
12717        vpxor	%ymm6, %ymm8, %ymm6
12718        # rnd_1: 2 - 3
12719        xorl	%r15d, %edx
12720        andl	%r15d, %ecx
12721        rorl	$5, %edx
12722        xorl	%r9d, %ecx
12723        xorl	%r15d, %edx
12724        addl	%ecx, %r10d
12725        vpxor	%ymm6, %ymm9, %ymm5
12726        vpshufd	$0xfa, %ymm2, %ymm6
12727        # rnd_1: 4 - 5
12728        rorl	$6, %edx
12729        xorl	%r11d, %ebx
12730        addl	%edx, %r10d
12731        movl	%r11d, %ecx
12732        andl	%ebx, %eax
12733        rorl	$9, %ecx
12734        xorl	%r11d, %ecx
12735        xorl	%r12d, %eax
12736        vpsrld	$10, %ymm6, %ymm8
12737        vpsrlq	$19, %ymm6, %ymm7
12738        # rnd_1: 6 - 7
12739        rorl	$11, %ecx
12740        addl	%r10d, %r14d
12741        xorl	%r11d, %ecx
12742        addl	%eax, %r10d
12743        rorl	$2, %ecx
12744        movl	%r14d, %edx
12745        addl	%ecx, %r10d
12746        # rnd_0: 0 - 0
12747        rorl	$14, %edx
12748        vpsrlq	$0x11, %ymm6, %ymm6
12749        vpaddd	%ymm3, %ymm4, %ymm4
12750        # rnd_0: 1 - 3
12751        movl	%r11d, %eax
12752        movl	%r15d, %ecx
12753        addl	104(%rsp), %r9d
12754        xorl	%r8d, %ecx
12755        xorl	%r14d, %edx
12756        andl	%r14d, %ecx
12757        rorl	$5, %edx
12758        xorl	%r8d, %ecx
12759        xorl	%r14d, %edx
12760        addl	%ecx, %r9d
12761        vpxor	%ymm6, %ymm7, %ymm6
12762        vpaddd	%ymm5, %ymm4, %ymm4
12763        # rnd_0: 4 - 4
12764        rorl	$6, %edx
12765        xorl	%r10d, %eax
12766        addl	%edx, %r9d
12767        movl	%r10d, %ecx
12768        vpxor	%ymm6, %ymm8, %ymm8
12769        # rnd_0: 5 - 5
12770        andl	%eax, %ebx
12771        rorl	$9, %ecx
12772        xorl	%r10d, %ecx
12773        xorl	%r11d, %ebx
12774        vpshufb	%ymm11, %ymm8, %ymm8
12775        # rnd_0: 6 - 6
12776        rorl	$11, %ecx
12777        addl	%r9d, %r13d
12778        xorl	%r10d, %ecx
12779        addl	%ebx, %r9d
12780        vpaddd	%ymm8, %ymm4, %ymm4
12781        # rnd_0: 7 - 7
12782        rorl	$2, %ecx
12783        movl	%r13d, %edx
12784        addl	%ecx, %r9d
12785        # rnd_1: 0 - 0
12786        rorl	$14, %edx
12787        vpshufd	$0x50, %ymm4, %ymm6
12788        # rnd_1: 1 - 1
12789        movl	%r10d, %ebx
12790        movl	%r14d, %ecx
12791        addl	108(%rsp), %r8d
12792        xorl	%r15d, %ecx
12793        vpsrlq	$0x11, %ymm6, %ymm8
12794        vpsrlq	$19, %ymm6, %ymm7
12795        # rnd_1: 2 - 3
12796        xorl	%r13d, %edx
12797        andl	%r13d, %ecx
12798        rorl	$5, %edx
12799        xorl	%r15d, %ecx
12800        xorl	%r13d, %edx
12801        addl	%ecx, %r8d
12802        vpsrld	$10, %ymm6, %ymm9
12803        vpxor	%ymm8, %ymm7, %ymm8
12804        # rnd_1: 4 - 5
12805        rorl	$6, %edx
12806        xorl	%r9d, %ebx
12807        addl	%edx, %r8d
12808        movl	%r9d, %ecx
12809        andl	%ebx, %eax
12810        rorl	$9, %ecx
12811        xorl	%r9d, %ecx
12812        xorl	%r10d, %eax
12813        vpxor	%ymm9, %ymm8, %ymm9
12814        # rnd_1: 6 - 6
12815        rorl	$11, %ecx
12816        addl	%r8d, %r12d
12817        xorl	%r9d, %ecx
12818        addl	%eax, %r8d
12819        vpshufb	%ymm12, %ymm9, %ymm9
12820        # rnd_1: 7 - 7
12821        rorl	$2, %ecx
12822        movl	%r12d, %edx
12823        addl	%ecx, %r8d
12824        vpaddd	%ymm4, %ymm9, %ymm3
12825        # msg_sched done: 24-27
12826        # set_w_k_xfer_4: 4
12827        vpaddd	128+L_avx2_sha256_k(%rip), %ymm0, %ymm4
12828        vpaddd	160+L_avx2_sha256_k(%rip), %ymm1, %ymm5
12829        vmovdqu	%ymm4, 128(%rsp)
12830        vmovdqu	%ymm5, 160(%rsp)
12831        vpaddd	192+L_avx2_sha256_k(%rip), %ymm2, %ymm4
12832        vpaddd	224+L_avx2_sha256_k(%rip), %ymm3, %ymm5
12833        vmovdqu	%ymm4, 192(%rsp)
12834        vmovdqu	%ymm5, 224(%rsp)
12835        # msg_sched: 32-35
12836        # rnd_0: 0 - 0
12837        rorl	$14, %edx
12838        vpalignr	$4, %ymm0, %ymm1, %ymm5
12839        vpalignr	$4, %ymm2, %ymm3, %ymm4
12840        # rnd_0: 1 - 2
12841        movl	%r9d, %eax
12842        movl	%r13d, %ecx
12843        addl	128(%rsp), %r15d
12844        xorl	%r14d, %ecx
12845        xorl	%r12d, %edx
12846        andl	%r12d, %ecx
12847        vpsrld	$7, %ymm5, %ymm6
12848        vpslld	$25, %ymm5, %ymm7
12849        # rnd_0: 3 - 4
12850        rorl	$5, %edx
12851        xorl	%r14d, %ecx
12852        xorl	%r12d, %edx
12853        addl	%ecx, %r15d
12854        rorl	$6, %edx
12855        xorl	%r8d, %eax
12856        addl	%edx, %r15d
12857        movl	%r8d, %ecx
12858        vpsrld	$18, %ymm5, %ymm8
12859        vpslld	$14, %ymm5, %ymm9
12860        # rnd_0: 5 - 6
12861        andl	%eax, %ebx
12862        rorl	$9, %ecx
12863        xorl	%r8d, %ecx
12864        xorl	%r9d, %ebx
12865        rorl	$11, %ecx
12866        addl	%r15d, %r11d
12867        xorl	%r8d, %ecx
12868        addl	%ebx, %r15d
12869        vpor	%ymm6, %ymm7, %ymm6
12870        vpor	%ymm8, %ymm9, %ymm8
12871        # rnd_0: 7 - 7
12872        rorl	$2, %ecx
12873        movl	%r11d, %edx
12874        addl	%ecx, %r15d
12875        # rnd_1: 0 - 1
12876        rorl	$14, %edx
12877        movl	%r8d, %ebx
12878        movl	%r12d, %ecx
12879        addl	132(%rsp), %r14d
12880        xorl	%r13d, %ecx
12881        vpsrld	$3, %ymm5, %ymm9
12882        vpxor	%ymm6, %ymm8, %ymm6
12883        # rnd_1: 2 - 3
12884        xorl	%r11d, %edx
12885        andl	%r11d, %ecx
12886        rorl	$5, %edx
12887        xorl	%r13d, %ecx
12888        xorl	%r11d, %edx
12889        addl	%ecx, %r14d
12890        vpxor	%ymm6, %ymm9, %ymm5
12891        vpshufd	$0xfa, %ymm3, %ymm6
12892        # rnd_1: 4 - 5
12893        rorl	$6, %edx
12894        xorl	%r15d, %ebx
12895        addl	%edx, %r14d
12896        movl	%r15d, %ecx
12897        andl	%ebx, %eax
12898        rorl	$9, %ecx
12899        xorl	%r15d, %ecx
12900        xorl	%r8d, %eax
12901        vpsrld	$10, %ymm6, %ymm8
12902        vpsrlq	$19, %ymm6, %ymm7
12903        # rnd_1: 6 - 7
12904        rorl	$11, %ecx
12905        addl	%r14d, %r10d
12906        xorl	%r15d, %ecx
12907        addl	%eax, %r14d
12908        rorl	$2, %ecx
12909        movl	%r10d, %edx
12910        addl	%ecx, %r14d
12911        # rnd_0: 0 - 0
12912        rorl	$14, %edx
12913        vpsrlq	$0x11, %ymm6, %ymm6
12914        vpaddd	%ymm0, %ymm4, %ymm4
12915        # rnd_0: 1 - 3
12916        movl	%r15d, %eax
12917        movl	%r11d, %ecx
12918        addl	136(%rsp), %r13d
12919        xorl	%r12d, %ecx
12920        xorl	%r10d, %edx
12921        andl	%r10d, %ecx
12922        rorl	$5, %edx
12923        xorl	%r12d, %ecx
12924        xorl	%r10d, %edx
12925        addl	%ecx, %r13d
12926        vpxor	%ymm6, %ymm7, %ymm6
12927        vpaddd	%ymm5, %ymm4, %ymm4
12928        # rnd_0: 4 - 4
12929        rorl	$6, %edx
12930        xorl	%r14d, %eax
12931        addl	%edx, %r13d
12932        movl	%r14d, %ecx
12933        vpxor	%ymm6, %ymm8, %ymm8
12934        # rnd_0: 5 - 5
12935        andl	%eax, %ebx
12936        rorl	$9, %ecx
12937        xorl	%r14d, %ecx
12938        xorl	%r15d, %ebx
12939        vpshufb	%ymm11, %ymm8, %ymm8
12940        # rnd_0: 6 - 6
12941        rorl	$11, %ecx
12942        addl	%r13d, %r9d
12943        xorl	%r14d, %ecx
12944        addl	%ebx, %r13d
12945        vpaddd	%ymm8, %ymm4, %ymm4
12946        # rnd_0: 7 - 7
12947        rorl	$2, %ecx
12948        movl	%r9d, %edx
12949        addl	%ecx, %r13d
12950        # rnd_1: 0 - 0
12951        rorl	$14, %edx
12952        vpshufd	$0x50, %ymm4, %ymm6
12953        # rnd_1: 1 - 1
12954        movl	%r14d, %ebx
12955        movl	%r10d, %ecx
12956        addl	140(%rsp), %r12d
12957        xorl	%r11d, %ecx
12958        vpsrlq	$0x11, %ymm6, %ymm8
12959        vpsrlq	$19, %ymm6, %ymm7
12960        # rnd_1: 2 - 3
12961        xorl	%r9d, %edx
12962        andl	%r9d, %ecx
12963        rorl	$5, %edx
12964        xorl	%r11d, %ecx
12965        xorl	%r9d, %edx
12966        addl	%ecx, %r12d
12967        vpsrld	$10, %ymm6, %ymm9
12968        vpxor	%ymm8, %ymm7, %ymm8
12969        # rnd_1: 4 - 5
12970        rorl	$6, %edx
12971        xorl	%r13d, %ebx
12972        addl	%edx, %r12d
12973        movl	%r13d, %ecx
12974        andl	%ebx, %eax
12975        rorl	$9, %ecx
12976        xorl	%r13d, %ecx
12977        xorl	%r14d, %eax
12978        vpxor	%ymm9, %ymm8, %ymm9
12979        # rnd_1: 6 - 6
12980        rorl	$11, %ecx
12981        addl	%r12d, %r8d
12982        xorl	%r13d, %ecx
12983        addl	%eax, %r12d
12984        vpshufb	%ymm12, %ymm9, %ymm9
12985        # rnd_1: 7 - 7
12986        rorl	$2, %ecx
12987        movl	%r8d, %edx
12988        addl	%ecx, %r12d
12989        vpaddd	%ymm4, %ymm9, %ymm0
12990        # msg_sched done: 32-35
12991        # msg_sched: 40-43
12992        # rnd_0: 0 - 0
12993        rorl	$14, %edx
12994        vpalignr	$4, %ymm1, %ymm2, %ymm5
12995        vpalignr	$4, %ymm3, %ymm0, %ymm4
12996        # rnd_0: 1 - 2
12997        movl	%r13d, %eax
12998        movl	%r9d, %ecx
12999        addl	160(%rsp), %r11d
13000        xorl	%r10d, %ecx
13001        xorl	%r8d, %edx
13002        andl	%r8d, %ecx
13003        vpsrld	$7, %ymm5, %ymm6
13004        vpslld	$25, %ymm5, %ymm7
13005        # rnd_0: 3 - 4
13006        rorl	$5, %edx
13007        xorl	%r10d, %ecx
13008        xorl	%r8d, %edx
13009        addl	%ecx, %r11d
13010        rorl	$6, %edx
13011        xorl	%r12d, %eax
13012        addl	%edx, %r11d
13013        movl	%r12d, %ecx
13014        vpsrld	$18, %ymm5, %ymm8
13015        vpslld	$14, %ymm5, %ymm9
13016        # rnd_0: 5 - 6
13017        andl	%eax, %ebx
13018        rorl	$9, %ecx
13019        xorl	%r12d, %ecx
13020        xorl	%r13d, %ebx
13021        rorl	$11, %ecx
13022        addl	%r11d, %r15d
13023        xorl	%r12d, %ecx
13024        addl	%ebx, %r11d
13025        vpor	%ymm6, %ymm7, %ymm6
13026        vpor	%ymm8, %ymm9, %ymm8
13027        # rnd_0: 7 - 7
13028        rorl	$2, %ecx
13029        movl	%r15d, %edx
13030        addl	%ecx, %r11d
13031        # rnd_1: 0 - 1
13032        rorl	$14, %edx
13033        movl	%r12d, %ebx
13034        movl	%r8d, %ecx
13035        addl	164(%rsp), %r10d
13036        xorl	%r9d, %ecx
13037        vpsrld	$3, %ymm5, %ymm9
13038        vpxor	%ymm6, %ymm8, %ymm6
13039        # rnd_1: 2 - 3
13040        xorl	%r15d, %edx
13041        andl	%r15d, %ecx
13042        rorl	$5, %edx
13043        xorl	%r9d, %ecx
13044        xorl	%r15d, %edx
13045        addl	%ecx, %r10d
13046        vpxor	%ymm6, %ymm9, %ymm5
13047        vpshufd	$0xfa, %ymm0, %ymm6
13048        # rnd_1: 4 - 5
13049        rorl	$6, %edx
13050        xorl	%r11d, %ebx
13051        addl	%edx, %r10d
13052        movl	%r11d, %ecx
13053        andl	%ebx, %eax
13054        rorl	$9, %ecx
13055        xorl	%r11d, %ecx
13056        xorl	%r12d, %eax
13057        vpsrld	$10, %ymm6, %ymm8
13058        vpsrlq	$19, %ymm6, %ymm7
13059        # rnd_1: 6 - 7
13060        rorl	$11, %ecx
13061        addl	%r10d, %r14d
13062        xorl	%r11d, %ecx
13063        addl	%eax, %r10d
13064        rorl	$2, %ecx
13065        movl	%r14d, %edx
13066        addl	%ecx, %r10d
13067        # rnd_0: 0 - 0
13068        rorl	$14, %edx
13069        vpsrlq	$0x11, %ymm6, %ymm6
13070        vpaddd	%ymm1, %ymm4, %ymm4
13071        # rnd_0: 1 - 3
13072        movl	%r11d, %eax
13073        movl	%r15d, %ecx
13074        addl	168(%rsp), %r9d
13075        xorl	%r8d, %ecx
13076        xorl	%r14d, %edx
13077        andl	%r14d, %ecx
13078        rorl	$5, %edx
13079        xorl	%r8d, %ecx
13080        xorl	%r14d, %edx
13081        addl	%ecx, %r9d
13082        vpxor	%ymm6, %ymm7, %ymm6
13083        vpaddd	%ymm5, %ymm4, %ymm4
13084        # rnd_0: 4 - 4
13085        rorl	$6, %edx
13086        xorl	%r10d, %eax
13087        addl	%edx, %r9d
13088        movl	%r10d, %ecx
13089        vpxor	%ymm6, %ymm8, %ymm8
13090        # rnd_0: 5 - 5
13091        andl	%eax, %ebx
13092        rorl	$9, %ecx
13093        xorl	%r10d, %ecx
13094        xorl	%r11d, %ebx
13095        vpshufb	%ymm11, %ymm8, %ymm8
13096        # rnd_0: 6 - 6
13097        rorl	$11, %ecx
13098        addl	%r9d, %r13d
13099        xorl	%r10d, %ecx
13100        addl	%ebx, %r9d
13101        vpaddd	%ymm8, %ymm4, %ymm4
13102        # rnd_0: 7 - 7
13103        rorl	$2, %ecx
13104        movl	%r13d, %edx
13105        addl	%ecx, %r9d
13106        # rnd_1: 0 - 0
13107        rorl	$14, %edx
13108        vpshufd	$0x50, %ymm4, %ymm6
13109        # rnd_1: 1 - 1
13110        movl	%r10d, %ebx
13111        movl	%r14d, %ecx
13112        addl	172(%rsp), %r8d
13113        xorl	%r15d, %ecx
13114        vpsrlq	$0x11, %ymm6, %ymm8
13115        vpsrlq	$19, %ymm6, %ymm7
13116        # rnd_1: 2 - 3
13117        xorl	%r13d, %edx
13118        andl	%r13d, %ecx
13119        rorl	$5, %edx
13120        xorl	%r15d, %ecx
13121        xorl	%r13d, %edx
13122        addl	%ecx, %r8d
13123        vpsrld	$10, %ymm6, %ymm9
13124        vpxor	%ymm8, %ymm7, %ymm8
13125        # rnd_1: 4 - 5
13126        rorl	$6, %edx
13127        xorl	%r9d, %ebx
13128        addl	%edx, %r8d
13129        movl	%r9d, %ecx
13130        andl	%ebx, %eax
13131        rorl	$9, %ecx
13132        xorl	%r9d, %ecx
13133        xorl	%r10d, %eax
13134        vpxor	%ymm9, %ymm8, %ymm9
13135        # rnd_1: 6 - 6
13136        rorl	$11, %ecx
13137        addl	%r8d, %r12d
13138        xorl	%r9d, %ecx
13139        addl	%eax, %r8d
13140        vpshufb	%ymm12, %ymm9, %ymm9
13141        # rnd_1: 7 - 7
13142        rorl	$2, %ecx
13143        movl	%r12d, %edx
13144        addl	%ecx, %r8d
13145        vpaddd	%ymm4, %ymm9, %ymm1
13146        # msg_sched done: 40-43
13147        # msg_sched: 48-51
13148        # rnd_0: 0 - 0
13149        rorl	$14, %edx
13150        vpalignr	$4, %ymm2, %ymm3, %ymm5
13151        vpalignr	$4, %ymm0, %ymm1, %ymm4
13152        # rnd_0: 1 - 2
13153        movl	%r9d, %eax
13154        movl	%r13d, %ecx
13155        addl	192(%rsp), %r15d
13156        xorl	%r14d, %ecx
13157        xorl	%r12d, %edx
13158        andl	%r12d, %ecx
13159        vpsrld	$7, %ymm5, %ymm6
13160        vpslld	$25, %ymm5, %ymm7
13161        # rnd_0: 3 - 4
13162        rorl	$5, %edx
13163        xorl	%r14d, %ecx
13164        xorl	%r12d, %edx
13165        addl	%ecx, %r15d
13166        rorl	$6, %edx
13167        xorl	%r8d, %eax
13168        addl	%edx, %r15d
13169        movl	%r8d, %ecx
13170        vpsrld	$18, %ymm5, %ymm8
13171        vpslld	$14, %ymm5, %ymm9
13172        # rnd_0: 5 - 6
13173        andl	%eax, %ebx
13174        rorl	$9, %ecx
13175        xorl	%r8d, %ecx
13176        xorl	%r9d, %ebx
13177        rorl	$11, %ecx
13178        addl	%r15d, %r11d
13179        xorl	%r8d, %ecx
13180        addl	%ebx, %r15d
13181        vpor	%ymm6, %ymm7, %ymm6
13182        vpor	%ymm8, %ymm9, %ymm8
13183        # rnd_0: 7 - 7
13184        rorl	$2, %ecx
13185        movl	%r11d, %edx
13186        addl	%ecx, %r15d
13187        # rnd_1: 0 - 1
13188        rorl	$14, %edx
13189        movl	%r8d, %ebx
13190        movl	%r12d, %ecx
13191        addl	196(%rsp), %r14d
13192        xorl	%r13d, %ecx
13193        vpsrld	$3, %ymm5, %ymm9
13194        vpxor	%ymm6, %ymm8, %ymm6
13195        # rnd_1: 2 - 3
13196        xorl	%r11d, %edx
13197        andl	%r11d, %ecx
13198        rorl	$5, %edx
13199        xorl	%r13d, %ecx
13200        xorl	%r11d, %edx
13201        addl	%ecx, %r14d
13202        vpxor	%ymm6, %ymm9, %ymm5
13203        vpshufd	$0xfa, %ymm1, %ymm6
13204        # rnd_1: 4 - 5
13205        rorl	$6, %edx
13206        xorl	%r15d, %ebx
13207        addl	%edx, %r14d
13208        movl	%r15d, %ecx
13209        andl	%ebx, %eax
13210        rorl	$9, %ecx
13211        xorl	%r15d, %ecx
13212        xorl	%r8d, %eax
13213        vpsrld	$10, %ymm6, %ymm8
13214        vpsrlq	$19, %ymm6, %ymm7
13215        # rnd_1: 6 - 7
13216        rorl	$11, %ecx
13217        addl	%r14d, %r10d
13218        xorl	%r15d, %ecx
13219        addl	%eax, %r14d
13220        rorl	$2, %ecx
13221        movl	%r10d, %edx
13222        addl	%ecx, %r14d
13223        # rnd_0: 0 - 0
13224        rorl	$14, %edx
13225        vpsrlq	$0x11, %ymm6, %ymm6
13226        vpaddd	%ymm2, %ymm4, %ymm4
13227        # rnd_0: 1 - 3
13228        movl	%r15d, %eax
13229        movl	%r11d, %ecx
13230        addl	200(%rsp), %r13d
13231        xorl	%r12d, %ecx
13232        xorl	%r10d, %edx
13233        andl	%r10d, %ecx
13234        rorl	$5, %edx
13235        xorl	%r12d, %ecx
13236        xorl	%r10d, %edx
13237        addl	%ecx, %r13d
13238        vpxor	%ymm6, %ymm7, %ymm6
13239        vpaddd	%ymm5, %ymm4, %ymm4
13240        # rnd_0: 4 - 4
13241        rorl	$6, %edx
13242        xorl	%r14d, %eax
13243        addl	%edx, %r13d
13244        movl	%r14d, %ecx
13245        vpxor	%ymm6, %ymm8, %ymm8
13246        # rnd_0: 5 - 5
13247        andl	%eax, %ebx
13248        rorl	$9, %ecx
13249        xorl	%r14d, %ecx
13250        xorl	%r15d, %ebx
13251        vpshufb	%ymm11, %ymm8, %ymm8
13252        # rnd_0: 6 - 6
13253        rorl	$11, %ecx
13254        addl	%r13d, %r9d
13255        xorl	%r14d, %ecx
13256        addl	%ebx, %r13d
13257        vpaddd	%ymm8, %ymm4, %ymm4
13258        # rnd_0: 7 - 7
13259        rorl	$2, %ecx
13260        movl	%r9d, %edx
13261        addl	%ecx, %r13d
13262        # rnd_1: 0 - 0
13263        rorl	$14, %edx
13264        vpshufd	$0x50, %ymm4, %ymm6
13265        # rnd_1: 1 - 1
13266        movl	%r14d, %ebx
13267        movl	%r10d, %ecx
13268        addl	204(%rsp), %r12d
13269        xorl	%r11d, %ecx
13270        vpsrlq	$0x11, %ymm6, %ymm8
13271        vpsrlq	$19, %ymm6, %ymm7
13272        # rnd_1: 2 - 3
13273        xorl	%r9d, %edx
13274        andl	%r9d, %ecx
13275        rorl	$5, %edx
13276        xorl	%r11d, %ecx
13277        xorl	%r9d, %edx
13278        addl	%ecx, %r12d
13279        vpsrld	$10, %ymm6, %ymm9
13280        vpxor	%ymm8, %ymm7, %ymm8
13281        # rnd_1: 4 - 5
13282        rorl	$6, %edx
13283        xorl	%r13d, %ebx
13284        addl	%edx, %r12d
13285        movl	%r13d, %ecx
13286        andl	%ebx, %eax
13287        rorl	$9, %ecx
13288        xorl	%r13d, %ecx
13289        xorl	%r14d, %eax
13290        vpxor	%ymm9, %ymm8, %ymm9
13291        # rnd_1: 6 - 6
13292        rorl	$11, %ecx
13293        addl	%r12d, %r8d
13294        xorl	%r13d, %ecx
13295        addl	%eax, %r12d
13296        vpshufb	%ymm12, %ymm9, %ymm9
13297        # rnd_1: 7 - 7
13298        rorl	$2, %ecx
13299        movl	%r8d, %edx
13300        addl	%ecx, %r12d
13301        vpaddd	%ymm4, %ymm9, %ymm2
13302        # msg_sched done: 48-51
13303        # msg_sched: 56-59
13304        # rnd_0: 0 - 0
13305        rorl	$14, %edx
13306        vpalignr	$4, %ymm3, %ymm0, %ymm5
13307        vpalignr	$4, %ymm1, %ymm2, %ymm4
13308        # rnd_0: 1 - 2
13309        movl	%r13d, %eax
13310        movl	%r9d, %ecx
13311        addl	224(%rsp), %r11d
13312        xorl	%r10d, %ecx
13313        xorl	%r8d, %edx
13314        andl	%r8d, %ecx
13315        vpsrld	$7, %ymm5, %ymm6
13316        vpslld	$25, %ymm5, %ymm7
13317        # rnd_0: 3 - 4
13318        rorl	$5, %edx
13319        xorl	%r10d, %ecx
13320        xorl	%r8d, %edx
13321        addl	%ecx, %r11d
13322        rorl	$6, %edx
13323        xorl	%r12d, %eax
13324        addl	%edx, %r11d
13325        movl	%r12d, %ecx
13326        vpsrld	$18, %ymm5, %ymm8
13327        vpslld	$14, %ymm5, %ymm9
13328        # rnd_0: 5 - 6
13329        andl	%eax, %ebx
13330        rorl	$9, %ecx
13331        xorl	%r12d, %ecx
13332        xorl	%r13d, %ebx
13333        rorl	$11, %ecx
13334        addl	%r11d, %r15d
13335        xorl	%r12d, %ecx
13336        addl	%ebx, %r11d
13337        vpor	%ymm6, %ymm7, %ymm6
13338        vpor	%ymm8, %ymm9, %ymm8
13339        # rnd_0: 7 - 7
13340        rorl	$2, %ecx
13341        movl	%r15d, %edx
13342        addl	%ecx, %r11d
13343        # rnd_1: 0 - 1
13344        rorl	$14, %edx
13345        movl	%r12d, %ebx
13346        movl	%r8d, %ecx
13347        addl	228(%rsp), %r10d
13348        xorl	%r9d, %ecx
13349        vpsrld	$3, %ymm5, %ymm9
13350        vpxor	%ymm6, %ymm8, %ymm6
13351        # rnd_1: 2 - 3
13352        xorl	%r15d, %edx
13353        andl	%r15d, %ecx
13354        rorl	$5, %edx
13355        xorl	%r9d, %ecx
13356        xorl	%r15d, %edx
13357        addl	%ecx, %r10d
13358        vpxor	%ymm6, %ymm9, %ymm5
13359        vpshufd	$0xfa, %ymm2, %ymm6
13360        # rnd_1: 4 - 5
13361        rorl	$6, %edx
13362        xorl	%r11d, %ebx
13363        addl	%edx, %r10d
13364        movl	%r11d, %ecx
13365        andl	%ebx, %eax
13366        rorl	$9, %ecx
13367        xorl	%r11d, %ecx
13368        xorl	%r12d, %eax
13369        vpsrld	$10, %ymm6, %ymm8
13370        vpsrlq	$19, %ymm6, %ymm7
13371        # rnd_1: 6 - 7
13372        rorl	$11, %ecx
13373        addl	%r10d, %r14d
13374        xorl	%r11d, %ecx
13375        addl	%eax, %r10d
13376        rorl	$2, %ecx
13377        movl	%r14d, %edx
13378        addl	%ecx, %r10d
13379        # rnd_0: 0 - 0
13380        rorl	$14, %edx
13381        vpsrlq	$0x11, %ymm6, %ymm6
13382        vpaddd	%ymm3, %ymm4, %ymm4
13383        # rnd_0: 1 - 3
13384        movl	%r11d, %eax
13385        movl	%r15d, %ecx
13386        addl	232(%rsp), %r9d
13387        xorl	%r8d, %ecx
13388        xorl	%r14d, %edx
13389        andl	%r14d, %ecx
13390        rorl	$5, %edx
13391        xorl	%r8d, %ecx
13392        xorl	%r14d, %edx
13393        addl	%ecx, %r9d
13394        vpxor	%ymm6, %ymm7, %ymm6
13395        vpaddd	%ymm5, %ymm4, %ymm4
13396        # rnd_0: 4 - 4
13397        rorl	$6, %edx
13398        xorl	%r10d, %eax
13399        addl	%edx, %r9d
13400        movl	%r10d, %ecx
13401        vpxor	%ymm6, %ymm8, %ymm8
13402        # rnd_0: 5 - 5
13403        andl	%eax, %ebx
13404        rorl	$9, %ecx
13405        xorl	%r10d, %ecx
13406        xorl	%r11d, %ebx
13407        vpshufb	%ymm11, %ymm8, %ymm8
13408        # rnd_0: 6 - 6
13409        rorl	$11, %ecx
13410        addl	%r9d, %r13d
13411        xorl	%r10d, %ecx
13412        addl	%ebx, %r9d
13413        vpaddd	%ymm8, %ymm4, %ymm4
13414        # rnd_0: 7 - 7
13415        rorl	$2, %ecx
13416        movl	%r13d, %edx
13417        addl	%ecx, %r9d
13418        # rnd_1: 0 - 0
13419        rorl	$14, %edx
13420        vpshufd	$0x50, %ymm4, %ymm6
13421        # rnd_1: 1 - 1
13422        movl	%r10d, %ebx
13423        movl	%r14d, %ecx
13424        addl	236(%rsp), %r8d
13425        xorl	%r15d, %ecx
13426        vpsrlq	$0x11, %ymm6, %ymm8
13427        vpsrlq	$19, %ymm6, %ymm7
13428        # rnd_1: 2 - 3
13429        xorl	%r13d, %edx
13430        andl	%r13d, %ecx
13431        rorl	$5, %edx
13432        xorl	%r15d, %ecx
13433        xorl	%r13d, %edx
13434        addl	%ecx, %r8d
13435        vpsrld	$10, %ymm6, %ymm9
13436        vpxor	%ymm8, %ymm7, %ymm8
13437        # rnd_1: 4 - 5
13438        rorl	$6, %edx
13439        xorl	%r9d, %ebx
13440        addl	%edx, %r8d
13441        movl	%r9d, %ecx
13442        andl	%ebx, %eax
13443        rorl	$9, %ecx
13444        xorl	%r9d, %ecx
13445        xorl	%r10d, %eax
13446        vpxor	%ymm9, %ymm8, %ymm9
13447        # rnd_1: 6 - 6
13448        rorl	$11, %ecx
13449        addl	%r8d, %r12d
13450        xorl	%r9d, %ecx
13451        addl	%eax, %r8d
13452        vpshufb	%ymm12, %ymm9, %ymm9
13453        # rnd_1: 7 - 7
13454        rorl	$2, %ecx
13455        movl	%r12d, %edx
13456        addl	%ecx, %r8d
13457        vpaddd	%ymm4, %ymm9, %ymm3
13458        # msg_sched done: 56-59
13459        # set_w_k_xfer_4: 8
13460        vpaddd	256+L_avx2_sha256_k(%rip), %ymm0, %ymm4
13461        vpaddd	288+L_avx2_sha256_k(%rip), %ymm1, %ymm5
13462        vmovdqu	%ymm4, 256(%rsp)
13463        vmovdqu	%ymm5, 288(%rsp)
13464        vpaddd	320+L_avx2_sha256_k(%rip), %ymm2, %ymm4
13465        vpaddd	352+L_avx2_sha256_k(%rip), %ymm3, %ymm5
13466        vmovdqu	%ymm4, 320(%rsp)
13467        vmovdqu	%ymm5, 352(%rsp)
13468        # msg_sched: 64-67
13469        # rnd_0: 0 - 0
13470        rorl	$14, %edx
13471        vpalignr	$4, %ymm0, %ymm1, %ymm5
13472        vpalignr	$4, %ymm2, %ymm3, %ymm4
13473        # rnd_0: 1 - 2
13474        movl	%r9d, %eax
13475        movl	%r13d, %ecx
13476        addl	256(%rsp), %r15d
13477        xorl	%r14d, %ecx
13478        xorl	%r12d, %edx
13479        andl	%r12d, %ecx
13480        vpsrld	$7, %ymm5, %ymm6
13481        vpslld	$25, %ymm5, %ymm7
13482        # rnd_0: 3 - 4
13483        rorl	$5, %edx
13484        xorl	%r14d, %ecx
13485        xorl	%r12d, %edx
13486        addl	%ecx, %r15d
13487        rorl	$6, %edx
13488        xorl	%r8d, %eax
13489        addl	%edx, %r15d
13490        movl	%r8d, %ecx
13491        vpsrld	$18, %ymm5, %ymm8
13492        vpslld	$14, %ymm5, %ymm9
13493        # rnd_0: 5 - 6
13494        andl	%eax, %ebx
13495        rorl	$9, %ecx
13496        xorl	%r8d, %ecx
13497        xorl	%r9d, %ebx
13498        rorl	$11, %ecx
13499        addl	%r15d, %r11d
13500        xorl	%r8d, %ecx
13501        addl	%ebx, %r15d
13502        vpor	%ymm6, %ymm7, %ymm6
13503        vpor	%ymm8, %ymm9, %ymm8
13504        # rnd_0: 7 - 7
13505        rorl	$2, %ecx
13506        movl	%r11d, %edx
13507        addl	%ecx, %r15d
13508        # rnd_1: 0 - 1
13509        rorl	$14, %edx
13510        movl	%r8d, %ebx
13511        movl	%r12d, %ecx
13512        addl	260(%rsp), %r14d
13513        xorl	%r13d, %ecx
13514        vpsrld	$3, %ymm5, %ymm9
13515        vpxor	%ymm6, %ymm8, %ymm6
13516        # rnd_1: 2 - 3
13517        xorl	%r11d, %edx
13518        andl	%r11d, %ecx
13519        rorl	$5, %edx
13520        xorl	%r13d, %ecx
13521        xorl	%r11d, %edx
13522        addl	%ecx, %r14d
13523        vpxor	%ymm6, %ymm9, %ymm5
13524        vpshufd	$0xfa, %ymm3, %ymm6
13525        # rnd_1: 4 - 5
13526        rorl	$6, %edx
13527        xorl	%r15d, %ebx
13528        addl	%edx, %r14d
13529        movl	%r15d, %ecx
13530        andl	%ebx, %eax
13531        rorl	$9, %ecx
13532        xorl	%r15d, %ecx
13533        xorl	%r8d, %eax
13534        vpsrld	$10, %ymm6, %ymm8
13535        vpsrlq	$19, %ymm6, %ymm7
13536        # rnd_1: 6 - 7
13537        rorl	$11, %ecx
13538        addl	%r14d, %r10d
13539        xorl	%r15d, %ecx
13540        addl	%eax, %r14d
13541        rorl	$2, %ecx
13542        movl	%r10d, %edx
13543        addl	%ecx, %r14d
13544        # rnd_0: 0 - 0
13545        rorl	$14, %edx
13546        vpsrlq	$0x11, %ymm6, %ymm6
13547        vpaddd	%ymm0, %ymm4, %ymm4
13548        # rnd_0: 1 - 3
13549        movl	%r15d, %eax
13550        movl	%r11d, %ecx
13551        addl	264(%rsp), %r13d
13552        xorl	%r12d, %ecx
13553        xorl	%r10d, %edx
13554        andl	%r10d, %ecx
13555        rorl	$5, %edx
13556        xorl	%r12d, %ecx
13557        xorl	%r10d, %edx
13558        addl	%ecx, %r13d
13559        vpxor	%ymm6, %ymm7, %ymm6
13560        vpaddd	%ymm5, %ymm4, %ymm4
13561        # rnd_0: 4 - 4
13562        rorl	$6, %edx
13563        xorl	%r14d, %eax
13564        addl	%edx, %r13d
13565        movl	%r14d, %ecx
13566        vpxor	%ymm6, %ymm8, %ymm8
13567        # rnd_0: 5 - 5
13568        andl	%eax, %ebx
13569        rorl	$9, %ecx
13570        xorl	%r14d, %ecx
13571        xorl	%r15d, %ebx
13572        vpshufb	%ymm11, %ymm8, %ymm8
13573        # rnd_0: 6 - 6
13574        rorl	$11, %ecx
13575        addl	%r13d, %r9d
13576        xorl	%r14d, %ecx
13577        addl	%ebx, %r13d
13578        vpaddd	%ymm8, %ymm4, %ymm4
13579        # rnd_0: 7 - 7
13580        rorl	$2, %ecx
13581        movl	%r9d, %edx
13582        addl	%ecx, %r13d
13583        # rnd_1: 0 - 0
13584        rorl	$14, %edx
13585        vpshufd	$0x50, %ymm4, %ymm6
13586        # rnd_1: 1 - 1
13587        movl	%r14d, %ebx
13588        movl	%r10d, %ecx
13589        addl	268(%rsp), %r12d
13590        xorl	%r11d, %ecx
13591        vpsrlq	$0x11, %ymm6, %ymm8
13592        vpsrlq	$19, %ymm6, %ymm7
13593        # rnd_1: 2 - 3
13594        xorl	%r9d, %edx
13595        andl	%r9d, %ecx
13596        rorl	$5, %edx
13597        xorl	%r11d, %ecx
13598        xorl	%r9d, %edx
13599        addl	%ecx, %r12d
13600        vpsrld	$10, %ymm6, %ymm9
13601        vpxor	%ymm8, %ymm7, %ymm8
13602        # rnd_1: 4 - 5
13603        rorl	$6, %edx
13604        xorl	%r13d, %ebx
13605        addl	%edx, %r12d
13606        movl	%r13d, %ecx
13607        andl	%ebx, %eax
13608        rorl	$9, %ecx
13609        xorl	%r13d, %ecx
13610        xorl	%r14d, %eax
13611        vpxor	%ymm9, %ymm8, %ymm9
13612        # rnd_1: 6 - 6
13613        rorl	$11, %ecx
13614        addl	%r12d, %r8d
13615        xorl	%r13d, %ecx
13616        addl	%eax, %r12d
13617        vpshufb	%ymm12, %ymm9, %ymm9
13618        # rnd_1: 7 - 7
13619        rorl	$2, %ecx
13620        movl	%r8d, %edx
13621        addl	%ecx, %r12d
13622        vpaddd	%ymm4, %ymm9, %ymm0
13623        # msg_sched done: 64-67
13624        # msg_sched: 72-75
13625        # rnd_0: 0 - 0
13626        rorl	$14, %edx
13627        vpalignr	$4, %ymm1, %ymm2, %ymm5
13628        vpalignr	$4, %ymm3, %ymm0, %ymm4
13629        # rnd_0: 1 - 2
13630        movl	%r13d, %eax
13631        movl	%r9d, %ecx
13632        addl	288(%rsp), %r11d
13633        xorl	%r10d, %ecx
13634        xorl	%r8d, %edx
13635        andl	%r8d, %ecx
13636        vpsrld	$7, %ymm5, %ymm6
13637        vpslld	$25, %ymm5, %ymm7
13638        # rnd_0: 3 - 4
13639        rorl	$5, %edx
13640        xorl	%r10d, %ecx
13641        xorl	%r8d, %edx
13642        addl	%ecx, %r11d
13643        rorl	$6, %edx
13644        xorl	%r12d, %eax
13645        addl	%edx, %r11d
13646        movl	%r12d, %ecx
13647        vpsrld	$18, %ymm5, %ymm8
13648        vpslld	$14, %ymm5, %ymm9
13649        # rnd_0: 5 - 6
13650        andl	%eax, %ebx
13651        rorl	$9, %ecx
13652        xorl	%r12d, %ecx
13653        xorl	%r13d, %ebx
13654        rorl	$11, %ecx
13655        addl	%r11d, %r15d
13656        xorl	%r12d, %ecx
13657        addl	%ebx, %r11d
13658        vpor	%ymm6, %ymm7, %ymm6
13659        vpor	%ymm8, %ymm9, %ymm8
13660        # rnd_0: 7 - 7
13661        rorl	$2, %ecx
13662        movl	%r15d, %edx
13663        addl	%ecx, %r11d
13664        # rnd_1: 0 - 1
13665        rorl	$14, %edx
13666        movl	%r12d, %ebx
13667        movl	%r8d, %ecx
13668        addl	292(%rsp), %r10d
13669        xorl	%r9d, %ecx
13670        vpsrld	$3, %ymm5, %ymm9
13671        vpxor	%ymm6, %ymm8, %ymm6
13672        # rnd_1: 2 - 3
13673        xorl	%r15d, %edx
13674        andl	%r15d, %ecx
13675        rorl	$5, %edx
13676        xorl	%r9d, %ecx
13677        xorl	%r15d, %edx
13678        addl	%ecx, %r10d
13679        vpxor	%ymm6, %ymm9, %ymm5
13680        vpshufd	$0xfa, %ymm0, %ymm6
13681        # rnd_1: 4 - 5
13682        rorl	$6, %edx
13683        xorl	%r11d, %ebx
13684        addl	%edx, %r10d
13685        movl	%r11d, %ecx
13686        andl	%ebx, %eax
13687        rorl	$9, %ecx
13688        xorl	%r11d, %ecx
13689        xorl	%r12d, %eax
13690        vpsrld	$10, %ymm6, %ymm8
13691        vpsrlq	$19, %ymm6, %ymm7
13692        # rnd_1: 6 - 7
13693        rorl	$11, %ecx
13694        addl	%r10d, %r14d
13695        xorl	%r11d, %ecx
13696        addl	%eax, %r10d
13697        rorl	$2, %ecx
13698        movl	%r14d, %edx
13699        addl	%ecx, %r10d
13700        # rnd_0: 0 - 0
13701        rorl	$14, %edx
13702        vpsrlq	$0x11, %ymm6, %ymm6
13703        vpaddd	%ymm1, %ymm4, %ymm4
13704        # rnd_0: 1 - 3
13705        movl	%r11d, %eax
13706        movl	%r15d, %ecx
13707        addl	296(%rsp), %r9d
13708        xorl	%r8d, %ecx
13709        xorl	%r14d, %edx
13710        andl	%r14d, %ecx
13711        rorl	$5, %edx
13712        xorl	%r8d, %ecx
13713        xorl	%r14d, %edx
13714        addl	%ecx, %r9d
13715        vpxor	%ymm6, %ymm7, %ymm6
13716        vpaddd	%ymm5, %ymm4, %ymm4
13717        # rnd_0: 4 - 4
13718        rorl	$6, %edx
13719        xorl	%r10d, %eax
13720        addl	%edx, %r9d
13721        movl	%r10d, %ecx
13722        vpxor	%ymm6, %ymm8, %ymm8
13723        # rnd_0: 5 - 5
13724        andl	%eax, %ebx
13725        rorl	$9, %ecx
13726        xorl	%r10d, %ecx
13727        xorl	%r11d, %ebx
13728        vpshufb	%ymm11, %ymm8, %ymm8
13729        # rnd_0: 6 - 6
13730        rorl	$11, %ecx
13731        addl	%r9d, %r13d
13732        xorl	%r10d, %ecx
13733        addl	%ebx, %r9d
13734        vpaddd	%ymm8, %ymm4, %ymm4
13735        # rnd_0: 7 - 7
13736        rorl	$2, %ecx
13737        movl	%r13d, %edx
13738        addl	%ecx, %r9d
13739        # rnd_1: 0 - 0
13740        rorl	$14, %edx
13741        vpshufd	$0x50, %ymm4, %ymm6
13742        # rnd_1: 1 - 1
13743        movl	%r10d, %ebx
13744        movl	%r14d, %ecx
13745        addl	300(%rsp), %r8d
13746        xorl	%r15d, %ecx
13747        vpsrlq	$0x11, %ymm6, %ymm8
13748        vpsrlq	$19, %ymm6, %ymm7
13749        # rnd_1: 2 - 3
13750        xorl	%r13d, %edx
13751        andl	%r13d, %ecx
13752        rorl	$5, %edx
13753        xorl	%r15d, %ecx
13754        xorl	%r13d, %edx
13755        addl	%ecx, %r8d
13756        vpsrld	$10, %ymm6, %ymm9
13757        vpxor	%ymm8, %ymm7, %ymm8
13758        # rnd_1: 4 - 5
13759        rorl	$6, %edx
13760        xorl	%r9d, %ebx
13761        addl	%edx, %r8d
13762        movl	%r9d, %ecx
13763        andl	%ebx, %eax
13764        rorl	$9, %ecx
13765        xorl	%r9d, %ecx
13766        xorl	%r10d, %eax
13767        vpxor	%ymm9, %ymm8, %ymm9
13768        # rnd_1: 6 - 6
13769        rorl	$11, %ecx
13770        addl	%r8d, %r12d
13771        xorl	%r9d, %ecx
13772        addl	%eax, %r8d
13773        vpshufb	%ymm12, %ymm9, %ymm9
13774        # rnd_1: 7 - 7
13775        rorl	$2, %ecx
13776        movl	%r12d, %edx
13777        addl	%ecx, %r8d
13778        vpaddd	%ymm4, %ymm9, %ymm1
13779        # msg_sched done: 72-75
13780        # msg_sched: 80-83
13781        # rnd_0: 0 - 0
13782        rorl	$14, %edx
13783        vpalignr	$4, %ymm2, %ymm3, %ymm5
13784        vpalignr	$4, %ymm0, %ymm1, %ymm4
13785        # rnd_0: 1 - 2
13786        movl	%r9d, %eax
13787        movl	%r13d, %ecx
13788        addl	320(%rsp), %r15d
13789        xorl	%r14d, %ecx
13790        xorl	%r12d, %edx
13791        andl	%r12d, %ecx
13792        vpsrld	$7, %ymm5, %ymm6
13793        vpslld	$25, %ymm5, %ymm7
13794        # rnd_0: 3 - 4
13795        rorl	$5, %edx
13796        xorl	%r14d, %ecx
13797        xorl	%r12d, %edx
13798        addl	%ecx, %r15d
13799        rorl	$6, %edx
13800        xorl	%r8d, %eax
13801        addl	%edx, %r15d
13802        movl	%r8d, %ecx
13803        vpsrld	$18, %ymm5, %ymm8
13804        vpslld	$14, %ymm5, %ymm9
13805        # rnd_0: 5 - 6
13806        andl	%eax, %ebx
13807        rorl	$9, %ecx
13808        xorl	%r8d, %ecx
13809        xorl	%r9d, %ebx
13810        rorl	$11, %ecx
13811        addl	%r15d, %r11d
13812        xorl	%r8d, %ecx
13813        addl	%ebx, %r15d
13814        vpor	%ymm6, %ymm7, %ymm6
13815        vpor	%ymm8, %ymm9, %ymm8
13816        # rnd_0: 7 - 7
13817        rorl	$2, %ecx
13818        movl	%r11d, %edx
13819        addl	%ecx, %r15d
13820        # rnd_1: 0 - 1
13821        rorl	$14, %edx
13822        movl	%r8d, %ebx
13823        movl	%r12d, %ecx
13824        addl	324(%rsp), %r14d
13825        xorl	%r13d, %ecx
13826        vpsrld	$3, %ymm5, %ymm9
13827        vpxor	%ymm6, %ymm8, %ymm6
13828        # rnd_1: 2 - 3
13829        xorl	%r11d, %edx
13830        andl	%r11d, %ecx
13831        rorl	$5, %edx
13832        xorl	%r13d, %ecx
13833        xorl	%r11d, %edx
13834        addl	%ecx, %r14d
13835        vpxor	%ymm6, %ymm9, %ymm5
13836        vpshufd	$0xfa, %ymm1, %ymm6
13837        # rnd_1: 4 - 5
13838        rorl	$6, %edx
13839        xorl	%r15d, %ebx
13840        addl	%edx, %r14d
13841        movl	%r15d, %ecx
13842        andl	%ebx, %eax
13843        rorl	$9, %ecx
13844        xorl	%r15d, %ecx
13845        xorl	%r8d, %eax
13846        vpsrld	$10, %ymm6, %ymm8
13847        vpsrlq	$19, %ymm6, %ymm7
13848        # rnd_1: 6 - 7
13849        rorl	$11, %ecx
13850        addl	%r14d, %r10d
13851        xorl	%r15d, %ecx
13852        addl	%eax, %r14d
13853        rorl	$2, %ecx
13854        movl	%r10d, %edx
13855        addl	%ecx, %r14d
13856        # rnd_0: 0 - 0
13857        rorl	$14, %edx
13858        vpsrlq	$0x11, %ymm6, %ymm6
13859        vpaddd	%ymm2, %ymm4, %ymm4
13860        # rnd_0: 1 - 3
13861        movl	%r15d, %eax
13862        movl	%r11d, %ecx
13863        addl	328(%rsp), %r13d
13864        xorl	%r12d, %ecx
13865        xorl	%r10d, %edx
13866        andl	%r10d, %ecx
13867        rorl	$5, %edx
13868        xorl	%r12d, %ecx
13869        xorl	%r10d, %edx
13870        addl	%ecx, %r13d
13871        vpxor	%ymm6, %ymm7, %ymm6
13872        vpaddd	%ymm5, %ymm4, %ymm4
13873        # rnd_0: 4 - 4
13874        rorl	$6, %edx
13875        xorl	%r14d, %eax
13876        addl	%edx, %r13d
13877        movl	%r14d, %ecx
13878        vpxor	%ymm6, %ymm8, %ymm8
13879        # rnd_0: 5 - 5
13880        andl	%eax, %ebx
13881        rorl	$9, %ecx
13882        xorl	%r14d, %ecx
13883        xorl	%r15d, %ebx
13884        vpshufb	%ymm11, %ymm8, %ymm8
13885        # rnd_0: 6 - 6
13886        rorl	$11, %ecx
13887        addl	%r13d, %r9d
13888        xorl	%r14d, %ecx
13889        addl	%ebx, %r13d
13890        vpaddd	%ymm8, %ymm4, %ymm4
13891        # rnd_0: 7 - 7
13892        rorl	$2, %ecx
13893        movl	%r9d, %edx
13894        addl	%ecx, %r13d
13895        # rnd_1: 0 - 0
13896        rorl	$14, %edx
13897        vpshufd	$0x50, %ymm4, %ymm6
13898        # rnd_1: 1 - 1
13899        movl	%r14d, %ebx
13900        movl	%r10d, %ecx
13901        addl	332(%rsp), %r12d
13902        xorl	%r11d, %ecx
13903        vpsrlq	$0x11, %ymm6, %ymm8
13904        vpsrlq	$19, %ymm6, %ymm7
13905        # rnd_1: 2 - 3
13906        xorl	%r9d, %edx
13907        andl	%r9d, %ecx
13908        rorl	$5, %edx
13909        xorl	%r11d, %ecx
13910        xorl	%r9d, %edx
13911        addl	%ecx, %r12d
13912        vpsrld	$10, %ymm6, %ymm9
13913        vpxor	%ymm8, %ymm7, %ymm8
13914        # rnd_1: 4 - 5
13915        rorl	$6, %edx
13916        xorl	%r13d, %ebx
13917        addl	%edx, %r12d
13918        movl	%r13d, %ecx
13919        andl	%ebx, %eax
13920        rorl	$9, %ecx
13921        xorl	%r13d, %ecx
13922        xorl	%r14d, %eax
13923        vpxor	%ymm9, %ymm8, %ymm9
13924        # rnd_1: 6 - 6
13925        rorl	$11, %ecx
13926        addl	%r12d, %r8d
13927        xorl	%r13d, %ecx
13928        addl	%eax, %r12d
13929        vpshufb	%ymm12, %ymm9, %ymm9
13930        # rnd_1: 7 - 7
13931        rorl	$2, %ecx
13932        movl	%r8d, %edx
13933        addl	%ecx, %r12d
13934        vpaddd	%ymm4, %ymm9, %ymm2
13935        # msg_sched done: 80-83
13936        # msg_sched: 88-91
13937        # rnd_0: 0 - 0
13938        rorl	$14, %edx
13939        vpalignr	$4, %ymm3, %ymm0, %ymm5
13940        vpalignr	$4, %ymm1, %ymm2, %ymm4
13941        # rnd_0: 1 - 2
13942        movl	%r13d, %eax
13943        movl	%r9d, %ecx
13944        addl	352(%rsp), %r11d
13945        xorl	%r10d, %ecx
13946        xorl	%r8d, %edx
13947        andl	%r8d, %ecx
13948        vpsrld	$7, %ymm5, %ymm6
13949        vpslld	$25, %ymm5, %ymm7
13950        # rnd_0: 3 - 4
13951        rorl	$5, %edx
13952        xorl	%r10d, %ecx
13953        xorl	%r8d, %edx
13954        addl	%ecx, %r11d
13955        rorl	$6, %edx
13956        xorl	%r12d, %eax
13957        addl	%edx, %r11d
13958        movl	%r12d, %ecx
13959        vpsrld	$18, %ymm5, %ymm8
13960        vpslld	$14, %ymm5, %ymm9
13961        # rnd_0: 5 - 6
13962        andl	%eax, %ebx
13963        rorl	$9, %ecx
13964        xorl	%r12d, %ecx
13965        xorl	%r13d, %ebx
13966        rorl	$11, %ecx
13967        addl	%r11d, %r15d
13968        xorl	%r12d, %ecx
13969        addl	%ebx, %r11d
13970        vpor	%ymm6, %ymm7, %ymm6
13971        vpor	%ymm8, %ymm9, %ymm8
13972        # rnd_0: 7 - 7
13973        rorl	$2, %ecx
13974        movl	%r15d, %edx
13975        addl	%ecx, %r11d
13976        # rnd_1: 0 - 1
13977        rorl	$14, %edx
13978        movl	%r12d, %ebx
13979        movl	%r8d, %ecx
13980        addl	356(%rsp), %r10d
13981        xorl	%r9d, %ecx
13982        vpsrld	$3, %ymm5, %ymm9
13983        vpxor	%ymm6, %ymm8, %ymm6
13984        # rnd_1: 2 - 3
13985        xorl	%r15d, %edx
13986        andl	%r15d, %ecx
13987        rorl	$5, %edx
13988        xorl	%r9d, %ecx
13989        xorl	%r15d, %edx
13990        addl	%ecx, %r10d
13991        vpxor	%ymm6, %ymm9, %ymm5
13992        vpshufd	$0xfa, %ymm2, %ymm6
13993        # rnd_1: 4 - 5
13994        rorl	$6, %edx
13995        xorl	%r11d, %ebx
13996        addl	%edx, %r10d
13997        movl	%r11d, %ecx
13998        andl	%ebx, %eax
13999        rorl	$9, %ecx
14000        xorl	%r11d, %ecx
14001        xorl	%r12d, %eax
14002        vpsrld	$10, %ymm6, %ymm8
14003        vpsrlq	$19, %ymm6, %ymm7
14004        # rnd_1: 6 - 7
14005        rorl	$11, %ecx
14006        addl	%r10d, %r14d
14007        xorl	%r11d, %ecx
14008        addl	%eax, %r10d
14009        rorl	$2, %ecx
14010        movl	%r14d, %edx
14011        addl	%ecx, %r10d
14012        # rnd_0: 0 - 0
14013        rorl	$14, %edx
14014        vpsrlq	$0x11, %ymm6, %ymm6
14015        vpaddd	%ymm3, %ymm4, %ymm4
14016        # rnd_0: 1 - 3
14017        movl	%r11d, %eax
14018        movl	%r15d, %ecx
14019        addl	360(%rsp), %r9d
14020        xorl	%r8d, %ecx
14021        xorl	%r14d, %edx
14022        andl	%r14d, %ecx
14023        rorl	$5, %edx
14024        xorl	%r8d, %ecx
14025        xorl	%r14d, %edx
14026        addl	%ecx, %r9d
14027        vpxor	%ymm6, %ymm7, %ymm6
14028        vpaddd	%ymm5, %ymm4, %ymm4
14029        # rnd_0: 4 - 4
14030        rorl	$6, %edx
14031        xorl	%r10d, %eax
14032        addl	%edx, %r9d
14033        movl	%r10d, %ecx
14034        vpxor	%ymm6, %ymm8, %ymm8
14035        # rnd_0: 5 - 5
14036        andl	%eax, %ebx
14037        rorl	$9, %ecx
14038        xorl	%r10d, %ecx
14039        xorl	%r11d, %ebx
14040        vpshufb	%ymm11, %ymm8, %ymm8
14041        # rnd_0: 6 - 6
14042        rorl	$11, %ecx
14043        addl	%r9d, %r13d
14044        xorl	%r10d, %ecx
14045        addl	%ebx, %r9d
14046        vpaddd	%ymm8, %ymm4, %ymm4
14047        # rnd_0: 7 - 7
14048        rorl	$2, %ecx
14049        movl	%r13d, %edx
14050        addl	%ecx, %r9d
14051        # rnd_1: 0 - 0
14052        rorl	$14, %edx
14053        vpshufd	$0x50, %ymm4, %ymm6
14054        # rnd_1: 1 - 1
14055        movl	%r10d, %ebx
14056        movl	%r14d, %ecx
14057        addl	364(%rsp), %r8d
14058        xorl	%r15d, %ecx
14059        vpsrlq	$0x11, %ymm6, %ymm8
14060        vpsrlq	$19, %ymm6, %ymm7
14061        # rnd_1: 2 - 3
14062        xorl	%r13d, %edx
14063        andl	%r13d, %ecx
14064        rorl	$5, %edx
14065        xorl	%r15d, %ecx
14066        xorl	%r13d, %edx
14067        addl	%ecx, %r8d
14068        vpsrld	$10, %ymm6, %ymm9
14069        vpxor	%ymm8, %ymm7, %ymm8
14070        # rnd_1: 4 - 5
14071        rorl	$6, %edx
14072        xorl	%r9d, %ebx
14073        addl	%edx, %r8d
14074        movl	%r9d, %ecx
14075        andl	%ebx, %eax
14076        rorl	$9, %ecx
14077        xorl	%r9d, %ecx
14078        xorl	%r10d, %eax
14079        vpxor	%ymm9, %ymm8, %ymm9
14080        # rnd_1: 6 - 6
14081        rorl	$11, %ecx
14082        addl	%r8d, %r12d
14083        xorl	%r9d, %ecx
14084        addl	%eax, %r8d
14085        vpshufb	%ymm12, %ymm9, %ymm9
14086        # rnd_1: 7 - 7
14087        rorl	$2, %ecx
14088        movl	%r12d, %edx
14089        addl	%ecx, %r8d
14090        vpaddd	%ymm4, %ymm9, %ymm3
14091        # msg_sched done: 88-91
14092        # set_w_k_xfer_4: 12
14093        vpaddd	384+L_avx2_sha256_k(%rip), %ymm0, %ymm4
14094        vpaddd	416+L_avx2_sha256_k(%rip), %ymm1, %ymm5
14095        vmovdqu	%ymm4, 384(%rsp)
14096        vmovdqu	%ymm5, 416(%rsp)
14097        vpaddd	448+L_avx2_sha256_k(%rip), %ymm2, %ymm4
14098        vpaddd	480+L_avx2_sha256_k(%rip), %ymm3, %ymm5
14099        vmovdqu	%ymm4, 448(%rsp)
14100        vmovdqu	%ymm5, 480(%rsp)
14101        # rnd_all_4: 24-27
14102        addl	384(%rsp), %r15d
14103        movl	%r13d, %ecx
14104        movl	%r9d, %eax
14105        xorl	%r14d, %ecx
14106        rorl	$14, %edx
14107        andl	%r12d, %ecx
14108        xorl	%r12d, %edx
14109        xorl	%r14d, %ecx
14110        rorl	$5, %edx
14111        addl	%ecx, %r15d
14112        xorl	%r12d, %edx
14113        xorl	%r8d, %eax
14114        rorl	$6, %edx
14115        movl	%r8d, %ecx
14116        addl	%edx, %r15d
14117        rorl	$9, %ecx
14118        andl	%eax, %ebx
14119        xorl	%r8d, %ecx
14120        xorl	%r9d, %ebx
14121        rorl	$11, %ecx
14122        addl	%r15d, %r11d
14123        xorl	%r8d, %ecx
14124        addl	%ebx, %r15d
14125        rorl	$2, %ecx
14126        movl	%r11d, %edx
14127        addl	%ecx, %r15d
14128        addl	388(%rsp), %r14d
14129        movl	%r12d, %ecx
14130        movl	%r8d, %ebx
14131        xorl	%r13d, %ecx
14132        rorl	$14, %edx
14133        andl	%r11d, %ecx
14134        xorl	%r11d, %edx
14135        xorl	%r13d, %ecx
14136        rorl	$5, %edx
14137        addl	%ecx, %r14d
14138        xorl	%r11d, %edx
14139        xorl	%r15d, %ebx
14140        rorl	$6, %edx
14141        movl	%r15d, %ecx
14142        addl	%edx, %r14d
14143        rorl	$9, %ecx
14144        andl	%ebx, %eax
14145        xorl	%r15d, %ecx
14146        xorl	%r8d, %eax
14147        rorl	$11, %ecx
14148        addl	%r14d, %r10d
14149        xorl	%r15d, %ecx
14150        addl	%eax, %r14d
14151        rorl	$2, %ecx
14152        movl	%r10d, %edx
14153        addl	%ecx, %r14d
14154        addl	392(%rsp), %r13d
14155        movl	%r11d, %ecx
14156        movl	%r15d, %eax
14157        xorl	%r12d, %ecx
14158        rorl	$14, %edx
14159        andl	%r10d, %ecx
14160        xorl	%r10d, %edx
14161        xorl	%r12d, %ecx
14162        rorl	$5, %edx
14163        addl	%ecx, %r13d
14164        xorl	%r10d, %edx
14165        xorl	%r14d, %eax
14166        rorl	$6, %edx
14167        movl	%r14d, %ecx
14168        addl	%edx, %r13d
14169        rorl	$9, %ecx
14170        andl	%eax, %ebx
14171        xorl	%r14d, %ecx
14172        xorl	%r15d, %ebx
14173        rorl	$11, %ecx
14174        addl	%r13d, %r9d
14175        xorl	%r14d, %ecx
14176        addl	%ebx, %r13d
14177        rorl	$2, %ecx
14178        movl	%r9d, %edx
14179        addl	%ecx, %r13d
14180        addl	396(%rsp), %r12d
14181        movl	%r10d, %ecx
14182        movl	%r14d, %ebx
14183        xorl	%r11d, %ecx
14184        rorl	$14, %edx
14185        andl	%r9d, %ecx
14186        xorl	%r9d, %edx
14187        xorl	%r11d, %ecx
14188        rorl	$5, %edx
14189        addl	%ecx, %r12d
14190        xorl	%r9d, %edx
14191        xorl	%r13d, %ebx
14192        rorl	$6, %edx
14193        movl	%r13d, %ecx
14194        addl	%edx, %r12d
14195        rorl	$9, %ecx
14196        andl	%ebx, %eax
14197        xorl	%r13d, %ecx
14198        xorl	%r14d, %eax
14199        rorl	$11, %ecx
14200        addl	%r12d, %r8d
14201        xorl	%r13d, %ecx
14202        addl	%eax, %r12d
14203        rorl	$2, %ecx
14204        movl	%r8d, %edx
14205        addl	%ecx, %r12d
14206        # rnd_all_4: 26-29
14207        addl	416(%rsp), %r11d
14208        movl	%r9d, %ecx
14209        movl	%r13d, %eax
14210        xorl	%r10d, %ecx
14211        rorl	$14, %edx
14212        andl	%r8d, %ecx
14213        xorl	%r8d, %edx
14214        xorl	%r10d, %ecx
14215        rorl	$5, %edx
14216        addl	%ecx, %r11d
14217        xorl	%r8d, %edx
14218        xorl	%r12d, %eax
14219        rorl	$6, %edx
14220        movl	%r12d, %ecx
14221        addl	%edx, %r11d
14222        rorl	$9, %ecx
14223        andl	%eax, %ebx
14224        xorl	%r12d, %ecx
14225        xorl	%r13d, %ebx
14226        rorl	$11, %ecx
14227        addl	%r11d, %r15d
14228        xorl	%r12d, %ecx
14229        addl	%ebx, %r11d
14230        rorl	$2, %ecx
14231        movl	%r15d, %edx
14232        addl	%ecx, %r11d
14233        addl	420(%rsp), %r10d
14234        movl	%r8d, %ecx
14235        movl	%r12d, %ebx
14236        xorl	%r9d, %ecx
14237        rorl	$14, %edx
14238        andl	%r15d, %ecx
14239        xorl	%r15d, %edx
14240        xorl	%r9d, %ecx
14241        rorl	$5, %edx
14242        addl	%ecx, %r10d
14243        xorl	%r15d, %edx
14244        xorl	%r11d, %ebx
14245        rorl	$6, %edx
14246        movl	%r11d, %ecx
14247        addl	%edx, %r10d
14248        rorl	$9, %ecx
14249        andl	%ebx, %eax
14250        xorl	%r11d, %ecx
14251        xorl	%r12d, %eax
14252        rorl	$11, %ecx
14253        addl	%r10d, %r14d
14254        xorl	%r11d, %ecx
14255        addl	%eax, %r10d
14256        rorl	$2, %ecx
14257        movl	%r14d, %edx
14258        addl	%ecx, %r10d
14259        addl	424(%rsp), %r9d
14260        movl	%r15d, %ecx
14261        movl	%r11d, %eax
14262        xorl	%r8d, %ecx
14263        rorl	$14, %edx
14264        andl	%r14d, %ecx
14265        xorl	%r14d, %edx
14266        xorl	%r8d, %ecx
14267        rorl	$5, %edx
14268        addl	%ecx, %r9d
14269        xorl	%r14d, %edx
14270        xorl	%r10d, %eax
14271        rorl	$6, %edx
14272        movl	%r10d, %ecx
14273        addl	%edx, %r9d
14274        rorl	$9, %ecx
14275        andl	%eax, %ebx
14276        xorl	%r10d, %ecx
14277        xorl	%r11d, %ebx
14278        rorl	$11, %ecx
14279        addl	%r9d, %r13d
14280        xorl	%r10d, %ecx
14281        addl	%ebx, %r9d
14282        rorl	$2, %ecx
14283        movl	%r13d, %edx
14284        addl	%ecx, %r9d
14285        addl	428(%rsp), %r8d
14286        movl	%r14d, %ecx
14287        movl	%r10d, %ebx
14288        xorl	%r15d, %ecx
14289        rorl	$14, %edx
14290        andl	%r13d, %ecx
14291        xorl	%r13d, %edx
14292        xorl	%r15d, %ecx
14293        rorl	$5, %edx
14294        addl	%ecx, %r8d
14295        xorl	%r13d, %edx
14296        xorl	%r9d, %ebx
14297        rorl	$6, %edx
14298        movl	%r9d, %ecx
14299        addl	%edx, %r8d
14300        rorl	$9, %ecx
14301        andl	%ebx, %eax
14302        xorl	%r9d, %ecx
14303        xorl	%r10d, %eax
14304        rorl	$11, %ecx
14305        addl	%r8d, %r12d
14306        xorl	%r9d, %ecx
14307        addl	%eax, %r8d
14308        rorl	$2, %ecx
14309        movl	%r12d, %edx
14310        addl	%ecx, %r8d
14311        # rnd_all_4: 28-31
14312        addl	448(%rsp), %r15d
14313        movl	%r13d, %ecx
14314        movl	%r9d, %eax
14315        xorl	%r14d, %ecx
14316        rorl	$14, %edx
14317        andl	%r12d, %ecx
14318        xorl	%r12d, %edx
14319        xorl	%r14d, %ecx
14320        rorl	$5, %edx
14321        addl	%ecx, %r15d
14322        xorl	%r12d, %edx
14323        xorl	%r8d, %eax
14324        rorl	$6, %edx
14325        movl	%r8d, %ecx
14326        addl	%edx, %r15d
14327        rorl	$9, %ecx
14328        andl	%eax, %ebx
14329        xorl	%r8d, %ecx
14330        xorl	%r9d, %ebx
14331        rorl	$11, %ecx
14332        addl	%r15d, %r11d
14333        xorl	%r8d, %ecx
14334        addl	%ebx, %r15d
14335        rorl	$2, %ecx
14336        movl	%r11d, %edx
14337        addl	%ecx, %r15d
14338        addl	452(%rsp), %r14d
14339        movl	%r12d, %ecx
14340        movl	%r8d, %ebx
14341        xorl	%r13d, %ecx
14342        rorl	$14, %edx
14343        andl	%r11d, %ecx
14344        xorl	%r11d, %edx
14345        xorl	%r13d, %ecx
14346        rorl	$5, %edx
14347        addl	%ecx, %r14d
14348        xorl	%r11d, %edx
14349        xorl	%r15d, %ebx
14350        rorl	$6, %edx
14351        movl	%r15d, %ecx
14352        addl	%edx, %r14d
14353        rorl	$9, %ecx
14354        andl	%ebx, %eax
14355        xorl	%r15d, %ecx
14356        xorl	%r8d, %eax
14357        rorl	$11, %ecx
14358        addl	%r14d, %r10d
14359        xorl	%r15d, %ecx
14360        addl	%eax, %r14d
14361        rorl	$2, %ecx
14362        movl	%r10d, %edx
14363        addl	%ecx, %r14d
14364        addl	456(%rsp), %r13d
14365        movl	%r11d, %ecx
14366        movl	%r15d, %eax
14367        xorl	%r12d, %ecx
14368        rorl	$14, %edx
14369        andl	%r10d, %ecx
14370        xorl	%r10d, %edx
14371        xorl	%r12d, %ecx
14372        rorl	$5, %edx
14373        addl	%ecx, %r13d
14374        xorl	%r10d, %edx
14375        xorl	%r14d, %eax
14376        rorl	$6, %edx
14377        movl	%r14d, %ecx
14378        addl	%edx, %r13d
14379        rorl	$9, %ecx
14380        andl	%eax, %ebx
14381        xorl	%r14d, %ecx
14382        xorl	%r15d, %ebx
14383        rorl	$11, %ecx
14384        addl	%r13d, %r9d
14385        xorl	%r14d, %ecx
14386        addl	%ebx, %r13d
14387        rorl	$2, %ecx
14388        movl	%r9d, %edx
14389        addl	%ecx, %r13d
14390        addl	460(%rsp), %r12d
14391        movl	%r10d, %ecx
14392        movl	%r14d, %ebx
14393        xorl	%r11d, %ecx
14394        rorl	$14, %edx
14395        andl	%r9d, %ecx
14396        xorl	%r9d, %edx
14397        xorl	%r11d, %ecx
14398        rorl	$5, %edx
14399        addl	%ecx, %r12d
14400        xorl	%r9d, %edx
14401        xorl	%r13d, %ebx
14402        rorl	$6, %edx
14403        movl	%r13d, %ecx
14404        addl	%edx, %r12d
14405        rorl	$9, %ecx
14406        andl	%ebx, %eax
14407        xorl	%r13d, %ecx
14408        xorl	%r14d, %eax
14409        rorl	$11, %ecx
14410        addl	%r12d, %r8d
14411        xorl	%r13d, %ecx
14412        addl	%eax, %r12d
14413        rorl	$2, %ecx
14414        movl	%r8d, %edx
14415        addl	%ecx, %r12d
14416        # rnd_all_4: 30-33
14417        addl	480(%rsp), %r11d
14418        movl	%r9d, %ecx
14419        movl	%r13d, %eax
14420        xorl	%r10d, %ecx
14421        rorl	$14, %edx
14422        andl	%r8d, %ecx
14423        xorl	%r8d, %edx
14424        xorl	%r10d, %ecx
14425        rorl	$5, %edx
14426        addl	%ecx, %r11d
14427        xorl	%r8d, %edx
14428        xorl	%r12d, %eax
14429        rorl	$6, %edx
14430        movl	%r12d, %ecx
14431        addl	%edx, %r11d
14432        rorl	$9, %ecx
14433        andl	%eax, %ebx
14434        xorl	%r12d, %ecx
14435        xorl	%r13d, %ebx
14436        rorl	$11, %ecx
14437        addl	%r11d, %r15d
14438        xorl	%r12d, %ecx
14439        addl	%ebx, %r11d
14440        rorl	$2, %ecx
14441        movl	%r15d, %edx
14442        addl	%ecx, %r11d
14443        addl	484(%rsp), %r10d
14444        movl	%r8d, %ecx
14445        movl	%r12d, %ebx
14446        xorl	%r9d, %ecx
14447        rorl	$14, %edx
14448        andl	%r15d, %ecx
14449        xorl	%r15d, %edx
14450        xorl	%r9d, %ecx
14451        rorl	$5, %edx
14452        addl	%ecx, %r10d
14453        xorl	%r15d, %edx
14454        xorl	%r11d, %ebx
14455        rorl	$6, %edx
14456        movl	%r11d, %ecx
14457        addl	%edx, %r10d
14458        rorl	$9, %ecx
14459        andl	%ebx, %eax
14460        xorl	%r11d, %ecx
14461        xorl	%r12d, %eax
14462        rorl	$11, %ecx
14463        addl	%r10d, %r14d
14464        xorl	%r11d, %ecx
14465        addl	%eax, %r10d
14466        rorl	$2, %ecx
14467        movl	%r14d, %edx
14468        addl	%ecx, %r10d
14469        addl	488(%rsp), %r9d
14470        movl	%r15d, %ecx
14471        movl	%r11d, %eax
14472        xorl	%r8d, %ecx
14473        rorl	$14, %edx
14474        andl	%r14d, %ecx
14475        xorl	%r14d, %edx
14476        xorl	%r8d, %ecx
14477        rorl	$5, %edx
14478        addl	%ecx, %r9d
14479        xorl	%r14d, %edx
14480        xorl	%r10d, %eax
14481        rorl	$6, %edx
14482        movl	%r10d, %ecx
14483        addl	%edx, %r9d
14484        rorl	$9, %ecx
14485        andl	%eax, %ebx
14486        xorl	%r10d, %ecx
14487        xorl	%r11d, %ebx
14488        rorl	$11, %ecx
14489        addl	%r9d, %r13d
14490        xorl	%r10d, %ecx
14491        addl	%ebx, %r9d
14492        rorl	$2, %ecx
14493        movl	%r13d, %edx
14494        addl	%ecx, %r9d
14495        addl	492(%rsp), %r8d
14496        movl	%r14d, %ecx
14497        movl	%r10d, %ebx
14498        xorl	%r15d, %ecx
14499        rorl	$14, %edx
14500        andl	%r13d, %ecx
14501        xorl	%r13d, %edx
14502        xorl	%r15d, %ecx
14503        rorl	$5, %edx
14504        addl	%ecx, %r8d
14505        xorl	%r13d, %edx
14506        xorl	%r9d, %ebx
14507        rorl	$6, %edx
14508        movl	%r9d, %ecx
14509        addl	%edx, %r8d
14510        rorl	$9, %ecx
14511        andl	%ebx, %eax
14512        xorl	%r9d, %ecx
14513        xorl	%r10d, %eax
14514        rorl	$11, %ecx
14515        addl	%r8d, %r12d
14516        xorl	%r9d, %ecx
14517        addl	%eax, %r8d
14518        rorl	$2, %ecx
14519        movl	%r12d, %edx
14520        addl	%ecx, %r8d
14521        addl	(%rdi), %r8d
14522        addl	4(%rdi), %r9d
14523        addl	8(%rdi), %r10d
14524        addl	12(%rdi), %r11d
14525        addl	16(%rdi), %r12d
14526        addl	20(%rdi), %r13d
14527        addl	24(%rdi), %r14d
14528        addl	28(%rdi), %r15d
14529        movl	%r8d, (%rdi)
14530        movl	%r9d, 4(%rdi)
14531        movl	%r10d, 8(%rdi)
14532        movl	%r11d, 12(%rdi)
14533        movl	%r12d, 16(%rdi)
14534        movl	%r13d, 20(%rdi)
14535        movl	%r14d, 24(%rdi)
14536        movl	%r15d, 28(%rdi)
14537        movl	%r9d, %ebx
14538        movl	%r12d, %edx
14539        xorl	%r10d, %ebx
14540        # rnd_all_4: 1-4
14541        addl	16(%rsp), %r15d
14542        movl	%r13d, %ecx
14543        movl	%r9d, %eax
14544        xorl	%r14d, %ecx
14545        rorl	$14, %edx
14546        andl	%r12d, %ecx
14547        xorl	%r12d, %edx
14548        xorl	%r14d, %ecx
14549        rorl	$5, %edx
14550        addl	%ecx, %r15d
14551        xorl	%r12d, %edx
14552        xorl	%r8d, %eax
14553        rorl	$6, %edx
14554        movl	%r8d, %ecx
14555        addl	%edx, %r15d
14556        rorl	$9, %ecx
14557        andl	%eax, %ebx
14558        xorl	%r8d, %ecx
14559        xorl	%r9d, %ebx
14560        rorl	$11, %ecx
14561        addl	%r15d, %r11d
14562        xorl	%r8d, %ecx
14563        addl	%ebx, %r15d
14564        rorl	$2, %ecx
14565        movl	%r11d, %edx
14566        addl	%ecx, %r15d
14567        addl	20(%rsp), %r14d
14568        movl	%r12d, %ecx
14569        movl	%r8d, %ebx
14570        xorl	%r13d, %ecx
14571        rorl	$14, %edx
14572        andl	%r11d, %ecx
14573        xorl	%r11d, %edx
14574        xorl	%r13d, %ecx
14575        rorl	$5, %edx
14576        addl	%ecx, %r14d
14577        xorl	%r11d, %edx
14578        xorl	%r15d, %ebx
14579        rorl	$6, %edx
14580        movl	%r15d, %ecx
14581        addl	%edx, %r14d
14582        rorl	$9, %ecx
14583        andl	%ebx, %eax
14584        xorl	%r15d, %ecx
14585        xorl	%r8d, %eax
14586        rorl	$11, %ecx
14587        addl	%r14d, %r10d
14588        xorl	%r15d, %ecx
14589        addl	%eax, %r14d
14590        rorl	$2, %ecx
14591        movl	%r10d, %edx
14592        addl	%ecx, %r14d
14593        addl	24(%rsp), %r13d
14594        movl	%r11d, %ecx
14595        movl	%r15d, %eax
14596        xorl	%r12d, %ecx
14597        rorl	$14, %edx
14598        andl	%r10d, %ecx
14599        xorl	%r10d, %edx
14600        xorl	%r12d, %ecx
14601        rorl	$5, %edx
14602        addl	%ecx, %r13d
14603        xorl	%r10d, %edx
14604        xorl	%r14d, %eax
14605        rorl	$6, %edx
14606        movl	%r14d, %ecx
14607        addl	%edx, %r13d
14608        rorl	$9, %ecx
14609        andl	%eax, %ebx
14610        xorl	%r14d, %ecx
14611        xorl	%r15d, %ebx
14612        rorl	$11, %ecx
14613        addl	%r13d, %r9d
14614        xorl	%r14d, %ecx
14615        addl	%ebx, %r13d
14616        rorl	$2, %ecx
14617        movl	%r9d, %edx
14618        addl	%ecx, %r13d
14619        addl	28(%rsp), %r12d
14620        movl	%r10d, %ecx
14621        movl	%r14d, %ebx
14622        xorl	%r11d, %ecx
14623        rorl	$14, %edx
14624        andl	%r9d, %ecx
14625        xorl	%r9d, %edx
14626        xorl	%r11d, %ecx
14627        rorl	$5, %edx
14628        addl	%ecx, %r12d
14629        xorl	%r9d, %edx
14630        xorl	%r13d, %ebx
14631        rorl	$6, %edx
14632        movl	%r13d, %ecx
14633        addl	%edx, %r12d
14634        rorl	$9, %ecx
14635        andl	%ebx, %eax
14636        xorl	%r13d, %ecx
14637        xorl	%r14d, %eax
14638        rorl	$11, %ecx
14639        addl	%r12d, %r8d
14640        xorl	%r13d, %ecx
14641        addl	%eax, %r12d
14642        rorl	$2, %ecx
14643        movl	%r8d, %edx
14644        addl	%ecx, %r12d
14645        # rnd_all_4: 3-6
14646        addl	48(%rsp), %r11d
14647        movl	%r9d, %ecx
14648        movl	%r13d, %eax
14649        xorl	%r10d, %ecx
14650        rorl	$14, %edx
14651        andl	%r8d, %ecx
14652        xorl	%r8d, %edx
14653        xorl	%r10d, %ecx
14654        rorl	$5, %edx
14655        addl	%ecx, %r11d
14656        xorl	%r8d, %edx
14657        xorl	%r12d, %eax
14658        rorl	$6, %edx
14659        movl	%r12d, %ecx
14660        addl	%edx, %r11d
14661        rorl	$9, %ecx
14662        andl	%eax, %ebx
14663        xorl	%r12d, %ecx
14664        xorl	%r13d, %ebx
14665        rorl	$11, %ecx
14666        addl	%r11d, %r15d
14667        xorl	%r12d, %ecx
14668        addl	%ebx, %r11d
14669        rorl	$2, %ecx
14670        movl	%r15d, %edx
14671        addl	%ecx, %r11d
14672        addl	52(%rsp), %r10d
14673        movl	%r8d, %ecx
14674        movl	%r12d, %ebx
14675        xorl	%r9d, %ecx
14676        rorl	$14, %edx
14677        andl	%r15d, %ecx
14678        xorl	%r15d, %edx
14679        xorl	%r9d, %ecx
14680        rorl	$5, %edx
14681        addl	%ecx, %r10d
14682        xorl	%r15d, %edx
14683        xorl	%r11d, %ebx
14684        rorl	$6, %edx
14685        movl	%r11d, %ecx
14686        addl	%edx, %r10d
14687        rorl	$9, %ecx
14688        andl	%ebx, %eax
14689        xorl	%r11d, %ecx
14690        xorl	%r12d, %eax
14691        rorl	$11, %ecx
14692        addl	%r10d, %r14d
14693        xorl	%r11d, %ecx
14694        addl	%eax, %r10d
14695        rorl	$2, %ecx
14696        movl	%r14d, %edx
14697        addl	%ecx, %r10d
14698        addl	56(%rsp), %r9d
14699        movl	%r15d, %ecx
14700        movl	%r11d, %eax
14701        xorl	%r8d, %ecx
14702        rorl	$14, %edx
14703        andl	%r14d, %ecx
14704        xorl	%r14d, %edx
14705        xorl	%r8d, %ecx
14706        rorl	$5, %edx
14707        addl	%ecx, %r9d
14708        xorl	%r14d, %edx
14709        xorl	%r10d, %eax
14710        rorl	$6, %edx
14711        movl	%r10d, %ecx
14712        addl	%edx, %r9d
14713        rorl	$9, %ecx
14714        andl	%eax, %ebx
14715        xorl	%r10d, %ecx
14716        xorl	%r11d, %ebx
14717        rorl	$11, %ecx
14718        addl	%r9d, %r13d
14719        xorl	%r10d, %ecx
14720        addl	%ebx, %r9d
14721        rorl	$2, %ecx
14722        movl	%r13d, %edx
14723        addl	%ecx, %r9d
14724        addl	60(%rsp), %r8d
14725        movl	%r14d, %ecx
14726        movl	%r10d, %ebx
14727        xorl	%r15d, %ecx
14728        rorl	$14, %edx
14729        andl	%r13d, %ecx
14730        xorl	%r13d, %edx
14731        xorl	%r15d, %ecx
14732        rorl	$5, %edx
14733        addl	%ecx, %r8d
14734        xorl	%r13d, %edx
14735        xorl	%r9d, %ebx
14736        rorl	$6, %edx
14737        movl	%r9d, %ecx
14738        addl	%edx, %r8d
14739        rorl	$9, %ecx
14740        andl	%ebx, %eax
14741        xorl	%r9d, %ecx
14742        xorl	%r10d, %eax
14743        rorl	$11, %ecx
14744        addl	%r8d, %r12d
14745        xorl	%r9d, %ecx
14746        addl	%eax, %r8d
14747        rorl	$2, %ecx
14748        movl	%r12d, %edx
14749        addl	%ecx, %r8d
14750        # rnd_all_4: 5-8
14751        addl	80(%rsp), %r15d
14752        movl	%r13d, %ecx
14753        movl	%r9d, %eax
14754        xorl	%r14d, %ecx
14755        rorl	$14, %edx
14756        andl	%r12d, %ecx
14757        xorl	%r12d, %edx
14758        xorl	%r14d, %ecx
14759        rorl	$5, %edx
14760        addl	%ecx, %r15d
14761        xorl	%r12d, %edx
14762        xorl	%r8d, %eax
14763        rorl	$6, %edx
14764        movl	%r8d, %ecx
14765        addl	%edx, %r15d
14766        rorl	$9, %ecx
14767        andl	%eax, %ebx
14768        xorl	%r8d, %ecx
14769        xorl	%r9d, %ebx
14770        rorl	$11, %ecx
14771        addl	%r15d, %r11d
14772        xorl	%r8d, %ecx
14773        addl	%ebx, %r15d
14774        rorl	$2, %ecx
14775        movl	%r11d, %edx
14776        addl	%ecx, %r15d
14777        addl	84(%rsp), %r14d
14778        movl	%r12d, %ecx
14779        movl	%r8d, %ebx
14780        xorl	%r13d, %ecx
14781        rorl	$14, %edx
14782        andl	%r11d, %ecx
14783        xorl	%r11d, %edx
14784        xorl	%r13d, %ecx
14785        rorl	$5, %edx
14786        addl	%ecx, %r14d
14787        xorl	%r11d, %edx
14788        xorl	%r15d, %ebx
14789        rorl	$6, %edx
14790        movl	%r15d, %ecx
14791        addl	%edx, %r14d
14792        rorl	$9, %ecx
14793        andl	%ebx, %eax
14794        xorl	%r15d, %ecx
14795        xorl	%r8d, %eax
14796        rorl	$11, %ecx
14797        addl	%r14d, %r10d
14798        xorl	%r15d, %ecx
14799        addl	%eax, %r14d
14800        rorl	$2, %ecx
14801        movl	%r10d, %edx
14802        addl	%ecx, %r14d
14803        addl	88(%rsp), %r13d
14804        movl	%r11d, %ecx
14805        movl	%r15d, %eax
14806        xorl	%r12d, %ecx
14807        rorl	$14, %edx
14808        andl	%r10d, %ecx
14809        xorl	%r10d, %edx
14810        xorl	%r12d, %ecx
14811        rorl	$5, %edx
14812        addl	%ecx, %r13d
14813        xorl	%r10d, %edx
14814        xorl	%r14d, %eax
14815        rorl	$6, %edx
14816        movl	%r14d, %ecx
14817        addl	%edx, %r13d
14818        rorl	$9, %ecx
14819        andl	%eax, %ebx
14820        xorl	%r14d, %ecx
14821        xorl	%r15d, %ebx
14822        rorl	$11, %ecx
14823        addl	%r13d, %r9d
14824        xorl	%r14d, %ecx
14825        addl	%ebx, %r13d
14826        rorl	$2, %ecx
14827        movl	%r9d, %edx
14828        addl	%ecx, %r13d
14829        addl	92(%rsp), %r12d
14830        movl	%r10d, %ecx
14831        movl	%r14d, %ebx
14832        xorl	%r11d, %ecx
14833        rorl	$14, %edx
14834        andl	%r9d, %ecx
14835        xorl	%r9d, %edx
14836        xorl	%r11d, %ecx
14837        rorl	$5, %edx
14838        addl	%ecx, %r12d
14839        xorl	%r9d, %edx
14840        xorl	%r13d, %ebx
14841        rorl	$6, %edx
14842        movl	%r13d, %ecx
14843        addl	%edx, %r12d
14844        rorl	$9, %ecx
14845        andl	%ebx, %eax
14846        xorl	%r13d, %ecx
14847        xorl	%r14d, %eax
14848        rorl	$11, %ecx
14849        addl	%r12d, %r8d
14850        xorl	%r13d, %ecx
14851        addl	%eax, %r12d
14852        rorl	$2, %ecx
14853        movl	%r8d, %edx
14854        addl	%ecx, %r12d
14855        # rnd_all_4: 7-10
14856        addl	112(%rsp), %r11d
14857        movl	%r9d, %ecx
14858        movl	%r13d, %eax
14859        xorl	%r10d, %ecx
14860        rorl	$14, %edx
14861        andl	%r8d, %ecx
14862        xorl	%r8d, %edx
14863        xorl	%r10d, %ecx
14864        rorl	$5, %edx
14865        addl	%ecx, %r11d
14866        xorl	%r8d, %edx
14867        xorl	%r12d, %eax
14868        rorl	$6, %edx
14869        movl	%r12d, %ecx
14870        addl	%edx, %r11d
14871        rorl	$9, %ecx
14872        andl	%eax, %ebx
14873        xorl	%r12d, %ecx
14874        xorl	%r13d, %ebx
14875        rorl	$11, %ecx
14876        addl	%r11d, %r15d
14877        xorl	%r12d, %ecx
14878        addl	%ebx, %r11d
14879        rorl	$2, %ecx
14880        movl	%r15d, %edx
14881        addl	%ecx, %r11d
14882        addl	116(%rsp), %r10d
14883        movl	%r8d, %ecx
14884        movl	%r12d, %ebx
14885        xorl	%r9d, %ecx
14886        rorl	$14, %edx
14887        andl	%r15d, %ecx
14888        xorl	%r15d, %edx
14889        xorl	%r9d, %ecx
14890        rorl	$5, %edx
14891        addl	%ecx, %r10d
14892        xorl	%r15d, %edx
14893        xorl	%r11d, %ebx
14894        rorl	$6, %edx
14895        movl	%r11d, %ecx
14896        addl	%edx, %r10d
14897        rorl	$9, %ecx
14898        andl	%ebx, %eax
14899        xorl	%r11d, %ecx
14900        xorl	%r12d, %eax
14901        rorl	$11, %ecx
14902        addl	%r10d, %r14d
14903        xorl	%r11d, %ecx
14904        addl	%eax, %r10d
14905        rorl	$2, %ecx
14906        movl	%r14d, %edx
14907        addl	%ecx, %r10d
14908        addl	120(%rsp), %r9d
14909        movl	%r15d, %ecx
14910        movl	%r11d, %eax
14911        xorl	%r8d, %ecx
14912        rorl	$14, %edx
14913        andl	%r14d, %ecx
14914        xorl	%r14d, %edx
14915        xorl	%r8d, %ecx
14916        rorl	$5, %edx
14917        addl	%ecx, %r9d
14918        xorl	%r14d, %edx
14919        xorl	%r10d, %eax
14920        rorl	$6, %edx
14921        movl	%r10d, %ecx
14922        addl	%edx, %r9d
14923        rorl	$9, %ecx
14924        andl	%eax, %ebx
14925        xorl	%r10d, %ecx
14926        xorl	%r11d, %ebx
14927        rorl	$11, %ecx
14928        addl	%r9d, %r13d
14929        xorl	%r10d, %ecx
14930        addl	%ebx, %r9d
14931        rorl	$2, %ecx
14932        movl	%r13d, %edx
14933        addl	%ecx, %r9d
14934        addl	124(%rsp), %r8d
14935        movl	%r14d, %ecx
14936        movl	%r10d, %ebx
14937        xorl	%r15d, %ecx
14938        rorl	$14, %edx
14939        andl	%r13d, %ecx
14940        xorl	%r13d, %edx
14941        xorl	%r15d, %ecx
14942        rorl	$5, %edx
14943        addl	%ecx, %r8d
14944        xorl	%r13d, %edx
14945        xorl	%r9d, %ebx
14946        rorl	$6, %edx
14947        movl	%r9d, %ecx
14948        addl	%edx, %r8d
14949        rorl	$9, %ecx
14950        andl	%ebx, %eax
14951        xorl	%r9d, %ecx
14952        xorl	%r10d, %eax
14953        rorl	$11, %ecx
14954        addl	%r8d, %r12d
14955        xorl	%r9d, %ecx
14956        addl	%eax, %r8d
14957        rorl	$2, %ecx
14958        movl	%r12d, %edx
14959        addl	%ecx, %r8d
14960        # rnd_all_4: 9-12
14961        addl	144(%rsp), %r15d
14962        movl	%r13d, %ecx
14963        movl	%r9d, %eax
14964        xorl	%r14d, %ecx
14965        rorl	$14, %edx
14966        andl	%r12d, %ecx
14967        xorl	%r12d, %edx
14968        xorl	%r14d, %ecx
14969        rorl	$5, %edx
14970        addl	%ecx, %r15d
14971        xorl	%r12d, %edx
14972        xorl	%r8d, %eax
14973        rorl	$6, %edx
14974        movl	%r8d, %ecx
14975        addl	%edx, %r15d
14976        rorl	$9, %ecx
14977        andl	%eax, %ebx
14978        xorl	%r8d, %ecx
14979        xorl	%r9d, %ebx
14980        rorl	$11, %ecx
14981        addl	%r15d, %r11d
14982        xorl	%r8d, %ecx
14983        addl	%ebx, %r15d
14984        rorl	$2, %ecx
14985        movl	%r11d, %edx
14986        addl	%ecx, %r15d
14987        addl	148(%rsp), %r14d
14988        movl	%r12d, %ecx
14989        movl	%r8d, %ebx
14990        xorl	%r13d, %ecx
14991        rorl	$14, %edx
14992        andl	%r11d, %ecx
14993        xorl	%r11d, %edx
14994        xorl	%r13d, %ecx
14995        rorl	$5, %edx
14996        addl	%ecx, %r14d
14997        xorl	%r11d, %edx
14998        xorl	%r15d, %ebx
14999        rorl	$6, %edx
15000        movl	%r15d, %ecx
15001        addl	%edx, %r14d
15002        rorl	$9, %ecx
15003        andl	%ebx, %eax
15004        xorl	%r15d, %ecx
15005        xorl	%r8d, %eax
15006        rorl	$11, %ecx
15007        addl	%r14d, %r10d
15008        xorl	%r15d, %ecx
15009        addl	%eax, %r14d
15010        rorl	$2, %ecx
15011        movl	%r10d, %edx
15012        addl	%ecx, %r14d
15013        addl	152(%rsp), %r13d
15014        movl	%r11d, %ecx
15015        movl	%r15d, %eax
15016        xorl	%r12d, %ecx
15017        rorl	$14, %edx
15018        andl	%r10d, %ecx
15019        xorl	%r10d, %edx
15020        xorl	%r12d, %ecx
15021        rorl	$5, %edx
15022        addl	%ecx, %r13d
15023        xorl	%r10d, %edx
15024        xorl	%r14d, %eax
15025        rorl	$6, %edx
15026        movl	%r14d, %ecx
15027        addl	%edx, %r13d
15028        rorl	$9, %ecx
15029        andl	%eax, %ebx
15030        xorl	%r14d, %ecx
15031        xorl	%r15d, %ebx
15032        rorl	$11, %ecx
15033        addl	%r13d, %r9d
15034        xorl	%r14d, %ecx
15035        addl	%ebx, %r13d
15036        rorl	$2, %ecx
15037        movl	%r9d, %edx
15038        addl	%ecx, %r13d
15039        addl	156(%rsp), %r12d
15040        movl	%r10d, %ecx
15041        movl	%r14d, %ebx
15042        xorl	%r11d, %ecx
15043        rorl	$14, %edx
15044        andl	%r9d, %ecx
15045        xorl	%r9d, %edx
15046        xorl	%r11d, %ecx
15047        rorl	$5, %edx
15048        addl	%ecx, %r12d
15049        xorl	%r9d, %edx
15050        xorl	%r13d, %ebx
15051        rorl	$6, %edx
15052        movl	%r13d, %ecx
15053        addl	%edx, %r12d
15054        rorl	$9, %ecx
15055        andl	%ebx, %eax
15056        xorl	%r13d, %ecx
15057        xorl	%r14d, %eax
15058        rorl	$11, %ecx
15059        addl	%r12d, %r8d
15060        xorl	%r13d, %ecx
15061        addl	%eax, %r12d
15062        rorl	$2, %ecx
15063        movl	%r8d, %edx
15064        addl	%ecx, %r12d
15065        # rnd_all_4: 11-14
15066        addl	176(%rsp), %r11d
15067        movl	%r9d, %ecx
15068        movl	%r13d, %eax
15069        xorl	%r10d, %ecx
15070        rorl	$14, %edx
15071        andl	%r8d, %ecx
15072        xorl	%r8d, %edx
15073        xorl	%r10d, %ecx
15074        rorl	$5, %edx
15075        addl	%ecx, %r11d
15076        xorl	%r8d, %edx
15077        xorl	%r12d, %eax
15078        rorl	$6, %edx
15079        movl	%r12d, %ecx
15080        addl	%edx, %r11d
15081        rorl	$9, %ecx
15082        andl	%eax, %ebx
15083        xorl	%r12d, %ecx
15084        xorl	%r13d, %ebx
15085        rorl	$11, %ecx
15086        addl	%r11d, %r15d
15087        xorl	%r12d, %ecx
15088        addl	%ebx, %r11d
15089        rorl	$2, %ecx
15090        movl	%r15d, %edx
15091        addl	%ecx, %r11d
15092        addl	180(%rsp), %r10d
15093        movl	%r8d, %ecx
15094        movl	%r12d, %ebx
15095        xorl	%r9d, %ecx
15096        rorl	$14, %edx
15097        andl	%r15d, %ecx
15098        xorl	%r15d, %edx
15099        xorl	%r9d, %ecx
15100        rorl	$5, %edx
15101        addl	%ecx, %r10d
15102        xorl	%r15d, %edx
15103        xorl	%r11d, %ebx
15104        rorl	$6, %edx
15105        movl	%r11d, %ecx
15106        addl	%edx, %r10d
15107        rorl	$9, %ecx
15108        andl	%ebx, %eax
15109        xorl	%r11d, %ecx
15110        xorl	%r12d, %eax
15111        rorl	$11, %ecx
15112        addl	%r10d, %r14d
15113        xorl	%r11d, %ecx
15114        addl	%eax, %r10d
15115        rorl	$2, %ecx
15116        movl	%r14d, %edx
15117        addl	%ecx, %r10d
15118        addl	184(%rsp), %r9d
15119        movl	%r15d, %ecx
15120        movl	%r11d, %eax
15121        xorl	%r8d, %ecx
15122        rorl	$14, %edx
15123        andl	%r14d, %ecx
15124        xorl	%r14d, %edx
15125        xorl	%r8d, %ecx
15126        rorl	$5, %edx
15127        addl	%ecx, %r9d
15128        xorl	%r14d, %edx
15129        xorl	%r10d, %eax
15130        rorl	$6, %edx
15131        movl	%r10d, %ecx
15132        addl	%edx, %r9d
15133        rorl	$9, %ecx
15134        andl	%eax, %ebx
15135        xorl	%r10d, %ecx
15136        xorl	%r11d, %ebx
15137        rorl	$11, %ecx
15138        addl	%r9d, %r13d
15139        xorl	%r10d, %ecx
15140        addl	%ebx, %r9d
15141        rorl	$2, %ecx
15142        movl	%r13d, %edx
15143        addl	%ecx, %r9d
15144        addl	188(%rsp), %r8d
15145        movl	%r14d, %ecx
15146        movl	%r10d, %ebx
15147        xorl	%r15d, %ecx
15148        rorl	$14, %edx
15149        andl	%r13d, %ecx
15150        xorl	%r13d, %edx
15151        xorl	%r15d, %ecx
15152        rorl	$5, %edx
15153        addl	%ecx, %r8d
15154        xorl	%r13d, %edx
15155        xorl	%r9d, %ebx
15156        rorl	$6, %edx
15157        movl	%r9d, %ecx
15158        addl	%edx, %r8d
15159        rorl	$9, %ecx
15160        andl	%ebx, %eax
15161        xorl	%r9d, %ecx
15162        xorl	%r10d, %eax
15163        rorl	$11, %ecx
15164        addl	%r8d, %r12d
15165        xorl	%r9d, %ecx
15166        addl	%eax, %r8d
15167        rorl	$2, %ecx
15168        movl	%r12d, %edx
15169        addl	%ecx, %r8d
15170        # rnd_all_4: 13-16
15171        addl	208(%rsp), %r15d
15172        movl	%r13d, %ecx
15173        movl	%r9d, %eax
15174        xorl	%r14d, %ecx
15175        rorl	$14, %edx
15176        andl	%r12d, %ecx
15177        xorl	%r12d, %edx
15178        xorl	%r14d, %ecx
15179        rorl	$5, %edx
15180        addl	%ecx, %r15d
15181        xorl	%r12d, %edx
15182        xorl	%r8d, %eax
15183        rorl	$6, %edx
15184        movl	%r8d, %ecx
15185        addl	%edx, %r15d
15186        rorl	$9, %ecx
15187        andl	%eax, %ebx
15188        xorl	%r8d, %ecx
15189        xorl	%r9d, %ebx
15190        rorl	$11, %ecx
15191        addl	%r15d, %r11d
15192        xorl	%r8d, %ecx
15193        addl	%ebx, %r15d
15194        rorl	$2, %ecx
15195        movl	%r11d, %edx
15196        addl	%ecx, %r15d
15197        addl	212(%rsp), %r14d
15198        movl	%r12d, %ecx
15199        movl	%r8d, %ebx
15200        xorl	%r13d, %ecx
15201        rorl	$14, %edx
15202        andl	%r11d, %ecx
15203        xorl	%r11d, %edx
15204        xorl	%r13d, %ecx
15205        rorl	$5, %edx
15206        addl	%ecx, %r14d
15207        xorl	%r11d, %edx
15208        xorl	%r15d, %ebx
15209        rorl	$6, %edx
15210        movl	%r15d, %ecx
15211        addl	%edx, %r14d
15212        rorl	$9, %ecx
15213        andl	%ebx, %eax
15214        xorl	%r15d, %ecx
15215        xorl	%r8d, %eax
15216        rorl	$11, %ecx
15217        addl	%r14d, %r10d
15218        xorl	%r15d, %ecx
15219        addl	%eax, %r14d
15220        rorl	$2, %ecx
15221        movl	%r10d, %edx
15222        addl	%ecx, %r14d
15223        addl	216(%rsp), %r13d
15224        movl	%r11d, %ecx
15225        movl	%r15d, %eax
15226        xorl	%r12d, %ecx
15227        rorl	$14, %edx
15228        andl	%r10d, %ecx
15229        xorl	%r10d, %edx
15230        xorl	%r12d, %ecx
15231        rorl	$5, %edx
15232        addl	%ecx, %r13d
15233        xorl	%r10d, %edx
15234        xorl	%r14d, %eax
15235        rorl	$6, %edx
15236        movl	%r14d, %ecx
15237        addl	%edx, %r13d
15238        rorl	$9, %ecx
15239        andl	%eax, %ebx
15240        xorl	%r14d, %ecx
15241        xorl	%r15d, %ebx
15242        rorl	$11, %ecx
15243        addl	%r13d, %r9d
15244        xorl	%r14d, %ecx
15245        addl	%ebx, %r13d
15246        rorl	$2, %ecx
15247        movl	%r9d, %edx
15248        addl	%ecx, %r13d
15249        addl	220(%rsp), %r12d
15250        movl	%r10d, %ecx
15251        movl	%r14d, %ebx
15252        xorl	%r11d, %ecx
15253        rorl	$14, %edx
15254        andl	%r9d, %ecx
15255        xorl	%r9d, %edx
15256        xorl	%r11d, %ecx
15257        rorl	$5, %edx
15258        addl	%ecx, %r12d
15259        xorl	%r9d, %edx
15260        xorl	%r13d, %ebx
15261        rorl	$6, %edx
15262        movl	%r13d, %ecx
15263        addl	%edx, %r12d
15264        rorl	$9, %ecx
15265        andl	%ebx, %eax
15266        xorl	%r13d, %ecx
15267        xorl	%r14d, %eax
15268        rorl	$11, %ecx
15269        addl	%r12d, %r8d
15270        xorl	%r13d, %ecx
15271        addl	%eax, %r12d
15272        rorl	$2, %ecx
15273        movl	%r8d, %edx
15274        addl	%ecx, %r12d
15275        # rnd_all_4: 15-18
15276        addl	240(%rsp), %r11d
15277        movl	%r9d, %ecx
15278        movl	%r13d, %eax
15279        xorl	%r10d, %ecx
15280        rorl	$14, %edx
15281        andl	%r8d, %ecx
15282        xorl	%r8d, %edx
15283        xorl	%r10d, %ecx
15284        rorl	$5, %edx
15285        addl	%ecx, %r11d
15286        xorl	%r8d, %edx
15287        xorl	%r12d, %eax
15288        rorl	$6, %edx
15289        movl	%r12d, %ecx
15290        addl	%edx, %r11d
15291        rorl	$9, %ecx
15292        andl	%eax, %ebx
15293        xorl	%r12d, %ecx
15294        xorl	%r13d, %ebx
15295        rorl	$11, %ecx
15296        addl	%r11d, %r15d
15297        xorl	%r12d, %ecx
15298        addl	%ebx, %r11d
15299        rorl	$2, %ecx
15300        movl	%r15d, %edx
15301        addl	%ecx, %r11d
15302        addl	244(%rsp), %r10d
15303        movl	%r8d, %ecx
15304        movl	%r12d, %ebx
15305        xorl	%r9d, %ecx
15306        rorl	$14, %edx
15307        andl	%r15d, %ecx
15308        xorl	%r15d, %edx
15309        xorl	%r9d, %ecx
15310        rorl	$5, %edx
15311        addl	%ecx, %r10d
15312        xorl	%r15d, %edx
15313        xorl	%r11d, %ebx
15314        rorl	$6, %edx
15315        movl	%r11d, %ecx
15316        addl	%edx, %r10d
15317        rorl	$9, %ecx
15318        andl	%ebx, %eax
15319        xorl	%r11d, %ecx
15320        xorl	%r12d, %eax
15321        rorl	$11, %ecx
15322        addl	%r10d, %r14d
15323        xorl	%r11d, %ecx
15324        addl	%eax, %r10d
15325        rorl	$2, %ecx
15326        movl	%r14d, %edx
15327        addl	%ecx, %r10d
15328        addl	248(%rsp), %r9d
15329        movl	%r15d, %ecx
15330        movl	%r11d, %eax
15331        xorl	%r8d, %ecx
15332        rorl	$14, %edx
15333        andl	%r14d, %ecx
15334        xorl	%r14d, %edx
15335        xorl	%r8d, %ecx
15336        rorl	$5, %edx
15337        addl	%ecx, %r9d
15338        xorl	%r14d, %edx
15339        xorl	%r10d, %eax
15340        rorl	$6, %edx
15341        movl	%r10d, %ecx
15342        addl	%edx, %r9d
15343        rorl	$9, %ecx
15344        andl	%eax, %ebx
15345        xorl	%r10d, %ecx
15346        xorl	%r11d, %ebx
15347        rorl	$11, %ecx
15348        addl	%r9d, %r13d
15349        xorl	%r10d, %ecx
15350        addl	%ebx, %r9d
15351        rorl	$2, %ecx
15352        movl	%r13d, %edx
15353        addl	%ecx, %r9d
15354        addl	252(%rsp), %r8d
15355        movl	%r14d, %ecx
15356        movl	%r10d, %ebx
15357        xorl	%r15d, %ecx
15358        rorl	$14, %edx
15359        andl	%r13d, %ecx
15360        xorl	%r13d, %edx
15361        xorl	%r15d, %ecx
15362        rorl	$5, %edx
15363        addl	%ecx, %r8d
15364        xorl	%r13d, %edx
15365        xorl	%r9d, %ebx
15366        rorl	$6, %edx
15367        movl	%r9d, %ecx
15368        addl	%edx, %r8d
15369        rorl	$9, %ecx
15370        andl	%ebx, %eax
15371        xorl	%r9d, %ecx
15372        xorl	%r10d, %eax
15373        rorl	$11, %ecx
15374        addl	%r8d, %r12d
15375        xorl	%r9d, %ecx
15376        addl	%eax, %r8d
15377        rorl	$2, %ecx
15378        movl	%r12d, %edx
15379        addl	%ecx, %r8d
15380        # rnd_all_4: 17-20
15381        addl	272(%rsp), %r15d
15382        movl	%r13d, %ecx
15383        movl	%r9d, %eax
15384        xorl	%r14d, %ecx
15385        rorl	$14, %edx
15386        andl	%r12d, %ecx
15387        xorl	%r12d, %edx
15388        xorl	%r14d, %ecx
15389        rorl	$5, %edx
15390        addl	%ecx, %r15d
15391        xorl	%r12d, %edx
15392        xorl	%r8d, %eax
15393        rorl	$6, %edx
15394        movl	%r8d, %ecx
15395        addl	%edx, %r15d
15396        rorl	$9, %ecx
15397        andl	%eax, %ebx
15398        xorl	%r8d, %ecx
15399        xorl	%r9d, %ebx
15400        rorl	$11, %ecx
15401        addl	%r15d, %r11d
15402        xorl	%r8d, %ecx
15403        addl	%ebx, %r15d
15404        rorl	$2, %ecx
15405        movl	%r11d, %edx
15406        addl	%ecx, %r15d
15407        addl	276(%rsp), %r14d
15408        movl	%r12d, %ecx
15409        movl	%r8d, %ebx
15410        xorl	%r13d, %ecx
15411        rorl	$14, %edx
15412        andl	%r11d, %ecx
15413        xorl	%r11d, %edx
15414        xorl	%r13d, %ecx
15415        rorl	$5, %edx
15416        addl	%ecx, %r14d
15417        xorl	%r11d, %edx
15418        xorl	%r15d, %ebx
15419        rorl	$6, %edx
15420        movl	%r15d, %ecx
15421        addl	%edx, %r14d
15422        rorl	$9, %ecx
15423        andl	%ebx, %eax
15424        xorl	%r15d, %ecx
15425        xorl	%r8d, %eax
15426        rorl	$11, %ecx
15427        addl	%r14d, %r10d
15428        xorl	%r15d, %ecx
15429        addl	%eax, %r14d
15430        rorl	$2, %ecx
15431        movl	%r10d, %edx
15432        addl	%ecx, %r14d
15433        addl	280(%rsp), %r13d
15434        movl	%r11d, %ecx
15435        movl	%r15d, %eax
15436        xorl	%r12d, %ecx
15437        rorl	$14, %edx
15438        andl	%r10d, %ecx
15439        xorl	%r10d, %edx
15440        xorl	%r12d, %ecx
15441        rorl	$5, %edx
15442        addl	%ecx, %r13d
15443        xorl	%r10d, %edx
15444        xorl	%r14d, %eax
15445        rorl	$6, %edx
15446        movl	%r14d, %ecx
15447        addl	%edx, %r13d
15448        rorl	$9, %ecx
15449        andl	%eax, %ebx
15450        xorl	%r14d, %ecx
15451        xorl	%r15d, %ebx
15452        rorl	$11, %ecx
15453        addl	%r13d, %r9d
15454        xorl	%r14d, %ecx
15455        addl	%ebx, %r13d
15456        rorl	$2, %ecx
15457        movl	%r9d, %edx
15458        addl	%ecx, %r13d
15459        addl	284(%rsp), %r12d
15460        movl	%r10d, %ecx
15461        movl	%r14d, %ebx
15462        xorl	%r11d, %ecx
15463        rorl	$14, %edx
15464        andl	%r9d, %ecx
15465        xorl	%r9d, %edx
15466        xorl	%r11d, %ecx
15467        rorl	$5, %edx
15468        addl	%ecx, %r12d
15469        xorl	%r9d, %edx
15470        xorl	%r13d, %ebx
15471        rorl	$6, %edx
15472        movl	%r13d, %ecx
15473        addl	%edx, %r12d
15474        rorl	$9, %ecx
15475        andl	%ebx, %eax
15476        xorl	%r13d, %ecx
15477        xorl	%r14d, %eax
15478        rorl	$11, %ecx
15479        addl	%r12d, %r8d
15480        xorl	%r13d, %ecx
15481        addl	%eax, %r12d
15482        rorl	$2, %ecx
15483        movl	%r8d, %edx
15484        addl	%ecx, %r12d
15485        # rnd_all_4: 19-22
15486        addl	304(%rsp), %r11d
15487        movl	%r9d, %ecx
15488        movl	%r13d, %eax
15489        xorl	%r10d, %ecx
15490        rorl	$14, %edx
15491        andl	%r8d, %ecx
15492        xorl	%r8d, %edx
15493        xorl	%r10d, %ecx
15494        rorl	$5, %edx
15495        addl	%ecx, %r11d
15496        xorl	%r8d, %edx
15497        xorl	%r12d, %eax
15498        rorl	$6, %edx
15499        movl	%r12d, %ecx
15500        addl	%edx, %r11d
15501        rorl	$9, %ecx
15502        andl	%eax, %ebx
15503        xorl	%r12d, %ecx
15504        xorl	%r13d, %ebx
15505        rorl	$11, %ecx
15506        addl	%r11d, %r15d
15507        xorl	%r12d, %ecx
15508        addl	%ebx, %r11d
15509        rorl	$2, %ecx
15510        movl	%r15d, %edx
15511        addl	%ecx, %r11d
15512        addl	308(%rsp), %r10d
15513        movl	%r8d, %ecx
15514        movl	%r12d, %ebx
15515        xorl	%r9d, %ecx
15516        rorl	$14, %edx
15517        andl	%r15d, %ecx
15518        xorl	%r15d, %edx
15519        xorl	%r9d, %ecx
15520        rorl	$5, %edx
15521        addl	%ecx, %r10d
15522        xorl	%r15d, %edx
15523        xorl	%r11d, %ebx
15524        rorl	$6, %edx
15525        movl	%r11d, %ecx
15526        addl	%edx, %r10d
15527        rorl	$9, %ecx
15528        andl	%ebx, %eax
15529        xorl	%r11d, %ecx
15530        xorl	%r12d, %eax
15531        rorl	$11, %ecx
15532        addl	%r10d, %r14d
15533        xorl	%r11d, %ecx
15534        addl	%eax, %r10d
15535        rorl	$2, %ecx
15536        movl	%r14d, %edx
15537        addl	%ecx, %r10d
15538        addl	312(%rsp), %r9d
15539        movl	%r15d, %ecx
15540        movl	%r11d, %eax
15541        xorl	%r8d, %ecx
15542        rorl	$14, %edx
15543        andl	%r14d, %ecx
15544        xorl	%r14d, %edx
15545        xorl	%r8d, %ecx
15546        rorl	$5, %edx
15547        addl	%ecx, %r9d
15548        xorl	%r14d, %edx
15549        xorl	%r10d, %eax
15550        rorl	$6, %edx
15551        movl	%r10d, %ecx
15552        addl	%edx, %r9d
15553        rorl	$9, %ecx
15554        andl	%eax, %ebx
15555        xorl	%r10d, %ecx
15556        xorl	%r11d, %ebx
15557        rorl	$11, %ecx
15558        addl	%r9d, %r13d
15559        xorl	%r10d, %ecx
15560        addl	%ebx, %r9d
15561        rorl	$2, %ecx
15562        movl	%r13d, %edx
15563        addl	%ecx, %r9d
15564        addl	316(%rsp), %r8d
15565        movl	%r14d, %ecx
15566        movl	%r10d, %ebx
15567        xorl	%r15d, %ecx
15568        rorl	$14, %edx
15569        andl	%r13d, %ecx
15570        xorl	%r13d, %edx
15571        xorl	%r15d, %ecx
15572        rorl	$5, %edx
15573        addl	%ecx, %r8d
15574        xorl	%r13d, %edx
15575        xorl	%r9d, %ebx
15576        rorl	$6, %edx
15577        movl	%r9d, %ecx
15578        addl	%edx, %r8d
15579        rorl	$9, %ecx
15580        andl	%ebx, %eax
15581        xorl	%r9d, %ecx
15582        xorl	%r10d, %eax
15583        rorl	$11, %ecx
15584        addl	%r8d, %r12d
15585        xorl	%r9d, %ecx
15586        addl	%eax, %r8d
15587        rorl	$2, %ecx
15588        movl	%r12d, %edx
15589        addl	%ecx, %r8d
15590        # rnd_all_4: 21-24
15591        addl	336(%rsp), %r15d
15592        movl	%r13d, %ecx
15593        movl	%r9d, %eax
15594        xorl	%r14d, %ecx
15595        rorl	$14, %edx
15596        andl	%r12d, %ecx
15597        xorl	%r12d, %edx
15598        xorl	%r14d, %ecx
15599        rorl	$5, %edx
15600        addl	%ecx, %r15d
15601        xorl	%r12d, %edx
15602        xorl	%r8d, %eax
15603        rorl	$6, %edx
15604        movl	%r8d, %ecx
15605        addl	%edx, %r15d
15606        rorl	$9, %ecx
15607        andl	%eax, %ebx
15608        xorl	%r8d, %ecx
15609        xorl	%r9d, %ebx
15610        rorl	$11, %ecx
15611        addl	%r15d, %r11d
15612        xorl	%r8d, %ecx
15613        addl	%ebx, %r15d
15614        rorl	$2, %ecx
15615        movl	%r11d, %edx
15616        addl	%ecx, %r15d
15617        addl	340(%rsp), %r14d
15618        movl	%r12d, %ecx
15619        movl	%r8d, %ebx
15620        xorl	%r13d, %ecx
15621        rorl	$14, %edx
15622        andl	%r11d, %ecx
15623        xorl	%r11d, %edx
15624        xorl	%r13d, %ecx
15625        rorl	$5, %edx
15626        addl	%ecx, %r14d
15627        xorl	%r11d, %edx
15628        xorl	%r15d, %ebx
15629        rorl	$6, %edx
15630        movl	%r15d, %ecx
15631        addl	%edx, %r14d
15632        rorl	$9, %ecx
15633        andl	%ebx, %eax
15634        xorl	%r15d, %ecx
15635        xorl	%r8d, %eax
15636        rorl	$11, %ecx
15637        addl	%r14d, %r10d
15638        xorl	%r15d, %ecx
15639        addl	%eax, %r14d
15640        rorl	$2, %ecx
15641        movl	%r10d, %edx
15642        addl	%ecx, %r14d
15643        addl	344(%rsp), %r13d
15644        movl	%r11d, %ecx
15645        movl	%r15d, %eax
15646        xorl	%r12d, %ecx
15647        rorl	$14, %edx
15648        andl	%r10d, %ecx
15649        xorl	%r10d, %edx
15650        xorl	%r12d, %ecx
15651        rorl	$5, %edx
15652        addl	%ecx, %r13d
15653        xorl	%r10d, %edx
15654        xorl	%r14d, %eax
15655        rorl	$6, %edx
15656        movl	%r14d, %ecx
15657        addl	%edx, %r13d
15658        rorl	$9, %ecx
15659        andl	%eax, %ebx
15660        xorl	%r14d, %ecx
15661        xorl	%r15d, %ebx
15662        rorl	$11, %ecx
15663        addl	%r13d, %r9d
15664        xorl	%r14d, %ecx
15665        addl	%ebx, %r13d
15666        rorl	$2, %ecx
15667        movl	%r9d, %edx
15668        addl	%ecx, %r13d
15669        addl	348(%rsp), %r12d
15670        movl	%r10d, %ecx
15671        movl	%r14d, %ebx
15672        xorl	%r11d, %ecx
15673        rorl	$14, %edx
15674        andl	%r9d, %ecx
15675        xorl	%r9d, %edx
15676        xorl	%r11d, %ecx
15677        rorl	$5, %edx
15678        addl	%ecx, %r12d
15679        xorl	%r9d, %edx
15680        xorl	%r13d, %ebx
15681        rorl	$6, %edx
15682        movl	%r13d, %ecx
15683        addl	%edx, %r12d
15684        rorl	$9, %ecx
15685        andl	%ebx, %eax
15686        xorl	%r13d, %ecx
15687        xorl	%r14d, %eax
15688        rorl	$11, %ecx
15689        addl	%r12d, %r8d
15690        xorl	%r13d, %ecx
15691        addl	%eax, %r12d
15692        rorl	$2, %ecx
15693        movl	%r8d, %edx
15694        addl	%ecx, %r12d
15695        # rnd_all_4: 23-26
15696        addl	368(%rsp), %r11d
15697        movl	%r9d, %ecx
15698        movl	%r13d, %eax
15699        xorl	%r10d, %ecx
15700        rorl	$14, %edx
15701        andl	%r8d, %ecx
15702        xorl	%r8d, %edx
15703        xorl	%r10d, %ecx
15704        rorl	$5, %edx
15705        addl	%ecx, %r11d
15706        xorl	%r8d, %edx
15707        xorl	%r12d, %eax
15708        rorl	$6, %edx
15709        movl	%r12d, %ecx
15710        addl	%edx, %r11d
15711        rorl	$9, %ecx
15712        andl	%eax, %ebx
15713        xorl	%r12d, %ecx
15714        xorl	%r13d, %ebx
15715        rorl	$11, %ecx
15716        addl	%r11d, %r15d
15717        xorl	%r12d, %ecx
15718        addl	%ebx, %r11d
15719        rorl	$2, %ecx
15720        movl	%r15d, %edx
15721        addl	%ecx, %r11d
15722        addl	372(%rsp), %r10d
15723        movl	%r8d, %ecx
15724        movl	%r12d, %ebx
15725        xorl	%r9d, %ecx
15726        rorl	$14, %edx
15727        andl	%r15d, %ecx
15728        xorl	%r15d, %edx
15729        xorl	%r9d, %ecx
15730        rorl	$5, %edx
15731        addl	%ecx, %r10d
15732        xorl	%r15d, %edx
15733        xorl	%r11d, %ebx
15734        rorl	$6, %edx
15735        movl	%r11d, %ecx
15736        addl	%edx, %r10d
15737        rorl	$9, %ecx
15738        andl	%ebx, %eax
15739        xorl	%r11d, %ecx
15740        xorl	%r12d, %eax
15741        rorl	$11, %ecx
15742        addl	%r10d, %r14d
15743        xorl	%r11d, %ecx
15744        addl	%eax, %r10d
15745        rorl	$2, %ecx
15746        movl	%r14d, %edx
15747        addl	%ecx, %r10d
15748        addl	376(%rsp), %r9d
15749        movl	%r15d, %ecx
15750        movl	%r11d, %eax
15751        xorl	%r8d, %ecx
15752        rorl	$14, %edx
15753        andl	%r14d, %ecx
15754        xorl	%r14d, %edx
15755        xorl	%r8d, %ecx
15756        rorl	$5, %edx
15757        addl	%ecx, %r9d
15758        xorl	%r14d, %edx
15759        xorl	%r10d, %eax
15760        rorl	$6, %edx
15761        movl	%r10d, %ecx
15762        addl	%edx, %r9d
15763        rorl	$9, %ecx
15764        andl	%eax, %ebx
15765        xorl	%r10d, %ecx
15766        xorl	%r11d, %ebx
15767        rorl	$11, %ecx
15768        addl	%r9d, %r13d
15769        xorl	%r10d, %ecx
15770        addl	%ebx, %r9d
15771        rorl	$2, %ecx
15772        movl	%r13d, %edx
15773        addl	%ecx, %r9d
15774        addl	380(%rsp), %r8d
15775        movl	%r14d, %ecx
15776        movl	%r10d, %ebx
15777        xorl	%r15d, %ecx
15778        rorl	$14, %edx
15779        andl	%r13d, %ecx
15780        xorl	%r13d, %edx
15781        xorl	%r15d, %ecx
15782        rorl	$5, %edx
15783        addl	%ecx, %r8d
15784        xorl	%r13d, %edx
15785        xorl	%r9d, %ebx
15786        rorl	$6, %edx
15787        movl	%r9d, %ecx
15788        addl	%edx, %r8d
15789        rorl	$9, %ecx
15790        andl	%ebx, %eax
15791        xorl	%r9d, %ecx
15792        xorl	%r10d, %eax
15793        rorl	$11, %ecx
15794        addl	%r8d, %r12d
15795        xorl	%r9d, %ecx
15796        addl	%eax, %r8d
15797        rorl	$2, %ecx
15798        movl	%r12d, %edx
15799        addl	%ecx, %r8d
15800        # rnd_all_4: 25-28
15801        addl	400(%rsp), %r15d
15802        movl	%r13d, %ecx
15803        movl	%r9d, %eax
15804        xorl	%r14d, %ecx
15805        rorl	$14, %edx
15806        andl	%r12d, %ecx
15807        xorl	%r12d, %edx
15808        xorl	%r14d, %ecx
15809        rorl	$5, %edx
15810        addl	%ecx, %r15d
15811        xorl	%r12d, %edx
15812        xorl	%r8d, %eax
15813        rorl	$6, %edx
15814        movl	%r8d, %ecx
15815        addl	%edx, %r15d
15816        rorl	$9, %ecx
15817        andl	%eax, %ebx
15818        xorl	%r8d, %ecx
15819        xorl	%r9d, %ebx
15820        rorl	$11, %ecx
15821        addl	%r15d, %r11d
15822        xorl	%r8d, %ecx
15823        addl	%ebx, %r15d
15824        rorl	$2, %ecx
15825        movl	%r11d, %edx
15826        addl	%ecx, %r15d
15827        addl	404(%rsp), %r14d
15828        movl	%r12d, %ecx
15829        movl	%r8d, %ebx
15830        xorl	%r13d, %ecx
15831        rorl	$14, %edx
15832        andl	%r11d, %ecx
15833        xorl	%r11d, %edx
15834        xorl	%r13d, %ecx
15835        rorl	$5, %edx
15836        addl	%ecx, %r14d
15837        xorl	%r11d, %edx
15838        xorl	%r15d, %ebx
15839        rorl	$6, %edx
15840        movl	%r15d, %ecx
15841        addl	%edx, %r14d
15842        rorl	$9, %ecx
15843        andl	%ebx, %eax
15844        xorl	%r15d, %ecx
15845        xorl	%r8d, %eax
15846        rorl	$11, %ecx
15847        addl	%r14d, %r10d
15848        xorl	%r15d, %ecx
15849        addl	%eax, %r14d
15850        rorl	$2, %ecx
15851        movl	%r10d, %edx
15852        addl	%ecx, %r14d
15853        addl	408(%rsp), %r13d
15854        movl	%r11d, %ecx
15855        movl	%r15d, %eax
15856        xorl	%r12d, %ecx
15857        rorl	$14, %edx
15858        andl	%r10d, %ecx
15859        xorl	%r10d, %edx
15860        xorl	%r12d, %ecx
15861        rorl	$5, %edx
15862        addl	%ecx, %r13d
15863        xorl	%r10d, %edx
15864        xorl	%r14d, %eax
15865        rorl	$6, %edx
15866        movl	%r14d, %ecx
15867        addl	%edx, %r13d
15868        rorl	$9, %ecx
15869        andl	%eax, %ebx
15870        xorl	%r14d, %ecx
15871        xorl	%r15d, %ebx
15872        rorl	$11, %ecx
15873        addl	%r13d, %r9d
15874        xorl	%r14d, %ecx
15875        addl	%ebx, %r13d
15876        rorl	$2, %ecx
15877        movl	%r9d, %edx
15878        addl	%ecx, %r13d
15879        addl	412(%rsp), %r12d
15880        movl	%r10d, %ecx
15881        movl	%r14d, %ebx
15882        xorl	%r11d, %ecx
15883        rorl	$14, %edx
15884        andl	%r9d, %ecx
15885        xorl	%r9d, %edx
15886        xorl	%r11d, %ecx
15887        rorl	$5, %edx
15888        addl	%ecx, %r12d
15889        xorl	%r9d, %edx
15890        xorl	%r13d, %ebx
15891        rorl	$6, %edx
15892        movl	%r13d, %ecx
15893        addl	%edx, %r12d
15894        rorl	$9, %ecx
15895        andl	%ebx, %eax
15896        xorl	%r13d, %ecx
15897        xorl	%r14d, %eax
15898        rorl	$11, %ecx
15899        addl	%r12d, %r8d
15900        xorl	%r13d, %ecx
15901        addl	%eax, %r12d
15902        rorl	$2, %ecx
15903        movl	%r8d, %edx
15904        addl	%ecx, %r12d
15905        # rnd_all_4: 27-30
15906        addl	432(%rsp), %r11d
15907        movl	%r9d, %ecx
15908        movl	%r13d, %eax
15909        xorl	%r10d, %ecx
15910        rorl	$14, %edx
15911        andl	%r8d, %ecx
15912        xorl	%r8d, %edx
15913        xorl	%r10d, %ecx
15914        rorl	$5, %edx
15915        addl	%ecx, %r11d
15916        xorl	%r8d, %edx
15917        xorl	%r12d, %eax
15918        rorl	$6, %edx
15919        movl	%r12d, %ecx
15920        addl	%edx, %r11d
15921        rorl	$9, %ecx
15922        andl	%eax, %ebx
15923        xorl	%r12d, %ecx
15924        xorl	%r13d, %ebx
15925        rorl	$11, %ecx
15926        addl	%r11d, %r15d
15927        xorl	%r12d, %ecx
15928        addl	%ebx, %r11d
15929        rorl	$2, %ecx
15930        movl	%r15d, %edx
15931        addl	%ecx, %r11d
15932        addl	436(%rsp), %r10d
15933        movl	%r8d, %ecx
15934        movl	%r12d, %ebx
15935        xorl	%r9d, %ecx
15936        rorl	$14, %edx
15937        andl	%r15d, %ecx
15938        xorl	%r15d, %edx
15939        xorl	%r9d, %ecx
15940        rorl	$5, %edx
15941        addl	%ecx, %r10d
15942        xorl	%r15d, %edx
15943        xorl	%r11d, %ebx
15944        rorl	$6, %edx
15945        movl	%r11d, %ecx
15946        addl	%edx, %r10d
15947        rorl	$9, %ecx
15948        andl	%ebx, %eax
15949        xorl	%r11d, %ecx
15950        xorl	%r12d, %eax
15951        rorl	$11, %ecx
15952        addl	%r10d, %r14d
15953        xorl	%r11d, %ecx
15954        addl	%eax, %r10d
15955        rorl	$2, %ecx
15956        movl	%r14d, %edx
15957        addl	%ecx, %r10d
15958        addl	440(%rsp), %r9d
15959        movl	%r15d, %ecx
15960        movl	%r11d, %eax
15961        xorl	%r8d, %ecx
15962        rorl	$14, %edx
15963        andl	%r14d, %ecx
15964        xorl	%r14d, %edx
15965        xorl	%r8d, %ecx
15966        rorl	$5, %edx
15967        addl	%ecx, %r9d
15968        xorl	%r14d, %edx
15969        xorl	%r10d, %eax
15970        rorl	$6, %edx
15971        movl	%r10d, %ecx
15972        addl	%edx, %r9d
15973        rorl	$9, %ecx
15974        andl	%eax, %ebx
15975        xorl	%r10d, %ecx
15976        xorl	%r11d, %ebx
15977        rorl	$11, %ecx
15978        addl	%r9d, %r13d
15979        xorl	%r10d, %ecx
15980        addl	%ebx, %r9d
15981        rorl	$2, %ecx
15982        movl	%r13d, %edx
15983        addl	%ecx, %r9d
15984        addl	444(%rsp), %r8d
15985        movl	%r14d, %ecx
15986        movl	%r10d, %ebx
15987        xorl	%r15d, %ecx
15988        rorl	$14, %edx
15989        andl	%r13d, %ecx
15990        xorl	%r13d, %edx
15991        xorl	%r15d, %ecx
15992        rorl	$5, %edx
15993        addl	%ecx, %r8d
15994        xorl	%r13d, %edx
15995        xorl	%r9d, %ebx
15996        rorl	$6, %edx
15997        movl	%r9d, %ecx
15998        addl	%edx, %r8d
15999        rorl	$9, %ecx
16000        andl	%ebx, %eax
16001        xorl	%r9d, %ecx
16002        xorl	%r10d, %eax
16003        rorl	$11, %ecx
16004        addl	%r8d, %r12d
16005        xorl	%r9d, %ecx
16006        addl	%eax, %r8d
16007        rorl	$2, %ecx
16008        movl	%r12d, %edx
16009        addl	%ecx, %r8d
16010        # rnd_all_4: 29-32
16011        addl	464(%rsp), %r15d
16012        movl	%r13d, %ecx
16013        movl	%r9d, %eax
16014        xorl	%r14d, %ecx
16015        rorl	$14, %edx
16016        andl	%r12d, %ecx
16017        xorl	%r12d, %edx
16018        xorl	%r14d, %ecx
16019        rorl	$5, %edx
16020        addl	%ecx, %r15d
16021        xorl	%r12d, %edx
16022        xorl	%r8d, %eax
16023        rorl	$6, %edx
16024        movl	%r8d, %ecx
16025        addl	%edx, %r15d
16026        rorl	$9, %ecx
16027        andl	%eax, %ebx
16028        xorl	%r8d, %ecx
16029        xorl	%r9d, %ebx
16030        rorl	$11, %ecx
16031        addl	%r15d, %r11d
16032        xorl	%r8d, %ecx
16033        addl	%ebx, %r15d
16034        rorl	$2, %ecx
16035        movl	%r11d, %edx
16036        addl	%ecx, %r15d
16037        addl	468(%rsp), %r14d
16038        movl	%r12d, %ecx
16039        movl	%r8d, %ebx
16040        xorl	%r13d, %ecx
16041        rorl	$14, %edx
16042        andl	%r11d, %ecx
16043        xorl	%r11d, %edx
16044        xorl	%r13d, %ecx
16045        rorl	$5, %edx
16046        addl	%ecx, %r14d
16047        xorl	%r11d, %edx
16048        xorl	%r15d, %ebx
16049        rorl	$6, %edx
16050        movl	%r15d, %ecx
16051        addl	%edx, %r14d
16052        rorl	$9, %ecx
16053        andl	%ebx, %eax
16054        xorl	%r15d, %ecx
16055        xorl	%r8d, %eax
16056        rorl	$11, %ecx
16057        addl	%r14d, %r10d
16058        xorl	%r15d, %ecx
16059        addl	%eax, %r14d
16060        rorl	$2, %ecx
16061        movl	%r10d, %edx
16062        addl	%ecx, %r14d
16063        addl	472(%rsp), %r13d
16064        movl	%r11d, %ecx
16065        movl	%r15d, %eax
16066        xorl	%r12d, %ecx
16067        rorl	$14, %edx
16068        andl	%r10d, %ecx
16069        xorl	%r10d, %edx
16070        xorl	%r12d, %ecx
16071        rorl	$5, %edx
16072        addl	%ecx, %r13d
16073        xorl	%r10d, %edx
16074        xorl	%r14d, %eax
16075        rorl	$6, %edx
16076        movl	%r14d, %ecx
16077        addl	%edx, %r13d
16078        rorl	$9, %ecx
16079        andl	%eax, %ebx
16080        xorl	%r14d, %ecx
16081        xorl	%r15d, %ebx
16082        rorl	$11, %ecx
16083        addl	%r13d, %r9d
16084        xorl	%r14d, %ecx
16085        addl	%ebx, %r13d
16086        rorl	$2, %ecx
16087        movl	%r9d, %edx
16088        addl	%ecx, %r13d
16089        addl	476(%rsp), %r12d
16090        movl	%r10d, %ecx
16091        movl	%r14d, %ebx
16092        xorl	%r11d, %ecx
16093        rorl	$14, %edx
16094        andl	%r9d, %ecx
16095        xorl	%r9d, %edx
16096        xorl	%r11d, %ecx
16097        rorl	$5, %edx
16098        addl	%ecx, %r12d
16099        xorl	%r9d, %edx
16100        xorl	%r13d, %ebx
16101        rorl	$6, %edx
16102        movl	%r13d, %ecx
16103        addl	%edx, %r12d
16104        rorl	$9, %ecx
16105        andl	%ebx, %eax
16106        xorl	%r13d, %ecx
16107        xorl	%r14d, %eax
16108        rorl	$11, %ecx
16109        addl	%r12d, %r8d
16110        xorl	%r13d, %ecx
16111        addl	%eax, %r12d
16112        rorl	$2, %ecx
16113        movl	%r8d, %edx
16114        addl	%ecx, %r12d
16115        # rnd_all_4: 31-34
16116        addl	496(%rsp), %r11d
16117        movl	%r9d, %ecx
16118        movl	%r13d, %eax
16119        xorl	%r10d, %ecx
16120        rorl	$14, %edx
16121        andl	%r8d, %ecx
16122        xorl	%r8d, %edx
16123        xorl	%r10d, %ecx
16124        rorl	$5, %edx
16125        addl	%ecx, %r11d
16126        xorl	%r8d, %edx
16127        xorl	%r12d, %eax
16128        rorl	$6, %edx
16129        movl	%r12d, %ecx
16130        addl	%edx, %r11d
16131        rorl	$9, %ecx
16132        andl	%eax, %ebx
16133        xorl	%r12d, %ecx
16134        xorl	%r13d, %ebx
16135        rorl	$11, %ecx
16136        addl	%r11d, %r15d
16137        xorl	%r12d, %ecx
16138        addl	%ebx, %r11d
16139        rorl	$2, %ecx
16140        movl	%r15d, %edx
16141        addl	%ecx, %r11d
16142        addl	500(%rsp), %r10d
16143        movl	%r8d, %ecx
16144        movl	%r12d, %ebx
16145        xorl	%r9d, %ecx
16146        rorl	$14, %edx
16147        andl	%r15d, %ecx
16148        xorl	%r15d, %edx
16149        xorl	%r9d, %ecx
16150        rorl	$5, %edx
16151        addl	%ecx, %r10d
16152        xorl	%r15d, %edx
16153        xorl	%r11d, %ebx
16154        rorl	$6, %edx
16155        movl	%r11d, %ecx
16156        addl	%edx, %r10d
16157        rorl	$9, %ecx
16158        andl	%ebx, %eax
16159        xorl	%r11d, %ecx
16160        xorl	%r12d, %eax
16161        rorl	$11, %ecx
16162        addl	%r10d, %r14d
16163        xorl	%r11d, %ecx
16164        addl	%eax, %r10d
16165        rorl	$2, %ecx
16166        movl	%r14d, %edx
16167        addl	%ecx, %r10d
16168        addl	504(%rsp), %r9d
16169        movl	%r15d, %ecx
16170        movl	%r11d, %eax
16171        xorl	%r8d, %ecx
16172        rorl	$14, %edx
16173        andl	%r14d, %ecx
16174        xorl	%r14d, %edx
16175        xorl	%r8d, %ecx
16176        rorl	$5, %edx
16177        addl	%ecx, %r9d
16178        xorl	%r14d, %edx
16179        xorl	%r10d, %eax
16180        rorl	$6, %edx
16181        movl	%r10d, %ecx
16182        addl	%edx, %r9d
16183        rorl	$9, %ecx
16184        andl	%eax, %ebx
16185        xorl	%r10d, %ecx
16186        xorl	%r11d, %ebx
16187        rorl	$11, %ecx
16188        addl	%r9d, %r13d
16189        xorl	%r10d, %ecx
16190        addl	%ebx, %r9d
16191        rorl	$2, %ecx
16192        movl	%r13d, %edx
16193        addl	%ecx, %r9d
16194        addl	508(%rsp), %r8d
16195        movl	%r14d, %ecx
16196        movl	%r10d, %ebx
16197        xorl	%r15d, %ecx
16198        rorl	$14, %edx
16199        andl	%r13d, %ecx
16200        xorl	%r13d, %edx
16201        xorl	%r15d, %ecx
16202        rorl	$5, %edx
16203        addl	%ecx, %r8d
16204        xorl	%r13d, %edx
16205        xorl	%r9d, %ebx
16206        rorl	$6, %edx
16207        movl	%r9d, %ecx
16208        addl	%edx, %r8d
16209        rorl	$9, %ecx
16210        andl	%ebx, %eax
16211        xorl	%r9d, %ecx
16212        xorl	%r10d, %eax
16213        rorl	$11, %ecx
16214        addl	%r8d, %r12d
16215        xorl	%r9d, %ecx
16216        addl	%eax, %r8d
16217        rorl	$2, %ecx
16218        movl	%r12d, %edx
16219        addl	%ecx, %r8d
16220        addl	(%rdi), %r8d
16221        addl	4(%rdi), %r9d
16222        addl	8(%rdi), %r10d
16223        addl	12(%rdi), %r11d
16224        addl	16(%rdi), %r12d
16225        addl	20(%rdi), %r13d
16226        addl	24(%rdi), %r14d
16227        addl	28(%rdi), %r15d
16228        addq	$0x80, %rbp
16229        subl	$0x80, %esi
16230        movl	%r8d, (%rdi)
16231        movl	%r9d, 4(%rdi)
16232        movl	%r10d, 8(%rdi)
16233        movl	%r11d, 12(%rdi)
16234        movl	%r12d, 16(%rdi)
16235        movl	%r13d, 20(%rdi)
16236        movl	%r14d, 24(%rdi)
16237        movl	%r15d, 28(%rdi)
16238        jnz	L_sha256_len_avx2_start
16239L_sha256_len_avx2_done:
16240        xorq	%rax, %rax
16241        vzeroupper
16242        addq	$0x200, %rsp
16243        popq	%rbp
16244        popq	%r15
16245        popq	%r14
16246        popq	%r13
16247        popq	%r12
16248        popq	%rbx
16249        repz retq
16250#ifndef __APPLE__
16251.size	Transform_Sha256_AVX2_Len,.-Transform_Sha256_AVX2_Len
16252#endif /* __APPLE__ */
16253#ifndef __APPLE__
16254.data
16255#else
16256.section	__DATA,__data
16257#endif /* __APPLE__ */
16258L_avx2_rorx_sha256_k:
16259.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
16260.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
16261.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
16262.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
16263.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
16264.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
16265.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
16266.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
16267.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
16268.long	0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc
16269.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
16270.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
16271.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
16272.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
16273.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
16274.long	0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967
16275.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
16276.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
16277.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
16278.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
16279.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
16280.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
16281.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
16282.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
16283.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
16284.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
16285.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
16286.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
16287.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
16288.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
16289.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
16290.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
16291#ifndef __APPLE__
16292.data
16293#else
16294.section	__DATA,__data
16295#endif /* __APPLE__ */
16296#ifndef __APPLE__
16297.align	32
16298#else
16299.p2align	5
16300#endif /* __APPLE__ */
16301L_avx2_rorx_sha256_flip_mask:
16302.quad	0x405060700010203, 0xc0d0e0f08090a0b
16303.quad	0x405060700010203, 0xc0d0e0f08090a0b
16304#ifndef __APPLE__
16305.data
16306#else
16307.section	__DATA,__data
16308#endif /* __APPLE__ */
16309#ifndef __APPLE__
16310.align	32
16311#else
16312.p2align	5
16313#endif /* __APPLE__ */
16314L_avx2_rorx_sha256_shuf_00BA:
16315.quad	0xb0a090803020100, 0xffffffffffffffff
16316.quad	0xb0a090803020100, 0xffffffffffffffff
16317#ifndef __APPLE__
16318.data
16319#else
16320.section	__DATA,__data
16321#endif /* __APPLE__ */
16322#ifndef __APPLE__
16323.align	32
16324#else
16325.p2align	5
16326#endif /* __APPLE__ */
16327L_avx2_rorx_sha256_shuf_DC00:
16328.quad	0xffffffffffffffff, 0xb0a090803020100
16329.quad	0xffffffffffffffff, 0xb0a090803020100
16330#ifndef __APPLE__
16331.text
16332.globl	Transform_Sha256_AVX2_RORX
16333.type	Transform_Sha256_AVX2_RORX,@function
16334.align	16
16335Transform_Sha256_AVX2_RORX:
16336#else
16337.section	__TEXT,__text
16338.globl	_Transform_Sha256_AVX2_RORX
16339.p2align	4
16340_Transform_Sha256_AVX2_RORX:
16341#endif /* __APPLE__ */
16342        pushq	%rbx
16343        pushq	%r12
16344        pushq	%r13
16345        pushq	%r14
16346        pushq	%r15
16347        subq	$0x200, %rsp
16348        leaq	32(%rdi), %rax
16349        vmovdqa	L_avx2_rorx_sha256_flip_mask(%rip), %xmm13
16350        vmovdqa	L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11
16351        vmovdqa	L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12
16352        # X0, X1, X2, X3 = W[0..15]
16353        vmovdqu	(%rax), %xmm0
16354        vmovdqu	16(%rax), %xmm1
16355        vpshufb	%xmm13, %xmm0, %xmm0
16356        vpshufb	%xmm13, %xmm1, %xmm1
16357        vpaddd	0+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
16358        vpaddd	32+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm5
16359        vmovdqu	%ymm4, (%rsp)
16360        vmovdqu	%ymm5, 32(%rsp)
16361        vmovdqu	32(%rax), %xmm2
16362        vmovdqu	48(%rax), %xmm3
16363        vpshufb	%xmm13, %xmm2, %xmm2
16364        vpshufb	%xmm13, %xmm3, %xmm3
16365        vpaddd	64+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
16366        vpaddd	96+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm5
16367        vmovdqu	%ymm4, 64(%rsp)
16368        vmovdqu	%ymm5, 96(%rsp)
16369        movl	(%rdi), %r8d
16370        movl	4(%rdi), %r9d
16371        movl	8(%rdi), %r10d
16372        movl	12(%rdi), %r11d
16373        movl	16(%rdi), %r12d
16374        movl	20(%rdi), %r13d
16375        movl	24(%rdi), %r14d
16376        movl	28(%rdi), %r15d
16377        movl	%r9d, %ebx
16378        rorxl	$6, %r12d, %edx
16379        xorl	%r10d, %ebx
16380        # rnd_0: 0 - 0
16381        movl	%r13d, %eax
16382        rorxl	$11, %r12d, %ecx
16383        addl	(%rsp), %r15d
16384        vpalignr	$4, %ymm0, %ymm1, %ymm5
16385        # rnd_0: 1 - 1
16386        xorl	%edx, %ecx
16387        xorl	%r14d, %eax
16388        rorxl	$25, %r12d, %edx
16389        vpalignr	$4, %ymm2, %ymm3, %ymm4
16390        # rnd_0: 2 - 2
16391        andl	%r12d, %eax
16392        xorl	%ecx, %edx
16393        rorxl	$13, %r8d, %ecx
16394        vpsrld	$7, %ymm5, %ymm6
16395        # rnd_0: 3 - 3
16396        addl	%edx, %r15d
16397        rorxl	$2, %r8d, %edx
16398        xorl	%r14d, %eax
16399        vpslld	$25, %ymm5, %ymm7
16400        # rnd_0: 4 - 4
16401        xorl	%edx, %ecx
16402        rorxl	$22, %r8d, %edx
16403        addl	%eax, %r15d
16404        vpsrld	$18, %ymm5, %ymm8
16405        # rnd_0: 5 - 5
16406        xorl	%ecx, %edx
16407        movl	%r9d, %eax
16408        addl	%r15d, %r11d
16409        vpslld	$14, %ymm5, %ymm9
16410        # rnd_0: 6 - 6
16411        xorl	%r8d, %eax
16412        addl	%edx, %r15d
16413        andl	%eax, %ebx
16414        vpor	%ymm7, %ymm6, %ymm6
16415        # rnd_0: 7 - 7
16416        xorl	%r9d, %ebx
16417        rorxl	$6, %r11d, %edx
16418        addl	%ebx, %r15d
16419        vpor	%ymm9, %ymm8, %ymm8
16420        # rnd_1: 0 - 0
16421        movl	%r12d, %ebx
16422        rorxl	$11, %r11d, %ecx
16423        addl	4(%rsp), %r14d
16424        vpsrld	$3, %ymm5, %ymm9
16425        # rnd_1: 1 - 1
16426        xorl	%edx, %ecx
16427        xorl	%r13d, %ebx
16428        rorxl	$25, %r11d, %edx
16429        vpxor	%ymm8, %ymm6, %ymm6
16430        # rnd_1: 2 - 2
16431        andl	%r11d, %ebx
16432        xorl	%ecx, %edx
16433        rorxl	$13, %r15d, %ecx
16434        vpshufd	$0xfa, %ymm3, %ymm7
16435        # rnd_1: 3 - 3
16436        addl	%edx, %r14d
16437        rorxl	$2, %r15d, %edx
16438        xorl	%r13d, %ebx
16439        vpxor	%ymm6, %ymm9, %ymm5
16440        # rnd_1: 4 - 4
16441        xorl	%edx, %ecx
16442        rorxl	$22, %r15d, %edx
16443        addl	%ebx, %r14d
16444        vpsrld	$10, %ymm7, %ymm8
16445        # rnd_1: 5 - 5
16446        xorl	%ecx, %edx
16447        addl	%r14d, %r10d
16448        movl	%r8d, %ebx
16449        vpsrlq	$19, %ymm7, %ymm6
16450        # rnd_1: 6 - 6
16451        xorl	%r15d, %ebx
16452        addl	%edx, %r14d
16453        andl	%ebx, %eax
16454        vpsrlq	$0x11, %ymm7, %ymm7
16455        # rnd_1: 7 - 7
16456        xorl	%r8d, %eax
16457        rorxl	$6, %r10d, %edx
16458        addl	%eax, %r14d
16459        vpaddd	%ymm0, %ymm4, %ymm4
16460        # rnd_0: 0 - 0
16461        movl	%r11d, %eax
16462        rorxl	$11, %r10d, %ecx
16463        addl	8(%rsp), %r13d
16464        vpxor	%ymm7, %ymm6, %ymm6
16465        # rnd_0: 1 - 1
16466        xorl	%edx, %ecx
16467        xorl	%r12d, %eax
16468        rorxl	$25, %r10d, %edx
16469        vpxor	%ymm6, %ymm8, %ymm8
16470        # rnd_0: 2 - 2
16471        andl	%r10d, %eax
16472        xorl	%ecx, %edx
16473        rorxl	$13, %r14d, %ecx
16474        vpaddd	%ymm5, %ymm4, %ymm4
16475        # rnd_0: 3 - 3
16476        addl	%edx, %r13d
16477        rorxl	$2, %r14d, %edx
16478        xorl	%r12d, %eax
16479        vpshufb	%ymm11, %ymm8, %ymm8
16480        # rnd_0: 4 - 4
16481        xorl	%edx, %ecx
16482        rorxl	$22, %r14d, %edx
16483        addl	%eax, %r13d
16484        vpaddd	%ymm8, %ymm4, %ymm4
16485        # rnd_0: 5 - 5
16486        xorl	%ecx, %edx
16487        movl	%r15d, %eax
16488        addl	%r13d, %r9d
16489        vpshufd	$0x50, %ymm4, %ymm6
16490        # rnd_0: 6 - 6
16491        xorl	%r14d, %eax
16492        addl	%edx, %r13d
16493        andl	%eax, %ebx
16494        vpsrlq	$0x11, %ymm6, %ymm8
16495        # rnd_0: 7 - 7
16496        xorl	%r15d, %ebx
16497        rorxl	$6, %r9d, %edx
16498        addl	%ebx, %r13d
16499        vpsrlq	$19, %ymm6, %ymm7
16500        # rnd_1: 0 - 0
16501        movl	%r10d, %ebx
16502        rorxl	$11, %r9d, %ecx
16503        addl	12(%rsp), %r12d
16504        vpsrld	$10, %ymm6, %ymm9
16505        # rnd_1: 1 - 1
16506        xorl	%edx, %ecx
16507        xorl	%r11d, %ebx
16508        rorxl	$25, %r9d, %edx
16509        vpxor	%ymm7, %ymm8, %ymm8
16510        # rnd_1: 2 - 2
16511        andl	%r9d, %ebx
16512        xorl	%ecx, %edx
16513        rorxl	$13, %r13d, %ecx
16514        vpxor	%ymm8, %ymm9, %ymm9
16515        # rnd_1: 3 - 3
16516        addl	%edx, %r12d
16517        rorxl	$2, %r13d, %edx
16518        xorl	%r11d, %ebx
16519        vpshufb	%ymm12, %ymm9, %ymm9
16520        # rnd_1: 4 - 4
16521        xorl	%edx, %ecx
16522        rorxl	$22, %r13d, %edx
16523        addl	%ebx, %r12d
16524        vpaddd	%ymm4, %ymm9, %ymm0
16525        # rnd_1: 5 - 5
16526        xorl	%ecx, %edx
16527        addl	%r12d, %r8d
16528        movl	%r14d, %ebx
16529        vpaddd	128+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
16530        # rnd_1: 6 - 6
16531        xorl	%r13d, %ebx
16532        addl	%edx, %r12d
16533        andl	%ebx, %eax
16534        # rnd_1: 7 - 7
16535        xorl	%r14d, %eax
16536        rorxl	$6, %r8d, %edx
16537        addl	%eax, %r12d
16538        vmovdqu	%ymm4, 128(%rsp)
16539        # rnd_0: 0 - 0
16540        movl	%r9d, %eax
16541        rorxl	$11, %r8d, %ecx
16542        addl	32(%rsp), %r11d
16543        vpalignr	$4, %ymm1, %ymm2, %ymm5
16544        # rnd_0: 1 - 1
16545        xorl	%edx, %ecx
16546        xorl	%r10d, %eax
16547        rorxl	$25, %r8d, %edx
16548        vpalignr	$4, %ymm3, %ymm0, %ymm4
16549        # rnd_0: 2 - 2
16550        andl	%r8d, %eax
16551        xorl	%ecx, %edx
16552        rorxl	$13, %r12d, %ecx
16553        vpsrld	$7, %ymm5, %ymm6
16554        # rnd_0: 3 - 3
16555        addl	%edx, %r11d
16556        rorxl	$2, %r12d, %edx
16557        xorl	%r10d, %eax
16558        vpslld	$25, %ymm5, %ymm7
16559        # rnd_0: 4 - 4
16560        xorl	%edx, %ecx
16561        rorxl	$22, %r12d, %edx
16562        addl	%eax, %r11d
16563        vpsrld	$18, %ymm5, %ymm8
16564        # rnd_0: 5 - 5
16565        xorl	%ecx, %edx
16566        movl	%r13d, %eax
16567        addl	%r11d, %r15d
16568        vpslld	$14, %ymm5, %ymm9
16569        # rnd_0: 6 - 6
16570        xorl	%r12d, %eax
16571        addl	%edx, %r11d
16572        andl	%eax, %ebx
16573        vpor	%ymm7, %ymm6, %ymm6
16574        # rnd_0: 7 - 7
16575        xorl	%r13d, %ebx
16576        rorxl	$6, %r15d, %edx
16577        addl	%ebx, %r11d
16578        vpor	%ymm9, %ymm8, %ymm8
16579        # rnd_1: 0 - 0
16580        movl	%r8d, %ebx
16581        rorxl	$11, %r15d, %ecx
16582        addl	36(%rsp), %r10d
16583        vpsrld	$3, %ymm5, %ymm9
16584        # rnd_1: 1 - 1
16585        xorl	%edx, %ecx
16586        xorl	%r9d, %ebx
16587        rorxl	$25, %r15d, %edx
16588        vpxor	%ymm8, %ymm6, %ymm6
16589        # rnd_1: 2 - 2
16590        andl	%r15d, %ebx
16591        xorl	%ecx, %edx
16592        rorxl	$13, %r11d, %ecx
16593        vpshufd	$0xfa, %ymm0, %ymm7
16594        # rnd_1: 3 - 3
16595        addl	%edx, %r10d
16596        rorxl	$2, %r11d, %edx
16597        xorl	%r9d, %ebx
16598        vpxor	%ymm6, %ymm9, %ymm5
16599        # rnd_1: 4 - 4
16600        xorl	%edx, %ecx
16601        rorxl	$22, %r11d, %edx
16602        addl	%ebx, %r10d
16603        vpsrld	$10, %ymm7, %ymm8
16604        # rnd_1: 5 - 5
16605        xorl	%ecx, %edx
16606        addl	%r10d, %r14d
16607        movl	%r12d, %ebx
16608        vpsrlq	$19, %ymm7, %ymm6
16609        # rnd_1: 6 - 6
16610        xorl	%r11d, %ebx
16611        addl	%edx, %r10d
16612        andl	%ebx, %eax
16613        vpsrlq	$0x11, %ymm7, %ymm7
16614        # rnd_1: 7 - 7
16615        xorl	%r12d, %eax
16616        rorxl	$6, %r14d, %edx
16617        addl	%eax, %r10d
16618        vpaddd	%ymm1, %ymm4, %ymm4
16619        # rnd_0: 0 - 0
16620        movl	%r15d, %eax
16621        rorxl	$11, %r14d, %ecx
16622        addl	40(%rsp), %r9d
16623        vpxor	%ymm7, %ymm6, %ymm6
16624        # rnd_0: 1 - 1
16625        xorl	%edx, %ecx
16626        xorl	%r8d, %eax
16627        rorxl	$25, %r14d, %edx
16628        vpxor	%ymm6, %ymm8, %ymm8
16629        # rnd_0: 2 - 2
16630        andl	%r14d, %eax
16631        xorl	%ecx, %edx
16632        rorxl	$13, %r10d, %ecx
16633        vpaddd	%ymm5, %ymm4, %ymm4
16634        # rnd_0: 3 - 3
16635        addl	%edx, %r9d
16636        rorxl	$2, %r10d, %edx
16637        xorl	%r8d, %eax
16638        vpshufb	%ymm11, %ymm8, %ymm8
16639        # rnd_0: 4 - 4
16640        xorl	%edx, %ecx
16641        rorxl	$22, %r10d, %edx
16642        addl	%eax, %r9d
16643        vpaddd	%ymm8, %ymm4, %ymm4
16644        # rnd_0: 5 - 5
16645        xorl	%ecx, %edx
16646        movl	%r11d, %eax
16647        addl	%r9d, %r13d
16648        vpshufd	$0x50, %ymm4, %ymm6
16649        # rnd_0: 6 - 6
16650        xorl	%r10d, %eax
16651        addl	%edx, %r9d
16652        andl	%eax, %ebx
16653        vpsrlq	$0x11, %ymm6, %ymm8
16654        # rnd_0: 7 - 7
16655        xorl	%r11d, %ebx
16656        rorxl	$6, %r13d, %edx
16657        addl	%ebx, %r9d
16658        vpsrlq	$19, %ymm6, %ymm7
16659        # rnd_1: 0 - 0
16660        movl	%r14d, %ebx
16661        rorxl	$11, %r13d, %ecx
16662        addl	44(%rsp), %r8d
16663        vpsrld	$10, %ymm6, %ymm9
16664        # rnd_1: 1 - 1
16665        xorl	%edx, %ecx
16666        xorl	%r15d, %ebx
16667        rorxl	$25, %r13d, %edx
16668        vpxor	%ymm7, %ymm8, %ymm8
16669        # rnd_1: 2 - 2
16670        andl	%r13d, %ebx
16671        xorl	%ecx, %edx
16672        rorxl	$13, %r9d, %ecx
16673        vpxor	%ymm8, %ymm9, %ymm9
16674        # rnd_1: 3 - 3
16675        addl	%edx, %r8d
16676        rorxl	$2, %r9d, %edx
16677        xorl	%r15d, %ebx
16678        vpshufb	%ymm12, %ymm9, %ymm9
16679        # rnd_1: 4 - 4
16680        xorl	%edx, %ecx
16681        rorxl	$22, %r9d, %edx
16682        addl	%ebx, %r8d
16683        vpaddd	%ymm4, %ymm9, %ymm1
16684        # rnd_1: 5 - 5
16685        xorl	%ecx, %edx
16686        addl	%r8d, %r12d
16687        movl	%r10d, %ebx
16688        vpaddd	160+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
16689        # rnd_1: 6 - 6
16690        xorl	%r9d, %ebx
16691        addl	%edx, %r8d
16692        andl	%ebx, %eax
16693        # rnd_1: 7 - 7
16694        xorl	%r10d, %eax
16695        rorxl	$6, %r12d, %edx
16696        addl	%eax, %r8d
16697        vmovdqu	%ymm4, 160(%rsp)
16698        # rnd_0: 0 - 0
16699        movl	%r13d, %eax
16700        rorxl	$11, %r12d, %ecx
16701        addl	64(%rsp), %r15d
16702        vpalignr	$4, %ymm2, %ymm3, %ymm5
16703        # rnd_0: 1 - 1
16704        xorl	%edx, %ecx
16705        xorl	%r14d, %eax
16706        rorxl	$25, %r12d, %edx
16707        vpalignr	$4, %ymm0, %ymm1, %ymm4
16708        # rnd_0: 2 - 2
16709        andl	%r12d, %eax
16710        xorl	%ecx, %edx
16711        rorxl	$13, %r8d, %ecx
16712        vpsrld	$7, %ymm5, %ymm6
16713        # rnd_0: 3 - 3
16714        addl	%edx, %r15d
16715        rorxl	$2, %r8d, %edx
16716        xorl	%r14d, %eax
16717        vpslld	$25, %ymm5, %ymm7
16718        # rnd_0: 4 - 4
16719        xorl	%edx, %ecx
16720        rorxl	$22, %r8d, %edx
16721        addl	%eax, %r15d
16722        vpsrld	$18, %ymm5, %ymm8
16723        # rnd_0: 5 - 5
16724        xorl	%ecx, %edx
16725        movl	%r9d, %eax
16726        addl	%r15d, %r11d
16727        vpslld	$14, %ymm5, %ymm9
16728        # rnd_0: 6 - 6
16729        xorl	%r8d, %eax
16730        addl	%edx, %r15d
16731        andl	%eax, %ebx
16732        vpor	%ymm7, %ymm6, %ymm6
16733        # rnd_0: 7 - 7
16734        xorl	%r9d, %ebx
16735        rorxl	$6, %r11d, %edx
16736        addl	%ebx, %r15d
16737        vpor	%ymm9, %ymm8, %ymm8
16738        # rnd_1: 0 - 0
16739        movl	%r12d, %ebx
16740        rorxl	$11, %r11d, %ecx
16741        addl	68(%rsp), %r14d
16742        vpsrld	$3, %ymm5, %ymm9
16743        # rnd_1: 1 - 1
16744        xorl	%edx, %ecx
16745        xorl	%r13d, %ebx
16746        rorxl	$25, %r11d, %edx
16747        vpxor	%ymm8, %ymm6, %ymm6
16748        # rnd_1: 2 - 2
16749        andl	%r11d, %ebx
16750        xorl	%ecx, %edx
16751        rorxl	$13, %r15d, %ecx
16752        vpshufd	$0xfa, %ymm1, %ymm7
16753        # rnd_1: 3 - 3
16754        addl	%edx, %r14d
16755        rorxl	$2, %r15d, %edx
16756        xorl	%r13d, %ebx
16757        vpxor	%ymm6, %ymm9, %ymm5
16758        # rnd_1: 4 - 4
16759        xorl	%edx, %ecx
16760        rorxl	$22, %r15d, %edx
16761        addl	%ebx, %r14d
16762        vpsrld	$10, %ymm7, %ymm8
16763        # rnd_1: 5 - 5
16764        xorl	%ecx, %edx
16765        addl	%r14d, %r10d
16766        movl	%r8d, %ebx
16767        vpsrlq	$19, %ymm7, %ymm6
16768        # rnd_1: 6 - 6
16769        xorl	%r15d, %ebx
16770        addl	%edx, %r14d
16771        andl	%ebx, %eax
16772        vpsrlq	$0x11, %ymm7, %ymm7
16773        # rnd_1: 7 - 7
16774        xorl	%r8d, %eax
16775        rorxl	$6, %r10d, %edx
16776        addl	%eax, %r14d
16777        vpaddd	%ymm2, %ymm4, %ymm4
16778        # rnd_0: 0 - 0
16779        movl	%r11d, %eax
16780        rorxl	$11, %r10d, %ecx
16781        addl	72(%rsp), %r13d
16782        vpxor	%ymm7, %ymm6, %ymm6
16783        # rnd_0: 1 - 1
16784        xorl	%edx, %ecx
16785        xorl	%r12d, %eax
16786        rorxl	$25, %r10d, %edx
16787        vpxor	%ymm6, %ymm8, %ymm8
16788        # rnd_0: 2 - 2
16789        andl	%r10d, %eax
16790        xorl	%ecx, %edx
16791        rorxl	$13, %r14d, %ecx
16792        vpaddd	%ymm5, %ymm4, %ymm4
16793        # rnd_0: 3 - 3
16794        addl	%edx, %r13d
16795        rorxl	$2, %r14d, %edx
16796        xorl	%r12d, %eax
16797        vpshufb	%ymm11, %ymm8, %ymm8
16798        # rnd_0: 4 - 4
16799        xorl	%edx, %ecx
16800        rorxl	$22, %r14d, %edx
16801        addl	%eax, %r13d
16802        vpaddd	%ymm8, %ymm4, %ymm4
16803        # rnd_0: 5 - 5
16804        xorl	%ecx, %edx
16805        movl	%r15d, %eax
16806        addl	%r13d, %r9d
16807        vpshufd	$0x50, %ymm4, %ymm6
16808        # rnd_0: 6 - 6
16809        xorl	%r14d, %eax
16810        addl	%edx, %r13d
16811        andl	%eax, %ebx
16812        vpsrlq	$0x11, %ymm6, %ymm8
16813        # rnd_0: 7 - 7
16814        xorl	%r15d, %ebx
16815        rorxl	$6, %r9d, %edx
16816        addl	%ebx, %r13d
16817        vpsrlq	$19, %ymm6, %ymm7
16818        # rnd_1: 0 - 0
16819        movl	%r10d, %ebx
16820        rorxl	$11, %r9d, %ecx
16821        addl	76(%rsp), %r12d
16822        vpsrld	$10, %ymm6, %ymm9
16823        # rnd_1: 1 - 1
16824        xorl	%edx, %ecx
16825        xorl	%r11d, %ebx
16826        rorxl	$25, %r9d, %edx
16827        vpxor	%ymm7, %ymm8, %ymm8
16828        # rnd_1: 2 - 2
16829        andl	%r9d, %ebx
16830        xorl	%ecx, %edx
16831        rorxl	$13, %r13d, %ecx
16832        vpxor	%ymm8, %ymm9, %ymm9
16833        # rnd_1: 3 - 3
16834        addl	%edx, %r12d
16835        rorxl	$2, %r13d, %edx
16836        xorl	%r11d, %ebx
16837        vpshufb	%ymm12, %ymm9, %ymm9
16838        # rnd_1: 4 - 4
16839        xorl	%edx, %ecx
16840        rorxl	$22, %r13d, %edx
16841        addl	%ebx, %r12d
16842        vpaddd	%ymm4, %ymm9, %ymm2
16843        # rnd_1: 5 - 5
16844        xorl	%ecx, %edx
16845        addl	%r12d, %r8d
16846        movl	%r14d, %ebx
16847        vpaddd	192+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
16848        # rnd_1: 6 - 6
16849        xorl	%r13d, %ebx
16850        addl	%edx, %r12d
16851        andl	%ebx, %eax
16852        # rnd_1: 7 - 7
16853        xorl	%r14d, %eax
16854        rorxl	$6, %r8d, %edx
16855        addl	%eax, %r12d
16856        vmovdqu	%ymm4, 192(%rsp)
16857        # rnd_0: 0 - 0
16858        movl	%r9d, %eax
16859        rorxl	$11, %r8d, %ecx
16860        addl	96(%rsp), %r11d
16861        vpalignr	$4, %ymm3, %ymm0, %ymm5
16862        # rnd_0: 1 - 1
16863        xorl	%edx, %ecx
16864        xorl	%r10d, %eax
16865        rorxl	$25, %r8d, %edx
16866        vpalignr	$4, %ymm1, %ymm2, %ymm4
16867        # rnd_0: 2 - 2
16868        andl	%r8d, %eax
16869        xorl	%ecx, %edx
16870        rorxl	$13, %r12d, %ecx
16871        vpsrld	$7, %ymm5, %ymm6
16872        # rnd_0: 3 - 3
16873        addl	%edx, %r11d
16874        rorxl	$2, %r12d, %edx
16875        xorl	%r10d, %eax
16876        vpslld	$25, %ymm5, %ymm7
16877        # rnd_0: 4 - 4
16878        xorl	%edx, %ecx
16879        rorxl	$22, %r12d, %edx
16880        addl	%eax, %r11d
16881        vpsrld	$18, %ymm5, %ymm8
16882        # rnd_0: 5 - 5
16883        xorl	%ecx, %edx
16884        movl	%r13d, %eax
16885        addl	%r11d, %r15d
16886        vpslld	$14, %ymm5, %ymm9
16887        # rnd_0: 6 - 6
16888        xorl	%r12d, %eax
16889        addl	%edx, %r11d
16890        andl	%eax, %ebx
16891        vpor	%ymm7, %ymm6, %ymm6
16892        # rnd_0: 7 - 7
16893        xorl	%r13d, %ebx
16894        rorxl	$6, %r15d, %edx
16895        addl	%ebx, %r11d
16896        vpor	%ymm9, %ymm8, %ymm8
16897        # rnd_1: 0 - 0
16898        movl	%r8d, %ebx
16899        rorxl	$11, %r15d, %ecx
16900        addl	100(%rsp), %r10d
16901        vpsrld	$3, %ymm5, %ymm9
16902        # rnd_1: 1 - 1
16903        xorl	%edx, %ecx
16904        xorl	%r9d, %ebx
16905        rorxl	$25, %r15d, %edx
16906        vpxor	%ymm8, %ymm6, %ymm6
16907        # rnd_1: 2 - 2
16908        andl	%r15d, %ebx
16909        xorl	%ecx, %edx
16910        rorxl	$13, %r11d, %ecx
16911        vpshufd	$0xfa, %ymm2, %ymm7
16912        # rnd_1: 3 - 3
16913        addl	%edx, %r10d
16914        rorxl	$2, %r11d, %edx
16915        xorl	%r9d, %ebx
16916        vpxor	%ymm6, %ymm9, %ymm5
16917        # rnd_1: 4 - 4
16918        xorl	%edx, %ecx
16919        rorxl	$22, %r11d, %edx
16920        addl	%ebx, %r10d
16921        vpsrld	$10, %ymm7, %ymm8
16922        # rnd_1: 5 - 5
16923        xorl	%ecx, %edx
16924        addl	%r10d, %r14d
16925        movl	%r12d, %ebx
16926        vpsrlq	$19, %ymm7, %ymm6
16927        # rnd_1: 6 - 6
16928        xorl	%r11d, %ebx
16929        addl	%edx, %r10d
16930        andl	%ebx, %eax
16931        vpsrlq	$0x11, %ymm7, %ymm7
16932        # rnd_1: 7 - 7
16933        xorl	%r12d, %eax
16934        rorxl	$6, %r14d, %edx
16935        addl	%eax, %r10d
16936        vpaddd	%ymm3, %ymm4, %ymm4
16937        # rnd_0: 0 - 0
16938        movl	%r15d, %eax
16939        rorxl	$11, %r14d, %ecx
16940        addl	104(%rsp), %r9d
16941        vpxor	%ymm7, %ymm6, %ymm6
16942        # rnd_0: 1 - 1
16943        xorl	%edx, %ecx
16944        xorl	%r8d, %eax
16945        rorxl	$25, %r14d, %edx
16946        vpxor	%ymm6, %ymm8, %ymm8
16947        # rnd_0: 2 - 2
16948        andl	%r14d, %eax
16949        xorl	%ecx, %edx
16950        rorxl	$13, %r10d, %ecx
16951        vpaddd	%ymm5, %ymm4, %ymm4
16952        # rnd_0: 3 - 3
16953        addl	%edx, %r9d
16954        rorxl	$2, %r10d, %edx
16955        xorl	%r8d, %eax
16956        vpshufb	%ymm11, %ymm8, %ymm8
16957        # rnd_0: 4 - 4
16958        xorl	%edx, %ecx
16959        rorxl	$22, %r10d, %edx
16960        addl	%eax, %r9d
16961        vpaddd	%ymm8, %ymm4, %ymm4
16962        # rnd_0: 5 - 5
16963        xorl	%ecx, %edx
16964        movl	%r11d, %eax
16965        addl	%r9d, %r13d
16966        vpshufd	$0x50, %ymm4, %ymm6
16967        # rnd_0: 6 - 6
16968        xorl	%r10d, %eax
16969        addl	%edx, %r9d
16970        andl	%eax, %ebx
16971        vpsrlq	$0x11, %ymm6, %ymm8
16972        # rnd_0: 7 - 7
16973        xorl	%r11d, %ebx
16974        rorxl	$6, %r13d, %edx
16975        addl	%ebx, %r9d
16976        vpsrlq	$19, %ymm6, %ymm7
16977        # rnd_1: 0 - 0
16978        movl	%r14d, %ebx
16979        rorxl	$11, %r13d, %ecx
16980        addl	108(%rsp), %r8d
16981        vpsrld	$10, %ymm6, %ymm9
16982        # rnd_1: 1 - 1
16983        xorl	%edx, %ecx
16984        xorl	%r15d, %ebx
16985        rorxl	$25, %r13d, %edx
16986        vpxor	%ymm7, %ymm8, %ymm8
16987        # rnd_1: 2 - 2
16988        andl	%r13d, %ebx
16989        xorl	%ecx, %edx
16990        rorxl	$13, %r9d, %ecx
16991        vpxor	%ymm8, %ymm9, %ymm9
16992        # rnd_1: 3 - 3
16993        addl	%edx, %r8d
16994        rorxl	$2, %r9d, %edx
16995        xorl	%r15d, %ebx
16996        vpshufb	%ymm12, %ymm9, %ymm9
16997        # rnd_1: 4 - 4
16998        xorl	%edx, %ecx
16999        rorxl	$22, %r9d, %edx
17000        addl	%ebx, %r8d
17001        vpaddd	%ymm4, %ymm9, %ymm3
17002        # rnd_1: 5 - 5
17003        xorl	%ecx, %edx
17004        addl	%r8d, %r12d
17005        movl	%r10d, %ebx
17006        vpaddd	224+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
17007        # rnd_1: 6 - 6
17008        xorl	%r9d, %ebx
17009        addl	%edx, %r8d
17010        andl	%ebx, %eax
17011        # rnd_1: 7 - 7
17012        xorl	%r10d, %eax
17013        rorxl	$6, %r12d, %edx
17014        addl	%eax, %r8d
17015        vmovdqu	%ymm4, 224(%rsp)
17016        # rnd_0: 0 - 0
17017        movl	%r13d, %eax
17018        rorxl	$11, %r12d, %ecx
17019        addl	128(%rsp), %r15d
17020        vpalignr	$4, %ymm0, %ymm1, %ymm5
17021        # rnd_0: 1 - 1
17022        xorl	%edx, %ecx
17023        xorl	%r14d, %eax
17024        rorxl	$25, %r12d, %edx
17025        vpalignr	$4, %ymm2, %ymm3, %ymm4
17026        # rnd_0: 2 - 2
17027        andl	%r12d, %eax
17028        xorl	%ecx, %edx
17029        rorxl	$13, %r8d, %ecx
17030        vpsrld	$7, %ymm5, %ymm6
17031        # rnd_0: 3 - 3
17032        addl	%edx, %r15d
17033        rorxl	$2, %r8d, %edx
17034        xorl	%r14d, %eax
17035        vpslld	$25, %ymm5, %ymm7
17036        # rnd_0: 4 - 4
17037        xorl	%edx, %ecx
17038        rorxl	$22, %r8d, %edx
17039        addl	%eax, %r15d
17040        vpsrld	$18, %ymm5, %ymm8
17041        # rnd_0: 5 - 5
17042        xorl	%ecx, %edx
17043        movl	%r9d, %eax
17044        addl	%r15d, %r11d
17045        vpslld	$14, %ymm5, %ymm9
17046        # rnd_0: 6 - 6
17047        xorl	%r8d, %eax
17048        addl	%edx, %r15d
17049        andl	%eax, %ebx
17050        vpor	%ymm7, %ymm6, %ymm6
17051        # rnd_0: 7 - 7
17052        xorl	%r9d, %ebx
17053        rorxl	$6, %r11d, %edx
17054        addl	%ebx, %r15d
17055        vpor	%ymm9, %ymm8, %ymm8
17056        # rnd_1: 0 - 0
17057        movl	%r12d, %ebx
17058        rorxl	$11, %r11d, %ecx
17059        addl	132(%rsp), %r14d
17060        vpsrld	$3, %ymm5, %ymm9
17061        # rnd_1: 1 - 1
17062        xorl	%edx, %ecx
17063        xorl	%r13d, %ebx
17064        rorxl	$25, %r11d, %edx
17065        vpxor	%ymm8, %ymm6, %ymm6
17066        # rnd_1: 2 - 2
17067        andl	%r11d, %ebx
17068        xorl	%ecx, %edx
17069        rorxl	$13, %r15d, %ecx
17070        vpshufd	$0xfa, %ymm3, %ymm7
17071        # rnd_1: 3 - 3
17072        addl	%edx, %r14d
17073        rorxl	$2, %r15d, %edx
17074        xorl	%r13d, %ebx
17075        vpxor	%ymm6, %ymm9, %ymm5
17076        # rnd_1: 4 - 4
17077        xorl	%edx, %ecx
17078        rorxl	$22, %r15d, %edx
17079        addl	%ebx, %r14d
17080        vpsrld	$10, %ymm7, %ymm8
17081        # rnd_1: 5 - 5
17082        xorl	%ecx, %edx
17083        addl	%r14d, %r10d
17084        movl	%r8d, %ebx
17085        vpsrlq	$19, %ymm7, %ymm6
17086        # rnd_1: 6 - 6
17087        xorl	%r15d, %ebx
17088        addl	%edx, %r14d
17089        andl	%ebx, %eax
17090        vpsrlq	$0x11, %ymm7, %ymm7
17091        # rnd_1: 7 - 7
17092        xorl	%r8d, %eax
17093        rorxl	$6, %r10d, %edx
17094        addl	%eax, %r14d
17095        vpaddd	%ymm0, %ymm4, %ymm4
17096        # rnd_0: 0 - 0
17097        movl	%r11d, %eax
17098        rorxl	$11, %r10d, %ecx
17099        addl	136(%rsp), %r13d
17100        vpxor	%ymm7, %ymm6, %ymm6
17101        # rnd_0: 1 - 1
17102        xorl	%edx, %ecx
17103        xorl	%r12d, %eax
17104        rorxl	$25, %r10d, %edx
17105        vpxor	%ymm6, %ymm8, %ymm8
17106        # rnd_0: 2 - 2
17107        andl	%r10d, %eax
17108        xorl	%ecx, %edx
17109        rorxl	$13, %r14d, %ecx
17110        vpaddd	%ymm5, %ymm4, %ymm4
17111        # rnd_0: 3 - 3
17112        addl	%edx, %r13d
17113        rorxl	$2, %r14d, %edx
17114        xorl	%r12d, %eax
17115        vpshufb	%ymm11, %ymm8, %ymm8
17116        # rnd_0: 4 - 4
17117        xorl	%edx, %ecx
17118        rorxl	$22, %r14d, %edx
17119        addl	%eax, %r13d
17120        vpaddd	%ymm8, %ymm4, %ymm4
17121        # rnd_0: 5 - 5
17122        xorl	%ecx, %edx
17123        movl	%r15d, %eax
17124        addl	%r13d, %r9d
17125        vpshufd	$0x50, %ymm4, %ymm6
17126        # rnd_0: 6 - 6
17127        xorl	%r14d, %eax
17128        addl	%edx, %r13d
17129        andl	%eax, %ebx
17130        vpsrlq	$0x11, %ymm6, %ymm8
17131        # rnd_0: 7 - 7
17132        xorl	%r15d, %ebx
17133        rorxl	$6, %r9d, %edx
17134        addl	%ebx, %r13d
17135        vpsrlq	$19, %ymm6, %ymm7
17136        # rnd_1: 0 - 0
17137        movl	%r10d, %ebx
17138        rorxl	$11, %r9d, %ecx
17139        addl	140(%rsp), %r12d
17140        vpsrld	$10, %ymm6, %ymm9
17141        # rnd_1: 1 - 1
17142        xorl	%edx, %ecx
17143        xorl	%r11d, %ebx
17144        rorxl	$25, %r9d, %edx
17145        vpxor	%ymm7, %ymm8, %ymm8
17146        # rnd_1: 2 - 2
17147        andl	%r9d, %ebx
17148        xorl	%ecx, %edx
17149        rorxl	$13, %r13d, %ecx
17150        vpxor	%ymm8, %ymm9, %ymm9
17151        # rnd_1: 3 - 3
17152        addl	%edx, %r12d
17153        rorxl	$2, %r13d, %edx
17154        xorl	%r11d, %ebx
17155        vpshufb	%ymm12, %ymm9, %ymm9
17156        # rnd_1: 4 - 4
17157        xorl	%edx, %ecx
17158        rorxl	$22, %r13d, %edx
17159        addl	%ebx, %r12d
17160        vpaddd	%ymm4, %ymm9, %ymm0
17161        # rnd_1: 5 - 5
17162        xorl	%ecx, %edx
17163        addl	%r12d, %r8d
17164        movl	%r14d, %ebx
17165        vpaddd	256+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
17166        # rnd_1: 6 - 6
17167        xorl	%r13d, %ebx
17168        addl	%edx, %r12d
17169        andl	%ebx, %eax
17170        # rnd_1: 7 - 7
17171        xorl	%r14d, %eax
17172        rorxl	$6, %r8d, %edx
17173        addl	%eax, %r12d
17174        vmovdqu	%ymm4, 256(%rsp)
17175        # rnd_0: 0 - 0
17176        movl	%r9d, %eax
17177        rorxl	$11, %r8d, %ecx
17178        addl	160(%rsp), %r11d
17179        vpalignr	$4, %ymm1, %ymm2, %ymm5
17180        # rnd_0: 1 - 1
17181        xorl	%edx, %ecx
17182        xorl	%r10d, %eax
17183        rorxl	$25, %r8d, %edx
17184        vpalignr	$4, %ymm3, %ymm0, %ymm4
17185        # rnd_0: 2 - 2
17186        andl	%r8d, %eax
17187        xorl	%ecx, %edx
17188        rorxl	$13, %r12d, %ecx
17189        vpsrld	$7, %ymm5, %ymm6
17190        # rnd_0: 3 - 3
17191        addl	%edx, %r11d
17192        rorxl	$2, %r12d, %edx
17193        xorl	%r10d, %eax
17194        vpslld	$25, %ymm5, %ymm7
17195        # rnd_0: 4 - 4
17196        xorl	%edx, %ecx
17197        rorxl	$22, %r12d, %edx
17198        addl	%eax, %r11d
17199        vpsrld	$18, %ymm5, %ymm8
17200        # rnd_0: 5 - 5
17201        xorl	%ecx, %edx
17202        movl	%r13d, %eax
17203        addl	%r11d, %r15d
17204        vpslld	$14, %ymm5, %ymm9
17205        # rnd_0: 6 - 6
17206        xorl	%r12d, %eax
17207        addl	%edx, %r11d
17208        andl	%eax, %ebx
17209        vpor	%ymm7, %ymm6, %ymm6
17210        # rnd_0: 7 - 7
17211        xorl	%r13d, %ebx
17212        rorxl	$6, %r15d, %edx
17213        addl	%ebx, %r11d
17214        vpor	%ymm9, %ymm8, %ymm8
17215        # rnd_1: 0 - 0
17216        movl	%r8d, %ebx
17217        rorxl	$11, %r15d, %ecx
17218        addl	164(%rsp), %r10d
17219        vpsrld	$3, %ymm5, %ymm9
17220        # rnd_1: 1 - 1
17221        xorl	%edx, %ecx
17222        xorl	%r9d, %ebx
17223        rorxl	$25, %r15d, %edx
17224        vpxor	%ymm8, %ymm6, %ymm6
17225        # rnd_1: 2 - 2
17226        andl	%r15d, %ebx
17227        xorl	%ecx, %edx
17228        rorxl	$13, %r11d, %ecx
17229        vpshufd	$0xfa, %ymm0, %ymm7
17230        # rnd_1: 3 - 3
17231        addl	%edx, %r10d
17232        rorxl	$2, %r11d, %edx
17233        xorl	%r9d, %ebx
17234        vpxor	%ymm6, %ymm9, %ymm5
17235        # rnd_1: 4 - 4
17236        xorl	%edx, %ecx
17237        rorxl	$22, %r11d, %edx
17238        addl	%ebx, %r10d
17239        vpsrld	$10, %ymm7, %ymm8
17240        # rnd_1: 5 - 5
17241        xorl	%ecx, %edx
17242        addl	%r10d, %r14d
17243        movl	%r12d, %ebx
17244        vpsrlq	$19, %ymm7, %ymm6
17245        # rnd_1: 6 - 6
17246        xorl	%r11d, %ebx
17247        addl	%edx, %r10d
17248        andl	%ebx, %eax
17249        vpsrlq	$0x11, %ymm7, %ymm7
17250        # rnd_1: 7 - 7
17251        xorl	%r12d, %eax
17252        rorxl	$6, %r14d, %edx
17253        addl	%eax, %r10d
17254        vpaddd	%ymm1, %ymm4, %ymm4
17255        # rnd_0: 0 - 0
17256        movl	%r15d, %eax
17257        rorxl	$11, %r14d, %ecx
17258        addl	168(%rsp), %r9d
17259        vpxor	%ymm7, %ymm6, %ymm6
17260        # rnd_0: 1 - 1
17261        xorl	%edx, %ecx
17262        xorl	%r8d, %eax
17263        rorxl	$25, %r14d, %edx
17264        vpxor	%ymm6, %ymm8, %ymm8
17265        # rnd_0: 2 - 2
17266        andl	%r14d, %eax
17267        xorl	%ecx, %edx
17268        rorxl	$13, %r10d, %ecx
17269        vpaddd	%ymm5, %ymm4, %ymm4
17270        # rnd_0: 3 - 3
17271        addl	%edx, %r9d
17272        rorxl	$2, %r10d, %edx
17273        xorl	%r8d, %eax
17274        vpshufb	%ymm11, %ymm8, %ymm8
17275        # rnd_0: 4 - 4
17276        xorl	%edx, %ecx
17277        rorxl	$22, %r10d, %edx
17278        addl	%eax, %r9d
17279        vpaddd	%ymm8, %ymm4, %ymm4
17280        # rnd_0: 5 - 5
17281        xorl	%ecx, %edx
17282        movl	%r11d, %eax
17283        addl	%r9d, %r13d
17284        vpshufd	$0x50, %ymm4, %ymm6
17285        # rnd_0: 6 - 6
17286        xorl	%r10d, %eax
17287        addl	%edx, %r9d
17288        andl	%eax, %ebx
17289        vpsrlq	$0x11, %ymm6, %ymm8
17290        # rnd_0: 7 - 7
17291        xorl	%r11d, %ebx
17292        rorxl	$6, %r13d, %edx
17293        addl	%ebx, %r9d
17294        vpsrlq	$19, %ymm6, %ymm7
17295        # rnd_1: 0 - 0
17296        movl	%r14d, %ebx
17297        rorxl	$11, %r13d, %ecx
17298        addl	172(%rsp), %r8d
17299        vpsrld	$10, %ymm6, %ymm9
17300        # rnd_1: 1 - 1
17301        xorl	%edx, %ecx
17302        xorl	%r15d, %ebx
17303        rorxl	$25, %r13d, %edx
17304        vpxor	%ymm7, %ymm8, %ymm8
17305        # rnd_1: 2 - 2
17306        andl	%r13d, %ebx
17307        xorl	%ecx, %edx
17308        rorxl	$13, %r9d, %ecx
17309        vpxor	%ymm8, %ymm9, %ymm9
17310        # rnd_1: 3 - 3
17311        addl	%edx, %r8d
17312        rorxl	$2, %r9d, %edx
17313        xorl	%r15d, %ebx
17314        vpshufb	%ymm12, %ymm9, %ymm9
17315        # rnd_1: 4 - 4
17316        xorl	%edx, %ecx
17317        rorxl	$22, %r9d, %edx
17318        addl	%ebx, %r8d
17319        vpaddd	%ymm4, %ymm9, %ymm1
17320        # rnd_1: 5 - 5
17321        xorl	%ecx, %edx
17322        addl	%r8d, %r12d
17323        movl	%r10d, %ebx
17324        vpaddd	288+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
17325        # rnd_1: 6 - 6
17326        xorl	%r9d, %ebx
17327        addl	%edx, %r8d
17328        andl	%ebx, %eax
17329        # rnd_1: 7 - 7
17330        xorl	%r10d, %eax
17331        rorxl	$6, %r12d, %edx
17332        addl	%eax, %r8d
17333        vmovdqu	%ymm4, 288(%rsp)
17334        # rnd_0: 0 - 0
17335        movl	%r13d, %eax
17336        rorxl	$11, %r12d, %ecx
17337        addl	192(%rsp), %r15d
17338        vpalignr	$4, %ymm2, %ymm3, %ymm5
17339        # rnd_0: 1 - 1
17340        xorl	%edx, %ecx
17341        xorl	%r14d, %eax
17342        rorxl	$25, %r12d, %edx
17343        vpalignr	$4, %ymm0, %ymm1, %ymm4
17344        # rnd_0: 2 - 2
17345        andl	%r12d, %eax
17346        xorl	%ecx, %edx
17347        rorxl	$13, %r8d, %ecx
17348        vpsrld	$7, %ymm5, %ymm6
17349        # rnd_0: 3 - 3
17350        addl	%edx, %r15d
17351        rorxl	$2, %r8d, %edx
17352        xorl	%r14d, %eax
17353        vpslld	$25, %ymm5, %ymm7
17354        # rnd_0: 4 - 4
17355        xorl	%edx, %ecx
17356        rorxl	$22, %r8d, %edx
17357        addl	%eax, %r15d
17358        vpsrld	$18, %ymm5, %ymm8
17359        # rnd_0: 5 - 5
17360        xorl	%ecx, %edx
17361        movl	%r9d, %eax
17362        addl	%r15d, %r11d
17363        vpslld	$14, %ymm5, %ymm9
17364        # rnd_0: 6 - 6
17365        xorl	%r8d, %eax
17366        addl	%edx, %r15d
17367        andl	%eax, %ebx
17368        vpor	%ymm7, %ymm6, %ymm6
17369        # rnd_0: 7 - 7
17370        xorl	%r9d, %ebx
17371        rorxl	$6, %r11d, %edx
17372        addl	%ebx, %r15d
17373        vpor	%ymm9, %ymm8, %ymm8
17374        # rnd_1: 0 - 0
17375        movl	%r12d, %ebx
17376        rorxl	$11, %r11d, %ecx
17377        addl	196(%rsp), %r14d
17378        vpsrld	$3, %ymm5, %ymm9
17379        # rnd_1: 1 - 1
17380        xorl	%edx, %ecx
17381        xorl	%r13d, %ebx
17382        rorxl	$25, %r11d, %edx
17383        vpxor	%ymm8, %ymm6, %ymm6
17384        # rnd_1: 2 - 2
17385        andl	%r11d, %ebx
17386        xorl	%ecx, %edx
17387        rorxl	$13, %r15d, %ecx
17388        vpshufd	$0xfa, %ymm1, %ymm7
17389        # rnd_1: 3 - 3
17390        addl	%edx, %r14d
17391        rorxl	$2, %r15d, %edx
17392        xorl	%r13d, %ebx
17393        vpxor	%ymm6, %ymm9, %ymm5
17394        # rnd_1: 4 - 4
17395        xorl	%edx, %ecx
17396        rorxl	$22, %r15d, %edx
17397        addl	%ebx, %r14d
17398        vpsrld	$10, %ymm7, %ymm8
17399        # rnd_1: 5 - 5
17400        xorl	%ecx, %edx
17401        addl	%r14d, %r10d
17402        movl	%r8d, %ebx
17403        vpsrlq	$19, %ymm7, %ymm6
17404        # rnd_1: 6 - 6
17405        xorl	%r15d, %ebx
17406        addl	%edx, %r14d
17407        andl	%ebx, %eax
17408        vpsrlq	$0x11, %ymm7, %ymm7
17409        # rnd_1: 7 - 7
17410        xorl	%r8d, %eax
17411        rorxl	$6, %r10d, %edx
17412        addl	%eax, %r14d
17413        vpaddd	%ymm2, %ymm4, %ymm4
17414        # rnd_0: 0 - 0
17415        movl	%r11d, %eax
17416        rorxl	$11, %r10d, %ecx
17417        addl	200(%rsp), %r13d
17418        vpxor	%ymm7, %ymm6, %ymm6
17419        # rnd_0: 1 - 1
17420        xorl	%edx, %ecx
17421        xorl	%r12d, %eax
17422        rorxl	$25, %r10d, %edx
17423        vpxor	%ymm6, %ymm8, %ymm8
17424        # rnd_0: 2 - 2
17425        andl	%r10d, %eax
17426        xorl	%ecx, %edx
17427        rorxl	$13, %r14d, %ecx
17428        vpaddd	%ymm5, %ymm4, %ymm4
17429        # rnd_0: 3 - 3
17430        addl	%edx, %r13d
17431        rorxl	$2, %r14d, %edx
17432        xorl	%r12d, %eax
17433        vpshufb	%ymm11, %ymm8, %ymm8
17434        # rnd_0: 4 - 4
17435        xorl	%edx, %ecx
17436        rorxl	$22, %r14d, %edx
17437        addl	%eax, %r13d
17438        vpaddd	%ymm8, %ymm4, %ymm4
17439        # rnd_0: 5 - 5
17440        xorl	%ecx, %edx
17441        movl	%r15d, %eax
17442        addl	%r13d, %r9d
17443        vpshufd	$0x50, %ymm4, %ymm6
17444        # rnd_0: 6 - 6
17445        xorl	%r14d, %eax
17446        addl	%edx, %r13d
17447        andl	%eax, %ebx
17448        vpsrlq	$0x11, %ymm6, %ymm8
17449        # rnd_0: 7 - 7
17450        xorl	%r15d, %ebx
17451        rorxl	$6, %r9d, %edx
17452        addl	%ebx, %r13d
17453        vpsrlq	$19, %ymm6, %ymm7
17454        # rnd_1: 0 - 0
17455        movl	%r10d, %ebx
17456        rorxl	$11, %r9d, %ecx
17457        addl	204(%rsp), %r12d
17458        vpsrld	$10, %ymm6, %ymm9
17459        # rnd_1: 1 - 1
17460        xorl	%edx, %ecx
17461        xorl	%r11d, %ebx
17462        rorxl	$25, %r9d, %edx
17463        vpxor	%ymm7, %ymm8, %ymm8
17464        # rnd_1: 2 - 2
17465        andl	%r9d, %ebx
17466        xorl	%ecx, %edx
17467        rorxl	$13, %r13d, %ecx
17468        vpxor	%ymm8, %ymm9, %ymm9
17469        # rnd_1: 3 - 3
17470        addl	%edx, %r12d
17471        rorxl	$2, %r13d, %edx
17472        xorl	%r11d, %ebx
17473        vpshufb	%ymm12, %ymm9, %ymm9
17474        # rnd_1: 4 - 4
17475        xorl	%edx, %ecx
17476        rorxl	$22, %r13d, %edx
17477        addl	%ebx, %r12d
17478        vpaddd	%ymm4, %ymm9, %ymm2
17479        # rnd_1: 5 - 5
17480        xorl	%ecx, %edx
17481        addl	%r12d, %r8d
17482        movl	%r14d, %ebx
17483        vpaddd	320+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
17484        # rnd_1: 6 - 6
17485        xorl	%r13d, %ebx
17486        addl	%edx, %r12d
17487        andl	%ebx, %eax
17488        # rnd_1: 7 - 7
17489        xorl	%r14d, %eax
17490        rorxl	$6, %r8d, %edx
17491        addl	%eax, %r12d
17492        vmovdqu	%ymm4, 320(%rsp)
17493        # rnd_0: 0 - 0
17494        movl	%r9d, %eax
17495        rorxl	$11, %r8d, %ecx
17496        addl	224(%rsp), %r11d
17497        vpalignr	$4, %ymm3, %ymm0, %ymm5
17498        # rnd_0: 1 - 1
17499        xorl	%edx, %ecx
17500        xorl	%r10d, %eax
17501        rorxl	$25, %r8d, %edx
17502        vpalignr	$4, %ymm1, %ymm2, %ymm4
17503        # rnd_0: 2 - 2
17504        andl	%r8d, %eax
17505        xorl	%ecx, %edx
17506        rorxl	$13, %r12d, %ecx
17507        vpsrld	$7, %ymm5, %ymm6
17508        # rnd_0: 3 - 3
17509        addl	%edx, %r11d
17510        rorxl	$2, %r12d, %edx
17511        xorl	%r10d, %eax
17512        vpslld	$25, %ymm5, %ymm7
17513        # rnd_0: 4 - 4
17514        xorl	%edx, %ecx
17515        rorxl	$22, %r12d, %edx
17516        addl	%eax, %r11d
17517        vpsrld	$18, %ymm5, %ymm8
17518        # rnd_0: 5 - 5
17519        xorl	%ecx, %edx
17520        movl	%r13d, %eax
17521        addl	%r11d, %r15d
17522        vpslld	$14, %ymm5, %ymm9
17523        # rnd_0: 6 - 6
17524        xorl	%r12d, %eax
17525        addl	%edx, %r11d
17526        andl	%eax, %ebx
17527        vpor	%ymm7, %ymm6, %ymm6
17528        # rnd_0: 7 - 7
17529        xorl	%r13d, %ebx
17530        rorxl	$6, %r15d, %edx
17531        addl	%ebx, %r11d
17532        vpor	%ymm9, %ymm8, %ymm8
17533        # rnd_1: 0 - 0
17534        movl	%r8d, %ebx
17535        rorxl	$11, %r15d, %ecx
17536        addl	228(%rsp), %r10d
17537        vpsrld	$3, %ymm5, %ymm9
17538        # rnd_1: 1 - 1
17539        xorl	%edx, %ecx
17540        xorl	%r9d, %ebx
17541        rorxl	$25, %r15d, %edx
17542        vpxor	%ymm8, %ymm6, %ymm6
17543        # rnd_1: 2 - 2
17544        andl	%r15d, %ebx
17545        xorl	%ecx, %edx
17546        rorxl	$13, %r11d, %ecx
17547        vpshufd	$0xfa, %ymm2, %ymm7
17548        # rnd_1: 3 - 3
17549        addl	%edx, %r10d
17550        rorxl	$2, %r11d, %edx
17551        xorl	%r9d, %ebx
17552        vpxor	%ymm6, %ymm9, %ymm5
17553        # rnd_1: 4 - 4
17554        xorl	%edx, %ecx
17555        rorxl	$22, %r11d, %edx
17556        addl	%ebx, %r10d
17557        vpsrld	$10, %ymm7, %ymm8
17558        # rnd_1: 5 - 5
17559        xorl	%ecx, %edx
17560        addl	%r10d, %r14d
17561        movl	%r12d, %ebx
17562        vpsrlq	$19, %ymm7, %ymm6
17563        # rnd_1: 6 - 6
17564        xorl	%r11d, %ebx
17565        addl	%edx, %r10d
17566        andl	%ebx, %eax
17567        vpsrlq	$0x11, %ymm7, %ymm7
17568        # rnd_1: 7 - 7
17569        xorl	%r12d, %eax
17570        rorxl	$6, %r14d, %edx
17571        addl	%eax, %r10d
17572        vpaddd	%ymm3, %ymm4, %ymm4
17573        # rnd_0: 0 - 0
17574        movl	%r15d, %eax
17575        rorxl	$11, %r14d, %ecx
17576        addl	232(%rsp), %r9d
17577        vpxor	%ymm7, %ymm6, %ymm6
17578        # rnd_0: 1 - 1
17579        xorl	%edx, %ecx
17580        xorl	%r8d, %eax
17581        rorxl	$25, %r14d, %edx
17582        vpxor	%ymm6, %ymm8, %ymm8
17583        # rnd_0: 2 - 2
17584        andl	%r14d, %eax
17585        xorl	%ecx, %edx
17586        rorxl	$13, %r10d, %ecx
17587        vpaddd	%ymm5, %ymm4, %ymm4
17588        # rnd_0: 3 - 3
17589        addl	%edx, %r9d
17590        rorxl	$2, %r10d, %edx
17591        xorl	%r8d, %eax
17592        vpshufb	%ymm11, %ymm8, %ymm8
17593        # rnd_0: 4 - 4
17594        xorl	%edx, %ecx
17595        rorxl	$22, %r10d, %edx
17596        addl	%eax, %r9d
17597        vpaddd	%ymm8, %ymm4, %ymm4
17598        # rnd_0: 5 - 5
17599        xorl	%ecx, %edx
17600        movl	%r11d, %eax
17601        addl	%r9d, %r13d
17602        vpshufd	$0x50, %ymm4, %ymm6
17603        # rnd_0: 6 - 6
17604        xorl	%r10d, %eax
17605        addl	%edx, %r9d
17606        andl	%eax, %ebx
17607        vpsrlq	$0x11, %ymm6, %ymm8
17608        # rnd_0: 7 - 7
17609        xorl	%r11d, %ebx
17610        rorxl	$6, %r13d, %edx
17611        addl	%ebx, %r9d
17612        vpsrlq	$19, %ymm6, %ymm7
17613        # rnd_1: 0 - 0
17614        movl	%r14d, %ebx
17615        rorxl	$11, %r13d, %ecx
17616        addl	236(%rsp), %r8d
17617        vpsrld	$10, %ymm6, %ymm9
17618        # rnd_1: 1 - 1
17619        xorl	%edx, %ecx
17620        xorl	%r15d, %ebx
17621        rorxl	$25, %r13d, %edx
17622        vpxor	%ymm7, %ymm8, %ymm8
17623        # rnd_1: 2 - 2
17624        andl	%r13d, %ebx
17625        xorl	%ecx, %edx
17626        rorxl	$13, %r9d, %ecx
17627        vpxor	%ymm8, %ymm9, %ymm9
17628        # rnd_1: 3 - 3
17629        addl	%edx, %r8d
17630        rorxl	$2, %r9d, %edx
17631        xorl	%r15d, %ebx
17632        vpshufb	%ymm12, %ymm9, %ymm9
17633        # rnd_1: 4 - 4
17634        xorl	%edx, %ecx
17635        rorxl	$22, %r9d, %edx
17636        addl	%ebx, %r8d
17637        vpaddd	%ymm4, %ymm9, %ymm3
17638        # rnd_1: 5 - 5
17639        xorl	%ecx, %edx
17640        addl	%r8d, %r12d
17641        movl	%r10d, %ebx
17642        vpaddd	352+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
17643        # rnd_1: 6 - 6
17644        xorl	%r9d, %ebx
17645        addl	%edx, %r8d
17646        andl	%ebx, %eax
17647        # rnd_1: 7 - 7
17648        xorl	%r10d, %eax
17649        rorxl	$6, %r12d, %edx
17650        addl	%eax, %r8d
17651        vmovdqu	%ymm4, 352(%rsp)
17652        # rnd_0: 0 - 0
17653        movl	%r13d, %eax
17654        rorxl	$11, %r12d, %ecx
17655        addl	256(%rsp), %r15d
17656        vpalignr	$4, %ymm0, %ymm1, %ymm5
17657        # rnd_0: 1 - 1
17658        xorl	%edx, %ecx
17659        xorl	%r14d, %eax
17660        rorxl	$25, %r12d, %edx
17661        vpalignr	$4, %ymm2, %ymm3, %ymm4
17662        # rnd_0: 2 - 2
17663        andl	%r12d, %eax
17664        xorl	%ecx, %edx
17665        rorxl	$13, %r8d, %ecx
17666        vpsrld	$7, %ymm5, %ymm6
17667        # rnd_0: 3 - 3
17668        addl	%edx, %r15d
17669        rorxl	$2, %r8d, %edx
17670        xorl	%r14d, %eax
17671        vpslld	$25, %ymm5, %ymm7
17672        # rnd_0: 4 - 4
17673        xorl	%edx, %ecx
17674        rorxl	$22, %r8d, %edx
17675        addl	%eax, %r15d
17676        vpsrld	$18, %ymm5, %ymm8
17677        # rnd_0: 5 - 5
17678        xorl	%ecx, %edx
17679        movl	%r9d, %eax
17680        addl	%r15d, %r11d
17681        vpslld	$14, %ymm5, %ymm9
17682        # rnd_0: 6 - 6
17683        xorl	%r8d, %eax
17684        addl	%edx, %r15d
17685        andl	%eax, %ebx
17686        vpor	%ymm7, %ymm6, %ymm6
17687        # rnd_0: 7 - 7
17688        xorl	%r9d, %ebx
17689        rorxl	$6, %r11d, %edx
17690        addl	%ebx, %r15d
17691        vpor	%ymm9, %ymm8, %ymm8
17692        # rnd_1: 0 - 0
17693        movl	%r12d, %ebx
17694        rorxl	$11, %r11d, %ecx
17695        addl	260(%rsp), %r14d
17696        vpsrld	$3, %ymm5, %ymm9
17697        # rnd_1: 1 - 1
17698        xorl	%edx, %ecx
17699        xorl	%r13d, %ebx
17700        rorxl	$25, %r11d, %edx
17701        vpxor	%ymm8, %ymm6, %ymm6
17702        # rnd_1: 2 - 2
17703        andl	%r11d, %ebx
17704        xorl	%ecx, %edx
17705        rorxl	$13, %r15d, %ecx
17706        vpshufd	$0xfa, %ymm3, %ymm7
17707        # rnd_1: 3 - 3
17708        addl	%edx, %r14d
17709        rorxl	$2, %r15d, %edx
17710        xorl	%r13d, %ebx
17711        vpxor	%ymm6, %ymm9, %ymm5
17712        # rnd_1: 4 - 4
17713        xorl	%edx, %ecx
17714        rorxl	$22, %r15d, %edx
17715        addl	%ebx, %r14d
17716        vpsrld	$10, %ymm7, %ymm8
17717        # rnd_1: 5 - 5
17718        xorl	%ecx, %edx
17719        addl	%r14d, %r10d
17720        movl	%r8d, %ebx
17721        vpsrlq	$19, %ymm7, %ymm6
17722        # rnd_1: 6 - 6
17723        xorl	%r15d, %ebx
17724        addl	%edx, %r14d
17725        andl	%ebx, %eax
17726        vpsrlq	$0x11, %ymm7, %ymm7
17727        # rnd_1: 7 - 7
17728        xorl	%r8d, %eax
17729        rorxl	$6, %r10d, %edx
17730        addl	%eax, %r14d
17731        vpaddd	%ymm0, %ymm4, %ymm4
17732        # rnd_0: 0 - 0
17733        movl	%r11d, %eax
17734        rorxl	$11, %r10d, %ecx
17735        addl	264(%rsp), %r13d
17736        vpxor	%ymm7, %ymm6, %ymm6
17737        # rnd_0: 1 - 1
17738        xorl	%edx, %ecx
17739        xorl	%r12d, %eax
17740        rorxl	$25, %r10d, %edx
17741        vpxor	%ymm6, %ymm8, %ymm8
17742        # rnd_0: 2 - 2
17743        andl	%r10d, %eax
17744        xorl	%ecx, %edx
17745        rorxl	$13, %r14d, %ecx
17746        vpaddd	%ymm5, %ymm4, %ymm4
17747        # rnd_0: 3 - 3
17748        addl	%edx, %r13d
17749        rorxl	$2, %r14d, %edx
17750        xorl	%r12d, %eax
17751        vpshufb	%ymm11, %ymm8, %ymm8
17752        # rnd_0: 4 - 4
17753        xorl	%edx, %ecx
17754        rorxl	$22, %r14d, %edx
17755        addl	%eax, %r13d
17756        vpaddd	%ymm8, %ymm4, %ymm4
17757        # rnd_0: 5 - 5
17758        xorl	%ecx, %edx
17759        movl	%r15d, %eax
17760        addl	%r13d, %r9d
17761        vpshufd	$0x50, %ymm4, %ymm6
17762        # rnd_0: 6 - 6
17763        xorl	%r14d, %eax
17764        addl	%edx, %r13d
17765        andl	%eax, %ebx
17766        vpsrlq	$0x11, %ymm6, %ymm8
17767        # rnd_0: 7 - 7
17768        xorl	%r15d, %ebx
17769        rorxl	$6, %r9d, %edx
17770        addl	%ebx, %r13d
17771        vpsrlq	$19, %ymm6, %ymm7
17772        # rnd_1: 0 - 0
17773        movl	%r10d, %ebx
17774        rorxl	$11, %r9d, %ecx
17775        addl	268(%rsp), %r12d
17776        vpsrld	$10, %ymm6, %ymm9
17777        # rnd_1: 1 - 1
17778        xorl	%edx, %ecx
17779        xorl	%r11d, %ebx
17780        rorxl	$25, %r9d, %edx
17781        vpxor	%ymm7, %ymm8, %ymm8
17782        # rnd_1: 2 - 2
17783        andl	%r9d, %ebx
17784        xorl	%ecx, %edx
17785        rorxl	$13, %r13d, %ecx
17786        vpxor	%ymm8, %ymm9, %ymm9
17787        # rnd_1: 3 - 3
17788        addl	%edx, %r12d
17789        rorxl	$2, %r13d, %edx
17790        xorl	%r11d, %ebx
17791        vpshufb	%ymm12, %ymm9, %ymm9
17792        # rnd_1: 4 - 4
17793        xorl	%edx, %ecx
17794        rorxl	$22, %r13d, %edx
17795        addl	%ebx, %r12d
17796        vpaddd	%ymm4, %ymm9, %ymm0
17797        # rnd_1: 5 - 5
17798        xorl	%ecx, %edx
17799        addl	%r12d, %r8d
17800        movl	%r14d, %ebx
17801        vpaddd	384+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
17802        # rnd_1: 6 - 6
17803        xorl	%r13d, %ebx
17804        addl	%edx, %r12d
17805        andl	%ebx, %eax
17806        # rnd_1: 7 - 7
17807        xorl	%r14d, %eax
17808        rorxl	$6, %r8d, %edx
17809        addl	%eax, %r12d
17810        vmovdqu	%ymm4, 384(%rsp)
17811        # rnd_0: 0 - 0
17812        movl	%r9d, %eax
17813        rorxl	$11, %r8d, %ecx
17814        addl	288(%rsp), %r11d
17815        vpalignr	$4, %ymm1, %ymm2, %ymm5
17816        # rnd_0: 1 - 1
17817        xorl	%edx, %ecx
17818        xorl	%r10d, %eax
17819        rorxl	$25, %r8d, %edx
17820        vpalignr	$4, %ymm3, %ymm0, %ymm4
17821        # rnd_0: 2 - 2
17822        andl	%r8d, %eax
17823        xorl	%ecx, %edx
17824        rorxl	$13, %r12d, %ecx
17825        vpsrld	$7, %ymm5, %ymm6
17826        # rnd_0: 3 - 3
17827        addl	%edx, %r11d
17828        rorxl	$2, %r12d, %edx
17829        xorl	%r10d, %eax
17830        vpslld	$25, %ymm5, %ymm7
17831        # rnd_0: 4 - 4
17832        xorl	%edx, %ecx
17833        rorxl	$22, %r12d, %edx
17834        addl	%eax, %r11d
17835        vpsrld	$18, %ymm5, %ymm8
17836        # rnd_0: 5 - 5
17837        xorl	%ecx, %edx
17838        movl	%r13d, %eax
17839        addl	%r11d, %r15d
17840        vpslld	$14, %ymm5, %ymm9
17841        # rnd_0: 6 - 6
17842        xorl	%r12d, %eax
17843        addl	%edx, %r11d
17844        andl	%eax, %ebx
17845        vpor	%ymm7, %ymm6, %ymm6
17846        # rnd_0: 7 - 7
17847        xorl	%r13d, %ebx
17848        rorxl	$6, %r15d, %edx
17849        addl	%ebx, %r11d
17850        vpor	%ymm9, %ymm8, %ymm8
17851        # rnd_1: 0 - 0
17852        movl	%r8d, %ebx
17853        rorxl	$11, %r15d, %ecx
17854        addl	292(%rsp), %r10d
17855        vpsrld	$3, %ymm5, %ymm9
17856        # rnd_1: 1 - 1
17857        xorl	%edx, %ecx
17858        xorl	%r9d, %ebx
17859        rorxl	$25, %r15d, %edx
17860        vpxor	%ymm8, %ymm6, %ymm6
17861        # rnd_1: 2 - 2
17862        andl	%r15d, %ebx
17863        xorl	%ecx, %edx
17864        rorxl	$13, %r11d, %ecx
17865        vpshufd	$0xfa, %ymm0, %ymm7
17866        # rnd_1: 3 - 3
17867        addl	%edx, %r10d
17868        rorxl	$2, %r11d, %edx
17869        xorl	%r9d, %ebx
17870        vpxor	%ymm6, %ymm9, %ymm5
17871        # rnd_1: 4 - 4
17872        xorl	%edx, %ecx
17873        rorxl	$22, %r11d, %edx
17874        addl	%ebx, %r10d
17875        vpsrld	$10, %ymm7, %ymm8
17876        # rnd_1: 5 - 5
17877        xorl	%ecx, %edx
17878        addl	%r10d, %r14d
17879        movl	%r12d, %ebx
17880        vpsrlq	$19, %ymm7, %ymm6
17881        # rnd_1: 6 - 6
17882        xorl	%r11d, %ebx
17883        addl	%edx, %r10d
17884        andl	%ebx, %eax
17885        vpsrlq	$0x11, %ymm7, %ymm7
17886        # rnd_1: 7 - 7
17887        xorl	%r12d, %eax
17888        rorxl	$6, %r14d, %edx
17889        addl	%eax, %r10d
17890        vpaddd	%ymm1, %ymm4, %ymm4
17891        # rnd_0: 0 - 0
17892        movl	%r15d, %eax
17893        rorxl	$11, %r14d, %ecx
17894        addl	296(%rsp), %r9d
17895        vpxor	%ymm7, %ymm6, %ymm6
17896        # rnd_0: 1 - 1
17897        xorl	%edx, %ecx
17898        xorl	%r8d, %eax
17899        rorxl	$25, %r14d, %edx
17900        vpxor	%ymm6, %ymm8, %ymm8
17901        # rnd_0: 2 - 2
17902        andl	%r14d, %eax
17903        xorl	%ecx, %edx
17904        rorxl	$13, %r10d, %ecx
17905        vpaddd	%ymm5, %ymm4, %ymm4
17906        # rnd_0: 3 - 3
17907        addl	%edx, %r9d
17908        rorxl	$2, %r10d, %edx
17909        xorl	%r8d, %eax
17910        vpshufb	%ymm11, %ymm8, %ymm8
17911        # rnd_0: 4 - 4
17912        xorl	%edx, %ecx
17913        rorxl	$22, %r10d, %edx
17914        addl	%eax, %r9d
17915        vpaddd	%ymm8, %ymm4, %ymm4
17916        # rnd_0: 5 - 5
17917        xorl	%ecx, %edx
17918        movl	%r11d, %eax
17919        addl	%r9d, %r13d
17920        vpshufd	$0x50, %ymm4, %ymm6
17921        # rnd_0: 6 - 6
17922        xorl	%r10d, %eax
17923        addl	%edx, %r9d
17924        andl	%eax, %ebx
17925        vpsrlq	$0x11, %ymm6, %ymm8
17926        # rnd_0: 7 - 7
17927        xorl	%r11d, %ebx
17928        rorxl	$6, %r13d, %edx
17929        addl	%ebx, %r9d
17930        vpsrlq	$19, %ymm6, %ymm7
17931        # rnd_1: 0 - 0
17932        movl	%r14d, %ebx
17933        rorxl	$11, %r13d, %ecx
17934        addl	300(%rsp), %r8d
17935        vpsrld	$10, %ymm6, %ymm9
17936        # rnd_1: 1 - 1
17937        xorl	%edx, %ecx
17938        xorl	%r15d, %ebx
17939        rorxl	$25, %r13d, %edx
17940        vpxor	%ymm7, %ymm8, %ymm8
17941        # rnd_1: 2 - 2
17942        andl	%r13d, %ebx
17943        xorl	%ecx, %edx
17944        rorxl	$13, %r9d, %ecx
17945        vpxor	%ymm8, %ymm9, %ymm9
17946        # rnd_1: 3 - 3
17947        addl	%edx, %r8d
17948        rorxl	$2, %r9d, %edx
17949        xorl	%r15d, %ebx
17950        vpshufb	%ymm12, %ymm9, %ymm9
17951        # rnd_1: 4 - 4
17952        xorl	%edx, %ecx
17953        rorxl	$22, %r9d, %edx
17954        addl	%ebx, %r8d
17955        vpaddd	%ymm4, %ymm9, %ymm1
17956        # rnd_1: 5 - 5
17957        xorl	%ecx, %edx
17958        addl	%r8d, %r12d
17959        movl	%r10d, %ebx
17960        vpaddd	416+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
17961        # rnd_1: 6 - 6
17962        xorl	%r9d, %ebx
17963        addl	%edx, %r8d
17964        andl	%ebx, %eax
17965        # rnd_1: 7 - 7
17966        xorl	%r10d, %eax
17967        rorxl	$6, %r12d, %edx
17968        addl	%eax, %r8d
17969        vmovdqu	%ymm4, 416(%rsp)
17970        # rnd_0: 0 - 0
17971        movl	%r13d, %eax
17972        rorxl	$11, %r12d, %ecx
17973        addl	320(%rsp), %r15d
17974        vpalignr	$4, %ymm2, %ymm3, %ymm5
17975        # rnd_0: 1 - 1
17976        xorl	%edx, %ecx
17977        xorl	%r14d, %eax
17978        rorxl	$25, %r12d, %edx
17979        vpalignr	$4, %ymm0, %ymm1, %ymm4
17980        # rnd_0: 2 - 2
17981        andl	%r12d, %eax
17982        xorl	%ecx, %edx
17983        rorxl	$13, %r8d, %ecx
17984        vpsrld	$7, %ymm5, %ymm6
17985        # rnd_0: 3 - 3
17986        addl	%edx, %r15d
17987        rorxl	$2, %r8d, %edx
17988        xorl	%r14d, %eax
17989        vpslld	$25, %ymm5, %ymm7
17990        # rnd_0: 4 - 4
17991        xorl	%edx, %ecx
17992        rorxl	$22, %r8d, %edx
17993        addl	%eax, %r15d
17994        vpsrld	$18, %ymm5, %ymm8
17995        # rnd_0: 5 - 5
17996        xorl	%ecx, %edx
17997        movl	%r9d, %eax
17998        addl	%r15d, %r11d
17999        vpslld	$14, %ymm5, %ymm9
18000        # rnd_0: 6 - 6
18001        xorl	%r8d, %eax
18002        addl	%edx, %r15d
18003        andl	%eax, %ebx
18004        vpor	%ymm7, %ymm6, %ymm6
18005        # rnd_0: 7 - 7
18006        xorl	%r9d, %ebx
18007        rorxl	$6, %r11d, %edx
18008        addl	%ebx, %r15d
18009        vpor	%ymm9, %ymm8, %ymm8
18010        # rnd_1: 0 - 0
18011        movl	%r12d, %ebx
18012        rorxl	$11, %r11d, %ecx
18013        addl	324(%rsp), %r14d
18014        vpsrld	$3, %ymm5, %ymm9
18015        # rnd_1: 1 - 1
18016        xorl	%edx, %ecx
18017        xorl	%r13d, %ebx
18018        rorxl	$25, %r11d, %edx
18019        vpxor	%ymm8, %ymm6, %ymm6
18020        # rnd_1: 2 - 2
18021        andl	%r11d, %ebx
18022        xorl	%ecx, %edx
18023        rorxl	$13, %r15d, %ecx
18024        vpshufd	$0xfa, %ymm1, %ymm7
18025        # rnd_1: 3 - 3
18026        addl	%edx, %r14d
18027        rorxl	$2, %r15d, %edx
18028        xorl	%r13d, %ebx
18029        vpxor	%ymm6, %ymm9, %ymm5
18030        # rnd_1: 4 - 4
18031        xorl	%edx, %ecx
18032        rorxl	$22, %r15d, %edx
18033        addl	%ebx, %r14d
18034        vpsrld	$10, %ymm7, %ymm8
18035        # rnd_1: 5 - 5
18036        xorl	%ecx, %edx
18037        addl	%r14d, %r10d
18038        movl	%r8d, %ebx
18039        vpsrlq	$19, %ymm7, %ymm6
18040        # rnd_1: 6 - 6
18041        xorl	%r15d, %ebx
18042        addl	%edx, %r14d
18043        andl	%ebx, %eax
18044        vpsrlq	$0x11, %ymm7, %ymm7
18045        # rnd_1: 7 - 7
18046        xorl	%r8d, %eax
18047        rorxl	$6, %r10d, %edx
18048        addl	%eax, %r14d
18049        vpaddd	%ymm2, %ymm4, %ymm4
18050        # rnd_0: 0 - 0
18051        movl	%r11d, %eax
18052        rorxl	$11, %r10d, %ecx
18053        addl	328(%rsp), %r13d
18054        vpxor	%ymm7, %ymm6, %ymm6
18055        # rnd_0: 1 - 1
18056        xorl	%edx, %ecx
18057        xorl	%r12d, %eax
18058        rorxl	$25, %r10d, %edx
18059        vpxor	%ymm6, %ymm8, %ymm8
18060        # rnd_0: 2 - 2
18061        andl	%r10d, %eax
18062        xorl	%ecx, %edx
18063        rorxl	$13, %r14d, %ecx
18064        vpaddd	%ymm5, %ymm4, %ymm4
18065        # rnd_0: 3 - 3
18066        addl	%edx, %r13d
18067        rorxl	$2, %r14d, %edx
18068        xorl	%r12d, %eax
18069        vpshufb	%ymm11, %ymm8, %ymm8
18070        # rnd_0: 4 - 4
18071        xorl	%edx, %ecx
18072        rorxl	$22, %r14d, %edx
18073        addl	%eax, %r13d
18074        vpaddd	%ymm8, %ymm4, %ymm4
18075        # rnd_0: 5 - 5
18076        xorl	%ecx, %edx
18077        movl	%r15d, %eax
18078        addl	%r13d, %r9d
18079        vpshufd	$0x50, %ymm4, %ymm6
18080        # rnd_0: 6 - 6
18081        xorl	%r14d, %eax
18082        addl	%edx, %r13d
18083        andl	%eax, %ebx
18084        vpsrlq	$0x11, %ymm6, %ymm8
18085        # rnd_0: 7 - 7
18086        xorl	%r15d, %ebx
18087        rorxl	$6, %r9d, %edx
18088        addl	%ebx, %r13d
18089        vpsrlq	$19, %ymm6, %ymm7
18090        # rnd_1: 0 - 0
18091        movl	%r10d, %ebx
18092        rorxl	$11, %r9d, %ecx
18093        addl	332(%rsp), %r12d
18094        vpsrld	$10, %ymm6, %ymm9
18095        # rnd_1: 1 - 1
18096        xorl	%edx, %ecx
18097        xorl	%r11d, %ebx
18098        rorxl	$25, %r9d, %edx
18099        vpxor	%ymm7, %ymm8, %ymm8
18100        # rnd_1: 2 - 2
18101        andl	%r9d, %ebx
18102        xorl	%ecx, %edx
18103        rorxl	$13, %r13d, %ecx
18104        vpxor	%ymm8, %ymm9, %ymm9
18105        # rnd_1: 3 - 3
18106        addl	%edx, %r12d
18107        rorxl	$2, %r13d, %edx
18108        xorl	%r11d, %ebx
18109        vpshufb	%ymm12, %ymm9, %ymm9
18110        # rnd_1: 4 - 4
18111        xorl	%edx, %ecx
18112        rorxl	$22, %r13d, %edx
18113        addl	%ebx, %r12d
18114        vpaddd	%ymm4, %ymm9, %ymm2
18115        # rnd_1: 5 - 5
18116        xorl	%ecx, %edx
18117        addl	%r12d, %r8d
18118        movl	%r14d, %ebx
18119        vpaddd	448+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
18120        # rnd_1: 6 - 6
18121        xorl	%r13d, %ebx
18122        addl	%edx, %r12d
18123        andl	%ebx, %eax
18124        # rnd_1: 7 - 7
18125        xorl	%r14d, %eax
18126        rorxl	$6, %r8d, %edx
18127        addl	%eax, %r12d
18128        vmovdqu	%ymm4, 448(%rsp)
18129        # rnd_0: 0 - 0
18130        movl	%r9d, %eax
18131        rorxl	$11, %r8d, %ecx
18132        addl	352(%rsp), %r11d
18133        vpalignr	$4, %ymm3, %ymm0, %ymm5
18134        # rnd_0: 1 - 1
18135        xorl	%edx, %ecx
18136        xorl	%r10d, %eax
18137        rorxl	$25, %r8d, %edx
18138        vpalignr	$4, %ymm1, %ymm2, %ymm4
18139        # rnd_0: 2 - 2
18140        andl	%r8d, %eax
18141        xorl	%ecx, %edx
18142        rorxl	$13, %r12d, %ecx
18143        vpsrld	$7, %ymm5, %ymm6
18144        # rnd_0: 3 - 3
18145        addl	%edx, %r11d
18146        rorxl	$2, %r12d, %edx
18147        xorl	%r10d, %eax
18148        vpslld	$25, %ymm5, %ymm7
18149        # rnd_0: 4 - 4
18150        xorl	%edx, %ecx
18151        rorxl	$22, %r12d, %edx
18152        addl	%eax, %r11d
18153        vpsrld	$18, %ymm5, %ymm8
18154        # rnd_0: 5 - 5
18155        xorl	%ecx, %edx
18156        movl	%r13d, %eax
18157        addl	%r11d, %r15d
18158        vpslld	$14, %ymm5, %ymm9
18159        # rnd_0: 6 - 6
18160        xorl	%r12d, %eax
18161        addl	%edx, %r11d
18162        andl	%eax, %ebx
18163        vpor	%ymm7, %ymm6, %ymm6
18164        # rnd_0: 7 - 7
18165        xorl	%r13d, %ebx
18166        rorxl	$6, %r15d, %edx
18167        addl	%ebx, %r11d
18168        vpor	%ymm9, %ymm8, %ymm8
18169        # rnd_1: 0 - 0
18170        movl	%r8d, %ebx
18171        rorxl	$11, %r15d, %ecx
18172        addl	356(%rsp), %r10d
18173        vpsrld	$3, %ymm5, %ymm9
18174        # rnd_1: 1 - 1
18175        xorl	%edx, %ecx
18176        xorl	%r9d, %ebx
18177        rorxl	$25, %r15d, %edx
18178        vpxor	%ymm8, %ymm6, %ymm6
18179        # rnd_1: 2 - 2
18180        andl	%r15d, %ebx
18181        xorl	%ecx, %edx
18182        rorxl	$13, %r11d, %ecx
18183        vpshufd	$0xfa, %ymm2, %ymm7
18184        # rnd_1: 3 - 3
18185        addl	%edx, %r10d
18186        rorxl	$2, %r11d, %edx
18187        xorl	%r9d, %ebx
18188        vpxor	%ymm6, %ymm9, %ymm5
18189        # rnd_1: 4 - 4
18190        xorl	%edx, %ecx
18191        rorxl	$22, %r11d, %edx
18192        addl	%ebx, %r10d
18193        vpsrld	$10, %ymm7, %ymm8
18194        # rnd_1: 5 - 5
18195        xorl	%ecx, %edx
18196        addl	%r10d, %r14d
18197        movl	%r12d, %ebx
18198        vpsrlq	$19, %ymm7, %ymm6
18199        # rnd_1: 6 - 6
18200        xorl	%r11d, %ebx
18201        addl	%edx, %r10d
18202        andl	%ebx, %eax
18203        vpsrlq	$0x11, %ymm7, %ymm7
18204        # rnd_1: 7 - 7
18205        xorl	%r12d, %eax
18206        rorxl	$6, %r14d, %edx
18207        addl	%eax, %r10d
18208        vpaddd	%ymm3, %ymm4, %ymm4
18209        # rnd_0: 0 - 0
18210        movl	%r15d, %eax
18211        rorxl	$11, %r14d, %ecx
18212        addl	360(%rsp), %r9d
18213        vpxor	%ymm7, %ymm6, %ymm6
18214        # rnd_0: 1 - 1
18215        xorl	%edx, %ecx
18216        xorl	%r8d, %eax
18217        rorxl	$25, %r14d, %edx
18218        vpxor	%ymm6, %ymm8, %ymm8
18219        # rnd_0: 2 - 2
18220        andl	%r14d, %eax
18221        xorl	%ecx, %edx
18222        rorxl	$13, %r10d, %ecx
18223        vpaddd	%ymm5, %ymm4, %ymm4
18224        # rnd_0: 3 - 3
18225        addl	%edx, %r9d
18226        rorxl	$2, %r10d, %edx
18227        xorl	%r8d, %eax
18228        vpshufb	%ymm11, %ymm8, %ymm8
18229        # rnd_0: 4 - 4
18230        xorl	%edx, %ecx
18231        rorxl	$22, %r10d, %edx
18232        addl	%eax, %r9d
18233        vpaddd	%ymm8, %ymm4, %ymm4
18234        # rnd_0: 5 - 5
18235        xorl	%ecx, %edx
18236        movl	%r11d, %eax
18237        addl	%r9d, %r13d
18238        vpshufd	$0x50, %ymm4, %ymm6
18239        # rnd_0: 6 - 6
18240        xorl	%r10d, %eax
18241        addl	%edx, %r9d
18242        andl	%eax, %ebx
18243        vpsrlq	$0x11, %ymm6, %ymm8
18244        # rnd_0: 7 - 7
18245        xorl	%r11d, %ebx
18246        rorxl	$6, %r13d, %edx
18247        addl	%ebx, %r9d
18248        vpsrlq	$19, %ymm6, %ymm7
18249        # rnd_1: 0 - 0
18250        movl	%r14d, %ebx
18251        rorxl	$11, %r13d, %ecx
18252        addl	364(%rsp), %r8d
18253        vpsrld	$10, %ymm6, %ymm9
18254        # rnd_1: 1 - 1
18255        xorl	%edx, %ecx
18256        xorl	%r15d, %ebx
18257        rorxl	$25, %r13d, %edx
18258        vpxor	%ymm7, %ymm8, %ymm8
18259        # rnd_1: 2 - 2
18260        andl	%r13d, %ebx
18261        xorl	%ecx, %edx
18262        rorxl	$13, %r9d, %ecx
18263        vpxor	%ymm8, %ymm9, %ymm9
18264        # rnd_1: 3 - 3
18265        addl	%edx, %r8d
18266        rorxl	$2, %r9d, %edx
18267        xorl	%r15d, %ebx
18268        vpshufb	%ymm12, %ymm9, %ymm9
18269        # rnd_1: 4 - 4
18270        xorl	%edx, %ecx
18271        rorxl	$22, %r9d, %edx
18272        addl	%ebx, %r8d
18273        vpaddd	%ymm4, %ymm9, %ymm3
18274        # rnd_1: 5 - 5
18275        xorl	%ecx, %edx
18276        addl	%r8d, %r12d
18277        movl	%r10d, %ebx
18278        vpaddd	480+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
18279        # rnd_1: 6 - 6
18280        xorl	%r9d, %ebx
18281        addl	%edx, %r8d
18282        andl	%ebx, %eax
18283        # rnd_1: 7 - 7
18284        xorl	%r10d, %eax
18285        rorxl	$6, %r12d, %edx
18286        addl	%eax, %r8d
18287        vmovdqu	%ymm4, 480(%rsp)
18288        xorl	%eax, %eax
18289        xorl	%ecx, %ecx
18290        rorxl	$6, %r12d, %edx
18291        rorxl	$11, %r12d, %ecx
18292        leal	(%r8,%rax,1), %r8d
18293        addl	384(%rsp), %r15d
18294        movl	%r13d, %eax
18295        xorl	%edx, %ecx
18296        xorl	%r14d, %eax
18297        rorxl	$25, %r12d, %edx
18298        xorl	%ecx, %edx
18299        andl	%r12d, %eax
18300        addl	%edx, %r15d
18301        rorxl	$2, %r8d, %edx
18302        rorxl	$13, %r8d, %ecx
18303        xorl	%r14d, %eax
18304        xorl	%edx, %ecx
18305        rorxl	$22, %r8d, %edx
18306        addl	%eax, %r15d
18307        xorl	%ecx, %edx
18308        movl	%r9d, %eax
18309        addl	%r15d, %r11d
18310        xorl	%r8d, %eax
18311        andl	%eax, %ebx
18312        addl	%edx, %r15d
18313        xorl	%r9d, %ebx
18314        rorxl	$6, %r11d, %edx
18315        rorxl	$11, %r11d, %ecx
18316        addl	%ebx, %r15d
18317        addl	388(%rsp), %r14d
18318        movl	%r12d, %ebx
18319        xorl	%edx, %ecx
18320        xorl	%r13d, %ebx
18321        rorxl	$25, %r11d, %edx
18322        xorl	%ecx, %edx
18323        andl	%r11d, %ebx
18324        addl	%edx, %r14d
18325        rorxl	$2, %r15d, %edx
18326        rorxl	$13, %r15d, %ecx
18327        xorl	%r13d, %ebx
18328        xorl	%edx, %ecx
18329        rorxl	$22, %r15d, %edx
18330        addl	%ebx, %r14d
18331        xorl	%ecx, %edx
18332        movl	%r8d, %ebx
18333        leal	(%r10,%r14,1), %r10d
18334        xorl	%r15d, %ebx
18335        andl	%ebx, %eax
18336        addl	%edx, %r14d
18337        xorl	%r8d, %eax
18338        rorxl	$6, %r10d, %edx
18339        rorxl	$11, %r10d, %ecx
18340        leal	(%r14,%rax,1), %r14d
18341        addl	392(%rsp), %r13d
18342        movl	%r11d, %eax
18343        xorl	%edx, %ecx
18344        xorl	%r12d, %eax
18345        rorxl	$25, %r10d, %edx
18346        xorl	%ecx, %edx
18347        andl	%r10d, %eax
18348        addl	%edx, %r13d
18349        rorxl	$2, %r14d, %edx
18350        rorxl	$13, %r14d, %ecx
18351        xorl	%r12d, %eax
18352        xorl	%edx, %ecx
18353        rorxl	$22, %r14d, %edx
18354        addl	%eax, %r13d
18355        xorl	%ecx, %edx
18356        movl	%r15d, %eax
18357        addl	%r13d, %r9d
18358        xorl	%r14d, %eax
18359        andl	%eax, %ebx
18360        addl	%edx, %r13d
18361        xorl	%r15d, %ebx
18362        rorxl	$6, %r9d, %edx
18363        rorxl	$11, %r9d, %ecx
18364        addl	%ebx, %r13d
18365        addl	396(%rsp), %r12d
18366        movl	%r10d, %ebx
18367        xorl	%edx, %ecx
18368        xorl	%r11d, %ebx
18369        rorxl	$25, %r9d, %edx
18370        xorl	%ecx, %edx
18371        andl	%r9d, %ebx
18372        addl	%edx, %r12d
18373        rorxl	$2, %r13d, %edx
18374        rorxl	$13, %r13d, %ecx
18375        xorl	%r11d, %ebx
18376        xorl	%edx, %ecx
18377        rorxl	$22, %r13d, %edx
18378        addl	%ebx, %r12d
18379        xorl	%ecx, %edx
18380        movl	%r14d, %ebx
18381        leal	(%r8,%r12,1), %r8d
18382        xorl	%r13d, %ebx
18383        andl	%ebx, %eax
18384        addl	%edx, %r12d
18385        xorl	%r14d, %eax
18386        rorxl	$6, %r8d, %edx
18387        rorxl	$11, %r8d, %ecx
18388        leal	(%r12,%rax,1), %r12d
18389        addl	416(%rsp), %r11d
18390        movl	%r9d, %eax
18391        xorl	%edx, %ecx
18392        xorl	%r10d, %eax
18393        rorxl	$25, %r8d, %edx
18394        xorl	%ecx, %edx
18395        andl	%r8d, %eax
18396        addl	%edx, %r11d
18397        rorxl	$2, %r12d, %edx
18398        rorxl	$13, %r12d, %ecx
18399        xorl	%r10d, %eax
18400        xorl	%edx, %ecx
18401        rorxl	$22, %r12d, %edx
18402        addl	%eax, %r11d
18403        xorl	%ecx, %edx
18404        movl	%r13d, %eax
18405        addl	%r11d, %r15d
18406        xorl	%r12d, %eax
18407        andl	%eax, %ebx
18408        addl	%edx, %r11d
18409        xorl	%r13d, %ebx
18410        rorxl	$6, %r15d, %edx
18411        rorxl	$11, %r15d, %ecx
18412        addl	%ebx, %r11d
18413        addl	420(%rsp), %r10d
18414        movl	%r8d, %ebx
18415        xorl	%edx, %ecx
18416        xorl	%r9d, %ebx
18417        rorxl	$25, %r15d, %edx
18418        xorl	%ecx, %edx
18419        andl	%r15d, %ebx
18420        addl	%edx, %r10d
18421        rorxl	$2, %r11d, %edx
18422        rorxl	$13, %r11d, %ecx
18423        xorl	%r9d, %ebx
18424        xorl	%edx, %ecx
18425        rorxl	$22, %r11d, %edx
18426        addl	%ebx, %r10d
18427        xorl	%ecx, %edx
18428        movl	%r12d, %ebx
18429        leal	(%r14,%r10,1), %r14d
18430        xorl	%r11d, %ebx
18431        andl	%ebx, %eax
18432        addl	%edx, %r10d
18433        xorl	%r12d, %eax
18434        rorxl	$6, %r14d, %edx
18435        rorxl	$11, %r14d, %ecx
18436        leal	(%r10,%rax,1), %r10d
18437        addl	424(%rsp), %r9d
18438        movl	%r15d, %eax
18439        xorl	%edx, %ecx
18440        xorl	%r8d, %eax
18441        rorxl	$25, %r14d, %edx
18442        xorl	%ecx, %edx
18443        andl	%r14d, %eax
18444        addl	%edx, %r9d
18445        rorxl	$2, %r10d, %edx
18446        rorxl	$13, %r10d, %ecx
18447        xorl	%r8d, %eax
18448        xorl	%edx, %ecx
18449        rorxl	$22, %r10d, %edx
18450        addl	%eax, %r9d
18451        xorl	%ecx, %edx
18452        movl	%r11d, %eax
18453        addl	%r9d, %r13d
18454        xorl	%r10d, %eax
18455        andl	%eax, %ebx
18456        addl	%edx, %r9d
18457        xorl	%r11d, %ebx
18458        rorxl	$6, %r13d, %edx
18459        rorxl	$11, %r13d, %ecx
18460        addl	%ebx, %r9d
18461        addl	428(%rsp), %r8d
18462        movl	%r14d, %ebx
18463        xorl	%edx, %ecx
18464        xorl	%r15d, %ebx
18465        rorxl	$25, %r13d, %edx
18466        xorl	%ecx, %edx
18467        andl	%r13d, %ebx
18468        addl	%edx, %r8d
18469        rorxl	$2, %r9d, %edx
18470        rorxl	$13, %r9d, %ecx
18471        xorl	%r15d, %ebx
18472        xorl	%edx, %ecx
18473        rorxl	$22, %r9d, %edx
18474        addl	%ebx, %r8d
18475        xorl	%ecx, %edx
18476        movl	%r10d, %ebx
18477        leal	(%r12,%r8,1), %r12d
18478        xorl	%r9d, %ebx
18479        andl	%ebx, %eax
18480        addl	%edx, %r8d
18481        xorl	%r10d, %eax
18482        rorxl	$6, %r12d, %edx
18483        rorxl	$11, %r12d, %ecx
18484        leal	(%r8,%rax,1), %r8d
18485        addl	448(%rsp), %r15d
18486        movl	%r13d, %eax
18487        xorl	%edx, %ecx
18488        xorl	%r14d, %eax
18489        rorxl	$25, %r12d, %edx
18490        xorl	%ecx, %edx
18491        andl	%r12d, %eax
18492        addl	%edx, %r15d
18493        rorxl	$2, %r8d, %edx
18494        rorxl	$13, %r8d, %ecx
18495        xorl	%r14d, %eax
18496        xorl	%edx, %ecx
18497        rorxl	$22, %r8d, %edx
18498        addl	%eax, %r15d
18499        xorl	%ecx, %edx
18500        movl	%r9d, %eax
18501        addl	%r15d, %r11d
18502        xorl	%r8d, %eax
18503        andl	%eax, %ebx
18504        addl	%edx, %r15d
18505        xorl	%r9d, %ebx
18506        rorxl	$6, %r11d, %edx
18507        rorxl	$11, %r11d, %ecx
18508        addl	%ebx, %r15d
18509        addl	452(%rsp), %r14d
18510        movl	%r12d, %ebx
18511        xorl	%edx, %ecx
18512        xorl	%r13d, %ebx
18513        rorxl	$25, %r11d, %edx
18514        xorl	%ecx, %edx
18515        andl	%r11d, %ebx
18516        addl	%edx, %r14d
18517        rorxl	$2, %r15d, %edx
18518        rorxl	$13, %r15d, %ecx
18519        xorl	%r13d, %ebx
18520        xorl	%edx, %ecx
18521        rorxl	$22, %r15d, %edx
18522        addl	%ebx, %r14d
18523        xorl	%ecx, %edx
18524        movl	%r8d, %ebx
18525        leal	(%r10,%r14,1), %r10d
18526        xorl	%r15d, %ebx
18527        andl	%ebx, %eax
18528        addl	%edx, %r14d
18529        xorl	%r8d, %eax
18530        rorxl	$6, %r10d, %edx
18531        rorxl	$11, %r10d, %ecx
18532        leal	(%r14,%rax,1), %r14d
18533        addl	456(%rsp), %r13d
18534        movl	%r11d, %eax
18535        xorl	%edx, %ecx
18536        xorl	%r12d, %eax
18537        rorxl	$25, %r10d, %edx
18538        xorl	%ecx, %edx
18539        andl	%r10d, %eax
18540        addl	%edx, %r13d
18541        rorxl	$2, %r14d, %edx
18542        rorxl	$13, %r14d, %ecx
18543        xorl	%r12d, %eax
18544        xorl	%edx, %ecx
18545        rorxl	$22, %r14d, %edx
18546        addl	%eax, %r13d
18547        xorl	%ecx, %edx
18548        movl	%r15d, %eax
18549        addl	%r13d, %r9d
18550        xorl	%r14d, %eax
18551        andl	%eax, %ebx
18552        addl	%edx, %r13d
18553        xorl	%r15d, %ebx
18554        rorxl	$6, %r9d, %edx
18555        rorxl	$11, %r9d, %ecx
18556        addl	%ebx, %r13d
18557        addl	460(%rsp), %r12d
18558        movl	%r10d, %ebx
18559        xorl	%edx, %ecx
18560        xorl	%r11d, %ebx
18561        rorxl	$25, %r9d, %edx
18562        xorl	%ecx, %edx
18563        andl	%r9d, %ebx
18564        addl	%edx, %r12d
18565        rorxl	$2, %r13d, %edx
18566        rorxl	$13, %r13d, %ecx
18567        xorl	%r11d, %ebx
18568        xorl	%edx, %ecx
18569        rorxl	$22, %r13d, %edx
18570        addl	%ebx, %r12d
18571        xorl	%ecx, %edx
18572        movl	%r14d, %ebx
18573        leal	(%r8,%r12,1), %r8d
18574        xorl	%r13d, %ebx
18575        andl	%ebx, %eax
18576        addl	%edx, %r12d
18577        xorl	%r14d, %eax
18578        rorxl	$6, %r8d, %edx
18579        rorxl	$11, %r8d, %ecx
18580        leal	(%r12,%rax,1), %r12d
18581        addl	480(%rsp), %r11d
18582        movl	%r9d, %eax
18583        xorl	%edx, %ecx
18584        xorl	%r10d, %eax
18585        rorxl	$25, %r8d, %edx
18586        xorl	%ecx, %edx
18587        andl	%r8d, %eax
18588        addl	%edx, %r11d
18589        rorxl	$2, %r12d, %edx
18590        rorxl	$13, %r12d, %ecx
18591        xorl	%r10d, %eax
18592        xorl	%edx, %ecx
18593        rorxl	$22, %r12d, %edx
18594        addl	%eax, %r11d
18595        xorl	%ecx, %edx
18596        movl	%r13d, %eax
18597        addl	%r11d, %r15d
18598        xorl	%r12d, %eax
18599        andl	%eax, %ebx
18600        addl	%edx, %r11d
18601        xorl	%r13d, %ebx
18602        rorxl	$6, %r15d, %edx
18603        rorxl	$11, %r15d, %ecx
18604        addl	%ebx, %r11d
18605        addl	484(%rsp), %r10d
18606        movl	%r8d, %ebx
18607        xorl	%edx, %ecx
18608        xorl	%r9d, %ebx
18609        rorxl	$25, %r15d, %edx
18610        xorl	%ecx, %edx
18611        andl	%r15d, %ebx
18612        addl	%edx, %r10d
18613        rorxl	$2, %r11d, %edx
18614        rorxl	$13, %r11d, %ecx
18615        xorl	%r9d, %ebx
18616        xorl	%edx, %ecx
18617        rorxl	$22, %r11d, %edx
18618        addl	%ebx, %r10d
18619        xorl	%ecx, %edx
18620        movl	%r12d, %ebx
18621        leal	(%r14,%r10,1), %r14d
18622        xorl	%r11d, %ebx
18623        andl	%ebx, %eax
18624        addl	%edx, %r10d
18625        xorl	%r12d, %eax
18626        rorxl	$6, %r14d, %edx
18627        rorxl	$11, %r14d, %ecx
18628        leal	(%r10,%rax,1), %r10d
18629        addl	488(%rsp), %r9d
18630        movl	%r15d, %eax
18631        xorl	%edx, %ecx
18632        xorl	%r8d, %eax
18633        rorxl	$25, %r14d, %edx
18634        xorl	%ecx, %edx
18635        andl	%r14d, %eax
18636        addl	%edx, %r9d
18637        rorxl	$2, %r10d, %edx
18638        rorxl	$13, %r10d, %ecx
18639        xorl	%r8d, %eax
18640        xorl	%edx, %ecx
18641        rorxl	$22, %r10d, %edx
18642        addl	%eax, %r9d
18643        xorl	%ecx, %edx
18644        movl	%r11d, %eax
18645        addl	%r9d, %r13d
18646        xorl	%r10d, %eax
18647        andl	%eax, %ebx
18648        addl	%edx, %r9d
18649        xorl	%r11d, %ebx
18650        rorxl	$6, %r13d, %edx
18651        rorxl	$11, %r13d, %ecx
18652        addl	%ebx, %r9d
18653        addl	492(%rsp), %r8d
18654        movl	%r14d, %ebx
18655        xorl	%edx, %ecx
18656        xorl	%r15d, %ebx
18657        rorxl	$25, %r13d, %edx
18658        xorl	%ecx, %edx
18659        andl	%r13d, %ebx
18660        addl	%edx, %r8d
18661        rorxl	$2, %r9d, %edx
18662        rorxl	$13, %r9d, %ecx
18663        xorl	%r15d, %ebx
18664        xorl	%edx, %ecx
18665        rorxl	$22, %r9d, %edx
18666        addl	%ebx, %r8d
18667        xorl	%ecx, %edx
18668        movl	%r10d, %ebx
18669        leal	(%r12,%r8,1), %r12d
18670        xorl	%r9d, %ebx
18671        andl	%ebx, %eax
18672        addl	%edx, %r8d
18673        xorl	%r10d, %eax
18674        addl	%eax, %r8d
18675        addl	%r8d, (%rdi)
18676        addl	%r9d, 4(%rdi)
18677        addl	%r10d, 8(%rdi)
18678        addl	%r11d, 12(%rdi)
18679        addl	%r12d, 16(%rdi)
18680        addl	%r13d, 20(%rdi)
18681        addl	%r14d, 24(%rdi)
18682        addl	%r15d, 28(%rdi)
18683        xorq	%rax, %rax
18684        vzeroupper
18685        addq	$0x200, %rsp
18686        popq	%r15
18687        popq	%r14
18688        popq	%r13
18689        popq	%r12
18690        popq	%rbx
18691        repz retq
18692#ifndef __APPLE__
18693.size	Transform_Sha256_AVX2_RORX,.-Transform_Sha256_AVX2_RORX
18694#endif /* __APPLE__ */
18695#ifndef __APPLE__
18696.text
18697.globl	Transform_Sha256_AVX2_RORX_Len
18698.type	Transform_Sha256_AVX2_RORX_Len,@function
18699.align	16
18700Transform_Sha256_AVX2_RORX_Len:
18701#else
18702.section	__TEXT,__text
18703.globl	_Transform_Sha256_AVX2_RORX_Len
18704.p2align	4
18705_Transform_Sha256_AVX2_RORX_Len:
18706#endif /* __APPLE__ */
18707        pushq	%rbx
18708        pushq	%r12
18709        pushq	%r13
18710        pushq	%r14
18711        pushq	%r15
18712        pushq	%rbp
18713        movq	%rsi, %rbp
18714        movq	%rdx, %rsi
18715        subq	$0x200, %rsp
18716        testb	$0x40, %sil
18717        je	L_sha256_len_avx2_rorx_block
18718        vmovdqu	(%rbp), %ymm0
18719        vmovdqu	32(%rbp), %ymm1
18720        vmovups	%ymm0, 32(%rdi)
18721        vmovups	%ymm1, 64(%rdi)
18722#ifndef __APPLE__
18723        call	Transform_Sha256_AVX2_RORX@plt
18724#else
18725        call	_Transform_Sha256_AVX2_RORX
18726#endif /* __APPLE__ */
18727        addq	$0x40, %rbp
18728        subl	$0x40, %esi
18729        jz	L_sha256_len_avx2_rorx_done
18730L_sha256_len_avx2_rorx_block:
18731        vmovdqa	L_avx2_rorx_sha256_flip_mask(%rip), %ymm13
18732        vmovdqa	L_avx2_rorx_sha256_shuf_00BA(%rip), %ymm11
18733        vmovdqa	L_avx2_rorx_sha256_shuf_DC00(%rip), %ymm12
18734        movl	(%rdi), %r8d
18735        movl	4(%rdi), %r9d
18736        movl	8(%rdi), %r10d
18737        movl	12(%rdi), %r11d
18738        movl	16(%rdi), %r12d
18739        movl	20(%rdi), %r13d
18740        movl	24(%rdi), %r14d
18741        movl	28(%rdi), %r15d
18742        # Start of loop processing two blocks
18743L_sha256_len_avx2_rorx_start:
18744        # X0, X1, X2, X3 = W[0..15]
18745        vmovdqu	(%rbp), %xmm0
18746        vmovdqu	16(%rbp), %xmm1
18747        vinserti128	$0x01, 64(%rbp), %ymm0, %ymm0
18748        vinserti128	$0x01, 80(%rbp), %ymm1, %ymm1
18749        vpshufb	%ymm13, %ymm0, %ymm0
18750        vpshufb	%ymm13, %ymm1, %ymm1
18751        vpaddd	0+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
18752        vpaddd	32+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm5
18753        vmovdqu	%ymm4, (%rsp)
18754        vmovdqu	%ymm5, 32(%rsp)
18755        vmovdqu	32(%rbp), %xmm2
18756        vmovdqu	48(%rbp), %xmm3
18757        vinserti128	$0x01, 96(%rbp), %ymm2, %ymm2
18758        vinserti128	$0x01, 112(%rbp), %ymm3, %ymm3
18759        vpshufb	%ymm13, %ymm2, %ymm2
18760        vpshufb	%ymm13, %ymm3, %ymm3
18761        vpaddd	64+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
18762        vpaddd	96+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm5
18763        vmovdqu	%ymm4, 64(%rsp)
18764        vmovdqu	%ymm5, 96(%rsp)
18765        movl	%r9d, %ebx
18766        rorxl	$6, %r12d, %edx
18767        xorl	%r10d, %ebx
18768        # rnd_0: 0 - 0
18769        movl	%r13d, %eax
18770        rorxl	$11, %r12d, %ecx
18771        addl	(%rsp), %r15d
18772        vpalignr	$4, %ymm0, %ymm1, %ymm5
18773        # rnd_0: 1 - 1
18774        xorl	%edx, %ecx
18775        xorl	%r14d, %eax
18776        rorxl	$25, %r12d, %edx
18777        vpalignr	$4, %ymm2, %ymm3, %ymm4
18778        # rnd_0: 2 - 2
18779        andl	%r12d, %eax
18780        xorl	%ecx, %edx
18781        rorxl	$13, %r8d, %ecx
18782        vpsrld	$7, %ymm5, %ymm6
18783        # rnd_0: 3 - 3
18784        addl	%edx, %r15d
18785        rorxl	$2, %r8d, %edx
18786        xorl	%r14d, %eax
18787        vpslld	$25, %ymm5, %ymm7
18788        # rnd_0: 4 - 4
18789        xorl	%edx, %ecx
18790        rorxl	$22, %r8d, %edx
18791        addl	%eax, %r15d
18792        vpsrld	$18, %ymm5, %ymm8
18793        # rnd_0: 5 - 5
18794        xorl	%ecx, %edx
18795        movl	%r9d, %eax
18796        addl	%r15d, %r11d
18797        vpslld	$14, %ymm5, %ymm9
18798        # rnd_0: 6 - 6
18799        xorl	%r8d, %eax
18800        addl	%edx, %r15d
18801        andl	%eax, %ebx
18802        vpor	%ymm7, %ymm6, %ymm6
18803        # rnd_0: 7 - 7
18804        xorl	%r9d, %ebx
18805        rorxl	$6, %r11d, %edx
18806        addl	%ebx, %r15d
18807        vpor	%ymm9, %ymm8, %ymm8
18808        # rnd_1: 0 - 0
18809        movl	%r12d, %ebx
18810        rorxl	$11, %r11d, %ecx
18811        addl	4(%rsp), %r14d
18812        vpsrld	$3, %ymm5, %ymm9
18813        # rnd_1: 1 - 1
18814        xorl	%edx, %ecx
18815        xorl	%r13d, %ebx
18816        rorxl	$25, %r11d, %edx
18817        vpxor	%ymm8, %ymm6, %ymm6
18818        # rnd_1: 2 - 2
18819        andl	%r11d, %ebx
18820        xorl	%ecx, %edx
18821        rorxl	$13, %r15d, %ecx
18822        vpshufd	$0xfa, %ymm3, %ymm7
18823        # rnd_1: 3 - 3
18824        addl	%edx, %r14d
18825        rorxl	$2, %r15d, %edx
18826        xorl	%r13d, %ebx
18827        vpxor	%ymm6, %ymm9, %ymm5
18828        # rnd_1: 4 - 4
18829        xorl	%edx, %ecx
18830        rorxl	$22, %r15d, %edx
18831        addl	%ebx, %r14d
18832        vpsrld	$10, %ymm7, %ymm8
18833        # rnd_1: 5 - 5
18834        xorl	%ecx, %edx
18835        addl	%r14d, %r10d
18836        movl	%r8d, %ebx
18837        vpsrlq	$19, %ymm7, %ymm6
18838        # rnd_1: 6 - 6
18839        xorl	%r15d, %ebx
18840        addl	%edx, %r14d
18841        andl	%ebx, %eax
18842        vpsrlq	$0x11, %ymm7, %ymm7
18843        # rnd_1: 7 - 7
18844        xorl	%r8d, %eax
18845        rorxl	$6, %r10d, %edx
18846        addl	%eax, %r14d
18847        vpaddd	%ymm0, %ymm4, %ymm4
18848        # rnd_0: 0 - 0
18849        movl	%r11d, %eax
18850        rorxl	$11, %r10d, %ecx
18851        addl	8(%rsp), %r13d
18852        vpxor	%ymm7, %ymm6, %ymm6
18853        # rnd_0: 1 - 1
18854        xorl	%edx, %ecx
18855        xorl	%r12d, %eax
18856        rorxl	$25, %r10d, %edx
18857        vpxor	%ymm6, %ymm8, %ymm8
18858        # rnd_0: 2 - 2
18859        andl	%r10d, %eax
18860        xorl	%ecx, %edx
18861        rorxl	$13, %r14d, %ecx
18862        vpaddd	%ymm5, %ymm4, %ymm4
18863        # rnd_0: 3 - 3
18864        addl	%edx, %r13d
18865        rorxl	$2, %r14d, %edx
18866        xorl	%r12d, %eax
18867        vpshufb	%ymm11, %ymm8, %ymm8
18868        # rnd_0: 4 - 4
18869        xorl	%edx, %ecx
18870        rorxl	$22, %r14d, %edx
18871        addl	%eax, %r13d
18872        vpaddd	%ymm8, %ymm4, %ymm4
18873        # rnd_0: 5 - 5
18874        xorl	%ecx, %edx
18875        movl	%r15d, %eax
18876        addl	%r13d, %r9d
18877        vpshufd	$0x50, %ymm4, %ymm6
18878        # rnd_0: 6 - 6
18879        xorl	%r14d, %eax
18880        addl	%edx, %r13d
18881        andl	%eax, %ebx
18882        vpsrlq	$0x11, %ymm6, %ymm8
18883        # rnd_0: 7 - 7
18884        xorl	%r15d, %ebx
18885        rorxl	$6, %r9d, %edx
18886        addl	%ebx, %r13d
18887        vpsrlq	$19, %ymm6, %ymm7
18888        # rnd_1: 0 - 0
18889        movl	%r10d, %ebx
18890        rorxl	$11, %r9d, %ecx
18891        addl	12(%rsp), %r12d
18892        vpsrld	$10, %ymm6, %ymm9
18893        # rnd_1: 1 - 1
18894        xorl	%edx, %ecx
18895        xorl	%r11d, %ebx
18896        rorxl	$25, %r9d, %edx
18897        vpxor	%ymm7, %ymm8, %ymm8
18898        # rnd_1: 2 - 2
18899        andl	%r9d, %ebx
18900        xorl	%ecx, %edx
18901        rorxl	$13, %r13d, %ecx
18902        vpxor	%ymm8, %ymm9, %ymm9
18903        # rnd_1: 3 - 3
18904        addl	%edx, %r12d
18905        rorxl	$2, %r13d, %edx
18906        xorl	%r11d, %ebx
18907        vpshufb	%ymm12, %ymm9, %ymm9
18908        # rnd_1: 4 - 4
18909        xorl	%edx, %ecx
18910        rorxl	$22, %r13d, %edx
18911        addl	%ebx, %r12d
18912        vpaddd	%ymm4, %ymm9, %ymm0
18913        # rnd_1: 5 - 5
18914        xorl	%ecx, %edx
18915        addl	%r12d, %r8d
18916        movl	%r14d, %ebx
18917        vpaddd	128+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
18918        # rnd_1: 6 - 6
18919        xorl	%r13d, %ebx
18920        addl	%edx, %r12d
18921        andl	%ebx, %eax
18922        # rnd_1: 7 - 7
18923        xorl	%r14d, %eax
18924        rorxl	$6, %r8d, %edx
18925        addl	%eax, %r12d
18926        vmovdqu	%ymm4, 128(%rsp)
18927        # rnd_0: 0 - 0
18928        movl	%r9d, %eax
18929        rorxl	$11, %r8d, %ecx
18930        addl	32(%rsp), %r11d
18931        vpalignr	$4, %ymm1, %ymm2, %ymm5
18932        # rnd_0: 1 - 1
18933        xorl	%edx, %ecx
18934        xorl	%r10d, %eax
18935        rorxl	$25, %r8d, %edx
18936        vpalignr	$4, %ymm3, %ymm0, %ymm4
18937        # rnd_0: 2 - 2
18938        andl	%r8d, %eax
18939        xorl	%ecx, %edx
18940        rorxl	$13, %r12d, %ecx
18941        vpsrld	$7, %ymm5, %ymm6
18942        # rnd_0: 3 - 3
18943        addl	%edx, %r11d
18944        rorxl	$2, %r12d, %edx
18945        xorl	%r10d, %eax
18946        vpslld	$25, %ymm5, %ymm7
18947        # rnd_0: 4 - 4
18948        xorl	%edx, %ecx
18949        rorxl	$22, %r12d, %edx
18950        addl	%eax, %r11d
18951        vpsrld	$18, %ymm5, %ymm8
18952        # rnd_0: 5 - 5
18953        xorl	%ecx, %edx
18954        movl	%r13d, %eax
18955        addl	%r11d, %r15d
18956        vpslld	$14, %ymm5, %ymm9
18957        # rnd_0: 6 - 6
18958        xorl	%r12d, %eax
18959        addl	%edx, %r11d
18960        andl	%eax, %ebx
18961        vpor	%ymm7, %ymm6, %ymm6
18962        # rnd_0: 7 - 7
18963        xorl	%r13d, %ebx
18964        rorxl	$6, %r15d, %edx
18965        addl	%ebx, %r11d
18966        vpor	%ymm9, %ymm8, %ymm8
18967        # rnd_1: 0 - 0
18968        movl	%r8d, %ebx
18969        rorxl	$11, %r15d, %ecx
18970        addl	36(%rsp), %r10d
18971        vpsrld	$3, %ymm5, %ymm9
18972        # rnd_1: 1 - 1
18973        xorl	%edx, %ecx
18974        xorl	%r9d, %ebx
18975        rorxl	$25, %r15d, %edx
18976        vpxor	%ymm8, %ymm6, %ymm6
18977        # rnd_1: 2 - 2
18978        andl	%r15d, %ebx
18979        xorl	%ecx, %edx
18980        rorxl	$13, %r11d, %ecx
18981        vpshufd	$0xfa, %ymm0, %ymm7
18982        # rnd_1: 3 - 3
18983        addl	%edx, %r10d
18984        rorxl	$2, %r11d, %edx
18985        xorl	%r9d, %ebx
18986        vpxor	%ymm6, %ymm9, %ymm5
18987        # rnd_1: 4 - 4
18988        xorl	%edx, %ecx
18989        rorxl	$22, %r11d, %edx
18990        addl	%ebx, %r10d
18991        vpsrld	$10, %ymm7, %ymm8
18992        # rnd_1: 5 - 5
18993        xorl	%ecx, %edx
18994        addl	%r10d, %r14d
18995        movl	%r12d, %ebx
18996        vpsrlq	$19, %ymm7, %ymm6
18997        # rnd_1: 6 - 6
18998        xorl	%r11d, %ebx
18999        addl	%edx, %r10d
19000        andl	%ebx, %eax
19001        vpsrlq	$0x11, %ymm7, %ymm7
19002        # rnd_1: 7 - 7
19003        xorl	%r12d, %eax
19004        rorxl	$6, %r14d, %edx
19005        addl	%eax, %r10d
19006        vpaddd	%ymm1, %ymm4, %ymm4
19007        # rnd_0: 0 - 0
19008        movl	%r15d, %eax
19009        rorxl	$11, %r14d, %ecx
19010        addl	40(%rsp), %r9d
19011        vpxor	%ymm7, %ymm6, %ymm6
19012        # rnd_0: 1 - 1
19013        xorl	%edx, %ecx
19014        xorl	%r8d, %eax
19015        rorxl	$25, %r14d, %edx
19016        vpxor	%ymm6, %ymm8, %ymm8
19017        # rnd_0: 2 - 2
19018        andl	%r14d, %eax
19019        xorl	%ecx, %edx
19020        rorxl	$13, %r10d, %ecx
19021        vpaddd	%ymm5, %ymm4, %ymm4
19022        # rnd_0: 3 - 3
19023        addl	%edx, %r9d
19024        rorxl	$2, %r10d, %edx
19025        xorl	%r8d, %eax
19026        vpshufb	%ymm11, %ymm8, %ymm8
19027        # rnd_0: 4 - 4
19028        xorl	%edx, %ecx
19029        rorxl	$22, %r10d, %edx
19030        addl	%eax, %r9d
19031        vpaddd	%ymm8, %ymm4, %ymm4
19032        # rnd_0: 5 - 5
19033        xorl	%ecx, %edx
19034        movl	%r11d, %eax
19035        addl	%r9d, %r13d
19036        vpshufd	$0x50, %ymm4, %ymm6
19037        # rnd_0: 6 - 6
19038        xorl	%r10d, %eax
19039        addl	%edx, %r9d
19040        andl	%eax, %ebx
19041        vpsrlq	$0x11, %ymm6, %ymm8
19042        # rnd_0: 7 - 7
19043        xorl	%r11d, %ebx
19044        rorxl	$6, %r13d, %edx
19045        addl	%ebx, %r9d
19046        vpsrlq	$19, %ymm6, %ymm7
19047        # rnd_1: 0 - 0
19048        movl	%r14d, %ebx
19049        rorxl	$11, %r13d, %ecx
19050        addl	44(%rsp), %r8d
19051        vpsrld	$10, %ymm6, %ymm9
19052        # rnd_1: 1 - 1
19053        xorl	%edx, %ecx
19054        xorl	%r15d, %ebx
19055        rorxl	$25, %r13d, %edx
19056        vpxor	%ymm7, %ymm8, %ymm8
19057        # rnd_1: 2 - 2
19058        andl	%r13d, %ebx
19059        xorl	%ecx, %edx
19060        rorxl	$13, %r9d, %ecx
19061        vpxor	%ymm8, %ymm9, %ymm9
19062        # rnd_1: 3 - 3
19063        addl	%edx, %r8d
19064        rorxl	$2, %r9d, %edx
19065        xorl	%r15d, %ebx
19066        vpshufb	%ymm12, %ymm9, %ymm9
19067        # rnd_1: 4 - 4
19068        xorl	%edx, %ecx
19069        rorxl	$22, %r9d, %edx
19070        addl	%ebx, %r8d
19071        vpaddd	%ymm4, %ymm9, %ymm1
19072        # rnd_1: 5 - 5
19073        xorl	%ecx, %edx
19074        addl	%r8d, %r12d
19075        movl	%r10d, %ebx
19076        vpaddd	160+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
19077        # rnd_1: 6 - 6
19078        xorl	%r9d, %ebx
19079        addl	%edx, %r8d
19080        andl	%ebx, %eax
19081        # rnd_1: 7 - 7
19082        xorl	%r10d, %eax
19083        rorxl	$6, %r12d, %edx
19084        addl	%eax, %r8d
19085        vmovdqu	%ymm4, 160(%rsp)
19086        # rnd_0: 0 - 0
19087        movl	%r13d, %eax
19088        rorxl	$11, %r12d, %ecx
19089        addl	64(%rsp), %r15d
19090        vpalignr	$4, %ymm2, %ymm3, %ymm5
19091        # rnd_0: 1 - 1
19092        xorl	%edx, %ecx
19093        xorl	%r14d, %eax
19094        rorxl	$25, %r12d, %edx
19095        vpalignr	$4, %ymm0, %ymm1, %ymm4
19096        # rnd_0: 2 - 2
19097        andl	%r12d, %eax
19098        xorl	%ecx, %edx
19099        rorxl	$13, %r8d, %ecx
19100        vpsrld	$7, %ymm5, %ymm6
19101        # rnd_0: 3 - 3
19102        addl	%edx, %r15d
19103        rorxl	$2, %r8d, %edx
19104        xorl	%r14d, %eax
19105        vpslld	$25, %ymm5, %ymm7
19106        # rnd_0: 4 - 4
19107        xorl	%edx, %ecx
19108        rorxl	$22, %r8d, %edx
19109        addl	%eax, %r15d
19110        vpsrld	$18, %ymm5, %ymm8
19111        # rnd_0: 5 - 5
19112        xorl	%ecx, %edx
19113        movl	%r9d, %eax
19114        addl	%r15d, %r11d
19115        vpslld	$14, %ymm5, %ymm9
19116        # rnd_0: 6 - 6
19117        xorl	%r8d, %eax
19118        addl	%edx, %r15d
19119        andl	%eax, %ebx
19120        vpor	%ymm7, %ymm6, %ymm6
19121        # rnd_0: 7 - 7
19122        xorl	%r9d, %ebx
19123        rorxl	$6, %r11d, %edx
19124        addl	%ebx, %r15d
19125        vpor	%ymm9, %ymm8, %ymm8
19126        # rnd_1: 0 - 0
19127        movl	%r12d, %ebx
19128        rorxl	$11, %r11d, %ecx
19129        addl	68(%rsp), %r14d
19130        vpsrld	$3, %ymm5, %ymm9
19131        # rnd_1: 1 - 1
19132        xorl	%edx, %ecx
19133        xorl	%r13d, %ebx
19134        rorxl	$25, %r11d, %edx
19135        vpxor	%ymm8, %ymm6, %ymm6
19136        # rnd_1: 2 - 2
19137        andl	%r11d, %ebx
19138        xorl	%ecx, %edx
19139        rorxl	$13, %r15d, %ecx
19140        vpshufd	$0xfa, %ymm1, %ymm7
19141        # rnd_1: 3 - 3
19142        addl	%edx, %r14d
19143        rorxl	$2, %r15d, %edx
19144        xorl	%r13d, %ebx
19145        vpxor	%ymm6, %ymm9, %ymm5
19146        # rnd_1: 4 - 4
19147        xorl	%edx, %ecx
19148        rorxl	$22, %r15d, %edx
19149        addl	%ebx, %r14d
19150        vpsrld	$10, %ymm7, %ymm8
19151        # rnd_1: 5 - 5
19152        xorl	%ecx, %edx
19153        addl	%r14d, %r10d
19154        movl	%r8d, %ebx
19155        vpsrlq	$19, %ymm7, %ymm6
19156        # rnd_1: 6 - 6
19157        xorl	%r15d, %ebx
19158        addl	%edx, %r14d
19159        andl	%ebx, %eax
19160        vpsrlq	$0x11, %ymm7, %ymm7
19161        # rnd_1: 7 - 7
19162        xorl	%r8d, %eax
19163        rorxl	$6, %r10d, %edx
19164        addl	%eax, %r14d
19165        vpaddd	%ymm2, %ymm4, %ymm4
19166        # rnd_0: 0 - 0
19167        movl	%r11d, %eax
19168        rorxl	$11, %r10d, %ecx
19169        addl	72(%rsp), %r13d
19170        vpxor	%ymm7, %ymm6, %ymm6
19171        # rnd_0: 1 - 1
19172        xorl	%edx, %ecx
19173        xorl	%r12d, %eax
19174        rorxl	$25, %r10d, %edx
19175        vpxor	%ymm6, %ymm8, %ymm8
19176        # rnd_0: 2 - 2
19177        andl	%r10d, %eax
19178        xorl	%ecx, %edx
19179        rorxl	$13, %r14d, %ecx
19180        vpaddd	%ymm5, %ymm4, %ymm4
19181        # rnd_0: 3 - 3
19182        addl	%edx, %r13d
19183        rorxl	$2, %r14d, %edx
19184        xorl	%r12d, %eax
19185        vpshufb	%ymm11, %ymm8, %ymm8
19186        # rnd_0: 4 - 4
19187        xorl	%edx, %ecx
19188        rorxl	$22, %r14d, %edx
19189        addl	%eax, %r13d
19190        vpaddd	%ymm8, %ymm4, %ymm4
19191        # rnd_0: 5 - 5
19192        xorl	%ecx, %edx
19193        movl	%r15d, %eax
19194        addl	%r13d, %r9d
19195        vpshufd	$0x50, %ymm4, %ymm6
19196        # rnd_0: 6 - 6
19197        xorl	%r14d, %eax
19198        addl	%edx, %r13d
19199        andl	%eax, %ebx
19200        vpsrlq	$0x11, %ymm6, %ymm8
19201        # rnd_0: 7 - 7
19202        xorl	%r15d, %ebx
19203        rorxl	$6, %r9d, %edx
19204        addl	%ebx, %r13d
19205        vpsrlq	$19, %ymm6, %ymm7
19206        # rnd_1: 0 - 0
19207        movl	%r10d, %ebx
19208        rorxl	$11, %r9d, %ecx
19209        addl	76(%rsp), %r12d
19210        vpsrld	$10, %ymm6, %ymm9
19211        # rnd_1: 1 - 1
19212        xorl	%edx, %ecx
19213        xorl	%r11d, %ebx
19214        rorxl	$25, %r9d, %edx
19215        vpxor	%ymm7, %ymm8, %ymm8
19216        # rnd_1: 2 - 2
19217        andl	%r9d, %ebx
19218        xorl	%ecx, %edx
19219        rorxl	$13, %r13d, %ecx
19220        vpxor	%ymm8, %ymm9, %ymm9
19221        # rnd_1: 3 - 3
19222        addl	%edx, %r12d
19223        rorxl	$2, %r13d, %edx
19224        xorl	%r11d, %ebx
19225        vpshufb	%ymm12, %ymm9, %ymm9
19226        # rnd_1: 4 - 4
19227        xorl	%edx, %ecx
19228        rorxl	$22, %r13d, %edx
19229        addl	%ebx, %r12d
19230        vpaddd	%ymm4, %ymm9, %ymm2
19231        # rnd_1: 5 - 5
19232        xorl	%ecx, %edx
19233        addl	%r12d, %r8d
19234        movl	%r14d, %ebx
19235        vpaddd	192+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
19236        # rnd_1: 6 - 6
19237        xorl	%r13d, %ebx
19238        addl	%edx, %r12d
19239        andl	%ebx, %eax
19240        # rnd_1: 7 - 7
19241        xorl	%r14d, %eax
19242        rorxl	$6, %r8d, %edx
19243        addl	%eax, %r12d
19244        vmovdqu	%ymm4, 192(%rsp)
19245        # rnd_0: 0 - 0
19246        movl	%r9d, %eax
19247        rorxl	$11, %r8d, %ecx
19248        addl	96(%rsp), %r11d
19249        vpalignr	$4, %ymm3, %ymm0, %ymm5
19250        # rnd_0: 1 - 1
19251        xorl	%edx, %ecx
19252        xorl	%r10d, %eax
19253        rorxl	$25, %r8d, %edx
19254        vpalignr	$4, %ymm1, %ymm2, %ymm4
19255        # rnd_0: 2 - 2
19256        andl	%r8d, %eax
19257        xorl	%ecx, %edx
19258        rorxl	$13, %r12d, %ecx
19259        vpsrld	$7, %ymm5, %ymm6
19260        # rnd_0: 3 - 3
19261        addl	%edx, %r11d
19262        rorxl	$2, %r12d, %edx
19263        xorl	%r10d, %eax
19264        vpslld	$25, %ymm5, %ymm7
19265        # rnd_0: 4 - 4
19266        xorl	%edx, %ecx
19267        rorxl	$22, %r12d, %edx
19268        addl	%eax, %r11d
19269        vpsrld	$18, %ymm5, %ymm8
19270        # rnd_0: 5 - 5
19271        xorl	%ecx, %edx
19272        movl	%r13d, %eax
19273        addl	%r11d, %r15d
19274        vpslld	$14, %ymm5, %ymm9
19275        # rnd_0: 6 - 6
19276        xorl	%r12d, %eax
19277        addl	%edx, %r11d
19278        andl	%eax, %ebx
19279        vpor	%ymm7, %ymm6, %ymm6
19280        # rnd_0: 7 - 7
19281        xorl	%r13d, %ebx
19282        rorxl	$6, %r15d, %edx
19283        addl	%ebx, %r11d
19284        vpor	%ymm9, %ymm8, %ymm8
19285        # rnd_1: 0 - 0
19286        movl	%r8d, %ebx
19287        rorxl	$11, %r15d, %ecx
19288        addl	100(%rsp), %r10d
19289        vpsrld	$3, %ymm5, %ymm9
19290        # rnd_1: 1 - 1
19291        xorl	%edx, %ecx
19292        xorl	%r9d, %ebx
19293        rorxl	$25, %r15d, %edx
19294        vpxor	%ymm8, %ymm6, %ymm6
19295        # rnd_1: 2 - 2
19296        andl	%r15d, %ebx
19297        xorl	%ecx, %edx
19298        rorxl	$13, %r11d, %ecx
19299        vpshufd	$0xfa, %ymm2, %ymm7
19300        # rnd_1: 3 - 3
19301        addl	%edx, %r10d
19302        rorxl	$2, %r11d, %edx
19303        xorl	%r9d, %ebx
19304        vpxor	%ymm6, %ymm9, %ymm5
19305        # rnd_1: 4 - 4
19306        xorl	%edx, %ecx
19307        rorxl	$22, %r11d, %edx
19308        addl	%ebx, %r10d
19309        vpsrld	$10, %ymm7, %ymm8
19310        # rnd_1: 5 - 5
19311        xorl	%ecx, %edx
19312        addl	%r10d, %r14d
19313        movl	%r12d, %ebx
19314        vpsrlq	$19, %ymm7, %ymm6
19315        # rnd_1: 6 - 6
19316        xorl	%r11d, %ebx
19317        addl	%edx, %r10d
19318        andl	%ebx, %eax
19319        vpsrlq	$0x11, %ymm7, %ymm7
19320        # rnd_1: 7 - 7
19321        xorl	%r12d, %eax
19322        rorxl	$6, %r14d, %edx
19323        addl	%eax, %r10d
19324        vpaddd	%ymm3, %ymm4, %ymm4
19325        # rnd_0: 0 - 0
19326        movl	%r15d, %eax
19327        rorxl	$11, %r14d, %ecx
19328        addl	104(%rsp), %r9d
19329        vpxor	%ymm7, %ymm6, %ymm6
19330        # rnd_0: 1 - 1
19331        xorl	%edx, %ecx
19332        xorl	%r8d, %eax
19333        rorxl	$25, %r14d, %edx
19334        vpxor	%ymm6, %ymm8, %ymm8
19335        # rnd_0: 2 - 2
19336        andl	%r14d, %eax
19337        xorl	%ecx, %edx
19338        rorxl	$13, %r10d, %ecx
19339        vpaddd	%ymm5, %ymm4, %ymm4
19340        # rnd_0: 3 - 3
19341        addl	%edx, %r9d
19342        rorxl	$2, %r10d, %edx
19343        xorl	%r8d, %eax
19344        vpshufb	%ymm11, %ymm8, %ymm8
19345        # rnd_0: 4 - 4
19346        xorl	%edx, %ecx
19347        rorxl	$22, %r10d, %edx
19348        addl	%eax, %r9d
19349        vpaddd	%ymm8, %ymm4, %ymm4
19350        # rnd_0: 5 - 5
19351        xorl	%ecx, %edx
19352        movl	%r11d, %eax
19353        addl	%r9d, %r13d
19354        vpshufd	$0x50, %ymm4, %ymm6
19355        # rnd_0: 6 - 6
19356        xorl	%r10d, %eax
19357        addl	%edx, %r9d
19358        andl	%eax, %ebx
19359        vpsrlq	$0x11, %ymm6, %ymm8
19360        # rnd_0: 7 - 7
19361        xorl	%r11d, %ebx
19362        rorxl	$6, %r13d, %edx
19363        addl	%ebx, %r9d
19364        vpsrlq	$19, %ymm6, %ymm7
19365        # rnd_1: 0 - 0
19366        movl	%r14d, %ebx
19367        rorxl	$11, %r13d, %ecx
19368        addl	108(%rsp), %r8d
19369        vpsrld	$10, %ymm6, %ymm9
19370        # rnd_1: 1 - 1
19371        xorl	%edx, %ecx
19372        xorl	%r15d, %ebx
19373        rorxl	$25, %r13d, %edx
19374        vpxor	%ymm7, %ymm8, %ymm8
19375        # rnd_1: 2 - 2
19376        andl	%r13d, %ebx
19377        xorl	%ecx, %edx
19378        rorxl	$13, %r9d, %ecx
19379        vpxor	%ymm8, %ymm9, %ymm9
19380        # rnd_1: 3 - 3
19381        addl	%edx, %r8d
19382        rorxl	$2, %r9d, %edx
19383        xorl	%r15d, %ebx
19384        vpshufb	%ymm12, %ymm9, %ymm9
19385        # rnd_1: 4 - 4
19386        xorl	%edx, %ecx
19387        rorxl	$22, %r9d, %edx
19388        addl	%ebx, %r8d
19389        vpaddd	%ymm4, %ymm9, %ymm3
19390        # rnd_1: 5 - 5
19391        xorl	%ecx, %edx
19392        addl	%r8d, %r12d
19393        movl	%r10d, %ebx
19394        vpaddd	224+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
19395        # rnd_1: 6 - 6
19396        xorl	%r9d, %ebx
19397        addl	%edx, %r8d
19398        andl	%ebx, %eax
19399        # rnd_1: 7 - 7
19400        xorl	%r10d, %eax
19401        rorxl	$6, %r12d, %edx
19402        addl	%eax, %r8d
19403        vmovdqu	%ymm4, 224(%rsp)
19404        # rnd_0: 0 - 0
19405        movl	%r13d, %eax
19406        rorxl	$11, %r12d, %ecx
19407        addl	128(%rsp), %r15d
19408        vpalignr	$4, %ymm0, %ymm1, %ymm5
19409        # rnd_0: 1 - 1
19410        xorl	%edx, %ecx
19411        xorl	%r14d, %eax
19412        rorxl	$25, %r12d, %edx
19413        vpalignr	$4, %ymm2, %ymm3, %ymm4
19414        # rnd_0: 2 - 2
19415        andl	%r12d, %eax
19416        xorl	%ecx, %edx
19417        rorxl	$13, %r8d, %ecx
19418        vpsrld	$7, %ymm5, %ymm6
19419        # rnd_0: 3 - 3
19420        addl	%edx, %r15d
19421        rorxl	$2, %r8d, %edx
19422        xorl	%r14d, %eax
19423        vpslld	$25, %ymm5, %ymm7
19424        # rnd_0: 4 - 4
19425        xorl	%edx, %ecx
19426        rorxl	$22, %r8d, %edx
19427        addl	%eax, %r15d
19428        vpsrld	$18, %ymm5, %ymm8
19429        # rnd_0: 5 - 5
19430        xorl	%ecx, %edx
19431        movl	%r9d, %eax
19432        addl	%r15d, %r11d
19433        vpslld	$14, %ymm5, %ymm9
19434        # rnd_0: 6 - 6
19435        xorl	%r8d, %eax
19436        addl	%edx, %r15d
19437        andl	%eax, %ebx
19438        vpor	%ymm7, %ymm6, %ymm6
19439        # rnd_0: 7 - 7
19440        xorl	%r9d, %ebx
19441        rorxl	$6, %r11d, %edx
19442        addl	%ebx, %r15d
19443        vpor	%ymm9, %ymm8, %ymm8
19444        # rnd_1: 0 - 0
19445        movl	%r12d, %ebx
19446        rorxl	$11, %r11d, %ecx
19447        addl	132(%rsp), %r14d
19448        vpsrld	$3, %ymm5, %ymm9
19449        # rnd_1: 1 - 1
19450        xorl	%edx, %ecx
19451        xorl	%r13d, %ebx
19452        rorxl	$25, %r11d, %edx
19453        vpxor	%ymm8, %ymm6, %ymm6
19454        # rnd_1: 2 - 2
19455        andl	%r11d, %ebx
19456        xorl	%ecx, %edx
19457        rorxl	$13, %r15d, %ecx
19458        vpshufd	$0xfa, %ymm3, %ymm7
19459        # rnd_1: 3 - 3
19460        addl	%edx, %r14d
19461        rorxl	$2, %r15d, %edx
19462        xorl	%r13d, %ebx
19463        vpxor	%ymm6, %ymm9, %ymm5
19464        # rnd_1: 4 - 4
19465        xorl	%edx, %ecx
19466        rorxl	$22, %r15d, %edx
19467        addl	%ebx, %r14d
19468        vpsrld	$10, %ymm7, %ymm8
19469        # rnd_1: 5 - 5
19470        xorl	%ecx, %edx
19471        addl	%r14d, %r10d
19472        movl	%r8d, %ebx
19473        vpsrlq	$19, %ymm7, %ymm6
19474        # rnd_1: 6 - 6
19475        xorl	%r15d, %ebx
19476        addl	%edx, %r14d
19477        andl	%ebx, %eax
19478        vpsrlq	$0x11, %ymm7, %ymm7
19479        # rnd_1: 7 - 7
19480        xorl	%r8d, %eax
19481        rorxl	$6, %r10d, %edx
19482        addl	%eax, %r14d
19483        vpaddd	%ymm0, %ymm4, %ymm4
19484        # rnd_0: 0 - 0
19485        movl	%r11d, %eax
19486        rorxl	$11, %r10d, %ecx
19487        addl	136(%rsp), %r13d
19488        vpxor	%ymm7, %ymm6, %ymm6
19489        # rnd_0: 1 - 1
19490        xorl	%edx, %ecx
19491        xorl	%r12d, %eax
19492        rorxl	$25, %r10d, %edx
19493        vpxor	%ymm6, %ymm8, %ymm8
19494        # rnd_0: 2 - 2
19495        andl	%r10d, %eax
19496        xorl	%ecx, %edx
19497        rorxl	$13, %r14d, %ecx
19498        vpaddd	%ymm5, %ymm4, %ymm4
19499        # rnd_0: 3 - 3
19500        addl	%edx, %r13d
19501        rorxl	$2, %r14d, %edx
19502        xorl	%r12d, %eax
19503        vpshufb	%ymm11, %ymm8, %ymm8
19504        # rnd_0: 4 - 4
19505        xorl	%edx, %ecx
19506        rorxl	$22, %r14d, %edx
19507        addl	%eax, %r13d
19508        vpaddd	%ymm8, %ymm4, %ymm4
19509        # rnd_0: 5 - 5
19510        xorl	%ecx, %edx
19511        movl	%r15d, %eax
19512        addl	%r13d, %r9d
19513        vpshufd	$0x50, %ymm4, %ymm6
19514        # rnd_0: 6 - 6
19515        xorl	%r14d, %eax
19516        addl	%edx, %r13d
19517        andl	%eax, %ebx
19518        vpsrlq	$0x11, %ymm6, %ymm8
19519        # rnd_0: 7 - 7
19520        xorl	%r15d, %ebx
19521        rorxl	$6, %r9d, %edx
19522        addl	%ebx, %r13d
19523        vpsrlq	$19, %ymm6, %ymm7
19524        # rnd_1: 0 - 0
19525        movl	%r10d, %ebx
19526        rorxl	$11, %r9d, %ecx
19527        addl	140(%rsp), %r12d
19528        vpsrld	$10, %ymm6, %ymm9
19529        # rnd_1: 1 - 1
19530        xorl	%edx, %ecx
19531        xorl	%r11d, %ebx
19532        rorxl	$25, %r9d, %edx
19533        vpxor	%ymm7, %ymm8, %ymm8
19534        # rnd_1: 2 - 2
19535        andl	%r9d, %ebx
19536        xorl	%ecx, %edx
19537        rorxl	$13, %r13d, %ecx
19538        vpxor	%ymm8, %ymm9, %ymm9
19539        # rnd_1: 3 - 3
19540        addl	%edx, %r12d
19541        rorxl	$2, %r13d, %edx
19542        xorl	%r11d, %ebx
19543        vpshufb	%ymm12, %ymm9, %ymm9
19544        # rnd_1: 4 - 4
19545        xorl	%edx, %ecx
19546        rorxl	$22, %r13d, %edx
19547        addl	%ebx, %r12d
19548        vpaddd	%ymm4, %ymm9, %ymm0
19549        # rnd_1: 5 - 5
19550        xorl	%ecx, %edx
19551        addl	%r12d, %r8d
19552        movl	%r14d, %ebx
19553        vpaddd	256+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
19554        # rnd_1: 6 - 6
19555        xorl	%r13d, %ebx
19556        addl	%edx, %r12d
19557        andl	%ebx, %eax
19558        # rnd_1: 7 - 7
19559        xorl	%r14d, %eax
19560        rorxl	$6, %r8d, %edx
19561        addl	%eax, %r12d
19562        vmovdqu	%ymm4, 256(%rsp)
19563        # rnd_0: 0 - 0
19564        movl	%r9d, %eax
19565        rorxl	$11, %r8d, %ecx
19566        addl	160(%rsp), %r11d
19567        vpalignr	$4, %ymm1, %ymm2, %ymm5
19568        # rnd_0: 1 - 1
19569        xorl	%edx, %ecx
19570        xorl	%r10d, %eax
19571        rorxl	$25, %r8d, %edx
19572        vpalignr	$4, %ymm3, %ymm0, %ymm4
19573        # rnd_0: 2 - 2
19574        andl	%r8d, %eax
19575        xorl	%ecx, %edx
19576        rorxl	$13, %r12d, %ecx
19577        vpsrld	$7, %ymm5, %ymm6
19578        # rnd_0: 3 - 3
19579        addl	%edx, %r11d
19580        rorxl	$2, %r12d, %edx
19581        xorl	%r10d, %eax
19582        vpslld	$25, %ymm5, %ymm7
19583        # rnd_0: 4 - 4
19584        xorl	%edx, %ecx
19585        rorxl	$22, %r12d, %edx
19586        addl	%eax, %r11d
19587        vpsrld	$18, %ymm5, %ymm8
19588        # rnd_0: 5 - 5
19589        xorl	%ecx, %edx
19590        movl	%r13d, %eax
19591        addl	%r11d, %r15d
19592        vpslld	$14, %ymm5, %ymm9
19593        # rnd_0: 6 - 6
19594        xorl	%r12d, %eax
19595        addl	%edx, %r11d
19596        andl	%eax, %ebx
19597        vpor	%ymm7, %ymm6, %ymm6
19598        # rnd_0: 7 - 7
19599        xorl	%r13d, %ebx
19600        rorxl	$6, %r15d, %edx
19601        addl	%ebx, %r11d
19602        vpor	%ymm9, %ymm8, %ymm8
19603        # rnd_1: 0 - 0
19604        movl	%r8d, %ebx
19605        rorxl	$11, %r15d, %ecx
19606        addl	164(%rsp), %r10d
19607        vpsrld	$3, %ymm5, %ymm9
19608        # rnd_1: 1 - 1
19609        xorl	%edx, %ecx
19610        xorl	%r9d, %ebx
19611        rorxl	$25, %r15d, %edx
19612        vpxor	%ymm8, %ymm6, %ymm6
19613        # rnd_1: 2 - 2
19614        andl	%r15d, %ebx
19615        xorl	%ecx, %edx
19616        rorxl	$13, %r11d, %ecx
19617        vpshufd	$0xfa, %ymm0, %ymm7
19618        # rnd_1: 3 - 3
19619        addl	%edx, %r10d
19620        rorxl	$2, %r11d, %edx
19621        xorl	%r9d, %ebx
19622        vpxor	%ymm6, %ymm9, %ymm5
19623        # rnd_1: 4 - 4
19624        xorl	%edx, %ecx
19625        rorxl	$22, %r11d, %edx
19626        addl	%ebx, %r10d
19627        vpsrld	$10, %ymm7, %ymm8
19628        # rnd_1: 5 - 5
19629        xorl	%ecx, %edx
19630        addl	%r10d, %r14d
19631        movl	%r12d, %ebx
19632        vpsrlq	$19, %ymm7, %ymm6
19633        # rnd_1: 6 - 6
19634        xorl	%r11d, %ebx
19635        addl	%edx, %r10d
19636        andl	%ebx, %eax
19637        vpsrlq	$0x11, %ymm7, %ymm7
19638        # rnd_1: 7 - 7
19639        xorl	%r12d, %eax
19640        rorxl	$6, %r14d, %edx
19641        addl	%eax, %r10d
19642        vpaddd	%ymm1, %ymm4, %ymm4
19643        # rnd_0: 0 - 0
19644        movl	%r15d, %eax
19645        rorxl	$11, %r14d, %ecx
19646        addl	168(%rsp), %r9d
19647        vpxor	%ymm7, %ymm6, %ymm6
19648        # rnd_0: 1 - 1
19649        xorl	%edx, %ecx
19650        xorl	%r8d, %eax
19651        rorxl	$25, %r14d, %edx
19652        vpxor	%ymm6, %ymm8, %ymm8
19653        # rnd_0: 2 - 2
19654        andl	%r14d, %eax
19655        xorl	%ecx, %edx
19656        rorxl	$13, %r10d, %ecx
19657        vpaddd	%ymm5, %ymm4, %ymm4
19658        # rnd_0: 3 - 3
19659        addl	%edx, %r9d
19660        rorxl	$2, %r10d, %edx
19661        xorl	%r8d, %eax
19662        vpshufb	%ymm11, %ymm8, %ymm8
19663        # rnd_0: 4 - 4
19664        xorl	%edx, %ecx
19665        rorxl	$22, %r10d, %edx
19666        addl	%eax, %r9d
19667        vpaddd	%ymm8, %ymm4, %ymm4
19668        # rnd_0: 5 - 5
19669        xorl	%ecx, %edx
19670        movl	%r11d, %eax
19671        addl	%r9d, %r13d
19672        vpshufd	$0x50, %ymm4, %ymm6
19673        # rnd_0: 6 - 6
19674        xorl	%r10d, %eax
19675        addl	%edx, %r9d
19676        andl	%eax, %ebx
19677        vpsrlq	$0x11, %ymm6, %ymm8
19678        # rnd_0: 7 - 7
19679        xorl	%r11d, %ebx
19680        rorxl	$6, %r13d, %edx
19681        addl	%ebx, %r9d
19682        vpsrlq	$19, %ymm6, %ymm7
19683        # rnd_1: 0 - 0
19684        movl	%r14d, %ebx
19685        rorxl	$11, %r13d, %ecx
19686        addl	172(%rsp), %r8d
19687        vpsrld	$10, %ymm6, %ymm9
19688        # rnd_1: 1 - 1
19689        xorl	%edx, %ecx
19690        xorl	%r15d, %ebx
19691        rorxl	$25, %r13d, %edx
19692        vpxor	%ymm7, %ymm8, %ymm8
19693        # rnd_1: 2 - 2
19694        andl	%r13d, %ebx
19695        xorl	%ecx, %edx
19696        rorxl	$13, %r9d, %ecx
19697        vpxor	%ymm8, %ymm9, %ymm9
19698        # rnd_1: 3 - 3
19699        addl	%edx, %r8d
19700        rorxl	$2, %r9d, %edx
19701        xorl	%r15d, %ebx
19702        vpshufb	%ymm12, %ymm9, %ymm9
19703        # rnd_1: 4 - 4
19704        xorl	%edx, %ecx
19705        rorxl	$22, %r9d, %edx
19706        addl	%ebx, %r8d
19707        vpaddd	%ymm4, %ymm9, %ymm1
19708        # rnd_1: 5 - 5
19709        xorl	%ecx, %edx
19710        addl	%r8d, %r12d
19711        movl	%r10d, %ebx
19712        vpaddd	288+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
19713        # rnd_1: 6 - 6
19714        xorl	%r9d, %ebx
19715        addl	%edx, %r8d
19716        andl	%ebx, %eax
19717        # rnd_1: 7 - 7
19718        xorl	%r10d, %eax
19719        rorxl	$6, %r12d, %edx
19720        addl	%eax, %r8d
19721        vmovdqu	%ymm4, 288(%rsp)
19722        # rnd_0: 0 - 0
19723        movl	%r13d, %eax
19724        rorxl	$11, %r12d, %ecx
19725        addl	192(%rsp), %r15d
19726        vpalignr	$4, %ymm2, %ymm3, %ymm5
19727        # rnd_0: 1 - 1
19728        xorl	%edx, %ecx
19729        xorl	%r14d, %eax
19730        rorxl	$25, %r12d, %edx
19731        vpalignr	$4, %ymm0, %ymm1, %ymm4
19732        # rnd_0: 2 - 2
19733        andl	%r12d, %eax
19734        xorl	%ecx, %edx
19735        rorxl	$13, %r8d, %ecx
19736        vpsrld	$7, %ymm5, %ymm6
19737        # rnd_0: 3 - 3
19738        addl	%edx, %r15d
19739        rorxl	$2, %r8d, %edx
19740        xorl	%r14d, %eax
19741        vpslld	$25, %ymm5, %ymm7
19742        # rnd_0: 4 - 4
19743        xorl	%edx, %ecx
19744        rorxl	$22, %r8d, %edx
19745        addl	%eax, %r15d
19746        vpsrld	$18, %ymm5, %ymm8
19747        # rnd_0: 5 - 5
19748        xorl	%ecx, %edx
19749        movl	%r9d, %eax
19750        addl	%r15d, %r11d
19751        vpslld	$14, %ymm5, %ymm9
19752        # rnd_0: 6 - 6
19753        xorl	%r8d, %eax
19754        addl	%edx, %r15d
19755        andl	%eax, %ebx
19756        vpor	%ymm7, %ymm6, %ymm6
19757        # rnd_0: 7 - 7
19758        xorl	%r9d, %ebx
19759        rorxl	$6, %r11d, %edx
19760        addl	%ebx, %r15d
19761        vpor	%ymm9, %ymm8, %ymm8
19762        # rnd_1: 0 - 0
19763        movl	%r12d, %ebx
19764        rorxl	$11, %r11d, %ecx
19765        addl	196(%rsp), %r14d
19766        vpsrld	$3, %ymm5, %ymm9
19767        # rnd_1: 1 - 1
19768        xorl	%edx, %ecx
19769        xorl	%r13d, %ebx
19770        rorxl	$25, %r11d, %edx
19771        vpxor	%ymm8, %ymm6, %ymm6
19772        # rnd_1: 2 - 2
19773        andl	%r11d, %ebx
19774        xorl	%ecx, %edx
19775        rorxl	$13, %r15d, %ecx
19776        vpshufd	$0xfa, %ymm1, %ymm7
19777        # rnd_1: 3 - 3
19778        addl	%edx, %r14d
19779        rorxl	$2, %r15d, %edx
19780        xorl	%r13d, %ebx
19781        vpxor	%ymm6, %ymm9, %ymm5
19782        # rnd_1: 4 - 4
19783        xorl	%edx, %ecx
19784        rorxl	$22, %r15d, %edx
19785        addl	%ebx, %r14d
19786        vpsrld	$10, %ymm7, %ymm8
19787        # rnd_1: 5 - 5
19788        xorl	%ecx, %edx
19789        addl	%r14d, %r10d
19790        movl	%r8d, %ebx
19791        vpsrlq	$19, %ymm7, %ymm6
19792        # rnd_1: 6 - 6
19793        xorl	%r15d, %ebx
19794        addl	%edx, %r14d
19795        andl	%ebx, %eax
19796        vpsrlq	$0x11, %ymm7, %ymm7
19797        # rnd_1: 7 - 7
19798        xorl	%r8d, %eax
19799        rorxl	$6, %r10d, %edx
19800        addl	%eax, %r14d
19801        vpaddd	%ymm2, %ymm4, %ymm4
19802        # rnd_0: 0 - 0
19803        movl	%r11d, %eax
19804        rorxl	$11, %r10d, %ecx
19805        addl	200(%rsp), %r13d
19806        vpxor	%ymm7, %ymm6, %ymm6
19807        # rnd_0: 1 - 1
19808        xorl	%edx, %ecx
19809        xorl	%r12d, %eax
19810        rorxl	$25, %r10d, %edx
19811        vpxor	%ymm6, %ymm8, %ymm8
19812        # rnd_0: 2 - 2
19813        andl	%r10d, %eax
19814        xorl	%ecx, %edx
19815        rorxl	$13, %r14d, %ecx
19816        vpaddd	%ymm5, %ymm4, %ymm4
19817        # rnd_0: 3 - 3
19818        addl	%edx, %r13d
19819        rorxl	$2, %r14d, %edx
19820        xorl	%r12d, %eax
19821        vpshufb	%ymm11, %ymm8, %ymm8
19822        # rnd_0: 4 - 4
19823        xorl	%edx, %ecx
19824        rorxl	$22, %r14d, %edx
19825        addl	%eax, %r13d
19826        vpaddd	%ymm8, %ymm4, %ymm4
19827        # rnd_0: 5 - 5
19828        xorl	%ecx, %edx
19829        movl	%r15d, %eax
19830        addl	%r13d, %r9d
19831        vpshufd	$0x50, %ymm4, %ymm6
19832        # rnd_0: 6 - 6
19833        xorl	%r14d, %eax
19834        addl	%edx, %r13d
19835        andl	%eax, %ebx
19836        vpsrlq	$0x11, %ymm6, %ymm8
19837        # rnd_0: 7 - 7
19838        xorl	%r15d, %ebx
19839        rorxl	$6, %r9d, %edx
19840        addl	%ebx, %r13d
19841        vpsrlq	$19, %ymm6, %ymm7
19842        # rnd_1: 0 - 0
19843        movl	%r10d, %ebx
19844        rorxl	$11, %r9d, %ecx
19845        addl	204(%rsp), %r12d
19846        vpsrld	$10, %ymm6, %ymm9
19847        # rnd_1: 1 - 1
19848        xorl	%edx, %ecx
19849        xorl	%r11d, %ebx
19850        rorxl	$25, %r9d, %edx
19851        vpxor	%ymm7, %ymm8, %ymm8
19852        # rnd_1: 2 - 2
19853        andl	%r9d, %ebx
19854        xorl	%ecx, %edx
19855        rorxl	$13, %r13d, %ecx
19856        vpxor	%ymm8, %ymm9, %ymm9
19857        # rnd_1: 3 - 3
19858        addl	%edx, %r12d
19859        rorxl	$2, %r13d, %edx
19860        xorl	%r11d, %ebx
19861        vpshufb	%ymm12, %ymm9, %ymm9
19862        # rnd_1: 4 - 4
19863        xorl	%edx, %ecx
19864        rorxl	$22, %r13d, %edx
19865        addl	%ebx, %r12d
19866        vpaddd	%ymm4, %ymm9, %ymm2
19867        # rnd_1: 5 - 5
19868        xorl	%ecx, %edx
19869        addl	%r12d, %r8d
19870        movl	%r14d, %ebx
19871        vpaddd	320+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
19872        # rnd_1: 6 - 6
19873        xorl	%r13d, %ebx
19874        addl	%edx, %r12d
19875        andl	%ebx, %eax
19876        # rnd_1: 7 - 7
19877        xorl	%r14d, %eax
19878        rorxl	$6, %r8d, %edx
19879        addl	%eax, %r12d
19880        vmovdqu	%ymm4, 320(%rsp)
19881        # rnd_0: 0 - 0
19882        movl	%r9d, %eax
19883        rorxl	$11, %r8d, %ecx
19884        addl	224(%rsp), %r11d
19885        vpalignr	$4, %ymm3, %ymm0, %ymm5
19886        # rnd_0: 1 - 1
19887        xorl	%edx, %ecx
19888        xorl	%r10d, %eax
19889        rorxl	$25, %r8d, %edx
19890        vpalignr	$4, %ymm1, %ymm2, %ymm4
19891        # rnd_0: 2 - 2
19892        andl	%r8d, %eax
19893        xorl	%ecx, %edx
19894        rorxl	$13, %r12d, %ecx
19895        vpsrld	$7, %ymm5, %ymm6
19896        # rnd_0: 3 - 3
19897        addl	%edx, %r11d
19898        rorxl	$2, %r12d, %edx
19899        xorl	%r10d, %eax
19900        vpslld	$25, %ymm5, %ymm7
19901        # rnd_0: 4 - 4
19902        xorl	%edx, %ecx
19903        rorxl	$22, %r12d, %edx
19904        addl	%eax, %r11d
19905        vpsrld	$18, %ymm5, %ymm8
19906        # rnd_0: 5 - 5
19907        xorl	%ecx, %edx
19908        movl	%r13d, %eax
19909        addl	%r11d, %r15d
19910        vpslld	$14, %ymm5, %ymm9
19911        # rnd_0: 6 - 6
19912        xorl	%r12d, %eax
19913        addl	%edx, %r11d
19914        andl	%eax, %ebx
19915        vpor	%ymm7, %ymm6, %ymm6
19916        # rnd_0: 7 - 7
19917        xorl	%r13d, %ebx
19918        rorxl	$6, %r15d, %edx
19919        addl	%ebx, %r11d
19920        vpor	%ymm9, %ymm8, %ymm8
19921        # rnd_1: 0 - 0
19922        movl	%r8d, %ebx
19923        rorxl	$11, %r15d, %ecx
19924        addl	228(%rsp), %r10d
19925        vpsrld	$3, %ymm5, %ymm9
19926        # rnd_1: 1 - 1
19927        xorl	%edx, %ecx
19928        xorl	%r9d, %ebx
19929        rorxl	$25, %r15d, %edx
19930        vpxor	%ymm8, %ymm6, %ymm6
19931        # rnd_1: 2 - 2
19932        andl	%r15d, %ebx
19933        xorl	%ecx, %edx
19934        rorxl	$13, %r11d, %ecx
19935        vpshufd	$0xfa, %ymm2, %ymm7
19936        # rnd_1: 3 - 3
19937        addl	%edx, %r10d
19938        rorxl	$2, %r11d, %edx
19939        xorl	%r9d, %ebx
19940        vpxor	%ymm6, %ymm9, %ymm5
19941        # rnd_1: 4 - 4
19942        xorl	%edx, %ecx
19943        rorxl	$22, %r11d, %edx
19944        addl	%ebx, %r10d
19945        vpsrld	$10, %ymm7, %ymm8
19946        # rnd_1: 5 - 5
19947        xorl	%ecx, %edx
19948        addl	%r10d, %r14d
19949        movl	%r12d, %ebx
19950        vpsrlq	$19, %ymm7, %ymm6
19951        # rnd_1: 6 - 6
19952        xorl	%r11d, %ebx
19953        addl	%edx, %r10d
19954        andl	%ebx, %eax
19955        vpsrlq	$0x11, %ymm7, %ymm7
19956        # rnd_1: 7 - 7
19957        xorl	%r12d, %eax
19958        rorxl	$6, %r14d, %edx
19959        addl	%eax, %r10d
19960        vpaddd	%ymm3, %ymm4, %ymm4
19961        # rnd_0: 0 - 0
19962        movl	%r15d, %eax
19963        rorxl	$11, %r14d, %ecx
19964        addl	232(%rsp), %r9d
19965        vpxor	%ymm7, %ymm6, %ymm6
19966        # rnd_0: 1 - 1
19967        xorl	%edx, %ecx
19968        xorl	%r8d, %eax
19969        rorxl	$25, %r14d, %edx
19970        vpxor	%ymm6, %ymm8, %ymm8
19971        # rnd_0: 2 - 2
19972        andl	%r14d, %eax
19973        xorl	%ecx, %edx
19974        rorxl	$13, %r10d, %ecx
19975        vpaddd	%ymm5, %ymm4, %ymm4
19976        # rnd_0: 3 - 3
19977        addl	%edx, %r9d
19978        rorxl	$2, %r10d, %edx
19979        xorl	%r8d, %eax
19980        vpshufb	%ymm11, %ymm8, %ymm8
19981        # rnd_0: 4 - 4
19982        xorl	%edx, %ecx
19983        rorxl	$22, %r10d, %edx
19984        addl	%eax, %r9d
19985        vpaddd	%ymm8, %ymm4, %ymm4
19986        # rnd_0: 5 - 5
19987        xorl	%ecx, %edx
19988        movl	%r11d, %eax
19989        addl	%r9d, %r13d
19990        vpshufd	$0x50, %ymm4, %ymm6
19991        # rnd_0: 6 - 6
19992        xorl	%r10d, %eax
19993        addl	%edx, %r9d
19994        andl	%eax, %ebx
19995        vpsrlq	$0x11, %ymm6, %ymm8
19996        # rnd_0: 7 - 7
19997        xorl	%r11d, %ebx
19998        rorxl	$6, %r13d, %edx
19999        addl	%ebx, %r9d
20000        vpsrlq	$19, %ymm6, %ymm7
20001        # rnd_1: 0 - 0
20002        movl	%r14d, %ebx
20003        rorxl	$11, %r13d, %ecx
20004        addl	236(%rsp), %r8d
20005        vpsrld	$10, %ymm6, %ymm9
20006        # rnd_1: 1 - 1
20007        xorl	%edx, %ecx
20008        xorl	%r15d, %ebx
20009        rorxl	$25, %r13d, %edx
20010        vpxor	%ymm7, %ymm8, %ymm8
20011        # rnd_1: 2 - 2
20012        andl	%r13d, %ebx
20013        xorl	%ecx, %edx
20014        rorxl	$13, %r9d, %ecx
20015        vpxor	%ymm8, %ymm9, %ymm9
20016        # rnd_1: 3 - 3
20017        addl	%edx, %r8d
20018        rorxl	$2, %r9d, %edx
20019        xorl	%r15d, %ebx
20020        vpshufb	%ymm12, %ymm9, %ymm9
20021        # rnd_1: 4 - 4
20022        xorl	%edx, %ecx
20023        rorxl	$22, %r9d, %edx
20024        addl	%ebx, %r8d
20025        vpaddd	%ymm4, %ymm9, %ymm3
20026        # rnd_1: 5 - 5
20027        xorl	%ecx, %edx
20028        addl	%r8d, %r12d
20029        movl	%r10d, %ebx
20030        vpaddd	352+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
20031        # rnd_1: 6 - 6
20032        xorl	%r9d, %ebx
20033        addl	%edx, %r8d
20034        andl	%ebx, %eax
20035        # rnd_1: 7 - 7
20036        xorl	%r10d, %eax
20037        rorxl	$6, %r12d, %edx
20038        addl	%eax, %r8d
20039        vmovdqu	%ymm4, 352(%rsp)
20040        # rnd_0: 0 - 0
20041        movl	%r13d, %eax
20042        rorxl	$11, %r12d, %ecx
20043        addl	256(%rsp), %r15d
20044        vpalignr	$4, %ymm0, %ymm1, %ymm5
20045        # rnd_0: 1 - 1
20046        xorl	%edx, %ecx
20047        xorl	%r14d, %eax
20048        rorxl	$25, %r12d, %edx
20049        vpalignr	$4, %ymm2, %ymm3, %ymm4
20050        # rnd_0: 2 - 2
20051        andl	%r12d, %eax
20052        xorl	%ecx, %edx
20053        rorxl	$13, %r8d, %ecx
20054        vpsrld	$7, %ymm5, %ymm6
20055        # rnd_0: 3 - 3
20056        addl	%edx, %r15d
20057        rorxl	$2, %r8d, %edx
20058        xorl	%r14d, %eax
20059        vpslld	$25, %ymm5, %ymm7
20060        # rnd_0: 4 - 4
20061        xorl	%edx, %ecx
20062        rorxl	$22, %r8d, %edx
20063        addl	%eax, %r15d
20064        vpsrld	$18, %ymm5, %ymm8
20065        # rnd_0: 5 - 5
20066        xorl	%ecx, %edx
20067        movl	%r9d, %eax
20068        addl	%r15d, %r11d
20069        vpslld	$14, %ymm5, %ymm9
20070        # rnd_0: 6 - 6
20071        xorl	%r8d, %eax
20072        addl	%edx, %r15d
20073        andl	%eax, %ebx
20074        vpor	%ymm7, %ymm6, %ymm6
20075        # rnd_0: 7 - 7
20076        xorl	%r9d, %ebx
20077        rorxl	$6, %r11d, %edx
20078        addl	%ebx, %r15d
20079        vpor	%ymm9, %ymm8, %ymm8
20080        # rnd_1: 0 - 0
20081        movl	%r12d, %ebx
20082        rorxl	$11, %r11d, %ecx
20083        addl	260(%rsp), %r14d
20084        vpsrld	$3, %ymm5, %ymm9
20085        # rnd_1: 1 - 1
20086        xorl	%edx, %ecx
20087        xorl	%r13d, %ebx
20088        rorxl	$25, %r11d, %edx
20089        vpxor	%ymm8, %ymm6, %ymm6
20090        # rnd_1: 2 - 2
20091        andl	%r11d, %ebx
20092        xorl	%ecx, %edx
20093        rorxl	$13, %r15d, %ecx
20094        vpshufd	$0xfa, %ymm3, %ymm7
20095        # rnd_1: 3 - 3
20096        addl	%edx, %r14d
20097        rorxl	$2, %r15d, %edx
20098        xorl	%r13d, %ebx
20099        vpxor	%ymm6, %ymm9, %ymm5
20100        # rnd_1: 4 - 4
20101        xorl	%edx, %ecx
20102        rorxl	$22, %r15d, %edx
20103        addl	%ebx, %r14d
20104        vpsrld	$10, %ymm7, %ymm8
20105        # rnd_1: 5 - 5
20106        xorl	%ecx, %edx
20107        addl	%r14d, %r10d
20108        movl	%r8d, %ebx
20109        vpsrlq	$19, %ymm7, %ymm6
20110        # rnd_1: 6 - 6
20111        xorl	%r15d, %ebx
20112        addl	%edx, %r14d
20113        andl	%ebx, %eax
20114        vpsrlq	$0x11, %ymm7, %ymm7
20115        # rnd_1: 7 - 7
20116        xorl	%r8d, %eax
20117        rorxl	$6, %r10d, %edx
20118        addl	%eax, %r14d
20119        vpaddd	%ymm0, %ymm4, %ymm4
20120        # rnd_0: 0 - 0
20121        movl	%r11d, %eax
20122        rorxl	$11, %r10d, %ecx
20123        addl	264(%rsp), %r13d
20124        vpxor	%ymm7, %ymm6, %ymm6
20125        # rnd_0: 1 - 1
20126        xorl	%edx, %ecx
20127        xorl	%r12d, %eax
20128        rorxl	$25, %r10d, %edx
20129        vpxor	%ymm6, %ymm8, %ymm8
20130        # rnd_0: 2 - 2
20131        andl	%r10d, %eax
20132        xorl	%ecx, %edx
20133        rorxl	$13, %r14d, %ecx
20134        vpaddd	%ymm5, %ymm4, %ymm4
20135        # rnd_0: 3 - 3
20136        addl	%edx, %r13d
20137        rorxl	$2, %r14d, %edx
20138        xorl	%r12d, %eax
20139        vpshufb	%ymm11, %ymm8, %ymm8
20140        # rnd_0: 4 - 4
20141        xorl	%edx, %ecx
20142        rorxl	$22, %r14d, %edx
20143        addl	%eax, %r13d
20144        vpaddd	%ymm8, %ymm4, %ymm4
20145        # rnd_0: 5 - 5
20146        xorl	%ecx, %edx
20147        movl	%r15d, %eax
20148        addl	%r13d, %r9d
20149        vpshufd	$0x50, %ymm4, %ymm6
20150        # rnd_0: 6 - 6
20151        xorl	%r14d, %eax
20152        addl	%edx, %r13d
20153        andl	%eax, %ebx
20154        vpsrlq	$0x11, %ymm6, %ymm8
20155        # rnd_0: 7 - 7
20156        xorl	%r15d, %ebx
20157        rorxl	$6, %r9d, %edx
20158        addl	%ebx, %r13d
20159        vpsrlq	$19, %ymm6, %ymm7
20160        # rnd_1: 0 - 0
20161        movl	%r10d, %ebx
20162        rorxl	$11, %r9d, %ecx
20163        addl	268(%rsp), %r12d
20164        vpsrld	$10, %ymm6, %ymm9
20165        # rnd_1: 1 - 1
20166        xorl	%edx, %ecx
20167        xorl	%r11d, %ebx
20168        rorxl	$25, %r9d, %edx
20169        vpxor	%ymm7, %ymm8, %ymm8
20170        # rnd_1: 2 - 2
20171        andl	%r9d, %ebx
20172        xorl	%ecx, %edx
20173        rorxl	$13, %r13d, %ecx
20174        vpxor	%ymm8, %ymm9, %ymm9
20175        # rnd_1: 3 - 3
20176        addl	%edx, %r12d
20177        rorxl	$2, %r13d, %edx
20178        xorl	%r11d, %ebx
20179        vpshufb	%ymm12, %ymm9, %ymm9
20180        # rnd_1: 4 - 4
20181        xorl	%edx, %ecx
20182        rorxl	$22, %r13d, %edx
20183        addl	%ebx, %r12d
20184        vpaddd	%ymm4, %ymm9, %ymm0
20185        # rnd_1: 5 - 5
20186        xorl	%ecx, %edx
20187        addl	%r12d, %r8d
20188        movl	%r14d, %ebx
20189        vpaddd	384+L_avx2_rorx_sha256_k(%rip), %ymm0, %ymm4
20190        # rnd_1: 6 - 6
20191        xorl	%r13d, %ebx
20192        addl	%edx, %r12d
20193        andl	%ebx, %eax
20194        # rnd_1: 7 - 7
20195        xorl	%r14d, %eax
20196        rorxl	$6, %r8d, %edx
20197        addl	%eax, %r12d
20198        vmovdqu	%ymm4, 384(%rsp)
20199        # rnd_0: 0 - 0
20200        movl	%r9d, %eax
20201        rorxl	$11, %r8d, %ecx
20202        addl	288(%rsp), %r11d
20203        vpalignr	$4, %ymm1, %ymm2, %ymm5
20204        # rnd_0: 1 - 1
20205        xorl	%edx, %ecx
20206        xorl	%r10d, %eax
20207        rorxl	$25, %r8d, %edx
20208        vpalignr	$4, %ymm3, %ymm0, %ymm4
20209        # rnd_0: 2 - 2
20210        andl	%r8d, %eax
20211        xorl	%ecx, %edx
20212        rorxl	$13, %r12d, %ecx
20213        vpsrld	$7, %ymm5, %ymm6
20214        # rnd_0: 3 - 3
20215        addl	%edx, %r11d
20216        rorxl	$2, %r12d, %edx
20217        xorl	%r10d, %eax
20218        vpslld	$25, %ymm5, %ymm7
20219        # rnd_0: 4 - 4
20220        xorl	%edx, %ecx
20221        rorxl	$22, %r12d, %edx
20222        addl	%eax, %r11d
20223        vpsrld	$18, %ymm5, %ymm8
20224        # rnd_0: 5 - 5
20225        xorl	%ecx, %edx
20226        movl	%r13d, %eax
20227        addl	%r11d, %r15d
20228        vpslld	$14, %ymm5, %ymm9
20229        # rnd_0: 6 - 6
20230        xorl	%r12d, %eax
20231        addl	%edx, %r11d
20232        andl	%eax, %ebx
20233        vpor	%ymm7, %ymm6, %ymm6
20234        # rnd_0: 7 - 7
20235        xorl	%r13d, %ebx
20236        rorxl	$6, %r15d, %edx
20237        addl	%ebx, %r11d
20238        vpor	%ymm9, %ymm8, %ymm8
20239        # rnd_1: 0 - 0
20240        movl	%r8d, %ebx
20241        rorxl	$11, %r15d, %ecx
20242        addl	292(%rsp), %r10d
20243        vpsrld	$3, %ymm5, %ymm9
20244        # rnd_1: 1 - 1
20245        xorl	%edx, %ecx
20246        xorl	%r9d, %ebx
20247        rorxl	$25, %r15d, %edx
20248        vpxor	%ymm8, %ymm6, %ymm6
20249        # rnd_1: 2 - 2
20250        andl	%r15d, %ebx
20251        xorl	%ecx, %edx
20252        rorxl	$13, %r11d, %ecx
20253        vpshufd	$0xfa, %ymm0, %ymm7
20254        # rnd_1: 3 - 3
20255        addl	%edx, %r10d
20256        rorxl	$2, %r11d, %edx
20257        xorl	%r9d, %ebx
20258        vpxor	%ymm6, %ymm9, %ymm5
20259        # rnd_1: 4 - 4
20260        xorl	%edx, %ecx
20261        rorxl	$22, %r11d, %edx
20262        addl	%ebx, %r10d
20263        vpsrld	$10, %ymm7, %ymm8
20264        # rnd_1: 5 - 5
20265        xorl	%ecx, %edx
20266        addl	%r10d, %r14d
20267        movl	%r12d, %ebx
20268        vpsrlq	$19, %ymm7, %ymm6
20269        # rnd_1: 6 - 6
20270        xorl	%r11d, %ebx
20271        addl	%edx, %r10d
20272        andl	%ebx, %eax
20273        vpsrlq	$0x11, %ymm7, %ymm7
20274        # rnd_1: 7 - 7
20275        xorl	%r12d, %eax
20276        rorxl	$6, %r14d, %edx
20277        addl	%eax, %r10d
20278        vpaddd	%ymm1, %ymm4, %ymm4
20279        # rnd_0: 0 - 0
20280        movl	%r15d, %eax
20281        rorxl	$11, %r14d, %ecx
20282        addl	296(%rsp), %r9d
20283        vpxor	%ymm7, %ymm6, %ymm6
20284        # rnd_0: 1 - 1
20285        xorl	%edx, %ecx
20286        xorl	%r8d, %eax
20287        rorxl	$25, %r14d, %edx
20288        vpxor	%ymm6, %ymm8, %ymm8
20289        # rnd_0: 2 - 2
20290        andl	%r14d, %eax
20291        xorl	%ecx, %edx
20292        rorxl	$13, %r10d, %ecx
20293        vpaddd	%ymm5, %ymm4, %ymm4
20294        # rnd_0: 3 - 3
20295        addl	%edx, %r9d
20296        rorxl	$2, %r10d, %edx
20297        xorl	%r8d, %eax
20298        vpshufb	%ymm11, %ymm8, %ymm8
20299        # rnd_0: 4 - 4
20300        xorl	%edx, %ecx
20301        rorxl	$22, %r10d, %edx
20302        addl	%eax, %r9d
20303        vpaddd	%ymm8, %ymm4, %ymm4
20304        # rnd_0: 5 - 5
20305        xorl	%ecx, %edx
20306        movl	%r11d, %eax
20307        addl	%r9d, %r13d
20308        vpshufd	$0x50, %ymm4, %ymm6
20309        # rnd_0: 6 - 6
20310        xorl	%r10d, %eax
20311        addl	%edx, %r9d
20312        andl	%eax, %ebx
20313        vpsrlq	$0x11, %ymm6, %ymm8
20314        # rnd_0: 7 - 7
20315        xorl	%r11d, %ebx
20316        rorxl	$6, %r13d, %edx
20317        addl	%ebx, %r9d
20318        vpsrlq	$19, %ymm6, %ymm7
20319        # rnd_1: 0 - 0
20320        movl	%r14d, %ebx
20321        rorxl	$11, %r13d, %ecx
20322        addl	300(%rsp), %r8d
20323        vpsrld	$10, %ymm6, %ymm9
20324        # rnd_1: 1 - 1
20325        xorl	%edx, %ecx
20326        xorl	%r15d, %ebx
20327        rorxl	$25, %r13d, %edx
20328        vpxor	%ymm7, %ymm8, %ymm8
20329        # rnd_1: 2 - 2
20330        andl	%r13d, %ebx
20331        xorl	%ecx, %edx
20332        rorxl	$13, %r9d, %ecx
20333        vpxor	%ymm8, %ymm9, %ymm9
20334        # rnd_1: 3 - 3
20335        addl	%edx, %r8d
20336        rorxl	$2, %r9d, %edx
20337        xorl	%r15d, %ebx
20338        vpshufb	%ymm12, %ymm9, %ymm9
20339        # rnd_1: 4 - 4
20340        xorl	%edx, %ecx
20341        rorxl	$22, %r9d, %edx
20342        addl	%ebx, %r8d
20343        vpaddd	%ymm4, %ymm9, %ymm1
20344        # rnd_1: 5 - 5
20345        xorl	%ecx, %edx
20346        addl	%r8d, %r12d
20347        movl	%r10d, %ebx
20348        vpaddd	416+L_avx2_rorx_sha256_k(%rip), %ymm1, %ymm4
20349        # rnd_1: 6 - 6
20350        xorl	%r9d, %ebx
20351        addl	%edx, %r8d
20352        andl	%ebx, %eax
20353        # rnd_1: 7 - 7
20354        xorl	%r10d, %eax
20355        rorxl	$6, %r12d, %edx
20356        addl	%eax, %r8d
20357        vmovdqu	%ymm4, 416(%rsp)
20358        # rnd_0: 0 - 0
20359        movl	%r13d, %eax
20360        rorxl	$11, %r12d, %ecx
20361        addl	320(%rsp), %r15d
20362        vpalignr	$4, %ymm2, %ymm3, %ymm5
20363        # rnd_0: 1 - 1
20364        xorl	%edx, %ecx
20365        xorl	%r14d, %eax
20366        rorxl	$25, %r12d, %edx
20367        vpalignr	$4, %ymm0, %ymm1, %ymm4
20368        # rnd_0: 2 - 2
20369        andl	%r12d, %eax
20370        xorl	%ecx, %edx
20371        rorxl	$13, %r8d, %ecx
20372        vpsrld	$7, %ymm5, %ymm6
20373        # rnd_0: 3 - 3
20374        addl	%edx, %r15d
20375        rorxl	$2, %r8d, %edx
20376        xorl	%r14d, %eax
20377        vpslld	$25, %ymm5, %ymm7
20378        # rnd_0: 4 - 4
20379        xorl	%edx, %ecx
20380        rorxl	$22, %r8d, %edx
20381        addl	%eax, %r15d
20382        vpsrld	$18, %ymm5, %ymm8
20383        # rnd_0: 5 - 5
20384        xorl	%ecx, %edx
20385        movl	%r9d, %eax
20386        addl	%r15d, %r11d
20387        vpslld	$14, %ymm5, %ymm9
20388        # rnd_0: 6 - 6
20389        xorl	%r8d, %eax
20390        addl	%edx, %r15d
20391        andl	%eax, %ebx
20392        vpor	%ymm7, %ymm6, %ymm6
20393        # rnd_0: 7 - 7
20394        xorl	%r9d, %ebx
20395        rorxl	$6, %r11d, %edx
20396        addl	%ebx, %r15d
20397        vpor	%ymm9, %ymm8, %ymm8
20398        # rnd_1: 0 - 0
20399        movl	%r12d, %ebx
20400        rorxl	$11, %r11d, %ecx
20401        addl	324(%rsp), %r14d
20402        vpsrld	$3, %ymm5, %ymm9
20403        # rnd_1: 1 - 1
20404        xorl	%edx, %ecx
20405        xorl	%r13d, %ebx
20406        rorxl	$25, %r11d, %edx
20407        vpxor	%ymm8, %ymm6, %ymm6
20408        # rnd_1: 2 - 2
20409        andl	%r11d, %ebx
20410        xorl	%ecx, %edx
20411        rorxl	$13, %r15d, %ecx
20412        vpshufd	$0xfa, %ymm1, %ymm7
20413        # rnd_1: 3 - 3
20414        addl	%edx, %r14d
20415        rorxl	$2, %r15d, %edx
20416        xorl	%r13d, %ebx
20417        vpxor	%ymm6, %ymm9, %ymm5
20418        # rnd_1: 4 - 4
20419        xorl	%edx, %ecx
20420        rorxl	$22, %r15d, %edx
20421        addl	%ebx, %r14d
20422        vpsrld	$10, %ymm7, %ymm8
20423        # rnd_1: 5 - 5
20424        xorl	%ecx, %edx
20425        addl	%r14d, %r10d
20426        movl	%r8d, %ebx
20427        vpsrlq	$19, %ymm7, %ymm6
20428        # rnd_1: 6 - 6
20429        xorl	%r15d, %ebx
20430        addl	%edx, %r14d
20431        andl	%ebx, %eax
20432        vpsrlq	$0x11, %ymm7, %ymm7
20433        # rnd_1: 7 - 7
20434        xorl	%r8d, %eax
20435        rorxl	$6, %r10d, %edx
20436        addl	%eax, %r14d
20437        vpaddd	%ymm2, %ymm4, %ymm4
20438        # rnd_0: 0 - 0
20439        movl	%r11d, %eax
20440        rorxl	$11, %r10d, %ecx
20441        addl	328(%rsp), %r13d
20442        vpxor	%ymm7, %ymm6, %ymm6
20443        # rnd_0: 1 - 1
20444        xorl	%edx, %ecx
20445        xorl	%r12d, %eax
20446        rorxl	$25, %r10d, %edx
20447        vpxor	%ymm6, %ymm8, %ymm8
20448        # rnd_0: 2 - 2
20449        andl	%r10d, %eax
20450        xorl	%ecx, %edx
20451        rorxl	$13, %r14d, %ecx
20452        vpaddd	%ymm5, %ymm4, %ymm4
20453        # rnd_0: 3 - 3
20454        addl	%edx, %r13d
20455        rorxl	$2, %r14d, %edx
20456        xorl	%r12d, %eax
20457        vpshufb	%ymm11, %ymm8, %ymm8
20458        # rnd_0: 4 - 4
20459        xorl	%edx, %ecx
20460        rorxl	$22, %r14d, %edx
20461        addl	%eax, %r13d
20462        vpaddd	%ymm8, %ymm4, %ymm4
20463        # rnd_0: 5 - 5
20464        xorl	%ecx, %edx
20465        movl	%r15d, %eax
20466        addl	%r13d, %r9d
20467        vpshufd	$0x50, %ymm4, %ymm6
20468        # rnd_0: 6 - 6
20469        xorl	%r14d, %eax
20470        addl	%edx, %r13d
20471        andl	%eax, %ebx
20472        vpsrlq	$0x11, %ymm6, %ymm8
20473        # rnd_0: 7 - 7
20474        xorl	%r15d, %ebx
20475        rorxl	$6, %r9d, %edx
20476        addl	%ebx, %r13d
20477        vpsrlq	$19, %ymm6, %ymm7
20478        # rnd_1: 0 - 0
20479        movl	%r10d, %ebx
20480        rorxl	$11, %r9d, %ecx
20481        addl	332(%rsp), %r12d
20482        vpsrld	$10, %ymm6, %ymm9
20483        # rnd_1: 1 - 1
20484        xorl	%edx, %ecx
20485        xorl	%r11d, %ebx
20486        rorxl	$25, %r9d, %edx
20487        vpxor	%ymm7, %ymm8, %ymm8
20488        # rnd_1: 2 - 2
20489        andl	%r9d, %ebx
20490        xorl	%ecx, %edx
20491        rorxl	$13, %r13d, %ecx
20492        vpxor	%ymm8, %ymm9, %ymm9
20493        # rnd_1: 3 - 3
20494        addl	%edx, %r12d
20495        rorxl	$2, %r13d, %edx
20496        xorl	%r11d, %ebx
20497        vpshufb	%ymm12, %ymm9, %ymm9
20498        # rnd_1: 4 - 4
20499        xorl	%edx, %ecx
20500        rorxl	$22, %r13d, %edx
20501        addl	%ebx, %r12d
20502        vpaddd	%ymm4, %ymm9, %ymm2
20503        # rnd_1: 5 - 5
20504        xorl	%ecx, %edx
20505        addl	%r12d, %r8d
20506        movl	%r14d, %ebx
20507        vpaddd	448+L_avx2_rorx_sha256_k(%rip), %ymm2, %ymm4
20508        # rnd_1: 6 - 6
20509        xorl	%r13d, %ebx
20510        addl	%edx, %r12d
20511        andl	%ebx, %eax
20512        # rnd_1: 7 - 7
20513        xorl	%r14d, %eax
20514        rorxl	$6, %r8d, %edx
20515        addl	%eax, %r12d
20516        vmovdqu	%ymm4, 448(%rsp)
20517        # rnd_0: 0 - 0
20518        movl	%r9d, %eax
20519        rorxl	$11, %r8d, %ecx
20520        addl	352(%rsp), %r11d
20521        vpalignr	$4, %ymm3, %ymm0, %ymm5
20522        # rnd_0: 1 - 1
20523        xorl	%edx, %ecx
20524        xorl	%r10d, %eax
20525        rorxl	$25, %r8d, %edx
20526        vpalignr	$4, %ymm1, %ymm2, %ymm4
20527        # rnd_0: 2 - 2
20528        andl	%r8d, %eax
20529        xorl	%ecx, %edx
20530        rorxl	$13, %r12d, %ecx
20531        vpsrld	$7, %ymm5, %ymm6
20532        # rnd_0: 3 - 3
20533        addl	%edx, %r11d
20534        rorxl	$2, %r12d, %edx
20535        xorl	%r10d, %eax
20536        vpslld	$25, %ymm5, %ymm7
20537        # rnd_0: 4 - 4
20538        xorl	%edx, %ecx
20539        rorxl	$22, %r12d, %edx
20540        addl	%eax, %r11d
20541        vpsrld	$18, %ymm5, %ymm8
20542        # rnd_0: 5 - 5
20543        xorl	%ecx, %edx
20544        movl	%r13d, %eax
20545        addl	%r11d, %r15d
20546        vpslld	$14, %ymm5, %ymm9
20547        # rnd_0: 6 - 6
20548        xorl	%r12d, %eax
20549        addl	%edx, %r11d
20550        andl	%eax, %ebx
20551        vpor	%ymm7, %ymm6, %ymm6
20552        # rnd_0: 7 - 7
20553        xorl	%r13d, %ebx
20554        rorxl	$6, %r15d, %edx
20555        addl	%ebx, %r11d
20556        vpor	%ymm9, %ymm8, %ymm8
20557        # rnd_1: 0 - 0
20558        movl	%r8d, %ebx
20559        rorxl	$11, %r15d, %ecx
20560        addl	356(%rsp), %r10d
20561        vpsrld	$3, %ymm5, %ymm9
20562        # rnd_1: 1 - 1
20563        xorl	%edx, %ecx
20564        xorl	%r9d, %ebx
20565        rorxl	$25, %r15d, %edx
20566        vpxor	%ymm8, %ymm6, %ymm6
20567        # rnd_1: 2 - 2
20568        andl	%r15d, %ebx
20569        xorl	%ecx, %edx
20570        rorxl	$13, %r11d, %ecx
20571        vpshufd	$0xfa, %ymm2, %ymm7
20572        # rnd_1: 3 - 3
20573        addl	%edx, %r10d
20574        rorxl	$2, %r11d, %edx
20575        xorl	%r9d, %ebx
20576        vpxor	%ymm6, %ymm9, %ymm5
20577        # rnd_1: 4 - 4
20578        xorl	%edx, %ecx
20579        rorxl	$22, %r11d, %edx
20580        addl	%ebx, %r10d
20581        vpsrld	$10, %ymm7, %ymm8
20582        # rnd_1: 5 - 5
20583        xorl	%ecx, %edx
20584        addl	%r10d, %r14d
20585        movl	%r12d, %ebx
20586        vpsrlq	$19, %ymm7, %ymm6
20587        # rnd_1: 6 - 6
20588        xorl	%r11d, %ebx
20589        addl	%edx, %r10d
20590        andl	%ebx, %eax
20591        vpsrlq	$0x11, %ymm7, %ymm7
20592        # rnd_1: 7 - 7
20593        xorl	%r12d, %eax
20594        rorxl	$6, %r14d, %edx
20595        addl	%eax, %r10d
20596        vpaddd	%ymm3, %ymm4, %ymm4
20597        # rnd_0: 0 - 0
20598        movl	%r15d, %eax
20599        rorxl	$11, %r14d, %ecx
20600        addl	360(%rsp), %r9d
20601        vpxor	%ymm7, %ymm6, %ymm6
20602        # rnd_0: 1 - 1
20603        xorl	%edx, %ecx
20604        xorl	%r8d, %eax
20605        rorxl	$25, %r14d, %edx
20606        vpxor	%ymm6, %ymm8, %ymm8
20607        # rnd_0: 2 - 2
20608        andl	%r14d, %eax
20609        xorl	%ecx, %edx
20610        rorxl	$13, %r10d, %ecx
20611        vpaddd	%ymm5, %ymm4, %ymm4
20612        # rnd_0: 3 - 3
20613        addl	%edx, %r9d
20614        rorxl	$2, %r10d, %edx
20615        xorl	%r8d, %eax
20616        vpshufb	%ymm11, %ymm8, %ymm8
20617        # rnd_0: 4 - 4
20618        xorl	%edx, %ecx
20619        rorxl	$22, %r10d, %edx
20620        addl	%eax, %r9d
20621        vpaddd	%ymm8, %ymm4, %ymm4
20622        # rnd_0: 5 - 5
20623        xorl	%ecx, %edx
20624        movl	%r11d, %eax
20625        addl	%r9d, %r13d
20626        vpshufd	$0x50, %ymm4, %ymm6
20627        # rnd_0: 6 - 6
20628        xorl	%r10d, %eax
20629        addl	%edx, %r9d
20630        andl	%eax, %ebx
20631        vpsrlq	$0x11, %ymm6, %ymm8
20632        # rnd_0: 7 - 7
20633        xorl	%r11d, %ebx
20634        rorxl	$6, %r13d, %edx
20635        addl	%ebx, %r9d
20636        vpsrlq	$19, %ymm6, %ymm7
20637        # rnd_1: 0 - 0
20638        movl	%r14d, %ebx
20639        rorxl	$11, %r13d, %ecx
20640        addl	364(%rsp), %r8d
20641        vpsrld	$10, %ymm6, %ymm9
20642        # rnd_1: 1 - 1
20643        xorl	%edx, %ecx
20644        xorl	%r15d, %ebx
20645        rorxl	$25, %r13d, %edx
20646        vpxor	%ymm7, %ymm8, %ymm8
20647        # rnd_1: 2 - 2
20648        andl	%r13d, %ebx
20649        xorl	%ecx, %edx
20650        rorxl	$13, %r9d, %ecx
20651        vpxor	%ymm8, %ymm9, %ymm9
20652        # rnd_1: 3 - 3
20653        addl	%edx, %r8d
20654        rorxl	$2, %r9d, %edx
20655        xorl	%r15d, %ebx
20656        vpshufb	%ymm12, %ymm9, %ymm9
20657        # rnd_1: 4 - 4
20658        xorl	%edx, %ecx
20659        rorxl	$22, %r9d, %edx
20660        addl	%ebx, %r8d
20661        vpaddd	%ymm4, %ymm9, %ymm3
20662        # rnd_1: 5 - 5
20663        xorl	%ecx, %edx
20664        addl	%r8d, %r12d
20665        movl	%r10d, %ebx
20666        vpaddd	480+L_avx2_rorx_sha256_k(%rip), %ymm3, %ymm4
20667        # rnd_1: 6 - 6
20668        xorl	%r9d, %ebx
20669        addl	%edx, %r8d
20670        andl	%ebx, %eax
20671        # rnd_1: 7 - 7
20672        xorl	%r10d, %eax
20673        rorxl	$6, %r12d, %edx
20674        addl	%eax, %r8d
20675        vmovdqu	%ymm4, 480(%rsp)
20676        xorl	%eax, %eax
20677        xorl	%ecx, %ecx
20678        rorxl	$6, %r12d, %edx
20679        rorxl	$11, %r12d, %ecx
20680        leal	(%r8,%rax,1), %r8d
20681        addl	384(%rsp), %r15d
20682        movl	%r13d, %eax
20683        xorl	%edx, %ecx
20684        xorl	%r14d, %eax
20685        rorxl	$25, %r12d, %edx
20686        xorl	%ecx, %edx
20687        andl	%r12d, %eax
20688        addl	%edx, %r15d
20689        rorxl	$2, %r8d, %edx
20690        rorxl	$13, %r8d, %ecx
20691        xorl	%r14d, %eax
20692        xorl	%edx, %ecx
20693        rorxl	$22, %r8d, %edx
20694        addl	%eax, %r15d
20695        xorl	%ecx, %edx
20696        movl	%r9d, %eax
20697        addl	%r15d, %r11d
20698        xorl	%r8d, %eax
20699        andl	%eax, %ebx
20700        addl	%edx, %r15d
20701        xorl	%r9d, %ebx
20702        rorxl	$6, %r11d, %edx
20703        rorxl	$11, %r11d, %ecx
20704        addl	%ebx, %r15d
20705        addl	388(%rsp), %r14d
20706        movl	%r12d, %ebx
20707        xorl	%edx, %ecx
20708        xorl	%r13d, %ebx
20709        rorxl	$25, %r11d, %edx
20710        xorl	%ecx, %edx
20711        andl	%r11d, %ebx
20712        addl	%edx, %r14d
20713        rorxl	$2, %r15d, %edx
20714        rorxl	$13, %r15d, %ecx
20715        xorl	%r13d, %ebx
20716        xorl	%edx, %ecx
20717        rorxl	$22, %r15d, %edx
20718        addl	%ebx, %r14d
20719        xorl	%ecx, %edx
20720        movl	%r8d, %ebx
20721        leal	(%r10,%r14,1), %r10d
20722        xorl	%r15d, %ebx
20723        andl	%ebx, %eax
20724        addl	%edx, %r14d
20725        xorl	%r8d, %eax
20726        rorxl	$6, %r10d, %edx
20727        rorxl	$11, %r10d, %ecx
20728        leal	(%r14,%rax,1), %r14d
20729        addl	392(%rsp), %r13d
20730        movl	%r11d, %eax
20731        xorl	%edx, %ecx
20732        xorl	%r12d, %eax
20733        rorxl	$25, %r10d, %edx
20734        xorl	%ecx, %edx
20735        andl	%r10d, %eax
20736        addl	%edx, %r13d
20737        rorxl	$2, %r14d, %edx
20738        rorxl	$13, %r14d, %ecx
20739        xorl	%r12d, %eax
20740        xorl	%edx, %ecx
20741        rorxl	$22, %r14d, %edx
20742        addl	%eax, %r13d
20743        xorl	%ecx, %edx
20744        movl	%r15d, %eax
20745        addl	%r13d, %r9d
20746        xorl	%r14d, %eax
20747        andl	%eax, %ebx
20748        addl	%edx, %r13d
20749        xorl	%r15d, %ebx
20750        rorxl	$6, %r9d, %edx
20751        rorxl	$11, %r9d, %ecx
20752        addl	%ebx, %r13d
20753        addl	396(%rsp), %r12d
20754        movl	%r10d, %ebx
20755        xorl	%edx, %ecx
20756        xorl	%r11d, %ebx
20757        rorxl	$25, %r9d, %edx
20758        xorl	%ecx, %edx
20759        andl	%r9d, %ebx
20760        addl	%edx, %r12d
20761        rorxl	$2, %r13d, %edx
20762        rorxl	$13, %r13d, %ecx
20763        xorl	%r11d, %ebx
20764        xorl	%edx, %ecx
20765        rorxl	$22, %r13d, %edx
20766        addl	%ebx, %r12d
20767        xorl	%ecx, %edx
20768        movl	%r14d, %ebx
20769        leal	(%r8,%r12,1), %r8d
20770        xorl	%r13d, %ebx
20771        andl	%ebx, %eax
20772        addl	%edx, %r12d
20773        xorl	%r14d, %eax
20774        rorxl	$6, %r8d, %edx
20775        rorxl	$11, %r8d, %ecx
20776        leal	(%r12,%rax,1), %r12d
20777        addl	416(%rsp), %r11d
20778        movl	%r9d, %eax
20779        xorl	%edx, %ecx
20780        xorl	%r10d, %eax
20781        rorxl	$25, %r8d, %edx
20782        xorl	%ecx, %edx
20783        andl	%r8d, %eax
20784        addl	%edx, %r11d
20785        rorxl	$2, %r12d, %edx
20786        rorxl	$13, %r12d, %ecx
20787        xorl	%r10d, %eax
20788        xorl	%edx, %ecx
20789        rorxl	$22, %r12d, %edx
20790        addl	%eax, %r11d
20791        xorl	%ecx, %edx
20792        movl	%r13d, %eax
20793        addl	%r11d, %r15d
20794        xorl	%r12d, %eax
20795        andl	%eax, %ebx
20796        addl	%edx, %r11d
20797        xorl	%r13d, %ebx
20798        rorxl	$6, %r15d, %edx
20799        rorxl	$11, %r15d, %ecx
20800        addl	%ebx, %r11d
20801        addl	420(%rsp), %r10d
20802        movl	%r8d, %ebx
20803        xorl	%edx, %ecx
20804        xorl	%r9d, %ebx
20805        rorxl	$25, %r15d, %edx
20806        xorl	%ecx, %edx
20807        andl	%r15d, %ebx
20808        addl	%edx, %r10d
20809        rorxl	$2, %r11d, %edx
20810        rorxl	$13, %r11d, %ecx
20811        xorl	%r9d, %ebx
20812        xorl	%edx, %ecx
20813        rorxl	$22, %r11d, %edx
20814        addl	%ebx, %r10d
20815        xorl	%ecx, %edx
20816        movl	%r12d, %ebx
20817        leal	(%r14,%r10,1), %r14d
20818        xorl	%r11d, %ebx
20819        andl	%ebx, %eax
20820        addl	%edx, %r10d
20821        xorl	%r12d, %eax
20822        rorxl	$6, %r14d, %edx
20823        rorxl	$11, %r14d, %ecx
20824        leal	(%r10,%rax,1), %r10d
20825        addl	424(%rsp), %r9d
20826        movl	%r15d, %eax
20827        xorl	%edx, %ecx
20828        xorl	%r8d, %eax
20829        rorxl	$25, %r14d, %edx
20830        xorl	%ecx, %edx
20831        andl	%r14d, %eax
20832        addl	%edx, %r9d
20833        rorxl	$2, %r10d, %edx
20834        rorxl	$13, %r10d, %ecx
20835        xorl	%r8d, %eax
20836        xorl	%edx, %ecx
20837        rorxl	$22, %r10d, %edx
20838        addl	%eax, %r9d
20839        xorl	%ecx, %edx
20840        movl	%r11d, %eax
20841        addl	%r9d, %r13d
20842        xorl	%r10d, %eax
20843        andl	%eax, %ebx
20844        addl	%edx, %r9d
20845        xorl	%r11d, %ebx
20846        rorxl	$6, %r13d, %edx
20847        rorxl	$11, %r13d, %ecx
20848        addl	%ebx, %r9d
20849        addl	428(%rsp), %r8d
20850        movl	%r14d, %ebx
20851        xorl	%edx, %ecx
20852        xorl	%r15d, %ebx
20853        rorxl	$25, %r13d, %edx
20854        xorl	%ecx, %edx
20855        andl	%r13d, %ebx
20856        addl	%edx, %r8d
20857        rorxl	$2, %r9d, %edx
20858        rorxl	$13, %r9d, %ecx
20859        xorl	%r15d, %ebx
20860        xorl	%edx, %ecx
20861        rorxl	$22, %r9d, %edx
20862        addl	%ebx, %r8d
20863        xorl	%ecx, %edx
20864        movl	%r10d, %ebx
20865        leal	(%r12,%r8,1), %r12d
20866        xorl	%r9d, %ebx
20867        andl	%ebx, %eax
20868        addl	%edx, %r8d
20869        xorl	%r10d, %eax
20870        rorxl	$6, %r12d, %edx
20871        rorxl	$11, %r12d, %ecx
20872        leal	(%r8,%rax,1), %r8d
20873        addl	448(%rsp), %r15d
20874        movl	%r13d, %eax
20875        xorl	%edx, %ecx
20876        xorl	%r14d, %eax
20877        rorxl	$25, %r12d, %edx
20878        xorl	%ecx, %edx
20879        andl	%r12d, %eax
20880        addl	%edx, %r15d
20881        rorxl	$2, %r8d, %edx
20882        rorxl	$13, %r8d, %ecx
20883        xorl	%r14d, %eax
20884        xorl	%edx, %ecx
20885        rorxl	$22, %r8d, %edx
20886        addl	%eax, %r15d
20887        xorl	%ecx, %edx
20888        movl	%r9d, %eax
20889        addl	%r15d, %r11d
20890        xorl	%r8d, %eax
20891        andl	%eax, %ebx
20892        addl	%edx, %r15d
20893        xorl	%r9d, %ebx
20894        rorxl	$6, %r11d, %edx
20895        rorxl	$11, %r11d, %ecx
20896        addl	%ebx, %r15d
20897        addl	452(%rsp), %r14d
20898        movl	%r12d, %ebx
20899        xorl	%edx, %ecx
20900        xorl	%r13d, %ebx
20901        rorxl	$25, %r11d, %edx
20902        xorl	%ecx, %edx
20903        andl	%r11d, %ebx
20904        addl	%edx, %r14d
20905        rorxl	$2, %r15d, %edx
20906        rorxl	$13, %r15d, %ecx
20907        xorl	%r13d, %ebx
20908        xorl	%edx, %ecx
20909        rorxl	$22, %r15d, %edx
20910        addl	%ebx, %r14d
20911        xorl	%ecx, %edx
20912        movl	%r8d, %ebx
20913        leal	(%r10,%r14,1), %r10d
20914        xorl	%r15d, %ebx
20915        andl	%ebx, %eax
20916        addl	%edx, %r14d
20917        xorl	%r8d, %eax
20918        rorxl	$6, %r10d, %edx
20919        rorxl	$11, %r10d, %ecx
20920        leal	(%r14,%rax,1), %r14d
20921        addl	456(%rsp), %r13d
20922        movl	%r11d, %eax
20923        xorl	%edx, %ecx
20924        xorl	%r12d, %eax
20925        rorxl	$25, %r10d, %edx
20926        xorl	%ecx, %edx
20927        andl	%r10d, %eax
20928        addl	%edx, %r13d
20929        rorxl	$2, %r14d, %edx
20930        rorxl	$13, %r14d, %ecx
20931        xorl	%r12d, %eax
20932        xorl	%edx, %ecx
20933        rorxl	$22, %r14d, %edx
20934        addl	%eax, %r13d
20935        xorl	%ecx, %edx
20936        movl	%r15d, %eax
20937        addl	%r13d, %r9d
20938        xorl	%r14d, %eax
20939        andl	%eax, %ebx
20940        addl	%edx, %r13d
20941        xorl	%r15d, %ebx
20942        rorxl	$6, %r9d, %edx
20943        rorxl	$11, %r9d, %ecx
20944        addl	%ebx, %r13d
20945        addl	460(%rsp), %r12d
20946        movl	%r10d, %ebx
20947        xorl	%edx, %ecx
20948        xorl	%r11d, %ebx
20949        rorxl	$25, %r9d, %edx
20950        xorl	%ecx, %edx
20951        andl	%r9d, %ebx
20952        addl	%edx, %r12d
20953        rorxl	$2, %r13d, %edx
20954        rorxl	$13, %r13d, %ecx
20955        xorl	%r11d, %ebx
20956        xorl	%edx, %ecx
20957        rorxl	$22, %r13d, %edx
20958        addl	%ebx, %r12d
20959        xorl	%ecx, %edx
20960        movl	%r14d, %ebx
20961        leal	(%r8,%r12,1), %r8d
20962        xorl	%r13d, %ebx
20963        andl	%ebx, %eax
20964        addl	%edx, %r12d
20965        xorl	%r14d, %eax
20966        rorxl	$6, %r8d, %edx
20967        rorxl	$11, %r8d, %ecx
20968        leal	(%r12,%rax,1), %r12d
20969        addl	480(%rsp), %r11d
20970        movl	%r9d, %eax
20971        xorl	%edx, %ecx
20972        xorl	%r10d, %eax
20973        rorxl	$25, %r8d, %edx
20974        xorl	%ecx, %edx
20975        andl	%r8d, %eax
20976        addl	%edx, %r11d
20977        rorxl	$2, %r12d, %edx
20978        rorxl	$13, %r12d, %ecx
20979        xorl	%r10d, %eax
20980        xorl	%edx, %ecx
20981        rorxl	$22, %r12d, %edx
20982        addl	%eax, %r11d
20983        xorl	%ecx, %edx
20984        movl	%r13d, %eax
20985        addl	%r11d, %r15d
20986        xorl	%r12d, %eax
20987        andl	%eax, %ebx
20988        addl	%edx, %r11d
20989        xorl	%r13d, %ebx
20990        rorxl	$6, %r15d, %edx
20991        rorxl	$11, %r15d, %ecx
20992        addl	%ebx, %r11d
20993        addl	484(%rsp), %r10d
20994        movl	%r8d, %ebx
20995        xorl	%edx, %ecx
20996        xorl	%r9d, %ebx
20997        rorxl	$25, %r15d, %edx
20998        xorl	%ecx, %edx
20999        andl	%r15d, %ebx
21000        addl	%edx, %r10d
21001        rorxl	$2, %r11d, %edx
21002        rorxl	$13, %r11d, %ecx
21003        xorl	%r9d, %ebx
21004        xorl	%edx, %ecx
21005        rorxl	$22, %r11d, %edx
21006        addl	%ebx, %r10d
21007        xorl	%ecx, %edx
21008        movl	%r12d, %ebx
21009        leal	(%r14,%r10,1), %r14d
21010        xorl	%r11d, %ebx
21011        andl	%ebx, %eax
21012        addl	%edx, %r10d
21013        xorl	%r12d, %eax
21014        rorxl	$6, %r14d, %edx
21015        rorxl	$11, %r14d, %ecx
21016        leal	(%r10,%rax,1), %r10d
21017        addl	488(%rsp), %r9d
21018        movl	%r15d, %eax
21019        xorl	%edx, %ecx
21020        xorl	%r8d, %eax
21021        rorxl	$25, %r14d, %edx
21022        xorl	%ecx, %edx
21023        andl	%r14d, %eax
21024        addl	%edx, %r9d
21025        rorxl	$2, %r10d, %edx
21026        rorxl	$13, %r10d, %ecx
21027        xorl	%r8d, %eax
21028        xorl	%edx, %ecx
21029        rorxl	$22, %r10d, %edx
21030        addl	%eax, %r9d
21031        xorl	%ecx, %edx
21032        movl	%r11d, %eax
21033        addl	%r9d, %r13d
21034        xorl	%r10d, %eax
21035        andl	%eax, %ebx
21036        addl	%edx, %r9d
21037        xorl	%r11d, %ebx
21038        rorxl	$6, %r13d, %edx
21039        rorxl	$11, %r13d, %ecx
21040        addl	%ebx, %r9d
21041        addl	492(%rsp), %r8d
21042        movl	%r14d, %ebx
21043        xorl	%edx, %ecx
21044        xorl	%r15d, %ebx
21045        rorxl	$25, %r13d, %edx
21046        xorl	%ecx, %edx
21047        andl	%r13d, %ebx
21048        addl	%edx, %r8d
21049        rorxl	$2, %r9d, %edx
21050        rorxl	$13, %r9d, %ecx
21051        xorl	%r15d, %ebx
21052        xorl	%edx, %ecx
21053        rorxl	$22, %r9d, %edx
21054        addl	%ebx, %r8d
21055        xorl	%ecx, %edx
21056        movl	%r10d, %ebx
21057        leal	(%r12,%r8,1), %r12d
21058        xorl	%r9d, %ebx
21059        andl	%ebx, %eax
21060        addl	%edx, %r8d
21061        xorl	%r10d, %eax
21062        addl	%eax, %r8d
21063        xorl	%ecx, %ecx
21064        addl	(%rdi), %r8d
21065        addl	4(%rdi), %r9d
21066        addl	8(%rdi), %r10d
21067        addl	12(%rdi), %r11d
21068        addl	16(%rdi), %r12d
21069        addl	20(%rdi), %r13d
21070        addl	24(%rdi), %r14d
21071        addl	28(%rdi), %r15d
21072        movl	%r8d, (%rdi)
21073        movl	%r9d, 4(%rdi)
21074        movl	%r10d, 8(%rdi)
21075        movl	%r11d, 12(%rdi)
21076        movl	%r12d, 16(%rdi)
21077        movl	%r13d, 20(%rdi)
21078        movl	%r14d, 24(%rdi)
21079        movl	%r15d, 28(%rdi)
21080        movl	%r9d, %ebx
21081        xorl	%eax, %eax
21082        xorl	%r10d, %ebx
21083        rorxl	$6, %r12d, %edx
21084        rorxl	$11, %r12d, %ecx
21085        leal	(%r8,%rax,1), %r8d
21086        addl	16(%rsp), %r15d
21087        movl	%r13d, %eax
21088        xorl	%edx, %ecx
21089        xorl	%r14d, %eax
21090        rorxl	$25, %r12d, %edx
21091        xorl	%ecx, %edx
21092        andl	%r12d, %eax
21093        addl	%edx, %r15d
21094        rorxl	$2, %r8d, %edx
21095        rorxl	$13, %r8d, %ecx
21096        xorl	%r14d, %eax
21097        xorl	%edx, %ecx
21098        rorxl	$22, %r8d, %edx
21099        addl	%eax, %r15d
21100        xorl	%ecx, %edx
21101        movl	%r9d, %eax
21102        addl	%r15d, %r11d
21103        xorl	%r8d, %eax
21104        andl	%eax, %ebx
21105        addl	%edx, %r15d
21106        xorl	%r9d, %ebx
21107        rorxl	$6, %r11d, %edx
21108        rorxl	$11, %r11d, %ecx
21109        addl	%ebx, %r15d
21110        addl	20(%rsp), %r14d
21111        movl	%r12d, %ebx
21112        xorl	%edx, %ecx
21113        xorl	%r13d, %ebx
21114        rorxl	$25, %r11d, %edx
21115        xorl	%ecx, %edx
21116        andl	%r11d, %ebx
21117        addl	%edx, %r14d
21118        rorxl	$2, %r15d, %edx
21119        rorxl	$13, %r15d, %ecx
21120        xorl	%r13d, %ebx
21121        xorl	%edx, %ecx
21122        rorxl	$22, %r15d, %edx
21123        addl	%ebx, %r14d
21124        xorl	%ecx, %edx
21125        movl	%r8d, %ebx
21126        leal	(%r10,%r14,1), %r10d
21127        xorl	%r15d, %ebx
21128        andl	%ebx, %eax
21129        addl	%edx, %r14d
21130        xorl	%r8d, %eax
21131        rorxl	$6, %r10d, %edx
21132        rorxl	$11, %r10d, %ecx
21133        leal	(%r14,%rax,1), %r14d
21134        addl	24(%rsp), %r13d
21135        movl	%r11d, %eax
21136        xorl	%edx, %ecx
21137        xorl	%r12d, %eax
21138        rorxl	$25, %r10d, %edx
21139        xorl	%ecx, %edx
21140        andl	%r10d, %eax
21141        addl	%edx, %r13d
21142        rorxl	$2, %r14d, %edx
21143        rorxl	$13, %r14d, %ecx
21144        xorl	%r12d, %eax
21145        xorl	%edx, %ecx
21146        rorxl	$22, %r14d, %edx
21147        addl	%eax, %r13d
21148        xorl	%ecx, %edx
21149        movl	%r15d, %eax
21150        addl	%r13d, %r9d
21151        xorl	%r14d, %eax
21152        andl	%eax, %ebx
21153        addl	%edx, %r13d
21154        xorl	%r15d, %ebx
21155        rorxl	$6, %r9d, %edx
21156        rorxl	$11, %r9d, %ecx
21157        addl	%ebx, %r13d
21158        addl	28(%rsp), %r12d
21159        movl	%r10d, %ebx
21160        xorl	%edx, %ecx
21161        xorl	%r11d, %ebx
21162        rorxl	$25, %r9d, %edx
21163        xorl	%ecx, %edx
21164        andl	%r9d, %ebx
21165        addl	%edx, %r12d
21166        rorxl	$2, %r13d, %edx
21167        rorxl	$13, %r13d, %ecx
21168        xorl	%r11d, %ebx
21169        xorl	%edx, %ecx
21170        rorxl	$22, %r13d, %edx
21171        addl	%ebx, %r12d
21172        xorl	%ecx, %edx
21173        movl	%r14d, %ebx
21174        leal	(%r8,%r12,1), %r8d
21175        xorl	%r13d, %ebx
21176        andl	%ebx, %eax
21177        addl	%edx, %r12d
21178        xorl	%r14d, %eax
21179        rorxl	$6, %r8d, %edx
21180        rorxl	$11, %r8d, %ecx
21181        leal	(%r12,%rax,1), %r12d
21182        addl	48(%rsp), %r11d
21183        movl	%r9d, %eax
21184        xorl	%edx, %ecx
21185        xorl	%r10d, %eax
21186        rorxl	$25, %r8d, %edx
21187        xorl	%ecx, %edx
21188        andl	%r8d, %eax
21189        addl	%edx, %r11d
21190        rorxl	$2, %r12d, %edx
21191        rorxl	$13, %r12d, %ecx
21192        xorl	%r10d, %eax
21193        xorl	%edx, %ecx
21194        rorxl	$22, %r12d, %edx
21195        addl	%eax, %r11d
21196        xorl	%ecx, %edx
21197        movl	%r13d, %eax
21198        addl	%r11d, %r15d
21199        xorl	%r12d, %eax
21200        andl	%eax, %ebx
21201        addl	%edx, %r11d
21202        xorl	%r13d, %ebx
21203        rorxl	$6, %r15d, %edx
21204        rorxl	$11, %r15d, %ecx
21205        addl	%ebx, %r11d
21206        addl	52(%rsp), %r10d
21207        movl	%r8d, %ebx
21208        xorl	%edx, %ecx
21209        xorl	%r9d, %ebx
21210        rorxl	$25, %r15d, %edx
21211        xorl	%ecx, %edx
21212        andl	%r15d, %ebx
21213        addl	%edx, %r10d
21214        rorxl	$2, %r11d, %edx
21215        rorxl	$13, %r11d, %ecx
21216        xorl	%r9d, %ebx
21217        xorl	%edx, %ecx
21218        rorxl	$22, %r11d, %edx
21219        addl	%ebx, %r10d
21220        xorl	%ecx, %edx
21221        movl	%r12d, %ebx
21222        leal	(%r14,%r10,1), %r14d
21223        xorl	%r11d, %ebx
21224        andl	%ebx, %eax
21225        addl	%edx, %r10d
21226        xorl	%r12d, %eax
21227        rorxl	$6, %r14d, %edx
21228        rorxl	$11, %r14d, %ecx
21229        leal	(%r10,%rax,1), %r10d
21230        addl	56(%rsp), %r9d
21231        movl	%r15d, %eax
21232        xorl	%edx, %ecx
21233        xorl	%r8d, %eax
21234        rorxl	$25, %r14d, %edx
21235        xorl	%ecx, %edx
21236        andl	%r14d, %eax
21237        addl	%edx, %r9d
21238        rorxl	$2, %r10d, %edx
21239        rorxl	$13, %r10d, %ecx
21240        xorl	%r8d, %eax
21241        xorl	%edx, %ecx
21242        rorxl	$22, %r10d, %edx
21243        addl	%eax, %r9d
21244        xorl	%ecx, %edx
21245        movl	%r11d, %eax
21246        addl	%r9d, %r13d
21247        xorl	%r10d, %eax
21248        andl	%eax, %ebx
21249        addl	%edx, %r9d
21250        xorl	%r11d, %ebx
21251        rorxl	$6, %r13d, %edx
21252        rorxl	$11, %r13d, %ecx
21253        addl	%ebx, %r9d
21254        addl	60(%rsp), %r8d
21255        movl	%r14d, %ebx
21256        xorl	%edx, %ecx
21257        xorl	%r15d, %ebx
21258        rorxl	$25, %r13d, %edx
21259        xorl	%ecx, %edx
21260        andl	%r13d, %ebx
21261        addl	%edx, %r8d
21262        rorxl	$2, %r9d, %edx
21263        rorxl	$13, %r9d, %ecx
21264        xorl	%r15d, %ebx
21265        xorl	%edx, %ecx
21266        rorxl	$22, %r9d, %edx
21267        addl	%ebx, %r8d
21268        xorl	%ecx, %edx
21269        movl	%r10d, %ebx
21270        leal	(%r12,%r8,1), %r12d
21271        xorl	%r9d, %ebx
21272        andl	%ebx, %eax
21273        addl	%edx, %r8d
21274        xorl	%r10d, %eax
21275        rorxl	$6, %r12d, %edx
21276        rorxl	$11, %r12d, %ecx
21277        leal	(%r8,%rax,1), %r8d
21278        addl	80(%rsp), %r15d
21279        movl	%r13d, %eax
21280        xorl	%edx, %ecx
21281        xorl	%r14d, %eax
21282        rorxl	$25, %r12d, %edx
21283        xorl	%ecx, %edx
21284        andl	%r12d, %eax
21285        addl	%edx, %r15d
21286        rorxl	$2, %r8d, %edx
21287        rorxl	$13, %r8d, %ecx
21288        xorl	%r14d, %eax
21289        xorl	%edx, %ecx
21290        rorxl	$22, %r8d, %edx
21291        addl	%eax, %r15d
21292        xorl	%ecx, %edx
21293        movl	%r9d, %eax
21294        addl	%r15d, %r11d
21295        xorl	%r8d, %eax
21296        andl	%eax, %ebx
21297        addl	%edx, %r15d
21298        xorl	%r9d, %ebx
21299        rorxl	$6, %r11d, %edx
21300        rorxl	$11, %r11d, %ecx
21301        addl	%ebx, %r15d
21302        addl	84(%rsp), %r14d
21303        movl	%r12d, %ebx
21304        xorl	%edx, %ecx
21305        xorl	%r13d, %ebx
21306        rorxl	$25, %r11d, %edx
21307        xorl	%ecx, %edx
21308        andl	%r11d, %ebx
21309        addl	%edx, %r14d
21310        rorxl	$2, %r15d, %edx
21311        rorxl	$13, %r15d, %ecx
21312        xorl	%r13d, %ebx
21313        xorl	%edx, %ecx
21314        rorxl	$22, %r15d, %edx
21315        addl	%ebx, %r14d
21316        xorl	%ecx, %edx
21317        movl	%r8d, %ebx
21318        leal	(%r10,%r14,1), %r10d
21319        xorl	%r15d, %ebx
21320        andl	%ebx, %eax
21321        addl	%edx, %r14d
21322        xorl	%r8d, %eax
21323        rorxl	$6, %r10d, %edx
21324        rorxl	$11, %r10d, %ecx
21325        leal	(%r14,%rax,1), %r14d
21326        addl	88(%rsp), %r13d
21327        movl	%r11d, %eax
21328        xorl	%edx, %ecx
21329        xorl	%r12d, %eax
21330        rorxl	$25, %r10d, %edx
21331        xorl	%ecx, %edx
21332        andl	%r10d, %eax
21333        addl	%edx, %r13d
21334        rorxl	$2, %r14d, %edx
21335        rorxl	$13, %r14d, %ecx
21336        xorl	%r12d, %eax
21337        xorl	%edx, %ecx
21338        rorxl	$22, %r14d, %edx
21339        addl	%eax, %r13d
21340        xorl	%ecx, %edx
21341        movl	%r15d, %eax
21342        addl	%r13d, %r9d
21343        xorl	%r14d, %eax
21344        andl	%eax, %ebx
21345        addl	%edx, %r13d
21346        xorl	%r15d, %ebx
21347        rorxl	$6, %r9d, %edx
21348        rorxl	$11, %r9d, %ecx
21349        addl	%ebx, %r13d
21350        addl	92(%rsp), %r12d
21351        movl	%r10d, %ebx
21352        xorl	%edx, %ecx
21353        xorl	%r11d, %ebx
21354        rorxl	$25, %r9d, %edx
21355        xorl	%ecx, %edx
21356        andl	%r9d, %ebx
21357        addl	%edx, %r12d
21358        rorxl	$2, %r13d, %edx
21359        rorxl	$13, %r13d, %ecx
21360        xorl	%r11d, %ebx
21361        xorl	%edx, %ecx
21362        rorxl	$22, %r13d, %edx
21363        addl	%ebx, %r12d
21364        xorl	%ecx, %edx
21365        movl	%r14d, %ebx
21366        leal	(%r8,%r12,1), %r8d
21367        xorl	%r13d, %ebx
21368        andl	%ebx, %eax
21369        addl	%edx, %r12d
21370        xorl	%r14d, %eax
21371        rorxl	$6, %r8d, %edx
21372        rorxl	$11, %r8d, %ecx
21373        leal	(%r12,%rax,1), %r12d
21374        addl	112(%rsp), %r11d
21375        movl	%r9d, %eax
21376        xorl	%edx, %ecx
21377        xorl	%r10d, %eax
21378        rorxl	$25, %r8d, %edx
21379        xorl	%ecx, %edx
21380        andl	%r8d, %eax
21381        addl	%edx, %r11d
21382        rorxl	$2, %r12d, %edx
21383        rorxl	$13, %r12d, %ecx
21384        xorl	%r10d, %eax
21385        xorl	%edx, %ecx
21386        rorxl	$22, %r12d, %edx
21387        addl	%eax, %r11d
21388        xorl	%ecx, %edx
21389        movl	%r13d, %eax
21390        addl	%r11d, %r15d
21391        xorl	%r12d, %eax
21392        andl	%eax, %ebx
21393        addl	%edx, %r11d
21394        xorl	%r13d, %ebx
21395        rorxl	$6, %r15d, %edx
21396        rorxl	$11, %r15d, %ecx
21397        addl	%ebx, %r11d
21398        addl	116(%rsp), %r10d
21399        movl	%r8d, %ebx
21400        xorl	%edx, %ecx
21401        xorl	%r9d, %ebx
21402        rorxl	$25, %r15d, %edx
21403        xorl	%ecx, %edx
21404        andl	%r15d, %ebx
21405        addl	%edx, %r10d
21406        rorxl	$2, %r11d, %edx
21407        rorxl	$13, %r11d, %ecx
21408        xorl	%r9d, %ebx
21409        xorl	%edx, %ecx
21410        rorxl	$22, %r11d, %edx
21411        addl	%ebx, %r10d
21412        xorl	%ecx, %edx
21413        movl	%r12d, %ebx
21414        leal	(%r14,%r10,1), %r14d
21415        xorl	%r11d, %ebx
21416        andl	%ebx, %eax
21417        addl	%edx, %r10d
21418        xorl	%r12d, %eax
21419        rorxl	$6, %r14d, %edx
21420        rorxl	$11, %r14d, %ecx
21421        leal	(%r10,%rax,1), %r10d
21422        addl	120(%rsp), %r9d
21423        movl	%r15d, %eax
21424        xorl	%edx, %ecx
21425        xorl	%r8d, %eax
21426        rorxl	$25, %r14d, %edx
21427        xorl	%ecx, %edx
21428        andl	%r14d, %eax
21429        addl	%edx, %r9d
21430        rorxl	$2, %r10d, %edx
21431        rorxl	$13, %r10d, %ecx
21432        xorl	%r8d, %eax
21433        xorl	%edx, %ecx
21434        rorxl	$22, %r10d, %edx
21435        addl	%eax, %r9d
21436        xorl	%ecx, %edx
21437        movl	%r11d, %eax
21438        addl	%r9d, %r13d
21439        xorl	%r10d, %eax
21440        andl	%eax, %ebx
21441        addl	%edx, %r9d
21442        xorl	%r11d, %ebx
21443        rorxl	$6, %r13d, %edx
21444        rorxl	$11, %r13d, %ecx
21445        addl	%ebx, %r9d
21446        addl	124(%rsp), %r8d
21447        movl	%r14d, %ebx
21448        xorl	%edx, %ecx
21449        xorl	%r15d, %ebx
21450        rorxl	$25, %r13d, %edx
21451        xorl	%ecx, %edx
21452        andl	%r13d, %ebx
21453        addl	%edx, %r8d
21454        rorxl	$2, %r9d, %edx
21455        rorxl	$13, %r9d, %ecx
21456        xorl	%r15d, %ebx
21457        xorl	%edx, %ecx
21458        rorxl	$22, %r9d, %edx
21459        addl	%ebx, %r8d
21460        xorl	%ecx, %edx
21461        movl	%r10d, %ebx
21462        leal	(%r12,%r8,1), %r12d
21463        xorl	%r9d, %ebx
21464        andl	%ebx, %eax
21465        addl	%edx, %r8d
21466        xorl	%r10d, %eax
21467        rorxl	$6, %r12d, %edx
21468        rorxl	$11, %r12d, %ecx
21469        leal	(%r8,%rax,1), %r8d
21470        addl	144(%rsp), %r15d
21471        movl	%r13d, %eax
21472        xorl	%edx, %ecx
21473        xorl	%r14d, %eax
21474        rorxl	$25, %r12d, %edx
21475        xorl	%ecx, %edx
21476        andl	%r12d, %eax
21477        addl	%edx, %r15d
21478        rorxl	$2, %r8d, %edx
21479        rorxl	$13, %r8d, %ecx
21480        xorl	%r14d, %eax
21481        xorl	%edx, %ecx
21482        rorxl	$22, %r8d, %edx
21483        addl	%eax, %r15d
21484        xorl	%ecx, %edx
21485        movl	%r9d, %eax
21486        addl	%r15d, %r11d
21487        xorl	%r8d, %eax
21488        andl	%eax, %ebx
21489        addl	%edx, %r15d
21490        xorl	%r9d, %ebx
21491        rorxl	$6, %r11d, %edx
21492        rorxl	$11, %r11d, %ecx
21493        addl	%ebx, %r15d
21494        addl	148(%rsp), %r14d
21495        movl	%r12d, %ebx
21496        xorl	%edx, %ecx
21497        xorl	%r13d, %ebx
21498        rorxl	$25, %r11d, %edx
21499        xorl	%ecx, %edx
21500        andl	%r11d, %ebx
21501        addl	%edx, %r14d
21502        rorxl	$2, %r15d, %edx
21503        rorxl	$13, %r15d, %ecx
21504        xorl	%r13d, %ebx
21505        xorl	%edx, %ecx
21506        rorxl	$22, %r15d, %edx
21507        addl	%ebx, %r14d
21508        xorl	%ecx, %edx
21509        movl	%r8d, %ebx
21510        leal	(%r10,%r14,1), %r10d
21511        xorl	%r15d, %ebx
21512        andl	%ebx, %eax
21513        addl	%edx, %r14d
21514        xorl	%r8d, %eax
21515        rorxl	$6, %r10d, %edx
21516        rorxl	$11, %r10d, %ecx
21517        leal	(%r14,%rax,1), %r14d
21518        addl	152(%rsp), %r13d
21519        movl	%r11d, %eax
21520        xorl	%edx, %ecx
21521        xorl	%r12d, %eax
21522        rorxl	$25, %r10d, %edx
21523        xorl	%ecx, %edx
21524        andl	%r10d, %eax
21525        addl	%edx, %r13d
21526        rorxl	$2, %r14d, %edx
21527        rorxl	$13, %r14d, %ecx
21528        xorl	%r12d, %eax
21529        xorl	%edx, %ecx
21530        rorxl	$22, %r14d, %edx
21531        addl	%eax, %r13d
21532        xorl	%ecx, %edx
21533        movl	%r15d, %eax
21534        addl	%r13d, %r9d
21535        xorl	%r14d, %eax
21536        andl	%eax, %ebx
21537        addl	%edx, %r13d
21538        xorl	%r15d, %ebx
21539        rorxl	$6, %r9d, %edx
21540        rorxl	$11, %r9d, %ecx
21541        addl	%ebx, %r13d
21542        addl	156(%rsp), %r12d
21543        movl	%r10d, %ebx
21544        xorl	%edx, %ecx
21545        xorl	%r11d, %ebx
21546        rorxl	$25, %r9d, %edx
21547        xorl	%ecx, %edx
21548        andl	%r9d, %ebx
21549        addl	%edx, %r12d
21550        rorxl	$2, %r13d, %edx
21551        rorxl	$13, %r13d, %ecx
21552        xorl	%r11d, %ebx
21553        xorl	%edx, %ecx
21554        rorxl	$22, %r13d, %edx
21555        addl	%ebx, %r12d
21556        xorl	%ecx, %edx
21557        movl	%r14d, %ebx
21558        leal	(%r8,%r12,1), %r8d
21559        xorl	%r13d, %ebx
21560        andl	%ebx, %eax
21561        addl	%edx, %r12d
21562        xorl	%r14d, %eax
21563        rorxl	$6, %r8d, %edx
21564        rorxl	$11, %r8d, %ecx
21565        leal	(%r12,%rax,1), %r12d
21566        addl	176(%rsp), %r11d
21567        movl	%r9d, %eax
21568        xorl	%edx, %ecx
21569        xorl	%r10d, %eax
21570        rorxl	$25, %r8d, %edx
21571        xorl	%ecx, %edx
21572        andl	%r8d, %eax
21573        addl	%edx, %r11d
21574        rorxl	$2, %r12d, %edx
21575        rorxl	$13, %r12d, %ecx
21576        xorl	%r10d, %eax
21577        xorl	%edx, %ecx
21578        rorxl	$22, %r12d, %edx
21579        addl	%eax, %r11d
21580        xorl	%ecx, %edx
21581        movl	%r13d, %eax
21582        addl	%r11d, %r15d
21583        xorl	%r12d, %eax
21584        andl	%eax, %ebx
21585        addl	%edx, %r11d
21586        xorl	%r13d, %ebx
21587        rorxl	$6, %r15d, %edx
21588        rorxl	$11, %r15d, %ecx
21589        addl	%ebx, %r11d
21590        addl	180(%rsp), %r10d
21591        movl	%r8d, %ebx
21592        xorl	%edx, %ecx
21593        xorl	%r9d, %ebx
21594        rorxl	$25, %r15d, %edx
21595        xorl	%ecx, %edx
21596        andl	%r15d, %ebx
21597        addl	%edx, %r10d
21598        rorxl	$2, %r11d, %edx
21599        rorxl	$13, %r11d, %ecx
21600        xorl	%r9d, %ebx
21601        xorl	%edx, %ecx
21602        rorxl	$22, %r11d, %edx
21603        addl	%ebx, %r10d
21604        xorl	%ecx, %edx
21605        movl	%r12d, %ebx
21606        leal	(%r14,%r10,1), %r14d
21607        xorl	%r11d, %ebx
21608        andl	%ebx, %eax
21609        addl	%edx, %r10d
21610        xorl	%r12d, %eax
21611        rorxl	$6, %r14d, %edx
21612        rorxl	$11, %r14d, %ecx
21613        leal	(%r10,%rax,1), %r10d
21614        addl	184(%rsp), %r9d
21615        movl	%r15d, %eax
21616        xorl	%edx, %ecx
21617        xorl	%r8d, %eax
21618        rorxl	$25, %r14d, %edx
21619        xorl	%ecx, %edx
21620        andl	%r14d, %eax
21621        addl	%edx, %r9d
21622        rorxl	$2, %r10d, %edx
21623        rorxl	$13, %r10d, %ecx
21624        xorl	%r8d, %eax
21625        xorl	%edx, %ecx
21626        rorxl	$22, %r10d, %edx
21627        addl	%eax, %r9d
21628        xorl	%ecx, %edx
21629        movl	%r11d, %eax
21630        addl	%r9d, %r13d
21631        xorl	%r10d, %eax
21632        andl	%eax, %ebx
21633        addl	%edx, %r9d
21634        xorl	%r11d, %ebx
21635        rorxl	$6, %r13d, %edx
21636        rorxl	$11, %r13d, %ecx
21637        addl	%ebx, %r9d
21638        addl	188(%rsp), %r8d
21639        movl	%r14d, %ebx
21640        xorl	%edx, %ecx
21641        xorl	%r15d, %ebx
21642        rorxl	$25, %r13d, %edx
21643        xorl	%ecx, %edx
21644        andl	%r13d, %ebx
21645        addl	%edx, %r8d
21646        rorxl	$2, %r9d, %edx
21647        rorxl	$13, %r9d, %ecx
21648        xorl	%r15d, %ebx
21649        xorl	%edx, %ecx
21650        rorxl	$22, %r9d, %edx
21651        addl	%ebx, %r8d
21652        xorl	%ecx, %edx
21653        movl	%r10d, %ebx
21654        leal	(%r12,%r8,1), %r12d
21655        xorl	%r9d, %ebx
21656        andl	%ebx, %eax
21657        addl	%edx, %r8d
21658        xorl	%r10d, %eax
21659        rorxl	$6, %r12d, %edx
21660        rorxl	$11, %r12d, %ecx
21661        leal	(%r8,%rax,1), %r8d
21662        addl	208(%rsp), %r15d
21663        movl	%r13d, %eax
21664        xorl	%edx, %ecx
21665        xorl	%r14d, %eax
21666        rorxl	$25, %r12d, %edx
21667        xorl	%ecx, %edx
21668        andl	%r12d, %eax
21669        addl	%edx, %r15d
21670        rorxl	$2, %r8d, %edx
21671        rorxl	$13, %r8d, %ecx
21672        xorl	%r14d, %eax
21673        xorl	%edx, %ecx
21674        rorxl	$22, %r8d, %edx
21675        addl	%eax, %r15d
21676        xorl	%ecx, %edx
21677        movl	%r9d, %eax
21678        addl	%r15d, %r11d
21679        xorl	%r8d, %eax
21680        andl	%eax, %ebx
21681        addl	%edx, %r15d
21682        xorl	%r9d, %ebx
21683        rorxl	$6, %r11d, %edx
21684        rorxl	$11, %r11d, %ecx
21685        addl	%ebx, %r15d
21686        addl	212(%rsp), %r14d
21687        movl	%r12d, %ebx
21688        xorl	%edx, %ecx
21689        xorl	%r13d, %ebx
21690        rorxl	$25, %r11d, %edx
21691        xorl	%ecx, %edx
21692        andl	%r11d, %ebx
21693        addl	%edx, %r14d
21694        rorxl	$2, %r15d, %edx
21695        rorxl	$13, %r15d, %ecx
21696        xorl	%r13d, %ebx
21697        xorl	%edx, %ecx
21698        rorxl	$22, %r15d, %edx
21699        addl	%ebx, %r14d
21700        xorl	%ecx, %edx
21701        movl	%r8d, %ebx
21702        leal	(%r10,%r14,1), %r10d
21703        xorl	%r15d, %ebx
21704        andl	%ebx, %eax
21705        addl	%edx, %r14d
21706        xorl	%r8d, %eax
21707        rorxl	$6, %r10d, %edx
21708        rorxl	$11, %r10d, %ecx
21709        leal	(%r14,%rax,1), %r14d
21710        addl	216(%rsp), %r13d
21711        movl	%r11d, %eax
21712        xorl	%edx, %ecx
21713        xorl	%r12d, %eax
21714        rorxl	$25, %r10d, %edx
21715        xorl	%ecx, %edx
21716        andl	%r10d, %eax
21717        addl	%edx, %r13d
21718        rorxl	$2, %r14d, %edx
21719        rorxl	$13, %r14d, %ecx
21720        xorl	%r12d, %eax
21721        xorl	%edx, %ecx
21722        rorxl	$22, %r14d, %edx
21723        addl	%eax, %r13d
21724        xorl	%ecx, %edx
21725        movl	%r15d, %eax
21726        addl	%r13d, %r9d
21727        xorl	%r14d, %eax
21728        andl	%eax, %ebx
21729        addl	%edx, %r13d
21730        xorl	%r15d, %ebx
21731        rorxl	$6, %r9d, %edx
21732        rorxl	$11, %r9d, %ecx
21733        addl	%ebx, %r13d
21734        addl	220(%rsp), %r12d
21735        movl	%r10d, %ebx
21736        xorl	%edx, %ecx
21737        xorl	%r11d, %ebx
21738        rorxl	$25, %r9d, %edx
21739        xorl	%ecx, %edx
21740        andl	%r9d, %ebx
21741        addl	%edx, %r12d
21742        rorxl	$2, %r13d, %edx
21743        rorxl	$13, %r13d, %ecx
21744        xorl	%r11d, %ebx
21745        xorl	%edx, %ecx
21746        rorxl	$22, %r13d, %edx
21747        addl	%ebx, %r12d
21748        xorl	%ecx, %edx
21749        movl	%r14d, %ebx
21750        leal	(%r8,%r12,1), %r8d
21751        xorl	%r13d, %ebx
21752        andl	%ebx, %eax
21753        addl	%edx, %r12d
21754        xorl	%r14d, %eax
21755        rorxl	$6, %r8d, %edx
21756        rorxl	$11, %r8d, %ecx
21757        leal	(%r12,%rax,1), %r12d
21758        addl	240(%rsp), %r11d
21759        movl	%r9d, %eax
21760        xorl	%edx, %ecx
21761        xorl	%r10d, %eax
21762        rorxl	$25, %r8d, %edx
21763        xorl	%ecx, %edx
21764        andl	%r8d, %eax
21765        addl	%edx, %r11d
21766        rorxl	$2, %r12d, %edx
21767        rorxl	$13, %r12d, %ecx
21768        xorl	%r10d, %eax
21769        xorl	%edx, %ecx
21770        rorxl	$22, %r12d, %edx
21771        addl	%eax, %r11d
21772        xorl	%ecx, %edx
21773        movl	%r13d, %eax
21774        addl	%r11d, %r15d
21775        xorl	%r12d, %eax
21776        andl	%eax, %ebx
21777        addl	%edx, %r11d
21778        xorl	%r13d, %ebx
21779        rorxl	$6, %r15d, %edx
21780        rorxl	$11, %r15d, %ecx
21781        addl	%ebx, %r11d
21782        addl	244(%rsp), %r10d
21783        movl	%r8d, %ebx
21784        xorl	%edx, %ecx
21785        xorl	%r9d, %ebx
21786        rorxl	$25, %r15d, %edx
21787        xorl	%ecx, %edx
21788        andl	%r15d, %ebx
21789        addl	%edx, %r10d
21790        rorxl	$2, %r11d, %edx
21791        rorxl	$13, %r11d, %ecx
21792        xorl	%r9d, %ebx
21793        xorl	%edx, %ecx
21794        rorxl	$22, %r11d, %edx
21795        addl	%ebx, %r10d
21796        xorl	%ecx, %edx
21797        movl	%r12d, %ebx
21798        leal	(%r14,%r10,1), %r14d
21799        xorl	%r11d, %ebx
21800        andl	%ebx, %eax
21801        addl	%edx, %r10d
21802        xorl	%r12d, %eax
21803        rorxl	$6, %r14d, %edx
21804        rorxl	$11, %r14d, %ecx
21805        leal	(%r10,%rax,1), %r10d
21806        addl	248(%rsp), %r9d
21807        movl	%r15d, %eax
21808        xorl	%edx, %ecx
21809        xorl	%r8d, %eax
21810        rorxl	$25, %r14d, %edx
21811        xorl	%ecx, %edx
21812        andl	%r14d, %eax
21813        addl	%edx, %r9d
21814        rorxl	$2, %r10d, %edx
21815        rorxl	$13, %r10d, %ecx
21816        xorl	%r8d, %eax
21817        xorl	%edx, %ecx
21818        rorxl	$22, %r10d, %edx
21819        addl	%eax, %r9d
21820        xorl	%ecx, %edx
21821        movl	%r11d, %eax
21822        addl	%r9d, %r13d
21823        xorl	%r10d, %eax
21824        andl	%eax, %ebx
21825        addl	%edx, %r9d
21826        xorl	%r11d, %ebx
21827        rorxl	$6, %r13d, %edx
21828        rorxl	$11, %r13d, %ecx
21829        addl	%ebx, %r9d
21830        addl	252(%rsp), %r8d
21831        movl	%r14d, %ebx
21832        xorl	%edx, %ecx
21833        xorl	%r15d, %ebx
21834        rorxl	$25, %r13d, %edx
21835        xorl	%ecx, %edx
21836        andl	%r13d, %ebx
21837        addl	%edx, %r8d
21838        rorxl	$2, %r9d, %edx
21839        rorxl	$13, %r9d, %ecx
21840        xorl	%r15d, %ebx
21841        xorl	%edx, %ecx
21842        rorxl	$22, %r9d, %edx
21843        addl	%ebx, %r8d
21844        xorl	%ecx, %edx
21845        movl	%r10d, %ebx
21846        leal	(%r12,%r8,1), %r12d
21847        xorl	%r9d, %ebx
21848        andl	%ebx, %eax
21849        addl	%edx, %r8d
21850        xorl	%r10d, %eax
21851        rorxl	$6, %r12d, %edx
21852        rorxl	$11, %r12d, %ecx
21853        leal	(%r8,%rax,1), %r8d
21854        addl	272(%rsp), %r15d
21855        movl	%r13d, %eax
21856        xorl	%edx, %ecx
21857        xorl	%r14d, %eax
21858        rorxl	$25, %r12d, %edx
21859        xorl	%ecx, %edx
21860        andl	%r12d, %eax
21861        addl	%edx, %r15d
21862        rorxl	$2, %r8d, %edx
21863        rorxl	$13, %r8d, %ecx
21864        xorl	%r14d, %eax
21865        xorl	%edx, %ecx
21866        rorxl	$22, %r8d, %edx
21867        addl	%eax, %r15d
21868        xorl	%ecx, %edx
21869        movl	%r9d, %eax
21870        addl	%r15d, %r11d
21871        xorl	%r8d, %eax
21872        andl	%eax, %ebx
21873        addl	%edx, %r15d
21874        xorl	%r9d, %ebx
21875        rorxl	$6, %r11d, %edx
21876        rorxl	$11, %r11d, %ecx
21877        addl	%ebx, %r15d
21878        addl	276(%rsp), %r14d
21879        movl	%r12d, %ebx
21880        xorl	%edx, %ecx
21881        xorl	%r13d, %ebx
21882        rorxl	$25, %r11d, %edx
21883        xorl	%ecx, %edx
21884        andl	%r11d, %ebx
21885        addl	%edx, %r14d
21886        rorxl	$2, %r15d, %edx
21887        rorxl	$13, %r15d, %ecx
21888        xorl	%r13d, %ebx
21889        xorl	%edx, %ecx
21890        rorxl	$22, %r15d, %edx
21891        addl	%ebx, %r14d
21892        xorl	%ecx, %edx
21893        movl	%r8d, %ebx
21894        leal	(%r10,%r14,1), %r10d
21895        xorl	%r15d, %ebx
21896        andl	%ebx, %eax
21897        addl	%edx, %r14d
21898        xorl	%r8d, %eax
21899        rorxl	$6, %r10d, %edx
21900        rorxl	$11, %r10d, %ecx
21901        leal	(%r14,%rax,1), %r14d
21902        addl	280(%rsp), %r13d
21903        movl	%r11d, %eax
21904        xorl	%edx, %ecx
21905        xorl	%r12d, %eax
21906        rorxl	$25, %r10d, %edx
21907        xorl	%ecx, %edx
21908        andl	%r10d, %eax
21909        addl	%edx, %r13d
21910        rorxl	$2, %r14d, %edx
21911        rorxl	$13, %r14d, %ecx
21912        xorl	%r12d, %eax
21913        xorl	%edx, %ecx
21914        rorxl	$22, %r14d, %edx
21915        addl	%eax, %r13d
21916        xorl	%ecx, %edx
21917        movl	%r15d, %eax
21918        addl	%r13d, %r9d
21919        xorl	%r14d, %eax
21920        andl	%eax, %ebx
21921        addl	%edx, %r13d
21922        xorl	%r15d, %ebx
21923        rorxl	$6, %r9d, %edx
21924        rorxl	$11, %r9d, %ecx
21925        addl	%ebx, %r13d
21926        addl	284(%rsp), %r12d
21927        movl	%r10d, %ebx
21928        xorl	%edx, %ecx
21929        xorl	%r11d, %ebx
21930        rorxl	$25, %r9d, %edx
21931        xorl	%ecx, %edx
21932        andl	%r9d, %ebx
21933        addl	%edx, %r12d
21934        rorxl	$2, %r13d, %edx
21935        rorxl	$13, %r13d, %ecx
21936        xorl	%r11d, %ebx
21937        xorl	%edx, %ecx
21938        rorxl	$22, %r13d, %edx
21939        addl	%ebx, %r12d
21940        xorl	%ecx, %edx
21941        movl	%r14d, %ebx
21942        leal	(%r8,%r12,1), %r8d
21943        xorl	%r13d, %ebx
21944        andl	%ebx, %eax
21945        addl	%edx, %r12d
21946        xorl	%r14d, %eax
21947        rorxl	$6, %r8d, %edx
21948        rorxl	$11, %r8d, %ecx
21949        leal	(%r12,%rax,1), %r12d
21950        addl	304(%rsp), %r11d
21951        movl	%r9d, %eax
21952        xorl	%edx, %ecx
21953        xorl	%r10d, %eax
21954        rorxl	$25, %r8d, %edx
21955        xorl	%ecx, %edx
21956        andl	%r8d, %eax
21957        addl	%edx, %r11d
21958        rorxl	$2, %r12d, %edx
21959        rorxl	$13, %r12d, %ecx
21960        xorl	%r10d, %eax
21961        xorl	%edx, %ecx
21962        rorxl	$22, %r12d, %edx
21963        addl	%eax, %r11d
21964        xorl	%ecx, %edx
21965        movl	%r13d, %eax
21966        addl	%r11d, %r15d
21967        xorl	%r12d, %eax
21968        andl	%eax, %ebx
21969        addl	%edx, %r11d
21970        xorl	%r13d, %ebx
21971        rorxl	$6, %r15d, %edx
21972        rorxl	$11, %r15d, %ecx
21973        addl	%ebx, %r11d
21974        addl	308(%rsp), %r10d
21975        movl	%r8d, %ebx
21976        xorl	%edx, %ecx
21977        xorl	%r9d, %ebx
21978        rorxl	$25, %r15d, %edx
21979        xorl	%ecx, %edx
21980        andl	%r15d, %ebx
21981        addl	%edx, %r10d
21982        rorxl	$2, %r11d, %edx
21983        rorxl	$13, %r11d, %ecx
21984        xorl	%r9d, %ebx
21985        xorl	%edx, %ecx
21986        rorxl	$22, %r11d, %edx
21987        addl	%ebx, %r10d
21988        xorl	%ecx, %edx
21989        movl	%r12d, %ebx
21990        leal	(%r14,%r10,1), %r14d
21991        xorl	%r11d, %ebx
21992        andl	%ebx, %eax
21993        addl	%edx, %r10d
21994        xorl	%r12d, %eax
21995        rorxl	$6, %r14d, %edx
21996        rorxl	$11, %r14d, %ecx
21997        leal	(%r10,%rax,1), %r10d
21998        addl	312(%rsp), %r9d
21999        movl	%r15d, %eax
22000        xorl	%edx, %ecx
22001        xorl	%r8d, %eax
22002        rorxl	$25, %r14d, %edx
22003        xorl	%ecx, %edx
22004        andl	%r14d, %eax
22005        addl	%edx, %r9d
22006        rorxl	$2, %r10d, %edx
22007        rorxl	$13, %r10d, %ecx
22008        xorl	%r8d, %eax
22009        xorl	%edx, %ecx
22010        rorxl	$22, %r10d, %edx
22011        addl	%eax, %r9d
22012        xorl	%ecx, %edx
22013        movl	%r11d, %eax
22014        addl	%r9d, %r13d
22015        xorl	%r10d, %eax
22016        andl	%eax, %ebx
22017        addl	%edx, %r9d
22018        xorl	%r11d, %ebx
22019        rorxl	$6, %r13d, %edx
22020        rorxl	$11, %r13d, %ecx
22021        addl	%ebx, %r9d
22022        addl	316(%rsp), %r8d
22023        movl	%r14d, %ebx
22024        xorl	%edx, %ecx
22025        xorl	%r15d, %ebx
22026        rorxl	$25, %r13d, %edx
22027        xorl	%ecx, %edx
22028        andl	%r13d, %ebx
22029        addl	%edx, %r8d
22030        rorxl	$2, %r9d, %edx
22031        rorxl	$13, %r9d, %ecx
22032        xorl	%r15d, %ebx
22033        xorl	%edx, %ecx
22034        rorxl	$22, %r9d, %edx
22035        addl	%ebx, %r8d
22036        xorl	%ecx, %edx
22037        movl	%r10d, %ebx
22038        leal	(%r12,%r8,1), %r12d
22039        xorl	%r9d, %ebx
22040        andl	%ebx, %eax
22041        addl	%edx, %r8d
22042        xorl	%r10d, %eax
22043        rorxl	$6, %r12d, %edx
22044        rorxl	$11, %r12d, %ecx
22045        leal	(%r8,%rax,1), %r8d
22046        addl	336(%rsp), %r15d
22047        movl	%r13d, %eax
22048        xorl	%edx, %ecx
22049        xorl	%r14d, %eax
22050        rorxl	$25, %r12d, %edx
22051        xorl	%ecx, %edx
22052        andl	%r12d, %eax
22053        addl	%edx, %r15d
22054        rorxl	$2, %r8d, %edx
22055        rorxl	$13, %r8d, %ecx
22056        xorl	%r14d, %eax
22057        xorl	%edx, %ecx
22058        rorxl	$22, %r8d, %edx
22059        addl	%eax, %r15d
22060        xorl	%ecx, %edx
22061        movl	%r9d, %eax
22062        addl	%r15d, %r11d
22063        xorl	%r8d, %eax
22064        andl	%eax, %ebx
22065        addl	%edx, %r15d
22066        xorl	%r9d, %ebx
22067        rorxl	$6, %r11d, %edx
22068        rorxl	$11, %r11d, %ecx
22069        addl	%ebx, %r15d
22070        addl	340(%rsp), %r14d
22071        movl	%r12d, %ebx
22072        xorl	%edx, %ecx
22073        xorl	%r13d, %ebx
22074        rorxl	$25, %r11d, %edx
22075        xorl	%ecx, %edx
22076        andl	%r11d, %ebx
22077        addl	%edx, %r14d
22078        rorxl	$2, %r15d, %edx
22079        rorxl	$13, %r15d, %ecx
22080        xorl	%r13d, %ebx
22081        xorl	%edx, %ecx
22082        rorxl	$22, %r15d, %edx
22083        addl	%ebx, %r14d
22084        xorl	%ecx, %edx
22085        movl	%r8d, %ebx
22086        leal	(%r10,%r14,1), %r10d
22087        xorl	%r15d, %ebx
22088        andl	%ebx, %eax
22089        addl	%edx, %r14d
22090        xorl	%r8d, %eax
22091        rorxl	$6, %r10d, %edx
22092        rorxl	$11, %r10d, %ecx
22093        leal	(%r14,%rax,1), %r14d
22094        addl	344(%rsp), %r13d
22095        movl	%r11d, %eax
22096        xorl	%edx, %ecx
22097        xorl	%r12d, %eax
22098        rorxl	$25, %r10d, %edx
22099        xorl	%ecx, %edx
22100        andl	%r10d, %eax
22101        addl	%edx, %r13d
22102        rorxl	$2, %r14d, %edx
22103        rorxl	$13, %r14d, %ecx
22104        xorl	%r12d, %eax
22105        xorl	%edx, %ecx
22106        rorxl	$22, %r14d, %edx
22107        addl	%eax, %r13d
22108        xorl	%ecx, %edx
22109        movl	%r15d, %eax
22110        addl	%r13d, %r9d
22111        xorl	%r14d, %eax
22112        andl	%eax, %ebx
22113        addl	%edx, %r13d
22114        xorl	%r15d, %ebx
22115        rorxl	$6, %r9d, %edx
22116        rorxl	$11, %r9d, %ecx
22117        addl	%ebx, %r13d
22118        addl	348(%rsp), %r12d
22119        movl	%r10d, %ebx
22120        xorl	%edx, %ecx
22121        xorl	%r11d, %ebx
22122        rorxl	$25, %r9d, %edx
22123        xorl	%ecx, %edx
22124        andl	%r9d, %ebx
22125        addl	%edx, %r12d
22126        rorxl	$2, %r13d, %edx
22127        rorxl	$13, %r13d, %ecx
22128        xorl	%r11d, %ebx
22129        xorl	%edx, %ecx
22130        rorxl	$22, %r13d, %edx
22131        addl	%ebx, %r12d
22132        xorl	%ecx, %edx
22133        movl	%r14d, %ebx
22134        leal	(%r8,%r12,1), %r8d
22135        xorl	%r13d, %ebx
22136        andl	%ebx, %eax
22137        addl	%edx, %r12d
22138        xorl	%r14d, %eax
22139        rorxl	$6, %r8d, %edx
22140        rorxl	$11, %r8d, %ecx
22141        leal	(%r12,%rax,1), %r12d
22142        addl	368(%rsp), %r11d
22143        movl	%r9d, %eax
22144        xorl	%edx, %ecx
22145        xorl	%r10d, %eax
22146        rorxl	$25, %r8d, %edx
22147        xorl	%ecx, %edx
22148        andl	%r8d, %eax
22149        addl	%edx, %r11d
22150        rorxl	$2, %r12d, %edx
22151        rorxl	$13, %r12d, %ecx
22152        xorl	%r10d, %eax
22153        xorl	%edx, %ecx
22154        rorxl	$22, %r12d, %edx
22155        addl	%eax, %r11d
22156        xorl	%ecx, %edx
22157        movl	%r13d, %eax
22158        addl	%r11d, %r15d
22159        xorl	%r12d, %eax
22160        andl	%eax, %ebx
22161        addl	%edx, %r11d
22162        xorl	%r13d, %ebx
22163        rorxl	$6, %r15d, %edx
22164        rorxl	$11, %r15d, %ecx
22165        addl	%ebx, %r11d
22166        addl	372(%rsp), %r10d
22167        movl	%r8d, %ebx
22168        xorl	%edx, %ecx
22169        xorl	%r9d, %ebx
22170        rorxl	$25, %r15d, %edx
22171        xorl	%ecx, %edx
22172        andl	%r15d, %ebx
22173        addl	%edx, %r10d
22174        rorxl	$2, %r11d, %edx
22175        rorxl	$13, %r11d, %ecx
22176        xorl	%r9d, %ebx
22177        xorl	%edx, %ecx
22178        rorxl	$22, %r11d, %edx
22179        addl	%ebx, %r10d
22180        xorl	%ecx, %edx
22181        movl	%r12d, %ebx
22182        leal	(%r14,%r10,1), %r14d
22183        xorl	%r11d, %ebx
22184        andl	%ebx, %eax
22185        addl	%edx, %r10d
22186        xorl	%r12d, %eax
22187        rorxl	$6, %r14d, %edx
22188        rorxl	$11, %r14d, %ecx
22189        leal	(%r10,%rax,1), %r10d
22190        addl	376(%rsp), %r9d
22191        movl	%r15d, %eax
22192        xorl	%edx, %ecx
22193        xorl	%r8d, %eax
22194        rorxl	$25, %r14d, %edx
22195        xorl	%ecx, %edx
22196        andl	%r14d, %eax
22197        addl	%edx, %r9d
22198        rorxl	$2, %r10d, %edx
22199        rorxl	$13, %r10d, %ecx
22200        xorl	%r8d, %eax
22201        xorl	%edx, %ecx
22202        rorxl	$22, %r10d, %edx
22203        addl	%eax, %r9d
22204        xorl	%ecx, %edx
22205        movl	%r11d, %eax
22206        addl	%r9d, %r13d
22207        xorl	%r10d, %eax
22208        andl	%eax, %ebx
22209        addl	%edx, %r9d
22210        xorl	%r11d, %ebx
22211        rorxl	$6, %r13d, %edx
22212        rorxl	$11, %r13d, %ecx
22213        addl	%ebx, %r9d
22214        addl	380(%rsp), %r8d
22215        movl	%r14d, %ebx
22216        xorl	%edx, %ecx
22217        xorl	%r15d, %ebx
22218        rorxl	$25, %r13d, %edx
22219        xorl	%ecx, %edx
22220        andl	%r13d, %ebx
22221        addl	%edx, %r8d
22222        rorxl	$2, %r9d, %edx
22223        rorxl	$13, %r9d, %ecx
22224        xorl	%r15d, %ebx
22225        xorl	%edx, %ecx
22226        rorxl	$22, %r9d, %edx
22227        addl	%ebx, %r8d
22228        xorl	%ecx, %edx
22229        movl	%r10d, %ebx
22230        leal	(%r12,%r8,1), %r12d
22231        xorl	%r9d, %ebx
22232        andl	%ebx, %eax
22233        addl	%edx, %r8d
22234        xorl	%r10d, %eax
22235        rorxl	$6, %r12d, %edx
22236        rorxl	$11, %r12d, %ecx
22237        leal	(%r8,%rax,1), %r8d
22238        addl	400(%rsp), %r15d
22239        movl	%r13d, %eax
22240        xorl	%edx, %ecx
22241        xorl	%r14d, %eax
22242        rorxl	$25, %r12d, %edx
22243        xorl	%ecx, %edx
22244        andl	%r12d, %eax
22245        addl	%edx, %r15d
22246        rorxl	$2, %r8d, %edx
22247        rorxl	$13, %r8d, %ecx
22248        xorl	%r14d, %eax
22249        xorl	%edx, %ecx
22250        rorxl	$22, %r8d, %edx
22251        addl	%eax, %r15d
22252        xorl	%ecx, %edx
22253        movl	%r9d, %eax
22254        addl	%r15d, %r11d
22255        xorl	%r8d, %eax
22256        andl	%eax, %ebx
22257        addl	%edx, %r15d
22258        xorl	%r9d, %ebx
22259        rorxl	$6, %r11d, %edx
22260        rorxl	$11, %r11d, %ecx
22261        addl	%ebx, %r15d
22262        addl	404(%rsp), %r14d
22263        movl	%r12d, %ebx
22264        xorl	%edx, %ecx
22265        xorl	%r13d, %ebx
22266        rorxl	$25, %r11d, %edx
22267        xorl	%ecx, %edx
22268        andl	%r11d, %ebx
22269        addl	%edx, %r14d
22270        rorxl	$2, %r15d, %edx
22271        rorxl	$13, %r15d, %ecx
22272        xorl	%r13d, %ebx
22273        xorl	%edx, %ecx
22274        rorxl	$22, %r15d, %edx
22275        addl	%ebx, %r14d
22276        xorl	%ecx, %edx
22277        movl	%r8d, %ebx
22278        leal	(%r10,%r14,1), %r10d
22279        xorl	%r15d, %ebx
22280        andl	%ebx, %eax
22281        addl	%edx, %r14d
22282        xorl	%r8d, %eax
22283        rorxl	$6, %r10d, %edx
22284        rorxl	$11, %r10d, %ecx
22285        leal	(%r14,%rax,1), %r14d
22286        addl	408(%rsp), %r13d
22287        movl	%r11d, %eax
22288        xorl	%edx, %ecx
22289        xorl	%r12d, %eax
22290        rorxl	$25, %r10d, %edx
22291        xorl	%ecx, %edx
22292        andl	%r10d, %eax
22293        addl	%edx, %r13d
22294        rorxl	$2, %r14d, %edx
22295        rorxl	$13, %r14d, %ecx
22296        xorl	%r12d, %eax
22297        xorl	%edx, %ecx
22298        rorxl	$22, %r14d, %edx
22299        addl	%eax, %r13d
22300        xorl	%ecx, %edx
22301        movl	%r15d, %eax
22302        addl	%r13d, %r9d
22303        xorl	%r14d, %eax
22304        andl	%eax, %ebx
22305        addl	%edx, %r13d
22306        xorl	%r15d, %ebx
22307        rorxl	$6, %r9d, %edx
22308        rorxl	$11, %r9d, %ecx
22309        addl	%ebx, %r13d
22310        addl	412(%rsp), %r12d
22311        movl	%r10d, %ebx
22312        xorl	%edx, %ecx
22313        xorl	%r11d, %ebx
22314        rorxl	$25, %r9d, %edx
22315        xorl	%ecx, %edx
22316        andl	%r9d, %ebx
22317        addl	%edx, %r12d
22318        rorxl	$2, %r13d, %edx
22319        rorxl	$13, %r13d, %ecx
22320        xorl	%r11d, %ebx
22321        xorl	%edx, %ecx
22322        rorxl	$22, %r13d, %edx
22323        addl	%ebx, %r12d
22324        xorl	%ecx, %edx
22325        movl	%r14d, %ebx
22326        leal	(%r8,%r12,1), %r8d
22327        xorl	%r13d, %ebx
22328        andl	%ebx, %eax
22329        addl	%edx, %r12d
22330        xorl	%r14d, %eax
22331        rorxl	$6, %r8d, %edx
22332        rorxl	$11, %r8d, %ecx
22333        leal	(%r12,%rax,1), %r12d
22334        addl	432(%rsp), %r11d
22335        movl	%r9d, %eax
22336        xorl	%edx, %ecx
22337        xorl	%r10d, %eax
22338        rorxl	$25, %r8d, %edx
22339        xorl	%ecx, %edx
22340        andl	%r8d, %eax
22341        addl	%edx, %r11d
22342        rorxl	$2, %r12d, %edx
22343        rorxl	$13, %r12d, %ecx
22344        xorl	%r10d, %eax
22345        xorl	%edx, %ecx
22346        rorxl	$22, %r12d, %edx
22347        addl	%eax, %r11d
22348        xorl	%ecx, %edx
22349        movl	%r13d, %eax
22350        addl	%r11d, %r15d
22351        xorl	%r12d, %eax
22352        andl	%eax, %ebx
22353        addl	%edx, %r11d
22354        xorl	%r13d, %ebx
22355        rorxl	$6, %r15d, %edx
22356        rorxl	$11, %r15d, %ecx
22357        addl	%ebx, %r11d
22358        addl	436(%rsp), %r10d
22359        movl	%r8d, %ebx
22360        xorl	%edx, %ecx
22361        xorl	%r9d, %ebx
22362        rorxl	$25, %r15d, %edx
22363        xorl	%ecx, %edx
22364        andl	%r15d, %ebx
22365        addl	%edx, %r10d
22366        rorxl	$2, %r11d, %edx
22367        rorxl	$13, %r11d, %ecx
22368        xorl	%r9d, %ebx
22369        xorl	%edx, %ecx
22370        rorxl	$22, %r11d, %edx
22371        addl	%ebx, %r10d
22372        xorl	%ecx, %edx
22373        movl	%r12d, %ebx
22374        leal	(%r14,%r10,1), %r14d
22375        xorl	%r11d, %ebx
22376        andl	%ebx, %eax
22377        addl	%edx, %r10d
22378        xorl	%r12d, %eax
22379        rorxl	$6, %r14d, %edx
22380        rorxl	$11, %r14d, %ecx
22381        leal	(%r10,%rax,1), %r10d
22382        addl	440(%rsp), %r9d
22383        movl	%r15d, %eax
22384        xorl	%edx, %ecx
22385        xorl	%r8d, %eax
22386        rorxl	$25, %r14d, %edx
22387        xorl	%ecx, %edx
22388        andl	%r14d, %eax
22389        addl	%edx, %r9d
22390        rorxl	$2, %r10d, %edx
22391        rorxl	$13, %r10d, %ecx
22392        xorl	%r8d, %eax
22393        xorl	%edx, %ecx
22394        rorxl	$22, %r10d, %edx
22395        addl	%eax, %r9d
22396        xorl	%ecx, %edx
22397        movl	%r11d, %eax
22398        addl	%r9d, %r13d
22399        xorl	%r10d, %eax
22400        andl	%eax, %ebx
22401        addl	%edx, %r9d
22402        xorl	%r11d, %ebx
22403        rorxl	$6, %r13d, %edx
22404        rorxl	$11, %r13d, %ecx
22405        addl	%ebx, %r9d
22406        addl	444(%rsp), %r8d
22407        movl	%r14d, %ebx
22408        xorl	%edx, %ecx
22409        xorl	%r15d, %ebx
22410        rorxl	$25, %r13d, %edx
22411        xorl	%ecx, %edx
22412        andl	%r13d, %ebx
22413        addl	%edx, %r8d
22414        rorxl	$2, %r9d, %edx
22415        rorxl	$13, %r9d, %ecx
22416        xorl	%r15d, %ebx
22417        xorl	%edx, %ecx
22418        rorxl	$22, %r9d, %edx
22419        addl	%ebx, %r8d
22420        xorl	%ecx, %edx
22421        movl	%r10d, %ebx
22422        leal	(%r12,%r8,1), %r12d
22423        xorl	%r9d, %ebx
22424        andl	%ebx, %eax
22425        addl	%edx, %r8d
22426        xorl	%r10d, %eax
22427        rorxl	$6, %r12d, %edx
22428        rorxl	$11, %r12d, %ecx
22429        leal	(%r8,%rax,1), %r8d
22430        addl	464(%rsp), %r15d
22431        movl	%r13d, %eax
22432        xorl	%edx, %ecx
22433        xorl	%r14d, %eax
22434        rorxl	$25, %r12d, %edx
22435        xorl	%ecx, %edx
22436        andl	%r12d, %eax
22437        addl	%edx, %r15d
22438        rorxl	$2, %r8d, %edx
22439        rorxl	$13, %r8d, %ecx
22440        xorl	%r14d, %eax
22441        xorl	%edx, %ecx
22442        rorxl	$22, %r8d, %edx
22443        addl	%eax, %r15d
22444        xorl	%ecx, %edx
22445        movl	%r9d, %eax
22446        addl	%r15d, %r11d
22447        xorl	%r8d, %eax
22448        andl	%eax, %ebx
22449        addl	%edx, %r15d
22450        xorl	%r9d, %ebx
22451        rorxl	$6, %r11d, %edx
22452        rorxl	$11, %r11d, %ecx
22453        addl	%ebx, %r15d
22454        addl	468(%rsp), %r14d
22455        movl	%r12d, %ebx
22456        xorl	%edx, %ecx
22457        xorl	%r13d, %ebx
22458        rorxl	$25, %r11d, %edx
22459        xorl	%ecx, %edx
22460        andl	%r11d, %ebx
22461        addl	%edx, %r14d
22462        rorxl	$2, %r15d, %edx
22463        rorxl	$13, %r15d, %ecx
22464        xorl	%r13d, %ebx
22465        xorl	%edx, %ecx
22466        rorxl	$22, %r15d, %edx
22467        addl	%ebx, %r14d
22468        xorl	%ecx, %edx
22469        movl	%r8d, %ebx
22470        leal	(%r10,%r14,1), %r10d
22471        xorl	%r15d, %ebx
22472        andl	%ebx, %eax
22473        addl	%edx, %r14d
22474        xorl	%r8d, %eax
22475        rorxl	$6, %r10d, %edx
22476        rorxl	$11, %r10d, %ecx
22477        leal	(%r14,%rax,1), %r14d
22478        addl	472(%rsp), %r13d
22479        movl	%r11d, %eax
22480        xorl	%edx, %ecx
22481        xorl	%r12d, %eax
22482        rorxl	$25, %r10d, %edx
22483        xorl	%ecx, %edx
22484        andl	%r10d, %eax
22485        addl	%edx, %r13d
22486        rorxl	$2, %r14d, %edx
22487        rorxl	$13, %r14d, %ecx
22488        xorl	%r12d, %eax
22489        xorl	%edx, %ecx
22490        rorxl	$22, %r14d, %edx
22491        addl	%eax, %r13d
22492        xorl	%ecx, %edx
22493        movl	%r15d, %eax
22494        addl	%r13d, %r9d
22495        xorl	%r14d, %eax
22496        andl	%eax, %ebx
22497        addl	%edx, %r13d
22498        xorl	%r15d, %ebx
22499        rorxl	$6, %r9d, %edx
22500        rorxl	$11, %r9d, %ecx
22501        addl	%ebx, %r13d
22502        addl	476(%rsp), %r12d
22503        movl	%r10d, %ebx
22504        xorl	%edx, %ecx
22505        xorl	%r11d, %ebx
22506        rorxl	$25, %r9d, %edx
22507        xorl	%ecx, %edx
22508        andl	%r9d, %ebx
22509        addl	%edx, %r12d
22510        rorxl	$2, %r13d, %edx
22511        rorxl	$13, %r13d, %ecx
22512        xorl	%r11d, %ebx
22513        xorl	%edx, %ecx
22514        rorxl	$22, %r13d, %edx
22515        addl	%ebx, %r12d
22516        xorl	%ecx, %edx
22517        movl	%r14d, %ebx
22518        leal	(%r8,%r12,1), %r8d
22519        xorl	%r13d, %ebx
22520        andl	%ebx, %eax
22521        addl	%edx, %r12d
22522        xorl	%r14d, %eax
22523        rorxl	$6, %r8d, %edx
22524        rorxl	$11, %r8d, %ecx
22525        leal	(%r12,%rax,1), %r12d
22526        addl	496(%rsp), %r11d
22527        movl	%r9d, %eax
22528        xorl	%edx, %ecx
22529        xorl	%r10d, %eax
22530        rorxl	$25, %r8d, %edx
22531        xorl	%ecx, %edx
22532        andl	%r8d, %eax
22533        addl	%edx, %r11d
22534        rorxl	$2, %r12d, %edx
22535        rorxl	$13, %r12d, %ecx
22536        xorl	%r10d, %eax
22537        xorl	%edx, %ecx
22538        rorxl	$22, %r12d, %edx
22539        addl	%eax, %r11d
22540        xorl	%ecx, %edx
22541        movl	%r13d, %eax
22542        addl	%r11d, %r15d
22543        xorl	%r12d, %eax
22544        andl	%eax, %ebx
22545        addl	%edx, %r11d
22546        xorl	%r13d, %ebx
22547        rorxl	$6, %r15d, %edx
22548        rorxl	$11, %r15d, %ecx
22549        addl	%ebx, %r11d
22550        addl	500(%rsp), %r10d
22551        movl	%r8d, %ebx
22552        xorl	%edx, %ecx
22553        xorl	%r9d, %ebx
22554        rorxl	$25, %r15d, %edx
22555        xorl	%ecx, %edx
22556        andl	%r15d, %ebx
22557        addl	%edx, %r10d
22558        rorxl	$2, %r11d, %edx
22559        rorxl	$13, %r11d, %ecx
22560        xorl	%r9d, %ebx
22561        xorl	%edx, %ecx
22562        rorxl	$22, %r11d, %edx
22563        addl	%ebx, %r10d
22564        xorl	%ecx, %edx
22565        movl	%r12d, %ebx
22566        leal	(%r14,%r10,1), %r14d
22567        xorl	%r11d, %ebx
22568        andl	%ebx, %eax
22569        addl	%edx, %r10d
22570        xorl	%r12d, %eax
22571        rorxl	$6, %r14d, %edx
22572        rorxl	$11, %r14d, %ecx
22573        leal	(%r10,%rax,1), %r10d
22574        addl	504(%rsp), %r9d
22575        movl	%r15d, %eax
22576        xorl	%edx, %ecx
22577        xorl	%r8d, %eax
22578        rorxl	$25, %r14d, %edx
22579        xorl	%ecx, %edx
22580        andl	%r14d, %eax
22581        addl	%edx, %r9d
22582        rorxl	$2, %r10d, %edx
22583        rorxl	$13, %r10d, %ecx
22584        xorl	%r8d, %eax
22585        xorl	%edx, %ecx
22586        rorxl	$22, %r10d, %edx
22587        addl	%eax, %r9d
22588        xorl	%ecx, %edx
22589        movl	%r11d, %eax
22590        addl	%r9d, %r13d
22591        xorl	%r10d, %eax
22592        andl	%eax, %ebx
22593        addl	%edx, %r9d
22594        xorl	%r11d, %ebx
22595        rorxl	$6, %r13d, %edx
22596        rorxl	$11, %r13d, %ecx
22597        addl	%ebx, %r9d
22598        addl	508(%rsp), %r8d
22599        movl	%r14d, %ebx
22600        xorl	%edx, %ecx
22601        xorl	%r15d, %ebx
22602        rorxl	$25, %r13d, %edx
22603        xorl	%ecx, %edx
22604        andl	%r13d, %ebx
22605        addl	%edx, %r8d
22606        rorxl	$2, %r9d, %edx
22607        rorxl	$13, %r9d, %ecx
22608        xorl	%r15d, %ebx
22609        xorl	%edx, %ecx
22610        rorxl	$22, %r9d, %edx
22611        addl	%ebx, %r8d
22612        xorl	%ecx, %edx
22613        movl	%r10d, %ebx
22614        leal	(%r12,%r8,1), %r12d
22615        xorl	%r9d, %ebx
22616        andl	%ebx, %eax
22617        addl	%edx, %r8d
22618        xorl	%r10d, %eax
22619        addl	%eax, %r8d
22620        addq	$0x80, %rbp
22621        addl	(%rdi), %r8d
22622        addl	4(%rdi), %r9d
22623        addl	8(%rdi), %r10d
22624        addl	12(%rdi), %r11d
22625        addl	16(%rdi), %r12d
22626        addl	20(%rdi), %r13d
22627        addl	24(%rdi), %r14d
22628        addl	28(%rdi), %r15d
22629        subl	$0x80, %esi
22630        movl	%r8d, (%rdi)
22631        movl	%r9d, 4(%rdi)
22632        movl	%r10d, 8(%rdi)
22633        movl	%r11d, 12(%rdi)
22634        movl	%r12d, 16(%rdi)
22635        movl	%r13d, 20(%rdi)
22636        movl	%r14d, 24(%rdi)
22637        movl	%r15d, 28(%rdi)
22638        jnz	L_sha256_len_avx2_rorx_start
22639L_sha256_len_avx2_rorx_done:
22640        xorq	%rax, %rax
22641        vzeroupper
22642        addq	$0x200, %rsp
22643        popq	%rbp
22644        popq	%r15
22645        popq	%r14
22646        popq	%r13
22647        popq	%r12
22648        popq	%rbx
22649        repz retq
22650#ifndef __APPLE__
22651.size	Transform_Sha256_AVX2_RORX_Len,.-Transform_Sha256_AVX2_RORX_Len
22652#endif /* __APPLE__ */
22653#endif /* HAVE_INTEL_AVX2 */
22654
22655#if defined(__linux__) && defined(__ELF__)
22656.section	.note.GNU-stack,"",%progbits
22657#endif
22658