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