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