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