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