Merge branch 'vendor/OPENSSL'
[dragonfly.git] / secure / lib / libcrypto / asm / md5-586.s
1 .file   "../../../../crypto/openssl/crypto/md5/asm/md5-586.s"
2 .text
3 .globl  md5_block_asm_data_order
4 .type   md5_block_asm_data_order,@function
5 .align  16
6 md5_block_asm_data_order:
7 .L_md5_block_asm_data_order_begin:
8         pushl   %esi
9         pushl   %edi
10         movl    12(%esp),%edi
11         movl    16(%esp),%esi
12         movl    20(%esp),%ecx
13         pushl   %ebp
14         shll    $6,%ecx
15         pushl   %ebx
16         addl    %esi,%ecx
17         subl    $64,%ecx
18         movl    (%edi),%eax
19         pushl   %ecx
20         movl    4(%edi),%ebx
21         movl    8(%edi),%ecx
22         movl    12(%edi),%edx
23 .L000start:
24
25
26         movl    %ecx,%edi
27         movl    (%esi),%ebp
28
29         xorl    %edx,%edi
30         andl    %ebx,%edi
31         leal    3614090360(%eax,%ebp,1),%eax
32         xorl    %edx,%edi
33         addl    %edi,%eax
34         movl    %ebx,%edi
35         roll    $7,%eax
36         movl    4(%esi),%ebp
37         addl    %ebx,%eax
38
39         xorl    %ecx,%edi
40         andl    %eax,%edi
41         leal    3905402710(%edx,%ebp,1),%edx
42         xorl    %ecx,%edi
43         addl    %edi,%edx
44         movl    %eax,%edi
45         roll    $12,%edx
46         movl    8(%esi),%ebp
47         addl    %eax,%edx
48
49         xorl    %ebx,%edi
50         andl    %edx,%edi
51         leal    606105819(%ecx,%ebp,1),%ecx
52         xorl    %ebx,%edi
53         addl    %edi,%ecx
54         movl    %edx,%edi
55         roll    $17,%ecx
56         movl    12(%esi),%ebp
57         addl    %edx,%ecx
58
59         xorl    %eax,%edi
60         andl    %ecx,%edi
61         leal    3250441966(%ebx,%ebp,1),%ebx
62         xorl    %eax,%edi
63         addl    %edi,%ebx
64         movl    %ecx,%edi
65         roll    $22,%ebx
66         movl    16(%esi),%ebp
67         addl    %ecx,%ebx
68
69         xorl    %edx,%edi
70         andl    %ebx,%edi
71         leal    4118548399(%eax,%ebp,1),%eax
72         xorl    %edx,%edi
73         addl    %edi,%eax
74         movl    %ebx,%edi
75         roll    $7,%eax
76         movl    20(%esi),%ebp
77         addl    %ebx,%eax
78
79         xorl    %ecx,%edi
80         andl    %eax,%edi
81         leal    1200080426(%edx,%ebp,1),%edx
82         xorl    %ecx,%edi
83         addl    %edi,%edx
84         movl    %eax,%edi
85         roll    $12,%edx
86         movl    24(%esi),%ebp
87         addl    %eax,%edx
88
89         xorl    %ebx,%edi
90         andl    %edx,%edi
91         leal    2821735955(%ecx,%ebp,1),%ecx
92         xorl    %ebx,%edi
93         addl    %edi,%ecx
94         movl    %edx,%edi
95         roll    $17,%ecx
96         movl    28(%esi),%ebp
97         addl    %edx,%ecx
98
99         xorl    %eax,%edi
100         andl    %ecx,%edi
101         leal    4249261313(%ebx,%ebp,1),%ebx
102         xorl    %eax,%edi
103         addl    %edi,%ebx
104         movl    %ecx,%edi
105         roll    $22,%ebx
106         movl    32(%esi),%ebp
107         addl    %ecx,%ebx
108
109         xorl    %edx,%edi
110         andl    %ebx,%edi
111         leal    1770035416(%eax,%ebp,1),%eax
112         xorl    %edx,%edi
113         addl    %edi,%eax
114         movl    %ebx,%edi
115         roll    $7,%eax
116         movl    36(%esi),%ebp
117         addl    %ebx,%eax
118
119         xorl    %ecx,%edi
120         andl    %eax,%edi
121         leal    2336552879(%edx,%ebp,1),%edx
122         xorl    %ecx,%edi
123         addl    %edi,%edx
124         movl    %eax,%edi
125         roll    $12,%edx
126         movl    40(%esi),%ebp
127         addl    %eax,%edx
128
129         xorl    %ebx,%edi
130         andl    %edx,%edi
131         leal    4294925233(%ecx,%ebp,1),%ecx
132         xorl    %ebx,%edi
133         addl    %edi,%ecx
134         movl    %edx,%edi
135         roll    $17,%ecx
136         movl    44(%esi),%ebp
137         addl    %edx,%ecx
138
139         xorl    %eax,%edi
140         andl    %ecx,%edi
141         leal    2304563134(%ebx,%ebp,1),%ebx
142         xorl    %eax,%edi
143         addl    %edi,%ebx
144         movl    %ecx,%edi
145         roll    $22,%ebx
146         movl    48(%esi),%ebp
147         addl    %ecx,%ebx
148
149         xorl    %edx,%edi
150         andl    %ebx,%edi
151         leal    1804603682(%eax,%ebp,1),%eax
152         xorl    %edx,%edi
153         addl    %edi,%eax
154         movl    %ebx,%edi
155         roll    $7,%eax
156         movl    52(%esi),%ebp
157         addl    %ebx,%eax
158
159         xorl    %ecx,%edi
160         andl    %eax,%edi
161         leal    4254626195(%edx,%ebp,1),%edx
162         xorl    %ecx,%edi
163         addl    %edi,%edx
164         movl    %eax,%edi
165         roll    $12,%edx
166         movl    56(%esi),%ebp
167         addl    %eax,%edx
168
169         xorl    %ebx,%edi
170         andl    %edx,%edi
171         leal    2792965006(%ecx,%ebp,1),%ecx
172         xorl    %ebx,%edi
173         addl    %edi,%ecx
174         movl    %edx,%edi
175         roll    $17,%ecx
176         movl    60(%esi),%ebp
177         addl    %edx,%ecx
178
179         xorl    %eax,%edi
180         andl    %ecx,%edi
181         leal    1236535329(%ebx,%ebp,1),%ebx
182         xorl    %eax,%edi
183         addl    %edi,%ebx
184         movl    %ecx,%edi
185         roll    $22,%ebx
186         movl    4(%esi),%ebp
187         addl    %ecx,%ebx
188
189
190
191         leal    4129170786(%eax,%ebp,1),%eax
192         xorl    %ebx,%edi
193         andl    %edx,%edi
194         movl    24(%esi),%ebp
195         xorl    %ecx,%edi
196         addl    %edi,%eax
197         movl    %ebx,%edi
198         roll    $5,%eax
199         addl    %ebx,%eax
200
201         leal    3225465664(%edx,%ebp,1),%edx
202         xorl    %eax,%edi
203         andl    %ecx,%edi
204         movl    44(%esi),%ebp
205         xorl    %ebx,%edi
206         addl    %edi,%edx
207         movl    %eax,%edi
208         roll    $9,%edx
209         addl    %eax,%edx
210
211         leal    643717713(%ecx,%ebp,1),%ecx
212         xorl    %edx,%edi
213         andl    %ebx,%edi
214         movl    (%esi),%ebp
215         xorl    %eax,%edi
216         addl    %edi,%ecx
217         movl    %edx,%edi
218         roll    $14,%ecx
219         addl    %edx,%ecx
220
221         leal    3921069994(%ebx,%ebp,1),%ebx
222         xorl    %ecx,%edi
223         andl    %eax,%edi
224         movl    20(%esi),%ebp
225         xorl    %edx,%edi
226         addl    %edi,%ebx
227         movl    %ecx,%edi
228         roll    $20,%ebx
229         addl    %ecx,%ebx
230
231         leal    3593408605(%eax,%ebp,1),%eax
232         xorl    %ebx,%edi
233         andl    %edx,%edi
234         movl    40(%esi),%ebp
235         xorl    %ecx,%edi
236         addl    %edi,%eax
237         movl    %ebx,%edi
238         roll    $5,%eax
239         addl    %ebx,%eax
240
241         leal    38016083(%edx,%ebp,1),%edx
242         xorl    %eax,%edi
243         andl    %ecx,%edi
244         movl    60(%esi),%ebp
245         xorl    %ebx,%edi
246         addl    %edi,%edx
247         movl    %eax,%edi
248         roll    $9,%edx
249         addl    %eax,%edx
250
251         leal    3634488961(%ecx,%ebp,1),%ecx
252         xorl    %edx,%edi
253         andl    %ebx,%edi
254         movl    16(%esi),%ebp
255         xorl    %eax,%edi
256         addl    %edi,%ecx
257         movl    %edx,%edi
258         roll    $14,%ecx
259         addl    %edx,%ecx
260
261         leal    3889429448(%ebx,%ebp,1),%ebx
262         xorl    %ecx,%edi
263         andl    %eax,%edi
264         movl    36(%esi),%ebp
265         xorl    %edx,%edi
266         addl    %edi,%ebx
267         movl    %ecx,%edi
268         roll    $20,%ebx
269         addl    %ecx,%ebx
270
271         leal    568446438(%eax,%ebp,1),%eax
272         xorl    %ebx,%edi
273         andl    %edx,%edi
274         movl    56(%esi),%ebp
275         xorl    %ecx,%edi
276         addl    %edi,%eax
277         movl    %ebx,%edi
278         roll    $5,%eax
279         addl    %ebx,%eax
280
281         leal    3275163606(%edx,%ebp,1),%edx
282         xorl    %eax,%edi
283         andl    %ecx,%edi
284         movl    12(%esi),%ebp
285         xorl    %ebx,%edi
286         addl    %edi,%edx
287         movl    %eax,%edi
288         roll    $9,%edx
289         addl    %eax,%edx
290
291         leal    4107603335(%ecx,%ebp,1),%ecx
292         xorl    %edx,%edi
293         andl    %ebx,%edi
294         movl    32(%esi),%ebp
295         xorl    %eax,%edi
296         addl    %edi,%ecx
297         movl    %edx,%edi
298         roll    $14,%ecx
299         addl    %edx,%ecx
300
301         leal    1163531501(%ebx,%ebp,1),%ebx
302         xorl    %ecx,%edi
303         andl    %eax,%edi
304         movl    52(%esi),%ebp
305         xorl    %edx,%edi
306         addl    %edi,%ebx
307         movl    %ecx,%edi
308         roll    $20,%ebx
309         addl    %ecx,%ebx
310
311         leal    2850285829(%eax,%ebp,1),%eax
312         xorl    %ebx,%edi
313         andl    %edx,%edi
314         movl    8(%esi),%ebp
315         xorl    %ecx,%edi
316         addl    %edi,%eax
317         movl    %ebx,%edi
318         roll    $5,%eax
319         addl    %ebx,%eax
320
321         leal    4243563512(%edx,%ebp,1),%edx
322         xorl    %eax,%edi
323         andl    %ecx,%edi
324         movl    28(%esi),%ebp
325         xorl    %ebx,%edi
326         addl    %edi,%edx
327         movl    %eax,%edi
328         roll    $9,%edx
329         addl    %eax,%edx
330
331         leal    1735328473(%ecx,%ebp,1),%ecx
332         xorl    %edx,%edi
333         andl    %ebx,%edi
334         movl    48(%esi),%ebp
335         xorl    %eax,%edi
336         addl    %edi,%ecx
337         movl    %edx,%edi
338         roll    $14,%ecx
339         addl    %edx,%ecx
340
341         leal    2368359562(%ebx,%ebp,1),%ebx
342         xorl    %ecx,%edi
343         andl    %eax,%edi
344         movl    20(%esi),%ebp
345         xorl    %edx,%edi
346         addl    %edi,%ebx
347         movl    %ecx,%edi
348         roll    $20,%ebx
349         addl    %ecx,%ebx
350
351
352
353         xorl    %edx,%edi
354         xorl    %ebx,%edi
355         leal    4294588738(%eax,%ebp,1),%eax
356         addl    %edi,%eax
357         roll    $4,%eax
358         movl    32(%esi),%ebp
359         movl    %ebx,%edi
360
361         leal    2272392833(%edx,%ebp,1),%edx
362         addl    %ebx,%eax
363         xorl    %ecx,%edi
364         xorl    %eax,%edi
365         movl    44(%esi),%ebp
366         addl    %edi,%edx
367         movl    %eax,%edi
368         roll    $11,%edx
369         addl    %eax,%edx
370
371         xorl    %ebx,%edi
372         xorl    %edx,%edi
373         leal    1839030562(%ecx,%ebp,1),%ecx
374         addl    %edi,%ecx
375         roll    $16,%ecx
376         movl    56(%esi),%ebp
377         movl    %edx,%edi
378
379         leal    4259657740(%ebx,%ebp,1),%ebx
380         addl    %edx,%ecx
381         xorl    %eax,%edi
382         xorl    %ecx,%edi
383         movl    4(%esi),%ebp
384         addl    %edi,%ebx
385         movl    %ecx,%edi
386         roll    $23,%ebx
387         addl    %ecx,%ebx
388
389         xorl    %edx,%edi
390         xorl    %ebx,%edi
391         leal    2763975236(%eax,%ebp,1),%eax
392         addl    %edi,%eax
393         roll    $4,%eax
394         movl    16(%esi),%ebp
395         movl    %ebx,%edi
396
397         leal    1272893353(%edx,%ebp,1),%edx
398         addl    %ebx,%eax
399         xorl    %ecx,%edi
400         xorl    %eax,%edi
401         movl    28(%esi),%ebp
402         addl    %edi,%edx
403         movl    %eax,%edi
404         roll    $11,%edx
405         addl    %eax,%edx
406
407         xorl    %ebx,%edi
408         xorl    %edx,%edi
409         leal    4139469664(%ecx,%ebp,1),%ecx
410         addl    %edi,%ecx
411         roll    $16,%ecx
412         movl    40(%esi),%ebp
413         movl    %edx,%edi
414
415         leal    3200236656(%ebx,%ebp,1),%ebx
416         addl    %edx,%ecx
417         xorl    %eax,%edi
418         xorl    %ecx,%edi
419         movl    52(%esi),%ebp
420         addl    %edi,%ebx
421         movl    %ecx,%edi
422         roll    $23,%ebx
423         addl    %ecx,%ebx
424
425         xorl    %edx,%edi
426         xorl    %ebx,%edi
427         leal    681279174(%eax,%ebp,1),%eax
428         addl    %edi,%eax
429         roll    $4,%eax
430         movl    (%esi),%ebp
431         movl    %ebx,%edi
432
433         leal    3936430074(%edx,%ebp,1),%edx
434         addl    %ebx,%eax
435         xorl    %ecx,%edi
436         xorl    %eax,%edi
437         movl    12(%esi),%ebp
438         addl    %edi,%edx
439         movl    %eax,%edi
440         roll    $11,%edx
441         addl    %eax,%edx
442
443         xorl    %ebx,%edi
444         xorl    %edx,%edi
445         leal    3572445317(%ecx,%ebp,1),%ecx
446         addl    %edi,%ecx
447         roll    $16,%ecx
448         movl    24(%esi),%ebp
449         movl    %edx,%edi
450
451         leal    76029189(%ebx,%ebp,1),%ebx
452         addl    %edx,%ecx
453         xorl    %eax,%edi
454         xorl    %ecx,%edi
455         movl    36(%esi),%ebp
456         addl    %edi,%ebx
457         movl    %ecx,%edi
458         roll    $23,%ebx
459         addl    %ecx,%ebx
460
461         xorl    %edx,%edi
462         xorl    %ebx,%edi
463         leal    3654602809(%eax,%ebp,1),%eax
464         addl    %edi,%eax
465         roll    $4,%eax
466         movl    48(%esi),%ebp
467         movl    %ebx,%edi
468
469         leal    3873151461(%edx,%ebp,1),%edx
470         addl    %ebx,%eax
471         xorl    %ecx,%edi
472         xorl    %eax,%edi
473         movl    60(%esi),%ebp
474         addl    %edi,%edx
475         movl    %eax,%edi
476         roll    $11,%edx
477         addl    %eax,%edx
478
479         xorl    %ebx,%edi
480         xorl    %edx,%edi
481         leal    530742520(%ecx,%ebp,1),%ecx
482         addl    %edi,%ecx
483         roll    $16,%ecx
484         movl    8(%esi),%ebp
485         movl    %edx,%edi
486
487         leal    3299628645(%ebx,%ebp,1),%ebx
488         addl    %edx,%ecx
489         xorl    %eax,%edi
490         xorl    %ecx,%edi
491         movl    (%esi),%ebp
492         addl    %edi,%ebx
493         movl    $-1,%edi
494         roll    $23,%ebx
495         addl    %ecx,%ebx
496
497
498
499         xorl    %edx,%edi
500         orl     %ebx,%edi
501         leal    4096336452(%eax,%ebp,1),%eax
502         xorl    %ecx,%edi
503         movl    28(%esi),%ebp
504         addl    %edi,%eax
505         movl    $-1,%edi
506         roll    $6,%eax
507         xorl    %ecx,%edi
508         addl    %ebx,%eax
509
510         orl     %eax,%edi
511         leal    1126891415(%edx,%ebp,1),%edx
512         xorl    %ebx,%edi
513         movl    56(%esi),%ebp
514         addl    %edi,%edx
515         movl    $-1,%edi
516         roll    $10,%edx
517         xorl    %ebx,%edi
518         addl    %eax,%edx
519
520         orl     %edx,%edi
521         leal    2878612391(%ecx,%ebp,1),%ecx
522         xorl    %eax,%edi
523         movl    20(%esi),%ebp
524         addl    %edi,%ecx
525         movl    $-1,%edi
526         roll    $15,%ecx
527         xorl    %eax,%edi
528         addl    %edx,%ecx
529
530         orl     %ecx,%edi
531         leal    4237533241(%ebx,%ebp,1),%ebx
532         xorl    %edx,%edi
533         movl    48(%esi),%ebp
534         addl    %edi,%ebx
535         movl    $-1,%edi
536         roll    $21,%ebx
537         xorl    %edx,%edi
538         addl    %ecx,%ebx
539
540         orl     %ebx,%edi
541         leal    1700485571(%eax,%ebp,1),%eax
542         xorl    %ecx,%edi
543         movl    12(%esi),%ebp
544         addl    %edi,%eax
545         movl    $-1,%edi
546         roll    $6,%eax
547         xorl    %ecx,%edi
548         addl    %ebx,%eax
549
550         orl     %eax,%edi
551         leal    2399980690(%edx,%ebp,1),%edx
552         xorl    %ebx,%edi
553         movl    40(%esi),%ebp
554         addl    %edi,%edx
555         movl    $-1,%edi
556         roll    $10,%edx
557         xorl    %ebx,%edi
558         addl    %eax,%edx
559
560         orl     %edx,%edi
561         leal    4293915773(%ecx,%ebp,1),%ecx
562         xorl    %eax,%edi
563         movl    4(%esi),%ebp
564         addl    %edi,%ecx
565         movl    $-1,%edi
566         roll    $15,%ecx
567         xorl    %eax,%edi
568         addl    %edx,%ecx
569
570         orl     %ecx,%edi
571         leal    2240044497(%ebx,%ebp,1),%ebx
572         xorl    %edx,%edi
573         movl    32(%esi),%ebp
574         addl    %edi,%ebx
575         movl    $-1,%edi
576         roll    $21,%ebx
577         xorl    %edx,%edi
578         addl    %ecx,%ebx
579
580         orl     %ebx,%edi
581         leal    1873313359(%eax,%ebp,1),%eax
582         xorl    %ecx,%edi
583         movl    60(%esi),%ebp
584         addl    %edi,%eax
585         movl    $-1,%edi
586         roll    $6,%eax
587         xorl    %ecx,%edi
588         addl    %ebx,%eax
589
590         orl     %eax,%edi
591         leal    4264355552(%edx,%ebp,1),%edx
592         xorl    %ebx,%edi
593         movl    24(%esi),%ebp
594         addl    %edi,%edx
595         movl    $-1,%edi
596         roll    $10,%edx
597         xorl    %ebx,%edi
598         addl    %eax,%edx
599
600         orl     %edx,%edi
601         leal    2734768916(%ecx,%ebp,1),%ecx
602         xorl    %eax,%edi
603         movl    52(%esi),%ebp
604         addl    %edi,%ecx
605         movl    $-1,%edi
606         roll    $15,%ecx
607         xorl    %eax,%edi
608         addl    %edx,%ecx
609
610         orl     %ecx,%edi
611         leal    1309151649(%ebx,%ebp,1),%ebx
612         xorl    %edx,%edi
613         movl    16(%esi),%ebp
614         addl    %edi,%ebx
615         movl    $-1,%edi
616         roll    $21,%ebx
617         xorl    %edx,%edi
618         addl    %ecx,%ebx
619
620         orl     %ebx,%edi
621         leal    4149444226(%eax,%ebp,1),%eax
622         xorl    %ecx,%edi
623         movl    44(%esi),%ebp
624         addl    %edi,%eax
625         movl    $-1,%edi
626         roll    $6,%eax
627         xorl    %ecx,%edi
628         addl    %ebx,%eax
629
630         orl     %eax,%edi
631         leal    3174756917(%edx,%ebp,1),%edx
632         xorl    %ebx,%edi
633         movl    8(%esi),%ebp
634         addl    %edi,%edx
635         movl    $-1,%edi
636         roll    $10,%edx
637         xorl    %ebx,%edi
638         addl    %eax,%edx
639
640         orl     %edx,%edi
641         leal    718787259(%ecx,%ebp,1),%ecx
642         xorl    %eax,%edi
643         movl    36(%esi),%ebp
644         addl    %edi,%ecx
645         movl    $-1,%edi
646         roll    $15,%ecx
647         xorl    %eax,%edi
648         addl    %edx,%ecx
649
650         orl     %ecx,%edi
651         leal    3951481745(%ebx,%ebp,1),%ebx
652         xorl    %edx,%edi
653         movl    24(%esp),%ebp
654         addl    %edi,%ebx
655         addl    $64,%esi
656         roll    $21,%ebx
657         movl    (%ebp),%edi
658         addl    %ecx,%ebx
659         addl    %edi,%eax
660         movl    4(%ebp),%edi
661         addl    %edi,%ebx
662         movl    8(%ebp),%edi
663         addl    %edi,%ecx
664         movl    12(%ebp),%edi
665         addl    %edi,%edx
666         movl    %eax,(%ebp)
667         movl    %ebx,4(%ebp)
668         movl    (%esp),%edi
669         movl    %ecx,8(%ebp)
670         movl    %edx,12(%ebp)
671         cmpl    %esi,%edi
672         jae     .L000start
673         popl    %eax
674         popl    %ebx
675         popl    %ebp
676         popl    %edi
677         popl    %esi
678         ret
679 .size   md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin