]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - secure/lib/libcrypto/amd64/sha512-x86_64.S
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / secure / lib / libcrypto / amd64 / sha512-x86_64.S
1         # $FreeBSD$
2 .text   
3
4 .globl  sha512_block_data_order
5 .type   sha512_block_data_order,@function
6 .align  16
7 sha512_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         .byte   0xf3,0xc3
1760 .size   sha512_block_data_order,.-sha512_block_data_order
1761 .align  64
1762 .type   K512,@object
1763 K512:
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