Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(871)

Side by Side Diff: openssl/crypto/bn/asm/co-586-mac.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « openssl/crypto/bn/asm/co-586.pl ('k') | openssl/crypto/bn/asm/ia64.S » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .file "crypto/bn/asm/co-586.s"
2 .text
3 .globl _bn_mul_comba8
4 .align 4
5 _bn_mul_comba8:
6 L_bn_mul_comba8_begin:
7 pushl %esi
8 movl 12(%esp),%esi
9 pushl %edi
10 movl 20(%esp),%edi
11 pushl %ebp
12 pushl %ebx
13 xorl %ebx,%ebx
14 movl (%esi),%eax
15 xorl %ecx,%ecx
16 movl (%edi),%edx
17 # ################## Calculate word 0
18 xorl %ebp,%ebp
19 # mul a[0]*b[0]
20 mull %edx
21 addl %eax,%ebx
22 movl 20(%esp),%eax
23 adcl %edx,%ecx
24 movl (%edi),%edx
25 adcl $0,%ebp
26 movl %ebx,(%eax)
27 movl 4(%esi),%eax
28 # saved r[0]
29 # ################## Calculate word 1
30 xorl %ebx,%ebx
31 # mul a[1]*b[0]
32 mull %edx
33 addl %eax,%ecx
34 movl (%esi),%eax
35 adcl %edx,%ebp
36 movl 4(%edi),%edx
37 adcl $0,%ebx
38 # mul a[0]*b[1]
39 mull %edx
40 addl %eax,%ecx
41 movl 20(%esp),%eax
42 adcl %edx,%ebp
43 movl (%edi),%edx
44 adcl $0,%ebx
45 movl %ecx,4(%eax)
46 movl 8(%esi),%eax
47 # saved r[1]
48 # ################## Calculate word 2
49 xorl %ecx,%ecx
50 # mul a[2]*b[0]
51 mull %edx
52 addl %eax,%ebp
53 movl 4(%esi),%eax
54 adcl %edx,%ebx
55 movl 4(%edi),%edx
56 adcl $0,%ecx
57 # mul a[1]*b[1]
58 mull %edx
59 addl %eax,%ebp
60 movl (%esi),%eax
61 adcl %edx,%ebx
62 movl 8(%edi),%edx
63 adcl $0,%ecx
64 # mul a[0]*b[2]
65 mull %edx
66 addl %eax,%ebp
67 movl 20(%esp),%eax
68 adcl %edx,%ebx
69 movl (%edi),%edx
70 adcl $0,%ecx
71 movl %ebp,8(%eax)
72 movl 12(%esi),%eax
73 # saved r[2]
74 # ################## Calculate word 3
75 xorl %ebp,%ebp
76 # mul a[3]*b[0]
77 mull %edx
78 addl %eax,%ebx
79 movl 8(%esi),%eax
80 adcl %edx,%ecx
81 movl 4(%edi),%edx
82 adcl $0,%ebp
83 # mul a[2]*b[1]
84 mull %edx
85 addl %eax,%ebx
86 movl 4(%esi),%eax
87 adcl %edx,%ecx
88 movl 8(%edi),%edx
89 adcl $0,%ebp
90 # mul a[1]*b[2]
91 mull %edx
92 addl %eax,%ebx
93 movl (%esi),%eax
94 adcl %edx,%ecx
95 movl 12(%edi),%edx
96 adcl $0,%ebp
97 # mul a[0]*b[3]
98 mull %edx
99 addl %eax,%ebx
100 movl 20(%esp),%eax
101 adcl %edx,%ecx
102 movl (%edi),%edx
103 adcl $0,%ebp
104 movl %ebx,12(%eax)
105 movl 16(%esi),%eax
106 # saved r[3]
107 # ################## Calculate word 4
108 xorl %ebx,%ebx
109 # mul a[4]*b[0]
110 mull %edx
111 addl %eax,%ecx
112 movl 12(%esi),%eax
113 adcl %edx,%ebp
114 movl 4(%edi),%edx
115 adcl $0,%ebx
116 # mul a[3]*b[1]
117 mull %edx
118 addl %eax,%ecx
119 movl 8(%esi),%eax
120 adcl %edx,%ebp
121 movl 8(%edi),%edx
122 adcl $0,%ebx
123 # mul a[2]*b[2]
124 mull %edx
125 addl %eax,%ecx
126 movl 4(%esi),%eax
127 adcl %edx,%ebp
128 movl 12(%edi),%edx
129 adcl $0,%ebx
130 # mul a[1]*b[3]
131 mull %edx
132 addl %eax,%ecx
133 movl (%esi),%eax
134 adcl %edx,%ebp
135 movl 16(%edi),%edx
136 adcl $0,%ebx
137 # mul a[0]*b[4]
138 mull %edx
139 addl %eax,%ecx
140 movl 20(%esp),%eax
141 adcl %edx,%ebp
142 movl (%edi),%edx
143 adcl $0,%ebx
144 movl %ecx,16(%eax)
145 movl 20(%esi),%eax
146 # saved r[4]
147 # ################## Calculate word 5
148 xorl %ecx,%ecx
149 # mul a[5]*b[0]
150 mull %edx
151 addl %eax,%ebp
152 movl 16(%esi),%eax
153 adcl %edx,%ebx
154 movl 4(%edi),%edx
155 adcl $0,%ecx
156 # mul a[4]*b[1]
157 mull %edx
158 addl %eax,%ebp
159 movl 12(%esi),%eax
160 adcl %edx,%ebx
161 movl 8(%edi),%edx
162 adcl $0,%ecx
163 # mul a[3]*b[2]
164 mull %edx
165 addl %eax,%ebp
166 movl 8(%esi),%eax
167 adcl %edx,%ebx
168 movl 12(%edi),%edx
169 adcl $0,%ecx
170 # mul a[2]*b[3]
171 mull %edx
172 addl %eax,%ebp
173 movl 4(%esi),%eax
174 adcl %edx,%ebx
175 movl 16(%edi),%edx
176 adcl $0,%ecx
177 # mul a[1]*b[4]
178 mull %edx
179 addl %eax,%ebp
180 movl (%esi),%eax
181 adcl %edx,%ebx
182 movl 20(%edi),%edx
183 adcl $0,%ecx
184 # mul a[0]*b[5]
185 mull %edx
186 addl %eax,%ebp
187 movl 20(%esp),%eax
188 adcl %edx,%ebx
189 movl (%edi),%edx
190 adcl $0,%ecx
191 movl %ebp,20(%eax)
192 movl 24(%esi),%eax
193 # saved r[5]
194 # ################## Calculate word 6
195 xorl %ebp,%ebp
196 # mul a[6]*b[0]
197 mull %edx
198 addl %eax,%ebx
199 movl 20(%esi),%eax
200 adcl %edx,%ecx
201 movl 4(%edi),%edx
202 adcl $0,%ebp
203 # mul a[5]*b[1]
204 mull %edx
205 addl %eax,%ebx
206 movl 16(%esi),%eax
207 adcl %edx,%ecx
208 movl 8(%edi),%edx
209 adcl $0,%ebp
210 # mul a[4]*b[2]
211 mull %edx
212 addl %eax,%ebx
213 movl 12(%esi),%eax
214 adcl %edx,%ecx
215 movl 12(%edi),%edx
216 adcl $0,%ebp
217 # mul a[3]*b[3]
218 mull %edx
219 addl %eax,%ebx
220 movl 8(%esi),%eax
221 adcl %edx,%ecx
222 movl 16(%edi),%edx
223 adcl $0,%ebp
224 # mul a[2]*b[4]
225 mull %edx
226 addl %eax,%ebx
227 movl 4(%esi),%eax
228 adcl %edx,%ecx
229 movl 20(%edi),%edx
230 adcl $0,%ebp
231 # mul a[1]*b[5]
232 mull %edx
233 addl %eax,%ebx
234 movl (%esi),%eax
235 adcl %edx,%ecx
236 movl 24(%edi),%edx
237 adcl $0,%ebp
238 # mul a[0]*b[6]
239 mull %edx
240 addl %eax,%ebx
241 movl 20(%esp),%eax
242 adcl %edx,%ecx
243 movl (%edi),%edx
244 adcl $0,%ebp
245 movl %ebx,24(%eax)
246 movl 28(%esi),%eax
247 # saved r[6]
248 # ################## Calculate word 7
249 xorl %ebx,%ebx
250 # mul a[7]*b[0]
251 mull %edx
252 addl %eax,%ecx
253 movl 24(%esi),%eax
254 adcl %edx,%ebp
255 movl 4(%edi),%edx
256 adcl $0,%ebx
257 # mul a[6]*b[1]
258 mull %edx
259 addl %eax,%ecx
260 movl 20(%esi),%eax
261 adcl %edx,%ebp
262 movl 8(%edi),%edx
263 adcl $0,%ebx
264 # mul a[5]*b[2]
265 mull %edx
266 addl %eax,%ecx
267 movl 16(%esi),%eax
268 adcl %edx,%ebp
269 movl 12(%edi),%edx
270 adcl $0,%ebx
271 # mul a[4]*b[3]
272 mull %edx
273 addl %eax,%ecx
274 movl 12(%esi),%eax
275 adcl %edx,%ebp
276 movl 16(%edi),%edx
277 adcl $0,%ebx
278 # mul a[3]*b[4]
279 mull %edx
280 addl %eax,%ecx
281 movl 8(%esi),%eax
282 adcl %edx,%ebp
283 movl 20(%edi),%edx
284 adcl $0,%ebx
285 # mul a[2]*b[5]
286 mull %edx
287 addl %eax,%ecx
288 movl 4(%esi),%eax
289 adcl %edx,%ebp
290 movl 24(%edi),%edx
291 adcl $0,%ebx
292 # mul a[1]*b[6]
293 mull %edx
294 addl %eax,%ecx
295 movl (%esi),%eax
296 adcl %edx,%ebp
297 movl 28(%edi),%edx
298 adcl $0,%ebx
299 # mul a[0]*b[7]
300 mull %edx
301 addl %eax,%ecx
302 movl 20(%esp),%eax
303 adcl %edx,%ebp
304 movl 4(%edi),%edx
305 adcl $0,%ebx
306 movl %ecx,28(%eax)
307 movl 28(%esi),%eax
308 # saved r[7]
309 # ################## Calculate word 8
310 xorl %ecx,%ecx
311 # mul a[7]*b[1]
312 mull %edx
313 addl %eax,%ebp
314 movl 24(%esi),%eax
315 adcl %edx,%ebx
316 movl 8(%edi),%edx
317 adcl $0,%ecx
318 # mul a[6]*b[2]
319 mull %edx
320 addl %eax,%ebp
321 movl 20(%esi),%eax
322 adcl %edx,%ebx
323 movl 12(%edi),%edx
324 adcl $0,%ecx
325 # mul a[5]*b[3]
326 mull %edx
327 addl %eax,%ebp
328 movl 16(%esi),%eax
329 adcl %edx,%ebx
330 movl 16(%edi),%edx
331 adcl $0,%ecx
332 # mul a[4]*b[4]
333 mull %edx
334 addl %eax,%ebp
335 movl 12(%esi),%eax
336 adcl %edx,%ebx
337 movl 20(%edi),%edx
338 adcl $0,%ecx
339 # mul a[3]*b[5]
340 mull %edx
341 addl %eax,%ebp
342 movl 8(%esi),%eax
343 adcl %edx,%ebx
344 movl 24(%edi),%edx
345 adcl $0,%ecx
346 # mul a[2]*b[6]
347 mull %edx
348 addl %eax,%ebp
349 movl 4(%esi),%eax
350 adcl %edx,%ebx
351 movl 28(%edi),%edx
352 adcl $0,%ecx
353 # mul a[1]*b[7]
354 mull %edx
355 addl %eax,%ebp
356 movl 20(%esp),%eax
357 adcl %edx,%ebx
358 movl 8(%edi),%edx
359 adcl $0,%ecx
360 movl %ebp,32(%eax)
361 movl 28(%esi),%eax
362 # saved r[8]
363 # ################## Calculate word 9
364 xorl %ebp,%ebp
365 # mul a[7]*b[2]
366 mull %edx
367 addl %eax,%ebx
368 movl 24(%esi),%eax
369 adcl %edx,%ecx
370 movl 12(%edi),%edx
371 adcl $0,%ebp
372 # mul a[6]*b[3]
373 mull %edx
374 addl %eax,%ebx
375 movl 20(%esi),%eax
376 adcl %edx,%ecx
377 movl 16(%edi),%edx
378 adcl $0,%ebp
379 # mul a[5]*b[4]
380 mull %edx
381 addl %eax,%ebx
382 movl 16(%esi),%eax
383 adcl %edx,%ecx
384 movl 20(%edi),%edx
385 adcl $0,%ebp
386 # mul a[4]*b[5]
387 mull %edx
388 addl %eax,%ebx
389 movl 12(%esi),%eax
390 adcl %edx,%ecx
391 movl 24(%edi),%edx
392 adcl $0,%ebp
393 # mul a[3]*b[6]
394 mull %edx
395 addl %eax,%ebx
396 movl 8(%esi),%eax
397 adcl %edx,%ecx
398 movl 28(%edi),%edx
399 adcl $0,%ebp
400 # mul a[2]*b[7]
401 mull %edx
402 addl %eax,%ebx
403 movl 20(%esp),%eax
404 adcl %edx,%ecx
405 movl 12(%edi),%edx
406 adcl $0,%ebp
407 movl %ebx,36(%eax)
408 movl 28(%esi),%eax
409 # saved r[9]
410 # ################## Calculate word 10
411 xorl %ebx,%ebx
412 # mul a[7]*b[3]
413 mull %edx
414 addl %eax,%ecx
415 movl 24(%esi),%eax
416 adcl %edx,%ebp
417 movl 16(%edi),%edx
418 adcl $0,%ebx
419 # mul a[6]*b[4]
420 mull %edx
421 addl %eax,%ecx
422 movl 20(%esi),%eax
423 adcl %edx,%ebp
424 movl 20(%edi),%edx
425 adcl $0,%ebx
426 # mul a[5]*b[5]
427 mull %edx
428 addl %eax,%ecx
429 movl 16(%esi),%eax
430 adcl %edx,%ebp
431 movl 24(%edi),%edx
432 adcl $0,%ebx
433 # mul a[4]*b[6]
434 mull %edx
435 addl %eax,%ecx
436 movl 12(%esi),%eax
437 adcl %edx,%ebp
438 movl 28(%edi),%edx
439 adcl $0,%ebx
440 # mul a[3]*b[7]
441 mull %edx
442 addl %eax,%ecx
443 movl 20(%esp),%eax
444 adcl %edx,%ebp
445 movl 16(%edi),%edx
446 adcl $0,%ebx
447 movl %ecx,40(%eax)
448 movl 28(%esi),%eax
449 # saved r[10]
450 # ################## Calculate word 11
451 xorl %ecx,%ecx
452 # mul a[7]*b[4]
453 mull %edx
454 addl %eax,%ebp
455 movl 24(%esi),%eax
456 adcl %edx,%ebx
457 movl 20(%edi),%edx
458 adcl $0,%ecx
459 # mul a[6]*b[5]
460 mull %edx
461 addl %eax,%ebp
462 movl 20(%esi),%eax
463 adcl %edx,%ebx
464 movl 24(%edi),%edx
465 adcl $0,%ecx
466 # mul a[5]*b[6]
467 mull %edx
468 addl %eax,%ebp
469 movl 16(%esi),%eax
470 adcl %edx,%ebx
471 movl 28(%edi),%edx
472 adcl $0,%ecx
473 # mul a[4]*b[7]
474 mull %edx
475 addl %eax,%ebp
476 movl 20(%esp),%eax
477 adcl %edx,%ebx
478 movl 20(%edi),%edx
479 adcl $0,%ecx
480 movl %ebp,44(%eax)
481 movl 28(%esi),%eax
482 # saved r[11]
483 # ################## Calculate word 12
484 xorl %ebp,%ebp
485 # mul a[7]*b[5]
486 mull %edx
487 addl %eax,%ebx
488 movl 24(%esi),%eax
489 adcl %edx,%ecx
490 movl 24(%edi),%edx
491 adcl $0,%ebp
492 # mul a[6]*b[6]
493 mull %edx
494 addl %eax,%ebx
495 movl 20(%esi),%eax
496 adcl %edx,%ecx
497 movl 28(%edi),%edx
498 adcl $0,%ebp
499 # mul a[5]*b[7]
500 mull %edx
501 addl %eax,%ebx
502 movl 20(%esp),%eax
503 adcl %edx,%ecx
504 movl 24(%edi),%edx
505 adcl $0,%ebp
506 movl %ebx,48(%eax)
507 movl 28(%esi),%eax
508 # saved r[12]
509 # ################## Calculate word 13
510 xorl %ebx,%ebx
511 # mul a[7]*b[6]
512 mull %edx
513 addl %eax,%ecx
514 movl 24(%esi),%eax
515 adcl %edx,%ebp
516 movl 28(%edi),%edx
517 adcl $0,%ebx
518 # mul a[6]*b[7]
519 mull %edx
520 addl %eax,%ecx
521 movl 20(%esp),%eax
522 adcl %edx,%ebp
523 movl 28(%edi),%edx
524 adcl $0,%ebx
525 movl %ecx,52(%eax)
526 movl 28(%esi),%eax
527 # saved r[13]
528 # ################## Calculate word 14
529 xorl %ecx,%ecx
530 # mul a[7]*b[7]
531 mull %edx
532 addl %eax,%ebp
533 movl 20(%esp),%eax
534 adcl %edx,%ebx
535 adcl $0,%ecx
536 movl %ebp,56(%eax)
537 # saved r[14]
538 # save r[15]
539 movl %ebx,60(%eax)
540 popl %ebx
541 popl %ebp
542 popl %edi
543 popl %esi
544 ret
545 .globl _bn_mul_comba4
546 .align 4
547 _bn_mul_comba4:
548 L_bn_mul_comba4_begin:
549 pushl %esi
550 movl 12(%esp),%esi
551 pushl %edi
552 movl 20(%esp),%edi
553 pushl %ebp
554 pushl %ebx
555 xorl %ebx,%ebx
556 movl (%esi),%eax
557 xorl %ecx,%ecx
558 movl (%edi),%edx
559 # ################## Calculate word 0
560 xorl %ebp,%ebp
561 # mul a[0]*b[0]
562 mull %edx
563 addl %eax,%ebx
564 movl 20(%esp),%eax
565 adcl %edx,%ecx
566 movl (%edi),%edx
567 adcl $0,%ebp
568 movl %ebx,(%eax)
569 movl 4(%esi),%eax
570 # saved r[0]
571 # ################## Calculate word 1
572 xorl %ebx,%ebx
573 # mul a[1]*b[0]
574 mull %edx
575 addl %eax,%ecx
576 movl (%esi),%eax
577 adcl %edx,%ebp
578 movl 4(%edi),%edx
579 adcl $0,%ebx
580 # mul a[0]*b[1]
581 mull %edx
582 addl %eax,%ecx
583 movl 20(%esp),%eax
584 adcl %edx,%ebp
585 movl (%edi),%edx
586 adcl $0,%ebx
587 movl %ecx,4(%eax)
588 movl 8(%esi),%eax
589 # saved r[1]
590 # ################## Calculate word 2
591 xorl %ecx,%ecx
592 # mul a[2]*b[0]
593 mull %edx
594 addl %eax,%ebp
595 movl 4(%esi),%eax
596 adcl %edx,%ebx
597 movl 4(%edi),%edx
598 adcl $0,%ecx
599 # mul a[1]*b[1]
600 mull %edx
601 addl %eax,%ebp
602 movl (%esi),%eax
603 adcl %edx,%ebx
604 movl 8(%edi),%edx
605 adcl $0,%ecx
606 # mul a[0]*b[2]
607 mull %edx
608 addl %eax,%ebp
609 movl 20(%esp),%eax
610 adcl %edx,%ebx
611 movl (%edi),%edx
612 adcl $0,%ecx
613 movl %ebp,8(%eax)
614 movl 12(%esi),%eax
615 # saved r[2]
616 # ################## Calculate word 3
617 xorl %ebp,%ebp
618 # mul a[3]*b[0]
619 mull %edx
620 addl %eax,%ebx
621 movl 8(%esi),%eax
622 adcl %edx,%ecx
623 movl 4(%edi),%edx
624 adcl $0,%ebp
625 # mul a[2]*b[1]
626 mull %edx
627 addl %eax,%ebx
628 movl 4(%esi),%eax
629 adcl %edx,%ecx
630 movl 8(%edi),%edx
631 adcl $0,%ebp
632 # mul a[1]*b[2]
633 mull %edx
634 addl %eax,%ebx
635 movl (%esi),%eax
636 adcl %edx,%ecx
637 movl 12(%edi),%edx
638 adcl $0,%ebp
639 # mul a[0]*b[3]
640 mull %edx
641 addl %eax,%ebx
642 movl 20(%esp),%eax
643 adcl %edx,%ecx
644 movl 4(%edi),%edx
645 adcl $0,%ebp
646 movl %ebx,12(%eax)
647 movl 12(%esi),%eax
648 # saved r[3]
649 # ################## Calculate word 4
650 xorl %ebx,%ebx
651 # mul a[3]*b[1]
652 mull %edx
653 addl %eax,%ecx
654 movl 8(%esi),%eax
655 adcl %edx,%ebp
656 movl 8(%edi),%edx
657 adcl $0,%ebx
658 # mul a[2]*b[2]
659 mull %edx
660 addl %eax,%ecx
661 movl 4(%esi),%eax
662 adcl %edx,%ebp
663 movl 12(%edi),%edx
664 adcl $0,%ebx
665 # mul a[1]*b[3]
666 mull %edx
667 addl %eax,%ecx
668 movl 20(%esp),%eax
669 adcl %edx,%ebp
670 movl 8(%edi),%edx
671 adcl $0,%ebx
672 movl %ecx,16(%eax)
673 movl 12(%esi),%eax
674 # saved r[4]
675 # ################## Calculate word 5
676 xorl %ecx,%ecx
677 # mul a[3]*b[2]
678 mull %edx
679 addl %eax,%ebp
680 movl 8(%esi),%eax
681 adcl %edx,%ebx
682 movl 12(%edi),%edx
683 adcl $0,%ecx
684 # mul a[2]*b[3]
685 mull %edx
686 addl %eax,%ebp
687 movl 20(%esp),%eax
688 adcl %edx,%ebx
689 movl 12(%edi),%edx
690 adcl $0,%ecx
691 movl %ebp,20(%eax)
692 movl 12(%esi),%eax
693 # saved r[5]
694 # ################## Calculate word 6
695 xorl %ebp,%ebp
696 # mul a[3]*b[3]
697 mull %edx
698 addl %eax,%ebx
699 movl 20(%esp),%eax
700 adcl %edx,%ecx
701 adcl $0,%ebp
702 movl %ebx,24(%eax)
703 # saved r[6]
704 # save r[7]
705 movl %ecx,28(%eax)
706 popl %ebx
707 popl %ebp
708 popl %edi
709 popl %esi
710 ret
711 .globl _bn_sqr_comba8
712 .align 4
713 _bn_sqr_comba8:
714 L_bn_sqr_comba8_begin:
715 pushl %esi
716 pushl %edi
717 pushl %ebp
718 pushl %ebx
719 movl 20(%esp),%edi
720 movl 24(%esp),%esi
721 xorl %ebx,%ebx
722 xorl %ecx,%ecx
723 movl (%esi),%eax
724 # ############### Calculate word 0
725 xorl %ebp,%ebp
726 # sqr a[0]*a[0]
727 mull %eax
728 addl %eax,%ebx
729 adcl %edx,%ecx
730 movl (%esi),%edx
731 adcl $0,%ebp
732 movl %ebx,(%edi)
733 movl 4(%esi),%eax
734 # saved r[0]
735 # ############### Calculate word 1
736 xorl %ebx,%ebx
737 # sqr a[1]*a[0]
738 mull %edx
739 addl %eax,%eax
740 adcl %edx,%edx
741 adcl $0,%ebx
742 addl %eax,%ecx
743 adcl %edx,%ebp
744 movl 8(%esi),%eax
745 adcl $0,%ebx
746 movl %ecx,4(%edi)
747 movl (%esi),%edx
748 # saved r[1]
749 # ############### Calculate word 2
750 xorl %ecx,%ecx
751 # sqr a[2]*a[0]
752 mull %edx
753 addl %eax,%eax
754 adcl %edx,%edx
755 adcl $0,%ecx
756 addl %eax,%ebp
757 adcl %edx,%ebx
758 movl 4(%esi),%eax
759 adcl $0,%ecx
760 # sqr a[1]*a[1]
761 mull %eax
762 addl %eax,%ebp
763 adcl %edx,%ebx
764 movl (%esi),%edx
765 adcl $0,%ecx
766 movl %ebp,8(%edi)
767 movl 12(%esi),%eax
768 # saved r[2]
769 # ############### Calculate word 3
770 xorl %ebp,%ebp
771 # sqr a[3]*a[0]
772 mull %edx
773 addl %eax,%eax
774 adcl %edx,%edx
775 adcl $0,%ebp
776 addl %eax,%ebx
777 adcl %edx,%ecx
778 movl 8(%esi),%eax
779 adcl $0,%ebp
780 movl 4(%esi),%edx
781 # sqr a[2]*a[1]
782 mull %edx
783 addl %eax,%eax
784 adcl %edx,%edx
785 adcl $0,%ebp
786 addl %eax,%ebx
787 adcl %edx,%ecx
788 movl 16(%esi),%eax
789 adcl $0,%ebp
790 movl %ebx,12(%edi)
791 movl (%esi),%edx
792 # saved r[3]
793 # ############### Calculate word 4
794 xorl %ebx,%ebx
795 # sqr a[4]*a[0]
796 mull %edx
797 addl %eax,%eax
798 adcl %edx,%edx
799 adcl $0,%ebx
800 addl %eax,%ecx
801 adcl %edx,%ebp
802 movl 12(%esi),%eax
803 adcl $0,%ebx
804 movl 4(%esi),%edx
805 # sqr a[3]*a[1]
806 mull %edx
807 addl %eax,%eax
808 adcl %edx,%edx
809 adcl $0,%ebx
810 addl %eax,%ecx
811 adcl %edx,%ebp
812 movl 8(%esi),%eax
813 adcl $0,%ebx
814 # sqr a[2]*a[2]
815 mull %eax
816 addl %eax,%ecx
817 adcl %edx,%ebp
818 movl (%esi),%edx
819 adcl $0,%ebx
820 movl %ecx,16(%edi)
821 movl 20(%esi),%eax
822 # saved r[4]
823 # ############### Calculate word 5
824 xorl %ecx,%ecx
825 # sqr a[5]*a[0]
826 mull %edx
827 addl %eax,%eax
828 adcl %edx,%edx
829 adcl $0,%ecx
830 addl %eax,%ebp
831 adcl %edx,%ebx
832 movl 16(%esi),%eax
833 adcl $0,%ecx
834 movl 4(%esi),%edx
835 # sqr a[4]*a[1]
836 mull %edx
837 addl %eax,%eax
838 adcl %edx,%edx
839 adcl $0,%ecx
840 addl %eax,%ebp
841 adcl %edx,%ebx
842 movl 12(%esi),%eax
843 adcl $0,%ecx
844 movl 8(%esi),%edx
845 # sqr a[3]*a[2]
846 mull %edx
847 addl %eax,%eax
848 adcl %edx,%edx
849 adcl $0,%ecx
850 addl %eax,%ebp
851 adcl %edx,%ebx
852 movl 24(%esi),%eax
853 adcl $0,%ecx
854 movl %ebp,20(%edi)
855 movl (%esi),%edx
856 # saved r[5]
857 # ############### Calculate word 6
858 xorl %ebp,%ebp
859 # sqr a[6]*a[0]
860 mull %edx
861 addl %eax,%eax
862 adcl %edx,%edx
863 adcl $0,%ebp
864 addl %eax,%ebx
865 adcl %edx,%ecx
866 movl 20(%esi),%eax
867 adcl $0,%ebp
868 movl 4(%esi),%edx
869 # sqr a[5]*a[1]
870 mull %edx
871 addl %eax,%eax
872 adcl %edx,%edx
873 adcl $0,%ebp
874 addl %eax,%ebx
875 adcl %edx,%ecx
876 movl 16(%esi),%eax
877 adcl $0,%ebp
878 movl 8(%esi),%edx
879 # sqr a[4]*a[2]
880 mull %edx
881 addl %eax,%eax
882 adcl %edx,%edx
883 adcl $0,%ebp
884 addl %eax,%ebx
885 adcl %edx,%ecx
886 movl 12(%esi),%eax
887 adcl $0,%ebp
888 # sqr a[3]*a[3]
889 mull %eax
890 addl %eax,%ebx
891 adcl %edx,%ecx
892 movl (%esi),%edx
893 adcl $0,%ebp
894 movl %ebx,24(%edi)
895 movl 28(%esi),%eax
896 # saved r[6]
897 # ############### Calculate word 7
898 xorl %ebx,%ebx
899 # sqr a[7]*a[0]
900 mull %edx
901 addl %eax,%eax
902 adcl %edx,%edx
903 adcl $0,%ebx
904 addl %eax,%ecx
905 adcl %edx,%ebp
906 movl 24(%esi),%eax
907 adcl $0,%ebx
908 movl 4(%esi),%edx
909 # sqr a[6]*a[1]
910 mull %edx
911 addl %eax,%eax
912 adcl %edx,%edx
913 adcl $0,%ebx
914 addl %eax,%ecx
915 adcl %edx,%ebp
916 movl 20(%esi),%eax
917 adcl $0,%ebx
918 movl 8(%esi),%edx
919 # sqr a[5]*a[2]
920 mull %edx
921 addl %eax,%eax
922 adcl %edx,%edx
923 adcl $0,%ebx
924 addl %eax,%ecx
925 adcl %edx,%ebp
926 movl 16(%esi),%eax
927 adcl $0,%ebx
928 movl 12(%esi),%edx
929 # sqr a[4]*a[3]
930 mull %edx
931 addl %eax,%eax
932 adcl %edx,%edx
933 adcl $0,%ebx
934 addl %eax,%ecx
935 adcl %edx,%ebp
936 movl 28(%esi),%eax
937 adcl $0,%ebx
938 movl %ecx,28(%edi)
939 movl 4(%esi),%edx
940 # saved r[7]
941 # ############### Calculate word 8
942 xorl %ecx,%ecx
943 # sqr a[7]*a[1]
944 mull %edx
945 addl %eax,%eax
946 adcl %edx,%edx
947 adcl $0,%ecx
948 addl %eax,%ebp
949 adcl %edx,%ebx
950 movl 24(%esi),%eax
951 adcl $0,%ecx
952 movl 8(%esi),%edx
953 # sqr a[6]*a[2]
954 mull %edx
955 addl %eax,%eax
956 adcl %edx,%edx
957 adcl $0,%ecx
958 addl %eax,%ebp
959 adcl %edx,%ebx
960 movl 20(%esi),%eax
961 adcl $0,%ecx
962 movl 12(%esi),%edx
963 # sqr a[5]*a[3]
964 mull %edx
965 addl %eax,%eax
966 adcl %edx,%edx
967 adcl $0,%ecx
968 addl %eax,%ebp
969 adcl %edx,%ebx
970 movl 16(%esi),%eax
971 adcl $0,%ecx
972 # sqr a[4]*a[4]
973 mull %eax
974 addl %eax,%ebp
975 adcl %edx,%ebx
976 movl 8(%esi),%edx
977 adcl $0,%ecx
978 movl %ebp,32(%edi)
979 movl 28(%esi),%eax
980 # saved r[8]
981 # ############### Calculate word 9
982 xorl %ebp,%ebp
983 # sqr a[7]*a[2]
984 mull %edx
985 addl %eax,%eax
986 adcl %edx,%edx
987 adcl $0,%ebp
988 addl %eax,%ebx
989 adcl %edx,%ecx
990 movl 24(%esi),%eax
991 adcl $0,%ebp
992 movl 12(%esi),%edx
993 # sqr a[6]*a[3]
994 mull %edx
995 addl %eax,%eax
996 adcl %edx,%edx
997 adcl $0,%ebp
998 addl %eax,%ebx
999 adcl %edx,%ecx
1000 movl 20(%esi),%eax
1001 adcl $0,%ebp
1002 movl 16(%esi),%edx
1003 # sqr a[5]*a[4]
1004 mull %edx
1005 addl %eax,%eax
1006 adcl %edx,%edx
1007 adcl $0,%ebp
1008 addl %eax,%ebx
1009 adcl %edx,%ecx
1010 movl 28(%esi),%eax
1011 adcl $0,%ebp
1012 movl %ebx,36(%edi)
1013 movl 12(%esi),%edx
1014 # saved r[9]
1015 # ############### Calculate word 10
1016 xorl %ebx,%ebx
1017 # sqr a[7]*a[3]
1018 mull %edx
1019 addl %eax,%eax
1020 adcl %edx,%edx
1021 adcl $0,%ebx
1022 addl %eax,%ecx
1023 adcl %edx,%ebp
1024 movl 24(%esi),%eax
1025 adcl $0,%ebx
1026 movl 16(%esi),%edx
1027 # sqr a[6]*a[4]
1028 mull %edx
1029 addl %eax,%eax
1030 adcl %edx,%edx
1031 adcl $0,%ebx
1032 addl %eax,%ecx
1033 adcl %edx,%ebp
1034 movl 20(%esi),%eax
1035 adcl $0,%ebx
1036 # sqr a[5]*a[5]
1037 mull %eax
1038 addl %eax,%ecx
1039 adcl %edx,%ebp
1040 movl 16(%esi),%edx
1041 adcl $0,%ebx
1042 movl %ecx,40(%edi)
1043 movl 28(%esi),%eax
1044 # saved r[10]
1045 # ############### Calculate word 11
1046 xorl %ecx,%ecx
1047 # sqr a[7]*a[4]
1048 mull %edx
1049 addl %eax,%eax
1050 adcl %edx,%edx
1051 adcl $0,%ecx
1052 addl %eax,%ebp
1053 adcl %edx,%ebx
1054 movl 24(%esi),%eax
1055 adcl $0,%ecx
1056 movl 20(%esi),%edx
1057 # sqr a[6]*a[5]
1058 mull %edx
1059 addl %eax,%eax
1060 adcl %edx,%edx
1061 adcl $0,%ecx
1062 addl %eax,%ebp
1063 adcl %edx,%ebx
1064 movl 28(%esi),%eax
1065 adcl $0,%ecx
1066 movl %ebp,44(%edi)
1067 movl 20(%esi),%edx
1068 # saved r[11]
1069 # ############### Calculate word 12
1070 xorl %ebp,%ebp
1071 # sqr a[7]*a[5]
1072 mull %edx
1073 addl %eax,%eax
1074 adcl %edx,%edx
1075 adcl $0,%ebp
1076 addl %eax,%ebx
1077 adcl %edx,%ecx
1078 movl 24(%esi),%eax
1079 adcl $0,%ebp
1080 # sqr a[6]*a[6]
1081 mull %eax
1082 addl %eax,%ebx
1083 adcl %edx,%ecx
1084 movl 24(%esi),%edx
1085 adcl $0,%ebp
1086 movl %ebx,48(%edi)
1087 movl 28(%esi),%eax
1088 # saved r[12]
1089 # ############### Calculate word 13
1090 xorl %ebx,%ebx
1091 # sqr a[7]*a[6]
1092 mull %edx
1093 addl %eax,%eax
1094 adcl %edx,%edx
1095 adcl $0,%ebx
1096 addl %eax,%ecx
1097 adcl %edx,%ebp
1098 movl 28(%esi),%eax
1099 adcl $0,%ebx
1100 movl %ecx,52(%edi)
1101 # saved r[13]
1102 # ############### Calculate word 14
1103 xorl %ecx,%ecx
1104 # sqr a[7]*a[7]
1105 mull %eax
1106 addl %eax,%ebp
1107 adcl %edx,%ebx
1108 adcl $0,%ecx
1109 movl %ebp,56(%edi)
1110 # saved r[14]
1111 movl %ebx,60(%edi)
1112 popl %ebx
1113 popl %ebp
1114 popl %edi
1115 popl %esi
1116 ret
1117 .globl _bn_sqr_comba4
1118 .align 4
1119 _bn_sqr_comba4:
1120 L_bn_sqr_comba4_begin:
1121 pushl %esi
1122 pushl %edi
1123 pushl %ebp
1124 pushl %ebx
1125 movl 20(%esp),%edi
1126 movl 24(%esp),%esi
1127 xorl %ebx,%ebx
1128 xorl %ecx,%ecx
1129 movl (%esi),%eax
1130 # ############### Calculate word 0
1131 xorl %ebp,%ebp
1132 # sqr a[0]*a[0]
1133 mull %eax
1134 addl %eax,%ebx
1135 adcl %edx,%ecx
1136 movl (%esi),%edx
1137 adcl $0,%ebp
1138 movl %ebx,(%edi)
1139 movl 4(%esi),%eax
1140 # saved r[0]
1141 # ############### Calculate word 1
1142 xorl %ebx,%ebx
1143 # sqr a[1]*a[0]
1144 mull %edx
1145 addl %eax,%eax
1146 adcl %edx,%edx
1147 adcl $0,%ebx
1148 addl %eax,%ecx
1149 adcl %edx,%ebp
1150 movl 8(%esi),%eax
1151 adcl $0,%ebx
1152 movl %ecx,4(%edi)
1153 movl (%esi),%edx
1154 # saved r[1]
1155 # ############### Calculate word 2
1156 xorl %ecx,%ecx
1157 # sqr a[2]*a[0]
1158 mull %edx
1159 addl %eax,%eax
1160 adcl %edx,%edx
1161 adcl $0,%ecx
1162 addl %eax,%ebp
1163 adcl %edx,%ebx
1164 movl 4(%esi),%eax
1165 adcl $0,%ecx
1166 # sqr a[1]*a[1]
1167 mull %eax
1168 addl %eax,%ebp
1169 adcl %edx,%ebx
1170 movl (%esi),%edx
1171 adcl $0,%ecx
1172 movl %ebp,8(%edi)
1173 movl 12(%esi),%eax
1174 # saved r[2]
1175 # ############### Calculate word 3
1176 xorl %ebp,%ebp
1177 # sqr a[3]*a[0]
1178 mull %edx
1179 addl %eax,%eax
1180 adcl %edx,%edx
1181 adcl $0,%ebp
1182 addl %eax,%ebx
1183 adcl %edx,%ecx
1184 movl 8(%esi),%eax
1185 adcl $0,%ebp
1186 movl 4(%esi),%edx
1187 # sqr a[2]*a[1]
1188 mull %edx
1189 addl %eax,%eax
1190 adcl %edx,%edx
1191 adcl $0,%ebp
1192 addl %eax,%ebx
1193 adcl %edx,%ecx
1194 movl 12(%esi),%eax
1195 adcl $0,%ebp
1196 movl %ebx,12(%edi)
1197 movl 4(%esi),%edx
1198 # saved r[3]
1199 # ############### Calculate word 4
1200 xorl %ebx,%ebx
1201 # sqr a[3]*a[1]
1202 mull %edx
1203 addl %eax,%eax
1204 adcl %edx,%edx
1205 adcl $0,%ebx
1206 addl %eax,%ecx
1207 adcl %edx,%ebp
1208 movl 8(%esi),%eax
1209 adcl $0,%ebx
1210 # sqr a[2]*a[2]
1211 mull %eax
1212 addl %eax,%ecx
1213 adcl %edx,%ebp
1214 movl 8(%esi),%edx
1215 adcl $0,%ebx
1216 movl %ecx,16(%edi)
1217 movl 12(%esi),%eax
1218 # saved r[4]
1219 # ############### Calculate word 5
1220 xorl %ecx,%ecx
1221 # sqr a[3]*a[2]
1222 mull %edx
1223 addl %eax,%eax
1224 adcl %edx,%edx
1225 adcl $0,%ecx
1226 addl %eax,%ebp
1227 adcl %edx,%ebx
1228 movl 12(%esi),%eax
1229 adcl $0,%ecx
1230 movl %ebp,20(%edi)
1231 # saved r[5]
1232 # ############### Calculate word 6
1233 xorl %ebp,%ebp
1234 # sqr a[3]*a[3]
1235 mull %eax
1236 addl %eax,%ebx
1237 adcl %edx,%ecx
1238 adcl $0,%ebp
1239 movl %ebx,24(%edi)
1240 # saved r[6]
1241 movl %ecx,28(%edi)
1242 popl %ebx
1243 popl %ebp
1244 popl %edi
1245 popl %esi
1246 ret
OLDNEW
« no previous file with comments | « openssl/crypto/bn/asm/co-586.pl ('k') | openssl/crypto/bn/asm/ia64.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698