]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - secure/lib/libcrypto/amd64/sha1-x86_64.S
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / secure / lib / libcrypto / amd64 / sha1-x86_64.S
1         # $FreeBSD$
2 .text   
3
4
5 .globl  sha1_block_data_order
6 .type   sha1_block_data_order,@function
7 .align  16
8 sha1_block_data_order:
9         movl    OPENSSL_ia32cap_P+0(%rip),%r9d
10         movl    OPENSSL_ia32cap_P+4(%rip),%r8d
11         testl   $512,%r8d
12         jz      .Lialu
13         jmp     _ssse3_shortcut
14
15 .align  16
16 .Lialu:
17         pushq   %rbx
18         pushq   %rbp
19         pushq   %r12
20         pushq   %r13
21         movq    %rsp,%r11
22         movq    %rdi,%r8
23         subq    $72,%rsp
24         movq    %rsi,%r9
25         andq    $-64,%rsp
26         movq    %rdx,%r10
27         movq    %r11,64(%rsp)
28 .Lprologue:
29
30         movl    0(%r8),%esi
31         movl    4(%r8),%edi
32         movl    8(%r8),%r11d
33         movl    12(%r8),%r12d
34         movl    16(%r8),%r13d
35         jmp     .Lloop
36
37 .align  16
38 .Lloop:
39         movl    0(%r9),%edx
40         bswapl  %edx
41         movl    %edx,0(%rsp)
42         movl    %r11d,%eax
43         movl    4(%r9),%ebp
44         movl    %esi,%ecx
45         xorl    %r12d,%eax
46         bswapl  %ebp
47         roll    $5,%ecx
48         leal    1518500249(%rdx,%r13,1),%r13d
49         andl    %edi,%eax
50         movl    %ebp,4(%rsp)
51         addl    %ecx,%r13d
52         xorl    %r12d,%eax
53         roll    $30,%edi
54         addl    %eax,%r13d
55         movl    %edi,%eax
56         movl    8(%r9),%edx
57         movl    %r13d,%ecx
58         xorl    %r11d,%eax
59         bswapl  %edx
60         roll    $5,%ecx
61         leal    1518500249(%rbp,%r12,1),%r12d
62         andl    %esi,%eax
63         movl    %edx,8(%rsp)
64         addl    %ecx,%r12d
65         xorl    %r11d,%eax
66         roll    $30,%esi
67         addl    %eax,%r12d
68         movl    %esi,%eax
69         movl    12(%r9),%ebp
70         movl    %r12d,%ecx
71         xorl    %edi,%eax
72         bswapl  %ebp
73         roll    $5,%ecx
74         leal    1518500249(%rdx,%r11,1),%r11d
75         andl    %r13d,%eax
76         movl    %ebp,12(%rsp)
77         addl    %ecx,%r11d
78         xorl    %edi,%eax
79         roll    $30,%r13d
80         addl    %eax,%r11d
81         movl    %r13d,%eax
82         movl    16(%r9),%edx
83         movl    %r11d,%ecx
84         xorl    %esi,%eax
85         bswapl  %edx
86         roll    $5,%ecx
87         leal    1518500249(%rbp,%rdi,1),%edi
88         andl    %r12d,%eax
89         movl    %edx,16(%rsp)
90         addl    %ecx,%edi
91         xorl    %esi,%eax
92         roll    $30,%r12d
93         addl    %eax,%edi
94         movl    %r12d,%eax
95         movl    20(%r9),%ebp
96         movl    %edi,%ecx
97         xorl    %r13d,%eax
98         bswapl  %ebp
99         roll    $5,%ecx
100         leal    1518500249(%rdx,%rsi,1),%esi
101         andl    %r11d,%eax
102         movl    %ebp,20(%rsp)
103         addl    %ecx,%esi
104         xorl    %r13d,%eax
105         roll    $30,%r11d
106         addl    %eax,%esi
107         movl    %r11d,%eax
108         movl    24(%r9),%edx
109         movl    %esi,%ecx
110         xorl    %r12d,%eax
111         bswapl  %edx
112         roll    $5,%ecx
113         leal    1518500249(%rbp,%r13,1),%r13d
114         andl    %edi,%eax
115         movl    %edx,24(%rsp)
116         addl    %ecx,%r13d
117         xorl    %r12d,%eax
118         roll    $30,%edi
119         addl    %eax,%r13d
120         movl    %edi,%eax
121         movl    28(%r9),%ebp
122         movl    %r13d,%ecx
123         xorl    %r11d,%eax
124         bswapl  %ebp
125         roll    $5,%ecx
126         leal    1518500249(%rdx,%r12,1),%r12d
127         andl    %esi,%eax
128         movl    %ebp,28(%rsp)
129         addl    %ecx,%r12d
130         xorl    %r11d,%eax
131         roll    $30,%esi
132         addl    %eax,%r12d
133         movl    %esi,%eax
134         movl    32(%r9),%edx
135         movl    %r12d,%ecx
136         xorl    %edi,%eax
137         bswapl  %edx
138         roll    $5,%ecx
139         leal    1518500249(%rbp,%r11,1),%r11d
140         andl    %r13d,%eax
141         movl    %edx,32(%rsp)
142         addl    %ecx,%r11d
143         xorl    %edi,%eax
144         roll    $30,%r13d
145         addl    %eax,%r11d
146         movl    %r13d,%eax
147         movl    36(%r9),%ebp
148         movl    %r11d,%ecx
149         xorl    %esi,%eax
150         bswapl  %ebp
151         roll    $5,%ecx
152         leal    1518500249(%rdx,%rdi,1),%edi
153         andl    %r12d,%eax
154         movl    %ebp,36(%rsp)
155         addl    %ecx,%edi
156         xorl    %esi,%eax
157         roll    $30,%r12d
158         addl    %eax,%edi
159         movl    %r12d,%eax
160         movl    40(%r9),%edx
161         movl    %edi,%ecx
162         xorl    %r13d,%eax
163         bswapl  %edx
164         roll    $5,%ecx
165         leal    1518500249(%rbp,%rsi,1),%esi
166         andl    %r11d,%eax
167         movl    %edx,40(%rsp)
168         addl    %ecx,%esi
169         xorl    %r13d,%eax
170         roll    $30,%r11d
171         addl    %eax,%esi
172         movl    %r11d,%eax
173         movl    44(%r9),%ebp
174         movl    %esi,%ecx
175         xorl    %r12d,%eax
176         bswapl  %ebp
177         roll    $5,%ecx
178         leal    1518500249(%rdx,%r13,1),%r13d
179         andl    %edi,%eax
180         movl    %ebp,44(%rsp)
181         addl    %ecx,%r13d
182         xorl    %r12d,%eax
183         roll    $30,%edi
184         addl    %eax,%r13d
185         movl    %edi,%eax
186         movl    48(%r9),%edx
187         movl    %r13d,%ecx
188         xorl    %r11d,%eax
189         bswapl  %edx
190         roll    $5,%ecx
191         leal    1518500249(%rbp,%r12,1),%r12d
192         andl    %esi,%eax
193         movl    %edx,48(%rsp)
194         addl    %ecx,%r12d
195         xorl    %r11d,%eax
196         roll    $30,%esi
197         addl    %eax,%r12d
198         movl    %esi,%eax
199         movl    52(%r9),%ebp
200         movl    %r12d,%ecx
201         xorl    %edi,%eax
202         bswapl  %ebp
203         roll    $5,%ecx
204         leal    1518500249(%rdx,%r11,1),%r11d
205         andl    %r13d,%eax
206         movl    %ebp,52(%rsp)
207         addl    %ecx,%r11d
208         xorl    %edi,%eax
209         roll    $30,%r13d
210         addl    %eax,%r11d
211         movl    %r13d,%eax
212         movl    56(%r9),%edx
213         movl    %r11d,%ecx
214         xorl    %esi,%eax
215         bswapl  %edx
216         roll    $5,%ecx
217         leal    1518500249(%rbp,%rdi,1),%edi
218         andl    %r12d,%eax
219         movl    %edx,56(%rsp)
220         addl    %ecx,%edi
221         xorl    %esi,%eax
222         roll    $30,%r12d
223         addl    %eax,%edi
224         movl    %r12d,%eax
225         movl    60(%r9),%ebp
226         movl    %edi,%ecx
227         xorl    %r13d,%eax
228         bswapl  %ebp
229         roll    $5,%ecx
230         leal    1518500249(%rdx,%rsi,1),%esi
231         andl    %r11d,%eax
232         movl    %ebp,60(%rsp)
233         addl    %ecx,%esi
234         xorl    %r13d,%eax
235         roll    $30,%r11d
236         addl    %eax,%esi
237         movl    0(%rsp),%edx
238         movl    %r11d,%eax
239         movl    %esi,%ecx
240         xorl    8(%rsp),%edx
241         xorl    %r12d,%eax
242         roll    $5,%ecx
243         xorl    32(%rsp),%edx
244         andl    %edi,%eax
245         leal    1518500249(%rbp,%r13,1),%r13d
246         xorl    52(%rsp),%edx
247         xorl    %r12d,%eax
248         roll    $1,%edx
249         addl    %ecx,%r13d
250         roll    $30,%edi
251         movl    %edx,0(%rsp)
252         addl    %eax,%r13d
253         movl    4(%rsp),%ebp
254         movl    %edi,%eax
255         movl    %r13d,%ecx
256         xorl    12(%rsp),%ebp
257         xorl    %r11d,%eax
258         roll    $5,%ecx
259         xorl    36(%rsp),%ebp
260         andl    %esi,%eax
261         leal    1518500249(%rdx,%r12,1),%r12d
262         xorl    56(%rsp),%ebp
263         xorl    %r11d,%eax
264         roll    $1,%ebp
265         addl    %ecx,%r12d
266         roll    $30,%esi
267         movl    %ebp,4(%rsp)
268         addl    %eax,%r12d
269         movl    8(%rsp),%edx
270         movl    %esi,%eax
271         movl    %r12d,%ecx
272         xorl    16(%rsp),%edx
273         xorl    %edi,%eax
274         roll    $5,%ecx
275         xorl    40(%rsp),%edx
276         andl    %r13d,%eax
277         leal    1518500249(%rbp,%r11,1),%r11d
278         xorl    60(%rsp),%edx
279         xorl    %edi,%eax
280         roll    $1,%edx
281         addl    %ecx,%r11d
282         roll    $30,%r13d
283         movl    %edx,8(%rsp)
284         addl    %eax,%r11d
285         movl    12(%rsp),%ebp
286         movl    %r13d,%eax
287         movl    %r11d,%ecx
288         xorl    20(%rsp),%ebp
289         xorl    %esi,%eax
290         roll    $5,%ecx
291         xorl    44(%rsp),%ebp
292         andl    %r12d,%eax
293         leal    1518500249(%rdx,%rdi,1),%edi
294         xorl    0(%rsp),%ebp
295         xorl    %esi,%eax
296         roll    $1,%ebp
297         addl    %ecx,%edi
298         roll    $30,%r12d
299         movl    %ebp,12(%rsp)
300         addl    %eax,%edi
301         movl    16(%rsp),%edx
302         movl    %r12d,%eax
303         movl    %edi,%ecx
304         xorl    24(%rsp),%edx
305         xorl    %r13d,%eax
306         roll    $5,%ecx
307         xorl    48(%rsp),%edx
308         andl    %r11d,%eax
309         leal    1518500249(%rbp,%rsi,1),%esi
310         xorl    4(%rsp),%edx
311         xorl    %r13d,%eax
312         roll    $1,%edx
313         addl    %ecx,%esi
314         roll    $30,%r11d
315         movl    %edx,16(%rsp)
316         addl    %eax,%esi
317         movl    20(%rsp),%ebp
318         movl    %r11d,%eax
319         movl    %esi,%ecx
320         xorl    28(%rsp),%ebp
321         xorl    %edi,%eax
322         roll    $5,%ecx
323         leal    1859775393(%rdx,%r13,1),%r13d
324         xorl    52(%rsp),%ebp
325         xorl    %r12d,%eax
326         addl    %ecx,%r13d
327         xorl    8(%rsp),%ebp
328         roll    $30,%edi
329         addl    %eax,%r13d
330         roll    $1,%ebp
331         movl    %ebp,20(%rsp)
332         movl    24(%rsp),%edx
333         movl    %edi,%eax
334         movl    %r13d,%ecx
335         xorl    32(%rsp),%edx
336         xorl    %esi,%eax
337         roll    $5,%ecx
338         leal    1859775393(%rbp,%r12,1),%r12d
339         xorl    56(%rsp),%edx
340         xorl    %r11d,%eax
341         addl    %ecx,%r12d
342         xorl    12(%rsp),%edx
343         roll    $30,%esi
344         addl    %eax,%r12d
345         roll    $1,%edx
346         movl    %edx,24(%rsp)
347         movl    28(%rsp),%ebp
348         movl    %esi,%eax
349         movl    %r12d,%ecx
350         xorl    36(%rsp),%ebp
351         xorl    %r13d,%eax
352         roll    $5,%ecx
353         leal    1859775393(%rdx,%r11,1),%r11d
354         xorl    60(%rsp),%ebp
355         xorl    %edi,%eax
356         addl    %ecx,%r11d
357         xorl    16(%rsp),%ebp
358         roll    $30,%r13d
359         addl    %eax,%r11d
360         roll    $1,%ebp
361         movl    %ebp,28(%rsp)
362         movl    32(%rsp),%edx
363         movl    %r13d,%eax
364         movl    %r11d,%ecx
365         xorl    40(%rsp),%edx
366         xorl    %r12d,%eax
367         roll    $5,%ecx
368         leal    1859775393(%rbp,%rdi,1),%edi
369         xorl    0(%rsp),%edx
370         xorl    %esi,%eax
371         addl    %ecx,%edi
372         xorl    20(%rsp),%edx
373         roll    $30,%r12d
374         addl    %eax,%edi
375         roll    $1,%edx
376         movl    %edx,32(%rsp)
377         movl    36(%rsp),%ebp
378         movl    %r12d,%eax
379         movl    %edi,%ecx
380         xorl    44(%rsp),%ebp
381         xorl    %r11d,%eax
382         roll    $5,%ecx
383         leal    1859775393(%rdx,%rsi,1),%esi
384         xorl    4(%rsp),%ebp
385         xorl    %r13d,%eax
386         addl    %ecx,%esi
387         xorl    24(%rsp),%ebp
388         roll    $30,%r11d
389         addl    %eax,%esi
390         roll    $1,%ebp
391         movl    %ebp,36(%rsp)
392         movl    40(%rsp),%edx
393         movl    %r11d,%eax
394         movl    %esi,%ecx
395         xorl    48(%rsp),%edx
396         xorl    %edi,%eax
397         roll    $5,%ecx
398         leal    1859775393(%rbp,%r13,1),%r13d
399         xorl    8(%rsp),%edx
400         xorl    %r12d,%eax
401         addl    %ecx,%r13d
402         xorl    28(%rsp),%edx
403         roll    $30,%edi
404         addl    %eax,%r13d
405         roll    $1,%edx
406         movl    %edx,40(%rsp)
407         movl    44(%rsp),%ebp
408         movl    %edi,%eax
409         movl    %r13d,%ecx
410         xorl    52(%rsp),%ebp
411         xorl    %esi,%eax
412         roll    $5,%ecx
413         leal    1859775393(%rdx,%r12,1),%r12d
414         xorl    12(%rsp),%ebp
415         xorl    %r11d,%eax
416         addl    %ecx,%r12d
417         xorl    32(%rsp),%ebp
418         roll    $30,%esi
419         addl    %eax,%r12d
420         roll    $1,%ebp
421         movl    %ebp,44(%rsp)
422         movl    48(%rsp),%edx
423         movl    %esi,%eax
424         movl    %r12d,%ecx
425         xorl    56(%rsp),%edx
426         xorl    %r13d,%eax
427         roll    $5,%ecx
428         leal    1859775393(%rbp,%r11,1),%r11d
429         xorl    16(%rsp),%edx
430         xorl    %edi,%eax
431         addl    %ecx,%r11d
432         xorl    36(%rsp),%edx
433         roll    $30,%r13d
434         addl    %eax,%r11d
435         roll    $1,%edx
436         movl    %edx,48(%rsp)
437         movl    52(%rsp),%ebp
438         movl    %r13d,%eax
439         movl    %r11d,%ecx
440         xorl    60(%rsp),%ebp
441         xorl    %r12d,%eax
442         roll    $5,%ecx
443         leal    1859775393(%rdx,%rdi,1),%edi
444         xorl    20(%rsp),%ebp
445         xorl    %esi,%eax
446         addl    %ecx,%edi
447         xorl    40(%rsp),%ebp
448         roll    $30,%r12d
449         addl    %eax,%edi
450         roll    $1,%ebp
451         movl    %ebp,52(%rsp)
452         movl    56(%rsp),%edx
453         movl    %r12d,%eax
454         movl    %edi,%ecx
455         xorl    0(%rsp),%edx
456         xorl    %r11d,%eax
457         roll    $5,%ecx
458         leal    1859775393(%rbp,%rsi,1),%esi
459         xorl    24(%rsp),%edx
460         xorl    %r13d,%eax
461         addl    %ecx,%esi
462         xorl    44(%rsp),%edx
463         roll    $30,%r11d
464         addl    %eax,%esi
465         roll    $1,%edx
466         movl    %edx,56(%rsp)
467         movl    60(%rsp),%ebp
468         movl    %r11d,%eax
469         movl    %esi,%ecx
470         xorl    4(%rsp),%ebp
471         xorl    %edi,%eax
472         roll    $5,%ecx
473         leal    1859775393(%rdx,%r13,1),%r13d
474         xorl    28(%rsp),%ebp
475         xorl    %r12d,%eax
476         addl    %ecx,%r13d
477         xorl    48(%rsp),%ebp
478         roll    $30,%edi
479         addl    %eax,%r13d
480         roll    $1,%ebp
481         movl    %ebp,60(%rsp)
482         movl    0(%rsp),%edx
483         movl    %edi,%eax
484         movl    %r13d,%ecx
485         xorl    8(%rsp),%edx
486         xorl    %esi,%eax
487         roll    $5,%ecx
488         leal    1859775393(%rbp,%r12,1),%r12d
489         xorl    32(%rsp),%edx
490         xorl    %r11d,%eax
491         addl    %ecx,%r12d
492         xorl    52(%rsp),%edx
493         roll    $30,%esi
494         addl    %eax,%r12d
495         roll    $1,%edx
496         movl    %edx,0(%rsp)
497         movl    4(%rsp),%ebp
498         movl    %esi,%eax
499         movl    %r12d,%ecx
500         xorl    12(%rsp),%ebp
501         xorl    %r13d,%eax
502         roll    $5,%ecx
503         leal    1859775393(%rdx,%r11,1),%r11d
504         xorl    36(%rsp),%ebp
505         xorl    %edi,%eax
506         addl    %ecx,%r11d
507         xorl    56(%rsp),%ebp
508         roll    $30,%r13d
509         addl    %eax,%r11d
510         roll    $1,%ebp
511         movl    %ebp,4(%rsp)
512         movl    8(%rsp),%edx
513         movl    %r13d,%eax
514         movl    %r11d,%ecx
515         xorl    16(%rsp),%edx
516         xorl    %r12d,%eax
517         roll    $5,%ecx
518         leal    1859775393(%rbp,%rdi,1),%edi
519         xorl    40(%rsp),%edx
520         xorl    %esi,%eax
521         addl    %ecx,%edi
522         xorl    60(%rsp),%edx
523         roll    $30,%r12d
524         addl    %eax,%edi
525         roll    $1,%edx
526         movl    %edx,8(%rsp)
527         movl    12(%rsp),%ebp
528         movl    %r12d,%eax
529         movl    %edi,%ecx
530         xorl    20(%rsp),%ebp
531         xorl    %r11d,%eax
532         roll    $5,%ecx
533         leal    1859775393(%rdx,%rsi,1),%esi
534         xorl    44(%rsp),%ebp
535         xorl    %r13d,%eax
536         addl    %ecx,%esi
537         xorl    0(%rsp),%ebp
538         roll    $30,%r11d
539         addl    %eax,%esi
540         roll    $1,%ebp
541         movl    %ebp,12(%rsp)
542         movl    16(%rsp),%edx
543         movl    %r11d,%eax
544         movl    %esi,%ecx
545         xorl    24(%rsp),%edx
546         xorl    %edi,%eax
547         roll    $5,%ecx
548         leal    1859775393(%rbp,%r13,1),%r13d
549         xorl    48(%rsp),%edx
550         xorl    %r12d,%eax
551         addl    %ecx,%r13d
552         xorl    4(%rsp),%edx
553         roll    $30,%edi
554         addl    %eax,%r13d
555         roll    $1,%edx
556         movl    %edx,16(%rsp)
557         movl    20(%rsp),%ebp
558         movl    %edi,%eax
559         movl    %r13d,%ecx
560         xorl    28(%rsp),%ebp
561         xorl    %esi,%eax
562         roll    $5,%ecx
563         leal    1859775393(%rdx,%r12,1),%r12d
564         xorl    52(%rsp),%ebp
565         xorl    %r11d,%eax
566         addl    %ecx,%r12d
567         xorl    8(%rsp),%ebp
568         roll    $30,%esi
569         addl    %eax,%r12d
570         roll    $1,%ebp
571         movl    %ebp,20(%rsp)
572         movl    24(%rsp),%edx
573         movl    %esi,%eax
574         movl    %r12d,%ecx
575         xorl    32(%rsp),%edx
576         xorl    %r13d,%eax
577         roll    $5,%ecx
578         leal    1859775393(%rbp,%r11,1),%r11d
579         xorl    56(%rsp),%edx
580         xorl    %edi,%eax
581         addl    %ecx,%r11d
582         xorl    12(%rsp),%edx
583         roll    $30,%r13d
584         addl    %eax,%r11d
585         roll    $1,%edx
586         movl    %edx,24(%rsp)
587         movl    28(%rsp),%ebp
588         movl    %r13d,%eax
589         movl    %r11d,%ecx
590         xorl    36(%rsp),%ebp
591         xorl    %r12d,%eax
592         roll    $5,%ecx
593         leal    1859775393(%rdx,%rdi,1),%edi
594         xorl    60(%rsp),%ebp
595         xorl    %esi,%eax
596         addl    %ecx,%edi
597         xorl    16(%rsp),%ebp
598         roll    $30,%r12d
599         addl    %eax,%edi
600         roll    $1,%ebp
601         movl    %ebp,28(%rsp)
602         movl    32(%rsp),%edx
603         movl    %r12d,%eax
604         movl    %edi,%ecx
605         xorl    40(%rsp),%edx
606         xorl    %r11d,%eax
607         roll    $5,%ecx
608         leal    1859775393(%rbp,%rsi,1),%esi
609         xorl    0(%rsp),%edx
610         xorl    %r13d,%eax
611         addl    %ecx,%esi
612         xorl    20(%rsp),%edx
613         roll    $30,%r11d
614         addl    %eax,%esi
615         roll    $1,%edx
616         movl    %edx,32(%rsp)
617         movl    36(%rsp),%ebp
618         movl    %r11d,%eax
619         movl    %r11d,%ebx
620         xorl    44(%rsp),%ebp
621         andl    %r12d,%eax
622         movl    %esi,%ecx
623         xorl    4(%rsp),%ebp
624         xorl    %r12d,%ebx
625         leal    -1894007588(%rdx,%r13,1),%r13d
626         roll    $5,%ecx
627         xorl    24(%rsp),%ebp
628         addl    %eax,%r13d
629         andl    %edi,%ebx
630         roll    $1,%ebp
631         addl    %ebx,%r13d
632         roll    $30,%edi
633         movl    %ebp,36(%rsp)
634         addl    %ecx,%r13d
635         movl    40(%rsp),%edx
636         movl    %edi,%eax
637         movl    %edi,%ebx
638         xorl    48(%rsp),%edx
639         andl    %r11d,%eax
640         movl    %r13d,%ecx
641         xorl    8(%rsp),%edx
642         xorl    %r11d,%ebx
643         leal    -1894007588(%rbp,%r12,1),%r12d
644         roll    $5,%ecx
645         xorl    28(%rsp),%edx
646         addl    %eax,%r12d
647         andl    %esi,%ebx
648         roll    $1,%edx
649         addl    %ebx,%r12d
650         roll    $30,%esi
651         movl    %edx,40(%rsp)
652         addl    %ecx,%r12d
653         movl    44(%rsp),%ebp
654         movl    %esi,%eax
655         movl    %esi,%ebx
656         xorl    52(%rsp),%ebp
657         andl    %edi,%eax
658         movl    %r12d,%ecx
659         xorl    12(%rsp),%ebp
660         xorl    %edi,%ebx
661         leal    -1894007588(%rdx,%r11,1),%r11d
662         roll    $5,%ecx
663         xorl    32(%rsp),%ebp
664         addl    %eax,%r11d
665         andl    %r13d,%ebx
666         roll    $1,%ebp
667         addl    %ebx,%r11d
668         roll    $30,%r13d
669         movl    %ebp,44(%rsp)
670         addl    %ecx,%r11d
671         movl    48(%rsp),%edx
672         movl    %r13d,%eax
673         movl    %r13d,%ebx
674         xorl    56(%rsp),%edx
675         andl    %esi,%eax
676         movl    %r11d,%ecx
677         xorl    16(%rsp),%edx
678         xorl    %esi,%ebx
679         leal    -1894007588(%rbp,%rdi,1),%edi
680         roll    $5,%ecx
681         xorl    36(%rsp),%edx
682         addl    %eax,%edi
683         andl    %r12d,%ebx
684         roll    $1,%edx
685         addl    %ebx,%edi
686         roll    $30,%r12d
687         movl    %edx,48(%rsp)
688         addl    %ecx,%edi
689         movl    52(%rsp),%ebp
690         movl    %r12d,%eax
691         movl    %r12d,%ebx
692         xorl    60(%rsp),%ebp
693         andl    %r13d,%eax
694         movl    %edi,%ecx
695         xorl    20(%rsp),%ebp
696         xorl    %r13d,%ebx
697         leal    -1894007588(%rdx,%rsi,1),%esi
698         roll    $5,%ecx
699         xorl    40(%rsp),%ebp
700         addl    %eax,%esi
701         andl    %r11d,%ebx
702         roll    $1,%ebp
703         addl    %ebx,%esi
704         roll    $30,%r11d
705         movl    %ebp,52(%rsp)
706         addl    %ecx,%esi
707         movl    56(%rsp),%edx
708         movl    %r11d,%eax
709         movl    %r11d,%ebx
710         xorl    0(%rsp),%edx
711         andl    %r12d,%eax
712         movl    %esi,%ecx
713         xorl    24(%rsp),%edx
714         xorl    %r12d,%ebx
715         leal    -1894007588(%rbp,%r13,1),%r13d
716         roll    $5,%ecx
717         xorl    44(%rsp),%edx
718         addl    %eax,%r13d
719         andl    %edi,%ebx
720         roll    $1,%edx
721         addl    %ebx,%r13d
722         roll    $30,%edi
723         movl    %edx,56(%rsp)
724         addl    %ecx,%r13d
725         movl    60(%rsp),%ebp
726         movl    %edi,%eax
727         movl    %edi,%ebx
728         xorl    4(%rsp),%ebp
729         andl    %r11d,%eax
730         movl    %r13d,%ecx
731         xorl    28(%rsp),%ebp
732         xorl    %r11d,%ebx
733         leal    -1894007588(%rdx,%r12,1),%r12d
734         roll    $5,%ecx
735         xorl    48(%rsp),%ebp
736         addl    %eax,%r12d
737         andl    %esi,%ebx
738         roll    $1,%ebp
739         addl    %ebx,%r12d
740         roll    $30,%esi
741         movl    %ebp,60(%rsp)
742         addl    %ecx,%r12d
743         movl    0(%rsp),%edx
744         movl    %esi,%eax
745         movl    %esi,%ebx
746         xorl    8(%rsp),%edx
747         andl    %edi,%eax
748         movl    %r12d,%ecx
749         xorl    32(%rsp),%edx
750         xorl    %edi,%ebx
751         leal    -1894007588(%rbp,%r11,1),%r11d
752         roll    $5,%ecx
753         xorl    52(%rsp),%edx
754         addl    %eax,%r11d
755         andl    %r13d,%ebx
756         roll    $1,%edx
757         addl    %ebx,%r11d
758         roll    $30,%r13d
759         movl    %edx,0(%rsp)
760         addl    %ecx,%r11d
761         movl    4(%rsp),%ebp
762         movl    %r13d,%eax
763         movl    %r13d,%ebx
764         xorl    12(%rsp),%ebp
765         andl    %esi,%eax
766         movl    %r11d,%ecx
767         xorl    36(%rsp),%ebp
768         xorl    %esi,%ebx
769         leal    -1894007588(%rdx,%rdi,1),%edi
770         roll    $5,%ecx
771         xorl    56(%rsp),%ebp
772         addl    %eax,%edi
773         andl    %r12d,%ebx
774         roll    $1,%ebp
775         addl    %ebx,%edi
776         roll    $30,%r12d
777         movl    %ebp,4(%rsp)
778         addl    %ecx,%edi
779         movl    8(%rsp),%edx
780         movl    %r12d,%eax
781         movl    %r12d,%ebx
782         xorl    16(%rsp),%edx
783         andl    %r13d,%eax
784         movl    %edi,%ecx
785         xorl    40(%rsp),%edx
786         xorl    %r13d,%ebx
787         leal    -1894007588(%rbp,%rsi,1),%esi
788         roll    $5,%ecx
789         xorl    60(%rsp),%edx
790         addl    %eax,%esi
791         andl    %r11d,%ebx
792         roll    $1,%edx
793         addl    %ebx,%esi
794         roll    $30,%r11d
795         movl    %edx,8(%rsp)
796         addl    %ecx,%esi
797         movl    12(%rsp),%ebp
798         movl    %r11d,%eax
799         movl    %r11d,%ebx
800         xorl    20(%rsp),%ebp
801         andl    %r12d,%eax
802         movl    %esi,%ecx
803         xorl    44(%rsp),%ebp
804         xorl    %r12d,%ebx
805         leal    -1894007588(%rdx,%r13,1),%r13d
806         roll    $5,%ecx
807         xorl    0(%rsp),%ebp
808         addl    %eax,%r13d
809         andl    %edi,%ebx
810         roll    $1,%ebp
811         addl    %ebx,%r13d
812         roll    $30,%edi
813         movl    %ebp,12(%rsp)
814         addl    %ecx,%r13d
815         movl    16(%rsp),%edx
816         movl    %edi,%eax
817         movl    %edi,%ebx
818         xorl    24(%rsp),%edx
819         andl    %r11d,%eax
820         movl    %r13d,%ecx
821         xorl    48(%rsp),%edx
822         xorl    %r11d,%ebx
823         leal    -1894007588(%rbp,%r12,1),%r12d
824         roll    $5,%ecx
825         xorl    4(%rsp),%edx
826         addl    %eax,%r12d
827         andl    %esi,%ebx
828         roll    $1,%edx
829         addl    %ebx,%r12d
830         roll    $30,%esi
831         movl    %edx,16(%rsp)
832         addl    %ecx,%r12d
833         movl    20(%rsp),%ebp
834         movl    %esi,%eax
835         movl    %esi,%ebx
836         xorl    28(%rsp),%ebp
837         andl    %edi,%eax
838         movl    %r12d,%ecx
839         xorl    52(%rsp),%ebp
840         xorl    %edi,%ebx
841         leal    -1894007588(%rdx,%r11,1),%r11d
842         roll    $5,%ecx
843         xorl    8(%rsp),%ebp
844         addl    %eax,%r11d
845         andl    %r13d,%ebx
846         roll    $1,%ebp
847         addl    %ebx,%r11d
848         roll    $30,%r13d
849         movl    %ebp,20(%rsp)
850         addl    %ecx,%r11d
851         movl    24(%rsp),%edx
852         movl    %r13d,%eax
853         movl    %r13d,%ebx
854         xorl    32(%rsp),%edx
855         andl    %esi,%eax
856         movl    %r11d,%ecx
857         xorl    56(%rsp),%edx
858         xorl    %esi,%ebx
859         leal    -1894007588(%rbp,%rdi,1),%edi
860         roll    $5,%ecx
861         xorl    12(%rsp),%edx
862         addl    %eax,%edi
863         andl    %r12d,%ebx
864         roll    $1,%edx
865         addl    %ebx,%edi
866         roll    $30,%r12d
867         movl    %edx,24(%rsp)
868         addl    %ecx,%edi
869         movl    28(%rsp),%ebp
870         movl    %r12d,%eax
871         movl    %r12d,%ebx
872         xorl    36(%rsp),%ebp
873         andl    %r13d,%eax
874         movl    %edi,%ecx
875         xorl    60(%rsp),%ebp
876         xorl    %r13d,%ebx
877         leal    -1894007588(%rdx,%rsi,1),%esi
878         roll    $5,%ecx
879         xorl    16(%rsp),%ebp
880         addl    %eax,%esi
881         andl    %r11d,%ebx
882         roll    $1,%ebp
883         addl    %ebx,%esi
884         roll    $30,%r11d
885         movl    %ebp,28(%rsp)
886         addl    %ecx,%esi
887         movl    32(%rsp),%edx
888         movl    %r11d,%eax
889         movl    %r11d,%ebx
890         xorl    40(%rsp),%edx
891         andl    %r12d,%eax
892         movl    %esi,%ecx
893         xorl    0(%rsp),%edx
894         xorl    %r12d,%ebx
895         leal    -1894007588(%rbp,%r13,1),%r13d
896         roll    $5,%ecx
897         xorl    20(%rsp),%edx
898         addl    %eax,%r13d
899         andl    %edi,%ebx
900         roll    $1,%edx
901         addl    %ebx,%r13d
902         roll    $30,%edi
903         movl    %edx,32(%rsp)
904         addl    %ecx,%r13d
905         movl    36(%rsp),%ebp
906         movl    %edi,%eax
907         movl    %edi,%ebx
908         xorl    44(%rsp),%ebp
909         andl    %r11d,%eax
910         movl    %r13d,%ecx
911         xorl    4(%rsp),%ebp
912         xorl    %r11d,%ebx
913         leal    -1894007588(%rdx,%r12,1),%r12d
914         roll    $5,%ecx
915         xorl    24(%rsp),%ebp
916         addl    %eax,%r12d
917         andl    %esi,%ebx
918         roll    $1,%ebp
919         addl    %ebx,%r12d
920         roll    $30,%esi
921         movl    %ebp,36(%rsp)
922         addl    %ecx,%r12d
923         movl    40(%rsp),%edx
924         movl    %esi,%eax
925         movl    %esi,%ebx
926         xorl    48(%rsp),%edx
927         andl    %edi,%eax
928         movl    %r12d,%ecx
929         xorl    8(%rsp),%edx
930         xorl    %edi,%ebx
931         leal    -1894007588(%rbp,%r11,1),%r11d
932         roll    $5,%ecx
933         xorl    28(%rsp),%edx
934         addl    %eax,%r11d
935         andl    %r13d,%ebx
936         roll    $1,%edx
937         addl    %ebx,%r11d
938         roll    $30,%r13d
939         movl    %edx,40(%rsp)
940         addl    %ecx,%r11d
941         movl    44(%rsp),%ebp
942         movl    %r13d,%eax
943         movl    %r13d,%ebx
944         xorl    52(%rsp),%ebp
945         andl    %esi,%eax
946         movl    %r11d,%ecx
947         xorl    12(%rsp),%ebp
948         xorl    %esi,%ebx
949         leal    -1894007588(%rdx,%rdi,1),%edi
950         roll    $5,%ecx
951         xorl    32(%rsp),%ebp
952         addl    %eax,%edi
953         andl    %r12d,%ebx
954         roll    $1,%ebp
955         addl    %ebx,%edi
956         roll    $30,%r12d
957         movl    %ebp,44(%rsp)
958         addl    %ecx,%edi
959         movl    48(%rsp),%edx
960         movl    %r12d,%eax
961         movl    %r12d,%ebx
962         xorl    56(%rsp),%edx
963         andl    %r13d,%eax
964         movl    %edi,%ecx
965         xorl    16(%rsp),%edx
966         xorl    %r13d,%ebx
967         leal    -1894007588(%rbp,%rsi,1),%esi
968         roll    $5,%ecx
969         xorl    36(%rsp),%edx
970         addl    %eax,%esi
971         andl    %r11d,%ebx
972         roll    $1,%edx
973         addl    %ebx,%esi
974         roll    $30,%r11d
975         movl    %edx,48(%rsp)
976         addl    %ecx,%esi
977         movl    52(%rsp),%ebp
978         movl    %r11d,%eax
979         movl    %esi,%ecx
980         xorl    60(%rsp),%ebp
981         xorl    %edi,%eax
982         roll    $5,%ecx
983         leal    -899497514(%rdx,%r13,1),%r13d
984         xorl    20(%rsp),%ebp
985         xorl    %r12d,%eax
986         addl    %ecx,%r13d
987         xorl    40(%rsp),%ebp
988         roll    $30,%edi
989         addl    %eax,%r13d
990         roll    $1,%ebp
991         movl    %ebp,52(%rsp)
992         movl    56(%rsp),%edx
993         movl    %edi,%eax
994         movl    %r13d,%ecx
995         xorl    0(%rsp),%edx
996         xorl    %esi,%eax
997         roll    $5,%ecx
998         leal    -899497514(%rbp,%r12,1),%r12d
999         xorl    24(%rsp),%edx
1000         xorl    %r11d,%eax
1001         addl    %ecx,%r12d
1002         xorl    44(%rsp),%edx
1003         roll    $30,%esi
1004         addl    %eax,%r12d
1005         roll    $1,%edx
1006         movl    %edx,56(%rsp)
1007         movl    60(%rsp),%ebp
1008         movl    %esi,%eax
1009         movl    %r12d,%ecx
1010         xorl    4(%rsp),%ebp
1011         xorl    %r13d,%eax
1012         roll    $5,%ecx
1013         leal    -899497514(%rdx,%r11,1),%r11d
1014         xorl    28(%rsp),%ebp
1015         xorl    %edi,%eax
1016         addl    %ecx,%r11d
1017         xorl    48(%rsp),%ebp
1018         roll    $30,%r13d
1019         addl    %eax,%r11d
1020         roll    $1,%ebp
1021         movl    %ebp,60(%rsp)
1022         movl    0(%rsp),%edx
1023         movl    %r13d,%eax
1024         movl    %r11d,%ecx
1025         xorl    8(%rsp),%edx
1026         xorl    %r12d,%eax
1027         roll    $5,%ecx
1028         leal    -899497514(%rbp,%rdi,1),%edi
1029         xorl    32(%rsp),%edx
1030         xorl    %esi,%eax
1031         addl    %ecx,%edi
1032         xorl    52(%rsp),%edx
1033         roll    $30,%r12d
1034         addl    %eax,%edi
1035         roll    $1,%edx
1036         movl    %edx,0(%rsp)
1037         movl    4(%rsp),%ebp
1038         movl    %r12d,%eax
1039         movl    %edi,%ecx
1040         xorl    12(%rsp),%ebp
1041         xorl    %r11d,%eax
1042         roll    $5,%ecx
1043         leal    -899497514(%rdx,%rsi,1),%esi
1044         xorl    36(%rsp),%ebp
1045         xorl    %r13d,%eax
1046         addl    %ecx,%esi
1047         xorl    56(%rsp),%ebp
1048         roll    $30,%r11d
1049         addl    %eax,%esi
1050         roll    $1,%ebp
1051         movl    %ebp,4(%rsp)
1052         movl    8(%rsp),%edx
1053         movl    %r11d,%eax
1054         movl    %esi,%ecx
1055         xorl    16(%rsp),%edx
1056         xorl    %edi,%eax
1057         roll    $5,%ecx
1058         leal    -899497514(%rbp,%r13,1),%r13d
1059         xorl    40(%rsp),%edx
1060         xorl    %r12d,%eax
1061         addl    %ecx,%r13d
1062         xorl    60(%rsp),%edx
1063         roll    $30,%edi
1064         addl    %eax,%r13d
1065         roll    $1,%edx
1066         movl    %edx,8(%rsp)
1067         movl    12(%rsp),%ebp
1068         movl    %edi,%eax
1069         movl    %r13d,%ecx
1070         xorl    20(%rsp),%ebp
1071         xorl    %esi,%eax
1072         roll    $5,%ecx
1073         leal    -899497514(%rdx,%r12,1),%r12d
1074         xorl    44(%rsp),%ebp
1075         xorl    %r11d,%eax
1076         addl    %ecx,%r12d
1077         xorl    0(%rsp),%ebp
1078         roll    $30,%esi
1079         addl    %eax,%r12d
1080         roll    $1,%ebp
1081         movl    %ebp,12(%rsp)
1082         movl    16(%rsp),%edx
1083         movl    %esi,%eax
1084         movl    %r12d,%ecx
1085         xorl    24(%rsp),%edx
1086         xorl    %r13d,%eax
1087         roll    $5,%ecx
1088         leal    -899497514(%rbp,%r11,1),%r11d
1089         xorl    48(%rsp),%edx
1090         xorl    %edi,%eax
1091         addl    %ecx,%r11d
1092         xorl    4(%rsp),%edx
1093         roll    $30,%r13d
1094         addl    %eax,%r11d
1095         roll    $1,%edx
1096         movl    %edx,16(%rsp)
1097         movl    20(%rsp),%ebp
1098         movl    %r13d,%eax
1099         movl    %r11d,%ecx
1100         xorl    28(%rsp),%ebp
1101         xorl    %r12d,%eax
1102         roll    $5,%ecx
1103         leal    -899497514(%rdx,%rdi,1),%edi
1104         xorl    52(%rsp),%ebp
1105         xorl    %esi,%eax
1106         addl    %ecx,%edi
1107         xorl    8(%rsp),%ebp
1108         roll    $30,%r12d
1109         addl    %eax,%edi
1110         roll    $1,%ebp
1111         movl    %ebp,20(%rsp)
1112         movl    24(%rsp),%edx
1113         movl    %r12d,%eax
1114         movl    %edi,%ecx
1115         xorl    32(%rsp),%edx
1116         xorl    %r11d,%eax
1117         roll    $5,%ecx
1118         leal    -899497514(%rbp,%rsi,1),%esi
1119         xorl    56(%rsp),%edx
1120         xorl    %r13d,%eax
1121         addl    %ecx,%esi
1122         xorl    12(%rsp),%edx
1123         roll    $30,%r11d
1124         addl    %eax,%esi
1125         roll    $1,%edx
1126         movl    %edx,24(%rsp)
1127         movl    28(%rsp),%ebp
1128         movl    %r11d,%eax
1129         movl    %esi,%ecx
1130         xorl    36(%rsp),%ebp
1131         xorl    %edi,%eax
1132         roll    $5,%ecx
1133         leal    -899497514(%rdx,%r13,1),%r13d
1134         xorl    60(%rsp),%ebp
1135         xorl    %r12d,%eax
1136         addl    %ecx,%r13d
1137         xorl    16(%rsp),%ebp
1138         roll    $30,%edi
1139         addl    %eax,%r13d
1140         roll    $1,%ebp
1141         movl    %ebp,28(%rsp)
1142         movl    32(%rsp),%edx
1143         movl    %edi,%eax
1144         movl    %r13d,%ecx
1145         xorl    40(%rsp),%edx
1146         xorl    %esi,%eax
1147         roll    $5,%ecx
1148         leal    -899497514(%rbp,%r12,1),%r12d
1149         xorl    0(%rsp),%edx
1150         xorl    %r11d,%eax
1151         addl    %ecx,%r12d
1152         xorl    20(%rsp),%edx
1153         roll    $30,%esi
1154         addl    %eax,%r12d
1155         roll    $1,%edx
1156         movl    %edx,32(%rsp)
1157         movl    36(%rsp),%ebp
1158         movl    %esi,%eax
1159         movl    %r12d,%ecx
1160         xorl    44(%rsp),%ebp
1161         xorl    %r13d,%eax
1162         roll    $5,%ecx
1163         leal    -899497514(%rdx,%r11,1),%r11d
1164         xorl    4(%rsp),%ebp
1165         xorl    %edi,%eax
1166         addl    %ecx,%r11d
1167         xorl    24(%rsp),%ebp
1168         roll    $30,%r13d
1169         addl    %eax,%r11d
1170         roll    $1,%ebp
1171         movl    %ebp,36(%rsp)
1172         movl    40(%rsp),%edx
1173         movl    %r13d,%eax
1174         movl    %r11d,%ecx
1175         xorl    48(%rsp),%edx
1176         xorl    %r12d,%eax
1177         roll    $5,%ecx
1178         leal    -899497514(%rbp,%rdi,1),%edi
1179         xorl    8(%rsp),%edx
1180         xorl    %esi,%eax
1181         addl    %ecx,%edi
1182         xorl    28(%rsp),%edx
1183         roll    $30,%r12d
1184         addl    %eax,%edi
1185         roll    $1,%edx
1186         movl    %edx,40(%rsp)
1187         movl    44(%rsp),%ebp
1188         movl    %r12d,%eax
1189         movl    %edi,%ecx
1190         xorl    52(%rsp),%ebp
1191         xorl    %r11d,%eax
1192         roll    $5,%ecx
1193         leal    -899497514(%rdx,%rsi,1),%esi
1194         xorl    12(%rsp),%ebp
1195         xorl    %r13d,%eax
1196         addl    %ecx,%esi
1197         xorl    32(%rsp),%ebp
1198         roll    $30,%r11d
1199         addl    %eax,%esi
1200         roll    $1,%ebp
1201         movl    %ebp,44(%rsp)
1202         movl    48(%rsp),%edx
1203         movl    %r11d,%eax
1204         movl    %esi,%ecx
1205         xorl    56(%rsp),%edx
1206         xorl    %edi,%eax
1207         roll    $5,%ecx
1208         leal    -899497514(%rbp,%r13,1),%r13d
1209         xorl    16(%rsp),%edx
1210         xorl    %r12d,%eax
1211         addl    %ecx,%r13d
1212         xorl    36(%rsp),%edx
1213         roll    $30,%edi
1214         addl    %eax,%r13d
1215         roll    $1,%edx
1216         movl    %edx,48(%rsp)
1217         movl    52(%rsp),%ebp
1218         movl    %edi,%eax
1219         movl    %r13d,%ecx
1220         xorl    60(%rsp),%ebp
1221         xorl    %esi,%eax
1222         roll    $5,%ecx
1223         leal    -899497514(%rdx,%r12,1),%r12d
1224         xorl    20(%rsp),%ebp
1225         xorl    %r11d,%eax
1226         addl    %ecx,%r12d
1227         xorl    40(%rsp),%ebp
1228         roll    $30,%esi
1229         addl    %eax,%r12d
1230         roll    $1,%ebp
1231         movl    56(%rsp),%edx
1232         movl    %esi,%eax
1233         movl    %r12d,%ecx
1234         xorl    0(%rsp),%edx
1235         xorl    %r13d,%eax
1236         roll    $5,%ecx
1237         leal    -899497514(%rbp,%r11,1),%r11d
1238         xorl    24(%rsp),%edx
1239         xorl    %edi,%eax
1240         addl    %ecx,%r11d
1241         xorl    44(%rsp),%edx
1242         roll    $30,%r13d
1243         addl    %eax,%r11d
1244         roll    $1,%edx
1245         movl    60(%rsp),%ebp
1246         movl    %r13d,%eax
1247         movl    %r11d,%ecx
1248         xorl    4(%rsp),%ebp
1249         xorl    %r12d,%eax
1250         roll    $5,%ecx
1251         leal    -899497514(%rdx,%rdi,1),%edi
1252         xorl    28(%rsp),%ebp
1253         xorl    %esi,%eax
1254         addl    %ecx,%edi
1255         xorl    48(%rsp),%ebp
1256         roll    $30,%r12d
1257         addl    %eax,%edi
1258         roll    $1,%ebp
1259         movl    %r12d,%eax
1260         movl    %edi,%ecx
1261         xorl    %r11d,%eax
1262         leal    -899497514(%rbp,%rsi,1),%esi
1263         roll    $5,%ecx
1264         xorl    %r13d,%eax
1265         addl    %ecx,%esi
1266         roll    $30,%r11d
1267         addl    %eax,%esi
1268         addl    0(%r8),%esi
1269         addl    4(%r8),%edi
1270         addl    8(%r8),%r11d
1271         addl    12(%r8),%r12d
1272         addl    16(%r8),%r13d
1273         movl    %esi,0(%r8)
1274         movl    %edi,4(%r8)
1275         movl    %r11d,8(%r8)
1276         movl    %r12d,12(%r8)
1277         movl    %r13d,16(%r8)
1278
1279         subq    $1,%r10
1280         leaq    64(%r9),%r9
1281         jnz     .Lloop
1282
1283         movq    64(%rsp),%rsi
1284         movq    (%rsi),%r13
1285         movq    8(%rsi),%r12
1286         movq    16(%rsi),%rbp
1287         movq    24(%rsi),%rbx
1288         leaq    32(%rsi),%rsp
1289 .Lepilogue:
1290         .byte   0xf3,0xc3
1291 .size   sha1_block_data_order,.-sha1_block_data_order
1292 .type   sha1_block_data_order_ssse3,@function
1293 .align  16
1294 sha1_block_data_order_ssse3:
1295 _ssse3_shortcut:
1296         pushq   %rbx
1297         pushq   %rbp
1298         pushq   %r12
1299         leaq    -64(%rsp),%rsp
1300         movq    %rdi,%r8
1301         movq    %rsi,%r9
1302         movq    %rdx,%r10
1303
1304         shlq    $6,%r10
1305         addq    %r9,%r10
1306         leaq    K_XX_XX(%rip),%r11
1307
1308         movl    0(%r8),%eax
1309         movl    4(%r8),%ebx
1310         movl    8(%r8),%ecx
1311         movl    12(%r8),%edx
1312         movl    %ebx,%esi
1313         movl    16(%r8),%ebp
1314
1315         movdqa  64(%r11),%xmm6
1316         movdqa  0(%r11),%xmm9
1317         movdqu  0(%r9),%xmm0
1318         movdqu  16(%r9),%xmm1
1319         movdqu  32(%r9),%xmm2
1320         movdqu  48(%r9),%xmm3
1321 .byte   102,15,56,0,198
1322         addq    $64,%r9
1323 .byte   102,15,56,0,206
1324 .byte   102,15,56,0,214
1325 .byte   102,15,56,0,222
1326         paddd   %xmm9,%xmm0
1327         paddd   %xmm9,%xmm1
1328         paddd   %xmm9,%xmm2
1329         movdqa  %xmm0,0(%rsp)
1330         psubd   %xmm9,%xmm0
1331         movdqa  %xmm1,16(%rsp)
1332         psubd   %xmm9,%xmm1
1333         movdqa  %xmm2,32(%rsp)
1334         psubd   %xmm9,%xmm2
1335         jmp     .Loop_ssse3
1336 .align  16
1337 .Loop_ssse3:
1338         movdqa  %xmm1,%xmm4
1339         addl    0(%rsp),%ebp
1340         xorl    %edx,%ecx
1341         movdqa  %xmm3,%xmm8
1342 .byte   102,15,58,15,224,8
1343         movl    %eax,%edi
1344         roll    $5,%eax
1345         paddd   %xmm3,%xmm9
1346         andl    %ecx,%esi
1347         xorl    %edx,%ecx
1348         psrldq  $4,%xmm8
1349         xorl    %edx,%esi
1350         addl    %eax,%ebp
1351         pxor    %xmm0,%xmm4
1352         rorl    $2,%ebx
1353         addl    %esi,%ebp
1354         pxor    %xmm2,%xmm8
1355         addl    4(%rsp),%edx
1356         xorl    %ecx,%ebx
1357         movl    %ebp,%esi
1358         roll    $5,%ebp
1359         pxor    %xmm8,%xmm4
1360         andl    %ebx,%edi
1361         xorl    %ecx,%ebx
1362         movdqa  %xmm9,48(%rsp)
1363         xorl    %ecx,%edi
1364         addl    %ebp,%edx
1365         movdqa  %xmm4,%xmm10
1366         movdqa  %xmm4,%xmm8
1367         rorl    $7,%eax
1368         addl    %edi,%edx
1369         addl    8(%rsp),%ecx
1370         xorl    %ebx,%eax
1371         pslldq  $12,%xmm10
1372         paddd   %xmm4,%xmm4
1373         movl    %edx,%edi
1374         roll    $5,%edx
1375         andl    %eax,%esi
1376         xorl    %ebx,%eax
1377         psrld   $31,%xmm8
1378         xorl    %ebx,%esi
1379         addl    %edx,%ecx
1380         movdqa  %xmm10,%xmm9
1381         rorl    $7,%ebp
1382         addl    %esi,%ecx
1383         psrld   $30,%xmm10
1384         por     %xmm8,%xmm4
1385         addl    12(%rsp),%ebx
1386         xorl    %eax,%ebp
1387         movl    %ecx,%esi
1388         roll    $5,%ecx
1389         pslld   $2,%xmm9
1390         pxor    %xmm10,%xmm4
1391         andl    %ebp,%edi
1392         xorl    %eax,%ebp
1393         movdqa  0(%r11),%xmm10
1394         xorl    %eax,%edi
1395         addl    %ecx,%ebx
1396         pxor    %xmm9,%xmm4
1397         rorl    $7,%edx
1398         addl    %edi,%ebx
1399         movdqa  %xmm2,%xmm5
1400         addl    16(%rsp),%eax
1401         xorl    %ebp,%edx
1402         movdqa  %xmm4,%xmm9
1403 .byte   102,15,58,15,233,8
1404         movl    %ebx,%edi
1405         roll    $5,%ebx
1406         paddd   %xmm4,%xmm10
1407         andl    %edx,%esi
1408         xorl    %ebp,%edx
1409         psrldq  $4,%xmm9
1410         xorl    %ebp,%esi
1411         addl    %ebx,%eax
1412         pxor    %xmm1,%xmm5
1413         rorl    $7,%ecx
1414         addl    %esi,%eax
1415         pxor    %xmm3,%xmm9
1416         addl    20(%rsp),%ebp
1417         xorl    %edx,%ecx
1418         movl    %eax,%esi
1419         roll    $5,%eax
1420         pxor    %xmm9,%xmm5
1421         andl    %ecx,%edi
1422         xorl    %edx,%ecx
1423         movdqa  %xmm10,0(%rsp)
1424         xorl    %edx,%edi
1425         addl    %eax,%ebp
1426         movdqa  %xmm5,%xmm8
1427         movdqa  %xmm5,%xmm9
1428         rorl    $7,%ebx
1429         addl    %edi,%ebp
1430         addl    24(%rsp),%edx
1431         xorl    %ecx,%ebx
1432         pslldq  $12,%xmm8
1433         paddd   %xmm5,%xmm5
1434         movl    %ebp,%edi
1435         roll    $5,%ebp
1436         andl    %ebx,%esi
1437         xorl    %ecx,%ebx
1438         psrld   $31,%xmm9
1439         xorl    %ecx,%esi
1440         addl    %ebp,%edx
1441         movdqa  %xmm8,%xmm10
1442         rorl    $7,%eax
1443         addl    %esi,%edx
1444         psrld   $30,%xmm8
1445         por     %xmm9,%xmm5
1446         addl    28(%rsp),%ecx
1447         xorl    %ebx,%eax
1448         movl    %edx,%esi
1449         roll    $5,%edx
1450         pslld   $2,%xmm10
1451         pxor    %xmm8,%xmm5
1452         andl    %eax,%edi
1453         xorl    %ebx,%eax
1454         movdqa  16(%r11),%xmm8
1455         xorl    %ebx,%edi
1456         addl    %edx,%ecx
1457         pxor    %xmm10,%xmm5
1458         rorl    $7,%ebp
1459         addl    %edi,%ecx
1460         movdqa  %xmm3,%xmm6
1461         addl    32(%rsp),%ebx
1462         xorl    %eax,%ebp
1463         movdqa  %xmm5,%xmm10
1464 .byte   102,15,58,15,242,8
1465         movl    %ecx,%edi
1466         roll    $5,%ecx
1467         paddd   %xmm5,%xmm8
1468         andl    %ebp,%esi
1469         xorl    %eax,%ebp
1470         psrldq  $4,%xmm10
1471         xorl    %eax,%esi
1472         addl    %ecx,%ebx
1473         pxor    %xmm2,%xmm6
1474         rorl    $7,%edx
1475         addl    %esi,%ebx
1476         pxor    %xmm4,%xmm10
1477         addl    36(%rsp),%eax
1478         xorl    %ebp,%edx
1479         movl    %ebx,%esi
1480         roll    $5,%ebx
1481         pxor    %xmm10,%xmm6
1482         andl    %edx,%edi
1483         xorl    %ebp,%edx
1484         movdqa  %xmm8,16(%rsp)
1485         xorl    %ebp,%edi
1486         addl    %ebx,%eax
1487         movdqa  %xmm6,%xmm9
1488         movdqa  %xmm6,%xmm10
1489         rorl    $7,%ecx
1490         addl    %edi,%eax
1491         addl    40(%rsp),%ebp
1492         xorl    %edx,%ecx
1493         pslldq  $12,%xmm9
1494         paddd   %xmm6,%xmm6
1495         movl    %eax,%edi
1496         roll    $5,%eax
1497         andl    %ecx,%esi
1498         xorl    %edx,%ecx
1499         psrld   $31,%xmm10
1500         xorl    %edx,%esi
1501         addl    %eax,%ebp
1502         movdqa  %xmm9,%xmm8
1503         rorl    $7,%ebx
1504         addl    %esi,%ebp
1505         psrld   $30,%xmm9
1506         por     %xmm10,%xmm6
1507         addl    44(%rsp),%edx
1508         xorl    %ecx,%ebx
1509         movl    %ebp,%esi
1510         roll    $5,%ebp
1511         pslld   $2,%xmm8
1512         pxor    %xmm9,%xmm6
1513         andl    %ebx,%edi
1514         xorl    %ecx,%ebx
1515         movdqa  16(%r11),%xmm9
1516         xorl    %ecx,%edi
1517         addl    %ebp,%edx
1518         pxor    %xmm8,%xmm6
1519         rorl    $7,%eax
1520         addl    %edi,%edx
1521         movdqa  %xmm4,%xmm7
1522         addl    48(%rsp),%ecx
1523         xorl    %ebx,%eax
1524         movdqa  %xmm6,%xmm8
1525 .byte   102,15,58,15,251,8
1526         movl    %edx,%edi
1527         roll    $5,%edx
1528         paddd   %xmm6,%xmm9
1529         andl    %eax,%esi
1530         xorl    %ebx,%eax
1531         psrldq  $4,%xmm8
1532         xorl    %ebx,%esi
1533         addl    %edx,%ecx
1534         pxor    %xmm3,%xmm7
1535         rorl    $7,%ebp
1536         addl    %esi,%ecx
1537         pxor    %xmm5,%xmm8
1538         addl    52(%rsp),%ebx
1539         xorl    %eax,%ebp
1540         movl    %ecx,%esi
1541         roll    $5,%ecx
1542         pxor    %xmm8,%xmm7
1543         andl    %ebp,%edi
1544         xorl    %eax,%ebp
1545         movdqa  %xmm9,32(%rsp)
1546         xorl    %eax,%edi
1547         addl    %ecx,%ebx
1548         movdqa  %xmm7,%xmm10
1549         movdqa  %xmm7,%xmm8
1550         rorl    $7,%edx
1551         addl    %edi,%ebx
1552         addl    56(%rsp),%eax
1553         xorl    %ebp,%edx
1554         pslldq  $12,%xmm10
1555         paddd   %xmm7,%xmm7
1556         movl    %ebx,%edi
1557         roll    $5,%ebx
1558         andl    %edx,%esi
1559         xorl    %ebp,%edx
1560         psrld   $31,%xmm8
1561         xorl    %ebp,%esi
1562         addl    %ebx,%eax
1563         movdqa  %xmm10,%xmm9
1564         rorl    $7,%ecx
1565         addl    %esi,%eax
1566         psrld   $30,%xmm10
1567         por     %xmm8,%xmm7
1568         addl    60(%rsp),%ebp
1569         xorl    %edx,%ecx
1570         movl    %eax,%esi
1571         roll    $5,%eax
1572         pslld   $2,%xmm9
1573         pxor    %xmm10,%xmm7
1574         andl    %ecx,%edi
1575         xorl    %edx,%ecx
1576         movdqa  16(%r11),%xmm10
1577         xorl    %edx,%edi
1578         addl    %eax,%ebp
1579         pxor    %xmm9,%xmm7
1580         rorl    $7,%ebx
1581         addl    %edi,%ebp
1582         movdqa  %xmm7,%xmm9
1583         addl    0(%rsp),%edx
1584         pxor    %xmm4,%xmm0
1585 .byte   102,68,15,58,15,206,8
1586         xorl    %ecx,%ebx
1587         movl    %ebp,%edi
1588         roll    $5,%ebp
1589         pxor    %xmm1,%xmm0
1590         andl    %ebx,%esi
1591         xorl    %ecx,%ebx
1592         movdqa  %xmm10,%xmm8
1593         paddd   %xmm7,%xmm10
1594         xorl    %ecx,%esi
1595         addl    %ebp,%edx
1596         pxor    %xmm9,%xmm0
1597         rorl    $7,%eax
1598         addl    %esi,%edx
1599         addl    4(%rsp),%ecx
1600         xorl    %ebx,%eax
1601         movdqa  %xmm0,%xmm9
1602         movdqa  %xmm10,48(%rsp)
1603         movl    %edx,%esi
1604         roll    $5,%edx
1605         andl    %eax,%edi
1606         xorl    %ebx,%eax
1607         pslld   $2,%xmm0
1608         xorl    %ebx,%edi
1609         addl    %edx,%ecx
1610         psrld   $30,%xmm9
1611         rorl    $7,%ebp
1612         addl    %edi,%ecx
1613         addl    8(%rsp),%ebx
1614         xorl    %eax,%ebp
1615         movl    %ecx,%edi
1616         roll    $5,%ecx
1617         por     %xmm9,%xmm0
1618         andl    %ebp,%esi
1619         xorl    %eax,%ebp
1620         movdqa  %xmm0,%xmm10
1621         xorl    %eax,%esi
1622         addl    %ecx,%ebx
1623         rorl    $7,%edx
1624         addl    %esi,%ebx
1625         addl    12(%rsp),%eax
1626         xorl    %ebp,%edx
1627         movl    %ebx,%esi
1628         roll    $5,%ebx
1629         andl    %edx,%edi
1630         xorl    %ebp,%edx
1631         xorl    %ebp,%edi
1632         addl    %ebx,%eax
1633         rorl    $7,%ecx
1634         addl    %edi,%eax
1635         addl    16(%rsp),%ebp
1636         pxor    %xmm5,%xmm1
1637 .byte   102,68,15,58,15,215,8
1638         xorl    %edx,%esi
1639         movl    %eax,%edi
1640         roll    $5,%eax
1641         pxor    %xmm2,%xmm1
1642         xorl    %ecx,%esi
1643         addl    %eax,%ebp
1644         movdqa  %xmm8,%xmm9
1645         paddd   %xmm0,%xmm8
1646         rorl    $7,%ebx
1647         addl    %esi,%ebp
1648         pxor    %xmm10,%xmm1
1649         addl    20(%rsp),%edx
1650         xorl    %ecx,%edi
1651         movl    %ebp,%esi
1652         roll    $5,%ebp
1653         movdqa  %xmm1,%xmm10
1654         movdqa  %xmm8,0(%rsp)
1655         xorl    %ebx,%edi
1656         addl    %ebp,%edx
1657         rorl    $7,%eax
1658         addl    %edi,%edx
1659         pslld   $2,%xmm1
1660         addl    24(%rsp),%ecx
1661         xorl    %ebx,%esi
1662         psrld   $30,%xmm10
1663         movl    %edx,%edi
1664         roll    $5,%edx
1665         xorl    %eax,%esi
1666         addl    %edx,%ecx
1667         rorl    $7,%ebp
1668         addl    %esi,%ecx
1669         por     %xmm10,%xmm1
1670         addl    28(%rsp),%ebx
1671         xorl    %eax,%edi
1672         movdqa  %xmm1,%xmm8
1673         movl    %ecx,%esi
1674         roll    $5,%ecx
1675         xorl    %ebp,%edi
1676         addl    %ecx,%ebx
1677         rorl    $7,%edx
1678         addl    %edi,%ebx
1679         addl    32(%rsp),%eax
1680         pxor    %xmm6,%xmm2
1681 .byte   102,68,15,58,15,192,8
1682         xorl    %ebp,%esi
1683         movl    %ebx,%edi
1684         roll    $5,%ebx
1685         pxor    %xmm3,%xmm2
1686         xorl    %edx,%esi
1687         addl    %ebx,%eax
1688         movdqa  32(%r11),%xmm10
1689         paddd   %xmm1,%xmm9
1690         rorl    $7,%ecx
1691         addl    %esi,%eax
1692         pxor    %xmm8,%xmm2
1693         addl    36(%rsp),%ebp
1694         xorl    %edx,%edi
1695         movl    %eax,%esi
1696         roll    $5,%eax
1697         movdqa  %xmm2,%xmm8
1698         movdqa  %xmm9,16(%rsp)
1699         xorl    %ecx,%edi
1700         addl    %eax,%ebp
1701         rorl    $7,%ebx
1702         addl    %edi,%ebp
1703         pslld   $2,%xmm2
1704         addl    40(%rsp),%edx
1705         xorl    %ecx,%esi
1706         psrld   $30,%xmm8
1707         movl    %ebp,%edi
1708         roll    $5,%ebp
1709         xorl    %ebx,%esi
1710         addl    %ebp,%edx
1711         rorl    $7,%eax
1712         addl    %esi,%edx
1713         por     %xmm8,%xmm2
1714         addl    44(%rsp),%ecx
1715         xorl    %ebx,%edi
1716         movdqa  %xmm2,%xmm9
1717         movl    %edx,%esi
1718         roll    $5,%edx
1719         xorl    %eax,%edi
1720         addl    %edx,%ecx
1721         rorl    $7,%ebp
1722         addl    %edi,%ecx
1723         addl    48(%rsp),%ebx
1724         pxor    %xmm7,%xmm3
1725 .byte   102,68,15,58,15,201,8
1726         xorl    %eax,%esi
1727         movl    %ecx,%edi
1728         roll    $5,%ecx
1729         pxor    %xmm4,%xmm3
1730         xorl    %ebp,%esi
1731         addl    %ecx,%ebx
1732         movdqa  %xmm10,%xmm8
1733         paddd   %xmm2,%xmm10
1734         rorl    $7,%edx
1735         addl    %esi,%ebx
1736         pxor    %xmm9,%xmm3
1737         addl    52(%rsp),%eax
1738         xorl    %ebp,%edi
1739         movl    %ebx,%esi
1740         roll    $5,%ebx
1741         movdqa  %xmm3,%xmm9
1742         movdqa  %xmm10,32(%rsp)
1743         xorl    %edx,%edi
1744         addl    %ebx,%eax
1745         rorl    $7,%ecx
1746         addl    %edi,%eax
1747         pslld   $2,%xmm3
1748         addl    56(%rsp),%ebp
1749         xorl    %edx,%esi
1750         psrld   $30,%xmm9
1751         movl    %eax,%edi
1752         roll    $5,%eax
1753         xorl    %ecx,%esi
1754         addl    %eax,%ebp
1755         rorl    $7,%ebx
1756         addl    %esi,%ebp
1757         por     %xmm9,%xmm3
1758         addl    60(%rsp),%edx
1759         xorl    %ecx,%edi
1760         movdqa  %xmm3,%xmm10
1761         movl    %ebp,%esi
1762         roll    $5,%ebp
1763         xorl    %ebx,%edi
1764         addl    %ebp,%edx
1765         rorl    $7,%eax
1766         addl    %edi,%edx
1767         addl    0(%rsp),%ecx
1768         pxor    %xmm0,%xmm4
1769 .byte   102,68,15,58,15,210,8
1770         xorl    %ebx,%esi
1771         movl    %edx,%edi
1772         roll    $5,%edx
1773         pxor    %xmm5,%xmm4
1774         xorl    %eax,%esi
1775         addl    %edx,%ecx
1776         movdqa  %xmm8,%xmm9
1777         paddd   %xmm3,%xmm8
1778         rorl    $7,%ebp
1779         addl    %esi,%ecx
1780         pxor    %xmm10,%xmm4
1781         addl    4(%rsp),%ebx
1782         xorl    %eax,%edi
1783         movl    %ecx,%esi
1784         roll    $5,%ecx
1785         movdqa  %xmm4,%xmm10
1786         movdqa  %xmm8,48(%rsp)
1787         xorl    %ebp,%edi
1788         addl    %ecx,%ebx
1789         rorl    $7,%edx
1790         addl    %edi,%ebx
1791         pslld   $2,%xmm4
1792         addl    8(%rsp),%eax
1793         xorl    %ebp,%esi
1794         psrld   $30,%xmm10
1795         movl    %ebx,%edi
1796         roll    $5,%ebx
1797         xorl    %edx,%esi
1798         addl    %ebx,%eax
1799         rorl    $7,%ecx
1800         addl    %esi,%eax
1801         por     %xmm10,%xmm4
1802         addl    12(%rsp),%ebp
1803         xorl    %edx,%edi
1804         movdqa  %xmm4,%xmm8
1805         movl    %eax,%esi
1806         roll    $5,%eax
1807         xorl    %ecx,%edi
1808         addl    %eax,%ebp
1809         rorl    $7,%ebx
1810         addl    %edi,%ebp
1811         addl    16(%rsp),%edx
1812         pxor    %xmm1,%xmm5
1813 .byte   102,68,15,58,15,195,8
1814         xorl    %ecx,%esi
1815         movl    %ebp,%edi
1816         roll    $5,%ebp
1817         pxor    %xmm6,%xmm5
1818         xorl    %ebx,%esi
1819         addl    %ebp,%edx
1820         movdqa  %xmm9,%xmm10
1821         paddd   %xmm4,%xmm9
1822         rorl    $7,%eax
1823         addl    %esi,%edx
1824         pxor    %xmm8,%xmm5
1825         addl    20(%rsp),%ecx
1826         xorl    %ebx,%edi
1827         movl    %edx,%esi
1828         roll    $5,%edx
1829         movdqa  %xmm5,%xmm8
1830         movdqa  %xmm9,0(%rsp)
1831         xorl    %eax,%edi
1832         addl    %edx,%ecx
1833         rorl    $7,%ebp
1834         addl    %edi,%ecx
1835         pslld   $2,%xmm5
1836         addl    24(%rsp),%ebx
1837         xorl    %eax,%esi
1838         psrld   $30,%xmm8
1839         movl    %ecx,%edi
1840         roll    $5,%ecx
1841         xorl    %ebp,%esi
1842         addl    %ecx,%ebx
1843         rorl    $7,%edx
1844         addl    %esi,%ebx
1845         por     %xmm8,%xmm5
1846         addl    28(%rsp),%eax
1847         xorl    %ebp,%edi
1848         movdqa  %xmm5,%xmm9
1849         movl    %ebx,%esi
1850         roll    $5,%ebx
1851         xorl    %edx,%edi
1852         addl    %ebx,%eax
1853         rorl    $7,%ecx
1854         addl    %edi,%eax
1855         movl    %ecx,%edi
1856         pxor    %xmm2,%xmm6
1857 .byte   102,68,15,58,15,204,8
1858         xorl    %edx,%ecx
1859         addl    32(%rsp),%ebp
1860         andl    %edx,%edi
1861         pxor    %xmm7,%xmm6
1862         andl    %ecx,%esi
1863         rorl    $7,%ebx
1864         movdqa  %xmm10,%xmm8
1865         paddd   %xmm5,%xmm10
1866         addl    %edi,%ebp
1867         movl    %eax,%edi
1868         pxor    %xmm9,%xmm6
1869         roll    $5,%eax
1870         addl    %esi,%ebp
1871         xorl    %edx,%ecx
1872         addl    %eax,%ebp
1873         movdqa  %xmm6,%xmm9
1874         movdqa  %xmm10,16(%rsp)
1875         movl    %ebx,%esi
1876         xorl    %ecx,%ebx
1877         addl    36(%rsp),%edx
1878         andl    %ecx,%esi
1879         pslld   $2,%xmm6
1880         andl    %ebx,%edi
1881         rorl    $7,%eax
1882         psrld   $30,%xmm9
1883         addl    %esi,%edx
1884         movl    %ebp,%esi
1885         roll    $5,%ebp
1886         addl    %edi,%edx
1887         xorl    %ecx,%ebx
1888         addl    %ebp,%edx
1889         por     %xmm9,%xmm6
1890         movl    %eax,%edi
1891         xorl    %ebx,%eax
1892         movdqa  %xmm6,%xmm10
1893         addl    40(%rsp),%ecx
1894         andl    %ebx,%edi
1895         andl    %eax,%esi
1896         rorl    $7,%ebp
1897         addl    %edi,%ecx
1898         movl    %edx,%edi
1899         roll    $5,%edx
1900         addl    %esi,%ecx
1901         xorl    %ebx,%eax
1902         addl    %edx,%ecx
1903         movl    %ebp,%esi
1904         xorl    %eax,%ebp
1905         addl    44(%rsp),%ebx
1906         andl    %eax,%esi
1907         andl    %ebp,%edi
1908         rorl    $7,%edx
1909         addl    %esi,%ebx
1910         movl    %ecx,%esi
1911         roll    $5,%ecx
1912         addl    %edi,%ebx
1913         xorl    %eax,%ebp
1914         addl    %ecx,%ebx
1915         movl    %edx,%edi
1916         pxor    %xmm3,%xmm7
1917 .byte   102,68,15,58,15,213,8
1918         xorl    %ebp,%edx
1919         addl    48(%rsp),%eax
1920         andl    %ebp,%edi
1921         pxor    %xmm0,%xmm7
1922         andl    %edx,%esi
1923         rorl    $7,%ecx
1924         movdqa  48(%r11),%xmm9
1925         paddd   %xmm6,%xmm8
1926         addl    %edi,%eax
1927         movl    %ebx,%edi
1928         pxor    %xmm10,%xmm7
1929         roll    $5,%ebx
1930         addl    %esi,%eax
1931         xorl    %ebp,%edx
1932         addl    %ebx,%eax
1933         movdqa  %xmm7,%xmm10
1934         movdqa  %xmm8,32(%rsp)
1935         movl    %ecx,%esi
1936         xorl    %edx,%ecx
1937         addl    52(%rsp),%ebp
1938         andl    %edx,%esi
1939         pslld   $2,%xmm7
1940         andl    %ecx,%edi
1941         rorl    $7,%ebx
1942         psrld   $30,%xmm10
1943         addl    %esi,%ebp
1944         movl    %eax,%esi
1945         roll    $5,%eax
1946         addl    %edi,%ebp
1947         xorl    %edx,%ecx
1948         addl    %eax,%ebp
1949         por     %xmm10,%xmm7
1950         movl    %ebx,%edi
1951         xorl    %ecx,%ebx
1952         movdqa  %xmm7,%xmm8
1953         addl    56(%rsp),%edx
1954         andl    %ecx,%edi
1955         andl    %ebx,%esi
1956         rorl    $7,%eax
1957         addl    %edi,%edx
1958         movl    %ebp,%edi
1959         roll    $5,%ebp
1960         addl    %esi,%edx
1961         xorl    %ecx,%ebx
1962         addl    %ebp,%edx
1963         movl    %eax,%esi
1964         xorl    %ebx,%eax
1965         addl    60(%rsp),%ecx
1966         andl    %ebx,%esi
1967         andl    %eax,%edi
1968         rorl    $7,%ebp
1969         addl    %esi,%ecx
1970         movl    %edx,%esi
1971         roll    $5,%edx
1972         addl    %edi,%ecx
1973         xorl    %ebx,%eax
1974         addl    %edx,%ecx
1975         movl    %ebp,%edi
1976         pxor    %xmm4,%xmm0
1977 .byte   102,68,15,58,15,198,8
1978         xorl    %eax,%ebp
1979         addl    0(%rsp),%ebx
1980         andl    %eax,%edi
1981         pxor    %xmm1,%xmm0
1982         andl    %ebp,%esi
1983         rorl    $7,%edx
1984         movdqa  %xmm9,%xmm10
1985         paddd   %xmm7,%xmm9
1986         addl    %edi,%ebx
1987         movl    %ecx,%edi
1988         pxor    %xmm8,%xmm0
1989         roll    $5,%ecx
1990         addl    %esi,%ebx
1991         xorl    %eax,%ebp
1992         addl    %ecx,%ebx
1993         movdqa  %xmm0,%xmm8
1994         movdqa  %xmm9,48(%rsp)
1995         movl    %edx,%esi
1996         xorl    %ebp,%edx
1997         addl    4(%rsp),%eax
1998         andl    %ebp,%esi
1999         pslld   $2,%xmm0
2000         andl    %edx,%edi
2001         rorl    $7,%ecx
2002         psrld   $30,%xmm8
2003         addl    %esi,%eax
2004         movl    %ebx,%esi
2005         roll    $5,%ebx
2006         addl    %edi,%eax
2007         xorl    %ebp,%edx
2008         addl    %ebx,%eax
2009         por     %xmm8,%xmm0
2010         movl    %ecx,%edi
2011         xorl    %edx,%ecx
2012         movdqa  %xmm0,%xmm9
2013         addl    8(%rsp),%ebp
2014         andl    %edx,%edi
2015         andl    %ecx,%esi
2016         rorl    $7,%ebx
2017         addl    %edi,%ebp
2018         movl    %eax,%edi
2019         roll    $5,%eax
2020         addl    %esi,%ebp
2021         xorl    %edx,%ecx
2022         addl    %eax,%ebp
2023         movl    %ebx,%esi
2024         xorl    %ecx,%ebx
2025         addl    12(%rsp),%edx
2026         andl    %ecx,%esi
2027         andl    %ebx,%edi
2028         rorl    $7,%eax
2029         addl    %esi,%edx
2030         movl    %ebp,%esi
2031         roll    $5,%ebp
2032         addl    %edi,%edx
2033         xorl    %ecx,%ebx
2034         addl    %ebp,%edx
2035         movl    %eax,%edi
2036         pxor    %xmm5,%xmm1
2037 .byte   102,68,15,58,15,207,8
2038         xorl    %ebx,%eax
2039         addl    16(%rsp),%ecx
2040         andl    %ebx,%edi
2041         pxor    %xmm2,%xmm1
2042         andl    %eax,%esi
2043         rorl    $7,%ebp
2044         movdqa  %xmm10,%xmm8
2045         paddd   %xmm0,%xmm10
2046         addl    %edi,%ecx
2047         movl    %edx,%edi
2048         pxor    %xmm9,%xmm1
2049         roll    $5,%edx
2050         addl    %esi,%ecx
2051         xorl    %ebx,%eax
2052         addl    %edx,%ecx
2053         movdqa  %xmm1,%xmm9
2054         movdqa  %xmm10,0(%rsp)
2055         movl    %ebp,%esi
2056         xorl    %eax,%ebp
2057         addl    20(%rsp),%ebx
2058         andl    %eax,%esi
2059         pslld   $2,%xmm1
2060         andl    %ebp,%edi
2061         rorl    $7,%edx
2062         psrld   $30,%xmm9
2063         addl    %esi,%ebx
2064         movl    %ecx,%esi
2065         roll    $5,%ecx
2066         addl    %edi,%ebx
2067         xorl    %eax,%ebp
2068         addl    %ecx,%ebx
2069         por     %xmm9,%xmm1
2070         movl    %edx,%edi
2071         xorl    %ebp,%edx
2072         movdqa  %xmm1,%xmm10
2073         addl    24(%rsp),%eax
2074         andl    %ebp,%edi
2075         andl    %edx,%esi
2076         rorl    $7,%ecx
2077         addl    %edi,%eax
2078         movl    %ebx,%edi
2079         roll    $5,%ebx
2080         addl    %esi,%eax
2081         xorl    %ebp,%edx
2082         addl    %ebx,%eax
2083         movl    %ecx,%esi
2084         xorl    %edx,%ecx
2085         addl    28(%rsp),%ebp
2086         andl    %edx,%esi
2087         andl    %ecx,%edi
2088         rorl    $7,%ebx
2089         addl    %esi,%ebp
2090         movl    %eax,%esi
2091         roll    $5,%eax
2092         addl    %edi,%ebp
2093         xorl    %edx,%ecx
2094         addl    %eax,%ebp
2095         movl    %ebx,%edi
2096         pxor    %xmm6,%xmm2
2097 .byte   102,68,15,58,15,208,8
2098         xorl    %ecx,%ebx
2099         addl    32(%rsp),%edx
2100         andl    %ecx,%edi
2101         pxor    %xmm3,%xmm2
2102         andl    %ebx,%esi
2103         rorl    $7,%eax
2104         movdqa  %xmm8,%xmm9
2105         paddd   %xmm1,%xmm8
2106         addl    %edi,%edx
2107         movl    %ebp,%edi
2108         pxor    %xmm10,%xmm2
2109         roll    $5,%ebp
2110         addl    %esi,%edx
2111         xorl    %ecx,%ebx
2112         addl    %ebp,%edx
2113         movdqa  %xmm2,%xmm10
2114         movdqa  %xmm8,16(%rsp)
2115         movl    %eax,%esi
2116         xorl    %ebx,%eax
2117         addl    36(%rsp),%ecx
2118         andl    %ebx,%esi
2119         pslld   $2,%xmm2
2120         andl    %eax,%edi
2121         rorl    $7,%ebp
2122         psrld   $30,%xmm10
2123         addl    %esi,%ecx
2124         movl    %edx,%esi
2125         roll    $5,%edx
2126         addl    %edi,%ecx
2127         xorl    %ebx,%eax
2128         addl    %edx,%ecx
2129         por     %xmm10,%xmm2
2130         movl    %ebp,%edi
2131         xorl    %eax,%ebp
2132         movdqa  %xmm2,%xmm8
2133         addl    40(%rsp),%ebx
2134         andl    %eax,%edi
2135         andl    %ebp,%esi
2136         rorl    $7,%edx
2137         addl    %edi,%ebx
2138         movl    %ecx,%edi
2139         roll    $5,%ecx
2140         addl    %esi,%ebx
2141         xorl    %eax,%ebp
2142         addl    %ecx,%ebx
2143         movl    %edx,%esi
2144         xorl    %ebp,%edx
2145         addl    44(%rsp),%eax
2146         andl    %ebp,%esi
2147         andl    %edx,%edi
2148         rorl    $7,%ecx
2149         addl    %esi,%eax
2150         movl    %ebx,%esi
2151         roll    $5,%ebx
2152         addl    %edi,%eax
2153         xorl    %ebp,%edx
2154         addl    %ebx,%eax
2155         addl    48(%rsp),%ebp
2156         pxor    %xmm7,%xmm3
2157 .byte   102,68,15,58,15,193,8
2158         xorl    %edx,%esi
2159         movl    %eax,%edi
2160         roll    $5,%eax
2161         pxor    %xmm4,%xmm3
2162         xorl    %ecx,%esi
2163         addl    %eax,%ebp
2164         movdqa  %xmm9,%xmm10
2165         paddd   %xmm2,%xmm9
2166         rorl    $7,%ebx
2167         addl    %esi,%ebp
2168         pxor    %xmm8,%xmm3
2169         addl    52(%rsp),%edx
2170         xorl    %ecx,%edi
2171         movl    %ebp,%esi
2172         roll    $5,%ebp
2173         movdqa  %xmm3,%xmm8
2174         movdqa  %xmm9,32(%rsp)
2175         xorl    %ebx,%edi
2176         addl    %ebp,%edx
2177         rorl    $7,%eax
2178         addl    %edi,%edx
2179         pslld   $2,%xmm3
2180         addl    56(%rsp),%ecx
2181         xorl    %ebx,%esi
2182         psrld   $30,%xmm8
2183         movl    %edx,%edi
2184         roll    $5,%edx
2185         xorl    %eax,%esi
2186         addl    %edx,%ecx
2187         rorl    $7,%ebp
2188         addl    %esi,%ecx
2189         por     %xmm8,%xmm3
2190         addl    60(%rsp),%ebx
2191         xorl    %eax,%edi
2192         movl    %ecx,%esi
2193         roll    $5,%ecx
2194         xorl    %ebp,%edi
2195         addl    %ecx,%ebx
2196         rorl    $7,%edx
2197         addl    %edi,%ebx
2198         addl    0(%rsp),%eax
2199         paddd   %xmm3,%xmm10
2200         xorl    %ebp,%esi
2201         movl    %ebx,%edi
2202         roll    $5,%ebx
2203         xorl    %edx,%esi
2204         movdqa  %xmm10,48(%rsp)
2205         addl    %ebx,%eax
2206         rorl    $7,%ecx
2207         addl    %esi,%eax
2208         addl    4(%rsp),%ebp
2209         xorl    %edx,%edi
2210         movl    %eax,%esi
2211         roll    $5,%eax
2212         xorl    %ecx,%edi
2213         addl    %eax,%ebp
2214         rorl    $7,%ebx
2215         addl    %edi,%ebp
2216         addl    8(%rsp),%edx
2217         xorl    %ecx,%esi
2218         movl    %ebp,%edi
2219         roll    $5,%ebp
2220         xorl    %ebx,%esi
2221         addl    %ebp,%edx
2222         rorl    $7,%eax
2223         addl    %esi,%edx
2224         addl    12(%rsp),%ecx
2225         xorl    %ebx,%edi
2226         movl    %edx,%esi
2227         roll    $5,%edx
2228         xorl    %eax,%edi
2229         addl    %edx,%ecx
2230         rorl    $7,%ebp
2231         addl    %edi,%ecx
2232         cmpq    %r10,%r9
2233         je      .Ldone_ssse3
2234         movdqa  64(%r11),%xmm6
2235         movdqa  0(%r11),%xmm9
2236         movdqu  0(%r9),%xmm0
2237         movdqu  16(%r9),%xmm1
2238         movdqu  32(%r9),%xmm2
2239         movdqu  48(%r9),%xmm3
2240 .byte   102,15,56,0,198
2241         addq    $64,%r9
2242         addl    16(%rsp),%ebx
2243         xorl    %eax,%esi
2244 .byte   102,15,56,0,206
2245         movl    %ecx,%edi
2246         roll    $5,%ecx
2247         paddd   %xmm9,%xmm0
2248         xorl    %ebp,%esi
2249         addl    %ecx,%ebx
2250         rorl    $7,%edx
2251         addl    %esi,%ebx
2252         movdqa  %xmm0,0(%rsp)
2253         addl    20(%rsp),%eax
2254         xorl    %ebp,%edi
2255         psubd   %xmm9,%xmm0
2256         movl    %ebx,%esi
2257         roll    $5,%ebx
2258         xorl    %edx,%edi
2259         addl    %ebx,%eax
2260         rorl    $7,%ecx
2261         addl    %edi,%eax
2262         addl    24(%rsp),%ebp
2263         xorl    %edx,%esi
2264         movl    %eax,%edi
2265         roll    $5,%eax
2266         xorl    %ecx,%esi
2267         addl    %eax,%ebp
2268         rorl    $7,%ebx
2269         addl    %esi,%ebp
2270         addl    28(%rsp),%edx
2271         xorl    %ecx,%edi
2272         movl    %ebp,%esi
2273         roll    $5,%ebp
2274         xorl    %ebx,%edi
2275         addl    %ebp,%edx
2276         rorl    $7,%eax
2277         addl    %edi,%edx
2278         addl    32(%rsp),%ecx
2279         xorl    %ebx,%esi
2280 .byte   102,15,56,0,214
2281         movl    %edx,%edi
2282         roll    $5,%edx
2283         paddd   %xmm9,%xmm1
2284         xorl    %eax,%esi
2285         addl    %edx,%ecx
2286         rorl    $7,%ebp
2287         addl    %esi,%ecx
2288         movdqa  %xmm1,16(%rsp)
2289         addl    36(%rsp),%ebx
2290         xorl    %eax,%edi
2291         psubd   %xmm9,%xmm1
2292         movl    %ecx,%esi
2293         roll    $5,%ecx
2294         xorl    %ebp,%edi
2295         addl    %ecx,%ebx
2296         rorl    $7,%edx
2297         addl    %edi,%ebx
2298         addl    40(%rsp),%eax
2299         xorl    %ebp,%esi
2300         movl    %ebx,%edi
2301         roll    $5,%ebx
2302         xorl    %edx,%esi
2303         addl    %ebx,%eax
2304         rorl    $7,%ecx
2305         addl    %esi,%eax
2306         addl    44(%rsp),%ebp
2307         xorl    %edx,%edi
2308         movl    %eax,%esi
2309         roll    $5,%eax
2310         xorl    %ecx,%edi
2311         addl    %eax,%ebp
2312         rorl    $7,%ebx
2313         addl    %edi,%ebp
2314         addl    48(%rsp),%edx
2315         xorl    %ecx,%esi
2316 .byte   102,15,56,0,222
2317         movl    %ebp,%edi
2318         roll    $5,%ebp
2319         paddd   %xmm9,%xmm2
2320         xorl    %ebx,%esi
2321         addl    %ebp,%edx
2322         rorl    $7,%eax
2323         addl    %esi,%edx
2324         movdqa  %xmm2,32(%rsp)
2325         addl    52(%rsp),%ecx
2326         xorl    %ebx,%edi
2327         psubd   %xmm9,%xmm2
2328         movl    %edx,%esi
2329         roll    $5,%edx
2330         xorl    %eax,%edi
2331         addl    %edx,%ecx
2332         rorl    $7,%ebp
2333         addl    %edi,%ecx
2334         addl    56(%rsp),%ebx
2335         xorl    %eax,%esi
2336         movl    %ecx,%edi
2337         roll    $5,%ecx
2338         xorl    %ebp,%esi
2339         addl    %ecx,%ebx
2340         rorl    $7,%edx
2341         addl    %esi,%ebx
2342         addl    60(%rsp),%eax
2343         xorl    %ebp,%edi
2344         movl    %ebx,%esi
2345         roll    $5,%ebx
2346         xorl    %edx,%edi
2347         addl    %ebx,%eax
2348         rorl    $7,%ecx
2349         addl    %edi,%eax
2350         addl    0(%r8),%eax
2351         addl    4(%r8),%esi
2352         addl    8(%r8),%ecx
2353         addl    12(%r8),%edx
2354         movl    %eax,0(%r8)
2355         addl    16(%r8),%ebp
2356         movl    %esi,4(%r8)
2357         movl    %esi,%ebx
2358         movl    %ecx,8(%r8)
2359         movl    %edx,12(%r8)
2360         movl    %ebp,16(%r8)
2361         jmp     .Loop_ssse3
2362
2363 .align  16
2364 .Ldone_ssse3:
2365         addl    16(%rsp),%ebx
2366         xorl    %eax,%esi
2367         movl    %ecx,%edi
2368         roll    $5,%ecx
2369         xorl    %ebp,%esi
2370         addl    %ecx,%ebx
2371         rorl    $7,%edx
2372         addl    %esi,%ebx
2373         addl    20(%rsp),%eax
2374         xorl    %ebp,%edi
2375         movl    %ebx,%esi
2376         roll    $5,%ebx
2377         xorl    %edx,%edi
2378         addl    %ebx,%eax
2379         rorl    $7,%ecx
2380         addl    %edi,%eax
2381         addl    24(%rsp),%ebp
2382         xorl    %edx,%esi
2383         movl    %eax,%edi
2384         roll    $5,%eax
2385         xorl    %ecx,%esi
2386         addl    %eax,%ebp
2387         rorl    $7,%ebx
2388         addl    %esi,%ebp
2389         addl    28(%rsp),%edx
2390         xorl    %ecx,%edi
2391         movl    %ebp,%esi
2392         roll    $5,%ebp
2393         xorl    %ebx,%edi
2394         addl    %ebp,%edx
2395         rorl    $7,%eax
2396         addl    %edi,%edx
2397         addl    32(%rsp),%ecx
2398         xorl    %ebx,%esi
2399         movl    %edx,%edi
2400         roll    $5,%edx
2401         xorl    %eax,%esi
2402         addl    %edx,%ecx
2403         rorl    $7,%ebp
2404         addl    %esi,%ecx
2405         addl    36(%rsp),%ebx
2406         xorl    %eax,%edi
2407         movl    %ecx,%esi
2408         roll    $5,%ecx
2409         xorl    %ebp,%edi
2410         addl    %ecx,%ebx
2411         rorl    $7,%edx
2412         addl    %edi,%ebx
2413         addl    40(%rsp),%eax
2414         xorl    %ebp,%esi
2415         movl    %ebx,%edi
2416         roll    $5,%ebx
2417         xorl    %edx,%esi
2418         addl    %ebx,%eax
2419         rorl    $7,%ecx
2420         addl    %esi,%eax
2421         addl    44(%rsp),%ebp
2422         xorl    %edx,%edi
2423         movl    %eax,%esi
2424         roll    $5,%eax
2425         xorl    %ecx,%edi
2426         addl    %eax,%ebp
2427         rorl    $7,%ebx
2428         addl    %edi,%ebp
2429         addl    48(%rsp),%edx
2430         xorl    %ecx,%esi
2431         movl    %ebp,%edi
2432         roll    $5,%ebp
2433         xorl    %ebx,%esi
2434         addl    %ebp,%edx
2435         rorl    $7,%eax
2436         addl    %esi,%edx
2437         addl    52(%rsp),%ecx
2438         xorl    %ebx,%edi
2439         movl    %edx,%esi
2440         roll    $5,%edx
2441         xorl    %eax,%edi
2442         addl    %edx,%ecx
2443         rorl    $7,%ebp
2444         addl    %edi,%ecx
2445         addl    56(%rsp),%ebx
2446         xorl    %eax,%esi
2447         movl    %ecx,%edi
2448         roll    $5,%ecx
2449         xorl    %ebp,%esi
2450         addl    %ecx,%ebx
2451         rorl    $7,%edx
2452         addl    %esi,%ebx
2453         addl    60(%rsp),%eax
2454         xorl    %ebp,%edi
2455         movl    %ebx,%esi
2456         roll    $5,%ebx
2457         xorl    %edx,%edi
2458         addl    %ebx,%eax
2459         rorl    $7,%ecx
2460         addl    %edi,%eax
2461         addl    0(%r8),%eax
2462         addl    4(%r8),%esi
2463         addl    8(%r8),%ecx
2464         movl    %eax,0(%r8)
2465         addl    12(%r8),%edx
2466         movl    %esi,4(%r8)
2467         addl    16(%r8),%ebp
2468         movl    %ecx,8(%r8)
2469         movl    %edx,12(%r8)
2470         movl    %ebp,16(%r8)
2471         leaq    64(%rsp),%rsi
2472         movq    0(%rsi),%r12
2473         movq    8(%rsi),%rbp
2474         movq    16(%rsi),%rbx
2475         leaq    24(%rsi),%rsp
2476 .Lepilogue_ssse3:
2477         .byte   0xf3,0xc3
2478 .size   sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2479 .align  64
2480 K_XX_XX:
2481 .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     
2482 .long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1     
2483 .long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc     
2484 .long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6     
2485 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     
2486 .byte   83,72,65,49,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
2487 .align  64