sha512-x86_64.S revision 299966
1	# $FreeBSD: stable/10/secure/lib/libcrypto/amd64/sha512-x86_64.S 299966 2016-05-16 19:30:27Z jkim $
2	# Do not modify. This file is auto-generated from sha512-x86_64.pl.
3.text
4
5.globl	sha512_block_data_order
6.type	sha512_block_data_order,@function
7.align	16
8sha512_block_data_order:
9	pushq	%rbx
10	pushq	%rbp
11	pushq	%r12
12	pushq	%r13
13	pushq	%r14
14	pushq	%r15
15	movq	%rsp,%r11
16	shlq	$4,%rdx
17	subq	$128+32,%rsp
18	leaq	(%rsi,%rdx,8),%rdx
19	andq	$-64,%rsp
20	movq	%rdi,128+0(%rsp)
21	movq	%rsi,128+8(%rsp)
22	movq	%rdx,128+16(%rsp)
23	movq	%r11,128+24(%rsp)
24.Lprologue:
25
26	leaq	K512(%rip),%rbp
27
28	movq	0(%rdi),%rax
29	movq	8(%rdi),%rbx
30	movq	16(%rdi),%rcx
31	movq	24(%rdi),%rdx
32	movq	32(%rdi),%r8
33	movq	40(%rdi),%r9
34	movq	48(%rdi),%r10
35	movq	56(%rdi),%r11
36	jmp	.Lloop
37
38.align	16
39.Lloop:
40	xorq	%rdi,%rdi
41	movq	0(%rsi),%r12
42	movq	%r8,%r13
43	movq	%rax,%r14
44	bswapq	%r12
45	rorq	$23,%r13
46	movq	%r9,%r15
47	movq	%r12,0(%rsp)
48
49	rorq	$5,%r14
50	xorq	%r8,%r13
51	xorq	%r10,%r15
52
53	rorq	$4,%r13
54	addq	%r11,%r12
55	xorq	%rax,%r14
56
57	addq	(%rbp,%rdi,8),%r12
58	andq	%r8,%r15
59	movq	%rbx,%r11
60
61	rorq	$6,%r14
62	xorq	%r8,%r13
63	xorq	%r10,%r15
64
65	xorq	%rcx,%r11
66	xorq	%rax,%r14
67	addq	%r15,%r12
68	movq	%rbx,%r15
69
70	rorq	$14,%r13
71	andq	%rax,%r11
72	andq	%rcx,%r15
73
74	rorq	$28,%r14
75	addq	%r13,%r12
76	addq	%r15,%r11
77
78	addq	%r12,%rdx
79	addq	%r12,%r11
80	leaq	1(%rdi),%rdi
81	addq	%r14,%r11
82
83	movq	8(%rsi),%r12
84	movq	%rdx,%r13
85	movq	%r11,%r14
86	bswapq	%r12
87	rorq	$23,%r13
88	movq	%r8,%r15
89	movq	%r12,8(%rsp)
90
91	rorq	$5,%r14
92	xorq	%rdx,%r13
93	xorq	%r9,%r15
94
95	rorq	$4,%r13
96	addq	%r10,%r12
97	xorq	%r11,%r14
98
99	addq	(%rbp,%rdi,8),%r12
100	andq	%rdx,%r15
101	movq	%rax,%r10
102
103	rorq	$6,%r14
104	xorq	%rdx,%r13
105	xorq	%r9,%r15
106
107	xorq	%rbx,%r10
108	xorq	%r11,%r14
109	addq	%r15,%r12
110	movq	%rax,%r15
111
112	rorq	$14,%r13
113	andq	%r11,%r10
114	andq	%rbx,%r15
115
116	rorq	$28,%r14
117	addq	%r13,%r12
118	addq	%r15,%r10
119
120	addq	%r12,%rcx
121	addq	%r12,%r10
122	leaq	1(%rdi),%rdi
123	addq	%r14,%r10
124
125	movq	16(%rsi),%r12
126	movq	%rcx,%r13
127	movq	%r10,%r14
128	bswapq	%r12
129	rorq	$23,%r13
130	movq	%rdx,%r15
131	movq	%r12,16(%rsp)
132
133	rorq	$5,%r14
134	xorq	%rcx,%r13
135	xorq	%r8,%r15
136
137	rorq	$4,%r13
138	addq	%r9,%r12
139	xorq	%r10,%r14
140
141	addq	(%rbp,%rdi,8),%r12
142	andq	%rcx,%r15
143	movq	%r11,%r9
144
145	rorq	$6,%r14
146	xorq	%rcx,%r13
147	xorq	%r8,%r15
148
149	xorq	%rax,%r9
150	xorq	%r10,%r14
151	addq	%r15,%r12
152	movq	%r11,%r15
153
154	rorq	$14,%r13
155	andq	%r10,%r9
156	andq	%rax,%r15
157
158	rorq	$28,%r14
159	addq	%r13,%r12
160	addq	%r15,%r9
161
162	addq	%r12,%rbx
163	addq	%r12,%r9
164	leaq	1(%rdi),%rdi
165	addq	%r14,%r9
166
167	movq	24(%rsi),%r12
168	movq	%rbx,%r13
169	movq	%r9,%r14
170	bswapq	%r12
171	rorq	$23,%r13
172	movq	%rcx,%r15
173	movq	%r12,24(%rsp)
174
175	rorq	$5,%r14
176	xorq	%rbx,%r13
177	xorq	%rdx,%r15
178
179	rorq	$4,%r13
180	addq	%r8,%r12
181	xorq	%r9,%r14
182
183	addq	(%rbp,%rdi,8),%r12
184	andq	%rbx,%r15
185	movq	%r10,%r8
186
187	rorq	$6,%r14
188	xorq	%rbx,%r13
189	xorq	%rdx,%r15
190
191	xorq	%r11,%r8
192	xorq	%r9,%r14
193	addq	%r15,%r12
194	movq	%r10,%r15
195
196	rorq	$14,%r13
197	andq	%r9,%r8
198	andq	%r11,%r15
199
200	rorq	$28,%r14
201	addq	%r13,%r12
202	addq	%r15,%r8
203
204	addq	%r12,%rax
205	addq	%r12,%r8
206	leaq	1(%rdi),%rdi
207	addq	%r14,%r8
208
209	movq	32(%rsi),%r12
210	movq	%rax,%r13
211	movq	%r8,%r14
212	bswapq	%r12
213	rorq	$23,%r13
214	movq	%rbx,%r15
215	movq	%r12,32(%rsp)
216
217	rorq	$5,%r14
218	xorq	%rax,%r13
219	xorq	%rcx,%r15
220
221	rorq	$4,%r13
222	addq	%rdx,%r12
223	xorq	%r8,%r14
224
225	addq	(%rbp,%rdi,8),%r12
226	andq	%rax,%r15
227	movq	%r9,%rdx
228
229	rorq	$6,%r14
230	xorq	%rax,%r13
231	xorq	%rcx,%r15
232
233	xorq	%r10,%rdx
234	xorq	%r8,%r14
235	addq	%r15,%r12
236	movq	%r9,%r15
237
238	rorq	$14,%r13
239	andq	%r8,%rdx
240	andq	%r10,%r15
241
242	rorq	$28,%r14
243	addq	%r13,%r12
244	addq	%r15,%rdx
245
246	addq	%r12,%r11
247	addq	%r12,%rdx
248	leaq	1(%rdi),%rdi
249	addq	%r14,%rdx
250
251	movq	40(%rsi),%r12
252	movq	%r11,%r13
253	movq	%rdx,%r14
254	bswapq	%r12
255	rorq	$23,%r13
256	movq	%rax,%r15
257	movq	%r12,40(%rsp)
258
259	rorq	$5,%r14
260	xorq	%r11,%r13
261	xorq	%rbx,%r15
262
263	rorq	$4,%r13
264	addq	%rcx,%r12
265	xorq	%rdx,%r14
266
267	addq	(%rbp,%rdi,8),%r12
268	andq	%r11,%r15
269	movq	%r8,%rcx
270
271	rorq	$6,%r14
272	xorq	%r11,%r13
273	xorq	%rbx,%r15
274
275	xorq	%r9,%rcx
276	xorq	%rdx,%r14
277	addq	%r15,%r12
278	movq	%r8,%r15
279
280	rorq	$14,%r13
281	andq	%rdx,%rcx
282	andq	%r9,%r15
283
284	rorq	$28,%r14
285	addq	%r13,%r12
286	addq	%r15,%rcx
287
288	addq	%r12,%r10
289	addq	%r12,%rcx
290	leaq	1(%rdi),%rdi
291	addq	%r14,%rcx
292
293	movq	48(%rsi),%r12
294	movq	%r10,%r13
295	movq	%rcx,%r14
296	bswapq	%r12
297	rorq	$23,%r13
298	movq	%r11,%r15
299	movq	%r12,48(%rsp)
300
301	rorq	$5,%r14
302	xorq	%r10,%r13
303	xorq	%rax,%r15
304
305	rorq	$4,%r13
306	addq	%rbx,%r12
307	xorq	%rcx,%r14
308
309	addq	(%rbp,%rdi,8),%r12
310	andq	%r10,%r15
311	movq	%rdx,%rbx
312
313	rorq	$6,%r14
314	xorq	%r10,%r13
315	xorq	%rax,%r15
316
317	xorq	%r8,%rbx
318	xorq	%rcx,%r14
319	addq	%r15,%r12
320	movq	%rdx,%r15
321
322	rorq	$14,%r13
323	andq	%rcx,%rbx
324	andq	%r8,%r15
325
326	rorq	$28,%r14
327	addq	%r13,%r12
328	addq	%r15,%rbx
329
330	addq	%r12,%r9
331	addq	%r12,%rbx
332	leaq	1(%rdi),%rdi
333	addq	%r14,%rbx
334
335	movq	56(%rsi),%r12
336	movq	%r9,%r13
337	movq	%rbx,%r14
338	bswapq	%r12
339	rorq	$23,%r13
340	movq	%r10,%r15
341	movq	%r12,56(%rsp)
342
343	rorq	$5,%r14
344	xorq	%r9,%r13
345	xorq	%r11,%r15
346
347	rorq	$4,%r13
348	addq	%rax,%r12
349	xorq	%rbx,%r14
350
351	addq	(%rbp,%rdi,8),%r12
352	andq	%r9,%r15
353	movq	%rcx,%rax
354
355	rorq	$6,%r14
356	xorq	%r9,%r13
357	xorq	%r11,%r15
358
359	xorq	%rdx,%rax
360	xorq	%rbx,%r14
361	addq	%r15,%r12
362	movq	%rcx,%r15
363
364	rorq	$14,%r13
365	andq	%rbx,%rax
366	andq	%rdx,%r15
367
368	rorq	$28,%r14
369	addq	%r13,%r12
370	addq	%r15,%rax
371
372	addq	%r12,%r8
373	addq	%r12,%rax
374	leaq	1(%rdi),%rdi
375	addq	%r14,%rax
376
377	movq	64(%rsi),%r12
378	movq	%r8,%r13
379	movq	%rax,%r14
380	bswapq	%r12
381	rorq	$23,%r13
382	movq	%r9,%r15
383	movq	%r12,64(%rsp)
384
385	rorq	$5,%r14
386	xorq	%r8,%r13
387	xorq	%r10,%r15
388
389	rorq	$4,%r13
390	addq	%r11,%r12
391	xorq	%rax,%r14
392
393	addq	(%rbp,%rdi,8),%r12
394	andq	%r8,%r15
395	movq	%rbx,%r11
396
397	rorq	$6,%r14
398	xorq	%r8,%r13
399	xorq	%r10,%r15
400
401	xorq	%rcx,%r11
402	xorq	%rax,%r14
403	addq	%r15,%r12
404	movq	%rbx,%r15
405
406	rorq	$14,%r13
407	andq	%rax,%r11
408	andq	%rcx,%r15
409
410	rorq	$28,%r14
411	addq	%r13,%r12
412	addq	%r15,%r11
413
414	addq	%r12,%rdx
415	addq	%r12,%r11
416	leaq	1(%rdi),%rdi
417	addq	%r14,%r11
418
419	movq	72(%rsi),%r12
420	movq	%rdx,%r13
421	movq	%r11,%r14
422	bswapq	%r12
423	rorq	$23,%r13
424	movq	%r8,%r15
425	movq	%r12,72(%rsp)
426
427	rorq	$5,%r14
428	xorq	%rdx,%r13
429	xorq	%r9,%r15
430
431	rorq	$4,%r13
432	addq	%r10,%r12
433	xorq	%r11,%r14
434
435	addq	(%rbp,%rdi,8),%r12
436	andq	%rdx,%r15
437	movq	%rax,%r10
438
439	rorq	$6,%r14
440	xorq	%rdx,%r13
441	xorq	%r9,%r15
442
443	xorq	%rbx,%r10
444	xorq	%r11,%r14
445	addq	%r15,%r12
446	movq	%rax,%r15
447
448	rorq	$14,%r13
449	andq	%r11,%r10
450	andq	%rbx,%r15
451
452	rorq	$28,%r14
453	addq	%r13,%r12
454	addq	%r15,%r10
455
456	addq	%r12,%rcx
457	addq	%r12,%r10
458	leaq	1(%rdi),%rdi
459	addq	%r14,%r10
460
461	movq	80(%rsi),%r12
462	movq	%rcx,%r13
463	movq	%r10,%r14
464	bswapq	%r12
465	rorq	$23,%r13
466	movq	%rdx,%r15
467	movq	%r12,80(%rsp)
468
469	rorq	$5,%r14
470	xorq	%rcx,%r13
471	xorq	%r8,%r15
472
473	rorq	$4,%r13
474	addq	%r9,%r12
475	xorq	%r10,%r14
476
477	addq	(%rbp,%rdi,8),%r12
478	andq	%rcx,%r15
479	movq	%r11,%r9
480
481	rorq	$6,%r14
482	xorq	%rcx,%r13
483	xorq	%r8,%r15
484
485	xorq	%rax,%r9
486	xorq	%r10,%r14
487	addq	%r15,%r12
488	movq	%r11,%r15
489
490	rorq	$14,%r13
491	andq	%r10,%r9
492	andq	%rax,%r15
493
494	rorq	$28,%r14
495	addq	%r13,%r12
496	addq	%r15,%r9
497
498	addq	%r12,%rbx
499	addq	%r12,%r9
500	leaq	1(%rdi),%rdi
501	addq	%r14,%r9
502
503	movq	88(%rsi),%r12
504	movq	%rbx,%r13
505	movq	%r9,%r14
506	bswapq	%r12
507	rorq	$23,%r13
508	movq	%rcx,%r15
509	movq	%r12,88(%rsp)
510
511	rorq	$5,%r14
512	xorq	%rbx,%r13
513	xorq	%rdx,%r15
514
515	rorq	$4,%r13
516	addq	%r8,%r12
517	xorq	%r9,%r14
518
519	addq	(%rbp,%rdi,8),%r12
520	andq	%rbx,%r15
521	movq	%r10,%r8
522
523	rorq	$6,%r14
524	xorq	%rbx,%r13
525	xorq	%rdx,%r15
526
527	xorq	%r11,%r8
528	xorq	%r9,%r14
529	addq	%r15,%r12
530	movq	%r10,%r15
531
532	rorq	$14,%r13
533	andq	%r9,%r8
534	andq	%r11,%r15
535
536	rorq	$28,%r14
537	addq	%r13,%r12
538	addq	%r15,%r8
539
540	addq	%r12,%rax
541	addq	%r12,%r8
542	leaq	1(%rdi),%rdi
543	addq	%r14,%r8
544
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	movq	%r12,96(%rsp)
552
553	rorq	$5,%r14
554	xorq	%rax,%r13
555	xorq	%rcx,%r15
556
557	rorq	$4,%r13
558	addq	%rdx,%r12
559	xorq	%r8,%r14
560
561	addq	(%rbp,%rdi,8),%r12
562	andq	%rax,%r15
563	movq	%r9,%rdx
564
565	rorq	$6,%r14
566	xorq	%rax,%r13
567	xorq	%rcx,%r15
568
569	xorq	%r10,%rdx
570	xorq	%r8,%r14
571	addq	%r15,%r12
572	movq	%r9,%r15
573
574	rorq	$14,%r13
575	andq	%r8,%rdx
576	andq	%r10,%r15
577
578	rorq	$28,%r14
579	addq	%r13,%r12
580	addq	%r15,%rdx
581
582	addq	%r12,%r11
583	addq	%r12,%rdx
584	leaq	1(%rdi),%rdi
585	addq	%r14,%rdx
586
587	movq	104(%rsi),%r12
588	movq	%r11,%r13
589	movq	%rdx,%r14
590	bswapq	%r12
591	rorq	$23,%r13
592	movq	%rax,%r15
593	movq	%r12,104(%rsp)
594
595	rorq	$5,%r14
596	xorq	%r11,%r13
597	xorq	%rbx,%r15
598
599	rorq	$4,%r13
600	addq	%rcx,%r12
601	xorq	%rdx,%r14
602
603	addq	(%rbp,%rdi,8),%r12
604	andq	%r11,%r15
605	movq	%r8,%rcx
606
607	rorq	$6,%r14
608	xorq	%r11,%r13
609	xorq	%rbx,%r15
610
611	xorq	%r9,%rcx
612	xorq	%rdx,%r14
613	addq	%r15,%r12
614	movq	%r8,%r15
615
616	rorq	$14,%r13
617	andq	%rdx,%rcx
618	andq	%r9,%r15
619
620	rorq	$28,%r14
621	addq	%r13,%r12
622	addq	%r15,%rcx
623
624	addq	%r12,%r10
625	addq	%r12,%rcx
626	leaq	1(%rdi),%rdi
627	addq	%r14,%rcx
628
629	movq	112(%rsi),%r12
630	movq	%r10,%r13
631	movq	%rcx,%r14
632	bswapq	%r12
633	rorq	$23,%r13
634	movq	%r11,%r15
635	movq	%r12,112(%rsp)
636
637	rorq	$5,%r14
638	xorq	%r10,%r13
639	xorq	%rax,%r15
640
641	rorq	$4,%r13
642	addq	%rbx,%r12
643	xorq	%rcx,%r14
644
645	addq	(%rbp,%rdi,8),%r12
646	andq	%r10,%r15
647	movq	%rdx,%rbx
648
649	rorq	$6,%r14
650	xorq	%r10,%r13
651	xorq	%rax,%r15
652
653	xorq	%r8,%rbx
654	xorq	%rcx,%r14
655	addq	%r15,%r12
656	movq	%rdx,%r15
657
658	rorq	$14,%r13
659	andq	%rcx,%rbx
660	andq	%r8,%r15
661
662	rorq	$28,%r14
663	addq	%r13,%r12
664	addq	%r15,%rbx
665
666	addq	%r12,%r9
667	addq	%r12,%rbx
668	leaq	1(%rdi),%rdi
669	addq	%r14,%rbx
670
671	movq	120(%rsi),%r12
672	movq	%r9,%r13
673	movq	%rbx,%r14
674	bswapq	%r12
675	rorq	$23,%r13
676	movq	%r10,%r15
677	movq	%r12,120(%rsp)
678
679	rorq	$5,%r14
680	xorq	%r9,%r13
681	xorq	%r11,%r15
682
683	rorq	$4,%r13
684	addq	%rax,%r12
685	xorq	%rbx,%r14
686
687	addq	(%rbp,%rdi,8),%r12
688	andq	%r9,%r15
689	movq	%rcx,%rax
690
691	rorq	$6,%r14
692	xorq	%r9,%r13
693	xorq	%r11,%r15
694
695	xorq	%rdx,%rax
696	xorq	%rbx,%r14
697	addq	%r15,%r12
698	movq	%rcx,%r15
699
700	rorq	$14,%r13
701	andq	%rbx,%rax
702	andq	%rdx,%r15
703
704	rorq	$28,%r14
705	addq	%r13,%r12
706	addq	%r15,%rax
707
708	addq	%r12,%r8
709	addq	%r12,%rax
710	leaq	1(%rdi),%rdi
711	addq	%r14,%rax
712
713	jmp	.Lrounds_16_xx
714.align	16
715.Lrounds_16_xx:
716	movq	8(%rsp),%r13
717	movq	112(%rsp),%r14
718	movq	%r13,%r12
719	movq	%r14,%r15
720
721	rorq	$7,%r12
722	xorq	%r13,%r12
723	shrq	$7,%r13
724
725	rorq	$1,%r12
726	xorq	%r12,%r13
727	movq	72(%rsp),%r12
728
729	rorq	$42,%r15
730	xorq	%r14,%r15
731	shrq	$6,%r14
732
733	rorq	$19,%r15
734	addq	%r13,%r12
735	xorq	%r15,%r14
736
737	addq	0(%rsp),%r12
738	movq	%r8,%r13
739	addq	%r14,%r12
740	movq	%rax,%r14
741	rorq	$23,%r13
742	movq	%r9,%r15
743	movq	%r12,0(%rsp)
744
745	rorq	$5,%r14
746	xorq	%r8,%r13
747	xorq	%r10,%r15
748
749	rorq	$4,%r13
750	addq	%r11,%r12
751	xorq	%rax,%r14
752
753	addq	(%rbp,%rdi,8),%r12
754	andq	%r8,%r15
755	movq	%rbx,%r11
756
757	rorq	$6,%r14
758	xorq	%r8,%r13
759	xorq	%r10,%r15
760
761	xorq	%rcx,%r11
762	xorq	%rax,%r14
763	addq	%r15,%r12
764	movq	%rbx,%r15
765
766	rorq	$14,%r13
767	andq	%rax,%r11
768	andq	%rcx,%r15
769
770	rorq	$28,%r14
771	addq	%r13,%r12
772	addq	%r15,%r11
773
774	addq	%r12,%rdx
775	addq	%r12,%r11
776	leaq	1(%rdi),%rdi
777	addq	%r14,%r11
778
779	movq	16(%rsp),%r13
780	movq	120(%rsp),%r14
781	movq	%r13,%r12
782	movq	%r14,%r15
783
784	rorq	$7,%r12
785	xorq	%r13,%r12
786	shrq	$7,%r13
787
788	rorq	$1,%r12
789	xorq	%r12,%r13
790	movq	80(%rsp),%r12
791
792	rorq	$42,%r15
793	xorq	%r14,%r15
794	shrq	$6,%r14
795
796	rorq	$19,%r15
797	addq	%r13,%r12
798	xorq	%r15,%r14
799
800	addq	8(%rsp),%r12
801	movq	%rdx,%r13
802	addq	%r14,%r12
803	movq	%r11,%r14
804	rorq	$23,%r13
805	movq	%r8,%r15
806	movq	%r12,8(%rsp)
807
808	rorq	$5,%r14
809	xorq	%rdx,%r13
810	xorq	%r9,%r15
811
812	rorq	$4,%r13
813	addq	%r10,%r12
814	xorq	%r11,%r14
815
816	addq	(%rbp,%rdi,8),%r12
817	andq	%rdx,%r15
818	movq	%rax,%r10
819
820	rorq	$6,%r14
821	xorq	%rdx,%r13
822	xorq	%r9,%r15
823
824	xorq	%rbx,%r10
825	xorq	%r11,%r14
826	addq	%r15,%r12
827	movq	%rax,%r15
828
829	rorq	$14,%r13
830	andq	%r11,%r10
831	andq	%rbx,%r15
832
833	rorq	$28,%r14
834	addq	%r13,%r12
835	addq	%r15,%r10
836
837	addq	%r12,%rcx
838	addq	%r12,%r10
839	leaq	1(%rdi),%rdi
840	addq	%r14,%r10
841
842	movq	24(%rsp),%r13
843	movq	0(%rsp),%r14
844	movq	%r13,%r12
845	movq	%r14,%r15
846
847	rorq	$7,%r12
848	xorq	%r13,%r12
849	shrq	$7,%r13
850
851	rorq	$1,%r12
852	xorq	%r12,%r13
853	movq	88(%rsp),%r12
854
855	rorq	$42,%r15
856	xorq	%r14,%r15
857	shrq	$6,%r14
858
859	rorq	$19,%r15
860	addq	%r13,%r12
861	xorq	%r15,%r14
862
863	addq	16(%rsp),%r12
864	movq	%rcx,%r13
865	addq	%r14,%r12
866	movq	%r10,%r14
867	rorq	$23,%r13
868	movq	%rdx,%r15
869	movq	%r12,16(%rsp)
870
871	rorq	$5,%r14
872	xorq	%rcx,%r13
873	xorq	%r8,%r15
874
875	rorq	$4,%r13
876	addq	%r9,%r12
877	xorq	%r10,%r14
878
879	addq	(%rbp,%rdi,8),%r12
880	andq	%rcx,%r15
881	movq	%r11,%r9
882
883	rorq	$6,%r14
884	xorq	%rcx,%r13
885	xorq	%r8,%r15
886
887	xorq	%rax,%r9
888	xorq	%r10,%r14
889	addq	%r15,%r12
890	movq	%r11,%r15
891
892	rorq	$14,%r13
893	andq	%r10,%r9
894	andq	%rax,%r15
895
896	rorq	$28,%r14
897	addq	%r13,%r12
898	addq	%r15,%r9
899
900	addq	%r12,%rbx
901	addq	%r12,%r9
902	leaq	1(%rdi),%rdi
903	addq	%r14,%r9
904
905	movq	32(%rsp),%r13
906	movq	8(%rsp),%r14
907	movq	%r13,%r12
908	movq	%r14,%r15
909
910	rorq	$7,%r12
911	xorq	%r13,%r12
912	shrq	$7,%r13
913
914	rorq	$1,%r12
915	xorq	%r12,%r13
916	movq	96(%rsp),%r12
917
918	rorq	$42,%r15
919	xorq	%r14,%r15
920	shrq	$6,%r14
921
922	rorq	$19,%r15
923	addq	%r13,%r12
924	xorq	%r15,%r14
925
926	addq	24(%rsp),%r12
927	movq	%rbx,%r13
928	addq	%r14,%r12
929	movq	%r9,%r14
930	rorq	$23,%r13
931	movq	%rcx,%r15
932	movq	%r12,24(%rsp)
933
934	rorq	$5,%r14
935	xorq	%rbx,%r13
936	xorq	%rdx,%r15
937
938	rorq	$4,%r13
939	addq	%r8,%r12
940	xorq	%r9,%r14
941
942	addq	(%rbp,%rdi,8),%r12
943	andq	%rbx,%r15
944	movq	%r10,%r8
945
946	rorq	$6,%r14
947	xorq	%rbx,%r13
948	xorq	%rdx,%r15
949
950	xorq	%r11,%r8
951	xorq	%r9,%r14
952	addq	%r15,%r12
953	movq	%r10,%r15
954
955	rorq	$14,%r13
956	andq	%r9,%r8
957	andq	%r11,%r15
958
959	rorq	$28,%r14
960	addq	%r13,%r12
961	addq	%r15,%r8
962
963	addq	%r12,%rax
964	addq	%r12,%r8
965	leaq	1(%rdi),%rdi
966	addq	%r14,%r8
967
968	movq	40(%rsp),%r13
969	movq	16(%rsp),%r14
970	movq	%r13,%r12
971	movq	%r14,%r15
972
973	rorq	$7,%r12
974	xorq	%r13,%r12
975	shrq	$7,%r13
976
977	rorq	$1,%r12
978	xorq	%r12,%r13
979	movq	104(%rsp),%r12
980
981	rorq	$42,%r15
982	xorq	%r14,%r15
983	shrq	$6,%r14
984
985	rorq	$19,%r15
986	addq	%r13,%r12
987	xorq	%r15,%r14
988
989	addq	32(%rsp),%r12
990	movq	%rax,%r13
991	addq	%r14,%r12
992	movq	%r8,%r14
993	rorq	$23,%r13
994	movq	%rbx,%r15
995	movq	%r12,32(%rsp)
996
997	rorq	$5,%r14
998	xorq	%rax,%r13
999	xorq	%rcx,%r15
1000
1001	rorq	$4,%r13
1002	addq	%rdx,%r12
1003	xorq	%r8,%r14
1004
1005	addq	(%rbp,%rdi,8),%r12
1006	andq	%rax,%r15
1007	movq	%r9,%rdx
1008
1009	rorq	$6,%r14
1010	xorq	%rax,%r13
1011	xorq	%rcx,%r15
1012
1013	xorq	%r10,%rdx
1014	xorq	%r8,%r14
1015	addq	%r15,%r12
1016	movq	%r9,%r15
1017
1018	rorq	$14,%r13
1019	andq	%r8,%rdx
1020	andq	%r10,%r15
1021
1022	rorq	$28,%r14
1023	addq	%r13,%r12
1024	addq	%r15,%rdx
1025
1026	addq	%r12,%r11
1027	addq	%r12,%rdx
1028	leaq	1(%rdi),%rdi
1029	addq	%r14,%rdx
1030
1031	movq	48(%rsp),%r13
1032	movq	24(%rsp),%r14
1033	movq	%r13,%r12
1034	movq	%r14,%r15
1035
1036	rorq	$7,%r12
1037	xorq	%r13,%r12
1038	shrq	$7,%r13
1039
1040	rorq	$1,%r12
1041	xorq	%r12,%r13
1042	movq	112(%rsp),%r12
1043
1044	rorq	$42,%r15
1045	xorq	%r14,%r15
1046	shrq	$6,%r14
1047
1048	rorq	$19,%r15
1049	addq	%r13,%r12
1050	xorq	%r15,%r14
1051
1052	addq	40(%rsp),%r12
1053	movq	%r11,%r13
1054	addq	%r14,%r12
1055	movq	%rdx,%r14
1056	rorq	$23,%r13
1057	movq	%rax,%r15
1058	movq	%r12,40(%rsp)
1059
1060	rorq	$5,%r14
1061	xorq	%r11,%r13
1062	xorq	%rbx,%r15
1063
1064	rorq	$4,%r13
1065	addq	%rcx,%r12
1066	xorq	%rdx,%r14
1067
1068	addq	(%rbp,%rdi,8),%r12
1069	andq	%r11,%r15
1070	movq	%r8,%rcx
1071
1072	rorq	$6,%r14
1073	xorq	%r11,%r13
1074	xorq	%rbx,%r15
1075
1076	xorq	%r9,%rcx
1077	xorq	%rdx,%r14
1078	addq	%r15,%r12
1079	movq	%r8,%r15
1080
1081	rorq	$14,%r13
1082	andq	%rdx,%rcx
1083	andq	%r9,%r15
1084
1085	rorq	$28,%r14
1086	addq	%r13,%r12
1087	addq	%r15,%rcx
1088
1089	addq	%r12,%r10
1090	addq	%r12,%rcx
1091	leaq	1(%rdi),%rdi
1092	addq	%r14,%rcx
1093
1094	movq	56(%rsp),%r13
1095	movq	32(%rsp),%r14
1096	movq	%r13,%r12
1097	movq	%r14,%r15
1098
1099	rorq	$7,%r12
1100	xorq	%r13,%r12
1101	shrq	$7,%r13
1102
1103	rorq	$1,%r12
1104	xorq	%r12,%r13
1105	movq	120(%rsp),%r12
1106
1107	rorq	$42,%r15
1108	xorq	%r14,%r15
1109	shrq	$6,%r14
1110
1111	rorq	$19,%r15
1112	addq	%r13,%r12
1113	xorq	%r15,%r14
1114
1115	addq	48(%rsp),%r12
1116	movq	%r10,%r13
1117	addq	%r14,%r12
1118	movq	%rcx,%r14
1119	rorq	$23,%r13
1120	movq	%r11,%r15
1121	movq	%r12,48(%rsp)
1122
1123	rorq	$5,%r14
1124	xorq	%r10,%r13
1125	xorq	%rax,%r15
1126
1127	rorq	$4,%r13
1128	addq	%rbx,%r12
1129	xorq	%rcx,%r14
1130
1131	addq	(%rbp,%rdi,8),%r12
1132	andq	%r10,%r15
1133	movq	%rdx,%rbx
1134
1135	rorq	$6,%r14
1136	xorq	%r10,%r13
1137	xorq	%rax,%r15
1138
1139	xorq	%r8,%rbx
1140	xorq	%rcx,%r14
1141	addq	%r15,%r12
1142	movq	%rdx,%r15
1143
1144	rorq	$14,%r13
1145	andq	%rcx,%rbx
1146	andq	%r8,%r15
1147
1148	rorq	$28,%r14
1149	addq	%r13,%r12
1150	addq	%r15,%rbx
1151
1152	addq	%r12,%r9
1153	addq	%r12,%rbx
1154	leaq	1(%rdi),%rdi
1155	addq	%r14,%rbx
1156
1157	movq	64(%rsp),%r13
1158	movq	40(%rsp),%r14
1159	movq	%r13,%r12
1160	movq	%r14,%r15
1161
1162	rorq	$7,%r12
1163	xorq	%r13,%r12
1164	shrq	$7,%r13
1165
1166	rorq	$1,%r12
1167	xorq	%r12,%r13
1168	movq	0(%rsp),%r12
1169
1170	rorq	$42,%r15
1171	xorq	%r14,%r15
1172	shrq	$6,%r14
1173
1174	rorq	$19,%r15
1175	addq	%r13,%r12
1176	xorq	%r15,%r14
1177
1178	addq	56(%rsp),%r12
1179	movq	%r9,%r13
1180	addq	%r14,%r12
1181	movq	%rbx,%r14
1182	rorq	$23,%r13
1183	movq	%r10,%r15
1184	movq	%r12,56(%rsp)
1185
1186	rorq	$5,%r14
1187	xorq	%r9,%r13
1188	xorq	%r11,%r15
1189
1190	rorq	$4,%r13
1191	addq	%rax,%r12
1192	xorq	%rbx,%r14
1193
1194	addq	(%rbp,%rdi,8),%r12
1195	andq	%r9,%r15
1196	movq	%rcx,%rax
1197
1198	rorq	$6,%r14
1199	xorq	%r9,%r13
1200	xorq	%r11,%r15
1201
1202	xorq	%rdx,%rax
1203	xorq	%rbx,%r14
1204	addq	%r15,%r12
1205	movq	%rcx,%r15
1206
1207	rorq	$14,%r13
1208	andq	%rbx,%rax
1209	andq	%rdx,%r15
1210
1211	rorq	$28,%r14
1212	addq	%r13,%r12
1213	addq	%r15,%rax
1214
1215	addq	%r12,%r8
1216	addq	%r12,%rax
1217	leaq	1(%rdi),%rdi
1218	addq	%r14,%rax
1219
1220	movq	72(%rsp),%r13
1221	movq	48(%rsp),%r14
1222	movq	%r13,%r12
1223	movq	%r14,%r15
1224
1225	rorq	$7,%r12
1226	xorq	%r13,%r12
1227	shrq	$7,%r13
1228
1229	rorq	$1,%r12
1230	xorq	%r12,%r13
1231	movq	8(%rsp),%r12
1232
1233	rorq	$42,%r15
1234	xorq	%r14,%r15
1235	shrq	$6,%r14
1236
1237	rorq	$19,%r15
1238	addq	%r13,%r12
1239	xorq	%r15,%r14
1240
1241	addq	64(%rsp),%r12
1242	movq	%r8,%r13
1243	addq	%r14,%r12
1244	movq	%rax,%r14
1245	rorq	$23,%r13
1246	movq	%r9,%r15
1247	movq	%r12,64(%rsp)
1248
1249	rorq	$5,%r14
1250	xorq	%r8,%r13
1251	xorq	%r10,%r15
1252
1253	rorq	$4,%r13
1254	addq	%r11,%r12
1255	xorq	%rax,%r14
1256
1257	addq	(%rbp,%rdi,8),%r12
1258	andq	%r8,%r15
1259	movq	%rbx,%r11
1260
1261	rorq	$6,%r14
1262	xorq	%r8,%r13
1263	xorq	%r10,%r15
1264
1265	xorq	%rcx,%r11
1266	xorq	%rax,%r14
1267	addq	%r15,%r12
1268	movq	%rbx,%r15
1269
1270	rorq	$14,%r13
1271	andq	%rax,%r11
1272	andq	%rcx,%r15
1273
1274	rorq	$28,%r14
1275	addq	%r13,%r12
1276	addq	%r15,%r11
1277
1278	addq	%r12,%rdx
1279	addq	%r12,%r11
1280	leaq	1(%rdi),%rdi
1281	addq	%r14,%r11
1282
1283	movq	80(%rsp),%r13
1284	movq	56(%rsp),%r14
1285	movq	%r13,%r12
1286	movq	%r14,%r15
1287
1288	rorq	$7,%r12
1289	xorq	%r13,%r12
1290	shrq	$7,%r13
1291
1292	rorq	$1,%r12
1293	xorq	%r12,%r13
1294	movq	16(%rsp),%r12
1295
1296	rorq	$42,%r15
1297	xorq	%r14,%r15
1298	shrq	$6,%r14
1299
1300	rorq	$19,%r15
1301	addq	%r13,%r12
1302	xorq	%r15,%r14
1303
1304	addq	72(%rsp),%r12
1305	movq	%rdx,%r13
1306	addq	%r14,%r12
1307	movq	%r11,%r14
1308	rorq	$23,%r13
1309	movq	%r8,%r15
1310	movq	%r12,72(%rsp)
1311
1312	rorq	$5,%r14
1313	xorq	%rdx,%r13
1314	xorq	%r9,%r15
1315
1316	rorq	$4,%r13
1317	addq	%r10,%r12
1318	xorq	%r11,%r14
1319
1320	addq	(%rbp,%rdi,8),%r12
1321	andq	%rdx,%r15
1322	movq	%rax,%r10
1323
1324	rorq	$6,%r14
1325	xorq	%rdx,%r13
1326	xorq	%r9,%r15
1327
1328	xorq	%rbx,%r10
1329	xorq	%r11,%r14
1330	addq	%r15,%r12
1331	movq	%rax,%r15
1332
1333	rorq	$14,%r13
1334	andq	%r11,%r10
1335	andq	%rbx,%r15
1336
1337	rorq	$28,%r14
1338	addq	%r13,%r12
1339	addq	%r15,%r10
1340
1341	addq	%r12,%rcx
1342	addq	%r12,%r10
1343	leaq	1(%rdi),%rdi
1344	addq	%r14,%r10
1345
1346	movq	88(%rsp),%r13
1347	movq	64(%rsp),%r14
1348	movq	%r13,%r12
1349	movq	%r14,%r15
1350
1351	rorq	$7,%r12
1352	xorq	%r13,%r12
1353	shrq	$7,%r13
1354
1355	rorq	$1,%r12
1356	xorq	%r12,%r13
1357	movq	24(%rsp),%r12
1358
1359	rorq	$42,%r15
1360	xorq	%r14,%r15
1361	shrq	$6,%r14
1362
1363	rorq	$19,%r15
1364	addq	%r13,%r12
1365	xorq	%r15,%r14
1366
1367	addq	80(%rsp),%r12
1368	movq	%rcx,%r13
1369	addq	%r14,%r12
1370	movq	%r10,%r14
1371	rorq	$23,%r13
1372	movq	%rdx,%r15
1373	movq	%r12,80(%rsp)
1374
1375	rorq	$5,%r14
1376	xorq	%rcx,%r13
1377	xorq	%r8,%r15
1378
1379	rorq	$4,%r13
1380	addq	%r9,%r12
1381	xorq	%r10,%r14
1382
1383	addq	(%rbp,%rdi,8),%r12
1384	andq	%rcx,%r15
1385	movq	%r11,%r9
1386
1387	rorq	$6,%r14
1388	xorq	%rcx,%r13
1389	xorq	%r8,%r15
1390
1391	xorq	%rax,%r9
1392	xorq	%r10,%r14
1393	addq	%r15,%r12
1394	movq	%r11,%r15
1395
1396	rorq	$14,%r13
1397	andq	%r10,%r9
1398	andq	%rax,%r15
1399
1400	rorq	$28,%r14
1401	addq	%r13,%r12
1402	addq	%r15,%r9
1403
1404	addq	%r12,%rbx
1405	addq	%r12,%r9
1406	leaq	1(%rdi),%rdi
1407	addq	%r14,%r9
1408
1409	movq	96(%rsp),%r13
1410	movq	72(%rsp),%r14
1411	movq	%r13,%r12
1412	movq	%r14,%r15
1413
1414	rorq	$7,%r12
1415	xorq	%r13,%r12
1416	shrq	$7,%r13
1417
1418	rorq	$1,%r12
1419	xorq	%r12,%r13
1420	movq	32(%rsp),%r12
1421
1422	rorq	$42,%r15
1423	xorq	%r14,%r15
1424	shrq	$6,%r14
1425
1426	rorq	$19,%r15
1427	addq	%r13,%r12
1428	xorq	%r15,%r14
1429
1430	addq	88(%rsp),%r12
1431	movq	%rbx,%r13
1432	addq	%r14,%r12
1433	movq	%r9,%r14
1434	rorq	$23,%r13
1435	movq	%rcx,%r15
1436	movq	%r12,88(%rsp)
1437
1438	rorq	$5,%r14
1439	xorq	%rbx,%r13
1440	xorq	%rdx,%r15
1441
1442	rorq	$4,%r13
1443	addq	%r8,%r12
1444	xorq	%r9,%r14
1445
1446	addq	(%rbp,%rdi,8),%r12
1447	andq	%rbx,%r15
1448	movq	%r10,%r8
1449
1450	rorq	$6,%r14
1451	xorq	%rbx,%r13
1452	xorq	%rdx,%r15
1453
1454	xorq	%r11,%r8
1455	xorq	%r9,%r14
1456	addq	%r15,%r12
1457	movq	%r10,%r15
1458
1459	rorq	$14,%r13
1460	andq	%r9,%r8
1461	andq	%r11,%r15
1462
1463	rorq	$28,%r14
1464	addq	%r13,%r12
1465	addq	%r15,%r8
1466
1467	addq	%r12,%rax
1468	addq	%r12,%r8
1469	leaq	1(%rdi),%rdi
1470	addq	%r14,%r8
1471
1472	movq	104(%rsp),%r13
1473	movq	80(%rsp),%r14
1474	movq	%r13,%r12
1475	movq	%r14,%r15
1476
1477	rorq	$7,%r12
1478	xorq	%r13,%r12
1479	shrq	$7,%r13
1480
1481	rorq	$1,%r12
1482	xorq	%r12,%r13
1483	movq	40(%rsp),%r12
1484
1485	rorq	$42,%r15
1486	xorq	%r14,%r15
1487	shrq	$6,%r14
1488
1489	rorq	$19,%r15
1490	addq	%r13,%r12
1491	xorq	%r15,%r14
1492
1493	addq	96(%rsp),%r12
1494	movq	%rax,%r13
1495	addq	%r14,%r12
1496	movq	%r8,%r14
1497	rorq	$23,%r13
1498	movq	%rbx,%r15
1499	movq	%r12,96(%rsp)
1500
1501	rorq	$5,%r14
1502	xorq	%rax,%r13
1503	xorq	%rcx,%r15
1504
1505	rorq	$4,%r13
1506	addq	%rdx,%r12
1507	xorq	%r8,%r14
1508
1509	addq	(%rbp,%rdi,8),%r12
1510	andq	%rax,%r15
1511	movq	%r9,%rdx
1512
1513	rorq	$6,%r14
1514	xorq	%rax,%r13
1515	xorq	%rcx,%r15
1516
1517	xorq	%r10,%rdx
1518	xorq	%r8,%r14
1519	addq	%r15,%r12
1520	movq	%r9,%r15
1521
1522	rorq	$14,%r13
1523	andq	%r8,%rdx
1524	andq	%r10,%r15
1525
1526	rorq	$28,%r14
1527	addq	%r13,%r12
1528	addq	%r15,%rdx
1529
1530	addq	%r12,%r11
1531	addq	%r12,%rdx
1532	leaq	1(%rdi),%rdi
1533	addq	%r14,%rdx
1534
1535	movq	112(%rsp),%r13
1536	movq	88(%rsp),%r14
1537	movq	%r13,%r12
1538	movq	%r14,%r15
1539
1540	rorq	$7,%r12
1541	xorq	%r13,%r12
1542	shrq	$7,%r13
1543
1544	rorq	$1,%r12
1545	xorq	%r12,%r13
1546	movq	48(%rsp),%r12
1547
1548	rorq	$42,%r15
1549	xorq	%r14,%r15
1550	shrq	$6,%r14
1551
1552	rorq	$19,%r15
1553	addq	%r13,%r12
1554	xorq	%r15,%r14
1555
1556	addq	104(%rsp),%r12
1557	movq	%r11,%r13
1558	addq	%r14,%r12
1559	movq	%rdx,%r14
1560	rorq	$23,%r13
1561	movq	%rax,%r15
1562	movq	%r12,104(%rsp)
1563
1564	rorq	$5,%r14
1565	xorq	%r11,%r13
1566	xorq	%rbx,%r15
1567
1568	rorq	$4,%r13
1569	addq	%rcx,%r12
1570	xorq	%rdx,%r14
1571
1572	addq	(%rbp,%rdi,8),%r12
1573	andq	%r11,%r15
1574	movq	%r8,%rcx
1575
1576	rorq	$6,%r14
1577	xorq	%r11,%r13
1578	xorq	%rbx,%r15
1579
1580	xorq	%r9,%rcx
1581	xorq	%rdx,%r14
1582	addq	%r15,%r12
1583	movq	%r8,%r15
1584
1585	rorq	$14,%r13
1586	andq	%rdx,%rcx
1587	andq	%r9,%r15
1588
1589	rorq	$28,%r14
1590	addq	%r13,%r12
1591	addq	%r15,%rcx
1592
1593	addq	%r12,%r10
1594	addq	%r12,%rcx
1595	leaq	1(%rdi),%rdi
1596	addq	%r14,%rcx
1597
1598	movq	120(%rsp),%r13
1599	movq	96(%rsp),%r14
1600	movq	%r13,%r12
1601	movq	%r14,%r15
1602
1603	rorq	$7,%r12
1604	xorq	%r13,%r12
1605	shrq	$7,%r13
1606
1607	rorq	$1,%r12
1608	xorq	%r12,%r13
1609	movq	56(%rsp),%r12
1610
1611	rorq	$42,%r15
1612	xorq	%r14,%r15
1613	shrq	$6,%r14
1614
1615	rorq	$19,%r15
1616	addq	%r13,%r12
1617	xorq	%r15,%r14
1618
1619	addq	112(%rsp),%r12
1620	movq	%r10,%r13
1621	addq	%r14,%r12
1622	movq	%rcx,%r14
1623	rorq	$23,%r13
1624	movq	%r11,%r15
1625	movq	%r12,112(%rsp)
1626
1627	rorq	$5,%r14
1628	xorq	%r10,%r13
1629	xorq	%rax,%r15
1630
1631	rorq	$4,%r13
1632	addq	%rbx,%r12
1633	xorq	%rcx,%r14
1634
1635	addq	(%rbp,%rdi,8),%r12
1636	andq	%r10,%r15
1637	movq	%rdx,%rbx
1638
1639	rorq	$6,%r14
1640	xorq	%r10,%r13
1641	xorq	%rax,%r15
1642
1643	xorq	%r8,%rbx
1644	xorq	%rcx,%r14
1645	addq	%r15,%r12
1646	movq	%rdx,%r15
1647
1648	rorq	$14,%r13
1649	andq	%rcx,%rbx
1650	andq	%r8,%r15
1651
1652	rorq	$28,%r14
1653	addq	%r13,%r12
1654	addq	%r15,%rbx
1655
1656	addq	%r12,%r9
1657	addq	%r12,%rbx
1658	leaq	1(%rdi),%rdi
1659	addq	%r14,%rbx
1660
1661	movq	0(%rsp),%r13
1662	movq	104(%rsp),%r14
1663	movq	%r13,%r12
1664	movq	%r14,%r15
1665
1666	rorq	$7,%r12
1667	xorq	%r13,%r12
1668	shrq	$7,%r13
1669
1670	rorq	$1,%r12
1671	xorq	%r12,%r13
1672	movq	64(%rsp),%r12
1673
1674	rorq	$42,%r15
1675	xorq	%r14,%r15
1676	shrq	$6,%r14
1677
1678	rorq	$19,%r15
1679	addq	%r13,%r12
1680	xorq	%r15,%r14
1681
1682	addq	120(%rsp),%r12
1683	movq	%r9,%r13
1684	addq	%r14,%r12
1685	movq	%rbx,%r14
1686	rorq	$23,%r13
1687	movq	%r10,%r15
1688	movq	%r12,120(%rsp)
1689
1690	rorq	$5,%r14
1691	xorq	%r9,%r13
1692	xorq	%r11,%r15
1693
1694	rorq	$4,%r13
1695	addq	%rax,%r12
1696	xorq	%rbx,%r14
1697
1698	addq	(%rbp,%rdi,8),%r12
1699	andq	%r9,%r15
1700	movq	%rcx,%rax
1701
1702	rorq	$6,%r14
1703	xorq	%r9,%r13
1704	xorq	%r11,%r15
1705
1706	xorq	%rdx,%rax
1707	xorq	%rbx,%r14
1708	addq	%r15,%r12
1709	movq	%rcx,%r15
1710
1711	rorq	$14,%r13
1712	andq	%rbx,%rax
1713	andq	%rdx,%r15
1714
1715	rorq	$28,%r14
1716	addq	%r13,%r12
1717	addq	%r15,%rax
1718
1719	addq	%r12,%r8
1720	addq	%r12,%rax
1721	leaq	1(%rdi),%rdi
1722	addq	%r14,%rax
1723
1724	cmpq	$80,%rdi
1725	jb	.Lrounds_16_xx
1726
1727	movq	128+0(%rsp),%rdi
1728	leaq	128(%rsi),%rsi
1729
1730	addq	0(%rdi),%rax
1731	addq	8(%rdi),%rbx
1732	addq	16(%rdi),%rcx
1733	addq	24(%rdi),%rdx
1734	addq	32(%rdi),%r8
1735	addq	40(%rdi),%r9
1736	addq	48(%rdi),%r10
1737	addq	56(%rdi),%r11
1738
1739	cmpq	128+16(%rsp),%rsi
1740
1741	movq	%rax,0(%rdi)
1742	movq	%rbx,8(%rdi)
1743	movq	%rcx,16(%rdi)
1744	movq	%rdx,24(%rdi)
1745	movq	%r8,32(%rdi)
1746	movq	%r9,40(%rdi)
1747	movq	%r10,48(%rdi)
1748	movq	%r11,56(%rdi)
1749	jb	.Lloop
1750
1751	movq	128+24(%rsp),%rsi
1752	movq	(%rsi),%r15
1753	movq	8(%rsi),%r14
1754	movq	16(%rsi),%r13
1755	movq	24(%rsi),%r12
1756	movq	32(%rsi),%rbp
1757	movq	40(%rsi),%rbx
1758	leaq	48(%rsi),%rsp
1759.Lepilogue:
1760	.byte	0xf3,0xc3
1761.size	sha512_block_data_order,.-sha512_block_data_order
1762.align	64
1763.type	K512,@object
1764K512:
1765.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1766.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1767.quad	0x3956c25bf348b538,0x59f111f1b605d019
1768.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1769.quad	0xd807aa98a3030242,0x12835b0145706fbe
1770.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1771.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1772.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1773.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1774.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1775.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1776.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1777.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1778.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1779.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1780.quad	0x06ca6351e003826f,0x142929670a0e6e70
1781.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1782.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1783.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1784.quad	0x81c2c92e47edaee6,0x92722c851482353b
1785.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1786.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1787.quad	0xd192e819d6ef5218,0xd69906245565a910
1788.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1789.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1790.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1791.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1792.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1793.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1794.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1795.quad	0x90befffa23631e28,0xa4506cebde82bde9
1796.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1797.quad	0xca273eceea26619c,0xd186b8c721c0c207
1798.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1799.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1800.quad	0x113f9804bef90dae,0x1b710b35131c471b
1801.quad	0x28db77f523047d84,0x32caab7b40c72493
1802.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1803.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1804.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1805