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