Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/amd64/aesni-sha1-x86_64.S
39482 views
1
/* Do not modify. This file is auto-generated from aesni-sha1-x86_64.pl. */
2
.text
3
4
5
.globl aesni_cbc_sha1_enc
6
.type aesni_cbc_sha1_enc,@function
7
.align 32
8
aesni_cbc_sha1_enc:
9
.cfi_startproc
10
11
movl OPENSSL_ia32cap_P+0(%rip),%r10d
12
movq OPENSSL_ia32cap_P+4(%rip),%r11
13
btq $61,%r11
14
jc aesni_cbc_sha1_enc_shaext
15
andl $268435456,%r11d
16
andl $1073741824,%r10d
17
orl %r11d,%r10d
18
cmpl $1342177280,%r10d
19
je aesni_cbc_sha1_enc_avx
20
jmp aesni_cbc_sha1_enc_ssse3
21
.byte 0xf3,0xc3
22
.cfi_endproc
23
.size aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
24
.type aesni_cbc_sha1_enc_ssse3,@function
25
.align 32
26
aesni_cbc_sha1_enc_ssse3:
27
.cfi_startproc
28
movq 8(%rsp),%r10
29
30
31
pushq %rbx
32
.cfi_adjust_cfa_offset 8
33
.cfi_offset %rbx,-16
34
pushq %rbp
35
.cfi_adjust_cfa_offset 8
36
.cfi_offset %rbp,-24
37
pushq %r12
38
.cfi_adjust_cfa_offset 8
39
.cfi_offset %r12,-32
40
pushq %r13
41
.cfi_adjust_cfa_offset 8
42
.cfi_offset %r13,-40
43
pushq %r14
44
.cfi_adjust_cfa_offset 8
45
.cfi_offset %r14,-48
46
pushq %r15
47
.cfi_adjust_cfa_offset 8
48
.cfi_offset %r15,-56
49
leaq -104(%rsp),%rsp
50
.cfi_adjust_cfa_offset 104
51
52
53
movq %rdi,%r12
54
movq %rsi,%r13
55
movq %rdx,%r14
56
leaq 112(%rcx),%r15
57
movdqu (%r8),%xmm2
58
movq %r8,88(%rsp)
59
shlq $6,%r14
60
subq %r12,%r13
61
movl 240-112(%r15),%r8d
62
addq %r10,%r14
63
64
leaq K_XX_XX(%rip),%r11
65
movl 0(%r9),%eax
66
movl 4(%r9),%ebx
67
movl 8(%r9),%ecx
68
movl 12(%r9),%edx
69
movl %ebx,%esi
70
movl 16(%r9),%ebp
71
movl %ecx,%edi
72
xorl %edx,%edi
73
andl %edi,%esi
74
75
movdqa 64(%r11),%xmm3
76
movdqa 0(%r11),%xmm13
77
movdqu 0(%r10),%xmm4
78
movdqu 16(%r10),%xmm5
79
movdqu 32(%r10),%xmm6
80
movdqu 48(%r10),%xmm7
81
.byte 102,15,56,0,227
82
.byte 102,15,56,0,235
83
.byte 102,15,56,0,243
84
addq $64,%r10
85
paddd %xmm13,%xmm4
86
.byte 102,15,56,0,251
87
paddd %xmm13,%xmm5
88
paddd %xmm13,%xmm6
89
movdqa %xmm4,0(%rsp)
90
psubd %xmm13,%xmm4
91
movdqa %xmm5,16(%rsp)
92
psubd %xmm13,%xmm5
93
movdqa %xmm6,32(%rsp)
94
psubd %xmm13,%xmm6
95
movups -112(%r15),%xmm15
96
movups 16-112(%r15),%xmm0
97
jmp .Loop_ssse3
98
.align 32
99
.Loop_ssse3:
100
rorl $2,%ebx
101
movups 0(%r12),%xmm14
102
xorps %xmm15,%xmm14
103
xorps %xmm14,%xmm2
104
movups -80(%r15),%xmm1
105
.byte 102,15,56,220,208
106
pshufd $238,%xmm4,%xmm8
107
xorl %edx,%esi
108
movdqa %xmm7,%xmm12
109
paddd %xmm7,%xmm13
110
movl %eax,%edi
111
addl 0(%rsp),%ebp
112
punpcklqdq %xmm5,%xmm8
113
xorl %ecx,%ebx
114
roll $5,%eax
115
addl %esi,%ebp
116
psrldq $4,%xmm12
117
andl %ebx,%edi
118
xorl %ecx,%ebx
119
pxor %xmm4,%xmm8
120
addl %eax,%ebp
121
rorl $7,%eax
122
pxor %xmm6,%xmm12
123
xorl %ecx,%edi
124
movl %ebp,%esi
125
addl 4(%rsp),%edx
126
pxor %xmm12,%xmm8
127
xorl %ebx,%eax
128
roll $5,%ebp
129
movdqa %xmm13,48(%rsp)
130
addl %edi,%edx
131
movups -64(%r15),%xmm0
132
.byte 102,15,56,220,209
133
andl %eax,%esi
134
movdqa %xmm8,%xmm3
135
xorl %ebx,%eax
136
addl %ebp,%edx
137
rorl $7,%ebp
138
movdqa %xmm8,%xmm12
139
xorl %ebx,%esi
140
pslldq $12,%xmm3
141
paddd %xmm8,%xmm8
142
movl %edx,%edi
143
addl 8(%rsp),%ecx
144
psrld $31,%xmm12
145
xorl %eax,%ebp
146
roll $5,%edx
147
addl %esi,%ecx
148
movdqa %xmm3,%xmm13
149
andl %ebp,%edi
150
xorl %eax,%ebp
151
psrld $30,%xmm3
152
addl %edx,%ecx
153
rorl $7,%edx
154
por %xmm12,%xmm8
155
xorl %eax,%edi
156
movl %ecx,%esi
157
addl 12(%rsp),%ebx
158
movups -48(%r15),%xmm1
159
.byte 102,15,56,220,208
160
pslld $2,%xmm13
161
pxor %xmm3,%xmm8
162
xorl %ebp,%edx
163
movdqa 0(%r11),%xmm3
164
roll $5,%ecx
165
addl %edi,%ebx
166
andl %edx,%esi
167
pxor %xmm13,%xmm8
168
xorl %ebp,%edx
169
addl %ecx,%ebx
170
rorl $7,%ecx
171
pshufd $238,%xmm5,%xmm9
172
xorl %ebp,%esi
173
movdqa %xmm8,%xmm13
174
paddd %xmm8,%xmm3
175
movl %ebx,%edi
176
addl 16(%rsp),%eax
177
punpcklqdq %xmm6,%xmm9
178
xorl %edx,%ecx
179
roll $5,%ebx
180
addl %esi,%eax
181
psrldq $4,%xmm13
182
andl %ecx,%edi
183
xorl %edx,%ecx
184
pxor %xmm5,%xmm9
185
addl %ebx,%eax
186
rorl $7,%ebx
187
movups -32(%r15),%xmm0
188
.byte 102,15,56,220,209
189
pxor %xmm7,%xmm13
190
xorl %edx,%edi
191
movl %eax,%esi
192
addl 20(%rsp),%ebp
193
pxor %xmm13,%xmm9
194
xorl %ecx,%ebx
195
roll $5,%eax
196
movdqa %xmm3,0(%rsp)
197
addl %edi,%ebp
198
andl %ebx,%esi
199
movdqa %xmm9,%xmm12
200
xorl %ecx,%ebx
201
addl %eax,%ebp
202
rorl $7,%eax
203
movdqa %xmm9,%xmm13
204
xorl %ecx,%esi
205
pslldq $12,%xmm12
206
paddd %xmm9,%xmm9
207
movl %ebp,%edi
208
addl 24(%rsp),%edx
209
psrld $31,%xmm13
210
xorl %ebx,%eax
211
roll $5,%ebp
212
addl %esi,%edx
213
movups -16(%r15),%xmm1
214
.byte 102,15,56,220,208
215
movdqa %xmm12,%xmm3
216
andl %eax,%edi
217
xorl %ebx,%eax
218
psrld $30,%xmm12
219
addl %ebp,%edx
220
rorl $7,%ebp
221
por %xmm13,%xmm9
222
xorl %ebx,%edi
223
movl %edx,%esi
224
addl 28(%rsp),%ecx
225
pslld $2,%xmm3
226
pxor %xmm12,%xmm9
227
xorl %eax,%ebp
228
movdqa 16(%r11),%xmm12
229
roll $5,%edx
230
addl %edi,%ecx
231
andl %ebp,%esi
232
pxor %xmm3,%xmm9
233
xorl %eax,%ebp
234
addl %edx,%ecx
235
rorl $7,%edx
236
pshufd $238,%xmm6,%xmm10
237
xorl %eax,%esi
238
movdqa %xmm9,%xmm3
239
paddd %xmm9,%xmm12
240
movl %ecx,%edi
241
addl 32(%rsp),%ebx
242
movups 0(%r15),%xmm0
243
.byte 102,15,56,220,209
244
punpcklqdq %xmm7,%xmm10
245
xorl %ebp,%edx
246
roll $5,%ecx
247
addl %esi,%ebx
248
psrldq $4,%xmm3
249
andl %edx,%edi
250
xorl %ebp,%edx
251
pxor %xmm6,%xmm10
252
addl %ecx,%ebx
253
rorl $7,%ecx
254
pxor %xmm8,%xmm3
255
xorl %ebp,%edi
256
movl %ebx,%esi
257
addl 36(%rsp),%eax
258
pxor %xmm3,%xmm10
259
xorl %edx,%ecx
260
roll $5,%ebx
261
movdqa %xmm12,16(%rsp)
262
addl %edi,%eax
263
andl %ecx,%esi
264
movdqa %xmm10,%xmm13
265
xorl %edx,%ecx
266
addl %ebx,%eax
267
rorl $7,%ebx
268
movups 16(%r15),%xmm1
269
.byte 102,15,56,220,208
270
movdqa %xmm10,%xmm3
271
xorl %edx,%esi
272
pslldq $12,%xmm13
273
paddd %xmm10,%xmm10
274
movl %eax,%edi
275
addl 40(%rsp),%ebp
276
psrld $31,%xmm3
277
xorl %ecx,%ebx
278
roll $5,%eax
279
addl %esi,%ebp
280
movdqa %xmm13,%xmm12
281
andl %ebx,%edi
282
xorl %ecx,%ebx
283
psrld $30,%xmm13
284
addl %eax,%ebp
285
rorl $7,%eax
286
por %xmm3,%xmm10
287
xorl %ecx,%edi
288
movl %ebp,%esi
289
addl 44(%rsp),%edx
290
pslld $2,%xmm12
291
pxor %xmm13,%xmm10
292
xorl %ebx,%eax
293
movdqa 16(%r11),%xmm13
294
roll $5,%ebp
295
addl %edi,%edx
296
movups 32(%r15),%xmm0
297
.byte 102,15,56,220,209
298
andl %eax,%esi
299
pxor %xmm12,%xmm10
300
xorl %ebx,%eax
301
addl %ebp,%edx
302
rorl $7,%ebp
303
pshufd $238,%xmm7,%xmm11
304
xorl %ebx,%esi
305
movdqa %xmm10,%xmm12
306
paddd %xmm10,%xmm13
307
movl %edx,%edi
308
addl 48(%rsp),%ecx
309
punpcklqdq %xmm8,%xmm11
310
xorl %eax,%ebp
311
roll $5,%edx
312
addl %esi,%ecx
313
psrldq $4,%xmm12
314
andl %ebp,%edi
315
xorl %eax,%ebp
316
pxor %xmm7,%xmm11
317
addl %edx,%ecx
318
rorl $7,%edx
319
pxor %xmm9,%xmm12
320
xorl %eax,%edi
321
movl %ecx,%esi
322
addl 52(%rsp),%ebx
323
movups 48(%r15),%xmm1
324
.byte 102,15,56,220,208
325
pxor %xmm12,%xmm11
326
xorl %ebp,%edx
327
roll $5,%ecx
328
movdqa %xmm13,32(%rsp)
329
addl %edi,%ebx
330
andl %edx,%esi
331
movdqa %xmm11,%xmm3
332
xorl %ebp,%edx
333
addl %ecx,%ebx
334
rorl $7,%ecx
335
movdqa %xmm11,%xmm12
336
xorl %ebp,%esi
337
pslldq $12,%xmm3
338
paddd %xmm11,%xmm11
339
movl %ebx,%edi
340
addl 56(%rsp),%eax
341
psrld $31,%xmm12
342
xorl %edx,%ecx
343
roll $5,%ebx
344
addl %esi,%eax
345
movdqa %xmm3,%xmm13
346
andl %ecx,%edi
347
xorl %edx,%ecx
348
psrld $30,%xmm3
349
addl %ebx,%eax
350
rorl $7,%ebx
351
cmpl $11,%r8d
352
jb .Laesenclast1
353
movups 64(%r15),%xmm0
354
.byte 102,15,56,220,209
355
movups 80(%r15),%xmm1
356
.byte 102,15,56,220,208
357
je .Laesenclast1
358
movups 96(%r15),%xmm0
359
.byte 102,15,56,220,209
360
movups 112(%r15),%xmm1
361
.byte 102,15,56,220,208
362
.Laesenclast1:
363
.byte 102,15,56,221,209
364
movups 16-112(%r15),%xmm0
365
por %xmm12,%xmm11
366
xorl %edx,%edi
367
movl %eax,%esi
368
addl 60(%rsp),%ebp
369
pslld $2,%xmm13
370
pxor %xmm3,%xmm11
371
xorl %ecx,%ebx
372
movdqa 16(%r11),%xmm3
373
roll $5,%eax
374
addl %edi,%ebp
375
andl %ebx,%esi
376
pxor %xmm13,%xmm11
377
pshufd $238,%xmm10,%xmm13
378
xorl %ecx,%ebx
379
addl %eax,%ebp
380
rorl $7,%eax
381
pxor %xmm8,%xmm4
382
xorl %ecx,%esi
383
movl %ebp,%edi
384
addl 0(%rsp),%edx
385
punpcklqdq %xmm11,%xmm13
386
xorl %ebx,%eax
387
roll $5,%ebp
388
pxor %xmm5,%xmm4
389
addl %esi,%edx
390
movups 16(%r12),%xmm14
391
xorps %xmm15,%xmm14
392
movups %xmm2,0(%r12,%r13,1)
393
xorps %xmm14,%xmm2
394
movups -80(%r15),%xmm1
395
.byte 102,15,56,220,208
396
andl %eax,%edi
397
movdqa %xmm3,%xmm12
398
xorl %ebx,%eax
399
paddd %xmm11,%xmm3
400
addl %ebp,%edx
401
pxor %xmm13,%xmm4
402
rorl $7,%ebp
403
xorl %ebx,%edi
404
movl %edx,%esi
405
addl 4(%rsp),%ecx
406
movdqa %xmm4,%xmm13
407
xorl %eax,%ebp
408
roll $5,%edx
409
movdqa %xmm3,48(%rsp)
410
addl %edi,%ecx
411
andl %ebp,%esi
412
xorl %eax,%ebp
413
pslld $2,%xmm4
414
addl %edx,%ecx
415
rorl $7,%edx
416
psrld $30,%xmm13
417
xorl %eax,%esi
418
movl %ecx,%edi
419
addl 8(%rsp),%ebx
420
movups -64(%r15),%xmm0
421
.byte 102,15,56,220,209
422
por %xmm13,%xmm4
423
xorl %ebp,%edx
424
roll $5,%ecx
425
pshufd $238,%xmm11,%xmm3
426
addl %esi,%ebx
427
andl %edx,%edi
428
xorl %ebp,%edx
429
addl %ecx,%ebx
430
addl 12(%rsp),%eax
431
xorl %ebp,%edi
432
movl %ebx,%esi
433
roll $5,%ebx
434
addl %edi,%eax
435
xorl %edx,%esi
436
rorl $7,%ecx
437
addl %ebx,%eax
438
pxor %xmm9,%xmm5
439
addl 16(%rsp),%ebp
440
movups -48(%r15),%xmm1
441
.byte 102,15,56,220,208
442
xorl %ecx,%esi
443
punpcklqdq %xmm4,%xmm3
444
movl %eax,%edi
445
roll $5,%eax
446
pxor %xmm6,%xmm5
447
addl %esi,%ebp
448
xorl %ecx,%edi
449
movdqa %xmm12,%xmm13
450
rorl $7,%ebx
451
paddd %xmm4,%xmm12
452
addl %eax,%ebp
453
pxor %xmm3,%xmm5
454
addl 20(%rsp),%edx
455
xorl %ebx,%edi
456
movl %ebp,%esi
457
roll $5,%ebp
458
movdqa %xmm5,%xmm3
459
addl %edi,%edx
460
xorl %ebx,%esi
461
movdqa %xmm12,0(%rsp)
462
rorl $7,%eax
463
addl %ebp,%edx
464
addl 24(%rsp),%ecx
465
pslld $2,%xmm5
466
xorl %eax,%esi
467
movl %edx,%edi
468
psrld $30,%xmm3
469
roll $5,%edx
470
addl %esi,%ecx
471
movups -32(%r15),%xmm0
472
.byte 102,15,56,220,209
473
xorl %eax,%edi
474
rorl $7,%ebp
475
por %xmm3,%xmm5
476
addl %edx,%ecx
477
addl 28(%rsp),%ebx
478
pshufd $238,%xmm4,%xmm12
479
xorl %ebp,%edi
480
movl %ecx,%esi
481
roll $5,%ecx
482
addl %edi,%ebx
483
xorl %ebp,%esi
484
rorl $7,%edx
485
addl %ecx,%ebx
486
pxor %xmm10,%xmm6
487
addl 32(%rsp),%eax
488
xorl %edx,%esi
489
punpcklqdq %xmm5,%xmm12
490
movl %ebx,%edi
491
roll $5,%ebx
492
pxor %xmm7,%xmm6
493
addl %esi,%eax
494
xorl %edx,%edi
495
movdqa 32(%r11),%xmm3
496
rorl $7,%ecx
497
paddd %xmm5,%xmm13
498
addl %ebx,%eax
499
pxor %xmm12,%xmm6
500
addl 36(%rsp),%ebp
501
movups -16(%r15),%xmm1
502
.byte 102,15,56,220,208
503
xorl %ecx,%edi
504
movl %eax,%esi
505
roll $5,%eax
506
movdqa %xmm6,%xmm12
507
addl %edi,%ebp
508
xorl %ecx,%esi
509
movdqa %xmm13,16(%rsp)
510
rorl $7,%ebx
511
addl %eax,%ebp
512
addl 40(%rsp),%edx
513
pslld $2,%xmm6
514
xorl %ebx,%esi
515
movl %ebp,%edi
516
psrld $30,%xmm12
517
roll $5,%ebp
518
addl %esi,%edx
519
xorl %ebx,%edi
520
rorl $7,%eax
521
por %xmm12,%xmm6
522
addl %ebp,%edx
523
addl 44(%rsp),%ecx
524
pshufd $238,%xmm5,%xmm13
525
xorl %eax,%edi
526
movl %edx,%esi
527
roll $5,%edx
528
addl %edi,%ecx
529
movups 0(%r15),%xmm0
530
.byte 102,15,56,220,209
531
xorl %eax,%esi
532
rorl $7,%ebp
533
addl %edx,%ecx
534
pxor %xmm11,%xmm7
535
addl 48(%rsp),%ebx
536
xorl %ebp,%esi
537
punpcklqdq %xmm6,%xmm13
538
movl %ecx,%edi
539
roll $5,%ecx
540
pxor %xmm8,%xmm7
541
addl %esi,%ebx
542
xorl %ebp,%edi
543
movdqa %xmm3,%xmm12
544
rorl $7,%edx
545
paddd %xmm6,%xmm3
546
addl %ecx,%ebx
547
pxor %xmm13,%xmm7
548
addl 52(%rsp),%eax
549
xorl %edx,%edi
550
movl %ebx,%esi
551
roll $5,%ebx
552
movdqa %xmm7,%xmm13
553
addl %edi,%eax
554
xorl %edx,%esi
555
movdqa %xmm3,32(%rsp)
556
rorl $7,%ecx
557
addl %ebx,%eax
558
addl 56(%rsp),%ebp
559
movups 16(%r15),%xmm1
560
.byte 102,15,56,220,208
561
pslld $2,%xmm7
562
xorl %ecx,%esi
563
movl %eax,%edi
564
psrld $30,%xmm13
565
roll $5,%eax
566
addl %esi,%ebp
567
xorl %ecx,%edi
568
rorl $7,%ebx
569
por %xmm13,%xmm7
570
addl %eax,%ebp
571
addl 60(%rsp),%edx
572
pshufd $238,%xmm6,%xmm3
573
xorl %ebx,%edi
574
movl %ebp,%esi
575
roll $5,%ebp
576
addl %edi,%edx
577
xorl %ebx,%esi
578
rorl $7,%eax
579
addl %ebp,%edx
580
pxor %xmm4,%xmm8
581
addl 0(%rsp),%ecx
582
xorl %eax,%esi
583
punpcklqdq %xmm7,%xmm3
584
movl %edx,%edi
585
roll $5,%edx
586
pxor %xmm9,%xmm8
587
addl %esi,%ecx
588
movups 32(%r15),%xmm0
589
.byte 102,15,56,220,209
590
xorl %eax,%edi
591
movdqa %xmm12,%xmm13
592
rorl $7,%ebp
593
paddd %xmm7,%xmm12
594
addl %edx,%ecx
595
pxor %xmm3,%xmm8
596
addl 4(%rsp),%ebx
597
xorl %ebp,%edi
598
movl %ecx,%esi
599
roll $5,%ecx
600
movdqa %xmm8,%xmm3
601
addl %edi,%ebx
602
xorl %ebp,%esi
603
movdqa %xmm12,48(%rsp)
604
rorl $7,%edx
605
addl %ecx,%ebx
606
addl 8(%rsp),%eax
607
pslld $2,%xmm8
608
xorl %edx,%esi
609
movl %ebx,%edi
610
psrld $30,%xmm3
611
roll $5,%ebx
612
addl %esi,%eax
613
xorl %edx,%edi
614
rorl $7,%ecx
615
por %xmm3,%xmm8
616
addl %ebx,%eax
617
addl 12(%rsp),%ebp
618
movups 48(%r15),%xmm1
619
.byte 102,15,56,220,208
620
pshufd $238,%xmm7,%xmm12
621
xorl %ecx,%edi
622
movl %eax,%esi
623
roll $5,%eax
624
addl %edi,%ebp
625
xorl %ecx,%esi
626
rorl $7,%ebx
627
addl %eax,%ebp
628
pxor %xmm5,%xmm9
629
addl 16(%rsp),%edx
630
xorl %ebx,%esi
631
punpcklqdq %xmm8,%xmm12
632
movl %ebp,%edi
633
roll $5,%ebp
634
pxor %xmm10,%xmm9
635
addl %esi,%edx
636
xorl %ebx,%edi
637
movdqa %xmm13,%xmm3
638
rorl $7,%eax
639
paddd %xmm8,%xmm13
640
addl %ebp,%edx
641
pxor %xmm12,%xmm9
642
addl 20(%rsp),%ecx
643
xorl %eax,%edi
644
movl %edx,%esi
645
roll $5,%edx
646
movdqa %xmm9,%xmm12
647
addl %edi,%ecx
648
cmpl $11,%r8d
649
jb .Laesenclast2
650
movups 64(%r15),%xmm0
651
.byte 102,15,56,220,209
652
movups 80(%r15),%xmm1
653
.byte 102,15,56,220,208
654
je .Laesenclast2
655
movups 96(%r15),%xmm0
656
.byte 102,15,56,220,209
657
movups 112(%r15),%xmm1
658
.byte 102,15,56,220,208
659
.Laesenclast2:
660
.byte 102,15,56,221,209
661
movups 16-112(%r15),%xmm0
662
xorl %eax,%esi
663
movdqa %xmm13,0(%rsp)
664
rorl $7,%ebp
665
addl %edx,%ecx
666
addl 24(%rsp),%ebx
667
pslld $2,%xmm9
668
xorl %ebp,%esi
669
movl %ecx,%edi
670
psrld $30,%xmm12
671
roll $5,%ecx
672
addl %esi,%ebx
673
xorl %ebp,%edi
674
rorl $7,%edx
675
por %xmm12,%xmm9
676
addl %ecx,%ebx
677
addl 28(%rsp),%eax
678
pshufd $238,%xmm8,%xmm13
679
rorl $7,%ecx
680
movl %ebx,%esi
681
xorl %edx,%edi
682
roll $5,%ebx
683
addl %edi,%eax
684
xorl %ecx,%esi
685
xorl %edx,%ecx
686
addl %ebx,%eax
687
pxor %xmm6,%xmm10
688
addl 32(%rsp),%ebp
689
movups 32(%r12),%xmm14
690
xorps %xmm15,%xmm14
691
movups %xmm2,16(%r13,%r12,1)
692
xorps %xmm14,%xmm2
693
movups -80(%r15),%xmm1
694
.byte 102,15,56,220,208
695
andl %ecx,%esi
696
xorl %edx,%ecx
697
rorl $7,%ebx
698
punpcklqdq %xmm9,%xmm13
699
movl %eax,%edi
700
xorl %ecx,%esi
701
pxor %xmm11,%xmm10
702
roll $5,%eax
703
addl %esi,%ebp
704
movdqa %xmm3,%xmm12
705
xorl %ebx,%edi
706
paddd %xmm9,%xmm3
707
xorl %ecx,%ebx
708
pxor %xmm13,%xmm10
709
addl %eax,%ebp
710
addl 36(%rsp),%edx
711
andl %ebx,%edi
712
xorl %ecx,%ebx
713
rorl $7,%eax
714
movdqa %xmm10,%xmm13
715
movl %ebp,%esi
716
xorl %ebx,%edi
717
movdqa %xmm3,16(%rsp)
718
roll $5,%ebp
719
addl %edi,%edx
720
movups -64(%r15),%xmm0
721
.byte 102,15,56,220,209
722
xorl %eax,%esi
723
pslld $2,%xmm10
724
xorl %ebx,%eax
725
addl %ebp,%edx
726
psrld $30,%xmm13
727
addl 40(%rsp),%ecx
728
andl %eax,%esi
729
xorl %ebx,%eax
730
por %xmm13,%xmm10
731
rorl $7,%ebp
732
movl %edx,%edi
733
xorl %eax,%esi
734
roll $5,%edx
735
pshufd $238,%xmm9,%xmm3
736
addl %esi,%ecx
737
xorl %ebp,%edi
738
xorl %eax,%ebp
739
addl %edx,%ecx
740
addl 44(%rsp),%ebx
741
andl %ebp,%edi
742
xorl %eax,%ebp
743
rorl $7,%edx
744
movups -48(%r15),%xmm1
745
.byte 102,15,56,220,208
746
movl %ecx,%esi
747
xorl %ebp,%edi
748
roll $5,%ecx
749
addl %edi,%ebx
750
xorl %edx,%esi
751
xorl %ebp,%edx
752
addl %ecx,%ebx
753
pxor %xmm7,%xmm11
754
addl 48(%rsp),%eax
755
andl %edx,%esi
756
xorl %ebp,%edx
757
rorl $7,%ecx
758
punpcklqdq %xmm10,%xmm3
759
movl %ebx,%edi
760
xorl %edx,%esi
761
pxor %xmm4,%xmm11
762
roll $5,%ebx
763
addl %esi,%eax
764
movdqa 48(%r11),%xmm13
765
xorl %ecx,%edi
766
paddd %xmm10,%xmm12
767
xorl %edx,%ecx
768
pxor %xmm3,%xmm11
769
addl %ebx,%eax
770
addl 52(%rsp),%ebp
771
movups -32(%r15),%xmm0
772
.byte 102,15,56,220,209
773
andl %ecx,%edi
774
xorl %edx,%ecx
775
rorl $7,%ebx
776
movdqa %xmm11,%xmm3
777
movl %eax,%esi
778
xorl %ecx,%edi
779
movdqa %xmm12,32(%rsp)
780
roll $5,%eax
781
addl %edi,%ebp
782
xorl %ebx,%esi
783
pslld $2,%xmm11
784
xorl %ecx,%ebx
785
addl %eax,%ebp
786
psrld $30,%xmm3
787
addl 56(%rsp),%edx
788
andl %ebx,%esi
789
xorl %ecx,%ebx
790
por %xmm3,%xmm11
791
rorl $7,%eax
792
movl %ebp,%edi
793
xorl %ebx,%esi
794
roll $5,%ebp
795
pshufd $238,%xmm10,%xmm12
796
addl %esi,%edx
797
movups -16(%r15),%xmm1
798
.byte 102,15,56,220,208
799
xorl %eax,%edi
800
xorl %ebx,%eax
801
addl %ebp,%edx
802
addl 60(%rsp),%ecx
803
andl %eax,%edi
804
xorl %ebx,%eax
805
rorl $7,%ebp
806
movl %edx,%esi
807
xorl %eax,%edi
808
roll $5,%edx
809
addl %edi,%ecx
810
xorl %ebp,%esi
811
xorl %eax,%ebp
812
addl %edx,%ecx
813
pxor %xmm8,%xmm4
814
addl 0(%rsp),%ebx
815
andl %ebp,%esi
816
xorl %eax,%ebp
817
rorl $7,%edx
818
movups 0(%r15),%xmm0
819
.byte 102,15,56,220,209
820
punpcklqdq %xmm11,%xmm12
821
movl %ecx,%edi
822
xorl %ebp,%esi
823
pxor %xmm5,%xmm4
824
roll $5,%ecx
825
addl %esi,%ebx
826
movdqa %xmm13,%xmm3
827
xorl %edx,%edi
828
paddd %xmm11,%xmm13
829
xorl %ebp,%edx
830
pxor %xmm12,%xmm4
831
addl %ecx,%ebx
832
addl 4(%rsp),%eax
833
andl %edx,%edi
834
xorl %ebp,%edx
835
rorl $7,%ecx
836
movdqa %xmm4,%xmm12
837
movl %ebx,%esi
838
xorl %edx,%edi
839
movdqa %xmm13,48(%rsp)
840
roll $5,%ebx
841
addl %edi,%eax
842
xorl %ecx,%esi
843
pslld $2,%xmm4
844
xorl %edx,%ecx
845
addl %ebx,%eax
846
psrld $30,%xmm12
847
addl 8(%rsp),%ebp
848
movups 16(%r15),%xmm1
849
.byte 102,15,56,220,208
850
andl %ecx,%esi
851
xorl %edx,%ecx
852
por %xmm12,%xmm4
853
rorl $7,%ebx
854
movl %eax,%edi
855
xorl %ecx,%esi
856
roll $5,%eax
857
pshufd $238,%xmm11,%xmm13
858
addl %esi,%ebp
859
xorl %ebx,%edi
860
xorl %ecx,%ebx
861
addl %eax,%ebp
862
addl 12(%rsp),%edx
863
andl %ebx,%edi
864
xorl %ecx,%ebx
865
rorl $7,%eax
866
movl %ebp,%esi
867
xorl %ebx,%edi
868
roll $5,%ebp
869
addl %edi,%edx
870
movups 32(%r15),%xmm0
871
.byte 102,15,56,220,209
872
xorl %eax,%esi
873
xorl %ebx,%eax
874
addl %ebp,%edx
875
pxor %xmm9,%xmm5
876
addl 16(%rsp),%ecx
877
andl %eax,%esi
878
xorl %ebx,%eax
879
rorl $7,%ebp
880
punpcklqdq %xmm4,%xmm13
881
movl %edx,%edi
882
xorl %eax,%esi
883
pxor %xmm6,%xmm5
884
roll $5,%edx
885
addl %esi,%ecx
886
movdqa %xmm3,%xmm12
887
xorl %ebp,%edi
888
paddd %xmm4,%xmm3
889
xorl %eax,%ebp
890
pxor %xmm13,%xmm5
891
addl %edx,%ecx
892
addl 20(%rsp),%ebx
893
andl %ebp,%edi
894
xorl %eax,%ebp
895
rorl $7,%edx
896
movups 48(%r15),%xmm1
897
.byte 102,15,56,220,208
898
movdqa %xmm5,%xmm13
899
movl %ecx,%esi
900
xorl %ebp,%edi
901
movdqa %xmm3,0(%rsp)
902
roll $5,%ecx
903
addl %edi,%ebx
904
xorl %edx,%esi
905
pslld $2,%xmm5
906
xorl %ebp,%edx
907
addl %ecx,%ebx
908
psrld $30,%xmm13
909
addl 24(%rsp),%eax
910
andl %edx,%esi
911
xorl %ebp,%edx
912
por %xmm13,%xmm5
913
rorl $7,%ecx
914
movl %ebx,%edi
915
xorl %edx,%esi
916
roll $5,%ebx
917
pshufd $238,%xmm4,%xmm3
918
addl %esi,%eax
919
xorl %ecx,%edi
920
xorl %edx,%ecx
921
addl %ebx,%eax
922
addl 28(%rsp),%ebp
923
cmpl $11,%r8d
924
jb .Laesenclast3
925
movups 64(%r15),%xmm0
926
.byte 102,15,56,220,209
927
movups 80(%r15),%xmm1
928
.byte 102,15,56,220,208
929
je .Laesenclast3
930
movups 96(%r15),%xmm0
931
.byte 102,15,56,220,209
932
movups 112(%r15),%xmm1
933
.byte 102,15,56,220,208
934
.Laesenclast3:
935
.byte 102,15,56,221,209
936
movups 16-112(%r15),%xmm0
937
andl %ecx,%edi
938
xorl %edx,%ecx
939
rorl $7,%ebx
940
movl %eax,%esi
941
xorl %ecx,%edi
942
roll $5,%eax
943
addl %edi,%ebp
944
xorl %ebx,%esi
945
xorl %ecx,%ebx
946
addl %eax,%ebp
947
pxor %xmm10,%xmm6
948
addl 32(%rsp),%edx
949
andl %ebx,%esi
950
xorl %ecx,%ebx
951
rorl $7,%eax
952
punpcklqdq %xmm5,%xmm3
953
movl %ebp,%edi
954
xorl %ebx,%esi
955
pxor %xmm7,%xmm6
956
roll $5,%ebp
957
addl %esi,%edx
958
movups 48(%r12),%xmm14
959
xorps %xmm15,%xmm14
960
movups %xmm2,32(%r13,%r12,1)
961
xorps %xmm14,%xmm2
962
movups -80(%r15),%xmm1
963
.byte 102,15,56,220,208
964
movdqa %xmm12,%xmm13
965
xorl %eax,%edi
966
paddd %xmm5,%xmm12
967
xorl %ebx,%eax
968
pxor %xmm3,%xmm6
969
addl %ebp,%edx
970
addl 36(%rsp),%ecx
971
andl %eax,%edi
972
xorl %ebx,%eax
973
rorl $7,%ebp
974
movdqa %xmm6,%xmm3
975
movl %edx,%esi
976
xorl %eax,%edi
977
movdqa %xmm12,16(%rsp)
978
roll $5,%edx
979
addl %edi,%ecx
980
xorl %ebp,%esi
981
pslld $2,%xmm6
982
xorl %eax,%ebp
983
addl %edx,%ecx
984
psrld $30,%xmm3
985
addl 40(%rsp),%ebx
986
andl %ebp,%esi
987
xorl %eax,%ebp
988
por %xmm3,%xmm6
989
rorl $7,%edx
990
movups -64(%r15),%xmm0
991
.byte 102,15,56,220,209
992
movl %ecx,%edi
993
xorl %ebp,%esi
994
roll $5,%ecx
995
pshufd $238,%xmm5,%xmm12
996
addl %esi,%ebx
997
xorl %edx,%edi
998
xorl %ebp,%edx
999
addl %ecx,%ebx
1000
addl 44(%rsp),%eax
1001
andl %edx,%edi
1002
xorl %ebp,%edx
1003
rorl $7,%ecx
1004
movl %ebx,%esi
1005
xorl %edx,%edi
1006
roll $5,%ebx
1007
addl %edi,%eax
1008
xorl %edx,%esi
1009
addl %ebx,%eax
1010
pxor %xmm11,%xmm7
1011
addl 48(%rsp),%ebp
1012
movups -48(%r15),%xmm1
1013
.byte 102,15,56,220,208
1014
xorl %ecx,%esi
1015
punpcklqdq %xmm6,%xmm12
1016
movl %eax,%edi
1017
roll $5,%eax
1018
pxor %xmm8,%xmm7
1019
addl %esi,%ebp
1020
xorl %ecx,%edi
1021
movdqa %xmm13,%xmm3
1022
rorl $7,%ebx
1023
paddd %xmm6,%xmm13
1024
addl %eax,%ebp
1025
pxor %xmm12,%xmm7
1026
addl 52(%rsp),%edx
1027
xorl %ebx,%edi
1028
movl %ebp,%esi
1029
roll $5,%ebp
1030
movdqa %xmm7,%xmm12
1031
addl %edi,%edx
1032
xorl %ebx,%esi
1033
movdqa %xmm13,32(%rsp)
1034
rorl $7,%eax
1035
addl %ebp,%edx
1036
addl 56(%rsp),%ecx
1037
pslld $2,%xmm7
1038
xorl %eax,%esi
1039
movl %edx,%edi
1040
psrld $30,%xmm12
1041
roll $5,%edx
1042
addl %esi,%ecx
1043
movups -32(%r15),%xmm0
1044
.byte 102,15,56,220,209
1045
xorl %eax,%edi
1046
rorl $7,%ebp
1047
por %xmm12,%xmm7
1048
addl %edx,%ecx
1049
addl 60(%rsp),%ebx
1050
xorl %ebp,%edi
1051
movl %ecx,%esi
1052
roll $5,%ecx
1053
addl %edi,%ebx
1054
xorl %ebp,%esi
1055
rorl $7,%edx
1056
addl %ecx,%ebx
1057
addl 0(%rsp),%eax
1058
xorl %edx,%esi
1059
movl %ebx,%edi
1060
roll $5,%ebx
1061
paddd %xmm7,%xmm3
1062
addl %esi,%eax
1063
xorl %edx,%edi
1064
movdqa %xmm3,48(%rsp)
1065
rorl $7,%ecx
1066
addl %ebx,%eax
1067
addl 4(%rsp),%ebp
1068
movups -16(%r15),%xmm1
1069
.byte 102,15,56,220,208
1070
xorl %ecx,%edi
1071
movl %eax,%esi
1072
roll $5,%eax
1073
addl %edi,%ebp
1074
xorl %ecx,%esi
1075
rorl $7,%ebx
1076
addl %eax,%ebp
1077
addl 8(%rsp),%edx
1078
xorl %ebx,%esi
1079
movl %ebp,%edi
1080
roll $5,%ebp
1081
addl %esi,%edx
1082
xorl %ebx,%edi
1083
rorl $7,%eax
1084
addl %ebp,%edx
1085
addl 12(%rsp),%ecx
1086
xorl %eax,%edi
1087
movl %edx,%esi
1088
roll $5,%edx
1089
addl %edi,%ecx
1090
movups 0(%r15),%xmm0
1091
.byte 102,15,56,220,209
1092
xorl %eax,%esi
1093
rorl $7,%ebp
1094
addl %edx,%ecx
1095
cmpq %r14,%r10
1096
je .Ldone_ssse3
1097
movdqa 64(%r11),%xmm3
1098
movdqa 0(%r11),%xmm13
1099
movdqu 0(%r10),%xmm4
1100
movdqu 16(%r10),%xmm5
1101
movdqu 32(%r10),%xmm6
1102
movdqu 48(%r10),%xmm7
1103
.byte 102,15,56,0,227
1104
addq $64,%r10
1105
addl 16(%rsp),%ebx
1106
xorl %ebp,%esi
1107
movl %ecx,%edi
1108
.byte 102,15,56,0,235
1109
roll $5,%ecx
1110
addl %esi,%ebx
1111
xorl %ebp,%edi
1112
rorl $7,%edx
1113
paddd %xmm13,%xmm4
1114
addl %ecx,%ebx
1115
addl 20(%rsp),%eax
1116
xorl %edx,%edi
1117
movl %ebx,%esi
1118
movdqa %xmm4,0(%rsp)
1119
roll $5,%ebx
1120
addl %edi,%eax
1121
xorl %edx,%esi
1122
rorl $7,%ecx
1123
psubd %xmm13,%xmm4
1124
addl %ebx,%eax
1125
addl 24(%rsp),%ebp
1126
movups 16(%r15),%xmm1
1127
.byte 102,15,56,220,208
1128
xorl %ecx,%esi
1129
movl %eax,%edi
1130
roll $5,%eax
1131
addl %esi,%ebp
1132
xorl %ecx,%edi
1133
rorl $7,%ebx
1134
addl %eax,%ebp
1135
addl 28(%rsp),%edx
1136
xorl %ebx,%edi
1137
movl %ebp,%esi
1138
roll $5,%ebp
1139
addl %edi,%edx
1140
xorl %ebx,%esi
1141
rorl $7,%eax
1142
addl %ebp,%edx
1143
addl 32(%rsp),%ecx
1144
xorl %eax,%esi
1145
movl %edx,%edi
1146
.byte 102,15,56,0,243
1147
roll $5,%edx
1148
addl %esi,%ecx
1149
movups 32(%r15),%xmm0
1150
.byte 102,15,56,220,209
1151
xorl %eax,%edi
1152
rorl $7,%ebp
1153
paddd %xmm13,%xmm5
1154
addl %edx,%ecx
1155
addl 36(%rsp),%ebx
1156
xorl %ebp,%edi
1157
movl %ecx,%esi
1158
movdqa %xmm5,16(%rsp)
1159
roll $5,%ecx
1160
addl %edi,%ebx
1161
xorl %ebp,%esi
1162
rorl $7,%edx
1163
psubd %xmm13,%xmm5
1164
addl %ecx,%ebx
1165
addl 40(%rsp),%eax
1166
xorl %edx,%esi
1167
movl %ebx,%edi
1168
roll $5,%ebx
1169
addl %esi,%eax
1170
xorl %edx,%edi
1171
rorl $7,%ecx
1172
addl %ebx,%eax
1173
addl 44(%rsp),%ebp
1174
movups 48(%r15),%xmm1
1175
.byte 102,15,56,220,208
1176
xorl %ecx,%edi
1177
movl %eax,%esi
1178
roll $5,%eax
1179
addl %edi,%ebp
1180
xorl %ecx,%esi
1181
rorl $7,%ebx
1182
addl %eax,%ebp
1183
addl 48(%rsp),%edx
1184
xorl %ebx,%esi
1185
movl %ebp,%edi
1186
.byte 102,15,56,0,251
1187
roll $5,%ebp
1188
addl %esi,%edx
1189
xorl %ebx,%edi
1190
rorl $7,%eax
1191
paddd %xmm13,%xmm6
1192
addl %ebp,%edx
1193
addl 52(%rsp),%ecx
1194
xorl %eax,%edi
1195
movl %edx,%esi
1196
movdqa %xmm6,32(%rsp)
1197
roll $5,%edx
1198
addl %edi,%ecx
1199
cmpl $11,%r8d
1200
jb .Laesenclast4
1201
movups 64(%r15),%xmm0
1202
.byte 102,15,56,220,209
1203
movups 80(%r15),%xmm1
1204
.byte 102,15,56,220,208
1205
je .Laesenclast4
1206
movups 96(%r15),%xmm0
1207
.byte 102,15,56,220,209
1208
movups 112(%r15),%xmm1
1209
.byte 102,15,56,220,208
1210
.Laesenclast4:
1211
.byte 102,15,56,221,209
1212
movups 16-112(%r15),%xmm0
1213
xorl %eax,%esi
1214
rorl $7,%ebp
1215
psubd %xmm13,%xmm6
1216
addl %edx,%ecx
1217
addl 56(%rsp),%ebx
1218
xorl %ebp,%esi
1219
movl %ecx,%edi
1220
roll $5,%ecx
1221
addl %esi,%ebx
1222
xorl %ebp,%edi
1223
rorl $7,%edx
1224
addl %ecx,%ebx
1225
addl 60(%rsp),%eax
1226
xorl %edx,%edi
1227
movl %ebx,%esi
1228
roll $5,%ebx
1229
addl %edi,%eax
1230
rorl $7,%ecx
1231
addl %ebx,%eax
1232
movups %xmm2,48(%r13,%r12,1)
1233
leaq 64(%r12),%r12
1234
1235
addl 0(%r9),%eax
1236
addl 4(%r9),%esi
1237
addl 8(%r9),%ecx
1238
addl 12(%r9),%edx
1239
movl %eax,0(%r9)
1240
addl 16(%r9),%ebp
1241
movl %esi,4(%r9)
1242
movl %esi,%ebx
1243
movl %ecx,8(%r9)
1244
movl %ecx,%edi
1245
movl %edx,12(%r9)
1246
xorl %edx,%edi
1247
movl %ebp,16(%r9)
1248
andl %edi,%esi
1249
jmp .Loop_ssse3
1250
1251
.Ldone_ssse3:
1252
addl 16(%rsp),%ebx
1253
xorl %ebp,%esi
1254
movl %ecx,%edi
1255
roll $5,%ecx
1256
addl %esi,%ebx
1257
xorl %ebp,%edi
1258
rorl $7,%edx
1259
addl %ecx,%ebx
1260
addl 20(%rsp),%eax
1261
xorl %edx,%edi
1262
movl %ebx,%esi
1263
roll $5,%ebx
1264
addl %edi,%eax
1265
xorl %edx,%esi
1266
rorl $7,%ecx
1267
addl %ebx,%eax
1268
addl 24(%rsp),%ebp
1269
movups 16(%r15),%xmm1
1270
.byte 102,15,56,220,208
1271
xorl %ecx,%esi
1272
movl %eax,%edi
1273
roll $5,%eax
1274
addl %esi,%ebp
1275
xorl %ecx,%edi
1276
rorl $7,%ebx
1277
addl %eax,%ebp
1278
addl 28(%rsp),%edx
1279
xorl %ebx,%edi
1280
movl %ebp,%esi
1281
roll $5,%ebp
1282
addl %edi,%edx
1283
xorl %ebx,%esi
1284
rorl $7,%eax
1285
addl %ebp,%edx
1286
addl 32(%rsp),%ecx
1287
xorl %eax,%esi
1288
movl %edx,%edi
1289
roll $5,%edx
1290
addl %esi,%ecx
1291
movups 32(%r15),%xmm0
1292
.byte 102,15,56,220,209
1293
xorl %eax,%edi
1294
rorl $7,%ebp
1295
addl %edx,%ecx
1296
addl 36(%rsp),%ebx
1297
xorl %ebp,%edi
1298
movl %ecx,%esi
1299
roll $5,%ecx
1300
addl %edi,%ebx
1301
xorl %ebp,%esi
1302
rorl $7,%edx
1303
addl %ecx,%ebx
1304
addl 40(%rsp),%eax
1305
xorl %edx,%esi
1306
movl %ebx,%edi
1307
roll $5,%ebx
1308
addl %esi,%eax
1309
xorl %edx,%edi
1310
rorl $7,%ecx
1311
addl %ebx,%eax
1312
addl 44(%rsp),%ebp
1313
movups 48(%r15),%xmm1
1314
.byte 102,15,56,220,208
1315
xorl %ecx,%edi
1316
movl %eax,%esi
1317
roll $5,%eax
1318
addl %edi,%ebp
1319
xorl %ecx,%esi
1320
rorl $7,%ebx
1321
addl %eax,%ebp
1322
addl 48(%rsp),%edx
1323
xorl %ebx,%esi
1324
movl %ebp,%edi
1325
roll $5,%ebp
1326
addl %esi,%edx
1327
xorl %ebx,%edi
1328
rorl $7,%eax
1329
addl %ebp,%edx
1330
addl 52(%rsp),%ecx
1331
xorl %eax,%edi
1332
movl %edx,%esi
1333
roll $5,%edx
1334
addl %edi,%ecx
1335
cmpl $11,%r8d
1336
jb .Laesenclast5
1337
movups 64(%r15),%xmm0
1338
.byte 102,15,56,220,209
1339
movups 80(%r15),%xmm1
1340
.byte 102,15,56,220,208
1341
je .Laesenclast5
1342
movups 96(%r15),%xmm0
1343
.byte 102,15,56,220,209
1344
movups 112(%r15),%xmm1
1345
.byte 102,15,56,220,208
1346
.Laesenclast5:
1347
.byte 102,15,56,221,209
1348
movups 16-112(%r15),%xmm0
1349
xorl %eax,%esi
1350
rorl $7,%ebp
1351
addl %edx,%ecx
1352
addl 56(%rsp),%ebx
1353
xorl %ebp,%esi
1354
movl %ecx,%edi
1355
roll $5,%ecx
1356
addl %esi,%ebx
1357
xorl %ebp,%edi
1358
rorl $7,%edx
1359
addl %ecx,%ebx
1360
addl 60(%rsp),%eax
1361
xorl %edx,%edi
1362
movl %ebx,%esi
1363
roll $5,%ebx
1364
addl %edi,%eax
1365
rorl $7,%ecx
1366
addl %ebx,%eax
1367
movups %xmm2,48(%r13,%r12,1)
1368
movq 88(%rsp),%r8
1369
1370
addl 0(%r9),%eax
1371
addl 4(%r9),%esi
1372
addl 8(%r9),%ecx
1373
movl %eax,0(%r9)
1374
addl 12(%r9),%edx
1375
movl %esi,4(%r9)
1376
addl 16(%r9),%ebp
1377
movl %ecx,8(%r9)
1378
movl %edx,12(%r9)
1379
movl %ebp,16(%r9)
1380
movups %xmm2,(%r8)
1381
leaq 104(%rsp),%rsi
1382
.cfi_def_cfa %rsi,56
1383
movq 0(%rsi),%r15
1384
.cfi_restore %r15
1385
movq 8(%rsi),%r14
1386
.cfi_restore %r14
1387
movq 16(%rsi),%r13
1388
.cfi_restore %r13
1389
movq 24(%rsi),%r12
1390
.cfi_restore %r12
1391
movq 32(%rsi),%rbp
1392
.cfi_restore %rbp
1393
movq 40(%rsi),%rbx
1394
.cfi_restore %rbx
1395
leaq 48(%rsi),%rsp
1396
.cfi_def_cfa %rsp,8
1397
.Lepilogue_ssse3:
1398
.byte 0xf3,0xc3
1399
.cfi_endproc
1400
.size aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
1401
.type aesni_cbc_sha1_enc_avx,@function
1402
.align 32
1403
aesni_cbc_sha1_enc_avx:
1404
.cfi_startproc
1405
movq 8(%rsp),%r10
1406
1407
1408
pushq %rbx
1409
.cfi_adjust_cfa_offset 8
1410
.cfi_offset %rbx,-16
1411
pushq %rbp
1412
.cfi_adjust_cfa_offset 8
1413
.cfi_offset %rbp,-24
1414
pushq %r12
1415
.cfi_adjust_cfa_offset 8
1416
.cfi_offset %r12,-32
1417
pushq %r13
1418
.cfi_adjust_cfa_offset 8
1419
.cfi_offset %r13,-40
1420
pushq %r14
1421
.cfi_adjust_cfa_offset 8
1422
.cfi_offset %r14,-48
1423
pushq %r15
1424
.cfi_adjust_cfa_offset 8
1425
.cfi_offset %r15,-56
1426
leaq -104(%rsp),%rsp
1427
.cfi_adjust_cfa_offset 104
1428
1429
1430
vzeroall
1431
movq %rdi,%r12
1432
movq %rsi,%r13
1433
movq %rdx,%r14
1434
leaq 112(%rcx),%r15
1435
vmovdqu (%r8),%xmm12
1436
movq %r8,88(%rsp)
1437
shlq $6,%r14
1438
subq %r12,%r13
1439
movl 240-112(%r15),%r8d
1440
addq %r10,%r14
1441
1442
leaq K_XX_XX(%rip),%r11
1443
movl 0(%r9),%eax
1444
movl 4(%r9),%ebx
1445
movl 8(%r9),%ecx
1446
movl 12(%r9),%edx
1447
movl %ebx,%esi
1448
movl 16(%r9),%ebp
1449
movl %ecx,%edi
1450
xorl %edx,%edi
1451
andl %edi,%esi
1452
1453
vmovdqa 64(%r11),%xmm6
1454
vmovdqa 0(%r11),%xmm10
1455
vmovdqu 0(%r10),%xmm0
1456
vmovdqu 16(%r10),%xmm1
1457
vmovdqu 32(%r10),%xmm2
1458
vmovdqu 48(%r10),%xmm3
1459
vpshufb %xmm6,%xmm0,%xmm0
1460
addq $64,%r10
1461
vpshufb %xmm6,%xmm1,%xmm1
1462
vpshufb %xmm6,%xmm2,%xmm2
1463
vpshufb %xmm6,%xmm3,%xmm3
1464
vpaddd %xmm10,%xmm0,%xmm4
1465
vpaddd %xmm10,%xmm1,%xmm5
1466
vpaddd %xmm10,%xmm2,%xmm6
1467
vmovdqa %xmm4,0(%rsp)
1468
vmovdqa %xmm5,16(%rsp)
1469
vmovdqa %xmm6,32(%rsp)
1470
vmovups -112(%r15),%xmm15
1471
vmovups 16-112(%r15),%xmm14
1472
jmp .Loop_avx
1473
.align 32
1474
.Loop_avx:
1475
shrdl $2,%ebx,%ebx
1476
vmovdqu 0(%r12),%xmm13
1477
vpxor %xmm15,%xmm13,%xmm13
1478
vpxor %xmm13,%xmm12,%xmm12
1479
vaesenc %xmm14,%xmm12,%xmm12
1480
vmovups -80(%r15),%xmm15
1481
xorl %edx,%esi
1482
vpalignr $8,%xmm0,%xmm1,%xmm4
1483
movl %eax,%edi
1484
addl 0(%rsp),%ebp
1485
vpaddd %xmm3,%xmm10,%xmm9
1486
xorl %ecx,%ebx
1487
shldl $5,%eax,%eax
1488
vpsrldq $4,%xmm3,%xmm8
1489
addl %esi,%ebp
1490
andl %ebx,%edi
1491
vpxor %xmm0,%xmm4,%xmm4
1492
xorl %ecx,%ebx
1493
addl %eax,%ebp
1494
vpxor %xmm2,%xmm8,%xmm8
1495
shrdl $7,%eax,%eax
1496
xorl %ecx,%edi
1497
movl %ebp,%esi
1498
addl 4(%rsp),%edx
1499
vpxor %xmm8,%xmm4,%xmm4
1500
xorl %ebx,%eax
1501
shldl $5,%ebp,%ebp
1502
vmovdqa %xmm9,48(%rsp)
1503
addl %edi,%edx
1504
vaesenc %xmm15,%xmm12,%xmm12
1505
vmovups -64(%r15),%xmm14
1506
andl %eax,%esi
1507
vpsrld $31,%xmm4,%xmm8
1508
xorl %ebx,%eax
1509
addl %ebp,%edx
1510
shrdl $7,%ebp,%ebp
1511
xorl %ebx,%esi
1512
vpslldq $12,%xmm4,%xmm9
1513
vpaddd %xmm4,%xmm4,%xmm4
1514
movl %edx,%edi
1515
addl 8(%rsp),%ecx
1516
xorl %eax,%ebp
1517
shldl $5,%edx,%edx
1518
vpor %xmm8,%xmm4,%xmm4
1519
vpsrld $30,%xmm9,%xmm8
1520
addl %esi,%ecx
1521
andl %ebp,%edi
1522
xorl %eax,%ebp
1523
addl %edx,%ecx
1524
vpslld $2,%xmm9,%xmm9
1525
vpxor %xmm8,%xmm4,%xmm4
1526
shrdl $7,%edx,%edx
1527
xorl %eax,%edi
1528
movl %ecx,%esi
1529
addl 12(%rsp),%ebx
1530
vaesenc %xmm14,%xmm12,%xmm12
1531
vmovups -48(%r15),%xmm15
1532
vpxor %xmm9,%xmm4,%xmm4
1533
xorl %ebp,%edx
1534
shldl $5,%ecx,%ecx
1535
addl %edi,%ebx
1536
andl %edx,%esi
1537
xorl %ebp,%edx
1538
addl %ecx,%ebx
1539
shrdl $7,%ecx,%ecx
1540
xorl %ebp,%esi
1541
vpalignr $8,%xmm1,%xmm2,%xmm5
1542
movl %ebx,%edi
1543
addl 16(%rsp),%eax
1544
vpaddd %xmm4,%xmm10,%xmm9
1545
xorl %edx,%ecx
1546
shldl $5,%ebx,%ebx
1547
vpsrldq $4,%xmm4,%xmm8
1548
addl %esi,%eax
1549
andl %ecx,%edi
1550
vpxor %xmm1,%xmm5,%xmm5
1551
xorl %edx,%ecx
1552
addl %ebx,%eax
1553
vpxor %xmm3,%xmm8,%xmm8
1554
shrdl $7,%ebx,%ebx
1555
vaesenc %xmm15,%xmm12,%xmm12
1556
vmovups -32(%r15),%xmm14
1557
xorl %edx,%edi
1558
movl %eax,%esi
1559
addl 20(%rsp),%ebp
1560
vpxor %xmm8,%xmm5,%xmm5
1561
xorl %ecx,%ebx
1562
shldl $5,%eax,%eax
1563
vmovdqa %xmm9,0(%rsp)
1564
addl %edi,%ebp
1565
andl %ebx,%esi
1566
vpsrld $31,%xmm5,%xmm8
1567
xorl %ecx,%ebx
1568
addl %eax,%ebp
1569
shrdl $7,%eax,%eax
1570
xorl %ecx,%esi
1571
vpslldq $12,%xmm5,%xmm9
1572
vpaddd %xmm5,%xmm5,%xmm5
1573
movl %ebp,%edi
1574
addl 24(%rsp),%edx
1575
xorl %ebx,%eax
1576
shldl $5,%ebp,%ebp
1577
vpor %xmm8,%xmm5,%xmm5
1578
vpsrld $30,%xmm9,%xmm8
1579
addl %esi,%edx
1580
vaesenc %xmm14,%xmm12,%xmm12
1581
vmovups -16(%r15),%xmm15
1582
andl %eax,%edi
1583
xorl %ebx,%eax
1584
addl %ebp,%edx
1585
vpslld $2,%xmm9,%xmm9
1586
vpxor %xmm8,%xmm5,%xmm5
1587
shrdl $7,%ebp,%ebp
1588
xorl %ebx,%edi
1589
movl %edx,%esi
1590
addl 28(%rsp),%ecx
1591
vpxor %xmm9,%xmm5,%xmm5
1592
xorl %eax,%ebp
1593
shldl $5,%edx,%edx
1594
vmovdqa 16(%r11),%xmm10
1595
addl %edi,%ecx
1596
andl %ebp,%esi
1597
xorl %eax,%ebp
1598
addl %edx,%ecx
1599
shrdl $7,%edx,%edx
1600
xorl %eax,%esi
1601
vpalignr $8,%xmm2,%xmm3,%xmm6
1602
movl %ecx,%edi
1603
addl 32(%rsp),%ebx
1604
vaesenc %xmm15,%xmm12,%xmm12
1605
vmovups 0(%r15),%xmm14
1606
vpaddd %xmm5,%xmm10,%xmm9
1607
xorl %ebp,%edx
1608
shldl $5,%ecx,%ecx
1609
vpsrldq $4,%xmm5,%xmm8
1610
addl %esi,%ebx
1611
andl %edx,%edi
1612
vpxor %xmm2,%xmm6,%xmm6
1613
xorl %ebp,%edx
1614
addl %ecx,%ebx
1615
vpxor %xmm4,%xmm8,%xmm8
1616
shrdl $7,%ecx,%ecx
1617
xorl %ebp,%edi
1618
movl %ebx,%esi
1619
addl 36(%rsp),%eax
1620
vpxor %xmm8,%xmm6,%xmm6
1621
xorl %edx,%ecx
1622
shldl $5,%ebx,%ebx
1623
vmovdqa %xmm9,16(%rsp)
1624
addl %edi,%eax
1625
andl %ecx,%esi
1626
vpsrld $31,%xmm6,%xmm8
1627
xorl %edx,%ecx
1628
addl %ebx,%eax
1629
shrdl $7,%ebx,%ebx
1630
vaesenc %xmm14,%xmm12,%xmm12
1631
vmovups 16(%r15),%xmm15
1632
xorl %edx,%esi
1633
vpslldq $12,%xmm6,%xmm9
1634
vpaddd %xmm6,%xmm6,%xmm6
1635
movl %eax,%edi
1636
addl 40(%rsp),%ebp
1637
xorl %ecx,%ebx
1638
shldl $5,%eax,%eax
1639
vpor %xmm8,%xmm6,%xmm6
1640
vpsrld $30,%xmm9,%xmm8
1641
addl %esi,%ebp
1642
andl %ebx,%edi
1643
xorl %ecx,%ebx
1644
addl %eax,%ebp
1645
vpslld $2,%xmm9,%xmm9
1646
vpxor %xmm8,%xmm6,%xmm6
1647
shrdl $7,%eax,%eax
1648
xorl %ecx,%edi
1649
movl %ebp,%esi
1650
addl 44(%rsp),%edx
1651
vpxor %xmm9,%xmm6,%xmm6
1652
xorl %ebx,%eax
1653
shldl $5,%ebp,%ebp
1654
addl %edi,%edx
1655
vaesenc %xmm15,%xmm12,%xmm12
1656
vmovups 32(%r15),%xmm14
1657
andl %eax,%esi
1658
xorl %ebx,%eax
1659
addl %ebp,%edx
1660
shrdl $7,%ebp,%ebp
1661
xorl %ebx,%esi
1662
vpalignr $8,%xmm3,%xmm4,%xmm7
1663
movl %edx,%edi
1664
addl 48(%rsp),%ecx
1665
vpaddd %xmm6,%xmm10,%xmm9
1666
xorl %eax,%ebp
1667
shldl $5,%edx,%edx
1668
vpsrldq $4,%xmm6,%xmm8
1669
addl %esi,%ecx
1670
andl %ebp,%edi
1671
vpxor %xmm3,%xmm7,%xmm7
1672
xorl %eax,%ebp
1673
addl %edx,%ecx
1674
vpxor %xmm5,%xmm8,%xmm8
1675
shrdl $7,%edx,%edx
1676
xorl %eax,%edi
1677
movl %ecx,%esi
1678
addl 52(%rsp),%ebx
1679
vaesenc %xmm14,%xmm12,%xmm12
1680
vmovups 48(%r15),%xmm15
1681
vpxor %xmm8,%xmm7,%xmm7
1682
xorl %ebp,%edx
1683
shldl $5,%ecx,%ecx
1684
vmovdqa %xmm9,32(%rsp)
1685
addl %edi,%ebx
1686
andl %edx,%esi
1687
vpsrld $31,%xmm7,%xmm8
1688
xorl %ebp,%edx
1689
addl %ecx,%ebx
1690
shrdl $7,%ecx,%ecx
1691
xorl %ebp,%esi
1692
vpslldq $12,%xmm7,%xmm9
1693
vpaddd %xmm7,%xmm7,%xmm7
1694
movl %ebx,%edi
1695
addl 56(%rsp),%eax
1696
xorl %edx,%ecx
1697
shldl $5,%ebx,%ebx
1698
vpor %xmm8,%xmm7,%xmm7
1699
vpsrld $30,%xmm9,%xmm8
1700
addl %esi,%eax
1701
andl %ecx,%edi
1702
xorl %edx,%ecx
1703
addl %ebx,%eax
1704
vpslld $2,%xmm9,%xmm9
1705
vpxor %xmm8,%xmm7,%xmm7
1706
shrdl $7,%ebx,%ebx
1707
cmpl $11,%r8d
1708
jb .Lvaesenclast6
1709
vaesenc %xmm15,%xmm12,%xmm12
1710
vmovups 64(%r15),%xmm14
1711
vaesenc %xmm14,%xmm12,%xmm12
1712
vmovups 80(%r15),%xmm15
1713
je .Lvaesenclast6
1714
vaesenc %xmm15,%xmm12,%xmm12
1715
vmovups 96(%r15),%xmm14
1716
vaesenc %xmm14,%xmm12,%xmm12
1717
vmovups 112(%r15),%xmm15
1718
.Lvaesenclast6:
1719
vaesenclast %xmm15,%xmm12,%xmm12
1720
vmovups -112(%r15),%xmm15
1721
vmovups 16-112(%r15),%xmm14
1722
xorl %edx,%edi
1723
movl %eax,%esi
1724
addl 60(%rsp),%ebp
1725
vpxor %xmm9,%xmm7,%xmm7
1726
xorl %ecx,%ebx
1727
shldl $5,%eax,%eax
1728
addl %edi,%ebp
1729
andl %ebx,%esi
1730
xorl %ecx,%ebx
1731
addl %eax,%ebp
1732
vpalignr $8,%xmm6,%xmm7,%xmm8
1733
vpxor %xmm4,%xmm0,%xmm0
1734
shrdl $7,%eax,%eax
1735
xorl %ecx,%esi
1736
movl %ebp,%edi
1737
addl 0(%rsp),%edx
1738
vpxor %xmm1,%xmm0,%xmm0
1739
xorl %ebx,%eax
1740
shldl $5,%ebp,%ebp
1741
vpaddd %xmm7,%xmm10,%xmm9
1742
addl %esi,%edx
1743
vmovdqu 16(%r12),%xmm13
1744
vpxor %xmm15,%xmm13,%xmm13
1745
vmovups %xmm12,0(%r12,%r13,1)
1746
vpxor %xmm13,%xmm12,%xmm12
1747
vaesenc %xmm14,%xmm12,%xmm12
1748
vmovups -80(%r15),%xmm15
1749
andl %eax,%edi
1750
vpxor %xmm8,%xmm0,%xmm0
1751
xorl %ebx,%eax
1752
addl %ebp,%edx
1753
shrdl $7,%ebp,%ebp
1754
xorl %ebx,%edi
1755
vpsrld $30,%xmm0,%xmm8
1756
vmovdqa %xmm9,48(%rsp)
1757
movl %edx,%esi
1758
addl 4(%rsp),%ecx
1759
xorl %eax,%ebp
1760
shldl $5,%edx,%edx
1761
vpslld $2,%xmm0,%xmm0
1762
addl %edi,%ecx
1763
andl %ebp,%esi
1764
xorl %eax,%ebp
1765
addl %edx,%ecx
1766
shrdl $7,%edx,%edx
1767
xorl %eax,%esi
1768
movl %ecx,%edi
1769
addl 8(%rsp),%ebx
1770
vaesenc %xmm15,%xmm12,%xmm12
1771
vmovups -64(%r15),%xmm14
1772
vpor %xmm8,%xmm0,%xmm0
1773
xorl %ebp,%edx
1774
shldl $5,%ecx,%ecx
1775
addl %esi,%ebx
1776
andl %edx,%edi
1777
xorl %ebp,%edx
1778
addl %ecx,%ebx
1779
addl 12(%rsp),%eax
1780
xorl %ebp,%edi
1781
movl %ebx,%esi
1782
shldl $5,%ebx,%ebx
1783
addl %edi,%eax
1784
xorl %edx,%esi
1785
shrdl $7,%ecx,%ecx
1786
addl %ebx,%eax
1787
vpalignr $8,%xmm7,%xmm0,%xmm8
1788
vpxor %xmm5,%xmm1,%xmm1
1789
addl 16(%rsp),%ebp
1790
vaesenc %xmm14,%xmm12,%xmm12
1791
vmovups -48(%r15),%xmm15
1792
xorl %ecx,%esi
1793
movl %eax,%edi
1794
shldl $5,%eax,%eax
1795
vpxor %xmm2,%xmm1,%xmm1
1796
addl %esi,%ebp
1797
xorl %ecx,%edi
1798
vpaddd %xmm0,%xmm10,%xmm9
1799
shrdl $7,%ebx,%ebx
1800
addl %eax,%ebp
1801
vpxor %xmm8,%xmm1,%xmm1
1802
addl 20(%rsp),%edx
1803
xorl %ebx,%edi
1804
movl %ebp,%esi
1805
shldl $5,%ebp,%ebp
1806
vpsrld $30,%xmm1,%xmm8
1807
vmovdqa %xmm9,0(%rsp)
1808
addl %edi,%edx
1809
xorl %ebx,%esi
1810
shrdl $7,%eax,%eax
1811
addl %ebp,%edx
1812
vpslld $2,%xmm1,%xmm1
1813
addl 24(%rsp),%ecx
1814
xorl %eax,%esi
1815
movl %edx,%edi
1816
shldl $5,%edx,%edx
1817
addl %esi,%ecx
1818
vaesenc %xmm15,%xmm12,%xmm12
1819
vmovups -32(%r15),%xmm14
1820
xorl %eax,%edi
1821
shrdl $7,%ebp,%ebp
1822
addl %edx,%ecx
1823
vpor %xmm8,%xmm1,%xmm1
1824
addl 28(%rsp),%ebx
1825
xorl %ebp,%edi
1826
movl %ecx,%esi
1827
shldl $5,%ecx,%ecx
1828
addl %edi,%ebx
1829
xorl %ebp,%esi
1830
shrdl $7,%edx,%edx
1831
addl %ecx,%ebx
1832
vpalignr $8,%xmm0,%xmm1,%xmm8
1833
vpxor %xmm6,%xmm2,%xmm2
1834
addl 32(%rsp),%eax
1835
xorl %edx,%esi
1836
movl %ebx,%edi
1837
shldl $5,%ebx,%ebx
1838
vpxor %xmm3,%xmm2,%xmm2
1839
addl %esi,%eax
1840
xorl %edx,%edi
1841
vpaddd %xmm1,%xmm10,%xmm9
1842
vmovdqa 32(%r11),%xmm10
1843
shrdl $7,%ecx,%ecx
1844
addl %ebx,%eax
1845
vpxor %xmm8,%xmm2,%xmm2
1846
addl 36(%rsp),%ebp
1847
vaesenc %xmm14,%xmm12,%xmm12
1848
vmovups -16(%r15),%xmm15
1849
xorl %ecx,%edi
1850
movl %eax,%esi
1851
shldl $5,%eax,%eax
1852
vpsrld $30,%xmm2,%xmm8
1853
vmovdqa %xmm9,16(%rsp)
1854
addl %edi,%ebp
1855
xorl %ecx,%esi
1856
shrdl $7,%ebx,%ebx
1857
addl %eax,%ebp
1858
vpslld $2,%xmm2,%xmm2
1859
addl 40(%rsp),%edx
1860
xorl %ebx,%esi
1861
movl %ebp,%edi
1862
shldl $5,%ebp,%ebp
1863
addl %esi,%edx
1864
xorl %ebx,%edi
1865
shrdl $7,%eax,%eax
1866
addl %ebp,%edx
1867
vpor %xmm8,%xmm2,%xmm2
1868
addl 44(%rsp),%ecx
1869
xorl %eax,%edi
1870
movl %edx,%esi
1871
shldl $5,%edx,%edx
1872
addl %edi,%ecx
1873
vaesenc %xmm15,%xmm12,%xmm12
1874
vmovups 0(%r15),%xmm14
1875
xorl %eax,%esi
1876
shrdl $7,%ebp,%ebp
1877
addl %edx,%ecx
1878
vpalignr $8,%xmm1,%xmm2,%xmm8
1879
vpxor %xmm7,%xmm3,%xmm3
1880
addl 48(%rsp),%ebx
1881
xorl %ebp,%esi
1882
movl %ecx,%edi
1883
shldl $5,%ecx,%ecx
1884
vpxor %xmm4,%xmm3,%xmm3
1885
addl %esi,%ebx
1886
xorl %ebp,%edi
1887
vpaddd %xmm2,%xmm10,%xmm9
1888
shrdl $7,%edx,%edx
1889
addl %ecx,%ebx
1890
vpxor %xmm8,%xmm3,%xmm3
1891
addl 52(%rsp),%eax
1892
xorl %edx,%edi
1893
movl %ebx,%esi
1894
shldl $5,%ebx,%ebx
1895
vpsrld $30,%xmm3,%xmm8
1896
vmovdqa %xmm9,32(%rsp)
1897
addl %edi,%eax
1898
xorl %edx,%esi
1899
shrdl $7,%ecx,%ecx
1900
addl %ebx,%eax
1901
vpslld $2,%xmm3,%xmm3
1902
addl 56(%rsp),%ebp
1903
vaesenc %xmm14,%xmm12,%xmm12
1904
vmovups 16(%r15),%xmm15
1905
xorl %ecx,%esi
1906
movl %eax,%edi
1907
shldl $5,%eax,%eax
1908
addl %esi,%ebp
1909
xorl %ecx,%edi
1910
shrdl $7,%ebx,%ebx
1911
addl %eax,%ebp
1912
vpor %xmm8,%xmm3,%xmm3
1913
addl 60(%rsp),%edx
1914
xorl %ebx,%edi
1915
movl %ebp,%esi
1916
shldl $5,%ebp,%ebp
1917
addl %edi,%edx
1918
xorl %ebx,%esi
1919
shrdl $7,%eax,%eax
1920
addl %ebp,%edx
1921
vpalignr $8,%xmm2,%xmm3,%xmm8
1922
vpxor %xmm0,%xmm4,%xmm4
1923
addl 0(%rsp),%ecx
1924
xorl %eax,%esi
1925
movl %edx,%edi
1926
shldl $5,%edx,%edx
1927
vpxor %xmm5,%xmm4,%xmm4
1928
addl %esi,%ecx
1929
vaesenc %xmm15,%xmm12,%xmm12
1930
vmovups 32(%r15),%xmm14
1931
xorl %eax,%edi
1932
vpaddd %xmm3,%xmm10,%xmm9
1933
shrdl $7,%ebp,%ebp
1934
addl %edx,%ecx
1935
vpxor %xmm8,%xmm4,%xmm4
1936
addl 4(%rsp),%ebx
1937
xorl %ebp,%edi
1938
movl %ecx,%esi
1939
shldl $5,%ecx,%ecx
1940
vpsrld $30,%xmm4,%xmm8
1941
vmovdqa %xmm9,48(%rsp)
1942
addl %edi,%ebx
1943
xorl %ebp,%esi
1944
shrdl $7,%edx,%edx
1945
addl %ecx,%ebx
1946
vpslld $2,%xmm4,%xmm4
1947
addl 8(%rsp),%eax
1948
xorl %edx,%esi
1949
movl %ebx,%edi
1950
shldl $5,%ebx,%ebx
1951
addl %esi,%eax
1952
xorl %edx,%edi
1953
shrdl $7,%ecx,%ecx
1954
addl %ebx,%eax
1955
vpor %xmm8,%xmm4,%xmm4
1956
addl 12(%rsp),%ebp
1957
vaesenc %xmm14,%xmm12,%xmm12
1958
vmovups 48(%r15),%xmm15
1959
xorl %ecx,%edi
1960
movl %eax,%esi
1961
shldl $5,%eax,%eax
1962
addl %edi,%ebp
1963
xorl %ecx,%esi
1964
shrdl $7,%ebx,%ebx
1965
addl %eax,%ebp
1966
vpalignr $8,%xmm3,%xmm4,%xmm8
1967
vpxor %xmm1,%xmm5,%xmm5
1968
addl 16(%rsp),%edx
1969
xorl %ebx,%esi
1970
movl %ebp,%edi
1971
shldl $5,%ebp,%ebp
1972
vpxor %xmm6,%xmm5,%xmm5
1973
addl %esi,%edx
1974
xorl %ebx,%edi
1975
vpaddd %xmm4,%xmm10,%xmm9
1976
shrdl $7,%eax,%eax
1977
addl %ebp,%edx
1978
vpxor %xmm8,%xmm5,%xmm5
1979
addl 20(%rsp),%ecx
1980
xorl %eax,%edi
1981
movl %edx,%esi
1982
shldl $5,%edx,%edx
1983
vpsrld $30,%xmm5,%xmm8
1984
vmovdqa %xmm9,0(%rsp)
1985
addl %edi,%ecx
1986
cmpl $11,%r8d
1987
jb .Lvaesenclast7
1988
vaesenc %xmm15,%xmm12,%xmm12
1989
vmovups 64(%r15),%xmm14
1990
vaesenc %xmm14,%xmm12,%xmm12
1991
vmovups 80(%r15),%xmm15
1992
je .Lvaesenclast7
1993
vaesenc %xmm15,%xmm12,%xmm12
1994
vmovups 96(%r15),%xmm14
1995
vaesenc %xmm14,%xmm12,%xmm12
1996
vmovups 112(%r15),%xmm15
1997
.Lvaesenclast7:
1998
vaesenclast %xmm15,%xmm12,%xmm12
1999
vmovups -112(%r15),%xmm15
2000
vmovups 16-112(%r15),%xmm14
2001
xorl %eax,%esi
2002
shrdl $7,%ebp,%ebp
2003
addl %edx,%ecx
2004
vpslld $2,%xmm5,%xmm5
2005
addl 24(%rsp),%ebx
2006
xorl %ebp,%esi
2007
movl %ecx,%edi
2008
shldl $5,%ecx,%ecx
2009
addl %esi,%ebx
2010
xorl %ebp,%edi
2011
shrdl $7,%edx,%edx
2012
addl %ecx,%ebx
2013
vpor %xmm8,%xmm5,%xmm5
2014
addl 28(%rsp),%eax
2015
shrdl $7,%ecx,%ecx
2016
movl %ebx,%esi
2017
xorl %edx,%edi
2018
shldl $5,%ebx,%ebx
2019
addl %edi,%eax
2020
xorl %ecx,%esi
2021
xorl %edx,%ecx
2022
addl %ebx,%eax
2023
vpalignr $8,%xmm4,%xmm5,%xmm8
2024
vpxor %xmm2,%xmm6,%xmm6
2025
addl 32(%rsp),%ebp
2026
vmovdqu 32(%r12),%xmm13
2027
vpxor %xmm15,%xmm13,%xmm13
2028
vmovups %xmm12,16(%r13,%r12,1)
2029
vpxor %xmm13,%xmm12,%xmm12
2030
vaesenc %xmm14,%xmm12,%xmm12
2031
vmovups -80(%r15),%xmm15
2032
andl %ecx,%esi
2033
xorl %edx,%ecx
2034
shrdl $7,%ebx,%ebx
2035
vpxor %xmm7,%xmm6,%xmm6
2036
movl %eax,%edi
2037
xorl %ecx,%esi
2038
vpaddd %xmm5,%xmm10,%xmm9
2039
shldl $5,%eax,%eax
2040
addl %esi,%ebp
2041
vpxor %xmm8,%xmm6,%xmm6
2042
xorl %ebx,%edi
2043
xorl %ecx,%ebx
2044
addl %eax,%ebp
2045
addl 36(%rsp),%edx
2046
vpsrld $30,%xmm6,%xmm8
2047
vmovdqa %xmm9,16(%rsp)
2048
andl %ebx,%edi
2049
xorl %ecx,%ebx
2050
shrdl $7,%eax,%eax
2051
movl %ebp,%esi
2052
vpslld $2,%xmm6,%xmm6
2053
xorl %ebx,%edi
2054
shldl $5,%ebp,%ebp
2055
addl %edi,%edx
2056
vaesenc %xmm15,%xmm12,%xmm12
2057
vmovups -64(%r15),%xmm14
2058
xorl %eax,%esi
2059
xorl %ebx,%eax
2060
addl %ebp,%edx
2061
addl 40(%rsp),%ecx
2062
andl %eax,%esi
2063
vpor %xmm8,%xmm6,%xmm6
2064
xorl %ebx,%eax
2065
shrdl $7,%ebp,%ebp
2066
movl %edx,%edi
2067
xorl %eax,%esi
2068
shldl $5,%edx,%edx
2069
addl %esi,%ecx
2070
xorl %ebp,%edi
2071
xorl %eax,%ebp
2072
addl %edx,%ecx
2073
addl 44(%rsp),%ebx
2074
andl %ebp,%edi
2075
xorl %eax,%ebp
2076
shrdl $7,%edx,%edx
2077
vaesenc %xmm14,%xmm12,%xmm12
2078
vmovups -48(%r15),%xmm15
2079
movl %ecx,%esi
2080
xorl %ebp,%edi
2081
shldl $5,%ecx,%ecx
2082
addl %edi,%ebx
2083
xorl %edx,%esi
2084
xorl %ebp,%edx
2085
addl %ecx,%ebx
2086
vpalignr $8,%xmm5,%xmm6,%xmm8
2087
vpxor %xmm3,%xmm7,%xmm7
2088
addl 48(%rsp),%eax
2089
andl %edx,%esi
2090
xorl %ebp,%edx
2091
shrdl $7,%ecx,%ecx
2092
vpxor %xmm0,%xmm7,%xmm7
2093
movl %ebx,%edi
2094
xorl %edx,%esi
2095
vpaddd %xmm6,%xmm10,%xmm9
2096
vmovdqa 48(%r11),%xmm10
2097
shldl $5,%ebx,%ebx
2098
addl %esi,%eax
2099
vpxor %xmm8,%xmm7,%xmm7
2100
xorl %ecx,%edi
2101
xorl %edx,%ecx
2102
addl %ebx,%eax
2103
addl 52(%rsp),%ebp
2104
vaesenc %xmm15,%xmm12,%xmm12
2105
vmovups -32(%r15),%xmm14
2106
vpsrld $30,%xmm7,%xmm8
2107
vmovdqa %xmm9,32(%rsp)
2108
andl %ecx,%edi
2109
xorl %edx,%ecx
2110
shrdl $7,%ebx,%ebx
2111
movl %eax,%esi
2112
vpslld $2,%xmm7,%xmm7
2113
xorl %ecx,%edi
2114
shldl $5,%eax,%eax
2115
addl %edi,%ebp
2116
xorl %ebx,%esi
2117
xorl %ecx,%ebx
2118
addl %eax,%ebp
2119
addl 56(%rsp),%edx
2120
andl %ebx,%esi
2121
vpor %xmm8,%xmm7,%xmm7
2122
xorl %ecx,%ebx
2123
shrdl $7,%eax,%eax
2124
movl %ebp,%edi
2125
xorl %ebx,%esi
2126
shldl $5,%ebp,%ebp
2127
addl %esi,%edx
2128
vaesenc %xmm14,%xmm12,%xmm12
2129
vmovups -16(%r15),%xmm15
2130
xorl %eax,%edi
2131
xorl %ebx,%eax
2132
addl %ebp,%edx
2133
addl 60(%rsp),%ecx
2134
andl %eax,%edi
2135
xorl %ebx,%eax
2136
shrdl $7,%ebp,%ebp
2137
movl %edx,%esi
2138
xorl %eax,%edi
2139
shldl $5,%edx,%edx
2140
addl %edi,%ecx
2141
xorl %ebp,%esi
2142
xorl %eax,%ebp
2143
addl %edx,%ecx
2144
vpalignr $8,%xmm6,%xmm7,%xmm8
2145
vpxor %xmm4,%xmm0,%xmm0
2146
addl 0(%rsp),%ebx
2147
andl %ebp,%esi
2148
xorl %eax,%ebp
2149
shrdl $7,%edx,%edx
2150
vaesenc %xmm15,%xmm12,%xmm12
2151
vmovups 0(%r15),%xmm14
2152
vpxor %xmm1,%xmm0,%xmm0
2153
movl %ecx,%edi
2154
xorl %ebp,%esi
2155
vpaddd %xmm7,%xmm10,%xmm9
2156
shldl $5,%ecx,%ecx
2157
addl %esi,%ebx
2158
vpxor %xmm8,%xmm0,%xmm0
2159
xorl %edx,%edi
2160
xorl %ebp,%edx
2161
addl %ecx,%ebx
2162
addl 4(%rsp),%eax
2163
vpsrld $30,%xmm0,%xmm8
2164
vmovdqa %xmm9,48(%rsp)
2165
andl %edx,%edi
2166
xorl %ebp,%edx
2167
shrdl $7,%ecx,%ecx
2168
movl %ebx,%esi
2169
vpslld $2,%xmm0,%xmm0
2170
xorl %edx,%edi
2171
shldl $5,%ebx,%ebx
2172
addl %edi,%eax
2173
xorl %ecx,%esi
2174
xorl %edx,%ecx
2175
addl %ebx,%eax
2176
addl 8(%rsp),%ebp
2177
vaesenc %xmm14,%xmm12,%xmm12
2178
vmovups 16(%r15),%xmm15
2179
andl %ecx,%esi
2180
vpor %xmm8,%xmm0,%xmm0
2181
xorl %edx,%ecx
2182
shrdl $7,%ebx,%ebx
2183
movl %eax,%edi
2184
xorl %ecx,%esi
2185
shldl $5,%eax,%eax
2186
addl %esi,%ebp
2187
xorl %ebx,%edi
2188
xorl %ecx,%ebx
2189
addl %eax,%ebp
2190
addl 12(%rsp),%edx
2191
andl %ebx,%edi
2192
xorl %ecx,%ebx
2193
shrdl $7,%eax,%eax
2194
movl %ebp,%esi
2195
xorl %ebx,%edi
2196
shldl $5,%ebp,%ebp
2197
addl %edi,%edx
2198
vaesenc %xmm15,%xmm12,%xmm12
2199
vmovups 32(%r15),%xmm14
2200
xorl %eax,%esi
2201
xorl %ebx,%eax
2202
addl %ebp,%edx
2203
vpalignr $8,%xmm7,%xmm0,%xmm8
2204
vpxor %xmm5,%xmm1,%xmm1
2205
addl 16(%rsp),%ecx
2206
andl %eax,%esi
2207
xorl %ebx,%eax
2208
shrdl $7,%ebp,%ebp
2209
vpxor %xmm2,%xmm1,%xmm1
2210
movl %edx,%edi
2211
xorl %eax,%esi
2212
vpaddd %xmm0,%xmm10,%xmm9
2213
shldl $5,%edx,%edx
2214
addl %esi,%ecx
2215
vpxor %xmm8,%xmm1,%xmm1
2216
xorl %ebp,%edi
2217
xorl %eax,%ebp
2218
addl %edx,%ecx
2219
addl 20(%rsp),%ebx
2220
vpsrld $30,%xmm1,%xmm8
2221
vmovdqa %xmm9,0(%rsp)
2222
andl %ebp,%edi
2223
xorl %eax,%ebp
2224
shrdl $7,%edx,%edx
2225
vaesenc %xmm14,%xmm12,%xmm12
2226
vmovups 48(%r15),%xmm15
2227
movl %ecx,%esi
2228
vpslld $2,%xmm1,%xmm1
2229
xorl %ebp,%edi
2230
shldl $5,%ecx,%ecx
2231
addl %edi,%ebx
2232
xorl %edx,%esi
2233
xorl %ebp,%edx
2234
addl %ecx,%ebx
2235
addl 24(%rsp),%eax
2236
andl %edx,%esi
2237
vpor %xmm8,%xmm1,%xmm1
2238
xorl %ebp,%edx
2239
shrdl $7,%ecx,%ecx
2240
movl %ebx,%edi
2241
xorl %edx,%esi
2242
shldl $5,%ebx,%ebx
2243
addl %esi,%eax
2244
xorl %ecx,%edi
2245
xorl %edx,%ecx
2246
addl %ebx,%eax
2247
addl 28(%rsp),%ebp
2248
cmpl $11,%r8d
2249
jb .Lvaesenclast8
2250
vaesenc %xmm15,%xmm12,%xmm12
2251
vmovups 64(%r15),%xmm14
2252
vaesenc %xmm14,%xmm12,%xmm12
2253
vmovups 80(%r15),%xmm15
2254
je .Lvaesenclast8
2255
vaesenc %xmm15,%xmm12,%xmm12
2256
vmovups 96(%r15),%xmm14
2257
vaesenc %xmm14,%xmm12,%xmm12
2258
vmovups 112(%r15),%xmm15
2259
.Lvaesenclast8:
2260
vaesenclast %xmm15,%xmm12,%xmm12
2261
vmovups -112(%r15),%xmm15
2262
vmovups 16-112(%r15),%xmm14
2263
andl %ecx,%edi
2264
xorl %edx,%ecx
2265
shrdl $7,%ebx,%ebx
2266
movl %eax,%esi
2267
xorl %ecx,%edi
2268
shldl $5,%eax,%eax
2269
addl %edi,%ebp
2270
xorl %ebx,%esi
2271
xorl %ecx,%ebx
2272
addl %eax,%ebp
2273
vpalignr $8,%xmm0,%xmm1,%xmm8
2274
vpxor %xmm6,%xmm2,%xmm2
2275
addl 32(%rsp),%edx
2276
andl %ebx,%esi
2277
xorl %ecx,%ebx
2278
shrdl $7,%eax,%eax
2279
vpxor %xmm3,%xmm2,%xmm2
2280
movl %ebp,%edi
2281
xorl %ebx,%esi
2282
vpaddd %xmm1,%xmm10,%xmm9
2283
shldl $5,%ebp,%ebp
2284
addl %esi,%edx
2285
vmovdqu 48(%r12),%xmm13
2286
vpxor %xmm15,%xmm13,%xmm13
2287
vmovups %xmm12,32(%r13,%r12,1)
2288
vpxor %xmm13,%xmm12,%xmm12
2289
vaesenc %xmm14,%xmm12,%xmm12
2290
vmovups -80(%r15),%xmm15
2291
vpxor %xmm8,%xmm2,%xmm2
2292
xorl %eax,%edi
2293
xorl %ebx,%eax
2294
addl %ebp,%edx
2295
addl 36(%rsp),%ecx
2296
vpsrld $30,%xmm2,%xmm8
2297
vmovdqa %xmm9,16(%rsp)
2298
andl %eax,%edi
2299
xorl %ebx,%eax
2300
shrdl $7,%ebp,%ebp
2301
movl %edx,%esi
2302
vpslld $2,%xmm2,%xmm2
2303
xorl %eax,%edi
2304
shldl $5,%edx,%edx
2305
addl %edi,%ecx
2306
xorl %ebp,%esi
2307
xorl %eax,%ebp
2308
addl %edx,%ecx
2309
addl 40(%rsp),%ebx
2310
andl %ebp,%esi
2311
vpor %xmm8,%xmm2,%xmm2
2312
xorl %eax,%ebp
2313
shrdl $7,%edx,%edx
2314
vaesenc %xmm15,%xmm12,%xmm12
2315
vmovups -64(%r15),%xmm14
2316
movl %ecx,%edi
2317
xorl %ebp,%esi
2318
shldl $5,%ecx,%ecx
2319
addl %esi,%ebx
2320
xorl %edx,%edi
2321
xorl %ebp,%edx
2322
addl %ecx,%ebx
2323
addl 44(%rsp),%eax
2324
andl %edx,%edi
2325
xorl %ebp,%edx
2326
shrdl $7,%ecx,%ecx
2327
movl %ebx,%esi
2328
xorl %edx,%edi
2329
shldl $5,%ebx,%ebx
2330
addl %edi,%eax
2331
xorl %edx,%esi
2332
addl %ebx,%eax
2333
vpalignr $8,%xmm1,%xmm2,%xmm8
2334
vpxor %xmm7,%xmm3,%xmm3
2335
addl 48(%rsp),%ebp
2336
vaesenc %xmm14,%xmm12,%xmm12
2337
vmovups -48(%r15),%xmm15
2338
xorl %ecx,%esi
2339
movl %eax,%edi
2340
shldl $5,%eax,%eax
2341
vpxor %xmm4,%xmm3,%xmm3
2342
addl %esi,%ebp
2343
xorl %ecx,%edi
2344
vpaddd %xmm2,%xmm10,%xmm9
2345
shrdl $7,%ebx,%ebx
2346
addl %eax,%ebp
2347
vpxor %xmm8,%xmm3,%xmm3
2348
addl 52(%rsp),%edx
2349
xorl %ebx,%edi
2350
movl %ebp,%esi
2351
shldl $5,%ebp,%ebp
2352
vpsrld $30,%xmm3,%xmm8
2353
vmovdqa %xmm9,32(%rsp)
2354
addl %edi,%edx
2355
xorl %ebx,%esi
2356
shrdl $7,%eax,%eax
2357
addl %ebp,%edx
2358
vpslld $2,%xmm3,%xmm3
2359
addl 56(%rsp),%ecx
2360
xorl %eax,%esi
2361
movl %edx,%edi
2362
shldl $5,%edx,%edx
2363
addl %esi,%ecx
2364
vaesenc %xmm15,%xmm12,%xmm12
2365
vmovups -32(%r15),%xmm14
2366
xorl %eax,%edi
2367
shrdl $7,%ebp,%ebp
2368
addl %edx,%ecx
2369
vpor %xmm8,%xmm3,%xmm3
2370
addl 60(%rsp),%ebx
2371
xorl %ebp,%edi
2372
movl %ecx,%esi
2373
shldl $5,%ecx,%ecx
2374
addl %edi,%ebx
2375
xorl %ebp,%esi
2376
shrdl $7,%edx,%edx
2377
addl %ecx,%ebx
2378
addl 0(%rsp),%eax
2379
vpaddd %xmm3,%xmm10,%xmm9
2380
xorl %edx,%esi
2381
movl %ebx,%edi
2382
shldl $5,%ebx,%ebx
2383
addl %esi,%eax
2384
vmovdqa %xmm9,48(%rsp)
2385
xorl %edx,%edi
2386
shrdl $7,%ecx,%ecx
2387
addl %ebx,%eax
2388
addl 4(%rsp),%ebp
2389
vaesenc %xmm14,%xmm12,%xmm12
2390
vmovups -16(%r15),%xmm15
2391
xorl %ecx,%edi
2392
movl %eax,%esi
2393
shldl $5,%eax,%eax
2394
addl %edi,%ebp
2395
xorl %ecx,%esi
2396
shrdl $7,%ebx,%ebx
2397
addl %eax,%ebp
2398
addl 8(%rsp),%edx
2399
xorl %ebx,%esi
2400
movl %ebp,%edi
2401
shldl $5,%ebp,%ebp
2402
addl %esi,%edx
2403
xorl %ebx,%edi
2404
shrdl $7,%eax,%eax
2405
addl %ebp,%edx
2406
addl 12(%rsp),%ecx
2407
xorl %eax,%edi
2408
movl %edx,%esi
2409
shldl $5,%edx,%edx
2410
addl %edi,%ecx
2411
vaesenc %xmm15,%xmm12,%xmm12
2412
vmovups 0(%r15),%xmm14
2413
xorl %eax,%esi
2414
shrdl $7,%ebp,%ebp
2415
addl %edx,%ecx
2416
cmpq %r14,%r10
2417
je .Ldone_avx
2418
vmovdqa 64(%r11),%xmm9
2419
vmovdqa 0(%r11),%xmm10
2420
vmovdqu 0(%r10),%xmm0
2421
vmovdqu 16(%r10),%xmm1
2422
vmovdqu 32(%r10),%xmm2
2423
vmovdqu 48(%r10),%xmm3
2424
vpshufb %xmm9,%xmm0,%xmm0
2425
addq $64,%r10
2426
addl 16(%rsp),%ebx
2427
xorl %ebp,%esi
2428
vpshufb %xmm9,%xmm1,%xmm1
2429
movl %ecx,%edi
2430
shldl $5,%ecx,%ecx
2431
vpaddd %xmm10,%xmm0,%xmm8
2432
addl %esi,%ebx
2433
xorl %ebp,%edi
2434
shrdl $7,%edx,%edx
2435
addl %ecx,%ebx
2436
vmovdqa %xmm8,0(%rsp)
2437
addl 20(%rsp),%eax
2438
xorl %edx,%edi
2439
movl %ebx,%esi
2440
shldl $5,%ebx,%ebx
2441
addl %edi,%eax
2442
xorl %edx,%esi
2443
shrdl $7,%ecx,%ecx
2444
addl %ebx,%eax
2445
addl 24(%rsp),%ebp
2446
vaesenc %xmm14,%xmm12,%xmm12
2447
vmovups 16(%r15),%xmm15
2448
xorl %ecx,%esi
2449
movl %eax,%edi
2450
shldl $5,%eax,%eax
2451
addl %esi,%ebp
2452
xorl %ecx,%edi
2453
shrdl $7,%ebx,%ebx
2454
addl %eax,%ebp
2455
addl 28(%rsp),%edx
2456
xorl %ebx,%edi
2457
movl %ebp,%esi
2458
shldl $5,%ebp,%ebp
2459
addl %edi,%edx
2460
xorl %ebx,%esi
2461
shrdl $7,%eax,%eax
2462
addl %ebp,%edx
2463
addl 32(%rsp),%ecx
2464
xorl %eax,%esi
2465
vpshufb %xmm9,%xmm2,%xmm2
2466
movl %edx,%edi
2467
shldl $5,%edx,%edx
2468
vpaddd %xmm10,%xmm1,%xmm8
2469
addl %esi,%ecx
2470
vaesenc %xmm15,%xmm12,%xmm12
2471
vmovups 32(%r15),%xmm14
2472
xorl %eax,%edi
2473
shrdl $7,%ebp,%ebp
2474
addl %edx,%ecx
2475
vmovdqa %xmm8,16(%rsp)
2476
addl 36(%rsp),%ebx
2477
xorl %ebp,%edi
2478
movl %ecx,%esi
2479
shldl $5,%ecx,%ecx
2480
addl %edi,%ebx
2481
xorl %ebp,%esi
2482
shrdl $7,%edx,%edx
2483
addl %ecx,%ebx
2484
addl 40(%rsp),%eax
2485
xorl %edx,%esi
2486
movl %ebx,%edi
2487
shldl $5,%ebx,%ebx
2488
addl %esi,%eax
2489
xorl %edx,%edi
2490
shrdl $7,%ecx,%ecx
2491
addl %ebx,%eax
2492
addl 44(%rsp),%ebp
2493
vaesenc %xmm14,%xmm12,%xmm12
2494
vmovups 48(%r15),%xmm15
2495
xorl %ecx,%edi
2496
movl %eax,%esi
2497
shldl $5,%eax,%eax
2498
addl %edi,%ebp
2499
xorl %ecx,%esi
2500
shrdl $7,%ebx,%ebx
2501
addl %eax,%ebp
2502
addl 48(%rsp),%edx
2503
xorl %ebx,%esi
2504
vpshufb %xmm9,%xmm3,%xmm3
2505
movl %ebp,%edi
2506
shldl $5,%ebp,%ebp
2507
vpaddd %xmm10,%xmm2,%xmm8
2508
addl %esi,%edx
2509
xorl %ebx,%edi
2510
shrdl $7,%eax,%eax
2511
addl %ebp,%edx
2512
vmovdqa %xmm8,32(%rsp)
2513
addl 52(%rsp),%ecx
2514
xorl %eax,%edi
2515
movl %edx,%esi
2516
shldl $5,%edx,%edx
2517
addl %edi,%ecx
2518
cmpl $11,%r8d
2519
jb .Lvaesenclast9
2520
vaesenc %xmm15,%xmm12,%xmm12
2521
vmovups 64(%r15),%xmm14
2522
vaesenc %xmm14,%xmm12,%xmm12
2523
vmovups 80(%r15),%xmm15
2524
je .Lvaesenclast9
2525
vaesenc %xmm15,%xmm12,%xmm12
2526
vmovups 96(%r15),%xmm14
2527
vaesenc %xmm14,%xmm12,%xmm12
2528
vmovups 112(%r15),%xmm15
2529
.Lvaesenclast9:
2530
vaesenclast %xmm15,%xmm12,%xmm12
2531
vmovups -112(%r15),%xmm15
2532
vmovups 16-112(%r15),%xmm14
2533
xorl %eax,%esi
2534
shrdl $7,%ebp,%ebp
2535
addl %edx,%ecx
2536
addl 56(%rsp),%ebx
2537
xorl %ebp,%esi
2538
movl %ecx,%edi
2539
shldl $5,%ecx,%ecx
2540
addl %esi,%ebx
2541
xorl %ebp,%edi
2542
shrdl $7,%edx,%edx
2543
addl %ecx,%ebx
2544
addl 60(%rsp),%eax
2545
xorl %edx,%edi
2546
movl %ebx,%esi
2547
shldl $5,%ebx,%ebx
2548
addl %edi,%eax
2549
shrdl $7,%ecx,%ecx
2550
addl %ebx,%eax
2551
vmovups %xmm12,48(%r13,%r12,1)
2552
leaq 64(%r12),%r12
2553
2554
addl 0(%r9),%eax
2555
addl 4(%r9),%esi
2556
addl 8(%r9),%ecx
2557
addl 12(%r9),%edx
2558
movl %eax,0(%r9)
2559
addl 16(%r9),%ebp
2560
movl %esi,4(%r9)
2561
movl %esi,%ebx
2562
movl %ecx,8(%r9)
2563
movl %ecx,%edi
2564
movl %edx,12(%r9)
2565
xorl %edx,%edi
2566
movl %ebp,16(%r9)
2567
andl %edi,%esi
2568
jmp .Loop_avx
2569
2570
.Ldone_avx:
2571
addl 16(%rsp),%ebx
2572
xorl %ebp,%esi
2573
movl %ecx,%edi
2574
shldl $5,%ecx,%ecx
2575
addl %esi,%ebx
2576
xorl %ebp,%edi
2577
shrdl $7,%edx,%edx
2578
addl %ecx,%ebx
2579
addl 20(%rsp),%eax
2580
xorl %edx,%edi
2581
movl %ebx,%esi
2582
shldl $5,%ebx,%ebx
2583
addl %edi,%eax
2584
xorl %edx,%esi
2585
shrdl $7,%ecx,%ecx
2586
addl %ebx,%eax
2587
addl 24(%rsp),%ebp
2588
vaesenc %xmm14,%xmm12,%xmm12
2589
vmovups 16(%r15),%xmm15
2590
xorl %ecx,%esi
2591
movl %eax,%edi
2592
shldl $5,%eax,%eax
2593
addl %esi,%ebp
2594
xorl %ecx,%edi
2595
shrdl $7,%ebx,%ebx
2596
addl %eax,%ebp
2597
addl 28(%rsp),%edx
2598
xorl %ebx,%edi
2599
movl %ebp,%esi
2600
shldl $5,%ebp,%ebp
2601
addl %edi,%edx
2602
xorl %ebx,%esi
2603
shrdl $7,%eax,%eax
2604
addl %ebp,%edx
2605
addl 32(%rsp),%ecx
2606
xorl %eax,%esi
2607
movl %edx,%edi
2608
shldl $5,%edx,%edx
2609
addl %esi,%ecx
2610
vaesenc %xmm15,%xmm12,%xmm12
2611
vmovups 32(%r15),%xmm14
2612
xorl %eax,%edi
2613
shrdl $7,%ebp,%ebp
2614
addl %edx,%ecx
2615
addl 36(%rsp),%ebx
2616
xorl %ebp,%edi
2617
movl %ecx,%esi
2618
shldl $5,%ecx,%ecx
2619
addl %edi,%ebx
2620
xorl %ebp,%esi
2621
shrdl $7,%edx,%edx
2622
addl %ecx,%ebx
2623
addl 40(%rsp),%eax
2624
xorl %edx,%esi
2625
movl %ebx,%edi
2626
shldl $5,%ebx,%ebx
2627
addl %esi,%eax
2628
xorl %edx,%edi
2629
shrdl $7,%ecx,%ecx
2630
addl %ebx,%eax
2631
addl 44(%rsp),%ebp
2632
vaesenc %xmm14,%xmm12,%xmm12
2633
vmovups 48(%r15),%xmm15
2634
xorl %ecx,%edi
2635
movl %eax,%esi
2636
shldl $5,%eax,%eax
2637
addl %edi,%ebp
2638
xorl %ecx,%esi
2639
shrdl $7,%ebx,%ebx
2640
addl %eax,%ebp
2641
addl 48(%rsp),%edx
2642
xorl %ebx,%esi
2643
movl %ebp,%edi
2644
shldl $5,%ebp,%ebp
2645
addl %esi,%edx
2646
xorl %ebx,%edi
2647
shrdl $7,%eax,%eax
2648
addl %ebp,%edx
2649
addl 52(%rsp),%ecx
2650
xorl %eax,%edi
2651
movl %edx,%esi
2652
shldl $5,%edx,%edx
2653
addl %edi,%ecx
2654
cmpl $11,%r8d
2655
jb .Lvaesenclast10
2656
vaesenc %xmm15,%xmm12,%xmm12
2657
vmovups 64(%r15),%xmm14
2658
vaesenc %xmm14,%xmm12,%xmm12
2659
vmovups 80(%r15),%xmm15
2660
je .Lvaesenclast10
2661
vaesenc %xmm15,%xmm12,%xmm12
2662
vmovups 96(%r15),%xmm14
2663
vaesenc %xmm14,%xmm12,%xmm12
2664
vmovups 112(%r15),%xmm15
2665
.Lvaesenclast10:
2666
vaesenclast %xmm15,%xmm12,%xmm12
2667
vmovups -112(%r15),%xmm15
2668
vmovups 16-112(%r15),%xmm14
2669
xorl %eax,%esi
2670
shrdl $7,%ebp,%ebp
2671
addl %edx,%ecx
2672
addl 56(%rsp),%ebx
2673
xorl %ebp,%esi
2674
movl %ecx,%edi
2675
shldl $5,%ecx,%ecx
2676
addl %esi,%ebx
2677
xorl %ebp,%edi
2678
shrdl $7,%edx,%edx
2679
addl %ecx,%ebx
2680
addl 60(%rsp),%eax
2681
xorl %edx,%edi
2682
movl %ebx,%esi
2683
shldl $5,%ebx,%ebx
2684
addl %edi,%eax
2685
shrdl $7,%ecx,%ecx
2686
addl %ebx,%eax
2687
vmovups %xmm12,48(%r13,%r12,1)
2688
movq 88(%rsp),%r8
2689
2690
addl 0(%r9),%eax
2691
addl 4(%r9),%esi
2692
addl 8(%r9),%ecx
2693
movl %eax,0(%r9)
2694
addl 12(%r9),%edx
2695
movl %esi,4(%r9)
2696
addl 16(%r9),%ebp
2697
movl %ecx,8(%r9)
2698
movl %edx,12(%r9)
2699
movl %ebp,16(%r9)
2700
vmovups %xmm12,(%r8)
2701
vzeroall
2702
leaq 104(%rsp),%rsi
2703
.cfi_def_cfa %rsi,56
2704
movq 0(%rsi),%r15
2705
.cfi_restore %r15
2706
movq 8(%rsi),%r14
2707
.cfi_restore %r14
2708
movq 16(%rsi),%r13
2709
.cfi_restore %r13
2710
movq 24(%rsi),%r12
2711
.cfi_restore %r12
2712
movq 32(%rsi),%rbp
2713
.cfi_restore %rbp
2714
movq 40(%rsi),%rbx
2715
.cfi_restore %rbx
2716
leaq 48(%rsi),%rsp
2717
.cfi_def_cfa %rsp,8
2718
.Lepilogue_avx:
2719
.byte 0xf3,0xc3
2720
.cfi_endproc
2721
.size aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx
2722
.section .rodata
2723
.align 64
2724
K_XX_XX:
2725
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2726
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2727
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2728
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2729
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2730
.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
2731
2732
.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,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
2733
.align 64
2734
.previous
2735
.type aesni_cbc_sha1_enc_shaext,@function
2736
.align 32
2737
aesni_cbc_sha1_enc_shaext:
2738
.cfi_startproc
2739
movq 8(%rsp),%r10
2740
movdqu (%r9),%xmm8
2741
movd 16(%r9),%xmm9
2742
movdqa K_XX_XX+80(%rip),%xmm7
2743
2744
movl 240(%rcx),%r11d
2745
subq %rdi,%rsi
2746
movups (%rcx),%xmm15
2747
movups (%r8),%xmm2
2748
movups 16(%rcx),%xmm0
2749
leaq 112(%rcx),%rcx
2750
2751
pshufd $27,%xmm8,%xmm8
2752
pshufd $27,%xmm9,%xmm9
2753
jmp .Loop_shaext
2754
2755
.align 16
2756
.Loop_shaext:
2757
movups 0(%rdi),%xmm14
2758
xorps %xmm15,%xmm14
2759
xorps %xmm14,%xmm2
2760
movups -80(%rcx),%xmm1
2761
.byte 102,15,56,220,208
2762
movdqu (%r10),%xmm3
2763
movdqa %xmm9,%xmm12
2764
.byte 102,15,56,0,223
2765
movdqu 16(%r10),%xmm4
2766
movdqa %xmm8,%xmm11
2767
movups -64(%rcx),%xmm0
2768
.byte 102,15,56,220,209
2769
.byte 102,15,56,0,231
2770
2771
paddd %xmm3,%xmm9
2772
movdqu 32(%r10),%xmm5
2773
leaq 64(%r10),%r10
2774
pxor %xmm12,%xmm3
2775
movups -48(%rcx),%xmm1
2776
.byte 102,15,56,220,208
2777
pxor %xmm12,%xmm3
2778
movdqa %xmm8,%xmm10
2779
.byte 102,15,56,0,239
2780
.byte 69,15,58,204,193,0
2781
.byte 68,15,56,200,212
2782
movups -32(%rcx),%xmm0
2783
.byte 102,15,56,220,209
2784
.byte 15,56,201,220
2785
movdqu -16(%r10),%xmm6
2786
movdqa %xmm8,%xmm9
2787
.byte 102,15,56,0,247
2788
movups -16(%rcx),%xmm1
2789
.byte 102,15,56,220,208
2790
.byte 69,15,58,204,194,0
2791
.byte 68,15,56,200,205
2792
pxor %xmm5,%xmm3
2793
.byte 15,56,201,229
2794
movups 0(%rcx),%xmm0
2795
.byte 102,15,56,220,209
2796
movdqa %xmm8,%xmm10
2797
.byte 69,15,58,204,193,0
2798
.byte 68,15,56,200,214
2799
movups 16(%rcx),%xmm1
2800
.byte 102,15,56,220,208
2801
.byte 15,56,202,222
2802
pxor %xmm6,%xmm4
2803
.byte 15,56,201,238
2804
movups 32(%rcx),%xmm0
2805
.byte 102,15,56,220,209
2806
movdqa %xmm8,%xmm9
2807
.byte 69,15,58,204,194,0
2808
.byte 68,15,56,200,203
2809
movups 48(%rcx),%xmm1
2810
.byte 102,15,56,220,208
2811
.byte 15,56,202,227
2812
pxor %xmm3,%xmm5
2813
.byte 15,56,201,243
2814
cmpl $11,%r11d
2815
jb .Laesenclast11
2816
movups 64(%rcx),%xmm0
2817
.byte 102,15,56,220,209
2818
movups 80(%rcx),%xmm1
2819
.byte 102,15,56,220,208
2820
je .Laesenclast11
2821
movups 96(%rcx),%xmm0
2822
.byte 102,15,56,220,209
2823
movups 112(%rcx),%xmm1
2824
.byte 102,15,56,220,208
2825
.Laesenclast11:
2826
.byte 102,15,56,221,209
2827
movups 16-112(%rcx),%xmm0
2828
movdqa %xmm8,%xmm10
2829
.byte 69,15,58,204,193,0
2830
.byte 68,15,56,200,212
2831
movups 16(%rdi),%xmm14
2832
xorps %xmm15,%xmm14
2833
movups %xmm2,0(%rsi,%rdi,1)
2834
xorps %xmm14,%xmm2
2835
movups -80(%rcx),%xmm1
2836
.byte 102,15,56,220,208
2837
.byte 15,56,202,236
2838
pxor %xmm4,%xmm6
2839
.byte 15,56,201,220
2840
movups -64(%rcx),%xmm0
2841
.byte 102,15,56,220,209
2842
movdqa %xmm8,%xmm9
2843
.byte 69,15,58,204,194,1
2844
.byte 68,15,56,200,205
2845
movups -48(%rcx),%xmm1
2846
.byte 102,15,56,220,208
2847
.byte 15,56,202,245
2848
pxor %xmm5,%xmm3
2849
.byte 15,56,201,229
2850
movups -32(%rcx),%xmm0
2851
.byte 102,15,56,220,209
2852
movdqa %xmm8,%xmm10
2853
.byte 69,15,58,204,193,1
2854
.byte 68,15,56,200,214
2855
movups -16(%rcx),%xmm1
2856
.byte 102,15,56,220,208
2857
.byte 15,56,202,222
2858
pxor %xmm6,%xmm4
2859
.byte 15,56,201,238
2860
movups 0(%rcx),%xmm0
2861
.byte 102,15,56,220,209
2862
movdqa %xmm8,%xmm9
2863
.byte 69,15,58,204,194,1
2864
.byte 68,15,56,200,203
2865
movups 16(%rcx),%xmm1
2866
.byte 102,15,56,220,208
2867
.byte 15,56,202,227
2868
pxor %xmm3,%xmm5
2869
.byte 15,56,201,243
2870
movups 32(%rcx),%xmm0
2871
.byte 102,15,56,220,209
2872
movdqa %xmm8,%xmm10
2873
.byte 69,15,58,204,193,1
2874
.byte 68,15,56,200,212
2875
movups 48(%rcx),%xmm1
2876
.byte 102,15,56,220,208
2877
.byte 15,56,202,236
2878
pxor %xmm4,%xmm6
2879
.byte 15,56,201,220
2880
cmpl $11,%r11d
2881
jb .Laesenclast12
2882
movups 64(%rcx),%xmm0
2883
.byte 102,15,56,220,209
2884
movups 80(%rcx),%xmm1
2885
.byte 102,15,56,220,208
2886
je .Laesenclast12
2887
movups 96(%rcx),%xmm0
2888
.byte 102,15,56,220,209
2889
movups 112(%rcx),%xmm1
2890
.byte 102,15,56,220,208
2891
.Laesenclast12:
2892
.byte 102,15,56,221,209
2893
movups 16-112(%rcx),%xmm0
2894
movdqa %xmm8,%xmm9
2895
.byte 69,15,58,204,194,1
2896
.byte 68,15,56,200,205
2897
movups 32(%rdi),%xmm14
2898
xorps %xmm15,%xmm14
2899
movups %xmm2,16(%rsi,%rdi,1)
2900
xorps %xmm14,%xmm2
2901
movups -80(%rcx),%xmm1
2902
.byte 102,15,56,220,208
2903
.byte 15,56,202,245
2904
pxor %xmm5,%xmm3
2905
.byte 15,56,201,229
2906
movups -64(%rcx),%xmm0
2907
.byte 102,15,56,220,209
2908
movdqa %xmm8,%xmm10
2909
.byte 69,15,58,204,193,2
2910
.byte 68,15,56,200,214
2911
movups -48(%rcx),%xmm1
2912
.byte 102,15,56,220,208
2913
.byte 15,56,202,222
2914
pxor %xmm6,%xmm4
2915
.byte 15,56,201,238
2916
movups -32(%rcx),%xmm0
2917
.byte 102,15,56,220,209
2918
movdqa %xmm8,%xmm9
2919
.byte 69,15,58,204,194,2
2920
.byte 68,15,56,200,203
2921
movups -16(%rcx),%xmm1
2922
.byte 102,15,56,220,208
2923
.byte 15,56,202,227
2924
pxor %xmm3,%xmm5
2925
.byte 15,56,201,243
2926
movups 0(%rcx),%xmm0
2927
.byte 102,15,56,220,209
2928
movdqa %xmm8,%xmm10
2929
.byte 69,15,58,204,193,2
2930
.byte 68,15,56,200,212
2931
movups 16(%rcx),%xmm1
2932
.byte 102,15,56,220,208
2933
.byte 15,56,202,236
2934
pxor %xmm4,%xmm6
2935
.byte 15,56,201,220
2936
movups 32(%rcx),%xmm0
2937
.byte 102,15,56,220,209
2938
movdqa %xmm8,%xmm9
2939
.byte 69,15,58,204,194,2
2940
.byte 68,15,56,200,205
2941
movups 48(%rcx),%xmm1
2942
.byte 102,15,56,220,208
2943
.byte 15,56,202,245
2944
pxor %xmm5,%xmm3
2945
.byte 15,56,201,229
2946
cmpl $11,%r11d
2947
jb .Laesenclast13
2948
movups 64(%rcx),%xmm0
2949
.byte 102,15,56,220,209
2950
movups 80(%rcx),%xmm1
2951
.byte 102,15,56,220,208
2952
je .Laesenclast13
2953
movups 96(%rcx),%xmm0
2954
.byte 102,15,56,220,209
2955
movups 112(%rcx),%xmm1
2956
.byte 102,15,56,220,208
2957
.Laesenclast13:
2958
.byte 102,15,56,221,209
2959
movups 16-112(%rcx),%xmm0
2960
movdqa %xmm8,%xmm10
2961
.byte 69,15,58,204,193,2
2962
.byte 68,15,56,200,214
2963
movups 48(%rdi),%xmm14
2964
xorps %xmm15,%xmm14
2965
movups %xmm2,32(%rsi,%rdi,1)
2966
xorps %xmm14,%xmm2
2967
movups -80(%rcx),%xmm1
2968
.byte 102,15,56,220,208
2969
.byte 15,56,202,222
2970
pxor %xmm6,%xmm4
2971
.byte 15,56,201,238
2972
movups -64(%rcx),%xmm0
2973
.byte 102,15,56,220,209
2974
movdqa %xmm8,%xmm9
2975
.byte 69,15,58,204,194,3
2976
.byte 68,15,56,200,203
2977
movups -48(%rcx),%xmm1
2978
.byte 102,15,56,220,208
2979
.byte 15,56,202,227
2980
pxor %xmm3,%xmm5
2981
.byte 15,56,201,243
2982
movups -32(%rcx),%xmm0
2983
.byte 102,15,56,220,209
2984
movdqa %xmm8,%xmm10
2985
.byte 69,15,58,204,193,3
2986
.byte 68,15,56,200,212
2987
.byte 15,56,202,236
2988
pxor %xmm4,%xmm6
2989
movups -16(%rcx),%xmm1
2990
.byte 102,15,56,220,208
2991
movdqa %xmm8,%xmm9
2992
.byte 69,15,58,204,194,3
2993
.byte 68,15,56,200,205
2994
.byte 15,56,202,245
2995
movups 0(%rcx),%xmm0
2996
.byte 102,15,56,220,209
2997
movdqa %xmm12,%xmm5
2998
movdqa %xmm8,%xmm10
2999
.byte 69,15,58,204,193,3
3000
.byte 68,15,56,200,214
3001
movups 16(%rcx),%xmm1
3002
.byte 102,15,56,220,208
3003
movdqa %xmm8,%xmm9
3004
.byte 69,15,58,204,194,3
3005
.byte 68,15,56,200,205
3006
movups 32(%rcx),%xmm0
3007
.byte 102,15,56,220,209
3008
movups 48(%rcx),%xmm1
3009
.byte 102,15,56,220,208
3010
cmpl $11,%r11d
3011
jb .Laesenclast14
3012
movups 64(%rcx),%xmm0
3013
.byte 102,15,56,220,209
3014
movups 80(%rcx),%xmm1
3015
.byte 102,15,56,220,208
3016
je .Laesenclast14
3017
movups 96(%rcx),%xmm0
3018
.byte 102,15,56,220,209
3019
movups 112(%rcx),%xmm1
3020
.byte 102,15,56,220,208
3021
.Laesenclast14:
3022
.byte 102,15,56,221,209
3023
movups 16-112(%rcx),%xmm0
3024
decq %rdx
3025
3026
paddd %xmm11,%xmm8
3027
movups %xmm2,48(%rsi,%rdi,1)
3028
leaq 64(%rdi),%rdi
3029
jnz .Loop_shaext
3030
3031
pshufd $27,%xmm8,%xmm8
3032
pshufd $27,%xmm9,%xmm9
3033
movups %xmm2,(%r8)
3034
movdqu %xmm8,(%r9)
3035
movd %xmm9,16(%r9)
3036
.byte 0xf3,0xc3
3037
.cfi_endproc
3038
.size aesni_cbc_sha1_enc_shaext,.-aesni_cbc_sha1_enc_shaext
3039
.section ".note.gnu.property", "a"
3040
.p2align 3
3041
.long 1f - 0f
3042
.long 4f - 1f
3043
.long 5
3044
0:
3045
# "GNU" encoded with .byte, since .asciz isn't supported
3046
# on Solaris.
3047
.byte 0x47
3048
.byte 0x4e
3049
.byte 0x55
3050
.byte 0
3051
1:
3052
.p2align 3
3053
.long 0xc0000002
3054
.long 3f - 2f
3055
2:
3056
.long 3
3057
3:
3058
.p2align 3
3059
4:
3060
3061