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