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