]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - secure/lib/libcrypto/i386/sha512-586.S
- Make libcrypto.so position independent on i386.
[FreeBSD/stable/10.git] / secure / lib / libcrypto / i386 / sha512-586.S
1 # $FreeBSD$
2 # Do not modify. This file is auto-generated from sha512-586.pl.
3 #ifdef PIC
4 .file   "sha512-586.S"
5 .text
6 .globl  sha512_block_data_order
7 .type   sha512_block_data_order,@function
8 .align  16
9 sha512_block_data_order:
10 .L_sha512_block_data_order_begin:
11         pushl   %ebp
12         pushl   %ebx
13         pushl   %esi
14         pushl   %edi
15         movl    20(%esp),%esi
16         movl    24(%esp),%edi
17         movl    28(%esp),%eax
18         movl    %esp,%ebx
19         call    .L000pic_point
20 .L000pic_point:
21         popl    %ebp
22         leal    .L001K512-.L000pic_point(%ebp),%ebp
23         subl    $16,%esp
24         andl    $-64,%esp
25         shll    $7,%eax
26         addl    %edi,%eax
27         movl    %esi,(%esp)
28         movl    %edi,4(%esp)
29         movl    %eax,8(%esp)
30         movl    %ebx,12(%esp)
31         leal    _GLOBAL_OFFSET_TABLE_+[.-.L001K512](%ebp),%edx
32         movl    OPENSSL_ia32cap_P@GOT(%edx),%edx
33         btl     $26,(%edx)
34         jnc     .L002loop_x86
35         movq    (%esi),%mm0
36         movq    8(%esi),%mm1
37         movq    16(%esi),%mm2
38         movq    24(%esi),%mm3
39         movq    32(%esi),%mm4
40         movq    40(%esi),%mm5
41         movq    48(%esi),%mm6
42         movq    56(%esi),%mm7
43         subl    $80,%esp
44 .align  16
45 .L003loop_sse2:
46         movq    %mm1,8(%esp)
47         movq    %mm2,16(%esp)
48         movq    %mm3,24(%esp)
49         movq    %mm5,40(%esp)
50         movq    %mm6,48(%esp)
51         movq    %mm7,56(%esp)
52         movl    (%edi),%ecx
53         movl    4(%edi),%edx
54         addl    $8,%edi
55         bswap   %ecx
56         bswap   %edx
57         movl    %ecx,76(%esp)
58         movl    %edx,72(%esp)
59 .align  16
60 .L00400_14_sse2:
61         movl    (%edi),%eax
62         movl    4(%edi),%ebx
63         addl    $8,%edi
64         bswap   %eax
65         bswap   %ebx
66         movl    %eax,68(%esp)
67         movl    %ebx,64(%esp)
68         movq    40(%esp),%mm5
69         movq    48(%esp),%mm6
70         movq    56(%esp),%mm7
71         movq    %mm4,%mm1
72         movq    %mm4,%mm2
73         psrlq   $14,%mm1
74         movq    %mm4,32(%esp)
75         psllq   $23,%mm2
76         movq    %mm1,%mm3
77         psrlq   $4,%mm1
78         pxor    %mm2,%mm3
79         psllq   $23,%mm2
80         pxor    %mm1,%mm3
81         psrlq   $23,%mm1
82         pxor    %mm2,%mm3
83         psllq   $4,%mm2
84         pxor    %mm1,%mm3
85         paddq   (%ebp),%mm7
86         pxor    %mm2,%mm3
87         pxor    %mm6,%mm5
88         movq    8(%esp),%mm1
89         pand    %mm4,%mm5
90         movq    16(%esp),%mm2
91         pxor    %mm6,%mm5
92         movq    24(%esp),%mm4
93         paddq   %mm5,%mm3
94         movq    %mm0,(%esp)
95         paddq   %mm7,%mm3
96         movq    %mm0,%mm5
97         movq    %mm0,%mm6
98         paddq   72(%esp),%mm3
99         psrlq   $28,%mm5
100         paddq   %mm3,%mm4
101         psllq   $25,%mm6
102         movq    %mm5,%mm7
103         psrlq   $6,%mm5
104         pxor    %mm6,%mm7
105         psllq   $5,%mm6
106         pxor    %mm5,%mm7
107         psrlq   $5,%mm5
108         pxor    %mm6,%mm7
109         psllq   $6,%mm6
110         pxor    %mm5,%mm7
111         subl    $8,%esp
112         pxor    %mm6,%mm7
113         movq    %mm0,%mm5
114         por     %mm2,%mm0
115         pand    %mm2,%mm5
116         pand    %mm1,%mm0
117         por     %mm0,%mm5
118         paddq   %mm5,%mm7
119         movq    %mm3,%mm0
120         movb    (%ebp),%dl
121         paddq   %mm7,%mm0
122         addl    $8,%ebp
123         cmpb    $53,%dl
124         jne     .L00400_14_sse2
125         movq    40(%esp),%mm5
126         movq    48(%esp),%mm6
127         movq    56(%esp),%mm7
128         movq    %mm4,%mm1
129         movq    %mm4,%mm2
130         psrlq   $14,%mm1
131         movq    %mm4,32(%esp)
132         psllq   $23,%mm2
133         movq    %mm1,%mm3
134         psrlq   $4,%mm1
135         pxor    %mm2,%mm3
136         psllq   $23,%mm2
137         pxor    %mm1,%mm3
138         psrlq   $23,%mm1
139         pxor    %mm2,%mm3
140         psllq   $4,%mm2
141         pxor    %mm1,%mm3
142         paddq   (%ebp),%mm7
143         pxor    %mm2,%mm3
144         pxor    %mm6,%mm5
145         movq    8(%esp),%mm1
146         pand    %mm4,%mm5
147         movq    16(%esp),%mm2
148         pxor    %mm6,%mm5
149         movq    24(%esp),%mm4
150         paddq   %mm5,%mm3
151         movq    %mm0,(%esp)
152         paddq   %mm7,%mm3
153         movq    %mm0,%mm5
154         movq    %mm0,%mm6
155         paddq   72(%esp),%mm3
156         psrlq   $28,%mm5
157         paddq   %mm3,%mm4
158         psllq   $25,%mm6
159         movq    %mm5,%mm7
160         psrlq   $6,%mm5
161         pxor    %mm6,%mm7
162         psllq   $5,%mm6
163         pxor    %mm5,%mm7
164         psrlq   $5,%mm5
165         pxor    %mm6,%mm7
166         psllq   $6,%mm6
167         pxor    %mm5,%mm7
168         subl    $8,%esp
169         pxor    %mm6,%mm7
170         movq    %mm0,%mm5
171         por     %mm2,%mm0
172         movq    88(%esp),%mm6
173         pand    %mm2,%mm5
174         pand    %mm1,%mm0
175         movq    192(%esp),%mm2
176         por     %mm0,%mm5
177         paddq   %mm5,%mm7
178         movq    %mm3,%mm0
179         movb    (%ebp),%dl
180         paddq   %mm7,%mm0
181         addl    $8,%ebp
182 .align  16
183 .L00516_79_sse2:
184         movq    %mm2,%mm1
185         psrlq   $1,%mm2
186         movq    %mm6,%mm7
187         psrlq   $6,%mm6
188         movq    %mm2,%mm3
189         psrlq   $6,%mm2
190         movq    %mm6,%mm5
191         psrlq   $13,%mm6
192         pxor    %mm2,%mm3
193         psrlq   $1,%mm2
194         pxor    %mm6,%mm5
195         psrlq   $42,%mm6
196         pxor    %mm2,%mm3
197         movq    200(%esp),%mm2
198         psllq   $56,%mm1
199         pxor    %mm6,%mm5
200         psllq   $3,%mm7
201         pxor    %mm1,%mm3
202         paddq   128(%esp),%mm2
203         psllq   $7,%mm1
204         pxor    %mm7,%mm5
205         psllq   $42,%mm7
206         pxor    %mm1,%mm3
207         pxor    %mm7,%mm5
208         paddq   %mm5,%mm3
209         paddq   %mm2,%mm3
210         movq    %mm3,72(%esp)
211         movq    40(%esp),%mm5
212         movq    48(%esp),%mm6
213         movq    56(%esp),%mm7
214         movq    %mm4,%mm1
215         movq    %mm4,%mm2
216         psrlq   $14,%mm1
217         movq    %mm4,32(%esp)
218         psllq   $23,%mm2
219         movq    %mm1,%mm3
220         psrlq   $4,%mm1
221         pxor    %mm2,%mm3
222         psllq   $23,%mm2
223         pxor    %mm1,%mm3
224         psrlq   $23,%mm1
225         pxor    %mm2,%mm3
226         psllq   $4,%mm2
227         pxor    %mm1,%mm3
228         paddq   (%ebp),%mm7
229         pxor    %mm2,%mm3
230         pxor    %mm6,%mm5
231         movq    8(%esp),%mm1
232         pand    %mm4,%mm5
233         movq    16(%esp),%mm2
234         pxor    %mm6,%mm5
235         movq    24(%esp),%mm4
236         paddq   %mm5,%mm3
237         movq    %mm0,(%esp)
238         paddq   %mm7,%mm3
239         movq    %mm0,%mm5
240         movq    %mm0,%mm6
241         paddq   72(%esp),%mm3
242         psrlq   $28,%mm5
243         paddq   %mm3,%mm4
244         psllq   $25,%mm6
245         movq    %mm5,%mm7
246         psrlq   $6,%mm5
247         pxor    %mm6,%mm7
248         psllq   $5,%mm6
249         pxor    %mm5,%mm7
250         psrlq   $5,%mm5
251         pxor    %mm6,%mm7
252         psllq   $6,%mm6
253         pxor    %mm5,%mm7
254         subl    $8,%esp
255         pxor    %mm6,%mm7
256         movq    %mm0,%mm5
257         por     %mm2,%mm0
258         movq    88(%esp),%mm6
259         pand    %mm2,%mm5
260         pand    %mm1,%mm0
261         movq    192(%esp),%mm2
262         por     %mm0,%mm5
263         paddq   %mm5,%mm7
264         movq    %mm3,%mm0
265         movb    (%ebp),%dl
266         paddq   %mm7,%mm0
267         addl    $8,%ebp
268         cmpb    $23,%dl
269         jne     .L00516_79_sse2
270         movq    8(%esp),%mm1
271         movq    16(%esp),%mm2
272         movq    24(%esp),%mm3
273         movq    40(%esp),%mm5
274         movq    48(%esp),%mm6
275         movq    56(%esp),%mm7
276         paddq   (%esi),%mm0
277         paddq   8(%esi),%mm1
278         paddq   16(%esi),%mm2
279         paddq   24(%esi),%mm3
280         paddq   32(%esi),%mm4
281         paddq   40(%esi),%mm5
282         paddq   48(%esi),%mm6
283         paddq   56(%esi),%mm7
284         movq    %mm0,(%esi)
285         movq    %mm1,8(%esi)
286         movq    %mm2,16(%esi)
287         movq    %mm3,24(%esi)
288         movq    %mm4,32(%esi)
289         movq    %mm5,40(%esi)
290         movq    %mm6,48(%esi)
291         movq    %mm7,56(%esi)
292         addl    $640,%esp
293         subl    $640,%ebp
294         cmpl    88(%esp),%edi
295         jb      .L003loop_sse2
296         emms
297         movl    92(%esp),%esp
298         popl    %edi
299         popl    %esi
300         popl    %ebx
301         popl    %ebp
302         ret
303 .align  16
304 .L002loop_x86:
305         movl    (%edi),%eax
306         movl    4(%edi),%ebx
307         movl    8(%edi),%ecx
308         movl    12(%edi),%edx
309         bswap   %eax
310         bswap   %ebx
311         bswap   %ecx
312         bswap   %edx
313         pushl   %eax
314         pushl   %ebx
315         pushl   %ecx
316         pushl   %edx
317         movl    16(%edi),%eax
318         movl    20(%edi),%ebx
319         movl    24(%edi),%ecx
320         movl    28(%edi),%edx
321         bswap   %eax
322         bswap   %ebx
323         bswap   %ecx
324         bswap   %edx
325         pushl   %eax
326         pushl   %ebx
327         pushl   %ecx
328         pushl   %edx
329         movl    32(%edi),%eax
330         movl    36(%edi),%ebx
331         movl    40(%edi),%ecx
332         movl    44(%edi),%edx
333         bswap   %eax
334         bswap   %ebx
335         bswap   %ecx
336         bswap   %edx
337         pushl   %eax
338         pushl   %ebx
339         pushl   %ecx
340         pushl   %edx
341         movl    48(%edi),%eax
342         movl    52(%edi),%ebx
343         movl    56(%edi),%ecx
344         movl    60(%edi),%edx
345         bswap   %eax
346         bswap   %ebx
347         bswap   %ecx
348         bswap   %edx
349         pushl   %eax
350         pushl   %ebx
351         pushl   %ecx
352         pushl   %edx
353         movl    64(%edi),%eax
354         movl    68(%edi),%ebx
355         movl    72(%edi),%ecx
356         movl    76(%edi),%edx
357         bswap   %eax
358         bswap   %ebx
359         bswap   %ecx
360         bswap   %edx
361         pushl   %eax
362         pushl   %ebx
363         pushl   %ecx
364         pushl   %edx
365         movl    80(%edi),%eax
366         movl    84(%edi),%ebx
367         movl    88(%edi),%ecx
368         movl    92(%edi),%edx
369         bswap   %eax
370         bswap   %ebx
371         bswap   %ecx
372         bswap   %edx
373         pushl   %eax
374         pushl   %ebx
375         pushl   %ecx
376         pushl   %edx
377         movl    96(%edi),%eax
378         movl    100(%edi),%ebx
379         movl    104(%edi),%ecx
380         movl    108(%edi),%edx
381         bswap   %eax
382         bswap   %ebx
383         bswap   %ecx
384         bswap   %edx
385         pushl   %eax
386         pushl   %ebx
387         pushl   %ecx
388         pushl   %edx
389         movl    112(%edi),%eax
390         movl    116(%edi),%ebx
391         movl    120(%edi),%ecx
392         movl    124(%edi),%edx
393         bswap   %eax
394         bswap   %ebx
395         bswap   %ecx
396         bswap   %edx
397         pushl   %eax
398         pushl   %ebx
399         pushl   %ecx
400         pushl   %edx
401         addl    $128,%edi
402         subl    $72,%esp
403         movl    %edi,204(%esp)
404         leal    8(%esp),%edi
405         movl    $16,%ecx
406 .long   2784229001
407 .align  16
408 .L00600_15_x86:
409         movl    40(%esp),%ecx
410         movl    44(%esp),%edx
411         movl    %ecx,%esi
412         shrl    $9,%ecx
413         movl    %edx,%edi
414         shrl    $9,%edx
415         movl    %ecx,%ebx
416         shll    $14,%esi
417         movl    %edx,%eax
418         shll    $14,%edi
419         xorl    %esi,%ebx
420         shrl    $5,%ecx
421         xorl    %edi,%eax
422         shrl    $5,%edx
423         xorl    %ecx,%eax
424         shll    $4,%esi
425         xorl    %edx,%ebx
426         shll    $4,%edi
427         xorl    %esi,%ebx
428         shrl    $4,%ecx
429         xorl    %edi,%eax
430         shrl    $4,%edx
431         xorl    %ecx,%eax
432         shll    $5,%esi
433         xorl    %edx,%ebx
434         shll    $5,%edi
435         xorl    %esi,%eax
436         xorl    %edi,%ebx
437         movl    48(%esp),%ecx
438         movl    52(%esp),%edx
439         movl    56(%esp),%esi
440         movl    60(%esp),%edi
441         addl    64(%esp),%eax
442         adcl    68(%esp),%ebx
443         xorl    %esi,%ecx
444         xorl    %edi,%edx
445         andl    40(%esp),%ecx
446         andl    44(%esp),%edx
447         addl    192(%esp),%eax
448         adcl    196(%esp),%ebx
449         xorl    %esi,%ecx
450         xorl    %edi,%edx
451         movl    (%ebp),%esi
452         movl    4(%ebp),%edi
453         addl    %ecx,%eax
454         adcl    %edx,%ebx
455         movl    32(%esp),%ecx
456         movl    36(%esp),%edx
457         addl    %esi,%eax
458         adcl    %edi,%ebx
459         movl    %eax,(%esp)
460         movl    %ebx,4(%esp)
461         addl    %ecx,%eax
462         adcl    %edx,%ebx
463         movl    8(%esp),%ecx
464         movl    12(%esp),%edx
465         movl    %eax,32(%esp)
466         movl    %ebx,36(%esp)
467         movl    %ecx,%esi
468         shrl    $2,%ecx
469         movl    %edx,%edi
470         shrl    $2,%edx
471         movl    %ecx,%ebx
472         shll    $4,%esi
473         movl    %edx,%eax
474         shll    $4,%edi
475         xorl    %esi,%ebx
476         shrl    $5,%ecx
477         xorl    %edi,%eax
478         shrl    $5,%edx
479         xorl    %ecx,%ebx
480         shll    $21,%esi
481         xorl    %edx,%eax
482         shll    $21,%edi
483         xorl    %esi,%eax
484         shrl    $21,%ecx
485         xorl    %edi,%ebx
486         shrl    $21,%edx
487         xorl    %ecx,%eax
488         shll    $5,%esi
489         xorl    %edx,%ebx
490         shll    $5,%edi
491         xorl    %esi,%eax
492         xorl    %edi,%ebx
493         movl    8(%esp),%ecx
494         movl    12(%esp),%edx
495         movl    16(%esp),%esi
496         movl    20(%esp),%edi
497         addl    (%esp),%eax
498         adcl    4(%esp),%ebx
499         orl     %esi,%ecx
500         orl     %edi,%edx
501         andl    24(%esp),%ecx
502         andl    28(%esp),%edx
503         andl    8(%esp),%esi
504         andl    12(%esp),%edi
505         orl     %esi,%ecx
506         orl     %edi,%edx
507         addl    %ecx,%eax
508         adcl    %edx,%ebx
509         movl    %eax,(%esp)
510         movl    %ebx,4(%esp)
511         movb    (%ebp),%dl
512         subl    $8,%esp
513         leal    8(%ebp),%ebp
514         cmpb    $148,%dl
515         jne     .L00600_15_x86
516 .align  16
517 .L00716_79_x86:
518         movl    312(%esp),%ecx
519         movl    316(%esp),%edx
520         movl    %ecx,%esi
521         shrl    $1,%ecx
522         movl    %edx,%edi
523         shrl    $1,%edx
524         movl    %ecx,%eax
525         shll    $24,%esi
526         movl    %edx,%ebx
527         shll    $24,%edi
528         xorl    %esi,%ebx
529         shrl    $6,%ecx
530         xorl    %edi,%eax
531         shrl    $6,%edx
532         xorl    %ecx,%eax
533         shll    $7,%esi
534         xorl    %edx,%ebx
535         shll    $1,%edi
536         xorl    %esi,%ebx
537         shrl    $1,%ecx
538         xorl    %edi,%eax
539         shrl    $1,%edx
540         xorl    %ecx,%eax
541         shll    $6,%edi
542         xorl    %edx,%ebx
543         xorl    %edi,%eax
544         movl    %eax,(%esp)
545         movl    %ebx,4(%esp)
546         movl    208(%esp),%ecx
547         movl    212(%esp),%edx
548         movl    %ecx,%esi
549         shrl    $6,%ecx
550         movl    %edx,%edi
551         shrl    $6,%edx
552         movl    %ecx,%eax
553         shll    $3,%esi
554         movl    %edx,%ebx
555         shll    $3,%edi
556         xorl    %esi,%eax
557         shrl    $13,%ecx
558         xorl    %edi,%ebx
559         shrl    $13,%edx
560         xorl    %ecx,%eax
561         shll    $10,%esi
562         xorl    %edx,%ebx
563         shll    $10,%edi
564         xorl    %esi,%ebx
565         shrl    $10,%ecx
566         xorl    %edi,%eax
567         shrl    $10,%edx
568         xorl    %ecx,%ebx
569         shll    $13,%edi
570         xorl    %edx,%eax
571         xorl    %edi,%eax
572         movl    320(%esp),%ecx
573         movl    324(%esp),%edx
574         addl    (%esp),%eax
575         adcl    4(%esp),%ebx
576         movl    248(%esp),%esi
577         movl    252(%esp),%edi
578         addl    %ecx,%eax
579         adcl    %edx,%ebx
580         addl    %esi,%eax
581         adcl    %edi,%ebx
582         movl    %eax,192(%esp)
583         movl    %ebx,196(%esp)
584         movl    40(%esp),%ecx
585         movl    44(%esp),%edx
586         movl    %ecx,%esi
587         shrl    $9,%ecx
588         movl    %edx,%edi
589         shrl    $9,%edx
590         movl    %ecx,%ebx
591         shll    $14,%esi
592         movl    %edx,%eax
593         shll    $14,%edi
594         xorl    %esi,%ebx
595         shrl    $5,%ecx
596         xorl    %edi,%eax
597         shrl    $5,%edx
598         xorl    %ecx,%eax
599         shll    $4,%esi
600         xorl    %edx,%ebx
601         shll    $4,%edi
602         xorl    %esi,%ebx
603         shrl    $4,%ecx
604         xorl    %edi,%eax
605         shrl    $4,%edx
606         xorl    %ecx,%eax
607         shll    $5,%esi
608         xorl    %edx,%ebx
609         shll    $5,%edi
610         xorl    %esi,%eax
611         xorl    %edi,%ebx
612         movl    48(%esp),%ecx
613         movl    52(%esp),%edx
614         movl    56(%esp),%esi
615         movl    60(%esp),%edi
616         addl    64(%esp),%eax
617         adcl    68(%esp),%ebx
618         xorl    %esi,%ecx
619         xorl    %edi,%edx
620         andl    40(%esp),%ecx
621         andl    44(%esp),%edx
622         addl    192(%esp),%eax
623         adcl    196(%esp),%ebx
624         xorl    %esi,%ecx
625         xorl    %edi,%edx
626         movl    (%ebp),%esi
627         movl    4(%ebp),%edi
628         addl    %ecx,%eax
629         adcl    %edx,%ebx
630         movl    32(%esp),%ecx
631         movl    36(%esp),%edx
632         addl    %esi,%eax
633         adcl    %edi,%ebx
634         movl    %eax,(%esp)
635         movl    %ebx,4(%esp)
636         addl    %ecx,%eax
637         adcl    %edx,%ebx
638         movl    8(%esp),%ecx
639         movl    12(%esp),%edx
640         movl    %eax,32(%esp)
641         movl    %ebx,36(%esp)
642         movl    %ecx,%esi
643         shrl    $2,%ecx
644         movl    %edx,%edi
645         shrl    $2,%edx
646         movl    %ecx,%ebx
647         shll    $4,%esi
648         movl    %edx,%eax
649         shll    $4,%edi
650         xorl    %esi,%ebx
651         shrl    $5,%ecx
652         xorl    %edi,%eax
653         shrl    $5,%edx
654         xorl    %ecx,%ebx
655         shll    $21,%esi
656         xorl    %edx,%eax
657         shll    $21,%edi
658         xorl    %esi,%eax
659         shrl    $21,%ecx
660         xorl    %edi,%ebx
661         shrl    $21,%edx
662         xorl    %ecx,%eax
663         shll    $5,%esi
664         xorl    %edx,%ebx
665         shll    $5,%edi
666         xorl    %esi,%eax
667         xorl    %edi,%ebx
668         movl    8(%esp),%ecx
669         movl    12(%esp),%edx
670         movl    16(%esp),%esi
671         movl    20(%esp),%edi
672         addl    (%esp),%eax
673         adcl    4(%esp),%ebx
674         orl     %esi,%ecx
675         orl     %edi,%edx
676         andl    24(%esp),%ecx
677         andl    28(%esp),%edx
678         andl    8(%esp),%esi
679         andl    12(%esp),%edi
680         orl     %esi,%ecx
681         orl     %edi,%edx
682         addl    %ecx,%eax
683         adcl    %edx,%ebx
684         movl    %eax,(%esp)
685         movl    %ebx,4(%esp)
686         movb    (%ebp),%dl
687         subl    $8,%esp
688         leal    8(%ebp),%ebp
689         cmpb    $23,%dl
690         jne     .L00716_79_x86
691         movl    840(%esp),%esi
692         movl    844(%esp),%edi
693         movl    (%esi),%eax
694         movl    4(%esi),%ebx
695         movl    8(%esi),%ecx
696         movl    12(%esi),%edx
697         addl    8(%esp),%eax
698         adcl    12(%esp),%ebx
699         movl    %eax,(%esi)
700         movl    %ebx,4(%esi)
701         addl    16(%esp),%ecx
702         adcl    20(%esp),%edx
703         movl    %ecx,8(%esi)
704         movl    %edx,12(%esi)
705         movl    16(%esi),%eax
706         movl    20(%esi),%ebx
707         movl    24(%esi),%ecx
708         movl    28(%esi),%edx
709         addl    24(%esp),%eax
710         adcl    28(%esp),%ebx
711         movl    %eax,16(%esi)
712         movl    %ebx,20(%esi)
713         addl    32(%esp),%ecx
714         adcl    36(%esp),%edx
715         movl    %ecx,24(%esi)
716         movl    %edx,28(%esi)
717         movl    32(%esi),%eax
718         movl    36(%esi),%ebx
719         movl    40(%esi),%ecx
720         movl    44(%esi),%edx
721         addl    40(%esp),%eax
722         adcl    44(%esp),%ebx
723         movl    %eax,32(%esi)
724         movl    %ebx,36(%esi)
725         addl    48(%esp),%ecx
726         adcl    52(%esp),%edx
727         movl    %ecx,40(%esi)
728         movl    %edx,44(%esi)
729         movl    48(%esi),%eax
730         movl    52(%esi),%ebx
731         movl    56(%esi),%ecx
732         movl    60(%esi),%edx
733         addl    56(%esp),%eax
734         adcl    60(%esp),%ebx
735         movl    %eax,48(%esi)
736         movl    %ebx,52(%esi)
737         addl    64(%esp),%ecx
738         adcl    68(%esp),%edx
739         movl    %ecx,56(%esi)
740         movl    %edx,60(%esi)
741         addl    $840,%esp
742         subl    $640,%ebp
743         cmpl    8(%esp),%edi
744         jb      .L002loop_x86
745         movl    12(%esp),%esp
746         popl    %edi
747         popl    %esi
748         popl    %ebx
749         popl    %ebp
750         ret
751 .align  64
752 .L001K512:
753 .long   3609767458,1116352408
754 .long   602891725,1899447441
755 .long   3964484399,3049323471
756 .long   2173295548,3921009573
757 .long   4081628472,961987163
758 .long   3053834265,1508970993
759 .long   2937671579,2453635748
760 .long   3664609560,2870763221
761 .long   2734883394,3624381080
762 .long   1164996542,310598401
763 .long   1323610764,607225278
764 .long   3590304994,1426881987
765 .long   4068182383,1925078388
766 .long   991336113,2162078206
767 .long   633803317,2614888103
768 .long   3479774868,3248222580
769 .long   2666613458,3835390401
770 .long   944711139,4022224774
771 .long   2341262773,264347078
772 .long   2007800933,604807628
773 .long   1495990901,770255983
774 .long   1856431235,1249150122
775 .long   3175218132,1555081692
776 .long   2198950837,1996064986
777 .long   3999719339,2554220882
778 .long   766784016,2821834349
779 .long   2566594879,2952996808
780 .long   3203337956,3210313671
781 .long   1034457026,3336571891
782 .long   2466948901,3584528711
783 .long   3758326383,113926993
784 .long   168717936,338241895
785 .long   1188179964,666307205
786 .long   1546045734,773529912
787 .long   1522805485,1294757372
788 .long   2643833823,1396182291
789 .long   2343527390,1695183700
790 .long   1014477480,1986661051
791 .long   1206759142,2177026350
792 .long   344077627,2456956037
793 .long   1290863460,2730485921
794 .long   3158454273,2820302411
795 .long   3505952657,3259730800
796 .long   106217008,3345764771
797 .long   3606008344,3516065817
798 .long   1432725776,3600352804
799 .long   1467031594,4094571909
800 .long   851169720,275423344
801 .long   3100823752,430227734
802 .long   1363258195,506948616
803 .long   3750685593,659060556
804 .long   3785050280,883997877
805 .long   3318307427,958139571
806 .long   3812723403,1322822218
807 .long   2003034995,1537002063
808 .long   3602036899,1747873779
809 .long   1575990012,1955562222
810 .long   1125592928,2024104815
811 .long   2716904306,2227730452
812 .long   442776044,2361852424
813 .long   593698344,2428436474
814 .long   3733110249,2756734187
815 .long   2999351573,3204031479
816 .long   3815920427,3329325298
817 .long   3928383900,3391569614
818 .long   566280711,3515267271
819 .long   3454069534,3940187606
820 .long   4000239992,4118630271
821 .long   1914138554,116418474
822 .long   2731055270,174292421
823 .long   3203993006,289380356
824 .long   320620315,460393269
825 .long   587496836,685471733
826 .long   1086792851,852142971
827 .long   365543100,1017036298
828 .long   2618297676,1126000580
829 .long   3409855158,1288033470
830 .long   4234509866,1501505948
831 .long   987167468,1607167915
832 .long   1246189591,1816402316
833 .size   sha512_block_data_order,.-.L_sha512_block_data_order_begin
834 .byte   83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
835 .byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
836 .byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
837 .byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
838 .byte   62,0
839 .comm   OPENSSL_ia32cap_P,8,4
840 #else
841 .file   "sha512-586.S"
842 .text
843 .globl  sha512_block_data_order
844 .type   sha512_block_data_order,@function
845 .align  16
846 sha512_block_data_order:
847 .L_sha512_block_data_order_begin:
848         pushl   %ebp
849         pushl   %ebx
850         pushl   %esi
851         pushl   %edi
852         movl    20(%esp),%esi
853         movl    24(%esp),%edi
854         movl    28(%esp),%eax
855         movl    %esp,%ebx
856         call    .L000pic_point
857 .L000pic_point:
858         popl    %ebp
859         leal    .L001K512-.L000pic_point(%ebp),%ebp
860         subl    $16,%esp
861         andl    $-64,%esp
862         shll    $7,%eax
863         addl    %edi,%eax
864         movl    %esi,(%esp)
865         movl    %edi,4(%esp)
866         movl    %eax,8(%esp)
867         movl    %ebx,12(%esp)
868         leal    OPENSSL_ia32cap_P,%edx
869         btl     $26,(%edx)
870         jnc     .L002loop_x86
871         movq    (%esi),%mm0
872         movq    8(%esi),%mm1
873         movq    16(%esi),%mm2
874         movq    24(%esi),%mm3
875         movq    32(%esi),%mm4
876         movq    40(%esi),%mm5
877         movq    48(%esi),%mm6
878         movq    56(%esi),%mm7
879         subl    $80,%esp
880 .align  16
881 .L003loop_sse2:
882         movq    %mm1,8(%esp)
883         movq    %mm2,16(%esp)
884         movq    %mm3,24(%esp)
885         movq    %mm5,40(%esp)
886         movq    %mm6,48(%esp)
887         movq    %mm7,56(%esp)
888         movl    (%edi),%ecx
889         movl    4(%edi),%edx
890         addl    $8,%edi
891         bswap   %ecx
892         bswap   %edx
893         movl    %ecx,76(%esp)
894         movl    %edx,72(%esp)
895 .align  16
896 .L00400_14_sse2:
897         movl    (%edi),%eax
898         movl    4(%edi),%ebx
899         addl    $8,%edi
900         bswap   %eax
901         bswap   %ebx
902         movl    %eax,68(%esp)
903         movl    %ebx,64(%esp)
904         movq    40(%esp),%mm5
905         movq    48(%esp),%mm6
906         movq    56(%esp),%mm7
907         movq    %mm4,%mm1
908         movq    %mm4,%mm2
909         psrlq   $14,%mm1
910         movq    %mm4,32(%esp)
911         psllq   $23,%mm2
912         movq    %mm1,%mm3
913         psrlq   $4,%mm1
914         pxor    %mm2,%mm3
915         psllq   $23,%mm2
916         pxor    %mm1,%mm3
917         psrlq   $23,%mm1
918         pxor    %mm2,%mm3
919         psllq   $4,%mm2
920         pxor    %mm1,%mm3
921         paddq   (%ebp),%mm7
922         pxor    %mm2,%mm3
923         pxor    %mm6,%mm5
924         movq    8(%esp),%mm1
925         pand    %mm4,%mm5
926         movq    16(%esp),%mm2
927         pxor    %mm6,%mm5
928         movq    24(%esp),%mm4
929         paddq   %mm5,%mm3
930         movq    %mm0,(%esp)
931         paddq   %mm7,%mm3
932         movq    %mm0,%mm5
933         movq    %mm0,%mm6
934         paddq   72(%esp),%mm3
935         psrlq   $28,%mm5
936         paddq   %mm3,%mm4
937         psllq   $25,%mm6
938         movq    %mm5,%mm7
939         psrlq   $6,%mm5
940         pxor    %mm6,%mm7
941         psllq   $5,%mm6
942         pxor    %mm5,%mm7
943         psrlq   $5,%mm5
944         pxor    %mm6,%mm7
945         psllq   $6,%mm6
946         pxor    %mm5,%mm7
947         subl    $8,%esp
948         pxor    %mm6,%mm7
949         movq    %mm0,%mm5
950         por     %mm2,%mm0
951         pand    %mm2,%mm5
952         pand    %mm1,%mm0
953         por     %mm0,%mm5
954         paddq   %mm5,%mm7
955         movq    %mm3,%mm0
956         movb    (%ebp),%dl
957         paddq   %mm7,%mm0
958         addl    $8,%ebp
959         cmpb    $53,%dl
960         jne     .L00400_14_sse2
961         movq    40(%esp),%mm5
962         movq    48(%esp),%mm6
963         movq    56(%esp),%mm7
964         movq    %mm4,%mm1
965         movq    %mm4,%mm2
966         psrlq   $14,%mm1
967         movq    %mm4,32(%esp)
968         psllq   $23,%mm2
969         movq    %mm1,%mm3
970         psrlq   $4,%mm1
971         pxor    %mm2,%mm3
972         psllq   $23,%mm2
973         pxor    %mm1,%mm3
974         psrlq   $23,%mm1
975         pxor    %mm2,%mm3
976         psllq   $4,%mm2
977         pxor    %mm1,%mm3
978         paddq   (%ebp),%mm7
979         pxor    %mm2,%mm3
980         pxor    %mm6,%mm5
981         movq    8(%esp),%mm1
982         pand    %mm4,%mm5
983         movq    16(%esp),%mm2
984         pxor    %mm6,%mm5
985         movq    24(%esp),%mm4
986         paddq   %mm5,%mm3
987         movq    %mm0,(%esp)
988         paddq   %mm7,%mm3
989         movq    %mm0,%mm5
990         movq    %mm0,%mm6
991         paddq   72(%esp),%mm3
992         psrlq   $28,%mm5
993         paddq   %mm3,%mm4
994         psllq   $25,%mm6
995         movq    %mm5,%mm7
996         psrlq   $6,%mm5
997         pxor    %mm6,%mm7
998         psllq   $5,%mm6
999         pxor    %mm5,%mm7
1000         psrlq   $5,%mm5
1001         pxor    %mm6,%mm7
1002         psllq   $6,%mm6
1003         pxor    %mm5,%mm7
1004         subl    $8,%esp
1005         pxor    %mm6,%mm7
1006         movq    %mm0,%mm5
1007         por     %mm2,%mm0
1008         movq    88(%esp),%mm6
1009         pand    %mm2,%mm5
1010         pand    %mm1,%mm0
1011         movq    192(%esp),%mm2
1012         por     %mm0,%mm5
1013         paddq   %mm5,%mm7
1014         movq    %mm3,%mm0
1015         movb    (%ebp),%dl
1016         paddq   %mm7,%mm0
1017         addl    $8,%ebp
1018 .align  16
1019 .L00516_79_sse2:
1020         movq    %mm2,%mm1
1021         psrlq   $1,%mm2
1022         movq    %mm6,%mm7
1023         psrlq   $6,%mm6
1024         movq    %mm2,%mm3
1025         psrlq   $6,%mm2
1026         movq    %mm6,%mm5
1027         psrlq   $13,%mm6
1028         pxor    %mm2,%mm3
1029         psrlq   $1,%mm2
1030         pxor    %mm6,%mm5
1031         psrlq   $42,%mm6
1032         pxor    %mm2,%mm3
1033         movq    200(%esp),%mm2
1034         psllq   $56,%mm1
1035         pxor    %mm6,%mm5
1036         psllq   $3,%mm7
1037         pxor    %mm1,%mm3
1038         paddq   128(%esp),%mm2
1039         psllq   $7,%mm1
1040         pxor    %mm7,%mm5
1041         psllq   $42,%mm7
1042         pxor    %mm1,%mm3
1043         pxor    %mm7,%mm5
1044         paddq   %mm5,%mm3
1045         paddq   %mm2,%mm3
1046         movq    %mm3,72(%esp)
1047         movq    40(%esp),%mm5
1048         movq    48(%esp),%mm6
1049         movq    56(%esp),%mm7
1050         movq    %mm4,%mm1
1051         movq    %mm4,%mm2
1052         psrlq   $14,%mm1
1053         movq    %mm4,32(%esp)
1054         psllq   $23,%mm2
1055         movq    %mm1,%mm3
1056         psrlq   $4,%mm1
1057         pxor    %mm2,%mm3
1058         psllq   $23,%mm2
1059         pxor    %mm1,%mm3
1060         psrlq   $23,%mm1
1061         pxor    %mm2,%mm3
1062         psllq   $4,%mm2
1063         pxor    %mm1,%mm3
1064         paddq   (%ebp),%mm7
1065         pxor    %mm2,%mm3
1066         pxor    %mm6,%mm5
1067         movq    8(%esp),%mm1
1068         pand    %mm4,%mm5
1069         movq    16(%esp),%mm2
1070         pxor    %mm6,%mm5
1071         movq    24(%esp),%mm4
1072         paddq   %mm5,%mm3
1073         movq    %mm0,(%esp)
1074         paddq   %mm7,%mm3
1075         movq    %mm0,%mm5
1076         movq    %mm0,%mm6
1077         paddq   72(%esp),%mm3
1078         psrlq   $28,%mm5
1079         paddq   %mm3,%mm4
1080         psllq   $25,%mm6
1081         movq    %mm5,%mm7
1082         psrlq   $6,%mm5
1083         pxor    %mm6,%mm7
1084         psllq   $5,%mm6
1085         pxor    %mm5,%mm7
1086         psrlq   $5,%mm5
1087         pxor    %mm6,%mm7
1088         psllq   $6,%mm6
1089         pxor    %mm5,%mm7
1090         subl    $8,%esp
1091         pxor    %mm6,%mm7
1092         movq    %mm0,%mm5
1093         por     %mm2,%mm0
1094         movq    88(%esp),%mm6
1095         pand    %mm2,%mm5
1096         pand    %mm1,%mm0
1097         movq    192(%esp),%mm2
1098         por     %mm0,%mm5
1099         paddq   %mm5,%mm7
1100         movq    %mm3,%mm0
1101         movb    (%ebp),%dl
1102         paddq   %mm7,%mm0
1103         addl    $8,%ebp
1104         cmpb    $23,%dl
1105         jne     .L00516_79_sse2
1106         movq    8(%esp),%mm1
1107         movq    16(%esp),%mm2
1108         movq    24(%esp),%mm3
1109         movq    40(%esp),%mm5
1110         movq    48(%esp),%mm6
1111         movq    56(%esp),%mm7
1112         paddq   (%esi),%mm0
1113         paddq   8(%esi),%mm1
1114         paddq   16(%esi),%mm2
1115         paddq   24(%esi),%mm3
1116         paddq   32(%esi),%mm4
1117         paddq   40(%esi),%mm5
1118         paddq   48(%esi),%mm6
1119         paddq   56(%esi),%mm7
1120         movq    %mm0,(%esi)
1121         movq    %mm1,8(%esi)
1122         movq    %mm2,16(%esi)
1123         movq    %mm3,24(%esi)
1124         movq    %mm4,32(%esi)
1125         movq    %mm5,40(%esi)
1126         movq    %mm6,48(%esi)
1127         movq    %mm7,56(%esi)
1128         addl    $640,%esp
1129         subl    $640,%ebp
1130         cmpl    88(%esp),%edi
1131         jb      .L003loop_sse2
1132         emms
1133         movl    92(%esp),%esp
1134         popl    %edi
1135         popl    %esi
1136         popl    %ebx
1137         popl    %ebp
1138         ret
1139 .align  16
1140 .L002loop_x86:
1141         movl    (%edi),%eax
1142         movl    4(%edi),%ebx
1143         movl    8(%edi),%ecx
1144         movl    12(%edi),%edx
1145         bswap   %eax
1146         bswap   %ebx
1147         bswap   %ecx
1148         bswap   %edx
1149         pushl   %eax
1150         pushl   %ebx
1151         pushl   %ecx
1152         pushl   %edx
1153         movl    16(%edi),%eax
1154         movl    20(%edi),%ebx
1155         movl    24(%edi),%ecx
1156         movl    28(%edi),%edx
1157         bswap   %eax
1158         bswap   %ebx
1159         bswap   %ecx
1160         bswap   %edx
1161         pushl   %eax
1162         pushl   %ebx
1163         pushl   %ecx
1164         pushl   %edx
1165         movl    32(%edi),%eax
1166         movl    36(%edi),%ebx
1167         movl    40(%edi),%ecx
1168         movl    44(%edi),%edx
1169         bswap   %eax
1170         bswap   %ebx
1171         bswap   %ecx
1172         bswap   %edx
1173         pushl   %eax
1174         pushl   %ebx
1175         pushl   %ecx
1176         pushl   %edx
1177         movl    48(%edi),%eax
1178         movl    52(%edi),%ebx
1179         movl    56(%edi),%ecx
1180         movl    60(%edi),%edx
1181         bswap   %eax
1182         bswap   %ebx
1183         bswap   %ecx
1184         bswap   %edx
1185         pushl   %eax
1186         pushl   %ebx
1187         pushl   %ecx
1188         pushl   %edx
1189         movl    64(%edi),%eax
1190         movl    68(%edi),%ebx
1191         movl    72(%edi),%ecx
1192         movl    76(%edi),%edx
1193         bswap   %eax
1194         bswap   %ebx
1195         bswap   %ecx
1196         bswap   %edx
1197         pushl   %eax
1198         pushl   %ebx
1199         pushl   %ecx
1200         pushl   %edx
1201         movl    80(%edi),%eax
1202         movl    84(%edi),%ebx
1203         movl    88(%edi),%ecx
1204         movl    92(%edi),%edx
1205         bswap   %eax
1206         bswap   %ebx
1207         bswap   %ecx
1208         bswap   %edx
1209         pushl   %eax
1210         pushl   %ebx
1211         pushl   %ecx
1212         pushl   %edx
1213         movl    96(%edi),%eax
1214         movl    100(%edi),%ebx
1215         movl    104(%edi),%ecx
1216         movl    108(%edi),%edx
1217         bswap   %eax
1218         bswap   %ebx
1219         bswap   %ecx
1220         bswap   %edx
1221         pushl   %eax
1222         pushl   %ebx
1223         pushl   %ecx
1224         pushl   %edx
1225         movl    112(%edi),%eax
1226         movl    116(%edi),%ebx
1227         movl    120(%edi),%ecx
1228         movl    124(%edi),%edx
1229         bswap   %eax
1230         bswap   %ebx
1231         bswap   %ecx
1232         bswap   %edx
1233         pushl   %eax
1234         pushl   %ebx
1235         pushl   %ecx
1236         pushl   %edx
1237         addl    $128,%edi
1238         subl    $72,%esp
1239         movl    %edi,204(%esp)
1240         leal    8(%esp),%edi
1241         movl    $16,%ecx
1242 .long   2784229001
1243 .align  16
1244 .L00600_15_x86:
1245         movl    40(%esp),%ecx
1246         movl    44(%esp),%edx
1247         movl    %ecx,%esi
1248         shrl    $9,%ecx
1249         movl    %edx,%edi
1250         shrl    $9,%edx
1251         movl    %ecx,%ebx
1252         shll    $14,%esi
1253         movl    %edx,%eax
1254         shll    $14,%edi
1255         xorl    %esi,%ebx
1256         shrl    $5,%ecx
1257         xorl    %edi,%eax
1258         shrl    $5,%edx
1259         xorl    %ecx,%eax
1260         shll    $4,%esi
1261         xorl    %edx,%ebx
1262         shll    $4,%edi
1263         xorl    %esi,%ebx
1264         shrl    $4,%ecx
1265         xorl    %edi,%eax
1266         shrl    $4,%edx
1267         xorl    %ecx,%eax
1268         shll    $5,%esi
1269         xorl    %edx,%ebx
1270         shll    $5,%edi
1271         xorl    %esi,%eax
1272         xorl    %edi,%ebx
1273         movl    48(%esp),%ecx
1274         movl    52(%esp),%edx
1275         movl    56(%esp),%esi
1276         movl    60(%esp),%edi
1277         addl    64(%esp),%eax
1278         adcl    68(%esp),%ebx
1279         xorl    %esi,%ecx
1280         xorl    %edi,%edx
1281         andl    40(%esp),%ecx
1282         andl    44(%esp),%edx
1283         addl    192(%esp),%eax
1284         adcl    196(%esp),%ebx
1285         xorl    %esi,%ecx
1286         xorl    %edi,%edx
1287         movl    (%ebp),%esi
1288         movl    4(%ebp),%edi
1289         addl    %ecx,%eax
1290         adcl    %edx,%ebx
1291         movl    32(%esp),%ecx
1292         movl    36(%esp),%edx
1293         addl    %esi,%eax
1294         adcl    %edi,%ebx
1295         movl    %eax,(%esp)
1296         movl    %ebx,4(%esp)
1297         addl    %ecx,%eax
1298         adcl    %edx,%ebx
1299         movl    8(%esp),%ecx
1300         movl    12(%esp),%edx
1301         movl    %eax,32(%esp)
1302         movl    %ebx,36(%esp)
1303         movl    %ecx,%esi
1304         shrl    $2,%ecx
1305         movl    %edx,%edi
1306         shrl    $2,%edx
1307         movl    %ecx,%ebx
1308         shll    $4,%esi
1309         movl    %edx,%eax
1310         shll    $4,%edi
1311         xorl    %esi,%ebx
1312         shrl    $5,%ecx
1313         xorl    %edi,%eax
1314         shrl    $5,%edx
1315         xorl    %ecx,%ebx
1316         shll    $21,%esi
1317         xorl    %edx,%eax
1318         shll    $21,%edi
1319         xorl    %esi,%eax
1320         shrl    $21,%ecx
1321         xorl    %edi,%ebx
1322         shrl    $21,%edx
1323         xorl    %ecx,%eax
1324         shll    $5,%esi
1325         xorl    %edx,%ebx
1326         shll    $5,%edi
1327         xorl    %esi,%eax
1328         xorl    %edi,%ebx
1329         movl    8(%esp),%ecx
1330         movl    12(%esp),%edx
1331         movl    16(%esp),%esi
1332         movl    20(%esp),%edi
1333         addl    (%esp),%eax
1334         adcl    4(%esp),%ebx
1335         orl     %esi,%ecx
1336         orl     %edi,%edx
1337         andl    24(%esp),%ecx
1338         andl    28(%esp),%edx
1339         andl    8(%esp),%esi
1340         andl    12(%esp),%edi
1341         orl     %esi,%ecx
1342         orl     %edi,%edx
1343         addl    %ecx,%eax
1344         adcl    %edx,%ebx
1345         movl    %eax,(%esp)
1346         movl    %ebx,4(%esp)
1347         movb    (%ebp),%dl
1348         subl    $8,%esp
1349         leal    8(%ebp),%ebp
1350         cmpb    $148,%dl
1351         jne     .L00600_15_x86
1352 .align  16
1353 .L00716_79_x86:
1354         movl    312(%esp),%ecx
1355         movl    316(%esp),%edx
1356         movl    %ecx,%esi
1357         shrl    $1,%ecx
1358         movl    %edx,%edi
1359         shrl    $1,%edx
1360         movl    %ecx,%eax
1361         shll    $24,%esi
1362         movl    %edx,%ebx
1363         shll    $24,%edi
1364         xorl    %esi,%ebx
1365         shrl    $6,%ecx
1366         xorl    %edi,%eax
1367         shrl    $6,%edx
1368         xorl    %ecx,%eax
1369         shll    $7,%esi
1370         xorl    %edx,%ebx
1371         shll    $1,%edi
1372         xorl    %esi,%ebx
1373         shrl    $1,%ecx
1374         xorl    %edi,%eax
1375         shrl    $1,%edx
1376         xorl    %ecx,%eax
1377         shll    $6,%edi
1378         xorl    %edx,%ebx
1379         xorl    %edi,%eax
1380         movl    %eax,(%esp)
1381         movl    %ebx,4(%esp)
1382         movl    208(%esp),%ecx
1383         movl    212(%esp),%edx
1384         movl    %ecx,%esi
1385         shrl    $6,%ecx
1386         movl    %edx,%edi
1387         shrl    $6,%edx
1388         movl    %ecx,%eax
1389         shll    $3,%esi
1390         movl    %edx,%ebx
1391         shll    $3,%edi
1392         xorl    %esi,%eax
1393         shrl    $13,%ecx
1394         xorl    %edi,%ebx
1395         shrl    $13,%edx
1396         xorl    %ecx,%eax
1397         shll    $10,%esi
1398         xorl    %edx,%ebx
1399         shll    $10,%edi
1400         xorl    %esi,%ebx
1401         shrl    $10,%ecx
1402         xorl    %edi,%eax
1403         shrl    $10,%edx
1404         xorl    %ecx,%ebx
1405         shll    $13,%edi
1406         xorl    %edx,%eax
1407         xorl    %edi,%eax
1408         movl    320(%esp),%ecx
1409         movl    324(%esp),%edx
1410         addl    (%esp),%eax
1411         adcl    4(%esp),%ebx
1412         movl    248(%esp),%esi
1413         movl    252(%esp),%edi
1414         addl    %ecx,%eax
1415         adcl    %edx,%ebx
1416         addl    %esi,%eax
1417         adcl    %edi,%ebx
1418         movl    %eax,192(%esp)
1419         movl    %ebx,196(%esp)
1420         movl    40(%esp),%ecx
1421         movl    44(%esp),%edx
1422         movl    %ecx,%esi
1423         shrl    $9,%ecx
1424         movl    %edx,%edi
1425         shrl    $9,%edx
1426         movl    %ecx,%ebx
1427         shll    $14,%esi
1428         movl    %edx,%eax
1429         shll    $14,%edi
1430         xorl    %esi,%ebx
1431         shrl    $5,%ecx
1432         xorl    %edi,%eax
1433         shrl    $5,%edx
1434         xorl    %ecx,%eax
1435         shll    $4,%esi
1436         xorl    %edx,%ebx
1437         shll    $4,%edi
1438         xorl    %esi,%ebx
1439         shrl    $4,%ecx
1440         xorl    %edi,%eax
1441         shrl    $4,%edx
1442         xorl    %ecx,%eax
1443         shll    $5,%esi
1444         xorl    %edx,%ebx
1445         shll    $5,%edi
1446         xorl    %esi,%eax
1447         xorl    %edi,%ebx
1448         movl    48(%esp),%ecx
1449         movl    52(%esp),%edx
1450         movl    56(%esp),%esi
1451         movl    60(%esp),%edi
1452         addl    64(%esp),%eax
1453         adcl    68(%esp),%ebx
1454         xorl    %esi,%ecx
1455         xorl    %edi,%edx
1456         andl    40(%esp),%ecx
1457         andl    44(%esp),%edx
1458         addl    192(%esp),%eax
1459         adcl    196(%esp),%ebx
1460         xorl    %esi,%ecx
1461         xorl    %edi,%edx
1462         movl    (%ebp),%esi
1463         movl    4(%ebp),%edi
1464         addl    %ecx,%eax
1465         adcl    %edx,%ebx
1466         movl    32(%esp),%ecx
1467         movl    36(%esp),%edx
1468         addl    %esi,%eax
1469         adcl    %edi,%ebx
1470         movl    %eax,(%esp)
1471         movl    %ebx,4(%esp)
1472         addl    %ecx,%eax
1473         adcl    %edx,%ebx
1474         movl    8(%esp),%ecx
1475         movl    12(%esp),%edx
1476         movl    %eax,32(%esp)
1477         movl    %ebx,36(%esp)
1478         movl    %ecx,%esi
1479         shrl    $2,%ecx
1480         movl    %edx,%edi
1481         shrl    $2,%edx
1482         movl    %ecx,%ebx
1483         shll    $4,%esi
1484         movl    %edx,%eax
1485         shll    $4,%edi
1486         xorl    %esi,%ebx
1487         shrl    $5,%ecx
1488         xorl    %edi,%eax
1489         shrl    $5,%edx
1490         xorl    %ecx,%ebx
1491         shll    $21,%esi
1492         xorl    %edx,%eax
1493         shll    $21,%edi
1494         xorl    %esi,%eax
1495         shrl    $21,%ecx
1496         xorl    %edi,%ebx
1497         shrl    $21,%edx
1498         xorl    %ecx,%eax
1499         shll    $5,%esi
1500         xorl    %edx,%ebx
1501         shll    $5,%edi
1502         xorl    %esi,%eax
1503         xorl    %edi,%ebx
1504         movl    8(%esp),%ecx
1505         movl    12(%esp),%edx
1506         movl    16(%esp),%esi
1507         movl    20(%esp),%edi
1508         addl    (%esp),%eax
1509         adcl    4(%esp),%ebx
1510         orl     %esi,%ecx
1511         orl     %edi,%edx
1512         andl    24(%esp),%ecx
1513         andl    28(%esp),%edx
1514         andl    8(%esp),%esi
1515         andl    12(%esp),%edi
1516         orl     %esi,%ecx
1517         orl     %edi,%edx
1518         addl    %ecx,%eax
1519         adcl    %edx,%ebx
1520         movl    %eax,(%esp)
1521         movl    %ebx,4(%esp)
1522         movb    (%ebp),%dl
1523         subl    $8,%esp
1524         leal    8(%ebp),%ebp
1525         cmpb    $23,%dl
1526         jne     .L00716_79_x86
1527         movl    840(%esp),%esi
1528         movl    844(%esp),%edi
1529         movl    (%esi),%eax
1530         movl    4(%esi),%ebx
1531         movl    8(%esi),%ecx
1532         movl    12(%esi),%edx
1533         addl    8(%esp),%eax
1534         adcl    12(%esp),%ebx
1535         movl    %eax,(%esi)
1536         movl    %ebx,4(%esi)
1537         addl    16(%esp),%ecx
1538         adcl    20(%esp),%edx
1539         movl    %ecx,8(%esi)
1540         movl    %edx,12(%esi)
1541         movl    16(%esi),%eax
1542         movl    20(%esi),%ebx
1543         movl    24(%esi),%ecx
1544         movl    28(%esi),%edx
1545         addl    24(%esp),%eax
1546         adcl    28(%esp),%ebx
1547         movl    %eax,16(%esi)
1548         movl    %ebx,20(%esi)
1549         addl    32(%esp),%ecx
1550         adcl    36(%esp),%edx
1551         movl    %ecx,24(%esi)
1552         movl    %edx,28(%esi)
1553         movl    32(%esi),%eax
1554         movl    36(%esi),%ebx
1555         movl    40(%esi),%ecx
1556         movl    44(%esi),%edx
1557         addl    40(%esp),%eax
1558         adcl    44(%esp),%ebx
1559         movl    %eax,32(%esi)
1560         movl    %ebx,36(%esi)
1561         addl    48(%esp),%ecx
1562         adcl    52(%esp),%edx
1563         movl    %ecx,40(%esi)
1564         movl    %edx,44(%esi)
1565         movl    48(%esi),%eax
1566         movl    52(%esi),%ebx
1567         movl    56(%esi),%ecx
1568         movl    60(%esi),%edx
1569         addl    56(%esp),%eax
1570         adcl    60(%esp),%ebx
1571         movl    %eax,48(%esi)
1572         movl    %ebx,52(%esi)
1573         addl    64(%esp),%ecx
1574         adcl    68(%esp),%edx
1575         movl    %ecx,56(%esi)
1576         movl    %edx,60(%esi)
1577         addl    $840,%esp
1578         subl    $640,%ebp
1579         cmpl    8(%esp),%edi
1580         jb      .L002loop_x86
1581         movl    12(%esp),%esp
1582         popl    %edi
1583         popl    %esi
1584         popl    %ebx
1585         popl    %ebp
1586         ret
1587 .align  64
1588 .L001K512:
1589 .long   3609767458,1116352408
1590 .long   602891725,1899447441
1591 .long   3964484399,3049323471
1592 .long   2173295548,3921009573
1593 .long   4081628472,961987163
1594 .long   3053834265,1508970993
1595 .long   2937671579,2453635748
1596 .long   3664609560,2870763221
1597 .long   2734883394,3624381080
1598 .long   1164996542,310598401
1599 .long   1323610764,607225278
1600 .long   3590304994,1426881987
1601 .long   4068182383,1925078388
1602 .long   991336113,2162078206
1603 .long   633803317,2614888103
1604 .long   3479774868,3248222580
1605 .long   2666613458,3835390401
1606 .long   944711139,4022224774
1607 .long   2341262773,264347078
1608 .long   2007800933,604807628
1609 .long   1495990901,770255983
1610 .long   1856431235,1249150122
1611 .long   3175218132,1555081692
1612 .long   2198950837,1996064986
1613 .long   3999719339,2554220882
1614 .long   766784016,2821834349
1615 .long   2566594879,2952996808
1616 .long   3203337956,3210313671
1617 .long   1034457026,3336571891
1618 .long   2466948901,3584528711
1619 .long   3758326383,113926993
1620 .long   168717936,338241895
1621 .long   1188179964,666307205
1622 .long   1546045734,773529912
1623 .long   1522805485,1294757372
1624 .long   2643833823,1396182291
1625 .long   2343527390,1695183700
1626 .long   1014477480,1986661051
1627 .long   1206759142,2177026350
1628 .long   344077627,2456956037
1629 .long   1290863460,2730485921
1630 .long   3158454273,2820302411
1631 .long   3505952657,3259730800
1632 .long   106217008,3345764771
1633 .long   3606008344,3516065817
1634 .long   1432725776,3600352804
1635 .long   1467031594,4094571909
1636 .long   851169720,275423344
1637 .long   3100823752,430227734
1638 .long   1363258195,506948616
1639 .long   3750685593,659060556
1640 .long   3785050280,883997877
1641 .long   3318307427,958139571
1642 .long   3812723403,1322822218
1643 .long   2003034995,1537002063
1644 .long   3602036899,1747873779
1645 .long   1575990012,1955562222
1646 .long   1125592928,2024104815
1647 .long   2716904306,2227730452
1648 .long   442776044,2361852424
1649 .long   593698344,2428436474
1650 .long   3733110249,2756734187
1651 .long   2999351573,3204031479
1652 .long   3815920427,3329325298
1653 .long   3928383900,3391569614
1654 .long   566280711,3515267271
1655 .long   3454069534,3940187606
1656 .long   4000239992,4118630271
1657 .long   1914138554,116418474
1658 .long   2731055270,174292421
1659 .long   3203993006,289380356
1660 .long   320620315,460393269
1661 .long   587496836,685471733
1662 .long   1086792851,852142971
1663 .long   365543100,1017036298
1664 .long   2618297676,1126000580
1665 .long   3409855158,1288033470
1666 .long   4234509866,1501505948
1667 .long   987167468,1607167915
1668 .long   1246189591,1816402316
1669 .size   sha512_block_data_order,.-.L_sha512_block_data_order_begin
1670 .byte   83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
1671 .byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
1672 .byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
1673 .byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
1674 .byte   62,0
1675 .comm   OPENSSL_ia32cap_P,8,4
1676 #endif