Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/amd64/sha512-x86_64.S
39482 views
1
/* Do not modify. This file is auto-generated from sha512-x86_64.pl. */
2
.text
3
4
5
.globl sha512_block_data_order
6
.type sha512_block_data_order,@function
7
.align 16
8
sha512_block_data_order:
9
.cfi_startproc
10
leaq OPENSSL_ia32cap_P(%rip),%r11
11
movl 0(%r11),%r9d
12
movl 4(%r11),%r10d
13
movl 8(%r11),%r11d
14
testl $2048,%r10d
15
jnz .Lxop_shortcut
16
andl $296,%r11d
17
cmpl $296,%r11d
18
je .Lavx2_shortcut
19
andl $1073741824,%r9d
20
andl $268435968,%r10d
21
orl %r9d,%r10d
22
cmpl $1342177792,%r10d
23
je .Lavx_shortcut
24
movq %rsp,%rax
25
.cfi_def_cfa_register %rax
26
pushq %rbx
27
.cfi_offset %rbx,-16
28
pushq %rbp
29
.cfi_offset %rbp,-24
30
pushq %r12
31
.cfi_offset %r12,-32
32
pushq %r13
33
.cfi_offset %r13,-40
34
pushq %r14
35
.cfi_offset %r14,-48
36
pushq %r15
37
.cfi_offset %r15,-56
38
shlq $4,%rdx
39
subq $128+32,%rsp
40
leaq (%rsi,%rdx,8),%rdx
41
andq $-64,%rsp
42
movq %rdi,128+0(%rsp)
43
movq %rsi,128+8(%rsp)
44
movq %rdx,128+16(%rsp)
45
movq %rax,152(%rsp)
46
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
47
.Lprologue:
48
49
movq 0(%rdi),%rax
50
movq 8(%rdi),%rbx
51
movq 16(%rdi),%rcx
52
movq 24(%rdi),%rdx
53
movq 32(%rdi),%r8
54
movq 40(%rdi),%r9
55
movq 48(%rdi),%r10
56
movq 56(%rdi),%r11
57
jmp .Lloop
58
59
.align 16
60
.Lloop:
61
movq %rbx,%rdi
62
leaq K512(%rip),%rbp
63
xorq %rcx,%rdi
64
movq 0(%rsi),%r12
65
movq %r8,%r13
66
movq %rax,%r14
67
bswapq %r12
68
rorq $23,%r13
69
movq %r9,%r15
70
71
xorq %r8,%r13
72
rorq $5,%r14
73
xorq %r10,%r15
74
75
movq %r12,0(%rsp)
76
xorq %rax,%r14
77
andq %r8,%r15
78
79
rorq $4,%r13
80
addq %r11,%r12
81
xorq %r10,%r15
82
83
rorq $6,%r14
84
xorq %r8,%r13
85
addq %r15,%r12
86
87
movq %rax,%r15
88
addq (%rbp),%r12
89
xorq %rax,%r14
90
91
xorq %rbx,%r15
92
rorq $14,%r13
93
movq %rbx,%r11
94
95
andq %r15,%rdi
96
rorq $28,%r14
97
addq %r13,%r12
98
99
xorq %rdi,%r11
100
addq %r12,%rdx
101
addq %r12,%r11
102
103
leaq 8(%rbp),%rbp
104
addq %r14,%r11
105
movq 8(%rsi),%r12
106
movq %rdx,%r13
107
movq %r11,%r14
108
bswapq %r12
109
rorq $23,%r13
110
movq %r8,%rdi
111
112
xorq %rdx,%r13
113
rorq $5,%r14
114
xorq %r9,%rdi
115
116
movq %r12,8(%rsp)
117
xorq %r11,%r14
118
andq %rdx,%rdi
119
120
rorq $4,%r13
121
addq %r10,%r12
122
xorq %r9,%rdi
123
124
rorq $6,%r14
125
xorq %rdx,%r13
126
addq %rdi,%r12
127
128
movq %r11,%rdi
129
addq (%rbp),%r12
130
xorq %r11,%r14
131
132
xorq %rax,%rdi
133
rorq $14,%r13
134
movq %rax,%r10
135
136
andq %rdi,%r15
137
rorq $28,%r14
138
addq %r13,%r12
139
140
xorq %r15,%r10
141
addq %r12,%rcx
142
addq %r12,%r10
143
144
leaq 24(%rbp),%rbp
145
addq %r14,%r10
146
movq 16(%rsi),%r12
147
movq %rcx,%r13
148
movq %r10,%r14
149
bswapq %r12
150
rorq $23,%r13
151
movq %rdx,%r15
152
153
xorq %rcx,%r13
154
rorq $5,%r14
155
xorq %r8,%r15
156
157
movq %r12,16(%rsp)
158
xorq %r10,%r14
159
andq %rcx,%r15
160
161
rorq $4,%r13
162
addq %r9,%r12
163
xorq %r8,%r15
164
165
rorq $6,%r14
166
xorq %rcx,%r13
167
addq %r15,%r12
168
169
movq %r10,%r15
170
addq (%rbp),%r12
171
xorq %r10,%r14
172
173
xorq %r11,%r15
174
rorq $14,%r13
175
movq %r11,%r9
176
177
andq %r15,%rdi
178
rorq $28,%r14
179
addq %r13,%r12
180
181
xorq %rdi,%r9
182
addq %r12,%rbx
183
addq %r12,%r9
184
185
leaq 8(%rbp),%rbp
186
addq %r14,%r9
187
movq 24(%rsi),%r12
188
movq %rbx,%r13
189
movq %r9,%r14
190
bswapq %r12
191
rorq $23,%r13
192
movq %rcx,%rdi
193
194
xorq %rbx,%r13
195
rorq $5,%r14
196
xorq %rdx,%rdi
197
198
movq %r12,24(%rsp)
199
xorq %r9,%r14
200
andq %rbx,%rdi
201
202
rorq $4,%r13
203
addq %r8,%r12
204
xorq %rdx,%rdi
205
206
rorq $6,%r14
207
xorq %rbx,%r13
208
addq %rdi,%r12
209
210
movq %r9,%rdi
211
addq (%rbp),%r12
212
xorq %r9,%r14
213
214
xorq %r10,%rdi
215
rorq $14,%r13
216
movq %r10,%r8
217
218
andq %rdi,%r15
219
rorq $28,%r14
220
addq %r13,%r12
221
222
xorq %r15,%r8
223
addq %r12,%rax
224
addq %r12,%r8
225
226
leaq 24(%rbp),%rbp
227
addq %r14,%r8
228
movq 32(%rsi),%r12
229
movq %rax,%r13
230
movq %r8,%r14
231
bswapq %r12
232
rorq $23,%r13
233
movq %rbx,%r15
234
235
xorq %rax,%r13
236
rorq $5,%r14
237
xorq %rcx,%r15
238
239
movq %r12,32(%rsp)
240
xorq %r8,%r14
241
andq %rax,%r15
242
243
rorq $4,%r13
244
addq %rdx,%r12
245
xorq %rcx,%r15
246
247
rorq $6,%r14
248
xorq %rax,%r13
249
addq %r15,%r12
250
251
movq %r8,%r15
252
addq (%rbp),%r12
253
xorq %r8,%r14
254
255
xorq %r9,%r15
256
rorq $14,%r13
257
movq %r9,%rdx
258
259
andq %r15,%rdi
260
rorq $28,%r14
261
addq %r13,%r12
262
263
xorq %rdi,%rdx
264
addq %r12,%r11
265
addq %r12,%rdx
266
267
leaq 8(%rbp),%rbp
268
addq %r14,%rdx
269
movq 40(%rsi),%r12
270
movq %r11,%r13
271
movq %rdx,%r14
272
bswapq %r12
273
rorq $23,%r13
274
movq %rax,%rdi
275
276
xorq %r11,%r13
277
rorq $5,%r14
278
xorq %rbx,%rdi
279
280
movq %r12,40(%rsp)
281
xorq %rdx,%r14
282
andq %r11,%rdi
283
284
rorq $4,%r13
285
addq %rcx,%r12
286
xorq %rbx,%rdi
287
288
rorq $6,%r14
289
xorq %r11,%r13
290
addq %rdi,%r12
291
292
movq %rdx,%rdi
293
addq (%rbp),%r12
294
xorq %rdx,%r14
295
296
xorq %r8,%rdi
297
rorq $14,%r13
298
movq %r8,%rcx
299
300
andq %rdi,%r15
301
rorq $28,%r14
302
addq %r13,%r12
303
304
xorq %r15,%rcx
305
addq %r12,%r10
306
addq %r12,%rcx
307
308
leaq 24(%rbp),%rbp
309
addq %r14,%rcx
310
movq 48(%rsi),%r12
311
movq %r10,%r13
312
movq %rcx,%r14
313
bswapq %r12
314
rorq $23,%r13
315
movq %r11,%r15
316
317
xorq %r10,%r13
318
rorq $5,%r14
319
xorq %rax,%r15
320
321
movq %r12,48(%rsp)
322
xorq %rcx,%r14
323
andq %r10,%r15
324
325
rorq $4,%r13
326
addq %rbx,%r12
327
xorq %rax,%r15
328
329
rorq $6,%r14
330
xorq %r10,%r13
331
addq %r15,%r12
332
333
movq %rcx,%r15
334
addq (%rbp),%r12
335
xorq %rcx,%r14
336
337
xorq %rdx,%r15
338
rorq $14,%r13
339
movq %rdx,%rbx
340
341
andq %r15,%rdi
342
rorq $28,%r14
343
addq %r13,%r12
344
345
xorq %rdi,%rbx
346
addq %r12,%r9
347
addq %r12,%rbx
348
349
leaq 8(%rbp),%rbp
350
addq %r14,%rbx
351
movq 56(%rsi),%r12
352
movq %r9,%r13
353
movq %rbx,%r14
354
bswapq %r12
355
rorq $23,%r13
356
movq %r10,%rdi
357
358
xorq %r9,%r13
359
rorq $5,%r14
360
xorq %r11,%rdi
361
362
movq %r12,56(%rsp)
363
xorq %rbx,%r14
364
andq %r9,%rdi
365
366
rorq $4,%r13
367
addq %rax,%r12
368
xorq %r11,%rdi
369
370
rorq $6,%r14
371
xorq %r9,%r13
372
addq %rdi,%r12
373
374
movq %rbx,%rdi
375
addq (%rbp),%r12
376
xorq %rbx,%r14
377
378
xorq %rcx,%rdi
379
rorq $14,%r13
380
movq %rcx,%rax
381
382
andq %rdi,%r15
383
rorq $28,%r14
384
addq %r13,%r12
385
386
xorq %r15,%rax
387
addq %r12,%r8
388
addq %r12,%rax
389
390
leaq 24(%rbp),%rbp
391
addq %r14,%rax
392
movq 64(%rsi),%r12
393
movq %r8,%r13
394
movq %rax,%r14
395
bswapq %r12
396
rorq $23,%r13
397
movq %r9,%r15
398
399
xorq %r8,%r13
400
rorq $5,%r14
401
xorq %r10,%r15
402
403
movq %r12,64(%rsp)
404
xorq %rax,%r14
405
andq %r8,%r15
406
407
rorq $4,%r13
408
addq %r11,%r12
409
xorq %r10,%r15
410
411
rorq $6,%r14
412
xorq %r8,%r13
413
addq %r15,%r12
414
415
movq %rax,%r15
416
addq (%rbp),%r12
417
xorq %rax,%r14
418
419
xorq %rbx,%r15
420
rorq $14,%r13
421
movq %rbx,%r11
422
423
andq %r15,%rdi
424
rorq $28,%r14
425
addq %r13,%r12
426
427
xorq %rdi,%r11
428
addq %r12,%rdx
429
addq %r12,%r11
430
431
leaq 8(%rbp),%rbp
432
addq %r14,%r11
433
movq 72(%rsi),%r12
434
movq %rdx,%r13
435
movq %r11,%r14
436
bswapq %r12
437
rorq $23,%r13
438
movq %r8,%rdi
439
440
xorq %rdx,%r13
441
rorq $5,%r14
442
xorq %r9,%rdi
443
444
movq %r12,72(%rsp)
445
xorq %r11,%r14
446
andq %rdx,%rdi
447
448
rorq $4,%r13
449
addq %r10,%r12
450
xorq %r9,%rdi
451
452
rorq $6,%r14
453
xorq %rdx,%r13
454
addq %rdi,%r12
455
456
movq %r11,%rdi
457
addq (%rbp),%r12
458
xorq %r11,%r14
459
460
xorq %rax,%rdi
461
rorq $14,%r13
462
movq %rax,%r10
463
464
andq %rdi,%r15
465
rorq $28,%r14
466
addq %r13,%r12
467
468
xorq %r15,%r10
469
addq %r12,%rcx
470
addq %r12,%r10
471
472
leaq 24(%rbp),%rbp
473
addq %r14,%r10
474
movq 80(%rsi),%r12
475
movq %rcx,%r13
476
movq %r10,%r14
477
bswapq %r12
478
rorq $23,%r13
479
movq %rdx,%r15
480
481
xorq %rcx,%r13
482
rorq $5,%r14
483
xorq %r8,%r15
484
485
movq %r12,80(%rsp)
486
xorq %r10,%r14
487
andq %rcx,%r15
488
489
rorq $4,%r13
490
addq %r9,%r12
491
xorq %r8,%r15
492
493
rorq $6,%r14
494
xorq %rcx,%r13
495
addq %r15,%r12
496
497
movq %r10,%r15
498
addq (%rbp),%r12
499
xorq %r10,%r14
500
501
xorq %r11,%r15
502
rorq $14,%r13
503
movq %r11,%r9
504
505
andq %r15,%rdi
506
rorq $28,%r14
507
addq %r13,%r12
508
509
xorq %rdi,%r9
510
addq %r12,%rbx
511
addq %r12,%r9
512
513
leaq 8(%rbp),%rbp
514
addq %r14,%r9
515
movq 88(%rsi),%r12
516
movq %rbx,%r13
517
movq %r9,%r14
518
bswapq %r12
519
rorq $23,%r13
520
movq %rcx,%rdi
521
522
xorq %rbx,%r13
523
rorq $5,%r14
524
xorq %rdx,%rdi
525
526
movq %r12,88(%rsp)
527
xorq %r9,%r14
528
andq %rbx,%rdi
529
530
rorq $4,%r13
531
addq %r8,%r12
532
xorq %rdx,%rdi
533
534
rorq $6,%r14
535
xorq %rbx,%r13
536
addq %rdi,%r12
537
538
movq %r9,%rdi
539
addq (%rbp),%r12
540
xorq %r9,%r14
541
542
xorq %r10,%rdi
543
rorq $14,%r13
544
movq %r10,%r8
545
546
andq %rdi,%r15
547
rorq $28,%r14
548
addq %r13,%r12
549
550
xorq %r15,%r8
551
addq %r12,%rax
552
addq %r12,%r8
553
554
leaq 24(%rbp),%rbp
555
addq %r14,%r8
556
movq 96(%rsi),%r12
557
movq %rax,%r13
558
movq %r8,%r14
559
bswapq %r12
560
rorq $23,%r13
561
movq %rbx,%r15
562
563
xorq %rax,%r13
564
rorq $5,%r14
565
xorq %rcx,%r15
566
567
movq %r12,96(%rsp)
568
xorq %r8,%r14
569
andq %rax,%r15
570
571
rorq $4,%r13
572
addq %rdx,%r12
573
xorq %rcx,%r15
574
575
rorq $6,%r14
576
xorq %rax,%r13
577
addq %r15,%r12
578
579
movq %r8,%r15
580
addq (%rbp),%r12
581
xorq %r8,%r14
582
583
xorq %r9,%r15
584
rorq $14,%r13
585
movq %r9,%rdx
586
587
andq %r15,%rdi
588
rorq $28,%r14
589
addq %r13,%r12
590
591
xorq %rdi,%rdx
592
addq %r12,%r11
593
addq %r12,%rdx
594
595
leaq 8(%rbp),%rbp
596
addq %r14,%rdx
597
movq 104(%rsi),%r12
598
movq %r11,%r13
599
movq %rdx,%r14
600
bswapq %r12
601
rorq $23,%r13
602
movq %rax,%rdi
603
604
xorq %r11,%r13
605
rorq $5,%r14
606
xorq %rbx,%rdi
607
608
movq %r12,104(%rsp)
609
xorq %rdx,%r14
610
andq %r11,%rdi
611
612
rorq $4,%r13
613
addq %rcx,%r12
614
xorq %rbx,%rdi
615
616
rorq $6,%r14
617
xorq %r11,%r13
618
addq %rdi,%r12
619
620
movq %rdx,%rdi
621
addq (%rbp),%r12
622
xorq %rdx,%r14
623
624
xorq %r8,%rdi
625
rorq $14,%r13
626
movq %r8,%rcx
627
628
andq %rdi,%r15
629
rorq $28,%r14
630
addq %r13,%r12
631
632
xorq %r15,%rcx
633
addq %r12,%r10
634
addq %r12,%rcx
635
636
leaq 24(%rbp),%rbp
637
addq %r14,%rcx
638
movq 112(%rsi),%r12
639
movq %r10,%r13
640
movq %rcx,%r14
641
bswapq %r12
642
rorq $23,%r13
643
movq %r11,%r15
644
645
xorq %r10,%r13
646
rorq $5,%r14
647
xorq %rax,%r15
648
649
movq %r12,112(%rsp)
650
xorq %rcx,%r14
651
andq %r10,%r15
652
653
rorq $4,%r13
654
addq %rbx,%r12
655
xorq %rax,%r15
656
657
rorq $6,%r14
658
xorq %r10,%r13
659
addq %r15,%r12
660
661
movq %rcx,%r15
662
addq (%rbp),%r12
663
xorq %rcx,%r14
664
665
xorq %rdx,%r15
666
rorq $14,%r13
667
movq %rdx,%rbx
668
669
andq %r15,%rdi
670
rorq $28,%r14
671
addq %r13,%r12
672
673
xorq %rdi,%rbx
674
addq %r12,%r9
675
addq %r12,%rbx
676
677
leaq 8(%rbp),%rbp
678
addq %r14,%rbx
679
movq 120(%rsi),%r12
680
movq %r9,%r13
681
movq %rbx,%r14
682
bswapq %r12
683
rorq $23,%r13
684
movq %r10,%rdi
685
686
xorq %r9,%r13
687
rorq $5,%r14
688
xorq %r11,%rdi
689
690
movq %r12,120(%rsp)
691
xorq %rbx,%r14
692
andq %r9,%rdi
693
694
rorq $4,%r13
695
addq %rax,%r12
696
xorq %r11,%rdi
697
698
rorq $6,%r14
699
xorq %r9,%r13
700
addq %rdi,%r12
701
702
movq %rbx,%rdi
703
addq (%rbp),%r12
704
xorq %rbx,%r14
705
706
xorq %rcx,%rdi
707
rorq $14,%r13
708
movq %rcx,%rax
709
710
andq %rdi,%r15
711
rorq $28,%r14
712
addq %r13,%r12
713
714
xorq %r15,%rax
715
addq %r12,%r8
716
addq %r12,%rax
717
718
leaq 24(%rbp),%rbp
719
jmp .Lrounds_16_xx
720
.align 16
721
.Lrounds_16_xx:
722
movq 8(%rsp),%r13
723
movq 112(%rsp),%r15
724
725
movq %r13,%r12
726
rorq $7,%r13
727
addq %r14,%rax
728
movq %r15,%r14
729
rorq $42,%r15
730
731
xorq %r12,%r13
732
shrq $7,%r12
733
rorq $1,%r13
734
xorq %r14,%r15
735
shrq $6,%r14
736
737
rorq $19,%r15
738
xorq %r13,%r12
739
xorq %r14,%r15
740
addq 72(%rsp),%r12
741
742
addq 0(%rsp),%r12
743
movq %r8,%r13
744
addq %r15,%r12
745
movq %rax,%r14
746
rorq $23,%r13
747
movq %r9,%r15
748
749
xorq %r8,%r13
750
rorq $5,%r14
751
xorq %r10,%r15
752
753
movq %r12,0(%rsp)
754
xorq %rax,%r14
755
andq %r8,%r15
756
757
rorq $4,%r13
758
addq %r11,%r12
759
xorq %r10,%r15
760
761
rorq $6,%r14
762
xorq %r8,%r13
763
addq %r15,%r12
764
765
movq %rax,%r15
766
addq (%rbp),%r12
767
xorq %rax,%r14
768
769
xorq %rbx,%r15
770
rorq $14,%r13
771
movq %rbx,%r11
772
773
andq %r15,%rdi
774
rorq $28,%r14
775
addq %r13,%r12
776
777
xorq %rdi,%r11
778
addq %r12,%rdx
779
addq %r12,%r11
780
781
leaq 8(%rbp),%rbp
782
movq 16(%rsp),%r13
783
movq 120(%rsp),%rdi
784
785
movq %r13,%r12
786
rorq $7,%r13
787
addq %r14,%r11
788
movq %rdi,%r14
789
rorq $42,%rdi
790
791
xorq %r12,%r13
792
shrq $7,%r12
793
rorq $1,%r13
794
xorq %r14,%rdi
795
shrq $6,%r14
796
797
rorq $19,%rdi
798
xorq %r13,%r12
799
xorq %r14,%rdi
800
addq 80(%rsp),%r12
801
802
addq 8(%rsp),%r12
803
movq %rdx,%r13
804
addq %rdi,%r12
805
movq %r11,%r14
806
rorq $23,%r13
807
movq %r8,%rdi
808
809
xorq %rdx,%r13
810
rorq $5,%r14
811
xorq %r9,%rdi
812
813
movq %r12,8(%rsp)
814
xorq %r11,%r14
815
andq %rdx,%rdi
816
817
rorq $4,%r13
818
addq %r10,%r12
819
xorq %r9,%rdi
820
821
rorq $6,%r14
822
xorq %rdx,%r13
823
addq %rdi,%r12
824
825
movq %r11,%rdi
826
addq (%rbp),%r12
827
xorq %r11,%r14
828
829
xorq %rax,%rdi
830
rorq $14,%r13
831
movq %rax,%r10
832
833
andq %rdi,%r15
834
rorq $28,%r14
835
addq %r13,%r12
836
837
xorq %r15,%r10
838
addq %r12,%rcx
839
addq %r12,%r10
840
841
leaq 24(%rbp),%rbp
842
movq 24(%rsp),%r13
843
movq 0(%rsp),%r15
844
845
movq %r13,%r12
846
rorq $7,%r13
847
addq %r14,%r10
848
movq %r15,%r14
849
rorq $42,%r15
850
851
xorq %r12,%r13
852
shrq $7,%r12
853
rorq $1,%r13
854
xorq %r14,%r15
855
shrq $6,%r14
856
857
rorq $19,%r15
858
xorq %r13,%r12
859
xorq %r14,%r15
860
addq 88(%rsp),%r12
861
862
addq 16(%rsp),%r12
863
movq %rcx,%r13
864
addq %r15,%r12
865
movq %r10,%r14
866
rorq $23,%r13
867
movq %rdx,%r15
868
869
xorq %rcx,%r13
870
rorq $5,%r14
871
xorq %r8,%r15
872
873
movq %r12,16(%rsp)
874
xorq %r10,%r14
875
andq %rcx,%r15
876
877
rorq $4,%r13
878
addq %r9,%r12
879
xorq %r8,%r15
880
881
rorq $6,%r14
882
xorq %rcx,%r13
883
addq %r15,%r12
884
885
movq %r10,%r15
886
addq (%rbp),%r12
887
xorq %r10,%r14
888
889
xorq %r11,%r15
890
rorq $14,%r13
891
movq %r11,%r9
892
893
andq %r15,%rdi
894
rorq $28,%r14
895
addq %r13,%r12
896
897
xorq %rdi,%r9
898
addq %r12,%rbx
899
addq %r12,%r9
900
901
leaq 8(%rbp),%rbp
902
movq 32(%rsp),%r13
903
movq 8(%rsp),%rdi
904
905
movq %r13,%r12
906
rorq $7,%r13
907
addq %r14,%r9
908
movq %rdi,%r14
909
rorq $42,%rdi
910
911
xorq %r12,%r13
912
shrq $7,%r12
913
rorq $1,%r13
914
xorq %r14,%rdi
915
shrq $6,%r14
916
917
rorq $19,%rdi
918
xorq %r13,%r12
919
xorq %r14,%rdi
920
addq 96(%rsp),%r12
921
922
addq 24(%rsp),%r12
923
movq %rbx,%r13
924
addq %rdi,%r12
925
movq %r9,%r14
926
rorq $23,%r13
927
movq %rcx,%rdi
928
929
xorq %rbx,%r13
930
rorq $5,%r14
931
xorq %rdx,%rdi
932
933
movq %r12,24(%rsp)
934
xorq %r9,%r14
935
andq %rbx,%rdi
936
937
rorq $4,%r13
938
addq %r8,%r12
939
xorq %rdx,%rdi
940
941
rorq $6,%r14
942
xorq %rbx,%r13
943
addq %rdi,%r12
944
945
movq %r9,%rdi
946
addq (%rbp),%r12
947
xorq %r9,%r14
948
949
xorq %r10,%rdi
950
rorq $14,%r13
951
movq %r10,%r8
952
953
andq %rdi,%r15
954
rorq $28,%r14
955
addq %r13,%r12
956
957
xorq %r15,%r8
958
addq %r12,%rax
959
addq %r12,%r8
960
961
leaq 24(%rbp),%rbp
962
movq 40(%rsp),%r13
963
movq 16(%rsp),%r15
964
965
movq %r13,%r12
966
rorq $7,%r13
967
addq %r14,%r8
968
movq %r15,%r14
969
rorq $42,%r15
970
971
xorq %r12,%r13
972
shrq $7,%r12
973
rorq $1,%r13
974
xorq %r14,%r15
975
shrq $6,%r14
976
977
rorq $19,%r15
978
xorq %r13,%r12
979
xorq %r14,%r15
980
addq 104(%rsp),%r12
981
982
addq 32(%rsp),%r12
983
movq %rax,%r13
984
addq %r15,%r12
985
movq %r8,%r14
986
rorq $23,%r13
987
movq %rbx,%r15
988
989
xorq %rax,%r13
990
rorq $5,%r14
991
xorq %rcx,%r15
992
993
movq %r12,32(%rsp)
994
xorq %r8,%r14
995
andq %rax,%r15
996
997
rorq $4,%r13
998
addq %rdx,%r12
999
xorq %rcx,%r15
1000
1001
rorq $6,%r14
1002
xorq %rax,%r13
1003
addq %r15,%r12
1004
1005
movq %r8,%r15
1006
addq (%rbp),%r12
1007
xorq %r8,%r14
1008
1009
xorq %r9,%r15
1010
rorq $14,%r13
1011
movq %r9,%rdx
1012
1013
andq %r15,%rdi
1014
rorq $28,%r14
1015
addq %r13,%r12
1016
1017
xorq %rdi,%rdx
1018
addq %r12,%r11
1019
addq %r12,%rdx
1020
1021
leaq 8(%rbp),%rbp
1022
movq 48(%rsp),%r13
1023
movq 24(%rsp),%rdi
1024
1025
movq %r13,%r12
1026
rorq $7,%r13
1027
addq %r14,%rdx
1028
movq %rdi,%r14
1029
rorq $42,%rdi
1030
1031
xorq %r12,%r13
1032
shrq $7,%r12
1033
rorq $1,%r13
1034
xorq %r14,%rdi
1035
shrq $6,%r14
1036
1037
rorq $19,%rdi
1038
xorq %r13,%r12
1039
xorq %r14,%rdi
1040
addq 112(%rsp),%r12
1041
1042
addq 40(%rsp),%r12
1043
movq %r11,%r13
1044
addq %rdi,%r12
1045
movq %rdx,%r14
1046
rorq $23,%r13
1047
movq %rax,%rdi
1048
1049
xorq %r11,%r13
1050
rorq $5,%r14
1051
xorq %rbx,%rdi
1052
1053
movq %r12,40(%rsp)
1054
xorq %rdx,%r14
1055
andq %r11,%rdi
1056
1057
rorq $4,%r13
1058
addq %rcx,%r12
1059
xorq %rbx,%rdi
1060
1061
rorq $6,%r14
1062
xorq %r11,%r13
1063
addq %rdi,%r12
1064
1065
movq %rdx,%rdi
1066
addq (%rbp),%r12
1067
xorq %rdx,%r14
1068
1069
xorq %r8,%rdi
1070
rorq $14,%r13
1071
movq %r8,%rcx
1072
1073
andq %rdi,%r15
1074
rorq $28,%r14
1075
addq %r13,%r12
1076
1077
xorq %r15,%rcx
1078
addq %r12,%r10
1079
addq %r12,%rcx
1080
1081
leaq 24(%rbp),%rbp
1082
movq 56(%rsp),%r13
1083
movq 32(%rsp),%r15
1084
1085
movq %r13,%r12
1086
rorq $7,%r13
1087
addq %r14,%rcx
1088
movq %r15,%r14
1089
rorq $42,%r15
1090
1091
xorq %r12,%r13
1092
shrq $7,%r12
1093
rorq $1,%r13
1094
xorq %r14,%r15
1095
shrq $6,%r14
1096
1097
rorq $19,%r15
1098
xorq %r13,%r12
1099
xorq %r14,%r15
1100
addq 120(%rsp),%r12
1101
1102
addq 48(%rsp),%r12
1103
movq %r10,%r13
1104
addq %r15,%r12
1105
movq %rcx,%r14
1106
rorq $23,%r13
1107
movq %r11,%r15
1108
1109
xorq %r10,%r13
1110
rorq $5,%r14
1111
xorq %rax,%r15
1112
1113
movq %r12,48(%rsp)
1114
xorq %rcx,%r14
1115
andq %r10,%r15
1116
1117
rorq $4,%r13
1118
addq %rbx,%r12
1119
xorq %rax,%r15
1120
1121
rorq $6,%r14
1122
xorq %r10,%r13
1123
addq %r15,%r12
1124
1125
movq %rcx,%r15
1126
addq (%rbp),%r12
1127
xorq %rcx,%r14
1128
1129
xorq %rdx,%r15
1130
rorq $14,%r13
1131
movq %rdx,%rbx
1132
1133
andq %r15,%rdi
1134
rorq $28,%r14
1135
addq %r13,%r12
1136
1137
xorq %rdi,%rbx
1138
addq %r12,%r9
1139
addq %r12,%rbx
1140
1141
leaq 8(%rbp),%rbp
1142
movq 64(%rsp),%r13
1143
movq 40(%rsp),%rdi
1144
1145
movq %r13,%r12
1146
rorq $7,%r13
1147
addq %r14,%rbx
1148
movq %rdi,%r14
1149
rorq $42,%rdi
1150
1151
xorq %r12,%r13
1152
shrq $7,%r12
1153
rorq $1,%r13
1154
xorq %r14,%rdi
1155
shrq $6,%r14
1156
1157
rorq $19,%rdi
1158
xorq %r13,%r12
1159
xorq %r14,%rdi
1160
addq 0(%rsp),%r12
1161
1162
addq 56(%rsp),%r12
1163
movq %r9,%r13
1164
addq %rdi,%r12
1165
movq %rbx,%r14
1166
rorq $23,%r13
1167
movq %r10,%rdi
1168
1169
xorq %r9,%r13
1170
rorq $5,%r14
1171
xorq %r11,%rdi
1172
1173
movq %r12,56(%rsp)
1174
xorq %rbx,%r14
1175
andq %r9,%rdi
1176
1177
rorq $4,%r13
1178
addq %rax,%r12
1179
xorq %r11,%rdi
1180
1181
rorq $6,%r14
1182
xorq %r9,%r13
1183
addq %rdi,%r12
1184
1185
movq %rbx,%rdi
1186
addq (%rbp),%r12
1187
xorq %rbx,%r14
1188
1189
xorq %rcx,%rdi
1190
rorq $14,%r13
1191
movq %rcx,%rax
1192
1193
andq %rdi,%r15
1194
rorq $28,%r14
1195
addq %r13,%r12
1196
1197
xorq %r15,%rax
1198
addq %r12,%r8
1199
addq %r12,%rax
1200
1201
leaq 24(%rbp),%rbp
1202
movq 72(%rsp),%r13
1203
movq 48(%rsp),%r15
1204
1205
movq %r13,%r12
1206
rorq $7,%r13
1207
addq %r14,%rax
1208
movq %r15,%r14
1209
rorq $42,%r15
1210
1211
xorq %r12,%r13
1212
shrq $7,%r12
1213
rorq $1,%r13
1214
xorq %r14,%r15
1215
shrq $6,%r14
1216
1217
rorq $19,%r15
1218
xorq %r13,%r12
1219
xorq %r14,%r15
1220
addq 8(%rsp),%r12
1221
1222
addq 64(%rsp),%r12
1223
movq %r8,%r13
1224
addq %r15,%r12
1225
movq %rax,%r14
1226
rorq $23,%r13
1227
movq %r9,%r15
1228
1229
xorq %r8,%r13
1230
rorq $5,%r14
1231
xorq %r10,%r15
1232
1233
movq %r12,64(%rsp)
1234
xorq %rax,%r14
1235
andq %r8,%r15
1236
1237
rorq $4,%r13
1238
addq %r11,%r12
1239
xorq %r10,%r15
1240
1241
rorq $6,%r14
1242
xorq %r8,%r13
1243
addq %r15,%r12
1244
1245
movq %rax,%r15
1246
addq (%rbp),%r12
1247
xorq %rax,%r14
1248
1249
xorq %rbx,%r15
1250
rorq $14,%r13
1251
movq %rbx,%r11
1252
1253
andq %r15,%rdi
1254
rorq $28,%r14
1255
addq %r13,%r12
1256
1257
xorq %rdi,%r11
1258
addq %r12,%rdx
1259
addq %r12,%r11
1260
1261
leaq 8(%rbp),%rbp
1262
movq 80(%rsp),%r13
1263
movq 56(%rsp),%rdi
1264
1265
movq %r13,%r12
1266
rorq $7,%r13
1267
addq %r14,%r11
1268
movq %rdi,%r14
1269
rorq $42,%rdi
1270
1271
xorq %r12,%r13
1272
shrq $7,%r12
1273
rorq $1,%r13
1274
xorq %r14,%rdi
1275
shrq $6,%r14
1276
1277
rorq $19,%rdi
1278
xorq %r13,%r12
1279
xorq %r14,%rdi
1280
addq 16(%rsp),%r12
1281
1282
addq 72(%rsp),%r12
1283
movq %rdx,%r13
1284
addq %rdi,%r12
1285
movq %r11,%r14
1286
rorq $23,%r13
1287
movq %r8,%rdi
1288
1289
xorq %rdx,%r13
1290
rorq $5,%r14
1291
xorq %r9,%rdi
1292
1293
movq %r12,72(%rsp)
1294
xorq %r11,%r14
1295
andq %rdx,%rdi
1296
1297
rorq $4,%r13
1298
addq %r10,%r12
1299
xorq %r9,%rdi
1300
1301
rorq $6,%r14
1302
xorq %rdx,%r13
1303
addq %rdi,%r12
1304
1305
movq %r11,%rdi
1306
addq (%rbp),%r12
1307
xorq %r11,%r14
1308
1309
xorq %rax,%rdi
1310
rorq $14,%r13
1311
movq %rax,%r10
1312
1313
andq %rdi,%r15
1314
rorq $28,%r14
1315
addq %r13,%r12
1316
1317
xorq %r15,%r10
1318
addq %r12,%rcx
1319
addq %r12,%r10
1320
1321
leaq 24(%rbp),%rbp
1322
movq 88(%rsp),%r13
1323
movq 64(%rsp),%r15
1324
1325
movq %r13,%r12
1326
rorq $7,%r13
1327
addq %r14,%r10
1328
movq %r15,%r14
1329
rorq $42,%r15
1330
1331
xorq %r12,%r13
1332
shrq $7,%r12
1333
rorq $1,%r13
1334
xorq %r14,%r15
1335
shrq $6,%r14
1336
1337
rorq $19,%r15
1338
xorq %r13,%r12
1339
xorq %r14,%r15
1340
addq 24(%rsp),%r12
1341
1342
addq 80(%rsp),%r12
1343
movq %rcx,%r13
1344
addq %r15,%r12
1345
movq %r10,%r14
1346
rorq $23,%r13
1347
movq %rdx,%r15
1348
1349
xorq %rcx,%r13
1350
rorq $5,%r14
1351
xorq %r8,%r15
1352
1353
movq %r12,80(%rsp)
1354
xorq %r10,%r14
1355
andq %rcx,%r15
1356
1357
rorq $4,%r13
1358
addq %r9,%r12
1359
xorq %r8,%r15
1360
1361
rorq $6,%r14
1362
xorq %rcx,%r13
1363
addq %r15,%r12
1364
1365
movq %r10,%r15
1366
addq (%rbp),%r12
1367
xorq %r10,%r14
1368
1369
xorq %r11,%r15
1370
rorq $14,%r13
1371
movq %r11,%r9
1372
1373
andq %r15,%rdi
1374
rorq $28,%r14
1375
addq %r13,%r12
1376
1377
xorq %rdi,%r9
1378
addq %r12,%rbx
1379
addq %r12,%r9
1380
1381
leaq 8(%rbp),%rbp
1382
movq 96(%rsp),%r13
1383
movq 72(%rsp),%rdi
1384
1385
movq %r13,%r12
1386
rorq $7,%r13
1387
addq %r14,%r9
1388
movq %rdi,%r14
1389
rorq $42,%rdi
1390
1391
xorq %r12,%r13
1392
shrq $7,%r12
1393
rorq $1,%r13
1394
xorq %r14,%rdi
1395
shrq $6,%r14
1396
1397
rorq $19,%rdi
1398
xorq %r13,%r12
1399
xorq %r14,%rdi
1400
addq 32(%rsp),%r12
1401
1402
addq 88(%rsp),%r12
1403
movq %rbx,%r13
1404
addq %rdi,%r12
1405
movq %r9,%r14
1406
rorq $23,%r13
1407
movq %rcx,%rdi
1408
1409
xorq %rbx,%r13
1410
rorq $5,%r14
1411
xorq %rdx,%rdi
1412
1413
movq %r12,88(%rsp)
1414
xorq %r9,%r14
1415
andq %rbx,%rdi
1416
1417
rorq $4,%r13
1418
addq %r8,%r12
1419
xorq %rdx,%rdi
1420
1421
rorq $6,%r14
1422
xorq %rbx,%r13
1423
addq %rdi,%r12
1424
1425
movq %r9,%rdi
1426
addq (%rbp),%r12
1427
xorq %r9,%r14
1428
1429
xorq %r10,%rdi
1430
rorq $14,%r13
1431
movq %r10,%r8
1432
1433
andq %rdi,%r15
1434
rorq $28,%r14
1435
addq %r13,%r12
1436
1437
xorq %r15,%r8
1438
addq %r12,%rax
1439
addq %r12,%r8
1440
1441
leaq 24(%rbp),%rbp
1442
movq 104(%rsp),%r13
1443
movq 80(%rsp),%r15
1444
1445
movq %r13,%r12
1446
rorq $7,%r13
1447
addq %r14,%r8
1448
movq %r15,%r14
1449
rorq $42,%r15
1450
1451
xorq %r12,%r13
1452
shrq $7,%r12
1453
rorq $1,%r13
1454
xorq %r14,%r15
1455
shrq $6,%r14
1456
1457
rorq $19,%r15
1458
xorq %r13,%r12
1459
xorq %r14,%r15
1460
addq 40(%rsp),%r12
1461
1462
addq 96(%rsp),%r12
1463
movq %rax,%r13
1464
addq %r15,%r12
1465
movq %r8,%r14
1466
rorq $23,%r13
1467
movq %rbx,%r15
1468
1469
xorq %rax,%r13
1470
rorq $5,%r14
1471
xorq %rcx,%r15
1472
1473
movq %r12,96(%rsp)
1474
xorq %r8,%r14
1475
andq %rax,%r15
1476
1477
rorq $4,%r13
1478
addq %rdx,%r12
1479
xorq %rcx,%r15
1480
1481
rorq $6,%r14
1482
xorq %rax,%r13
1483
addq %r15,%r12
1484
1485
movq %r8,%r15
1486
addq (%rbp),%r12
1487
xorq %r8,%r14
1488
1489
xorq %r9,%r15
1490
rorq $14,%r13
1491
movq %r9,%rdx
1492
1493
andq %r15,%rdi
1494
rorq $28,%r14
1495
addq %r13,%r12
1496
1497
xorq %rdi,%rdx
1498
addq %r12,%r11
1499
addq %r12,%rdx
1500
1501
leaq 8(%rbp),%rbp
1502
movq 112(%rsp),%r13
1503
movq 88(%rsp),%rdi
1504
1505
movq %r13,%r12
1506
rorq $7,%r13
1507
addq %r14,%rdx
1508
movq %rdi,%r14
1509
rorq $42,%rdi
1510
1511
xorq %r12,%r13
1512
shrq $7,%r12
1513
rorq $1,%r13
1514
xorq %r14,%rdi
1515
shrq $6,%r14
1516
1517
rorq $19,%rdi
1518
xorq %r13,%r12
1519
xorq %r14,%rdi
1520
addq 48(%rsp),%r12
1521
1522
addq 104(%rsp),%r12
1523
movq %r11,%r13
1524
addq %rdi,%r12
1525
movq %rdx,%r14
1526
rorq $23,%r13
1527
movq %rax,%rdi
1528
1529
xorq %r11,%r13
1530
rorq $5,%r14
1531
xorq %rbx,%rdi
1532
1533
movq %r12,104(%rsp)
1534
xorq %rdx,%r14
1535
andq %r11,%rdi
1536
1537
rorq $4,%r13
1538
addq %rcx,%r12
1539
xorq %rbx,%rdi
1540
1541
rorq $6,%r14
1542
xorq %r11,%r13
1543
addq %rdi,%r12
1544
1545
movq %rdx,%rdi
1546
addq (%rbp),%r12
1547
xorq %rdx,%r14
1548
1549
xorq %r8,%rdi
1550
rorq $14,%r13
1551
movq %r8,%rcx
1552
1553
andq %rdi,%r15
1554
rorq $28,%r14
1555
addq %r13,%r12
1556
1557
xorq %r15,%rcx
1558
addq %r12,%r10
1559
addq %r12,%rcx
1560
1561
leaq 24(%rbp),%rbp
1562
movq 120(%rsp),%r13
1563
movq 96(%rsp),%r15
1564
1565
movq %r13,%r12
1566
rorq $7,%r13
1567
addq %r14,%rcx
1568
movq %r15,%r14
1569
rorq $42,%r15
1570
1571
xorq %r12,%r13
1572
shrq $7,%r12
1573
rorq $1,%r13
1574
xorq %r14,%r15
1575
shrq $6,%r14
1576
1577
rorq $19,%r15
1578
xorq %r13,%r12
1579
xorq %r14,%r15
1580
addq 56(%rsp),%r12
1581
1582
addq 112(%rsp),%r12
1583
movq %r10,%r13
1584
addq %r15,%r12
1585
movq %rcx,%r14
1586
rorq $23,%r13
1587
movq %r11,%r15
1588
1589
xorq %r10,%r13
1590
rorq $5,%r14
1591
xorq %rax,%r15
1592
1593
movq %r12,112(%rsp)
1594
xorq %rcx,%r14
1595
andq %r10,%r15
1596
1597
rorq $4,%r13
1598
addq %rbx,%r12
1599
xorq %rax,%r15
1600
1601
rorq $6,%r14
1602
xorq %r10,%r13
1603
addq %r15,%r12
1604
1605
movq %rcx,%r15
1606
addq (%rbp),%r12
1607
xorq %rcx,%r14
1608
1609
xorq %rdx,%r15
1610
rorq $14,%r13
1611
movq %rdx,%rbx
1612
1613
andq %r15,%rdi
1614
rorq $28,%r14
1615
addq %r13,%r12
1616
1617
xorq %rdi,%rbx
1618
addq %r12,%r9
1619
addq %r12,%rbx
1620
1621
leaq 8(%rbp),%rbp
1622
movq 0(%rsp),%r13
1623
movq 104(%rsp),%rdi
1624
1625
movq %r13,%r12
1626
rorq $7,%r13
1627
addq %r14,%rbx
1628
movq %rdi,%r14
1629
rorq $42,%rdi
1630
1631
xorq %r12,%r13
1632
shrq $7,%r12
1633
rorq $1,%r13
1634
xorq %r14,%rdi
1635
shrq $6,%r14
1636
1637
rorq $19,%rdi
1638
xorq %r13,%r12
1639
xorq %r14,%rdi
1640
addq 64(%rsp),%r12
1641
1642
addq 120(%rsp),%r12
1643
movq %r9,%r13
1644
addq %rdi,%r12
1645
movq %rbx,%r14
1646
rorq $23,%r13
1647
movq %r10,%rdi
1648
1649
xorq %r9,%r13
1650
rorq $5,%r14
1651
xorq %r11,%rdi
1652
1653
movq %r12,120(%rsp)
1654
xorq %rbx,%r14
1655
andq %r9,%rdi
1656
1657
rorq $4,%r13
1658
addq %rax,%r12
1659
xorq %r11,%rdi
1660
1661
rorq $6,%r14
1662
xorq %r9,%r13
1663
addq %rdi,%r12
1664
1665
movq %rbx,%rdi
1666
addq (%rbp),%r12
1667
xorq %rbx,%r14
1668
1669
xorq %rcx,%rdi
1670
rorq $14,%r13
1671
movq %rcx,%rax
1672
1673
andq %rdi,%r15
1674
rorq $28,%r14
1675
addq %r13,%r12
1676
1677
xorq %r15,%rax
1678
addq %r12,%r8
1679
addq %r12,%rax
1680
1681
leaq 24(%rbp),%rbp
1682
cmpb $0,7(%rbp)
1683
jnz .Lrounds_16_xx
1684
1685
movq 128+0(%rsp),%rdi
1686
addq %r14,%rax
1687
leaq 128(%rsi),%rsi
1688
1689
addq 0(%rdi),%rax
1690
addq 8(%rdi),%rbx
1691
addq 16(%rdi),%rcx
1692
addq 24(%rdi),%rdx
1693
addq 32(%rdi),%r8
1694
addq 40(%rdi),%r9
1695
addq 48(%rdi),%r10
1696
addq 56(%rdi),%r11
1697
1698
cmpq 128+16(%rsp),%rsi
1699
1700
movq %rax,0(%rdi)
1701
movq %rbx,8(%rdi)
1702
movq %rcx,16(%rdi)
1703
movq %rdx,24(%rdi)
1704
movq %r8,32(%rdi)
1705
movq %r9,40(%rdi)
1706
movq %r10,48(%rdi)
1707
movq %r11,56(%rdi)
1708
jb .Lloop
1709
1710
movq 152(%rsp),%rsi
1711
.cfi_def_cfa %rsi,8
1712
movq -48(%rsi),%r15
1713
.cfi_restore %r15
1714
movq -40(%rsi),%r14
1715
.cfi_restore %r14
1716
movq -32(%rsi),%r13
1717
.cfi_restore %r13
1718
movq -24(%rsi),%r12
1719
.cfi_restore %r12
1720
movq -16(%rsi),%rbp
1721
.cfi_restore %rbp
1722
movq -8(%rsi),%rbx
1723
.cfi_restore %rbx
1724
leaq (%rsi),%rsp
1725
.cfi_def_cfa_register %rsp
1726
.Lepilogue:
1727
.byte 0xf3,0xc3
1728
.cfi_endproc
1729
.size sha512_block_data_order,.-sha512_block_data_order
1730
.section .rodata
1731
.align 64
1732
.type K512,@object
1733
K512:
1734
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
1735
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
1736
.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1737
.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1738
.quad 0x3956c25bf348b538,0x59f111f1b605d019
1739
.quad 0x3956c25bf348b538,0x59f111f1b605d019
1740
.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
1741
.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
1742
.quad 0xd807aa98a3030242,0x12835b0145706fbe
1743
.quad 0xd807aa98a3030242,0x12835b0145706fbe
1744
.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1745
.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1746
.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
1747
.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
1748
.quad 0x9bdc06a725c71235,0xc19bf174cf692694
1749
.quad 0x9bdc06a725c71235,0xc19bf174cf692694
1750
.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
1751
.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
1752
.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1753
.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1754
.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
1755
.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
1756
.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1757
.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1758
.quad 0x983e5152ee66dfab,0xa831c66d2db43210
1759
.quad 0x983e5152ee66dfab,0xa831c66d2db43210
1760
.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
1761
.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
1762
.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
1763
.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
1764
.quad 0x06ca6351e003826f,0x142929670a0e6e70
1765
.quad 0x06ca6351e003826f,0x142929670a0e6e70
1766
.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
1767
.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
1768
.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1769
.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1770
.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
1771
.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
1772
.quad 0x81c2c92e47edaee6,0x92722c851482353b
1773
.quad 0x81c2c92e47edaee6,0x92722c851482353b
1774
.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
1775
.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
1776
.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
1777
.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
1778
.quad 0xd192e819d6ef5218,0xd69906245565a910
1779
.quad 0xd192e819d6ef5218,0xd69906245565a910
1780
.quad 0xf40e35855771202a,0x106aa07032bbd1b8
1781
.quad 0xf40e35855771202a,0x106aa07032bbd1b8
1782
.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
1783
.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
1784
.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1785
.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1786
.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1787
.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1788
.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1789
.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1790
.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
1791
.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
1792
.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
1793
.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
1794
.quad 0x90befffa23631e28,0xa4506cebde82bde9
1795
.quad 0x90befffa23631e28,0xa4506cebde82bde9
1796
.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
1797
.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
1798
.quad 0xca273eceea26619c,0xd186b8c721c0c207
1799
.quad 0xca273eceea26619c,0xd186b8c721c0c207
1800
.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1801
.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1802
.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
1803
.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
1804
.quad 0x113f9804bef90dae,0x1b710b35131c471b
1805
.quad 0x113f9804bef90dae,0x1b710b35131c471b
1806
.quad 0x28db77f523047d84,0x32caab7b40c72493
1807
.quad 0x28db77f523047d84,0x32caab7b40c72493
1808
.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1809
.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1810
.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1811
.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1812
.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
1813
.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
1814
1815
.quad 0x0001020304050607,0x08090a0b0c0d0e0f
1816
.quad 0x0001020304050607,0x08090a0b0c0d0e0f
1817
.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1818
.previous
1819
.type sha512_block_data_order_xop,@function
1820
.align 64
1821
sha512_block_data_order_xop:
1822
.cfi_startproc
1823
.Lxop_shortcut:
1824
movq %rsp,%rax
1825
.cfi_def_cfa_register %rax
1826
pushq %rbx
1827
.cfi_offset %rbx,-16
1828
pushq %rbp
1829
.cfi_offset %rbp,-24
1830
pushq %r12
1831
.cfi_offset %r12,-32
1832
pushq %r13
1833
.cfi_offset %r13,-40
1834
pushq %r14
1835
.cfi_offset %r14,-48
1836
pushq %r15
1837
.cfi_offset %r15,-56
1838
shlq $4,%rdx
1839
subq $160,%rsp
1840
leaq (%rsi,%rdx,8),%rdx
1841
andq $-64,%rsp
1842
movq %rdi,128+0(%rsp)
1843
movq %rsi,128+8(%rsp)
1844
movq %rdx,128+16(%rsp)
1845
movq %rax,152(%rsp)
1846
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
1847
.Lprologue_xop:
1848
1849
vzeroupper
1850
movq 0(%rdi),%rax
1851
movq 8(%rdi),%rbx
1852
movq 16(%rdi),%rcx
1853
movq 24(%rdi),%rdx
1854
movq 32(%rdi),%r8
1855
movq 40(%rdi),%r9
1856
movq 48(%rdi),%r10
1857
movq 56(%rdi),%r11
1858
jmp .Lloop_xop
1859
.align 16
1860
.Lloop_xop:
1861
vmovdqa K512+1280(%rip),%xmm11
1862
vmovdqu 0(%rsi),%xmm0
1863
leaq K512+128(%rip),%rbp
1864
vmovdqu 16(%rsi),%xmm1
1865
vmovdqu 32(%rsi),%xmm2
1866
vpshufb %xmm11,%xmm0,%xmm0
1867
vmovdqu 48(%rsi),%xmm3
1868
vpshufb %xmm11,%xmm1,%xmm1
1869
vmovdqu 64(%rsi),%xmm4
1870
vpshufb %xmm11,%xmm2,%xmm2
1871
vmovdqu 80(%rsi),%xmm5
1872
vpshufb %xmm11,%xmm3,%xmm3
1873
vmovdqu 96(%rsi),%xmm6
1874
vpshufb %xmm11,%xmm4,%xmm4
1875
vmovdqu 112(%rsi),%xmm7
1876
vpshufb %xmm11,%xmm5,%xmm5
1877
vpaddq -128(%rbp),%xmm0,%xmm8
1878
vpshufb %xmm11,%xmm6,%xmm6
1879
vpaddq -96(%rbp),%xmm1,%xmm9
1880
vpshufb %xmm11,%xmm7,%xmm7
1881
vpaddq -64(%rbp),%xmm2,%xmm10
1882
vpaddq -32(%rbp),%xmm3,%xmm11
1883
vmovdqa %xmm8,0(%rsp)
1884
vpaddq 0(%rbp),%xmm4,%xmm8
1885
vmovdqa %xmm9,16(%rsp)
1886
vpaddq 32(%rbp),%xmm5,%xmm9
1887
vmovdqa %xmm10,32(%rsp)
1888
vpaddq 64(%rbp),%xmm6,%xmm10
1889
vmovdqa %xmm11,48(%rsp)
1890
vpaddq 96(%rbp),%xmm7,%xmm11
1891
vmovdqa %xmm8,64(%rsp)
1892
movq %rax,%r14
1893
vmovdqa %xmm9,80(%rsp)
1894
movq %rbx,%rdi
1895
vmovdqa %xmm10,96(%rsp)
1896
xorq %rcx,%rdi
1897
vmovdqa %xmm11,112(%rsp)
1898
movq %r8,%r13
1899
jmp .Lxop_00_47
1900
1901
.align 16
1902
.Lxop_00_47:
1903
addq $256,%rbp
1904
vpalignr $8,%xmm0,%xmm1,%xmm8
1905
rorq $23,%r13
1906
movq %r14,%rax
1907
vpalignr $8,%xmm4,%xmm5,%xmm11
1908
movq %r9,%r12
1909
rorq $5,%r14
1910
.byte 143,72,120,195,200,56
1911
xorq %r8,%r13
1912
xorq %r10,%r12
1913
vpsrlq $7,%xmm8,%xmm8
1914
rorq $4,%r13
1915
xorq %rax,%r14
1916
vpaddq %xmm11,%xmm0,%xmm0
1917
andq %r8,%r12
1918
xorq %r8,%r13
1919
addq 0(%rsp),%r11
1920
movq %rax,%r15
1921
.byte 143,72,120,195,209,7
1922
xorq %r10,%r12
1923
rorq $6,%r14
1924
vpxor %xmm9,%xmm8,%xmm8
1925
xorq %rbx,%r15
1926
addq %r12,%r11
1927
rorq $14,%r13
1928
andq %r15,%rdi
1929
.byte 143,104,120,195,223,3
1930
xorq %rax,%r14
1931
addq %r13,%r11
1932
vpxor %xmm10,%xmm8,%xmm8
1933
xorq %rbx,%rdi
1934
rorq $28,%r14
1935
vpsrlq $6,%xmm7,%xmm10
1936
addq %r11,%rdx
1937
addq %rdi,%r11
1938
vpaddq %xmm8,%xmm0,%xmm0
1939
movq %rdx,%r13
1940
addq %r11,%r14
1941
.byte 143,72,120,195,203,42
1942
rorq $23,%r13
1943
movq %r14,%r11
1944
vpxor %xmm10,%xmm11,%xmm11
1945
movq %r8,%r12
1946
rorq $5,%r14
1947
xorq %rdx,%r13
1948
xorq %r9,%r12
1949
vpxor %xmm9,%xmm11,%xmm11
1950
rorq $4,%r13
1951
xorq %r11,%r14
1952
andq %rdx,%r12
1953
xorq %rdx,%r13
1954
vpaddq %xmm11,%xmm0,%xmm0
1955
addq 8(%rsp),%r10
1956
movq %r11,%rdi
1957
xorq %r9,%r12
1958
rorq $6,%r14
1959
vpaddq -128(%rbp),%xmm0,%xmm10
1960
xorq %rax,%rdi
1961
addq %r12,%r10
1962
rorq $14,%r13
1963
andq %rdi,%r15
1964
xorq %r11,%r14
1965
addq %r13,%r10
1966
xorq %rax,%r15
1967
rorq $28,%r14
1968
addq %r10,%rcx
1969
addq %r15,%r10
1970
movq %rcx,%r13
1971
addq %r10,%r14
1972
vmovdqa %xmm10,0(%rsp)
1973
vpalignr $8,%xmm1,%xmm2,%xmm8
1974
rorq $23,%r13
1975
movq %r14,%r10
1976
vpalignr $8,%xmm5,%xmm6,%xmm11
1977
movq %rdx,%r12
1978
rorq $5,%r14
1979
.byte 143,72,120,195,200,56
1980
xorq %rcx,%r13
1981
xorq %r8,%r12
1982
vpsrlq $7,%xmm8,%xmm8
1983
rorq $4,%r13
1984
xorq %r10,%r14
1985
vpaddq %xmm11,%xmm1,%xmm1
1986
andq %rcx,%r12
1987
xorq %rcx,%r13
1988
addq 16(%rsp),%r9
1989
movq %r10,%r15
1990
.byte 143,72,120,195,209,7
1991
xorq %r8,%r12
1992
rorq $6,%r14
1993
vpxor %xmm9,%xmm8,%xmm8
1994
xorq %r11,%r15
1995
addq %r12,%r9
1996
rorq $14,%r13
1997
andq %r15,%rdi
1998
.byte 143,104,120,195,216,3
1999
xorq %r10,%r14
2000
addq %r13,%r9
2001
vpxor %xmm10,%xmm8,%xmm8
2002
xorq %r11,%rdi
2003
rorq $28,%r14
2004
vpsrlq $6,%xmm0,%xmm10
2005
addq %r9,%rbx
2006
addq %rdi,%r9
2007
vpaddq %xmm8,%xmm1,%xmm1
2008
movq %rbx,%r13
2009
addq %r9,%r14
2010
.byte 143,72,120,195,203,42
2011
rorq $23,%r13
2012
movq %r14,%r9
2013
vpxor %xmm10,%xmm11,%xmm11
2014
movq %rcx,%r12
2015
rorq $5,%r14
2016
xorq %rbx,%r13
2017
xorq %rdx,%r12
2018
vpxor %xmm9,%xmm11,%xmm11
2019
rorq $4,%r13
2020
xorq %r9,%r14
2021
andq %rbx,%r12
2022
xorq %rbx,%r13
2023
vpaddq %xmm11,%xmm1,%xmm1
2024
addq 24(%rsp),%r8
2025
movq %r9,%rdi
2026
xorq %rdx,%r12
2027
rorq $6,%r14
2028
vpaddq -96(%rbp),%xmm1,%xmm10
2029
xorq %r10,%rdi
2030
addq %r12,%r8
2031
rorq $14,%r13
2032
andq %rdi,%r15
2033
xorq %r9,%r14
2034
addq %r13,%r8
2035
xorq %r10,%r15
2036
rorq $28,%r14
2037
addq %r8,%rax
2038
addq %r15,%r8
2039
movq %rax,%r13
2040
addq %r8,%r14
2041
vmovdqa %xmm10,16(%rsp)
2042
vpalignr $8,%xmm2,%xmm3,%xmm8
2043
rorq $23,%r13
2044
movq %r14,%r8
2045
vpalignr $8,%xmm6,%xmm7,%xmm11
2046
movq %rbx,%r12
2047
rorq $5,%r14
2048
.byte 143,72,120,195,200,56
2049
xorq %rax,%r13
2050
xorq %rcx,%r12
2051
vpsrlq $7,%xmm8,%xmm8
2052
rorq $4,%r13
2053
xorq %r8,%r14
2054
vpaddq %xmm11,%xmm2,%xmm2
2055
andq %rax,%r12
2056
xorq %rax,%r13
2057
addq 32(%rsp),%rdx
2058
movq %r8,%r15
2059
.byte 143,72,120,195,209,7
2060
xorq %rcx,%r12
2061
rorq $6,%r14
2062
vpxor %xmm9,%xmm8,%xmm8
2063
xorq %r9,%r15
2064
addq %r12,%rdx
2065
rorq $14,%r13
2066
andq %r15,%rdi
2067
.byte 143,104,120,195,217,3
2068
xorq %r8,%r14
2069
addq %r13,%rdx
2070
vpxor %xmm10,%xmm8,%xmm8
2071
xorq %r9,%rdi
2072
rorq $28,%r14
2073
vpsrlq $6,%xmm1,%xmm10
2074
addq %rdx,%r11
2075
addq %rdi,%rdx
2076
vpaddq %xmm8,%xmm2,%xmm2
2077
movq %r11,%r13
2078
addq %rdx,%r14
2079
.byte 143,72,120,195,203,42
2080
rorq $23,%r13
2081
movq %r14,%rdx
2082
vpxor %xmm10,%xmm11,%xmm11
2083
movq %rax,%r12
2084
rorq $5,%r14
2085
xorq %r11,%r13
2086
xorq %rbx,%r12
2087
vpxor %xmm9,%xmm11,%xmm11
2088
rorq $4,%r13
2089
xorq %rdx,%r14
2090
andq %r11,%r12
2091
xorq %r11,%r13
2092
vpaddq %xmm11,%xmm2,%xmm2
2093
addq 40(%rsp),%rcx
2094
movq %rdx,%rdi
2095
xorq %rbx,%r12
2096
rorq $6,%r14
2097
vpaddq -64(%rbp),%xmm2,%xmm10
2098
xorq %r8,%rdi
2099
addq %r12,%rcx
2100
rorq $14,%r13
2101
andq %rdi,%r15
2102
xorq %rdx,%r14
2103
addq %r13,%rcx
2104
xorq %r8,%r15
2105
rorq $28,%r14
2106
addq %rcx,%r10
2107
addq %r15,%rcx
2108
movq %r10,%r13
2109
addq %rcx,%r14
2110
vmovdqa %xmm10,32(%rsp)
2111
vpalignr $8,%xmm3,%xmm4,%xmm8
2112
rorq $23,%r13
2113
movq %r14,%rcx
2114
vpalignr $8,%xmm7,%xmm0,%xmm11
2115
movq %r11,%r12
2116
rorq $5,%r14
2117
.byte 143,72,120,195,200,56
2118
xorq %r10,%r13
2119
xorq %rax,%r12
2120
vpsrlq $7,%xmm8,%xmm8
2121
rorq $4,%r13
2122
xorq %rcx,%r14
2123
vpaddq %xmm11,%xmm3,%xmm3
2124
andq %r10,%r12
2125
xorq %r10,%r13
2126
addq 48(%rsp),%rbx
2127
movq %rcx,%r15
2128
.byte 143,72,120,195,209,7
2129
xorq %rax,%r12
2130
rorq $6,%r14
2131
vpxor %xmm9,%xmm8,%xmm8
2132
xorq %rdx,%r15
2133
addq %r12,%rbx
2134
rorq $14,%r13
2135
andq %r15,%rdi
2136
.byte 143,104,120,195,218,3
2137
xorq %rcx,%r14
2138
addq %r13,%rbx
2139
vpxor %xmm10,%xmm8,%xmm8
2140
xorq %rdx,%rdi
2141
rorq $28,%r14
2142
vpsrlq $6,%xmm2,%xmm10
2143
addq %rbx,%r9
2144
addq %rdi,%rbx
2145
vpaddq %xmm8,%xmm3,%xmm3
2146
movq %r9,%r13
2147
addq %rbx,%r14
2148
.byte 143,72,120,195,203,42
2149
rorq $23,%r13
2150
movq %r14,%rbx
2151
vpxor %xmm10,%xmm11,%xmm11
2152
movq %r10,%r12
2153
rorq $5,%r14
2154
xorq %r9,%r13
2155
xorq %r11,%r12
2156
vpxor %xmm9,%xmm11,%xmm11
2157
rorq $4,%r13
2158
xorq %rbx,%r14
2159
andq %r9,%r12
2160
xorq %r9,%r13
2161
vpaddq %xmm11,%xmm3,%xmm3
2162
addq 56(%rsp),%rax
2163
movq %rbx,%rdi
2164
xorq %r11,%r12
2165
rorq $6,%r14
2166
vpaddq -32(%rbp),%xmm3,%xmm10
2167
xorq %rcx,%rdi
2168
addq %r12,%rax
2169
rorq $14,%r13
2170
andq %rdi,%r15
2171
xorq %rbx,%r14
2172
addq %r13,%rax
2173
xorq %rcx,%r15
2174
rorq $28,%r14
2175
addq %rax,%r8
2176
addq %r15,%rax
2177
movq %r8,%r13
2178
addq %rax,%r14
2179
vmovdqa %xmm10,48(%rsp)
2180
vpalignr $8,%xmm4,%xmm5,%xmm8
2181
rorq $23,%r13
2182
movq %r14,%rax
2183
vpalignr $8,%xmm0,%xmm1,%xmm11
2184
movq %r9,%r12
2185
rorq $5,%r14
2186
.byte 143,72,120,195,200,56
2187
xorq %r8,%r13
2188
xorq %r10,%r12
2189
vpsrlq $7,%xmm8,%xmm8
2190
rorq $4,%r13
2191
xorq %rax,%r14
2192
vpaddq %xmm11,%xmm4,%xmm4
2193
andq %r8,%r12
2194
xorq %r8,%r13
2195
addq 64(%rsp),%r11
2196
movq %rax,%r15
2197
.byte 143,72,120,195,209,7
2198
xorq %r10,%r12
2199
rorq $6,%r14
2200
vpxor %xmm9,%xmm8,%xmm8
2201
xorq %rbx,%r15
2202
addq %r12,%r11
2203
rorq $14,%r13
2204
andq %r15,%rdi
2205
.byte 143,104,120,195,219,3
2206
xorq %rax,%r14
2207
addq %r13,%r11
2208
vpxor %xmm10,%xmm8,%xmm8
2209
xorq %rbx,%rdi
2210
rorq $28,%r14
2211
vpsrlq $6,%xmm3,%xmm10
2212
addq %r11,%rdx
2213
addq %rdi,%r11
2214
vpaddq %xmm8,%xmm4,%xmm4
2215
movq %rdx,%r13
2216
addq %r11,%r14
2217
.byte 143,72,120,195,203,42
2218
rorq $23,%r13
2219
movq %r14,%r11
2220
vpxor %xmm10,%xmm11,%xmm11
2221
movq %r8,%r12
2222
rorq $5,%r14
2223
xorq %rdx,%r13
2224
xorq %r9,%r12
2225
vpxor %xmm9,%xmm11,%xmm11
2226
rorq $4,%r13
2227
xorq %r11,%r14
2228
andq %rdx,%r12
2229
xorq %rdx,%r13
2230
vpaddq %xmm11,%xmm4,%xmm4
2231
addq 72(%rsp),%r10
2232
movq %r11,%rdi
2233
xorq %r9,%r12
2234
rorq $6,%r14
2235
vpaddq 0(%rbp),%xmm4,%xmm10
2236
xorq %rax,%rdi
2237
addq %r12,%r10
2238
rorq $14,%r13
2239
andq %rdi,%r15
2240
xorq %r11,%r14
2241
addq %r13,%r10
2242
xorq %rax,%r15
2243
rorq $28,%r14
2244
addq %r10,%rcx
2245
addq %r15,%r10
2246
movq %rcx,%r13
2247
addq %r10,%r14
2248
vmovdqa %xmm10,64(%rsp)
2249
vpalignr $8,%xmm5,%xmm6,%xmm8
2250
rorq $23,%r13
2251
movq %r14,%r10
2252
vpalignr $8,%xmm1,%xmm2,%xmm11
2253
movq %rdx,%r12
2254
rorq $5,%r14
2255
.byte 143,72,120,195,200,56
2256
xorq %rcx,%r13
2257
xorq %r8,%r12
2258
vpsrlq $7,%xmm8,%xmm8
2259
rorq $4,%r13
2260
xorq %r10,%r14
2261
vpaddq %xmm11,%xmm5,%xmm5
2262
andq %rcx,%r12
2263
xorq %rcx,%r13
2264
addq 80(%rsp),%r9
2265
movq %r10,%r15
2266
.byte 143,72,120,195,209,7
2267
xorq %r8,%r12
2268
rorq $6,%r14
2269
vpxor %xmm9,%xmm8,%xmm8
2270
xorq %r11,%r15
2271
addq %r12,%r9
2272
rorq $14,%r13
2273
andq %r15,%rdi
2274
.byte 143,104,120,195,220,3
2275
xorq %r10,%r14
2276
addq %r13,%r9
2277
vpxor %xmm10,%xmm8,%xmm8
2278
xorq %r11,%rdi
2279
rorq $28,%r14
2280
vpsrlq $6,%xmm4,%xmm10
2281
addq %r9,%rbx
2282
addq %rdi,%r9
2283
vpaddq %xmm8,%xmm5,%xmm5
2284
movq %rbx,%r13
2285
addq %r9,%r14
2286
.byte 143,72,120,195,203,42
2287
rorq $23,%r13
2288
movq %r14,%r9
2289
vpxor %xmm10,%xmm11,%xmm11
2290
movq %rcx,%r12
2291
rorq $5,%r14
2292
xorq %rbx,%r13
2293
xorq %rdx,%r12
2294
vpxor %xmm9,%xmm11,%xmm11
2295
rorq $4,%r13
2296
xorq %r9,%r14
2297
andq %rbx,%r12
2298
xorq %rbx,%r13
2299
vpaddq %xmm11,%xmm5,%xmm5
2300
addq 88(%rsp),%r8
2301
movq %r9,%rdi
2302
xorq %rdx,%r12
2303
rorq $6,%r14
2304
vpaddq 32(%rbp),%xmm5,%xmm10
2305
xorq %r10,%rdi
2306
addq %r12,%r8
2307
rorq $14,%r13
2308
andq %rdi,%r15
2309
xorq %r9,%r14
2310
addq %r13,%r8
2311
xorq %r10,%r15
2312
rorq $28,%r14
2313
addq %r8,%rax
2314
addq %r15,%r8
2315
movq %rax,%r13
2316
addq %r8,%r14
2317
vmovdqa %xmm10,80(%rsp)
2318
vpalignr $8,%xmm6,%xmm7,%xmm8
2319
rorq $23,%r13
2320
movq %r14,%r8
2321
vpalignr $8,%xmm2,%xmm3,%xmm11
2322
movq %rbx,%r12
2323
rorq $5,%r14
2324
.byte 143,72,120,195,200,56
2325
xorq %rax,%r13
2326
xorq %rcx,%r12
2327
vpsrlq $7,%xmm8,%xmm8
2328
rorq $4,%r13
2329
xorq %r8,%r14
2330
vpaddq %xmm11,%xmm6,%xmm6
2331
andq %rax,%r12
2332
xorq %rax,%r13
2333
addq 96(%rsp),%rdx
2334
movq %r8,%r15
2335
.byte 143,72,120,195,209,7
2336
xorq %rcx,%r12
2337
rorq $6,%r14
2338
vpxor %xmm9,%xmm8,%xmm8
2339
xorq %r9,%r15
2340
addq %r12,%rdx
2341
rorq $14,%r13
2342
andq %r15,%rdi
2343
.byte 143,104,120,195,221,3
2344
xorq %r8,%r14
2345
addq %r13,%rdx
2346
vpxor %xmm10,%xmm8,%xmm8
2347
xorq %r9,%rdi
2348
rorq $28,%r14
2349
vpsrlq $6,%xmm5,%xmm10
2350
addq %rdx,%r11
2351
addq %rdi,%rdx
2352
vpaddq %xmm8,%xmm6,%xmm6
2353
movq %r11,%r13
2354
addq %rdx,%r14
2355
.byte 143,72,120,195,203,42
2356
rorq $23,%r13
2357
movq %r14,%rdx
2358
vpxor %xmm10,%xmm11,%xmm11
2359
movq %rax,%r12
2360
rorq $5,%r14
2361
xorq %r11,%r13
2362
xorq %rbx,%r12
2363
vpxor %xmm9,%xmm11,%xmm11
2364
rorq $4,%r13
2365
xorq %rdx,%r14
2366
andq %r11,%r12
2367
xorq %r11,%r13
2368
vpaddq %xmm11,%xmm6,%xmm6
2369
addq 104(%rsp),%rcx
2370
movq %rdx,%rdi
2371
xorq %rbx,%r12
2372
rorq $6,%r14
2373
vpaddq 64(%rbp),%xmm6,%xmm10
2374
xorq %r8,%rdi
2375
addq %r12,%rcx
2376
rorq $14,%r13
2377
andq %rdi,%r15
2378
xorq %rdx,%r14
2379
addq %r13,%rcx
2380
xorq %r8,%r15
2381
rorq $28,%r14
2382
addq %rcx,%r10
2383
addq %r15,%rcx
2384
movq %r10,%r13
2385
addq %rcx,%r14
2386
vmovdqa %xmm10,96(%rsp)
2387
vpalignr $8,%xmm7,%xmm0,%xmm8
2388
rorq $23,%r13
2389
movq %r14,%rcx
2390
vpalignr $8,%xmm3,%xmm4,%xmm11
2391
movq %r11,%r12
2392
rorq $5,%r14
2393
.byte 143,72,120,195,200,56
2394
xorq %r10,%r13
2395
xorq %rax,%r12
2396
vpsrlq $7,%xmm8,%xmm8
2397
rorq $4,%r13
2398
xorq %rcx,%r14
2399
vpaddq %xmm11,%xmm7,%xmm7
2400
andq %r10,%r12
2401
xorq %r10,%r13
2402
addq 112(%rsp),%rbx
2403
movq %rcx,%r15
2404
.byte 143,72,120,195,209,7
2405
xorq %rax,%r12
2406
rorq $6,%r14
2407
vpxor %xmm9,%xmm8,%xmm8
2408
xorq %rdx,%r15
2409
addq %r12,%rbx
2410
rorq $14,%r13
2411
andq %r15,%rdi
2412
.byte 143,104,120,195,222,3
2413
xorq %rcx,%r14
2414
addq %r13,%rbx
2415
vpxor %xmm10,%xmm8,%xmm8
2416
xorq %rdx,%rdi
2417
rorq $28,%r14
2418
vpsrlq $6,%xmm6,%xmm10
2419
addq %rbx,%r9
2420
addq %rdi,%rbx
2421
vpaddq %xmm8,%xmm7,%xmm7
2422
movq %r9,%r13
2423
addq %rbx,%r14
2424
.byte 143,72,120,195,203,42
2425
rorq $23,%r13
2426
movq %r14,%rbx
2427
vpxor %xmm10,%xmm11,%xmm11
2428
movq %r10,%r12
2429
rorq $5,%r14
2430
xorq %r9,%r13
2431
xorq %r11,%r12
2432
vpxor %xmm9,%xmm11,%xmm11
2433
rorq $4,%r13
2434
xorq %rbx,%r14
2435
andq %r9,%r12
2436
xorq %r9,%r13
2437
vpaddq %xmm11,%xmm7,%xmm7
2438
addq 120(%rsp),%rax
2439
movq %rbx,%rdi
2440
xorq %r11,%r12
2441
rorq $6,%r14
2442
vpaddq 96(%rbp),%xmm7,%xmm10
2443
xorq %rcx,%rdi
2444
addq %r12,%rax
2445
rorq $14,%r13
2446
andq %rdi,%r15
2447
xorq %rbx,%r14
2448
addq %r13,%rax
2449
xorq %rcx,%r15
2450
rorq $28,%r14
2451
addq %rax,%r8
2452
addq %r15,%rax
2453
movq %r8,%r13
2454
addq %rax,%r14
2455
vmovdqa %xmm10,112(%rsp)
2456
cmpb $0,135(%rbp)
2457
jne .Lxop_00_47
2458
rorq $23,%r13
2459
movq %r14,%rax
2460
movq %r9,%r12
2461
rorq $5,%r14
2462
xorq %r8,%r13
2463
xorq %r10,%r12
2464
rorq $4,%r13
2465
xorq %rax,%r14
2466
andq %r8,%r12
2467
xorq %r8,%r13
2468
addq 0(%rsp),%r11
2469
movq %rax,%r15
2470
xorq %r10,%r12
2471
rorq $6,%r14
2472
xorq %rbx,%r15
2473
addq %r12,%r11
2474
rorq $14,%r13
2475
andq %r15,%rdi
2476
xorq %rax,%r14
2477
addq %r13,%r11
2478
xorq %rbx,%rdi
2479
rorq $28,%r14
2480
addq %r11,%rdx
2481
addq %rdi,%r11
2482
movq %rdx,%r13
2483
addq %r11,%r14
2484
rorq $23,%r13
2485
movq %r14,%r11
2486
movq %r8,%r12
2487
rorq $5,%r14
2488
xorq %rdx,%r13
2489
xorq %r9,%r12
2490
rorq $4,%r13
2491
xorq %r11,%r14
2492
andq %rdx,%r12
2493
xorq %rdx,%r13
2494
addq 8(%rsp),%r10
2495
movq %r11,%rdi
2496
xorq %r9,%r12
2497
rorq $6,%r14
2498
xorq %rax,%rdi
2499
addq %r12,%r10
2500
rorq $14,%r13
2501
andq %rdi,%r15
2502
xorq %r11,%r14
2503
addq %r13,%r10
2504
xorq %rax,%r15
2505
rorq $28,%r14
2506
addq %r10,%rcx
2507
addq %r15,%r10
2508
movq %rcx,%r13
2509
addq %r10,%r14
2510
rorq $23,%r13
2511
movq %r14,%r10
2512
movq %rdx,%r12
2513
rorq $5,%r14
2514
xorq %rcx,%r13
2515
xorq %r8,%r12
2516
rorq $4,%r13
2517
xorq %r10,%r14
2518
andq %rcx,%r12
2519
xorq %rcx,%r13
2520
addq 16(%rsp),%r9
2521
movq %r10,%r15
2522
xorq %r8,%r12
2523
rorq $6,%r14
2524
xorq %r11,%r15
2525
addq %r12,%r9
2526
rorq $14,%r13
2527
andq %r15,%rdi
2528
xorq %r10,%r14
2529
addq %r13,%r9
2530
xorq %r11,%rdi
2531
rorq $28,%r14
2532
addq %r9,%rbx
2533
addq %rdi,%r9
2534
movq %rbx,%r13
2535
addq %r9,%r14
2536
rorq $23,%r13
2537
movq %r14,%r9
2538
movq %rcx,%r12
2539
rorq $5,%r14
2540
xorq %rbx,%r13
2541
xorq %rdx,%r12
2542
rorq $4,%r13
2543
xorq %r9,%r14
2544
andq %rbx,%r12
2545
xorq %rbx,%r13
2546
addq 24(%rsp),%r8
2547
movq %r9,%rdi
2548
xorq %rdx,%r12
2549
rorq $6,%r14
2550
xorq %r10,%rdi
2551
addq %r12,%r8
2552
rorq $14,%r13
2553
andq %rdi,%r15
2554
xorq %r9,%r14
2555
addq %r13,%r8
2556
xorq %r10,%r15
2557
rorq $28,%r14
2558
addq %r8,%rax
2559
addq %r15,%r8
2560
movq %rax,%r13
2561
addq %r8,%r14
2562
rorq $23,%r13
2563
movq %r14,%r8
2564
movq %rbx,%r12
2565
rorq $5,%r14
2566
xorq %rax,%r13
2567
xorq %rcx,%r12
2568
rorq $4,%r13
2569
xorq %r8,%r14
2570
andq %rax,%r12
2571
xorq %rax,%r13
2572
addq 32(%rsp),%rdx
2573
movq %r8,%r15
2574
xorq %rcx,%r12
2575
rorq $6,%r14
2576
xorq %r9,%r15
2577
addq %r12,%rdx
2578
rorq $14,%r13
2579
andq %r15,%rdi
2580
xorq %r8,%r14
2581
addq %r13,%rdx
2582
xorq %r9,%rdi
2583
rorq $28,%r14
2584
addq %rdx,%r11
2585
addq %rdi,%rdx
2586
movq %r11,%r13
2587
addq %rdx,%r14
2588
rorq $23,%r13
2589
movq %r14,%rdx
2590
movq %rax,%r12
2591
rorq $5,%r14
2592
xorq %r11,%r13
2593
xorq %rbx,%r12
2594
rorq $4,%r13
2595
xorq %rdx,%r14
2596
andq %r11,%r12
2597
xorq %r11,%r13
2598
addq 40(%rsp),%rcx
2599
movq %rdx,%rdi
2600
xorq %rbx,%r12
2601
rorq $6,%r14
2602
xorq %r8,%rdi
2603
addq %r12,%rcx
2604
rorq $14,%r13
2605
andq %rdi,%r15
2606
xorq %rdx,%r14
2607
addq %r13,%rcx
2608
xorq %r8,%r15
2609
rorq $28,%r14
2610
addq %rcx,%r10
2611
addq %r15,%rcx
2612
movq %r10,%r13
2613
addq %rcx,%r14
2614
rorq $23,%r13
2615
movq %r14,%rcx
2616
movq %r11,%r12
2617
rorq $5,%r14
2618
xorq %r10,%r13
2619
xorq %rax,%r12
2620
rorq $4,%r13
2621
xorq %rcx,%r14
2622
andq %r10,%r12
2623
xorq %r10,%r13
2624
addq 48(%rsp),%rbx
2625
movq %rcx,%r15
2626
xorq %rax,%r12
2627
rorq $6,%r14
2628
xorq %rdx,%r15
2629
addq %r12,%rbx
2630
rorq $14,%r13
2631
andq %r15,%rdi
2632
xorq %rcx,%r14
2633
addq %r13,%rbx
2634
xorq %rdx,%rdi
2635
rorq $28,%r14
2636
addq %rbx,%r9
2637
addq %rdi,%rbx
2638
movq %r9,%r13
2639
addq %rbx,%r14
2640
rorq $23,%r13
2641
movq %r14,%rbx
2642
movq %r10,%r12
2643
rorq $5,%r14
2644
xorq %r9,%r13
2645
xorq %r11,%r12
2646
rorq $4,%r13
2647
xorq %rbx,%r14
2648
andq %r9,%r12
2649
xorq %r9,%r13
2650
addq 56(%rsp),%rax
2651
movq %rbx,%rdi
2652
xorq %r11,%r12
2653
rorq $6,%r14
2654
xorq %rcx,%rdi
2655
addq %r12,%rax
2656
rorq $14,%r13
2657
andq %rdi,%r15
2658
xorq %rbx,%r14
2659
addq %r13,%rax
2660
xorq %rcx,%r15
2661
rorq $28,%r14
2662
addq %rax,%r8
2663
addq %r15,%rax
2664
movq %r8,%r13
2665
addq %rax,%r14
2666
rorq $23,%r13
2667
movq %r14,%rax
2668
movq %r9,%r12
2669
rorq $5,%r14
2670
xorq %r8,%r13
2671
xorq %r10,%r12
2672
rorq $4,%r13
2673
xorq %rax,%r14
2674
andq %r8,%r12
2675
xorq %r8,%r13
2676
addq 64(%rsp),%r11
2677
movq %rax,%r15
2678
xorq %r10,%r12
2679
rorq $6,%r14
2680
xorq %rbx,%r15
2681
addq %r12,%r11
2682
rorq $14,%r13
2683
andq %r15,%rdi
2684
xorq %rax,%r14
2685
addq %r13,%r11
2686
xorq %rbx,%rdi
2687
rorq $28,%r14
2688
addq %r11,%rdx
2689
addq %rdi,%r11
2690
movq %rdx,%r13
2691
addq %r11,%r14
2692
rorq $23,%r13
2693
movq %r14,%r11
2694
movq %r8,%r12
2695
rorq $5,%r14
2696
xorq %rdx,%r13
2697
xorq %r9,%r12
2698
rorq $4,%r13
2699
xorq %r11,%r14
2700
andq %rdx,%r12
2701
xorq %rdx,%r13
2702
addq 72(%rsp),%r10
2703
movq %r11,%rdi
2704
xorq %r9,%r12
2705
rorq $6,%r14
2706
xorq %rax,%rdi
2707
addq %r12,%r10
2708
rorq $14,%r13
2709
andq %rdi,%r15
2710
xorq %r11,%r14
2711
addq %r13,%r10
2712
xorq %rax,%r15
2713
rorq $28,%r14
2714
addq %r10,%rcx
2715
addq %r15,%r10
2716
movq %rcx,%r13
2717
addq %r10,%r14
2718
rorq $23,%r13
2719
movq %r14,%r10
2720
movq %rdx,%r12
2721
rorq $5,%r14
2722
xorq %rcx,%r13
2723
xorq %r8,%r12
2724
rorq $4,%r13
2725
xorq %r10,%r14
2726
andq %rcx,%r12
2727
xorq %rcx,%r13
2728
addq 80(%rsp),%r9
2729
movq %r10,%r15
2730
xorq %r8,%r12
2731
rorq $6,%r14
2732
xorq %r11,%r15
2733
addq %r12,%r9
2734
rorq $14,%r13
2735
andq %r15,%rdi
2736
xorq %r10,%r14
2737
addq %r13,%r9
2738
xorq %r11,%rdi
2739
rorq $28,%r14
2740
addq %r9,%rbx
2741
addq %rdi,%r9
2742
movq %rbx,%r13
2743
addq %r9,%r14
2744
rorq $23,%r13
2745
movq %r14,%r9
2746
movq %rcx,%r12
2747
rorq $5,%r14
2748
xorq %rbx,%r13
2749
xorq %rdx,%r12
2750
rorq $4,%r13
2751
xorq %r9,%r14
2752
andq %rbx,%r12
2753
xorq %rbx,%r13
2754
addq 88(%rsp),%r8
2755
movq %r9,%rdi
2756
xorq %rdx,%r12
2757
rorq $6,%r14
2758
xorq %r10,%rdi
2759
addq %r12,%r8
2760
rorq $14,%r13
2761
andq %rdi,%r15
2762
xorq %r9,%r14
2763
addq %r13,%r8
2764
xorq %r10,%r15
2765
rorq $28,%r14
2766
addq %r8,%rax
2767
addq %r15,%r8
2768
movq %rax,%r13
2769
addq %r8,%r14
2770
rorq $23,%r13
2771
movq %r14,%r8
2772
movq %rbx,%r12
2773
rorq $5,%r14
2774
xorq %rax,%r13
2775
xorq %rcx,%r12
2776
rorq $4,%r13
2777
xorq %r8,%r14
2778
andq %rax,%r12
2779
xorq %rax,%r13
2780
addq 96(%rsp),%rdx
2781
movq %r8,%r15
2782
xorq %rcx,%r12
2783
rorq $6,%r14
2784
xorq %r9,%r15
2785
addq %r12,%rdx
2786
rorq $14,%r13
2787
andq %r15,%rdi
2788
xorq %r8,%r14
2789
addq %r13,%rdx
2790
xorq %r9,%rdi
2791
rorq $28,%r14
2792
addq %rdx,%r11
2793
addq %rdi,%rdx
2794
movq %r11,%r13
2795
addq %rdx,%r14
2796
rorq $23,%r13
2797
movq %r14,%rdx
2798
movq %rax,%r12
2799
rorq $5,%r14
2800
xorq %r11,%r13
2801
xorq %rbx,%r12
2802
rorq $4,%r13
2803
xorq %rdx,%r14
2804
andq %r11,%r12
2805
xorq %r11,%r13
2806
addq 104(%rsp),%rcx
2807
movq %rdx,%rdi
2808
xorq %rbx,%r12
2809
rorq $6,%r14
2810
xorq %r8,%rdi
2811
addq %r12,%rcx
2812
rorq $14,%r13
2813
andq %rdi,%r15
2814
xorq %rdx,%r14
2815
addq %r13,%rcx
2816
xorq %r8,%r15
2817
rorq $28,%r14
2818
addq %rcx,%r10
2819
addq %r15,%rcx
2820
movq %r10,%r13
2821
addq %rcx,%r14
2822
rorq $23,%r13
2823
movq %r14,%rcx
2824
movq %r11,%r12
2825
rorq $5,%r14
2826
xorq %r10,%r13
2827
xorq %rax,%r12
2828
rorq $4,%r13
2829
xorq %rcx,%r14
2830
andq %r10,%r12
2831
xorq %r10,%r13
2832
addq 112(%rsp),%rbx
2833
movq %rcx,%r15
2834
xorq %rax,%r12
2835
rorq $6,%r14
2836
xorq %rdx,%r15
2837
addq %r12,%rbx
2838
rorq $14,%r13
2839
andq %r15,%rdi
2840
xorq %rcx,%r14
2841
addq %r13,%rbx
2842
xorq %rdx,%rdi
2843
rorq $28,%r14
2844
addq %rbx,%r9
2845
addq %rdi,%rbx
2846
movq %r9,%r13
2847
addq %rbx,%r14
2848
rorq $23,%r13
2849
movq %r14,%rbx
2850
movq %r10,%r12
2851
rorq $5,%r14
2852
xorq %r9,%r13
2853
xorq %r11,%r12
2854
rorq $4,%r13
2855
xorq %rbx,%r14
2856
andq %r9,%r12
2857
xorq %r9,%r13
2858
addq 120(%rsp),%rax
2859
movq %rbx,%rdi
2860
xorq %r11,%r12
2861
rorq $6,%r14
2862
xorq %rcx,%rdi
2863
addq %r12,%rax
2864
rorq $14,%r13
2865
andq %rdi,%r15
2866
xorq %rbx,%r14
2867
addq %r13,%rax
2868
xorq %rcx,%r15
2869
rorq $28,%r14
2870
addq %rax,%r8
2871
addq %r15,%rax
2872
movq %r8,%r13
2873
addq %rax,%r14
2874
movq 128+0(%rsp),%rdi
2875
movq %r14,%rax
2876
2877
addq 0(%rdi),%rax
2878
leaq 128(%rsi),%rsi
2879
addq 8(%rdi),%rbx
2880
addq 16(%rdi),%rcx
2881
addq 24(%rdi),%rdx
2882
addq 32(%rdi),%r8
2883
addq 40(%rdi),%r9
2884
addq 48(%rdi),%r10
2885
addq 56(%rdi),%r11
2886
2887
cmpq 128+16(%rsp),%rsi
2888
2889
movq %rax,0(%rdi)
2890
movq %rbx,8(%rdi)
2891
movq %rcx,16(%rdi)
2892
movq %rdx,24(%rdi)
2893
movq %r8,32(%rdi)
2894
movq %r9,40(%rdi)
2895
movq %r10,48(%rdi)
2896
movq %r11,56(%rdi)
2897
jb .Lloop_xop
2898
2899
movq 152(%rsp),%rsi
2900
.cfi_def_cfa %rsi,8
2901
vzeroupper
2902
movq -48(%rsi),%r15
2903
.cfi_restore %r15
2904
movq -40(%rsi),%r14
2905
.cfi_restore %r14
2906
movq -32(%rsi),%r13
2907
.cfi_restore %r13
2908
movq -24(%rsi),%r12
2909
.cfi_restore %r12
2910
movq -16(%rsi),%rbp
2911
.cfi_restore %rbp
2912
movq -8(%rsi),%rbx
2913
.cfi_restore %rbx
2914
leaq (%rsi),%rsp
2915
.cfi_def_cfa_register %rsp
2916
.Lepilogue_xop:
2917
.byte 0xf3,0xc3
2918
.cfi_endproc
2919
.size sha512_block_data_order_xop,.-sha512_block_data_order_xop
2920
.type sha512_block_data_order_avx,@function
2921
.align 64
2922
sha512_block_data_order_avx:
2923
.cfi_startproc
2924
.Lavx_shortcut:
2925
movq %rsp,%rax
2926
.cfi_def_cfa_register %rax
2927
pushq %rbx
2928
.cfi_offset %rbx,-16
2929
pushq %rbp
2930
.cfi_offset %rbp,-24
2931
pushq %r12
2932
.cfi_offset %r12,-32
2933
pushq %r13
2934
.cfi_offset %r13,-40
2935
pushq %r14
2936
.cfi_offset %r14,-48
2937
pushq %r15
2938
.cfi_offset %r15,-56
2939
shlq $4,%rdx
2940
subq $160,%rsp
2941
leaq (%rsi,%rdx,8),%rdx
2942
andq $-64,%rsp
2943
movq %rdi,128+0(%rsp)
2944
movq %rsi,128+8(%rsp)
2945
movq %rdx,128+16(%rsp)
2946
movq %rax,152(%rsp)
2947
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
2948
.Lprologue_avx:
2949
2950
vzeroupper
2951
movq 0(%rdi),%rax
2952
movq 8(%rdi),%rbx
2953
movq 16(%rdi),%rcx
2954
movq 24(%rdi),%rdx
2955
movq 32(%rdi),%r8
2956
movq 40(%rdi),%r9
2957
movq 48(%rdi),%r10
2958
movq 56(%rdi),%r11
2959
jmp .Lloop_avx
2960
.align 16
2961
.Lloop_avx:
2962
vmovdqa K512+1280(%rip),%xmm11
2963
vmovdqu 0(%rsi),%xmm0
2964
leaq K512+128(%rip),%rbp
2965
vmovdqu 16(%rsi),%xmm1
2966
vmovdqu 32(%rsi),%xmm2
2967
vpshufb %xmm11,%xmm0,%xmm0
2968
vmovdqu 48(%rsi),%xmm3
2969
vpshufb %xmm11,%xmm1,%xmm1
2970
vmovdqu 64(%rsi),%xmm4
2971
vpshufb %xmm11,%xmm2,%xmm2
2972
vmovdqu 80(%rsi),%xmm5
2973
vpshufb %xmm11,%xmm3,%xmm3
2974
vmovdqu 96(%rsi),%xmm6
2975
vpshufb %xmm11,%xmm4,%xmm4
2976
vmovdqu 112(%rsi),%xmm7
2977
vpshufb %xmm11,%xmm5,%xmm5
2978
vpaddq -128(%rbp),%xmm0,%xmm8
2979
vpshufb %xmm11,%xmm6,%xmm6
2980
vpaddq -96(%rbp),%xmm1,%xmm9
2981
vpshufb %xmm11,%xmm7,%xmm7
2982
vpaddq -64(%rbp),%xmm2,%xmm10
2983
vpaddq -32(%rbp),%xmm3,%xmm11
2984
vmovdqa %xmm8,0(%rsp)
2985
vpaddq 0(%rbp),%xmm4,%xmm8
2986
vmovdqa %xmm9,16(%rsp)
2987
vpaddq 32(%rbp),%xmm5,%xmm9
2988
vmovdqa %xmm10,32(%rsp)
2989
vpaddq 64(%rbp),%xmm6,%xmm10
2990
vmovdqa %xmm11,48(%rsp)
2991
vpaddq 96(%rbp),%xmm7,%xmm11
2992
vmovdqa %xmm8,64(%rsp)
2993
movq %rax,%r14
2994
vmovdqa %xmm9,80(%rsp)
2995
movq %rbx,%rdi
2996
vmovdqa %xmm10,96(%rsp)
2997
xorq %rcx,%rdi
2998
vmovdqa %xmm11,112(%rsp)
2999
movq %r8,%r13
3000
jmp .Lavx_00_47
3001
3002
.align 16
3003
.Lavx_00_47:
3004
addq $256,%rbp
3005
vpalignr $8,%xmm0,%xmm1,%xmm8
3006
shrdq $23,%r13,%r13
3007
movq %r14,%rax
3008
vpalignr $8,%xmm4,%xmm5,%xmm11
3009
movq %r9,%r12
3010
shrdq $5,%r14,%r14
3011
vpsrlq $1,%xmm8,%xmm10
3012
xorq %r8,%r13
3013
xorq %r10,%r12
3014
vpaddq %xmm11,%xmm0,%xmm0
3015
shrdq $4,%r13,%r13
3016
xorq %rax,%r14
3017
vpsrlq $7,%xmm8,%xmm11
3018
andq %r8,%r12
3019
xorq %r8,%r13
3020
vpsllq $56,%xmm8,%xmm9
3021
addq 0(%rsp),%r11
3022
movq %rax,%r15
3023
vpxor %xmm10,%xmm11,%xmm8
3024
xorq %r10,%r12
3025
shrdq $6,%r14,%r14
3026
vpsrlq $7,%xmm10,%xmm10
3027
xorq %rbx,%r15
3028
addq %r12,%r11
3029
vpxor %xmm9,%xmm8,%xmm8
3030
shrdq $14,%r13,%r13
3031
andq %r15,%rdi
3032
vpsllq $7,%xmm9,%xmm9
3033
xorq %rax,%r14
3034
addq %r13,%r11
3035
vpxor %xmm10,%xmm8,%xmm8
3036
xorq %rbx,%rdi
3037
shrdq $28,%r14,%r14
3038
vpsrlq $6,%xmm7,%xmm11
3039
addq %r11,%rdx
3040
addq %rdi,%r11
3041
vpxor %xmm9,%xmm8,%xmm8
3042
movq %rdx,%r13
3043
addq %r11,%r14
3044
vpsllq $3,%xmm7,%xmm10
3045
shrdq $23,%r13,%r13
3046
movq %r14,%r11
3047
vpaddq %xmm8,%xmm0,%xmm0
3048
movq %r8,%r12
3049
shrdq $5,%r14,%r14
3050
vpsrlq $19,%xmm7,%xmm9
3051
xorq %rdx,%r13
3052
xorq %r9,%r12
3053
vpxor %xmm10,%xmm11,%xmm11
3054
shrdq $4,%r13,%r13
3055
xorq %r11,%r14
3056
vpsllq $42,%xmm10,%xmm10
3057
andq %rdx,%r12
3058
xorq %rdx,%r13
3059
vpxor %xmm9,%xmm11,%xmm11
3060
addq 8(%rsp),%r10
3061
movq %r11,%rdi
3062
vpsrlq $42,%xmm9,%xmm9
3063
xorq %r9,%r12
3064
shrdq $6,%r14,%r14
3065
vpxor %xmm10,%xmm11,%xmm11
3066
xorq %rax,%rdi
3067
addq %r12,%r10
3068
vpxor %xmm9,%xmm11,%xmm11
3069
shrdq $14,%r13,%r13
3070
andq %rdi,%r15
3071
vpaddq %xmm11,%xmm0,%xmm0
3072
xorq %r11,%r14
3073
addq %r13,%r10
3074
vpaddq -128(%rbp),%xmm0,%xmm10
3075
xorq %rax,%r15
3076
shrdq $28,%r14,%r14
3077
addq %r10,%rcx
3078
addq %r15,%r10
3079
movq %rcx,%r13
3080
addq %r10,%r14
3081
vmovdqa %xmm10,0(%rsp)
3082
vpalignr $8,%xmm1,%xmm2,%xmm8
3083
shrdq $23,%r13,%r13
3084
movq %r14,%r10
3085
vpalignr $8,%xmm5,%xmm6,%xmm11
3086
movq %rdx,%r12
3087
shrdq $5,%r14,%r14
3088
vpsrlq $1,%xmm8,%xmm10
3089
xorq %rcx,%r13
3090
xorq %r8,%r12
3091
vpaddq %xmm11,%xmm1,%xmm1
3092
shrdq $4,%r13,%r13
3093
xorq %r10,%r14
3094
vpsrlq $7,%xmm8,%xmm11
3095
andq %rcx,%r12
3096
xorq %rcx,%r13
3097
vpsllq $56,%xmm8,%xmm9
3098
addq 16(%rsp),%r9
3099
movq %r10,%r15
3100
vpxor %xmm10,%xmm11,%xmm8
3101
xorq %r8,%r12
3102
shrdq $6,%r14,%r14
3103
vpsrlq $7,%xmm10,%xmm10
3104
xorq %r11,%r15
3105
addq %r12,%r9
3106
vpxor %xmm9,%xmm8,%xmm8
3107
shrdq $14,%r13,%r13
3108
andq %r15,%rdi
3109
vpsllq $7,%xmm9,%xmm9
3110
xorq %r10,%r14
3111
addq %r13,%r9
3112
vpxor %xmm10,%xmm8,%xmm8
3113
xorq %r11,%rdi
3114
shrdq $28,%r14,%r14
3115
vpsrlq $6,%xmm0,%xmm11
3116
addq %r9,%rbx
3117
addq %rdi,%r9
3118
vpxor %xmm9,%xmm8,%xmm8
3119
movq %rbx,%r13
3120
addq %r9,%r14
3121
vpsllq $3,%xmm0,%xmm10
3122
shrdq $23,%r13,%r13
3123
movq %r14,%r9
3124
vpaddq %xmm8,%xmm1,%xmm1
3125
movq %rcx,%r12
3126
shrdq $5,%r14,%r14
3127
vpsrlq $19,%xmm0,%xmm9
3128
xorq %rbx,%r13
3129
xorq %rdx,%r12
3130
vpxor %xmm10,%xmm11,%xmm11
3131
shrdq $4,%r13,%r13
3132
xorq %r9,%r14
3133
vpsllq $42,%xmm10,%xmm10
3134
andq %rbx,%r12
3135
xorq %rbx,%r13
3136
vpxor %xmm9,%xmm11,%xmm11
3137
addq 24(%rsp),%r8
3138
movq %r9,%rdi
3139
vpsrlq $42,%xmm9,%xmm9
3140
xorq %rdx,%r12
3141
shrdq $6,%r14,%r14
3142
vpxor %xmm10,%xmm11,%xmm11
3143
xorq %r10,%rdi
3144
addq %r12,%r8
3145
vpxor %xmm9,%xmm11,%xmm11
3146
shrdq $14,%r13,%r13
3147
andq %rdi,%r15
3148
vpaddq %xmm11,%xmm1,%xmm1
3149
xorq %r9,%r14
3150
addq %r13,%r8
3151
vpaddq -96(%rbp),%xmm1,%xmm10
3152
xorq %r10,%r15
3153
shrdq $28,%r14,%r14
3154
addq %r8,%rax
3155
addq %r15,%r8
3156
movq %rax,%r13
3157
addq %r8,%r14
3158
vmovdqa %xmm10,16(%rsp)
3159
vpalignr $8,%xmm2,%xmm3,%xmm8
3160
shrdq $23,%r13,%r13
3161
movq %r14,%r8
3162
vpalignr $8,%xmm6,%xmm7,%xmm11
3163
movq %rbx,%r12
3164
shrdq $5,%r14,%r14
3165
vpsrlq $1,%xmm8,%xmm10
3166
xorq %rax,%r13
3167
xorq %rcx,%r12
3168
vpaddq %xmm11,%xmm2,%xmm2
3169
shrdq $4,%r13,%r13
3170
xorq %r8,%r14
3171
vpsrlq $7,%xmm8,%xmm11
3172
andq %rax,%r12
3173
xorq %rax,%r13
3174
vpsllq $56,%xmm8,%xmm9
3175
addq 32(%rsp),%rdx
3176
movq %r8,%r15
3177
vpxor %xmm10,%xmm11,%xmm8
3178
xorq %rcx,%r12
3179
shrdq $6,%r14,%r14
3180
vpsrlq $7,%xmm10,%xmm10
3181
xorq %r9,%r15
3182
addq %r12,%rdx
3183
vpxor %xmm9,%xmm8,%xmm8
3184
shrdq $14,%r13,%r13
3185
andq %r15,%rdi
3186
vpsllq $7,%xmm9,%xmm9
3187
xorq %r8,%r14
3188
addq %r13,%rdx
3189
vpxor %xmm10,%xmm8,%xmm8
3190
xorq %r9,%rdi
3191
shrdq $28,%r14,%r14
3192
vpsrlq $6,%xmm1,%xmm11
3193
addq %rdx,%r11
3194
addq %rdi,%rdx
3195
vpxor %xmm9,%xmm8,%xmm8
3196
movq %r11,%r13
3197
addq %rdx,%r14
3198
vpsllq $3,%xmm1,%xmm10
3199
shrdq $23,%r13,%r13
3200
movq %r14,%rdx
3201
vpaddq %xmm8,%xmm2,%xmm2
3202
movq %rax,%r12
3203
shrdq $5,%r14,%r14
3204
vpsrlq $19,%xmm1,%xmm9
3205
xorq %r11,%r13
3206
xorq %rbx,%r12
3207
vpxor %xmm10,%xmm11,%xmm11
3208
shrdq $4,%r13,%r13
3209
xorq %rdx,%r14
3210
vpsllq $42,%xmm10,%xmm10
3211
andq %r11,%r12
3212
xorq %r11,%r13
3213
vpxor %xmm9,%xmm11,%xmm11
3214
addq 40(%rsp),%rcx
3215
movq %rdx,%rdi
3216
vpsrlq $42,%xmm9,%xmm9
3217
xorq %rbx,%r12
3218
shrdq $6,%r14,%r14
3219
vpxor %xmm10,%xmm11,%xmm11
3220
xorq %r8,%rdi
3221
addq %r12,%rcx
3222
vpxor %xmm9,%xmm11,%xmm11
3223
shrdq $14,%r13,%r13
3224
andq %rdi,%r15
3225
vpaddq %xmm11,%xmm2,%xmm2
3226
xorq %rdx,%r14
3227
addq %r13,%rcx
3228
vpaddq -64(%rbp),%xmm2,%xmm10
3229
xorq %r8,%r15
3230
shrdq $28,%r14,%r14
3231
addq %rcx,%r10
3232
addq %r15,%rcx
3233
movq %r10,%r13
3234
addq %rcx,%r14
3235
vmovdqa %xmm10,32(%rsp)
3236
vpalignr $8,%xmm3,%xmm4,%xmm8
3237
shrdq $23,%r13,%r13
3238
movq %r14,%rcx
3239
vpalignr $8,%xmm7,%xmm0,%xmm11
3240
movq %r11,%r12
3241
shrdq $5,%r14,%r14
3242
vpsrlq $1,%xmm8,%xmm10
3243
xorq %r10,%r13
3244
xorq %rax,%r12
3245
vpaddq %xmm11,%xmm3,%xmm3
3246
shrdq $4,%r13,%r13
3247
xorq %rcx,%r14
3248
vpsrlq $7,%xmm8,%xmm11
3249
andq %r10,%r12
3250
xorq %r10,%r13
3251
vpsllq $56,%xmm8,%xmm9
3252
addq 48(%rsp),%rbx
3253
movq %rcx,%r15
3254
vpxor %xmm10,%xmm11,%xmm8
3255
xorq %rax,%r12
3256
shrdq $6,%r14,%r14
3257
vpsrlq $7,%xmm10,%xmm10
3258
xorq %rdx,%r15
3259
addq %r12,%rbx
3260
vpxor %xmm9,%xmm8,%xmm8
3261
shrdq $14,%r13,%r13
3262
andq %r15,%rdi
3263
vpsllq $7,%xmm9,%xmm9
3264
xorq %rcx,%r14
3265
addq %r13,%rbx
3266
vpxor %xmm10,%xmm8,%xmm8
3267
xorq %rdx,%rdi
3268
shrdq $28,%r14,%r14
3269
vpsrlq $6,%xmm2,%xmm11
3270
addq %rbx,%r9
3271
addq %rdi,%rbx
3272
vpxor %xmm9,%xmm8,%xmm8
3273
movq %r9,%r13
3274
addq %rbx,%r14
3275
vpsllq $3,%xmm2,%xmm10
3276
shrdq $23,%r13,%r13
3277
movq %r14,%rbx
3278
vpaddq %xmm8,%xmm3,%xmm3
3279
movq %r10,%r12
3280
shrdq $5,%r14,%r14
3281
vpsrlq $19,%xmm2,%xmm9
3282
xorq %r9,%r13
3283
xorq %r11,%r12
3284
vpxor %xmm10,%xmm11,%xmm11
3285
shrdq $4,%r13,%r13
3286
xorq %rbx,%r14
3287
vpsllq $42,%xmm10,%xmm10
3288
andq %r9,%r12
3289
xorq %r9,%r13
3290
vpxor %xmm9,%xmm11,%xmm11
3291
addq 56(%rsp),%rax
3292
movq %rbx,%rdi
3293
vpsrlq $42,%xmm9,%xmm9
3294
xorq %r11,%r12
3295
shrdq $6,%r14,%r14
3296
vpxor %xmm10,%xmm11,%xmm11
3297
xorq %rcx,%rdi
3298
addq %r12,%rax
3299
vpxor %xmm9,%xmm11,%xmm11
3300
shrdq $14,%r13,%r13
3301
andq %rdi,%r15
3302
vpaddq %xmm11,%xmm3,%xmm3
3303
xorq %rbx,%r14
3304
addq %r13,%rax
3305
vpaddq -32(%rbp),%xmm3,%xmm10
3306
xorq %rcx,%r15
3307
shrdq $28,%r14,%r14
3308
addq %rax,%r8
3309
addq %r15,%rax
3310
movq %r8,%r13
3311
addq %rax,%r14
3312
vmovdqa %xmm10,48(%rsp)
3313
vpalignr $8,%xmm4,%xmm5,%xmm8
3314
shrdq $23,%r13,%r13
3315
movq %r14,%rax
3316
vpalignr $8,%xmm0,%xmm1,%xmm11
3317
movq %r9,%r12
3318
shrdq $5,%r14,%r14
3319
vpsrlq $1,%xmm8,%xmm10
3320
xorq %r8,%r13
3321
xorq %r10,%r12
3322
vpaddq %xmm11,%xmm4,%xmm4
3323
shrdq $4,%r13,%r13
3324
xorq %rax,%r14
3325
vpsrlq $7,%xmm8,%xmm11
3326
andq %r8,%r12
3327
xorq %r8,%r13
3328
vpsllq $56,%xmm8,%xmm9
3329
addq 64(%rsp),%r11
3330
movq %rax,%r15
3331
vpxor %xmm10,%xmm11,%xmm8
3332
xorq %r10,%r12
3333
shrdq $6,%r14,%r14
3334
vpsrlq $7,%xmm10,%xmm10
3335
xorq %rbx,%r15
3336
addq %r12,%r11
3337
vpxor %xmm9,%xmm8,%xmm8
3338
shrdq $14,%r13,%r13
3339
andq %r15,%rdi
3340
vpsllq $7,%xmm9,%xmm9
3341
xorq %rax,%r14
3342
addq %r13,%r11
3343
vpxor %xmm10,%xmm8,%xmm8
3344
xorq %rbx,%rdi
3345
shrdq $28,%r14,%r14
3346
vpsrlq $6,%xmm3,%xmm11
3347
addq %r11,%rdx
3348
addq %rdi,%r11
3349
vpxor %xmm9,%xmm8,%xmm8
3350
movq %rdx,%r13
3351
addq %r11,%r14
3352
vpsllq $3,%xmm3,%xmm10
3353
shrdq $23,%r13,%r13
3354
movq %r14,%r11
3355
vpaddq %xmm8,%xmm4,%xmm4
3356
movq %r8,%r12
3357
shrdq $5,%r14,%r14
3358
vpsrlq $19,%xmm3,%xmm9
3359
xorq %rdx,%r13
3360
xorq %r9,%r12
3361
vpxor %xmm10,%xmm11,%xmm11
3362
shrdq $4,%r13,%r13
3363
xorq %r11,%r14
3364
vpsllq $42,%xmm10,%xmm10
3365
andq %rdx,%r12
3366
xorq %rdx,%r13
3367
vpxor %xmm9,%xmm11,%xmm11
3368
addq 72(%rsp),%r10
3369
movq %r11,%rdi
3370
vpsrlq $42,%xmm9,%xmm9
3371
xorq %r9,%r12
3372
shrdq $6,%r14,%r14
3373
vpxor %xmm10,%xmm11,%xmm11
3374
xorq %rax,%rdi
3375
addq %r12,%r10
3376
vpxor %xmm9,%xmm11,%xmm11
3377
shrdq $14,%r13,%r13
3378
andq %rdi,%r15
3379
vpaddq %xmm11,%xmm4,%xmm4
3380
xorq %r11,%r14
3381
addq %r13,%r10
3382
vpaddq 0(%rbp),%xmm4,%xmm10
3383
xorq %rax,%r15
3384
shrdq $28,%r14,%r14
3385
addq %r10,%rcx
3386
addq %r15,%r10
3387
movq %rcx,%r13
3388
addq %r10,%r14
3389
vmovdqa %xmm10,64(%rsp)
3390
vpalignr $8,%xmm5,%xmm6,%xmm8
3391
shrdq $23,%r13,%r13
3392
movq %r14,%r10
3393
vpalignr $8,%xmm1,%xmm2,%xmm11
3394
movq %rdx,%r12
3395
shrdq $5,%r14,%r14
3396
vpsrlq $1,%xmm8,%xmm10
3397
xorq %rcx,%r13
3398
xorq %r8,%r12
3399
vpaddq %xmm11,%xmm5,%xmm5
3400
shrdq $4,%r13,%r13
3401
xorq %r10,%r14
3402
vpsrlq $7,%xmm8,%xmm11
3403
andq %rcx,%r12
3404
xorq %rcx,%r13
3405
vpsllq $56,%xmm8,%xmm9
3406
addq 80(%rsp),%r9
3407
movq %r10,%r15
3408
vpxor %xmm10,%xmm11,%xmm8
3409
xorq %r8,%r12
3410
shrdq $6,%r14,%r14
3411
vpsrlq $7,%xmm10,%xmm10
3412
xorq %r11,%r15
3413
addq %r12,%r9
3414
vpxor %xmm9,%xmm8,%xmm8
3415
shrdq $14,%r13,%r13
3416
andq %r15,%rdi
3417
vpsllq $7,%xmm9,%xmm9
3418
xorq %r10,%r14
3419
addq %r13,%r9
3420
vpxor %xmm10,%xmm8,%xmm8
3421
xorq %r11,%rdi
3422
shrdq $28,%r14,%r14
3423
vpsrlq $6,%xmm4,%xmm11
3424
addq %r9,%rbx
3425
addq %rdi,%r9
3426
vpxor %xmm9,%xmm8,%xmm8
3427
movq %rbx,%r13
3428
addq %r9,%r14
3429
vpsllq $3,%xmm4,%xmm10
3430
shrdq $23,%r13,%r13
3431
movq %r14,%r9
3432
vpaddq %xmm8,%xmm5,%xmm5
3433
movq %rcx,%r12
3434
shrdq $5,%r14,%r14
3435
vpsrlq $19,%xmm4,%xmm9
3436
xorq %rbx,%r13
3437
xorq %rdx,%r12
3438
vpxor %xmm10,%xmm11,%xmm11
3439
shrdq $4,%r13,%r13
3440
xorq %r9,%r14
3441
vpsllq $42,%xmm10,%xmm10
3442
andq %rbx,%r12
3443
xorq %rbx,%r13
3444
vpxor %xmm9,%xmm11,%xmm11
3445
addq 88(%rsp),%r8
3446
movq %r9,%rdi
3447
vpsrlq $42,%xmm9,%xmm9
3448
xorq %rdx,%r12
3449
shrdq $6,%r14,%r14
3450
vpxor %xmm10,%xmm11,%xmm11
3451
xorq %r10,%rdi
3452
addq %r12,%r8
3453
vpxor %xmm9,%xmm11,%xmm11
3454
shrdq $14,%r13,%r13
3455
andq %rdi,%r15
3456
vpaddq %xmm11,%xmm5,%xmm5
3457
xorq %r9,%r14
3458
addq %r13,%r8
3459
vpaddq 32(%rbp),%xmm5,%xmm10
3460
xorq %r10,%r15
3461
shrdq $28,%r14,%r14
3462
addq %r8,%rax
3463
addq %r15,%r8
3464
movq %rax,%r13
3465
addq %r8,%r14
3466
vmovdqa %xmm10,80(%rsp)
3467
vpalignr $8,%xmm6,%xmm7,%xmm8
3468
shrdq $23,%r13,%r13
3469
movq %r14,%r8
3470
vpalignr $8,%xmm2,%xmm3,%xmm11
3471
movq %rbx,%r12
3472
shrdq $5,%r14,%r14
3473
vpsrlq $1,%xmm8,%xmm10
3474
xorq %rax,%r13
3475
xorq %rcx,%r12
3476
vpaddq %xmm11,%xmm6,%xmm6
3477
shrdq $4,%r13,%r13
3478
xorq %r8,%r14
3479
vpsrlq $7,%xmm8,%xmm11
3480
andq %rax,%r12
3481
xorq %rax,%r13
3482
vpsllq $56,%xmm8,%xmm9
3483
addq 96(%rsp),%rdx
3484
movq %r8,%r15
3485
vpxor %xmm10,%xmm11,%xmm8
3486
xorq %rcx,%r12
3487
shrdq $6,%r14,%r14
3488
vpsrlq $7,%xmm10,%xmm10
3489
xorq %r9,%r15
3490
addq %r12,%rdx
3491
vpxor %xmm9,%xmm8,%xmm8
3492
shrdq $14,%r13,%r13
3493
andq %r15,%rdi
3494
vpsllq $7,%xmm9,%xmm9
3495
xorq %r8,%r14
3496
addq %r13,%rdx
3497
vpxor %xmm10,%xmm8,%xmm8
3498
xorq %r9,%rdi
3499
shrdq $28,%r14,%r14
3500
vpsrlq $6,%xmm5,%xmm11
3501
addq %rdx,%r11
3502
addq %rdi,%rdx
3503
vpxor %xmm9,%xmm8,%xmm8
3504
movq %r11,%r13
3505
addq %rdx,%r14
3506
vpsllq $3,%xmm5,%xmm10
3507
shrdq $23,%r13,%r13
3508
movq %r14,%rdx
3509
vpaddq %xmm8,%xmm6,%xmm6
3510
movq %rax,%r12
3511
shrdq $5,%r14,%r14
3512
vpsrlq $19,%xmm5,%xmm9
3513
xorq %r11,%r13
3514
xorq %rbx,%r12
3515
vpxor %xmm10,%xmm11,%xmm11
3516
shrdq $4,%r13,%r13
3517
xorq %rdx,%r14
3518
vpsllq $42,%xmm10,%xmm10
3519
andq %r11,%r12
3520
xorq %r11,%r13
3521
vpxor %xmm9,%xmm11,%xmm11
3522
addq 104(%rsp),%rcx
3523
movq %rdx,%rdi
3524
vpsrlq $42,%xmm9,%xmm9
3525
xorq %rbx,%r12
3526
shrdq $6,%r14,%r14
3527
vpxor %xmm10,%xmm11,%xmm11
3528
xorq %r8,%rdi
3529
addq %r12,%rcx
3530
vpxor %xmm9,%xmm11,%xmm11
3531
shrdq $14,%r13,%r13
3532
andq %rdi,%r15
3533
vpaddq %xmm11,%xmm6,%xmm6
3534
xorq %rdx,%r14
3535
addq %r13,%rcx
3536
vpaddq 64(%rbp),%xmm6,%xmm10
3537
xorq %r8,%r15
3538
shrdq $28,%r14,%r14
3539
addq %rcx,%r10
3540
addq %r15,%rcx
3541
movq %r10,%r13
3542
addq %rcx,%r14
3543
vmovdqa %xmm10,96(%rsp)
3544
vpalignr $8,%xmm7,%xmm0,%xmm8
3545
shrdq $23,%r13,%r13
3546
movq %r14,%rcx
3547
vpalignr $8,%xmm3,%xmm4,%xmm11
3548
movq %r11,%r12
3549
shrdq $5,%r14,%r14
3550
vpsrlq $1,%xmm8,%xmm10
3551
xorq %r10,%r13
3552
xorq %rax,%r12
3553
vpaddq %xmm11,%xmm7,%xmm7
3554
shrdq $4,%r13,%r13
3555
xorq %rcx,%r14
3556
vpsrlq $7,%xmm8,%xmm11
3557
andq %r10,%r12
3558
xorq %r10,%r13
3559
vpsllq $56,%xmm8,%xmm9
3560
addq 112(%rsp),%rbx
3561
movq %rcx,%r15
3562
vpxor %xmm10,%xmm11,%xmm8
3563
xorq %rax,%r12
3564
shrdq $6,%r14,%r14
3565
vpsrlq $7,%xmm10,%xmm10
3566
xorq %rdx,%r15
3567
addq %r12,%rbx
3568
vpxor %xmm9,%xmm8,%xmm8
3569
shrdq $14,%r13,%r13
3570
andq %r15,%rdi
3571
vpsllq $7,%xmm9,%xmm9
3572
xorq %rcx,%r14
3573
addq %r13,%rbx
3574
vpxor %xmm10,%xmm8,%xmm8
3575
xorq %rdx,%rdi
3576
shrdq $28,%r14,%r14
3577
vpsrlq $6,%xmm6,%xmm11
3578
addq %rbx,%r9
3579
addq %rdi,%rbx
3580
vpxor %xmm9,%xmm8,%xmm8
3581
movq %r9,%r13
3582
addq %rbx,%r14
3583
vpsllq $3,%xmm6,%xmm10
3584
shrdq $23,%r13,%r13
3585
movq %r14,%rbx
3586
vpaddq %xmm8,%xmm7,%xmm7
3587
movq %r10,%r12
3588
shrdq $5,%r14,%r14
3589
vpsrlq $19,%xmm6,%xmm9
3590
xorq %r9,%r13
3591
xorq %r11,%r12
3592
vpxor %xmm10,%xmm11,%xmm11
3593
shrdq $4,%r13,%r13
3594
xorq %rbx,%r14
3595
vpsllq $42,%xmm10,%xmm10
3596
andq %r9,%r12
3597
xorq %r9,%r13
3598
vpxor %xmm9,%xmm11,%xmm11
3599
addq 120(%rsp),%rax
3600
movq %rbx,%rdi
3601
vpsrlq $42,%xmm9,%xmm9
3602
xorq %r11,%r12
3603
shrdq $6,%r14,%r14
3604
vpxor %xmm10,%xmm11,%xmm11
3605
xorq %rcx,%rdi
3606
addq %r12,%rax
3607
vpxor %xmm9,%xmm11,%xmm11
3608
shrdq $14,%r13,%r13
3609
andq %rdi,%r15
3610
vpaddq %xmm11,%xmm7,%xmm7
3611
xorq %rbx,%r14
3612
addq %r13,%rax
3613
vpaddq 96(%rbp),%xmm7,%xmm10
3614
xorq %rcx,%r15
3615
shrdq $28,%r14,%r14
3616
addq %rax,%r8
3617
addq %r15,%rax
3618
movq %r8,%r13
3619
addq %rax,%r14
3620
vmovdqa %xmm10,112(%rsp)
3621
cmpb $0,135(%rbp)
3622
jne .Lavx_00_47
3623
shrdq $23,%r13,%r13
3624
movq %r14,%rax
3625
movq %r9,%r12
3626
shrdq $5,%r14,%r14
3627
xorq %r8,%r13
3628
xorq %r10,%r12
3629
shrdq $4,%r13,%r13
3630
xorq %rax,%r14
3631
andq %r8,%r12
3632
xorq %r8,%r13
3633
addq 0(%rsp),%r11
3634
movq %rax,%r15
3635
xorq %r10,%r12
3636
shrdq $6,%r14,%r14
3637
xorq %rbx,%r15
3638
addq %r12,%r11
3639
shrdq $14,%r13,%r13
3640
andq %r15,%rdi
3641
xorq %rax,%r14
3642
addq %r13,%r11
3643
xorq %rbx,%rdi
3644
shrdq $28,%r14,%r14
3645
addq %r11,%rdx
3646
addq %rdi,%r11
3647
movq %rdx,%r13
3648
addq %r11,%r14
3649
shrdq $23,%r13,%r13
3650
movq %r14,%r11
3651
movq %r8,%r12
3652
shrdq $5,%r14,%r14
3653
xorq %rdx,%r13
3654
xorq %r9,%r12
3655
shrdq $4,%r13,%r13
3656
xorq %r11,%r14
3657
andq %rdx,%r12
3658
xorq %rdx,%r13
3659
addq 8(%rsp),%r10
3660
movq %r11,%rdi
3661
xorq %r9,%r12
3662
shrdq $6,%r14,%r14
3663
xorq %rax,%rdi
3664
addq %r12,%r10
3665
shrdq $14,%r13,%r13
3666
andq %rdi,%r15
3667
xorq %r11,%r14
3668
addq %r13,%r10
3669
xorq %rax,%r15
3670
shrdq $28,%r14,%r14
3671
addq %r10,%rcx
3672
addq %r15,%r10
3673
movq %rcx,%r13
3674
addq %r10,%r14
3675
shrdq $23,%r13,%r13
3676
movq %r14,%r10
3677
movq %rdx,%r12
3678
shrdq $5,%r14,%r14
3679
xorq %rcx,%r13
3680
xorq %r8,%r12
3681
shrdq $4,%r13,%r13
3682
xorq %r10,%r14
3683
andq %rcx,%r12
3684
xorq %rcx,%r13
3685
addq 16(%rsp),%r9
3686
movq %r10,%r15
3687
xorq %r8,%r12
3688
shrdq $6,%r14,%r14
3689
xorq %r11,%r15
3690
addq %r12,%r9
3691
shrdq $14,%r13,%r13
3692
andq %r15,%rdi
3693
xorq %r10,%r14
3694
addq %r13,%r9
3695
xorq %r11,%rdi
3696
shrdq $28,%r14,%r14
3697
addq %r9,%rbx
3698
addq %rdi,%r9
3699
movq %rbx,%r13
3700
addq %r9,%r14
3701
shrdq $23,%r13,%r13
3702
movq %r14,%r9
3703
movq %rcx,%r12
3704
shrdq $5,%r14,%r14
3705
xorq %rbx,%r13
3706
xorq %rdx,%r12
3707
shrdq $4,%r13,%r13
3708
xorq %r9,%r14
3709
andq %rbx,%r12
3710
xorq %rbx,%r13
3711
addq 24(%rsp),%r8
3712
movq %r9,%rdi
3713
xorq %rdx,%r12
3714
shrdq $6,%r14,%r14
3715
xorq %r10,%rdi
3716
addq %r12,%r8
3717
shrdq $14,%r13,%r13
3718
andq %rdi,%r15
3719
xorq %r9,%r14
3720
addq %r13,%r8
3721
xorq %r10,%r15
3722
shrdq $28,%r14,%r14
3723
addq %r8,%rax
3724
addq %r15,%r8
3725
movq %rax,%r13
3726
addq %r8,%r14
3727
shrdq $23,%r13,%r13
3728
movq %r14,%r8
3729
movq %rbx,%r12
3730
shrdq $5,%r14,%r14
3731
xorq %rax,%r13
3732
xorq %rcx,%r12
3733
shrdq $4,%r13,%r13
3734
xorq %r8,%r14
3735
andq %rax,%r12
3736
xorq %rax,%r13
3737
addq 32(%rsp),%rdx
3738
movq %r8,%r15
3739
xorq %rcx,%r12
3740
shrdq $6,%r14,%r14
3741
xorq %r9,%r15
3742
addq %r12,%rdx
3743
shrdq $14,%r13,%r13
3744
andq %r15,%rdi
3745
xorq %r8,%r14
3746
addq %r13,%rdx
3747
xorq %r9,%rdi
3748
shrdq $28,%r14,%r14
3749
addq %rdx,%r11
3750
addq %rdi,%rdx
3751
movq %r11,%r13
3752
addq %rdx,%r14
3753
shrdq $23,%r13,%r13
3754
movq %r14,%rdx
3755
movq %rax,%r12
3756
shrdq $5,%r14,%r14
3757
xorq %r11,%r13
3758
xorq %rbx,%r12
3759
shrdq $4,%r13,%r13
3760
xorq %rdx,%r14
3761
andq %r11,%r12
3762
xorq %r11,%r13
3763
addq 40(%rsp),%rcx
3764
movq %rdx,%rdi
3765
xorq %rbx,%r12
3766
shrdq $6,%r14,%r14
3767
xorq %r8,%rdi
3768
addq %r12,%rcx
3769
shrdq $14,%r13,%r13
3770
andq %rdi,%r15
3771
xorq %rdx,%r14
3772
addq %r13,%rcx
3773
xorq %r8,%r15
3774
shrdq $28,%r14,%r14
3775
addq %rcx,%r10
3776
addq %r15,%rcx
3777
movq %r10,%r13
3778
addq %rcx,%r14
3779
shrdq $23,%r13,%r13
3780
movq %r14,%rcx
3781
movq %r11,%r12
3782
shrdq $5,%r14,%r14
3783
xorq %r10,%r13
3784
xorq %rax,%r12
3785
shrdq $4,%r13,%r13
3786
xorq %rcx,%r14
3787
andq %r10,%r12
3788
xorq %r10,%r13
3789
addq 48(%rsp),%rbx
3790
movq %rcx,%r15
3791
xorq %rax,%r12
3792
shrdq $6,%r14,%r14
3793
xorq %rdx,%r15
3794
addq %r12,%rbx
3795
shrdq $14,%r13,%r13
3796
andq %r15,%rdi
3797
xorq %rcx,%r14
3798
addq %r13,%rbx
3799
xorq %rdx,%rdi
3800
shrdq $28,%r14,%r14
3801
addq %rbx,%r9
3802
addq %rdi,%rbx
3803
movq %r9,%r13
3804
addq %rbx,%r14
3805
shrdq $23,%r13,%r13
3806
movq %r14,%rbx
3807
movq %r10,%r12
3808
shrdq $5,%r14,%r14
3809
xorq %r9,%r13
3810
xorq %r11,%r12
3811
shrdq $4,%r13,%r13
3812
xorq %rbx,%r14
3813
andq %r9,%r12
3814
xorq %r9,%r13
3815
addq 56(%rsp),%rax
3816
movq %rbx,%rdi
3817
xorq %r11,%r12
3818
shrdq $6,%r14,%r14
3819
xorq %rcx,%rdi
3820
addq %r12,%rax
3821
shrdq $14,%r13,%r13
3822
andq %rdi,%r15
3823
xorq %rbx,%r14
3824
addq %r13,%rax
3825
xorq %rcx,%r15
3826
shrdq $28,%r14,%r14
3827
addq %rax,%r8
3828
addq %r15,%rax
3829
movq %r8,%r13
3830
addq %rax,%r14
3831
shrdq $23,%r13,%r13
3832
movq %r14,%rax
3833
movq %r9,%r12
3834
shrdq $5,%r14,%r14
3835
xorq %r8,%r13
3836
xorq %r10,%r12
3837
shrdq $4,%r13,%r13
3838
xorq %rax,%r14
3839
andq %r8,%r12
3840
xorq %r8,%r13
3841
addq 64(%rsp),%r11
3842
movq %rax,%r15
3843
xorq %r10,%r12
3844
shrdq $6,%r14,%r14
3845
xorq %rbx,%r15
3846
addq %r12,%r11
3847
shrdq $14,%r13,%r13
3848
andq %r15,%rdi
3849
xorq %rax,%r14
3850
addq %r13,%r11
3851
xorq %rbx,%rdi
3852
shrdq $28,%r14,%r14
3853
addq %r11,%rdx
3854
addq %rdi,%r11
3855
movq %rdx,%r13
3856
addq %r11,%r14
3857
shrdq $23,%r13,%r13
3858
movq %r14,%r11
3859
movq %r8,%r12
3860
shrdq $5,%r14,%r14
3861
xorq %rdx,%r13
3862
xorq %r9,%r12
3863
shrdq $4,%r13,%r13
3864
xorq %r11,%r14
3865
andq %rdx,%r12
3866
xorq %rdx,%r13
3867
addq 72(%rsp),%r10
3868
movq %r11,%rdi
3869
xorq %r9,%r12
3870
shrdq $6,%r14,%r14
3871
xorq %rax,%rdi
3872
addq %r12,%r10
3873
shrdq $14,%r13,%r13
3874
andq %rdi,%r15
3875
xorq %r11,%r14
3876
addq %r13,%r10
3877
xorq %rax,%r15
3878
shrdq $28,%r14,%r14
3879
addq %r10,%rcx
3880
addq %r15,%r10
3881
movq %rcx,%r13
3882
addq %r10,%r14
3883
shrdq $23,%r13,%r13
3884
movq %r14,%r10
3885
movq %rdx,%r12
3886
shrdq $5,%r14,%r14
3887
xorq %rcx,%r13
3888
xorq %r8,%r12
3889
shrdq $4,%r13,%r13
3890
xorq %r10,%r14
3891
andq %rcx,%r12
3892
xorq %rcx,%r13
3893
addq 80(%rsp),%r9
3894
movq %r10,%r15
3895
xorq %r8,%r12
3896
shrdq $6,%r14,%r14
3897
xorq %r11,%r15
3898
addq %r12,%r9
3899
shrdq $14,%r13,%r13
3900
andq %r15,%rdi
3901
xorq %r10,%r14
3902
addq %r13,%r9
3903
xorq %r11,%rdi
3904
shrdq $28,%r14,%r14
3905
addq %r9,%rbx
3906
addq %rdi,%r9
3907
movq %rbx,%r13
3908
addq %r9,%r14
3909
shrdq $23,%r13,%r13
3910
movq %r14,%r9
3911
movq %rcx,%r12
3912
shrdq $5,%r14,%r14
3913
xorq %rbx,%r13
3914
xorq %rdx,%r12
3915
shrdq $4,%r13,%r13
3916
xorq %r9,%r14
3917
andq %rbx,%r12
3918
xorq %rbx,%r13
3919
addq 88(%rsp),%r8
3920
movq %r9,%rdi
3921
xorq %rdx,%r12
3922
shrdq $6,%r14,%r14
3923
xorq %r10,%rdi
3924
addq %r12,%r8
3925
shrdq $14,%r13,%r13
3926
andq %rdi,%r15
3927
xorq %r9,%r14
3928
addq %r13,%r8
3929
xorq %r10,%r15
3930
shrdq $28,%r14,%r14
3931
addq %r8,%rax
3932
addq %r15,%r8
3933
movq %rax,%r13
3934
addq %r8,%r14
3935
shrdq $23,%r13,%r13
3936
movq %r14,%r8
3937
movq %rbx,%r12
3938
shrdq $5,%r14,%r14
3939
xorq %rax,%r13
3940
xorq %rcx,%r12
3941
shrdq $4,%r13,%r13
3942
xorq %r8,%r14
3943
andq %rax,%r12
3944
xorq %rax,%r13
3945
addq 96(%rsp),%rdx
3946
movq %r8,%r15
3947
xorq %rcx,%r12
3948
shrdq $6,%r14,%r14
3949
xorq %r9,%r15
3950
addq %r12,%rdx
3951
shrdq $14,%r13,%r13
3952
andq %r15,%rdi
3953
xorq %r8,%r14
3954
addq %r13,%rdx
3955
xorq %r9,%rdi
3956
shrdq $28,%r14,%r14
3957
addq %rdx,%r11
3958
addq %rdi,%rdx
3959
movq %r11,%r13
3960
addq %rdx,%r14
3961
shrdq $23,%r13,%r13
3962
movq %r14,%rdx
3963
movq %rax,%r12
3964
shrdq $5,%r14,%r14
3965
xorq %r11,%r13
3966
xorq %rbx,%r12
3967
shrdq $4,%r13,%r13
3968
xorq %rdx,%r14
3969
andq %r11,%r12
3970
xorq %r11,%r13
3971
addq 104(%rsp),%rcx
3972
movq %rdx,%rdi
3973
xorq %rbx,%r12
3974
shrdq $6,%r14,%r14
3975
xorq %r8,%rdi
3976
addq %r12,%rcx
3977
shrdq $14,%r13,%r13
3978
andq %rdi,%r15
3979
xorq %rdx,%r14
3980
addq %r13,%rcx
3981
xorq %r8,%r15
3982
shrdq $28,%r14,%r14
3983
addq %rcx,%r10
3984
addq %r15,%rcx
3985
movq %r10,%r13
3986
addq %rcx,%r14
3987
shrdq $23,%r13,%r13
3988
movq %r14,%rcx
3989
movq %r11,%r12
3990
shrdq $5,%r14,%r14
3991
xorq %r10,%r13
3992
xorq %rax,%r12
3993
shrdq $4,%r13,%r13
3994
xorq %rcx,%r14
3995
andq %r10,%r12
3996
xorq %r10,%r13
3997
addq 112(%rsp),%rbx
3998
movq %rcx,%r15
3999
xorq %rax,%r12
4000
shrdq $6,%r14,%r14
4001
xorq %rdx,%r15
4002
addq %r12,%rbx
4003
shrdq $14,%r13,%r13
4004
andq %r15,%rdi
4005
xorq %rcx,%r14
4006
addq %r13,%rbx
4007
xorq %rdx,%rdi
4008
shrdq $28,%r14,%r14
4009
addq %rbx,%r9
4010
addq %rdi,%rbx
4011
movq %r9,%r13
4012
addq %rbx,%r14
4013
shrdq $23,%r13,%r13
4014
movq %r14,%rbx
4015
movq %r10,%r12
4016
shrdq $5,%r14,%r14
4017
xorq %r9,%r13
4018
xorq %r11,%r12
4019
shrdq $4,%r13,%r13
4020
xorq %rbx,%r14
4021
andq %r9,%r12
4022
xorq %r9,%r13
4023
addq 120(%rsp),%rax
4024
movq %rbx,%rdi
4025
xorq %r11,%r12
4026
shrdq $6,%r14,%r14
4027
xorq %rcx,%rdi
4028
addq %r12,%rax
4029
shrdq $14,%r13,%r13
4030
andq %rdi,%r15
4031
xorq %rbx,%r14
4032
addq %r13,%rax
4033
xorq %rcx,%r15
4034
shrdq $28,%r14,%r14
4035
addq %rax,%r8
4036
addq %r15,%rax
4037
movq %r8,%r13
4038
addq %rax,%r14
4039
movq 128+0(%rsp),%rdi
4040
movq %r14,%rax
4041
4042
addq 0(%rdi),%rax
4043
leaq 128(%rsi),%rsi
4044
addq 8(%rdi),%rbx
4045
addq 16(%rdi),%rcx
4046
addq 24(%rdi),%rdx
4047
addq 32(%rdi),%r8
4048
addq 40(%rdi),%r9
4049
addq 48(%rdi),%r10
4050
addq 56(%rdi),%r11
4051
4052
cmpq 128+16(%rsp),%rsi
4053
4054
movq %rax,0(%rdi)
4055
movq %rbx,8(%rdi)
4056
movq %rcx,16(%rdi)
4057
movq %rdx,24(%rdi)
4058
movq %r8,32(%rdi)
4059
movq %r9,40(%rdi)
4060
movq %r10,48(%rdi)
4061
movq %r11,56(%rdi)
4062
jb .Lloop_avx
4063
4064
movq 152(%rsp),%rsi
4065
.cfi_def_cfa %rsi,8
4066
vzeroupper
4067
movq -48(%rsi),%r15
4068
.cfi_restore %r15
4069
movq -40(%rsi),%r14
4070
.cfi_restore %r14
4071
movq -32(%rsi),%r13
4072
.cfi_restore %r13
4073
movq -24(%rsi),%r12
4074
.cfi_restore %r12
4075
movq -16(%rsi),%rbp
4076
.cfi_restore %rbp
4077
movq -8(%rsi),%rbx
4078
.cfi_restore %rbx
4079
leaq (%rsi),%rsp
4080
.cfi_def_cfa_register %rsp
4081
.Lepilogue_avx:
4082
.byte 0xf3,0xc3
4083
.cfi_endproc
4084
.size sha512_block_data_order_avx,.-sha512_block_data_order_avx
4085
.type sha512_block_data_order_avx2,@function
4086
.align 64
4087
sha512_block_data_order_avx2:
4088
.cfi_startproc
4089
.Lavx2_shortcut:
4090
movq %rsp,%rax
4091
.cfi_def_cfa_register %rax
4092
pushq %rbx
4093
.cfi_offset %rbx,-16
4094
pushq %rbp
4095
.cfi_offset %rbp,-24
4096
pushq %r12
4097
.cfi_offset %r12,-32
4098
pushq %r13
4099
.cfi_offset %r13,-40
4100
pushq %r14
4101
.cfi_offset %r14,-48
4102
pushq %r15
4103
.cfi_offset %r15,-56
4104
subq $1312,%rsp
4105
shlq $4,%rdx
4106
andq $-2048,%rsp
4107
leaq (%rsi,%rdx,8),%rdx
4108
addq $1152,%rsp
4109
movq %rdi,128+0(%rsp)
4110
movq %rsi,128+8(%rsp)
4111
movq %rdx,128+16(%rsp)
4112
movq %rax,152(%rsp)
4113
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
4114
.Lprologue_avx2:
4115
4116
vzeroupper
4117
subq $-128,%rsi
4118
movq 0(%rdi),%rax
4119
movq %rsi,%r12
4120
movq 8(%rdi),%rbx
4121
cmpq %rdx,%rsi
4122
movq 16(%rdi),%rcx
4123
cmoveq %rsp,%r12
4124
movq 24(%rdi),%rdx
4125
movq 32(%rdi),%r8
4126
movq 40(%rdi),%r9
4127
movq 48(%rdi),%r10
4128
movq 56(%rdi),%r11
4129
jmp .Loop_avx2
4130
.align 16
4131
.Loop_avx2:
4132
vmovdqu -128(%rsi),%xmm0
4133
vmovdqu -128+16(%rsi),%xmm1
4134
vmovdqu -128+32(%rsi),%xmm2
4135
leaq K512+128(%rip),%rbp
4136
vmovdqu -128+48(%rsi),%xmm3
4137
vmovdqu -128+64(%rsi),%xmm4
4138
vmovdqu -128+80(%rsi),%xmm5
4139
vmovdqu -128+96(%rsi),%xmm6
4140
vmovdqu -128+112(%rsi),%xmm7
4141
4142
vmovdqa 1152(%rbp),%ymm10
4143
vinserti128 $1,(%r12),%ymm0,%ymm0
4144
vinserti128 $1,16(%r12),%ymm1,%ymm1
4145
vpshufb %ymm10,%ymm0,%ymm0
4146
vinserti128 $1,32(%r12),%ymm2,%ymm2
4147
vpshufb %ymm10,%ymm1,%ymm1
4148
vinserti128 $1,48(%r12),%ymm3,%ymm3
4149
vpshufb %ymm10,%ymm2,%ymm2
4150
vinserti128 $1,64(%r12),%ymm4,%ymm4
4151
vpshufb %ymm10,%ymm3,%ymm3
4152
vinserti128 $1,80(%r12),%ymm5,%ymm5
4153
vpshufb %ymm10,%ymm4,%ymm4
4154
vinserti128 $1,96(%r12),%ymm6,%ymm6
4155
vpshufb %ymm10,%ymm5,%ymm5
4156
vinserti128 $1,112(%r12),%ymm7,%ymm7
4157
4158
vpaddq -128(%rbp),%ymm0,%ymm8
4159
vpshufb %ymm10,%ymm6,%ymm6
4160
vpaddq -96(%rbp),%ymm1,%ymm9
4161
vpshufb %ymm10,%ymm7,%ymm7
4162
vpaddq -64(%rbp),%ymm2,%ymm10
4163
vpaddq -32(%rbp),%ymm3,%ymm11
4164
vmovdqa %ymm8,0(%rsp)
4165
vpaddq 0(%rbp),%ymm4,%ymm8
4166
vmovdqa %ymm9,32(%rsp)
4167
vpaddq 32(%rbp),%ymm5,%ymm9
4168
vmovdqa %ymm10,64(%rsp)
4169
vpaddq 64(%rbp),%ymm6,%ymm10
4170
vmovdqa %ymm11,96(%rsp)
4171
4172
movq 152(%rsp),%rdi
4173
.cfi_def_cfa %rdi,8
4174
leaq -128(%rsp),%rsp
4175
4176
4177
4178
movq %rdi,-8(%rsp)
4179
.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4180
vpaddq 96(%rbp),%ymm7,%ymm11
4181
vmovdqa %ymm8,0(%rsp)
4182
xorq %r14,%r14
4183
vmovdqa %ymm9,32(%rsp)
4184
movq %rbx,%rdi
4185
vmovdqa %ymm10,64(%rsp)
4186
xorq %rcx,%rdi
4187
vmovdqa %ymm11,96(%rsp)
4188
movq %r9,%r12
4189
addq $32*8,%rbp
4190
jmp .Lavx2_00_47
4191
4192
.align 16
4193
.Lavx2_00_47:
4194
leaq -128(%rsp),%rsp
4195
.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
4196
4197
pushq 128-8(%rsp)
4198
.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08
4199
leaq 8(%rsp),%rsp
4200
.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4201
vpalignr $8,%ymm0,%ymm1,%ymm8
4202
addq 0+256(%rsp),%r11
4203
andq %r8,%r12
4204
rorxq $41,%r8,%r13
4205
vpalignr $8,%ymm4,%ymm5,%ymm11
4206
rorxq $18,%r8,%r15
4207
leaq (%rax,%r14,1),%rax
4208
leaq (%r11,%r12,1),%r11
4209
vpsrlq $1,%ymm8,%ymm10
4210
andnq %r10,%r8,%r12
4211
xorq %r15,%r13
4212
rorxq $14,%r8,%r14
4213
vpaddq %ymm11,%ymm0,%ymm0
4214
vpsrlq $7,%ymm8,%ymm11
4215
leaq (%r11,%r12,1),%r11
4216
xorq %r14,%r13
4217
movq %rax,%r15
4218
vpsllq $56,%ymm8,%ymm9
4219
vpxor %ymm10,%ymm11,%ymm8
4220
rorxq $39,%rax,%r12
4221
leaq (%r11,%r13,1),%r11
4222
xorq %rbx,%r15
4223
vpsrlq $7,%ymm10,%ymm10
4224
vpxor %ymm9,%ymm8,%ymm8
4225
rorxq $34,%rax,%r14
4226
rorxq $28,%rax,%r13
4227
leaq (%rdx,%r11,1),%rdx
4228
vpsllq $7,%ymm9,%ymm9
4229
vpxor %ymm10,%ymm8,%ymm8
4230
andq %r15,%rdi
4231
xorq %r12,%r14
4232
xorq %rbx,%rdi
4233
vpsrlq $6,%ymm7,%ymm11
4234
vpxor %ymm9,%ymm8,%ymm8
4235
xorq %r13,%r14
4236
leaq (%r11,%rdi,1),%r11
4237
movq %r8,%r12
4238
vpsllq $3,%ymm7,%ymm10
4239
vpaddq %ymm8,%ymm0,%ymm0
4240
addq 8+256(%rsp),%r10
4241
andq %rdx,%r12
4242
rorxq $41,%rdx,%r13
4243
vpsrlq $19,%ymm7,%ymm9
4244
vpxor %ymm10,%ymm11,%ymm11
4245
rorxq $18,%rdx,%rdi
4246
leaq (%r11,%r14,1),%r11
4247
leaq (%r10,%r12,1),%r10
4248
vpsllq $42,%ymm10,%ymm10
4249
vpxor %ymm9,%ymm11,%ymm11
4250
andnq %r9,%rdx,%r12
4251
xorq %rdi,%r13
4252
rorxq $14,%rdx,%r14
4253
vpsrlq $42,%ymm9,%ymm9
4254
vpxor %ymm10,%ymm11,%ymm11
4255
leaq (%r10,%r12,1),%r10
4256
xorq %r14,%r13
4257
movq %r11,%rdi
4258
vpxor %ymm9,%ymm11,%ymm11
4259
rorxq $39,%r11,%r12
4260
leaq (%r10,%r13,1),%r10
4261
xorq %rax,%rdi
4262
vpaddq %ymm11,%ymm0,%ymm0
4263
rorxq $34,%r11,%r14
4264
rorxq $28,%r11,%r13
4265
leaq (%rcx,%r10,1),%rcx
4266
vpaddq -128(%rbp),%ymm0,%ymm10
4267
andq %rdi,%r15
4268
xorq %r12,%r14
4269
xorq %rax,%r15
4270
xorq %r13,%r14
4271
leaq (%r10,%r15,1),%r10
4272
movq %rdx,%r12
4273
vmovdqa %ymm10,0(%rsp)
4274
vpalignr $8,%ymm1,%ymm2,%ymm8
4275
addq 32+256(%rsp),%r9
4276
andq %rcx,%r12
4277
rorxq $41,%rcx,%r13
4278
vpalignr $8,%ymm5,%ymm6,%ymm11
4279
rorxq $18,%rcx,%r15
4280
leaq (%r10,%r14,1),%r10
4281
leaq (%r9,%r12,1),%r9
4282
vpsrlq $1,%ymm8,%ymm10
4283
andnq %r8,%rcx,%r12
4284
xorq %r15,%r13
4285
rorxq $14,%rcx,%r14
4286
vpaddq %ymm11,%ymm1,%ymm1
4287
vpsrlq $7,%ymm8,%ymm11
4288
leaq (%r9,%r12,1),%r9
4289
xorq %r14,%r13
4290
movq %r10,%r15
4291
vpsllq $56,%ymm8,%ymm9
4292
vpxor %ymm10,%ymm11,%ymm8
4293
rorxq $39,%r10,%r12
4294
leaq (%r9,%r13,1),%r9
4295
xorq %r11,%r15
4296
vpsrlq $7,%ymm10,%ymm10
4297
vpxor %ymm9,%ymm8,%ymm8
4298
rorxq $34,%r10,%r14
4299
rorxq $28,%r10,%r13
4300
leaq (%rbx,%r9,1),%rbx
4301
vpsllq $7,%ymm9,%ymm9
4302
vpxor %ymm10,%ymm8,%ymm8
4303
andq %r15,%rdi
4304
xorq %r12,%r14
4305
xorq %r11,%rdi
4306
vpsrlq $6,%ymm0,%ymm11
4307
vpxor %ymm9,%ymm8,%ymm8
4308
xorq %r13,%r14
4309
leaq (%r9,%rdi,1),%r9
4310
movq %rcx,%r12
4311
vpsllq $3,%ymm0,%ymm10
4312
vpaddq %ymm8,%ymm1,%ymm1
4313
addq 40+256(%rsp),%r8
4314
andq %rbx,%r12
4315
rorxq $41,%rbx,%r13
4316
vpsrlq $19,%ymm0,%ymm9
4317
vpxor %ymm10,%ymm11,%ymm11
4318
rorxq $18,%rbx,%rdi
4319
leaq (%r9,%r14,1),%r9
4320
leaq (%r8,%r12,1),%r8
4321
vpsllq $42,%ymm10,%ymm10
4322
vpxor %ymm9,%ymm11,%ymm11
4323
andnq %rdx,%rbx,%r12
4324
xorq %rdi,%r13
4325
rorxq $14,%rbx,%r14
4326
vpsrlq $42,%ymm9,%ymm9
4327
vpxor %ymm10,%ymm11,%ymm11
4328
leaq (%r8,%r12,1),%r8
4329
xorq %r14,%r13
4330
movq %r9,%rdi
4331
vpxor %ymm9,%ymm11,%ymm11
4332
rorxq $39,%r9,%r12
4333
leaq (%r8,%r13,1),%r8
4334
xorq %r10,%rdi
4335
vpaddq %ymm11,%ymm1,%ymm1
4336
rorxq $34,%r9,%r14
4337
rorxq $28,%r9,%r13
4338
leaq (%rax,%r8,1),%rax
4339
vpaddq -96(%rbp),%ymm1,%ymm10
4340
andq %rdi,%r15
4341
xorq %r12,%r14
4342
xorq %r10,%r15
4343
xorq %r13,%r14
4344
leaq (%r8,%r15,1),%r8
4345
movq %rbx,%r12
4346
vmovdqa %ymm10,32(%rsp)
4347
vpalignr $8,%ymm2,%ymm3,%ymm8
4348
addq 64+256(%rsp),%rdx
4349
andq %rax,%r12
4350
rorxq $41,%rax,%r13
4351
vpalignr $8,%ymm6,%ymm7,%ymm11
4352
rorxq $18,%rax,%r15
4353
leaq (%r8,%r14,1),%r8
4354
leaq (%rdx,%r12,1),%rdx
4355
vpsrlq $1,%ymm8,%ymm10
4356
andnq %rcx,%rax,%r12
4357
xorq %r15,%r13
4358
rorxq $14,%rax,%r14
4359
vpaddq %ymm11,%ymm2,%ymm2
4360
vpsrlq $7,%ymm8,%ymm11
4361
leaq (%rdx,%r12,1),%rdx
4362
xorq %r14,%r13
4363
movq %r8,%r15
4364
vpsllq $56,%ymm8,%ymm9
4365
vpxor %ymm10,%ymm11,%ymm8
4366
rorxq $39,%r8,%r12
4367
leaq (%rdx,%r13,1),%rdx
4368
xorq %r9,%r15
4369
vpsrlq $7,%ymm10,%ymm10
4370
vpxor %ymm9,%ymm8,%ymm8
4371
rorxq $34,%r8,%r14
4372
rorxq $28,%r8,%r13
4373
leaq (%r11,%rdx,1),%r11
4374
vpsllq $7,%ymm9,%ymm9
4375
vpxor %ymm10,%ymm8,%ymm8
4376
andq %r15,%rdi
4377
xorq %r12,%r14
4378
xorq %r9,%rdi
4379
vpsrlq $6,%ymm1,%ymm11
4380
vpxor %ymm9,%ymm8,%ymm8
4381
xorq %r13,%r14
4382
leaq (%rdx,%rdi,1),%rdx
4383
movq %rax,%r12
4384
vpsllq $3,%ymm1,%ymm10
4385
vpaddq %ymm8,%ymm2,%ymm2
4386
addq 72+256(%rsp),%rcx
4387
andq %r11,%r12
4388
rorxq $41,%r11,%r13
4389
vpsrlq $19,%ymm1,%ymm9
4390
vpxor %ymm10,%ymm11,%ymm11
4391
rorxq $18,%r11,%rdi
4392
leaq (%rdx,%r14,1),%rdx
4393
leaq (%rcx,%r12,1),%rcx
4394
vpsllq $42,%ymm10,%ymm10
4395
vpxor %ymm9,%ymm11,%ymm11
4396
andnq %rbx,%r11,%r12
4397
xorq %rdi,%r13
4398
rorxq $14,%r11,%r14
4399
vpsrlq $42,%ymm9,%ymm9
4400
vpxor %ymm10,%ymm11,%ymm11
4401
leaq (%rcx,%r12,1),%rcx
4402
xorq %r14,%r13
4403
movq %rdx,%rdi
4404
vpxor %ymm9,%ymm11,%ymm11
4405
rorxq $39,%rdx,%r12
4406
leaq (%rcx,%r13,1),%rcx
4407
xorq %r8,%rdi
4408
vpaddq %ymm11,%ymm2,%ymm2
4409
rorxq $34,%rdx,%r14
4410
rorxq $28,%rdx,%r13
4411
leaq (%r10,%rcx,1),%r10
4412
vpaddq -64(%rbp),%ymm2,%ymm10
4413
andq %rdi,%r15
4414
xorq %r12,%r14
4415
xorq %r8,%r15
4416
xorq %r13,%r14
4417
leaq (%rcx,%r15,1),%rcx
4418
movq %r11,%r12
4419
vmovdqa %ymm10,64(%rsp)
4420
vpalignr $8,%ymm3,%ymm4,%ymm8
4421
addq 96+256(%rsp),%rbx
4422
andq %r10,%r12
4423
rorxq $41,%r10,%r13
4424
vpalignr $8,%ymm7,%ymm0,%ymm11
4425
rorxq $18,%r10,%r15
4426
leaq (%rcx,%r14,1),%rcx
4427
leaq (%rbx,%r12,1),%rbx
4428
vpsrlq $1,%ymm8,%ymm10
4429
andnq %rax,%r10,%r12
4430
xorq %r15,%r13
4431
rorxq $14,%r10,%r14
4432
vpaddq %ymm11,%ymm3,%ymm3
4433
vpsrlq $7,%ymm8,%ymm11
4434
leaq (%rbx,%r12,1),%rbx
4435
xorq %r14,%r13
4436
movq %rcx,%r15
4437
vpsllq $56,%ymm8,%ymm9
4438
vpxor %ymm10,%ymm11,%ymm8
4439
rorxq $39,%rcx,%r12
4440
leaq (%rbx,%r13,1),%rbx
4441
xorq %rdx,%r15
4442
vpsrlq $7,%ymm10,%ymm10
4443
vpxor %ymm9,%ymm8,%ymm8
4444
rorxq $34,%rcx,%r14
4445
rorxq $28,%rcx,%r13
4446
leaq (%r9,%rbx,1),%r9
4447
vpsllq $7,%ymm9,%ymm9
4448
vpxor %ymm10,%ymm8,%ymm8
4449
andq %r15,%rdi
4450
xorq %r12,%r14
4451
xorq %rdx,%rdi
4452
vpsrlq $6,%ymm2,%ymm11
4453
vpxor %ymm9,%ymm8,%ymm8
4454
xorq %r13,%r14
4455
leaq (%rbx,%rdi,1),%rbx
4456
movq %r10,%r12
4457
vpsllq $3,%ymm2,%ymm10
4458
vpaddq %ymm8,%ymm3,%ymm3
4459
addq 104+256(%rsp),%rax
4460
andq %r9,%r12
4461
rorxq $41,%r9,%r13
4462
vpsrlq $19,%ymm2,%ymm9
4463
vpxor %ymm10,%ymm11,%ymm11
4464
rorxq $18,%r9,%rdi
4465
leaq (%rbx,%r14,1),%rbx
4466
leaq (%rax,%r12,1),%rax
4467
vpsllq $42,%ymm10,%ymm10
4468
vpxor %ymm9,%ymm11,%ymm11
4469
andnq %r11,%r9,%r12
4470
xorq %rdi,%r13
4471
rorxq $14,%r9,%r14
4472
vpsrlq $42,%ymm9,%ymm9
4473
vpxor %ymm10,%ymm11,%ymm11
4474
leaq (%rax,%r12,1),%rax
4475
xorq %r14,%r13
4476
movq %rbx,%rdi
4477
vpxor %ymm9,%ymm11,%ymm11
4478
rorxq $39,%rbx,%r12
4479
leaq (%rax,%r13,1),%rax
4480
xorq %rcx,%rdi
4481
vpaddq %ymm11,%ymm3,%ymm3
4482
rorxq $34,%rbx,%r14
4483
rorxq $28,%rbx,%r13
4484
leaq (%r8,%rax,1),%r8
4485
vpaddq -32(%rbp),%ymm3,%ymm10
4486
andq %rdi,%r15
4487
xorq %r12,%r14
4488
xorq %rcx,%r15
4489
xorq %r13,%r14
4490
leaq (%rax,%r15,1),%rax
4491
movq %r9,%r12
4492
vmovdqa %ymm10,96(%rsp)
4493
leaq -128(%rsp),%rsp
4494
.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
4495
4496
pushq 128-8(%rsp)
4497
.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08
4498
leaq 8(%rsp),%rsp
4499
.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08
4500
vpalignr $8,%ymm4,%ymm5,%ymm8
4501
addq 0+256(%rsp),%r11
4502
andq %r8,%r12
4503
rorxq $41,%r8,%r13
4504
vpalignr $8,%ymm0,%ymm1,%ymm11
4505
rorxq $18,%r8,%r15
4506
leaq (%rax,%r14,1),%rax
4507
leaq (%r11,%r12,1),%r11
4508
vpsrlq $1,%ymm8,%ymm10
4509
andnq %r10,%r8,%r12
4510
xorq %r15,%r13
4511
rorxq $14,%r8,%r14
4512
vpaddq %ymm11,%ymm4,%ymm4
4513
vpsrlq $7,%ymm8,%ymm11
4514
leaq (%r11,%r12,1),%r11
4515
xorq %r14,%r13
4516
movq %rax,%r15
4517
vpsllq $56,%ymm8,%ymm9
4518
vpxor %ymm10,%ymm11,%ymm8
4519
rorxq $39,%rax,%r12
4520
leaq (%r11,%r13,1),%r11
4521
xorq %rbx,%r15
4522
vpsrlq $7,%ymm10,%ymm10
4523
vpxor %ymm9,%ymm8,%ymm8
4524
rorxq $34,%rax,%r14
4525
rorxq $28,%rax,%r13
4526
leaq (%rdx,%r11,1),%rdx
4527
vpsllq $7,%ymm9,%ymm9
4528
vpxor %ymm10,%ymm8,%ymm8
4529
andq %r15,%rdi
4530
xorq %r12,%r14
4531
xorq %rbx,%rdi
4532
vpsrlq $6,%ymm3,%ymm11
4533
vpxor %ymm9,%ymm8,%ymm8
4534
xorq %r13,%r14
4535
leaq (%r11,%rdi,1),%r11
4536
movq %r8,%r12
4537
vpsllq $3,%ymm3,%ymm10
4538
vpaddq %ymm8,%ymm4,%ymm4
4539
addq 8+256(%rsp),%r10
4540
andq %rdx,%r12
4541
rorxq $41,%rdx,%r13
4542
vpsrlq $19,%ymm3,%ymm9
4543
vpxor %ymm10,%ymm11,%ymm11
4544
rorxq $18,%rdx,%rdi
4545
leaq (%r11,%r14,1),%r11
4546
leaq (%r10,%r12,1),%r10
4547
vpsllq $42,%ymm10,%ymm10
4548
vpxor %ymm9,%ymm11,%ymm11
4549
andnq %r9,%rdx,%r12
4550
xorq %rdi,%r13
4551
rorxq $14,%rdx,%r14
4552
vpsrlq $42,%ymm9,%ymm9
4553
vpxor %ymm10,%ymm11,%ymm11
4554
leaq (%r10,%r12,1),%r10
4555
xorq %r14,%r13
4556
movq %r11,%rdi
4557
vpxor %ymm9,%ymm11,%ymm11
4558
rorxq $39,%r11,%r12
4559
leaq (%r10,%r13,1),%r10
4560
xorq %rax,%rdi
4561
vpaddq %ymm11,%ymm4,%ymm4
4562
rorxq $34,%r11,%r14
4563
rorxq $28,%r11,%r13
4564
leaq (%rcx,%r10,1),%rcx
4565
vpaddq 0(%rbp),%ymm4,%ymm10
4566
andq %rdi,%r15
4567
xorq %r12,%r14
4568
xorq %rax,%r15
4569
xorq %r13,%r14
4570
leaq (%r10,%r15,1),%r10
4571
movq %rdx,%r12
4572
vmovdqa %ymm10,0(%rsp)
4573
vpalignr $8,%ymm5,%ymm6,%ymm8
4574
addq 32+256(%rsp),%r9
4575
andq %rcx,%r12
4576
rorxq $41,%rcx,%r13
4577
vpalignr $8,%ymm1,%ymm2,%ymm11
4578
rorxq $18,%rcx,%r15
4579
leaq (%r10,%r14,1),%r10
4580
leaq (%r9,%r12,1),%r9
4581
vpsrlq $1,%ymm8,%ymm10
4582
andnq %r8,%rcx,%r12
4583
xorq %r15,%r13
4584
rorxq $14,%rcx,%r14
4585
vpaddq %ymm11,%ymm5,%ymm5
4586
vpsrlq $7,%ymm8,%ymm11
4587
leaq (%r9,%r12,1),%r9
4588
xorq %r14,%r13
4589
movq %r10,%r15
4590
vpsllq $56,%ymm8,%ymm9
4591
vpxor %ymm10,%ymm11,%ymm8
4592
rorxq $39,%r10,%r12
4593
leaq (%r9,%r13,1),%r9
4594
xorq %r11,%r15
4595
vpsrlq $7,%ymm10,%ymm10
4596
vpxor %ymm9,%ymm8,%ymm8
4597
rorxq $34,%r10,%r14
4598
rorxq $28,%r10,%r13
4599
leaq (%rbx,%r9,1),%rbx
4600
vpsllq $7,%ymm9,%ymm9
4601
vpxor %ymm10,%ymm8,%ymm8
4602
andq %r15,%rdi
4603
xorq %r12,%r14
4604
xorq %r11,%rdi
4605
vpsrlq $6,%ymm4,%ymm11
4606
vpxor %ymm9,%ymm8,%ymm8
4607
xorq %r13,%r14
4608
leaq (%r9,%rdi,1),%r9
4609
movq %rcx,%r12
4610
vpsllq $3,%ymm4,%ymm10
4611
vpaddq %ymm8,%ymm5,%ymm5
4612
addq 40+256(%rsp),%r8
4613
andq %rbx,%r12
4614
rorxq $41,%rbx,%r13
4615
vpsrlq $19,%ymm4,%ymm9
4616
vpxor %ymm10,%ymm11,%ymm11
4617
rorxq $18,%rbx,%rdi
4618
leaq (%r9,%r14,1),%r9
4619
leaq (%r8,%r12,1),%r8
4620
vpsllq $42,%ymm10,%ymm10
4621
vpxor %ymm9,%ymm11,%ymm11
4622
andnq %rdx,%rbx,%r12
4623
xorq %rdi,%r13
4624
rorxq $14,%rbx,%r14
4625
vpsrlq $42,%ymm9,%ymm9
4626
vpxor %ymm10,%ymm11,%ymm11
4627
leaq (%r8,%r12,1),%r8
4628
xorq %r14,%r13
4629
movq %r9,%rdi
4630
vpxor %ymm9,%ymm11,%ymm11
4631
rorxq $39,%r9,%r12
4632
leaq (%r8,%r13,1),%r8
4633
xorq %r10,%rdi
4634
vpaddq %ymm11,%ymm5,%ymm5
4635
rorxq $34,%r9,%r14
4636
rorxq $28,%r9,%r13
4637
leaq (%rax,%r8,1),%rax
4638
vpaddq 32(%rbp),%ymm5,%ymm10
4639
andq %rdi,%r15
4640
xorq %r12,%r14
4641
xorq %r10,%r15
4642
xorq %r13,%r14
4643
leaq (%r8,%r15,1),%r8
4644
movq %rbx,%r12
4645
vmovdqa %ymm10,32(%rsp)
4646
vpalignr $8,%ymm6,%ymm7,%ymm8
4647
addq 64+256(%rsp),%rdx
4648
andq %rax,%r12
4649
rorxq $41,%rax,%r13
4650
vpalignr $8,%ymm2,%ymm3,%ymm11
4651
rorxq $18,%rax,%r15
4652
leaq (%r8,%r14,1),%r8
4653
leaq (%rdx,%r12,1),%rdx
4654
vpsrlq $1,%ymm8,%ymm10
4655
andnq %rcx,%rax,%r12
4656
xorq %r15,%r13
4657
rorxq $14,%rax,%r14
4658
vpaddq %ymm11,%ymm6,%ymm6
4659
vpsrlq $7,%ymm8,%ymm11
4660
leaq (%rdx,%r12,1),%rdx
4661
xorq %r14,%r13
4662
movq %r8,%r15
4663
vpsllq $56,%ymm8,%ymm9
4664
vpxor %ymm10,%ymm11,%ymm8
4665
rorxq $39,%r8,%r12
4666
leaq (%rdx,%r13,1),%rdx
4667
xorq %r9,%r15
4668
vpsrlq $7,%ymm10,%ymm10
4669
vpxor %ymm9,%ymm8,%ymm8
4670
rorxq $34,%r8,%r14
4671
rorxq $28,%r8,%r13
4672
leaq (%r11,%rdx,1),%r11
4673
vpsllq $7,%ymm9,%ymm9
4674
vpxor %ymm10,%ymm8,%ymm8
4675
andq %r15,%rdi
4676
xorq %r12,%r14
4677
xorq %r9,%rdi
4678
vpsrlq $6,%ymm5,%ymm11
4679
vpxor %ymm9,%ymm8,%ymm8
4680
xorq %r13,%r14
4681
leaq (%rdx,%rdi,1),%rdx
4682
movq %rax,%r12
4683
vpsllq $3,%ymm5,%ymm10
4684
vpaddq %ymm8,%ymm6,%ymm6
4685
addq 72+256(%rsp),%rcx
4686
andq %r11,%r12
4687
rorxq $41,%r11,%r13
4688
vpsrlq $19,%ymm5,%ymm9
4689
vpxor %ymm10,%ymm11,%ymm11
4690
rorxq $18,%r11,%rdi
4691
leaq (%rdx,%r14,1),%rdx
4692
leaq (%rcx,%r12,1),%rcx
4693
vpsllq $42,%ymm10,%ymm10
4694
vpxor %ymm9,%ymm11,%ymm11
4695
andnq %rbx,%r11,%r12
4696
xorq %rdi,%r13
4697
rorxq $14,%r11,%r14
4698
vpsrlq $42,%ymm9,%ymm9
4699
vpxor %ymm10,%ymm11,%ymm11
4700
leaq (%rcx,%r12,1),%rcx
4701
xorq %r14,%r13
4702
movq %rdx,%rdi
4703
vpxor %ymm9,%ymm11,%ymm11
4704
rorxq $39,%rdx,%r12
4705
leaq (%rcx,%r13,1),%rcx
4706
xorq %r8,%rdi
4707
vpaddq %ymm11,%ymm6,%ymm6
4708
rorxq $34,%rdx,%r14
4709
rorxq $28,%rdx,%r13
4710
leaq (%r10,%rcx,1),%r10
4711
vpaddq 64(%rbp),%ymm6,%ymm10
4712
andq %rdi,%r15
4713
xorq %r12,%r14
4714
xorq %r8,%r15
4715
xorq %r13,%r14
4716
leaq (%rcx,%r15,1),%rcx
4717
movq %r11,%r12
4718
vmovdqa %ymm10,64(%rsp)
4719
vpalignr $8,%ymm7,%ymm0,%ymm8
4720
addq 96+256(%rsp),%rbx
4721
andq %r10,%r12
4722
rorxq $41,%r10,%r13
4723
vpalignr $8,%ymm3,%ymm4,%ymm11
4724
rorxq $18,%r10,%r15
4725
leaq (%rcx,%r14,1),%rcx
4726
leaq (%rbx,%r12,1),%rbx
4727
vpsrlq $1,%ymm8,%ymm10
4728
andnq %rax,%r10,%r12
4729
xorq %r15,%r13
4730
rorxq $14,%r10,%r14
4731
vpaddq %ymm11,%ymm7,%ymm7
4732
vpsrlq $7,%ymm8,%ymm11
4733
leaq (%rbx,%r12,1),%rbx
4734
xorq %r14,%r13
4735
movq %rcx,%r15
4736
vpsllq $56,%ymm8,%ymm9
4737
vpxor %ymm10,%ymm11,%ymm8
4738
rorxq $39,%rcx,%r12
4739
leaq (%rbx,%r13,1),%rbx
4740
xorq %rdx,%r15
4741
vpsrlq $7,%ymm10,%ymm10
4742
vpxor %ymm9,%ymm8,%ymm8
4743
rorxq $34,%rcx,%r14
4744
rorxq $28,%rcx,%r13
4745
leaq (%r9,%rbx,1),%r9
4746
vpsllq $7,%ymm9,%ymm9
4747
vpxor %ymm10,%ymm8,%ymm8
4748
andq %r15,%rdi
4749
xorq %r12,%r14
4750
xorq %rdx,%rdi
4751
vpsrlq $6,%ymm6,%ymm11
4752
vpxor %ymm9,%ymm8,%ymm8
4753
xorq %r13,%r14
4754
leaq (%rbx,%rdi,1),%rbx
4755
movq %r10,%r12
4756
vpsllq $3,%ymm6,%ymm10
4757
vpaddq %ymm8,%ymm7,%ymm7
4758
addq 104+256(%rsp),%rax
4759
andq %r9,%r12
4760
rorxq $41,%r9,%r13
4761
vpsrlq $19,%ymm6,%ymm9
4762
vpxor %ymm10,%ymm11,%ymm11
4763
rorxq $18,%r9,%rdi
4764
leaq (%rbx,%r14,1),%rbx
4765
leaq (%rax,%r12,1),%rax
4766
vpsllq $42,%ymm10,%ymm10
4767
vpxor %ymm9,%ymm11,%ymm11
4768
andnq %r11,%r9,%r12
4769
xorq %rdi,%r13
4770
rorxq $14,%r9,%r14
4771
vpsrlq $42,%ymm9,%ymm9
4772
vpxor %ymm10,%ymm11,%ymm11
4773
leaq (%rax,%r12,1),%rax
4774
xorq %r14,%r13
4775
movq %rbx,%rdi
4776
vpxor %ymm9,%ymm11,%ymm11
4777
rorxq $39,%rbx,%r12
4778
leaq (%rax,%r13,1),%rax
4779
xorq %rcx,%rdi
4780
vpaddq %ymm11,%ymm7,%ymm7
4781
rorxq $34,%rbx,%r14
4782
rorxq $28,%rbx,%r13
4783
leaq (%r8,%rax,1),%r8
4784
vpaddq 96(%rbp),%ymm7,%ymm10
4785
andq %rdi,%r15
4786
xorq %r12,%r14
4787
xorq %rcx,%r15
4788
xorq %r13,%r14
4789
leaq (%rax,%r15,1),%rax
4790
movq %r9,%r12
4791
vmovdqa %ymm10,96(%rsp)
4792
leaq 256(%rbp),%rbp
4793
cmpb $0,-121(%rbp)
4794
jne .Lavx2_00_47
4795
addq 0+128(%rsp),%r11
4796
andq %r8,%r12
4797
rorxq $41,%r8,%r13
4798
rorxq $18,%r8,%r15
4799
leaq (%rax,%r14,1),%rax
4800
leaq (%r11,%r12,1),%r11
4801
andnq %r10,%r8,%r12
4802
xorq %r15,%r13
4803
rorxq $14,%r8,%r14
4804
leaq (%r11,%r12,1),%r11
4805
xorq %r14,%r13
4806
movq %rax,%r15
4807
rorxq $39,%rax,%r12
4808
leaq (%r11,%r13,1),%r11
4809
xorq %rbx,%r15
4810
rorxq $34,%rax,%r14
4811
rorxq $28,%rax,%r13
4812
leaq (%rdx,%r11,1),%rdx
4813
andq %r15,%rdi
4814
xorq %r12,%r14
4815
xorq %rbx,%rdi
4816
xorq %r13,%r14
4817
leaq (%r11,%rdi,1),%r11
4818
movq %r8,%r12
4819
addq 8+128(%rsp),%r10
4820
andq %rdx,%r12
4821
rorxq $41,%rdx,%r13
4822
rorxq $18,%rdx,%rdi
4823
leaq (%r11,%r14,1),%r11
4824
leaq (%r10,%r12,1),%r10
4825
andnq %r9,%rdx,%r12
4826
xorq %rdi,%r13
4827
rorxq $14,%rdx,%r14
4828
leaq (%r10,%r12,1),%r10
4829
xorq %r14,%r13
4830
movq %r11,%rdi
4831
rorxq $39,%r11,%r12
4832
leaq (%r10,%r13,1),%r10
4833
xorq %rax,%rdi
4834
rorxq $34,%r11,%r14
4835
rorxq $28,%r11,%r13
4836
leaq (%rcx,%r10,1),%rcx
4837
andq %rdi,%r15
4838
xorq %r12,%r14
4839
xorq %rax,%r15
4840
xorq %r13,%r14
4841
leaq (%r10,%r15,1),%r10
4842
movq %rdx,%r12
4843
addq 32+128(%rsp),%r9
4844
andq %rcx,%r12
4845
rorxq $41,%rcx,%r13
4846
rorxq $18,%rcx,%r15
4847
leaq (%r10,%r14,1),%r10
4848
leaq (%r9,%r12,1),%r9
4849
andnq %r8,%rcx,%r12
4850
xorq %r15,%r13
4851
rorxq $14,%rcx,%r14
4852
leaq (%r9,%r12,1),%r9
4853
xorq %r14,%r13
4854
movq %r10,%r15
4855
rorxq $39,%r10,%r12
4856
leaq (%r9,%r13,1),%r9
4857
xorq %r11,%r15
4858
rorxq $34,%r10,%r14
4859
rorxq $28,%r10,%r13
4860
leaq (%rbx,%r9,1),%rbx
4861
andq %r15,%rdi
4862
xorq %r12,%r14
4863
xorq %r11,%rdi
4864
xorq %r13,%r14
4865
leaq (%r9,%rdi,1),%r9
4866
movq %rcx,%r12
4867
addq 40+128(%rsp),%r8
4868
andq %rbx,%r12
4869
rorxq $41,%rbx,%r13
4870
rorxq $18,%rbx,%rdi
4871
leaq (%r9,%r14,1),%r9
4872
leaq (%r8,%r12,1),%r8
4873
andnq %rdx,%rbx,%r12
4874
xorq %rdi,%r13
4875
rorxq $14,%rbx,%r14
4876
leaq (%r8,%r12,1),%r8
4877
xorq %r14,%r13
4878
movq %r9,%rdi
4879
rorxq $39,%r9,%r12
4880
leaq (%r8,%r13,1),%r8
4881
xorq %r10,%rdi
4882
rorxq $34,%r9,%r14
4883
rorxq $28,%r9,%r13
4884
leaq (%rax,%r8,1),%rax
4885
andq %rdi,%r15
4886
xorq %r12,%r14
4887
xorq %r10,%r15
4888
xorq %r13,%r14
4889
leaq (%r8,%r15,1),%r8
4890
movq %rbx,%r12
4891
addq 64+128(%rsp),%rdx
4892
andq %rax,%r12
4893
rorxq $41,%rax,%r13
4894
rorxq $18,%rax,%r15
4895
leaq (%r8,%r14,1),%r8
4896
leaq (%rdx,%r12,1),%rdx
4897
andnq %rcx,%rax,%r12
4898
xorq %r15,%r13
4899
rorxq $14,%rax,%r14
4900
leaq (%rdx,%r12,1),%rdx
4901
xorq %r14,%r13
4902
movq %r8,%r15
4903
rorxq $39,%r8,%r12
4904
leaq (%rdx,%r13,1),%rdx
4905
xorq %r9,%r15
4906
rorxq $34,%r8,%r14
4907
rorxq $28,%r8,%r13
4908
leaq (%r11,%rdx,1),%r11
4909
andq %r15,%rdi
4910
xorq %r12,%r14
4911
xorq %r9,%rdi
4912
xorq %r13,%r14
4913
leaq (%rdx,%rdi,1),%rdx
4914
movq %rax,%r12
4915
addq 72+128(%rsp),%rcx
4916
andq %r11,%r12
4917
rorxq $41,%r11,%r13
4918
rorxq $18,%r11,%rdi
4919
leaq (%rdx,%r14,1),%rdx
4920
leaq (%rcx,%r12,1),%rcx
4921
andnq %rbx,%r11,%r12
4922
xorq %rdi,%r13
4923
rorxq $14,%r11,%r14
4924
leaq (%rcx,%r12,1),%rcx
4925
xorq %r14,%r13
4926
movq %rdx,%rdi
4927
rorxq $39,%rdx,%r12
4928
leaq (%rcx,%r13,1),%rcx
4929
xorq %r8,%rdi
4930
rorxq $34,%rdx,%r14
4931
rorxq $28,%rdx,%r13
4932
leaq (%r10,%rcx,1),%r10
4933
andq %rdi,%r15
4934
xorq %r12,%r14
4935
xorq %r8,%r15
4936
xorq %r13,%r14
4937
leaq (%rcx,%r15,1),%rcx
4938
movq %r11,%r12
4939
addq 96+128(%rsp),%rbx
4940
andq %r10,%r12
4941
rorxq $41,%r10,%r13
4942
rorxq $18,%r10,%r15
4943
leaq (%rcx,%r14,1),%rcx
4944
leaq (%rbx,%r12,1),%rbx
4945
andnq %rax,%r10,%r12
4946
xorq %r15,%r13
4947
rorxq $14,%r10,%r14
4948
leaq (%rbx,%r12,1),%rbx
4949
xorq %r14,%r13
4950
movq %rcx,%r15
4951
rorxq $39,%rcx,%r12
4952
leaq (%rbx,%r13,1),%rbx
4953
xorq %rdx,%r15
4954
rorxq $34,%rcx,%r14
4955
rorxq $28,%rcx,%r13
4956
leaq (%r9,%rbx,1),%r9
4957
andq %r15,%rdi
4958
xorq %r12,%r14
4959
xorq %rdx,%rdi
4960
xorq %r13,%r14
4961
leaq (%rbx,%rdi,1),%rbx
4962
movq %r10,%r12
4963
addq 104+128(%rsp),%rax
4964
andq %r9,%r12
4965
rorxq $41,%r9,%r13
4966
rorxq $18,%r9,%rdi
4967
leaq (%rbx,%r14,1),%rbx
4968
leaq (%rax,%r12,1),%rax
4969
andnq %r11,%r9,%r12
4970
xorq %rdi,%r13
4971
rorxq $14,%r9,%r14
4972
leaq (%rax,%r12,1),%rax
4973
xorq %r14,%r13
4974
movq %rbx,%rdi
4975
rorxq $39,%rbx,%r12
4976
leaq (%rax,%r13,1),%rax
4977
xorq %rcx,%rdi
4978
rorxq $34,%rbx,%r14
4979
rorxq $28,%rbx,%r13
4980
leaq (%r8,%rax,1),%r8
4981
andq %rdi,%r15
4982
xorq %r12,%r14
4983
xorq %rcx,%r15
4984
xorq %r13,%r14
4985
leaq (%rax,%r15,1),%rax
4986
movq %r9,%r12
4987
addq 0(%rsp),%r11
4988
andq %r8,%r12
4989
rorxq $41,%r8,%r13
4990
rorxq $18,%r8,%r15
4991
leaq (%rax,%r14,1),%rax
4992
leaq (%r11,%r12,1),%r11
4993
andnq %r10,%r8,%r12
4994
xorq %r15,%r13
4995
rorxq $14,%r8,%r14
4996
leaq (%r11,%r12,1),%r11
4997
xorq %r14,%r13
4998
movq %rax,%r15
4999
rorxq $39,%rax,%r12
5000
leaq (%r11,%r13,1),%r11
5001
xorq %rbx,%r15
5002
rorxq $34,%rax,%r14
5003
rorxq $28,%rax,%r13
5004
leaq (%rdx,%r11,1),%rdx
5005
andq %r15,%rdi
5006
xorq %r12,%r14
5007
xorq %rbx,%rdi
5008
xorq %r13,%r14
5009
leaq (%r11,%rdi,1),%r11
5010
movq %r8,%r12
5011
addq 8(%rsp),%r10
5012
andq %rdx,%r12
5013
rorxq $41,%rdx,%r13
5014
rorxq $18,%rdx,%rdi
5015
leaq (%r11,%r14,1),%r11
5016
leaq (%r10,%r12,1),%r10
5017
andnq %r9,%rdx,%r12
5018
xorq %rdi,%r13
5019
rorxq $14,%rdx,%r14
5020
leaq (%r10,%r12,1),%r10
5021
xorq %r14,%r13
5022
movq %r11,%rdi
5023
rorxq $39,%r11,%r12
5024
leaq (%r10,%r13,1),%r10
5025
xorq %rax,%rdi
5026
rorxq $34,%r11,%r14
5027
rorxq $28,%r11,%r13
5028
leaq (%rcx,%r10,1),%rcx
5029
andq %rdi,%r15
5030
xorq %r12,%r14
5031
xorq %rax,%r15
5032
xorq %r13,%r14
5033
leaq (%r10,%r15,1),%r10
5034
movq %rdx,%r12
5035
addq 32(%rsp),%r9
5036
andq %rcx,%r12
5037
rorxq $41,%rcx,%r13
5038
rorxq $18,%rcx,%r15
5039
leaq (%r10,%r14,1),%r10
5040
leaq (%r9,%r12,1),%r9
5041
andnq %r8,%rcx,%r12
5042
xorq %r15,%r13
5043
rorxq $14,%rcx,%r14
5044
leaq (%r9,%r12,1),%r9
5045
xorq %r14,%r13
5046
movq %r10,%r15
5047
rorxq $39,%r10,%r12
5048
leaq (%r9,%r13,1),%r9
5049
xorq %r11,%r15
5050
rorxq $34,%r10,%r14
5051
rorxq $28,%r10,%r13
5052
leaq (%rbx,%r9,1),%rbx
5053
andq %r15,%rdi
5054
xorq %r12,%r14
5055
xorq %r11,%rdi
5056
xorq %r13,%r14
5057
leaq (%r9,%rdi,1),%r9
5058
movq %rcx,%r12
5059
addq 40(%rsp),%r8
5060
andq %rbx,%r12
5061
rorxq $41,%rbx,%r13
5062
rorxq $18,%rbx,%rdi
5063
leaq (%r9,%r14,1),%r9
5064
leaq (%r8,%r12,1),%r8
5065
andnq %rdx,%rbx,%r12
5066
xorq %rdi,%r13
5067
rorxq $14,%rbx,%r14
5068
leaq (%r8,%r12,1),%r8
5069
xorq %r14,%r13
5070
movq %r9,%rdi
5071
rorxq $39,%r9,%r12
5072
leaq (%r8,%r13,1),%r8
5073
xorq %r10,%rdi
5074
rorxq $34,%r9,%r14
5075
rorxq $28,%r9,%r13
5076
leaq (%rax,%r8,1),%rax
5077
andq %rdi,%r15
5078
xorq %r12,%r14
5079
xorq %r10,%r15
5080
xorq %r13,%r14
5081
leaq (%r8,%r15,1),%r8
5082
movq %rbx,%r12
5083
addq 64(%rsp),%rdx
5084
andq %rax,%r12
5085
rorxq $41,%rax,%r13
5086
rorxq $18,%rax,%r15
5087
leaq (%r8,%r14,1),%r8
5088
leaq (%rdx,%r12,1),%rdx
5089
andnq %rcx,%rax,%r12
5090
xorq %r15,%r13
5091
rorxq $14,%rax,%r14
5092
leaq (%rdx,%r12,1),%rdx
5093
xorq %r14,%r13
5094
movq %r8,%r15
5095
rorxq $39,%r8,%r12
5096
leaq (%rdx,%r13,1),%rdx
5097
xorq %r9,%r15
5098
rorxq $34,%r8,%r14
5099
rorxq $28,%r8,%r13
5100
leaq (%r11,%rdx,1),%r11
5101
andq %r15,%rdi
5102
xorq %r12,%r14
5103
xorq %r9,%rdi
5104
xorq %r13,%r14
5105
leaq (%rdx,%rdi,1),%rdx
5106
movq %rax,%r12
5107
addq 72(%rsp),%rcx
5108
andq %r11,%r12
5109
rorxq $41,%r11,%r13
5110
rorxq $18,%r11,%rdi
5111
leaq (%rdx,%r14,1),%rdx
5112
leaq (%rcx,%r12,1),%rcx
5113
andnq %rbx,%r11,%r12
5114
xorq %rdi,%r13
5115
rorxq $14,%r11,%r14
5116
leaq (%rcx,%r12,1),%rcx
5117
xorq %r14,%r13
5118
movq %rdx,%rdi
5119
rorxq $39,%rdx,%r12
5120
leaq (%rcx,%r13,1),%rcx
5121
xorq %r8,%rdi
5122
rorxq $34,%rdx,%r14
5123
rorxq $28,%rdx,%r13
5124
leaq (%r10,%rcx,1),%r10
5125
andq %rdi,%r15
5126
xorq %r12,%r14
5127
xorq %r8,%r15
5128
xorq %r13,%r14
5129
leaq (%rcx,%r15,1),%rcx
5130
movq %r11,%r12
5131
addq 96(%rsp),%rbx
5132
andq %r10,%r12
5133
rorxq $41,%r10,%r13
5134
rorxq $18,%r10,%r15
5135
leaq (%rcx,%r14,1),%rcx
5136
leaq (%rbx,%r12,1),%rbx
5137
andnq %rax,%r10,%r12
5138
xorq %r15,%r13
5139
rorxq $14,%r10,%r14
5140
leaq (%rbx,%r12,1),%rbx
5141
xorq %r14,%r13
5142
movq %rcx,%r15
5143
rorxq $39,%rcx,%r12
5144
leaq (%rbx,%r13,1),%rbx
5145
xorq %rdx,%r15
5146
rorxq $34,%rcx,%r14
5147
rorxq $28,%rcx,%r13
5148
leaq (%r9,%rbx,1),%r9
5149
andq %r15,%rdi
5150
xorq %r12,%r14
5151
xorq %rdx,%rdi
5152
xorq %r13,%r14
5153
leaq (%rbx,%rdi,1),%rbx
5154
movq %r10,%r12
5155
addq 104(%rsp),%rax
5156
andq %r9,%r12
5157
rorxq $41,%r9,%r13
5158
rorxq $18,%r9,%rdi
5159
leaq (%rbx,%r14,1),%rbx
5160
leaq (%rax,%r12,1),%rax
5161
andnq %r11,%r9,%r12
5162
xorq %rdi,%r13
5163
rorxq $14,%r9,%r14
5164
leaq (%rax,%r12,1),%rax
5165
xorq %r14,%r13
5166
movq %rbx,%rdi
5167
rorxq $39,%rbx,%r12
5168
leaq (%rax,%r13,1),%rax
5169
xorq %rcx,%rdi
5170
rorxq $34,%rbx,%r14
5171
rorxq $28,%rbx,%r13
5172
leaq (%r8,%rax,1),%r8
5173
andq %rdi,%r15
5174
xorq %r12,%r14
5175
xorq %rcx,%r15
5176
xorq %r13,%r14
5177
leaq (%rax,%r15,1),%rax
5178
movq %r9,%r12
5179
movq 1280(%rsp),%rdi
5180
addq %r14,%rax
5181
5182
leaq 1152(%rsp),%rbp
5183
5184
addq 0(%rdi),%rax
5185
addq 8(%rdi),%rbx
5186
addq 16(%rdi),%rcx
5187
addq 24(%rdi),%rdx
5188
addq 32(%rdi),%r8
5189
addq 40(%rdi),%r9
5190
addq 48(%rdi),%r10
5191
addq 56(%rdi),%r11
5192
5193
movq %rax,0(%rdi)
5194
movq %rbx,8(%rdi)
5195
movq %rcx,16(%rdi)
5196
movq %rdx,24(%rdi)
5197
movq %r8,32(%rdi)
5198
movq %r9,40(%rdi)
5199
movq %r10,48(%rdi)
5200
movq %r11,56(%rdi)
5201
5202
cmpq 144(%rbp),%rsi
5203
je .Ldone_avx2
5204
5205
xorq %r14,%r14
5206
movq %rbx,%rdi
5207
xorq %rcx,%rdi
5208
movq %r9,%r12
5209
jmp .Lower_avx2
5210
.align 16
5211
.Lower_avx2:
5212
addq 0+16(%rbp),%r11
5213
andq %r8,%r12
5214
rorxq $41,%r8,%r13
5215
rorxq $18,%r8,%r15
5216
leaq (%rax,%r14,1),%rax
5217
leaq (%r11,%r12,1),%r11
5218
andnq %r10,%r8,%r12
5219
xorq %r15,%r13
5220
rorxq $14,%r8,%r14
5221
leaq (%r11,%r12,1),%r11
5222
xorq %r14,%r13
5223
movq %rax,%r15
5224
rorxq $39,%rax,%r12
5225
leaq (%r11,%r13,1),%r11
5226
xorq %rbx,%r15
5227
rorxq $34,%rax,%r14
5228
rorxq $28,%rax,%r13
5229
leaq (%rdx,%r11,1),%rdx
5230
andq %r15,%rdi
5231
xorq %r12,%r14
5232
xorq %rbx,%rdi
5233
xorq %r13,%r14
5234
leaq (%r11,%rdi,1),%r11
5235
movq %r8,%r12
5236
addq 8+16(%rbp),%r10
5237
andq %rdx,%r12
5238
rorxq $41,%rdx,%r13
5239
rorxq $18,%rdx,%rdi
5240
leaq (%r11,%r14,1),%r11
5241
leaq (%r10,%r12,1),%r10
5242
andnq %r9,%rdx,%r12
5243
xorq %rdi,%r13
5244
rorxq $14,%rdx,%r14
5245
leaq (%r10,%r12,1),%r10
5246
xorq %r14,%r13
5247
movq %r11,%rdi
5248
rorxq $39,%r11,%r12
5249
leaq (%r10,%r13,1),%r10
5250
xorq %rax,%rdi
5251
rorxq $34,%r11,%r14
5252
rorxq $28,%r11,%r13
5253
leaq (%rcx,%r10,1),%rcx
5254
andq %rdi,%r15
5255
xorq %r12,%r14
5256
xorq %rax,%r15
5257
xorq %r13,%r14
5258
leaq (%r10,%r15,1),%r10
5259
movq %rdx,%r12
5260
addq 32+16(%rbp),%r9
5261
andq %rcx,%r12
5262
rorxq $41,%rcx,%r13
5263
rorxq $18,%rcx,%r15
5264
leaq (%r10,%r14,1),%r10
5265
leaq (%r9,%r12,1),%r9
5266
andnq %r8,%rcx,%r12
5267
xorq %r15,%r13
5268
rorxq $14,%rcx,%r14
5269
leaq (%r9,%r12,1),%r9
5270
xorq %r14,%r13
5271
movq %r10,%r15
5272
rorxq $39,%r10,%r12
5273
leaq (%r9,%r13,1),%r9
5274
xorq %r11,%r15
5275
rorxq $34,%r10,%r14
5276
rorxq $28,%r10,%r13
5277
leaq (%rbx,%r9,1),%rbx
5278
andq %r15,%rdi
5279
xorq %r12,%r14
5280
xorq %r11,%rdi
5281
xorq %r13,%r14
5282
leaq (%r9,%rdi,1),%r9
5283
movq %rcx,%r12
5284
addq 40+16(%rbp),%r8
5285
andq %rbx,%r12
5286
rorxq $41,%rbx,%r13
5287
rorxq $18,%rbx,%rdi
5288
leaq (%r9,%r14,1),%r9
5289
leaq (%r8,%r12,1),%r8
5290
andnq %rdx,%rbx,%r12
5291
xorq %rdi,%r13
5292
rorxq $14,%rbx,%r14
5293
leaq (%r8,%r12,1),%r8
5294
xorq %r14,%r13
5295
movq %r9,%rdi
5296
rorxq $39,%r9,%r12
5297
leaq (%r8,%r13,1),%r8
5298
xorq %r10,%rdi
5299
rorxq $34,%r9,%r14
5300
rorxq $28,%r9,%r13
5301
leaq (%rax,%r8,1),%rax
5302
andq %rdi,%r15
5303
xorq %r12,%r14
5304
xorq %r10,%r15
5305
xorq %r13,%r14
5306
leaq (%r8,%r15,1),%r8
5307
movq %rbx,%r12
5308
addq 64+16(%rbp),%rdx
5309
andq %rax,%r12
5310
rorxq $41,%rax,%r13
5311
rorxq $18,%rax,%r15
5312
leaq (%r8,%r14,1),%r8
5313
leaq (%rdx,%r12,1),%rdx
5314
andnq %rcx,%rax,%r12
5315
xorq %r15,%r13
5316
rorxq $14,%rax,%r14
5317
leaq (%rdx,%r12,1),%rdx
5318
xorq %r14,%r13
5319
movq %r8,%r15
5320
rorxq $39,%r8,%r12
5321
leaq (%rdx,%r13,1),%rdx
5322
xorq %r9,%r15
5323
rorxq $34,%r8,%r14
5324
rorxq $28,%r8,%r13
5325
leaq (%r11,%rdx,1),%r11
5326
andq %r15,%rdi
5327
xorq %r12,%r14
5328
xorq %r9,%rdi
5329
xorq %r13,%r14
5330
leaq (%rdx,%rdi,1),%rdx
5331
movq %rax,%r12
5332
addq 72+16(%rbp),%rcx
5333
andq %r11,%r12
5334
rorxq $41,%r11,%r13
5335
rorxq $18,%r11,%rdi
5336
leaq (%rdx,%r14,1),%rdx
5337
leaq (%rcx,%r12,1),%rcx
5338
andnq %rbx,%r11,%r12
5339
xorq %rdi,%r13
5340
rorxq $14,%r11,%r14
5341
leaq (%rcx,%r12,1),%rcx
5342
xorq %r14,%r13
5343
movq %rdx,%rdi
5344
rorxq $39,%rdx,%r12
5345
leaq (%rcx,%r13,1),%rcx
5346
xorq %r8,%rdi
5347
rorxq $34,%rdx,%r14
5348
rorxq $28,%rdx,%r13
5349
leaq (%r10,%rcx,1),%r10
5350
andq %rdi,%r15
5351
xorq %r12,%r14
5352
xorq %r8,%r15
5353
xorq %r13,%r14
5354
leaq (%rcx,%r15,1),%rcx
5355
movq %r11,%r12
5356
addq 96+16(%rbp),%rbx
5357
andq %r10,%r12
5358
rorxq $41,%r10,%r13
5359
rorxq $18,%r10,%r15
5360
leaq (%rcx,%r14,1),%rcx
5361
leaq (%rbx,%r12,1),%rbx
5362
andnq %rax,%r10,%r12
5363
xorq %r15,%r13
5364
rorxq $14,%r10,%r14
5365
leaq (%rbx,%r12,1),%rbx
5366
xorq %r14,%r13
5367
movq %rcx,%r15
5368
rorxq $39,%rcx,%r12
5369
leaq (%rbx,%r13,1),%rbx
5370
xorq %rdx,%r15
5371
rorxq $34,%rcx,%r14
5372
rorxq $28,%rcx,%r13
5373
leaq (%r9,%rbx,1),%r9
5374
andq %r15,%rdi
5375
xorq %r12,%r14
5376
xorq %rdx,%rdi
5377
xorq %r13,%r14
5378
leaq (%rbx,%rdi,1),%rbx
5379
movq %r10,%r12
5380
addq 104+16(%rbp),%rax
5381
andq %r9,%r12
5382
rorxq $41,%r9,%r13
5383
rorxq $18,%r9,%rdi
5384
leaq (%rbx,%r14,1),%rbx
5385
leaq (%rax,%r12,1),%rax
5386
andnq %r11,%r9,%r12
5387
xorq %rdi,%r13
5388
rorxq $14,%r9,%r14
5389
leaq (%rax,%r12,1),%rax
5390
xorq %r14,%r13
5391
movq %rbx,%rdi
5392
rorxq $39,%rbx,%r12
5393
leaq (%rax,%r13,1),%rax
5394
xorq %rcx,%rdi
5395
rorxq $34,%rbx,%r14
5396
rorxq $28,%rbx,%r13
5397
leaq (%r8,%rax,1),%r8
5398
andq %rdi,%r15
5399
xorq %r12,%r14
5400
xorq %rcx,%r15
5401
xorq %r13,%r14
5402
leaq (%rax,%r15,1),%rax
5403
movq %r9,%r12
5404
leaq -128(%rbp),%rbp
5405
cmpq %rsp,%rbp
5406
jae .Lower_avx2
5407
5408
movq 1280(%rsp),%rdi
5409
addq %r14,%rax
5410
5411
leaq 1152(%rsp),%rsp
5412
5413
.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
5414
5415
addq 0(%rdi),%rax
5416
addq 8(%rdi),%rbx
5417
addq 16(%rdi),%rcx
5418
addq 24(%rdi),%rdx
5419
addq 32(%rdi),%r8
5420
addq 40(%rdi),%r9
5421
leaq 256(%rsi),%rsi
5422
addq 48(%rdi),%r10
5423
movq %rsi,%r12
5424
addq 56(%rdi),%r11
5425
cmpq 128+16(%rsp),%rsi
5426
5427
movq %rax,0(%rdi)
5428
cmoveq %rsp,%r12
5429
movq %rbx,8(%rdi)
5430
movq %rcx,16(%rdi)
5431
movq %rdx,24(%rdi)
5432
movq %r8,32(%rdi)
5433
movq %r9,40(%rdi)
5434
movq %r10,48(%rdi)
5435
movq %r11,56(%rdi)
5436
5437
jbe .Loop_avx2
5438
leaq (%rsp),%rbp
5439
5440
5441
.cfi_escape 0x0f,0x06,0x76,0x98,0x01,0x06,0x23,0x08
5442
5443
.Ldone_avx2:
5444
movq 152(%rbp),%rsi
5445
.cfi_def_cfa %rsi,8
5446
vzeroupper
5447
movq -48(%rsi),%r15
5448
.cfi_restore %r15
5449
movq -40(%rsi),%r14
5450
.cfi_restore %r14
5451
movq -32(%rsi),%r13
5452
.cfi_restore %r13
5453
movq -24(%rsi),%r12
5454
.cfi_restore %r12
5455
movq -16(%rsi),%rbp
5456
.cfi_restore %rbp
5457
movq -8(%rsi),%rbx
5458
.cfi_restore %rbx
5459
leaq (%rsi),%rsp
5460
.cfi_def_cfa_register %rsp
5461
.Lepilogue_avx2:
5462
.byte 0xf3,0xc3
5463
.cfi_endproc
5464
.size sha512_block_data_order_avx2,.-sha512_block_data_order_avx2
5465
.section ".note.gnu.property", "a"
5466
.p2align 3
5467
.long 1f - 0f
5468
.long 4f - 1f
5469
.long 5
5470
0:
5471
# "GNU" encoded with .byte, since .asciz isn't supported
5472
# on Solaris.
5473
.byte 0x47
5474
.byte 0x4e
5475
.byte 0x55
5476
.byte 0
5477
1:
5478
.p2align 3
5479
.long 0xc0000002
5480
.long 3f - 2f
5481
2:
5482
.long 3
5483
3:
5484
.p2align 3
5485
4:
5486
5487