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