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