1.1 --- a/cryptlib/bn-sol.s Tue Aug 28 18:34:05 2012 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,2149 +0,0 @@ 1.4 - / Don't even think of reading this code 1.5 - / It was automatically generated by x86.pl 1.6 - / Which is a perl program used to generate the x86 assember for 1.7 - / any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris 1.8 - / eric <eay@cryptsoft.com> 1.9 - 1.10 - .file "x86.s" 1.11 - .version "01.01" 1.12 -gcc2_compiled.: 1.13 -.text 1.14 - .align 16 1.15 -.globl bn_mul_add_words 1.16 - .type bn_mul_add_words,@function 1.17 -bn_mul_add_words: 1.18 - pushl %ebp 1.19 - pushl %ebx 1.20 - pushl %esi 1.21 - pushl %edi 1.22 - 1.23 - 1.24 - xorl %esi, %esi 1.25 - movl 20(%esp), %edi 1.26 - movl 28(%esp), %ecx 1.27 - movl 24(%esp), %ebx 1.28 - andl $4294967288, %ecx 1.29 - movl 32(%esp), %ebp 1.30 - pushl %ecx 1.31 - jz .L000maw_finish 1.32 -.L001maw_loop: 1.33 - movl %ecx, (%esp) 1.34 - / Round 0 1.35 - movl (%ebx), %eax 1.36 - mull %ebp 1.37 - addl %esi, %eax 1.38 - movl (%edi), %esi 1.39 - adcl $0, %edx 1.40 - addl %esi, %eax 1.41 - adcl $0, %edx 1.42 - movl %eax, (%edi) 1.43 - movl %edx, %esi 1.44 - / Round 4 1.45 - movl 4(%ebx), %eax 1.46 - mull %ebp 1.47 - addl %esi, %eax 1.48 - movl 4(%edi), %esi 1.49 - adcl $0, %edx 1.50 - addl %esi, %eax 1.51 - adcl $0, %edx 1.52 - movl %eax, 4(%edi) 1.53 - movl %edx, %esi 1.54 - / Round 8 1.55 - movl 8(%ebx), %eax 1.56 - mull %ebp 1.57 - addl %esi, %eax 1.58 - movl 8(%edi), %esi 1.59 - adcl $0, %edx 1.60 - addl %esi, %eax 1.61 - adcl $0, %edx 1.62 - movl %eax, 8(%edi) 1.63 - movl %edx, %esi 1.64 - / Round 12 1.65 - movl 12(%ebx), %eax 1.66 - mull %ebp 1.67 - addl %esi, %eax 1.68 - movl 12(%edi), %esi 1.69 - adcl $0, %edx 1.70 - addl %esi, %eax 1.71 - adcl $0, %edx 1.72 - movl %eax, 12(%edi) 1.73 - movl %edx, %esi 1.74 - / Round 16 1.75 - movl 16(%ebx), %eax 1.76 - mull %ebp 1.77 - addl %esi, %eax 1.78 - movl 16(%edi), %esi 1.79 - adcl $0, %edx 1.80 - addl %esi, %eax 1.81 - adcl $0, %edx 1.82 - movl %eax, 16(%edi) 1.83 - movl %edx, %esi 1.84 - / Round 20 1.85 - movl 20(%ebx), %eax 1.86 - mull %ebp 1.87 - addl %esi, %eax 1.88 - movl 20(%edi), %esi 1.89 - adcl $0, %edx 1.90 - addl %esi, %eax 1.91 - adcl $0, %edx 1.92 - movl %eax, 20(%edi) 1.93 - movl %edx, %esi 1.94 - / Round 24 1.95 - movl 24(%ebx), %eax 1.96 - mull %ebp 1.97 - addl %esi, %eax 1.98 - movl 24(%edi), %esi 1.99 - adcl $0, %edx 1.100 - addl %esi, %eax 1.101 - adcl $0, %edx 1.102 - movl %eax, 24(%edi) 1.103 - movl %edx, %esi 1.104 - / Round 28 1.105 - movl 28(%ebx), %eax 1.106 - mull %ebp 1.107 - addl %esi, %eax 1.108 - movl 28(%edi), %esi 1.109 - adcl $0, %edx 1.110 - addl %esi, %eax 1.111 - adcl $0, %edx 1.112 - movl %eax, 28(%edi) 1.113 - movl %edx, %esi 1.114 - 1.115 - movl (%esp), %ecx 1.116 - addl $32, %ebx 1.117 - addl $32, %edi 1.118 - subl $8, %ecx 1.119 - jnz .L001maw_loop 1.120 -.L000maw_finish: 1.121 - movl 32(%esp), %ecx 1.122 - andl $7, %ecx 1.123 - jnz .L002maw_finish2 1.124 - jmp .L003maw_end 1.125 -.align 16 1.126 -.L002maw_finish2: 1.127 - / Tail Round 0 1.128 - movl (%ebx), %eax 1.129 - mull %ebp 1.130 - addl %esi, %eax 1.131 - movl (%edi), %esi 1.132 - adcl $0, %edx 1.133 - addl %esi, %eax 1.134 - adcl $0, %edx 1.135 - decl %ecx 1.136 - movl %eax, (%edi) 1.137 - movl %edx, %esi 1.138 - jz .L003maw_end 1.139 - / Tail Round 1 1.140 - movl 4(%ebx), %eax 1.141 - mull %ebp 1.142 - addl %esi, %eax 1.143 - movl 4(%edi), %esi 1.144 - adcl $0, %edx 1.145 - addl %esi, %eax 1.146 - adcl $0, %edx 1.147 - decl %ecx 1.148 - movl %eax, 4(%edi) 1.149 - movl %edx, %esi 1.150 - jz .L003maw_end 1.151 - / Tail Round 2 1.152 - movl 8(%ebx), %eax 1.153 - mull %ebp 1.154 - addl %esi, %eax 1.155 - movl 8(%edi), %esi 1.156 - adcl $0, %edx 1.157 - addl %esi, %eax 1.158 - adcl $0, %edx 1.159 - decl %ecx 1.160 - movl %eax, 8(%edi) 1.161 - movl %edx, %esi 1.162 - jz .L003maw_end 1.163 - / Tail Round 3 1.164 - movl 12(%ebx), %eax 1.165 - mull %ebp 1.166 - addl %esi, %eax 1.167 - movl 12(%edi), %esi 1.168 - adcl $0, %edx 1.169 - addl %esi, %eax 1.170 - adcl $0, %edx 1.171 - decl %ecx 1.172 - movl %eax, 12(%edi) 1.173 - movl %edx, %esi 1.174 - jz .L003maw_end 1.175 - / Tail Round 4 1.176 - movl 16(%ebx), %eax 1.177 - mull %ebp 1.178 - addl %esi, %eax 1.179 - movl 16(%edi), %esi 1.180 - adcl $0, %edx 1.181 - addl %esi, %eax 1.182 - adcl $0, %edx 1.183 - decl %ecx 1.184 - movl %eax, 16(%edi) 1.185 - movl %edx, %esi 1.186 - jz .L003maw_end 1.187 - / Tail Round 5 1.188 - movl 20(%ebx), %eax 1.189 - mull %ebp 1.190 - addl %esi, %eax 1.191 - movl 20(%edi), %esi 1.192 - adcl $0, %edx 1.193 - addl %esi, %eax 1.194 - adcl $0, %edx 1.195 - decl %ecx 1.196 - movl %eax, 20(%edi) 1.197 - movl %edx, %esi 1.198 - jz .L003maw_end 1.199 - / Tail Round 6 1.200 - movl 24(%ebx), %eax 1.201 - mull %ebp 1.202 - addl %esi, %eax 1.203 - movl 24(%edi), %esi 1.204 - adcl $0, %edx 1.205 - addl %esi, %eax 1.206 - adcl $0, %edx 1.207 - movl %eax, 24(%edi) 1.208 - movl %edx, %esi 1.209 -.L003maw_end: 1.210 - movl %esi, %eax 1.211 - popl %ecx 1.212 - popl %edi 1.213 - popl %esi 1.214 - popl %ebx 1.215 - popl %ebp 1.216 - ret 1.217 -.bn_mul_add_words_end: 1.218 - .size bn_mul_add_words,.bn_mul_add_words_end-bn_mul_add_words 1.219 -.ident "bn_mul_add_words" 1.220 -.text 1.221 - .align 16 1.222 -.globl bn_mul_words 1.223 - .type bn_mul_words,@function 1.224 -bn_mul_words: 1.225 - pushl %ebp 1.226 - pushl %ebx 1.227 - pushl %esi 1.228 - pushl %edi 1.229 - 1.230 - 1.231 - xorl %esi, %esi 1.232 - movl 20(%esp), %edi 1.233 - movl 24(%esp), %ebx 1.234 - movl 28(%esp), %ebp 1.235 - movl 32(%esp), %ecx 1.236 - andl $4294967288, %ebp 1.237 - jz .L004mw_finish 1.238 -.L005mw_loop: 1.239 - / Round 0 1.240 - movl (%ebx), %eax 1.241 - mull %ecx 1.242 - addl %esi, %eax 1.243 - adcl $0, %edx 1.244 - movl %eax, (%edi) 1.245 - movl %edx, %esi 1.246 - / Round 4 1.247 - movl 4(%ebx), %eax 1.248 - mull %ecx 1.249 - addl %esi, %eax 1.250 - adcl $0, %edx 1.251 - movl %eax, 4(%edi) 1.252 - movl %edx, %esi 1.253 - / Round 8 1.254 - movl 8(%ebx), %eax 1.255 - mull %ecx 1.256 - addl %esi, %eax 1.257 - adcl $0, %edx 1.258 - movl %eax, 8(%edi) 1.259 - movl %edx, %esi 1.260 - / Round 12 1.261 - movl 12(%ebx), %eax 1.262 - mull %ecx 1.263 - addl %esi, %eax 1.264 - adcl $0, %edx 1.265 - movl %eax, 12(%edi) 1.266 - movl %edx, %esi 1.267 - / Round 16 1.268 - movl 16(%ebx), %eax 1.269 - mull %ecx 1.270 - addl %esi, %eax 1.271 - adcl $0, %edx 1.272 - movl %eax, 16(%edi) 1.273 - movl %edx, %esi 1.274 - / Round 20 1.275 - movl 20(%ebx), %eax 1.276 - mull %ecx 1.277 - addl %esi, %eax 1.278 - adcl $0, %edx 1.279 - movl %eax, 20(%edi) 1.280 - movl %edx, %esi 1.281 - / Round 24 1.282 - movl 24(%ebx), %eax 1.283 - mull %ecx 1.284 - addl %esi, %eax 1.285 - adcl $0, %edx 1.286 - movl %eax, 24(%edi) 1.287 - movl %edx, %esi 1.288 - / Round 28 1.289 - movl 28(%ebx), %eax 1.290 - mull %ecx 1.291 - addl %esi, %eax 1.292 - adcl $0, %edx 1.293 - movl %eax, 28(%edi) 1.294 - movl %edx, %esi 1.295 - 1.296 - addl $32, %ebx 1.297 - addl $32, %edi 1.298 - subl $8, %ebp 1.299 - jz .L004mw_finish 1.300 - jmp .L005mw_loop 1.301 -.L004mw_finish: 1.302 - movl 28(%esp), %ebp 1.303 - andl $7, %ebp 1.304 - jnz .L006mw_finish2 1.305 - jmp .L007mw_end 1.306 -.align 16 1.307 -.L006mw_finish2: 1.308 - / Tail Round 0 1.309 - movl (%ebx), %eax 1.310 - mull %ecx 1.311 - addl %esi, %eax 1.312 - adcl $0, %edx 1.313 - movl %eax, (%edi) 1.314 - movl %edx, %esi 1.315 - decl %ebp 1.316 - jz .L007mw_end 1.317 - / Tail Round 1 1.318 - movl 4(%ebx), %eax 1.319 - mull %ecx 1.320 - addl %esi, %eax 1.321 - adcl $0, %edx 1.322 - movl %eax, 4(%edi) 1.323 - movl %edx, %esi 1.324 - decl %ebp 1.325 - jz .L007mw_end 1.326 - / Tail Round 2 1.327 - movl 8(%ebx), %eax 1.328 - mull %ecx 1.329 - addl %esi, %eax 1.330 - adcl $0, %edx 1.331 - movl %eax, 8(%edi) 1.332 - movl %edx, %esi 1.333 - decl %ebp 1.334 - jz .L007mw_end 1.335 - / Tail Round 3 1.336 - movl 12(%ebx), %eax 1.337 - mull %ecx 1.338 - addl %esi, %eax 1.339 - adcl $0, %edx 1.340 - movl %eax, 12(%edi) 1.341 - movl %edx, %esi 1.342 - decl %ebp 1.343 - jz .L007mw_end 1.344 - / Tail Round 4 1.345 - movl 16(%ebx), %eax 1.346 - mull %ecx 1.347 - addl %esi, %eax 1.348 - adcl $0, %edx 1.349 - movl %eax, 16(%edi) 1.350 - movl %edx, %esi 1.351 - decl %ebp 1.352 - jz .L007mw_end 1.353 - / Tail Round 5 1.354 - movl 20(%ebx), %eax 1.355 - mull %ecx 1.356 - addl %esi, %eax 1.357 - adcl $0, %edx 1.358 - movl %eax, 20(%edi) 1.359 - movl %edx, %esi 1.360 - decl %ebp 1.361 - jz .L007mw_end 1.362 - / Tail Round 6 1.363 - movl 24(%ebx), %eax 1.364 - mull %ecx 1.365 - addl %esi, %eax 1.366 - adcl $0, %edx 1.367 - movl %eax, 24(%edi) 1.368 - movl %edx, %esi 1.369 -.L007mw_end: 1.370 - movl %esi, %eax 1.371 - popl %edi 1.372 - popl %esi 1.373 - popl %ebx 1.374 - popl %ebp 1.375 - ret 1.376 -.bn_mul_words_end: 1.377 - .size bn_mul_words,.bn_mul_words_end-bn_mul_words 1.378 -.ident "bn_mul_words" 1.379 -.text 1.380 - .align 16 1.381 -.globl bn_sqr_words 1.382 - .type bn_sqr_words,@function 1.383 -bn_sqr_words: 1.384 - pushl %ebp 1.385 - pushl %ebx 1.386 - pushl %esi 1.387 - pushl %edi 1.388 - 1.389 - 1.390 - movl 20(%esp), %esi 1.391 - movl 24(%esp), %edi 1.392 - movl 28(%esp), %ebx 1.393 - andl $4294967288, %ebx 1.394 - jz .L008sw_finish 1.395 -.L009sw_loop: 1.396 - / Round 0 1.397 - movl (%edi), %eax 1.398 - mull %eax 1.399 - movl %eax, (%esi) 1.400 - movl %edx, 4(%esi) 1.401 - / Round 4 1.402 - movl 4(%edi), %eax 1.403 - mull %eax 1.404 - movl %eax, 8(%esi) 1.405 - movl %edx, 12(%esi) 1.406 - / Round 8 1.407 - movl 8(%edi), %eax 1.408 - mull %eax 1.409 - movl %eax, 16(%esi) 1.410 - movl %edx, 20(%esi) 1.411 - / Round 12 1.412 - movl 12(%edi), %eax 1.413 - mull %eax 1.414 - movl %eax, 24(%esi) 1.415 - movl %edx, 28(%esi) 1.416 - / Round 16 1.417 - movl 16(%edi), %eax 1.418 - mull %eax 1.419 - movl %eax, 32(%esi) 1.420 - movl %edx, 36(%esi) 1.421 - / Round 20 1.422 - movl 20(%edi), %eax 1.423 - mull %eax 1.424 - movl %eax, 40(%esi) 1.425 - movl %edx, 44(%esi) 1.426 - / Round 24 1.427 - movl 24(%edi), %eax 1.428 - mull %eax 1.429 - movl %eax, 48(%esi) 1.430 - movl %edx, 52(%esi) 1.431 - / Round 28 1.432 - movl 28(%edi), %eax 1.433 - mull %eax 1.434 - movl %eax, 56(%esi) 1.435 - movl %edx, 60(%esi) 1.436 - 1.437 - addl $32, %edi 1.438 - addl $64, %esi 1.439 - subl $8, %ebx 1.440 - jnz .L009sw_loop 1.441 -.L008sw_finish: 1.442 - movl 28(%esp), %ebx 1.443 - andl $7, %ebx 1.444 - jz .L010sw_end 1.445 - / Tail Round 0 1.446 - movl (%edi), %eax 1.447 - mull %eax 1.448 - movl %eax, (%esi) 1.449 - decl %ebx 1.450 - movl %edx, 4(%esi) 1.451 - jz .L010sw_end 1.452 - / Tail Round 1 1.453 - movl 4(%edi), %eax 1.454 - mull %eax 1.455 - movl %eax, 8(%esi) 1.456 - decl %ebx 1.457 - movl %edx, 12(%esi) 1.458 - jz .L010sw_end 1.459 - / Tail Round 2 1.460 - movl 8(%edi), %eax 1.461 - mull %eax 1.462 - movl %eax, 16(%esi) 1.463 - decl %ebx 1.464 - movl %edx, 20(%esi) 1.465 - jz .L010sw_end 1.466 - / Tail Round 3 1.467 - movl 12(%edi), %eax 1.468 - mull %eax 1.469 - movl %eax, 24(%esi) 1.470 - decl %ebx 1.471 - movl %edx, 28(%esi) 1.472 - jz .L010sw_end 1.473 - / Tail Round 4 1.474 - movl 16(%edi), %eax 1.475 - mull %eax 1.476 - movl %eax, 32(%esi) 1.477 - decl %ebx 1.478 - movl %edx, 36(%esi) 1.479 - jz .L010sw_end 1.480 - / Tail Round 5 1.481 - movl 20(%edi), %eax 1.482 - mull %eax 1.483 - movl %eax, 40(%esi) 1.484 - decl %ebx 1.485 - movl %edx, 44(%esi) 1.486 - jz .L010sw_end 1.487 - / Tail Round 6 1.488 - movl 24(%edi), %eax 1.489 - mull %eax 1.490 - movl %eax, 48(%esi) 1.491 - movl %edx, 52(%esi) 1.492 -.L010sw_end: 1.493 - popl %edi 1.494 - popl %esi 1.495 - popl %ebx 1.496 - popl %ebp 1.497 - ret 1.498 -.bn_sqr_words_end: 1.499 - .size bn_sqr_words,.bn_sqr_words_end-bn_sqr_words 1.500 -.ident "bn_sqr_words" 1.501 -.text 1.502 - .align 16 1.503 -.globl bn_div_words 1.504 - .type bn_div_words,@function 1.505 -bn_div_words: 1.506 - pushl %ebp 1.507 - pushl %ebx 1.508 - pushl %esi 1.509 - pushl %edi 1.510 - 1.511 - movl 20(%esp), %edx 1.512 - movl 24(%esp), %eax 1.513 - movl 28(%esp), %ebx 1.514 - divl %ebx 1.515 - popl %edi 1.516 - popl %esi 1.517 - popl %ebx 1.518 - popl %ebp 1.519 - ret 1.520 -.bn_div_words_end: 1.521 - .size bn_div_words,.bn_div_words_end-bn_div_words 1.522 -.ident "bn_div_words" 1.523 -.text 1.524 - .align 16 1.525 -.globl bn_add_words 1.526 - .type bn_add_words,@function 1.527 -bn_add_words: 1.528 - pushl %ebp 1.529 - pushl %ebx 1.530 - pushl %esi 1.531 - pushl %edi 1.532 - 1.533 - 1.534 - movl 20(%esp), %ebx 1.535 - movl 24(%esp), %esi 1.536 - movl 28(%esp), %edi 1.537 - movl 32(%esp), %ebp 1.538 - xorl %eax, %eax 1.539 - andl $4294967288, %ebp 1.540 - jz .L011aw_finish 1.541 -.L012aw_loop: 1.542 - / Round 0 1.543 - movl (%esi), %ecx 1.544 - movl (%edi), %edx 1.545 - addl %eax, %ecx 1.546 - movl $0, %eax 1.547 - adcl %eax, %eax 1.548 - addl %edx, %ecx 1.549 - adcl $0, %eax 1.550 - movl %ecx, (%ebx) 1.551 - / Round 1 1.552 - movl 4(%esi), %ecx 1.553 - movl 4(%edi), %edx 1.554 - addl %eax, %ecx 1.555 - movl $0, %eax 1.556 - adcl %eax, %eax 1.557 - addl %edx, %ecx 1.558 - adcl $0, %eax 1.559 - movl %ecx, 4(%ebx) 1.560 - / Round 2 1.561 - movl 8(%esi), %ecx 1.562 - movl 8(%edi), %edx 1.563 - addl %eax, %ecx 1.564 - movl $0, %eax 1.565 - adcl %eax, %eax 1.566 - addl %edx, %ecx 1.567 - adcl $0, %eax 1.568 - movl %ecx, 8(%ebx) 1.569 - / Round 3 1.570 - movl 12(%esi), %ecx 1.571 - movl 12(%edi), %edx 1.572 - addl %eax, %ecx 1.573 - movl $0, %eax 1.574 - adcl %eax, %eax 1.575 - addl %edx, %ecx 1.576 - adcl $0, %eax 1.577 - movl %ecx, 12(%ebx) 1.578 - / Round 4 1.579 - movl 16(%esi), %ecx 1.580 - movl 16(%edi), %edx 1.581 - addl %eax, %ecx 1.582 - movl $0, %eax 1.583 - adcl %eax, %eax 1.584 - addl %edx, %ecx 1.585 - adcl $0, %eax 1.586 - movl %ecx, 16(%ebx) 1.587 - / Round 5 1.588 - movl 20(%esi), %ecx 1.589 - movl 20(%edi), %edx 1.590 - addl %eax, %ecx 1.591 - movl $0, %eax 1.592 - adcl %eax, %eax 1.593 - addl %edx, %ecx 1.594 - adcl $0, %eax 1.595 - movl %ecx, 20(%ebx) 1.596 - / Round 6 1.597 - movl 24(%esi), %ecx 1.598 - movl 24(%edi), %edx 1.599 - addl %eax, %ecx 1.600 - movl $0, %eax 1.601 - adcl %eax, %eax 1.602 - addl %edx, %ecx 1.603 - adcl $0, %eax 1.604 - movl %ecx, 24(%ebx) 1.605 - / Round 7 1.606 - movl 28(%esi), %ecx 1.607 - movl 28(%edi), %edx 1.608 - addl %eax, %ecx 1.609 - movl $0, %eax 1.610 - adcl %eax, %eax 1.611 - addl %edx, %ecx 1.612 - adcl $0, %eax 1.613 - movl %ecx, 28(%ebx) 1.614 - 1.615 - addl $32, %esi 1.616 - addl $32, %edi 1.617 - addl $32, %ebx 1.618 - subl $8, %ebp 1.619 - jnz .L012aw_loop 1.620 -.L011aw_finish: 1.621 - movl 32(%esp), %ebp 1.622 - andl $7, %ebp 1.623 - jz .L013aw_end 1.624 - / Tail Round 0 1.625 - movl (%esi), %ecx 1.626 - movl (%edi), %edx 1.627 - addl %eax, %ecx 1.628 - movl $0, %eax 1.629 - adcl %eax, %eax 1.630 - addl %edx, %ecx 1.631 - adcl $0, %eax 1.632 - decl %ebp 1.633 - movl %ecx, (%ebx) 1.634 - jz .L013aw_end 1.635 - / Tail Round 1 1.636 - movl 4(%esi), %ecx 1.637 - movl 4(%edi), %edx 1.638 - addl %eax, %ecx 1.639 - movl $0, %eax 1.640 - adcl %eax, %eax 1.641 - addl %edx, %ecx 1.642 - adcl $0, %eax 1.643 - decl %ebp 1.644 - movl %ecx, 4(%ebx) 1.645 - jz .L013aw_end 1.646 - / Tail Round 2 1.647 - movl 8(%esi), %ecx 1.648 - movl 8(%edi), %edx 1.649 - addl %eax, %ecx 1.650 - movl $0, %eax 1.651 - adcl %eax, %eax 1.652 - addl %edx, %ecx 1.653 - adcl $0, %eax 1.654 - decl %ebp 1.655 - movl %ecx, 8(%ebx) 1.656 - jz .L013aw_end 1.657 - / Tail Round 3 1.658 - movl 12(%esi), %ecx 1.659 - movl 12(%edi), %edx 1.660 - addl %eax, %ecx 1.661 - movl $0, %eax 1.662 - adcl %eax, %eax 1.663 - addl %edx, %ecx 1.664 - adcl $0, %eax 1.665 - decl %ebp 1.666 - movl %ecx, 12(%ebx) 1.667 - jz .L013aw_end 1.668 - / Tail Round 4 1.669 - movl 16(%esi), %ecx 1.670 - movl 16(%edi), %edx 1.671 - addl %eax, %ecx 1.672 - movl $0, %eax 1.673 - adcl %eax, %eax 1.674 - addl %edx, %ecx 1.675 - adcl $0, %eax 1.676 - decl %ebp 1.677 - movl %ecx, 16(%ebx) 1.678 - jz .L013aw_end 1.679 - / Tail Round 5 1.680 - movl 20(%esi), %ecx 1.681 - movl 20(%edi), %edx 1.682 - addl %eax, %ecx 1.683 - movl $0, %eax 1.684 - adcl %eax, %eax 1.685 - addl %edx, %ecx 1.686 - adcl $0, %eax 1.687 - decl %ebp 1.688 - movl %ecx, 20(%ebx) 1.689 - jz .L013aw_end 1.690 - / Tail Round 6 1.691 - movl 24(%esi), %ecx 1.692 - movl 24(%edi), %edx 1.693 - addl %eax, %ecx 1.694 - movl $0, %eax 1.695 - adcl %eax, %eax 1.696 - addl %edx, %ecx 1.697 - adcl $0, %eax 1.698 - movl %ecx, 24(%ebx) 1.699 -.L013aw_end: 1.700 - popl %edi 1.701 - popl %esi 1.702 - popl %ebx 1.703 - popl %ebp 1.704 - ret 1.705 -.bn_add_words_end: 1.706 - .size bn_add_words,.bn_add_words_end-bn_add_words 1.707 -.ident "bn_add_words" 1.708 -.text 1.709 - .align 16 1.710 -.globl bn_sub_words 1.711 - .type bn_sub_words,@function 1.712 -bn_sub_words: 1.713 - pushl %ebp 1.714 - pushl %ebx 1.715 - pushl %esi 1.716 - pushl %edi 1.717 - 1.718 - 1.719 - movl 20(%esp), %ebx 1.720 - movl 24(%esp), %esi 1.721 - movl 28(%esp), %edi 1.722 - movl 32(%esp), %ebp 1.723 - xorl %eax, %eax 1.724 - andl $4294967288, %ebp 1.725 - jz .L014aw_finish 1.726 -.L015aw_loop: 1.727 - / Round 0 1.728 - movl (%esi), %ecx 1.729 - movl (%edi), %edx 1.730 - subl %eax, %ecx 1.731 - movl $0, %eax 1.732 - adcl %eax, %eax 1.733 - subl %edx, %ecx 1.734 - adcl $0, %eax 1.735 - movl %ecx, (%ebx) 1.736 - / Round 1 1.737 - movl 4(%esi), %ecx 1.738 - movl 4(%edi), %edx 1.739 - subl %eax, %ecx 1.740 - movl $0, %eax 1.741 - adcl %eax, %eax 1.742 - subl %edx, %ecx 1.743 - adcl $0, %eax 1.744 - movl %ecx, 4(%ebx) 1.745 - / Round 2 1.746 - movl 8(%esi), %ecx 1.747 - movl 8(%edi), %edx 1.748 - subl %eax, %ecx 1.749 - movl $0, %eax 1.750 - adcl %eax, %eax 1.751 - subl %edx, %ecx 1.752 - adcl $0, %eax 1.753 - movl %ecx, 8(%ebx) 1.754 - / Round 3 1.755 - movl 12(%esi), %ecx 1.756 - movl 12(%edi), %edx 1.757 - subl %eax, %ecx 1.758 - movl $0, %eax 1.759 - adcl %eax, %eax 1.760 - subl %edx, %ecx 1.761 - adcl $0, %eax 1.762 - movl %ecx, 12(%ebx) 1.763 - / Round 4 1.764 - movl 16(%esi), %ecx 1.765 - movl 16(%edi), %edx 1.766 - subl %eax, %ecx 1.767 - movl $0, %eax 1.768 - adcl %eax, %eax 1.769 - subl %edx, %ecx 1.770 - adcl $0, %eax 1.771 - movl %ecx, 16(%ebx) 1.772 - / Round 5 1.773 - movl 20(%esi), %ecx 1.774 - movl 20(%edi), %edx 1.775 - subl %eax, %ecx 1.776 - movl $0, %eax 1.777 - adcl %eax, %eax 1.778 - subl %edx, %ecx 1.779 - adcl $0, %eax 1.780 - movl %ecx, 20(%ebx) 1.781 - / Round 6 1.782 - movl 24(%esi), %ecx 1.783 - movl 24(%edi), %edx 1.784 - subl %eax, %ecx 1.785 - movl $0, %eax 1.786 - adcl %eax, %eax 1.787 - subl %edx, %ecx 1.788 - adcl $0, %eax 1.789 - movl %ecx, 24(%ebx) 1.790 - / Round 7 1.791 - movl 28(%esi), %ecx 1.792 - movl 28(%edi), %edx 1.793 - subl %eax, %ecx 1.794 - movl $0, %eax 1.795 - adcl %eax, %eax 1.796 - subl %edx, %ecx 1.797 - adcl $0, %eax 1.798 - movl %ecx, 28(%ebx) 1.799 - 1.800 - addl $32, %esi 1.801 - addl $32, %edi 1.802 - addl $32, %ebx 1.803 - subl $8, %ebp 1.804 - jnz .L015aw_loop 1.805 -.L014aw_finish: 1.806 - movl 32(%esp), %ebp 1.807 - andl $7, %ebp 1.808 - jz .L016aw_end 1.809 - / Tail Round 0 1.810 - movl (%esi), %ecx 1.811 - movl (%edi), %edx 1.812 - subl %eax, %ecx 1.813 - movl $0, %eax 1.814 - adcl %eax, %eax 1.815 - subl %edx, %ecx 1.816 - adcl $0, %eax 1.817 - decl %ebp 1.818 - movl %ecx, (%ebx) 1.819 - jz .L016aw_end 1.820 - / Tail Round 1 1.821 - movl 4(%esi), %ecx 1.822 - movl 4(%edi), %edx 1.823 - subl %eax, %ecx 1.824 - movl $0, %eax 1.825 - adcl %eax, %eax 1.826 - subl %edx, %ecx 1.827 - adcl $0, %eax 1.828 - decl %ebp 1.829 - movl %ecx, 4(%ebx) 1.830 - jz .L016aw_end 1.831 - / Tail Round 2 1.832 - movl 8(%esi), %ecx 1.833 - movl 8(%edi), %edx 1.834 - subl %eax, %ecx 1.835 - movl $0, %eax 1.836 - adcl %eax, %eax 1.837 - subl %edx, %ecx 1.838 - adcl $0, %eax 1.839 - decl %ebp 1.840 - movl %ecx, 8(%ebx) 1.841 - jz .L016aw_end 1.842 - / Tail Round 3 1.843 - movl 12(%esi), %ecx 1.844 - movl 12(%edi), %edx 1.845 - subl %eax, %ecx 1.846 - movl $0, %eax 1.847 - adcl %eax, %eax 1.848 - subl %edx, %ecx 1.849 - adcl $0, %eax 1.850 - decl %ebp 1.851 - movl %ecx, 12(%ebx) 1.852 - jz .L016aw_end 1.853 - / Tail Round 4 1.854 - movl 16(%esi), %ecx 1.855 - movl 16(%edi), %edx 1.856 - subl %eax, %ecx 1.857 - movl $0, %eax 1.858 - adcl %eax, %eax 1.859 - subl %edx, %ecx 1.860 - adcl $0, %eax 1.861 - decl %ebp 1.862 - movl %ecx, 16(%ebx) 1.863 - jz .L016aw_end 1.864 - / Tail Round 5 1.865 - movl 20(%esi), %ecx 1.866 - movl 20(%edi), %edx 1.867 - subl %eax, %ecx 1.868 - movl $0, %eax 1.869 - adcl %eax, %eax 1.870 - subl %edx, %ecx 1.871 - adcl $0, %eax 1.872 - decl %ebp 1.873 - movl %ecx, 20(%ebx) 1.874 - jz .L016aw_end 1.875 - / Tail Round 6 1.876 - movl 24(%esi), %ecx 1.877 - movl 24(%edi), %edx 1.878 - subl %eax, %ecx 1.879 - movl $0, %eax 1.880 - adcl %eax, %eax 1.881 - subl %edx, %ecx 1.882 - adcl $0, %eax 1.883 - movl %ecx, 24(%ebx) 1.884 -.L016aw_end: 1.885 - popl %edi 1.886 - popl %esi 1.887 - popl %ebx 1.888 - popl %ebp 1.889 - ret 1.890 -.bn_sub_words_end: 1.891 - .size bn_sub_words,.bn_sub_words_end-bn_sub_words 1.892 -.ident "bn_sub_words" 1.893 -.text 1.894 - .align 16 1.895 -.globl bn_mul_comba8 1.896 - .type bn_mul_comba8,@function 1.897 -bn_mul_comba8: 1.898 - pushl %esi 1.899 - movl 12(%esp), %esi 1.900 - pushl %edi 1.901 - movl 20(%esp), %edi 1.902 - pushl %ebp 1.903 - pushl %ebx 1.904 - xorl %ebx, %ebx 1.905 - movl (%esi), %eax 1.906 - xorl %ecx, %ecx 1.907 - movl (%edi), %edx 1.908 - / ################## Calculate word 0 1.909 - xorl %ebp, %ebp 1.910 - / mul a[0]*b[0] 1.911 - mull %edx 1.912 - addl %eax, %ebx 1.913 - movl 20(%esp), %eax 1.914 - adcl %edx, %ecx 1.915 - movl (%edi), %edx 1.916 - adcl $0, %ebp 1.917 - movl %ebx, (%eax) 1.918 - movl 4(%esi), %eax 1.919 - / saved r[0] 1.920 - / ################## Calculate word 1 1.921 - xorl %ebx, %ebx 1.922 - / mul a[1]*b[0] 1.923 - mull %edx 1.924 - addl %eax, %ecx 1.925 - movl (%esi), %eax 1.926 - adcl %edx, %ebp 1.927 - movl 4(%edi), %edx 1.928 - adcl $0, %ebx 1.929 - / mul a[0]*b[1] 1.930 - mull %edx 1.931 - addl %eax, %ecx 1.932 - movl 20(%esp), %eax 1.933 - adcl %edx, %ebp 1.934 - movl (%edi), %edx 1.935 - adcl $0, %ebx 1.936 - movl %ecx, 4(%eax) 1.937 - movl 8(%esi), %eax 1.938 - / saved r[1] 1.939 - / ################## Calculate word 2 1.940 - xorl %ecx, %ecx 1.941 - / mul a[2]*b[0] 1.942 - mull %edx 1.943 - addl %eax, %ebp 1.944 - movl 4(%esi), %eax 1.945 - adcl %edx, %ebx 1.946 - movl 4(%edi), %edx 1.947 - adcl $0, %ecx 1.948 - / mul a[1]*b[1] 1.949 - mull %edx 1.950 - addl %eax, %ebp 1.951 - movl (%esi), %eax 1.952 - adcl %edx, %ebx 1.953 - movl 8(%edi), %edx 1.954 - adcl $0, %ecx 1.955 - / mul a[0]*b[2] 1.956 - mull %edx 1.957 - addl %eax, %ebp 1.958 - movl 20(%esp), %eax 1.959 - adcl %edx, %ebx 1.960 - movl (%edi), %edx 1.961 - adcl $0, %ecx 1.962 - movl %ebp, 8(%eax) 1.963 - movl 12(%esi), %eax 1.964 - / saved r[2] 1.965 - / ################## Calculate word 3 1.966 - xorl %ebp, %ebp 1.967 - / mul a[3]*b[0] 1.968 - mull %edx 1.969 - addl %eax, %ebx 1.970 - movl 8(%esi), %eax 1.971 - adcl %edx, %ecx 1.972 - movl 4(%edi), %edx 1.973 - adcl $0, %ebp 1.974 - / mul a[2]*b[1] 1.975 - mull %edx 1.976 - addl %eax, %ebx 1.977 - movl 4(%esi), %eax 1.978 - adcl %edx, %ecx 1.979 - movl 8(%edi), %edx 1.980 - adcl $0, %ebp 1.981 - / mul a[1]*b[2] 1.982 - mull %edx 1.983 - addl %eax, %ebx 1.984 - movl (%esi), %eax 1.985 - adcl %edx, %ecx 1.986 - movl 12(%edi), %edx 1.987 - adcl $0, %ebp 1.988 - / mul a[0]*b[3] 1.989 - mull %edx 1.990 - addl %eax, %ebx 1.991 - movl 20(%esp), %eax 1.992 - adcl %edx, %ecx 1.993 - movl (%edi), %edx 1.994 - adcl $0, %ebp 1.995 - movl %ebx, 12(%eax) 1.996 - movl 16(%esi), %eax 1.997 - / saved r[3] 1.998 - / ################## Calculate word 4 1.999 - xorl %ebx, %ebx 1.1000 - / mul a[4]*b[0] 1.1001 - mull %edx 1.1002 - addl %eax, %ecx 1.1003 - movl 12(%esi), %eax 1.1004 - adcl %edx, %ebp 1.1005 - movl 4(%edi), %edx 1.1006 - adcl $0, %ebx 1.1007 - / mul a[3]*b[1] 1.1008 - mull %edx 1.1009 - addl %eax, %ecx 1.1010 - movl 8(%esi), %eax 1.1011 - adcl %edx, %ebp 1.1012 - movl 8(%edi), %edx 1.1013 - adcl $0, %ebx 1.1014 - / mul a[2]*b[2] 1.1015 - mull %edx 1.1016 - addl %eax, %ecx 1.1017 - movl 4(%esi), %eax 1.1018 - adcl %edx, %ebp 1.1019 - movl 12(%edi), %edx 1.1020 - adcl $0, %ebx 1.1021 - / mul a[1]*b[3] 1.1022 - mull %edx 1.1023 - addl %eax, %ecx 1.1024 - movl (%esi), %eax 1.1025 - adcl %edx, %ebp 1.1026 - movl 16(%edi), %edx 1.1027 - adcl $0, %ebx 1.1028 - / mul a[0]*b[4] 1.1029 - mull %edx 1.1030 - addl %eax, %ecx 1.1031 - movl 20(%esp), %eax 1.1032 - adcl %edx, %ebp 1.1033 - movl (%edi), %edx 1.1034 - adcl $0, %ebx 1.1035 - movl %ecx, 16(%eax) 1.1036 - movl 20(%esi), %eax 1.1037 - / saved r[4] 1.1038 - / ################## Calculate word 5 1.1039 - xorl %ecx, %ecx 1.1040 - / mul a[5]*b[0] 1.1041 - mull %edx 1.1042 - addl %eax, %ebp 1.1043 - movl 16(%esi), %eax 1.1044 - adcl %edx, %ebx 1.1045 - movl 4(%edi), %edx 1.1046 - adcl $0, %ecx 1.1047 - / mul a[4]*b[1] 1.1048 - mull %edx 1.1049 - addl %eax, %ebp 1.1050 - movl 12(%esi), %eax 1.1051 - adcl %edx, %ebx 1.1052 - movl 8(%edi), %edx 1.1053 - adcl $0, %ecx 1.1054 - / mul a[3]*b[2] 1.1055 - mull %edx 1.1056 - addl %eax, %ebp 1.1057 - movl 8(%esi), %eax 1.1058 - adcl %edx, %ebx 1.1059 - movl 12(%edi), %edx 1.1060 - adcl $0, %ecx 1.1061 - / mul a[2]*b[3] 1.1062 - mull %edx 1.1063 - addl %eax, %ebp 1.1064 - movl 4(%esi), %eax 1.1065 - adcl %edx, %ebx 1.1066 - movl 16(%edi), %edx 1.1067 - adcl $0, %ecx 1.1068 - / mul a[1]*b[4] 1.1069 - mull %edx 1.1070 - addl %eax, %ebp 1.1071 - movl (%esi), %eax 1.1072 - adcl %edx, %ebx 1.1073 - movl 20(%edi), %edx 1.1074 - adcl $0, %ecx 1.1075 - / mul a[0]*b[5] 1.1076 - mull %edx 1.1077 - addl %eax, %ebp 1.1078 - movl 20(%esp), %eax 1.1079 - adcl %edx, %ebx 1.1080 - movl (%edi), %edx 1.1081 - adcl $0, %ecx 1.1082 - movl %ebp, 20(%eax) 1.1083 - movl 24(%esi), %eax 1.1084 - / saved r[5] 1.1085 - / ################## Calculate word 6 1.1086 - xorl %ebp, %ebp 1.1087 - / mul a[6]*b[0] 1.1088 - mull %edx 1.1089 - addl %eax, %ebx 1.1090 - movl 20(%esi), %eax 1.1091 - adcl %edx, %ecx 1.1092 - movl 4(%edi), %edx 1.1093 - adcl $0, %ebp 1.1094 - / mul a[5]*b[1] 1.1095 - mull %edx 1.1096 - addl %eax, %ebx 1.1097 - movl 16(%esi), %eax 1.1098 - adcl %edx, %ecx 1.1099 - movl 8(%edi), %edx 1.1100 - adcl $0, %ebp 1.1101 - / mul a[4]*b[2] 1.1102 - mull %edx 1.1103 - addl %eax, %ebx 1.1104 - movl 12(%esi), %eax 1.1105 - adcl %edx, %ecx 1.1106 - movl 12(%edi), %edx 1.1107 - adcl $0, %ebp 1.1108 - / mul a[3]*b[3] 1.1109 - mull %edx 1.1110 - addl %eax, %ebx 1.1111 - movl 8(%esi), %eax 1.1112 - adcl %edx, %ecx 1.1113 - movl 16(%edi), %edx 1.1114 - adcl $0, %ebp 1.1115 - / mul a[2]*b[4] 1.1116 - mull %edx 1.1117 - addl %eax, %ebx 1.1118 - movl 4(%esi), %eax 1.1119 - adcl %edx, %ecx 1.1120 - movl 20(%edi), %edx 1.1121 - adcl $0, %ebp 1.1122 - / mul a[1]*b[5] 1.1123 - mull %edx 1.1124 - addl %eax, %ebx 1.1125 - movl (%esi), %eax 1.1126 - adcl %edx, %ecx 1.1127 - movl 24(%edi), %edx 1.1128 - adcl $0, %ebp 1.1129 - / mul a[0]*b[6] 1.1130 - mull %edx 1.1131 - addl %eax, %ebx 1.1132 - movl 20(%esp), %eax 1.1133 - adcl %edx, %ecx 1.1134 - movl (%edi), %edx 1.1135 - adcl $0, %ebp 1.1136 - movl %ebx, 24(%eax) 1.1137 - movl 28(%esi), %eax 1.1138 - / saved r[6] 1.1139 - / ################## Calculate word 7 1.1140 - xorl %ebx, %ebx 1.1141 - / mul a[7]*b[0] 1.1142 - mull %edx 1.1143 - addl %eax, %ecx 1.1144 - movl 24(%esi), %eax 1.1145 - adcl %edx, %ebp 1.1146 - movl 4(%edi), %edx 1.1147 - adcl $0, %ebx 1.1148 - / mul a[6]*b[1] 1.1149 - mull %edx 1.1150 - addl %eax, %ecx 1.1151 - movl 20(%esi), %eax 1.1152 - adcl %edx, %ebp 1.1153 - movl 8(%edi), %edx 1.1154 - adcl $0, %ebx 1.1155 - / mul a[5]*b[2] 1.1156 - mull %edx 1.1157 - addl %eax, %ecx 1.1158 - movl 16(%esi), %eax 1.1159 - adcl %edx, %ebp 1.1160 - movl 12(%edi), %edx 1.1161 - adcl $0, %ebx 1.1162 - / mul a[4]*b[3] 1.1163 - mull %edx 1.1164 - addl %eax, %ecx 1.1165 - movl 12(%esi), %eax 1.1166 - adcl %edx, %ebp 1.1167 - movl 16(%edi), %edx 1.1168 - adcl $0, %ebx 1.1169 - / mul a[3]*b[4] 1.1170 - mull %edx 1.1171 - addl %eax, %ecx 1.1172 - movl 8(%esi), %eax 1.1173 - adcl %edx, %ebp 1.1174 - movl 20(%edi), %edx 1.1175 - adcl $0, %ebx 1.1176 - / mul a[2]*b[5] 1.1177 - mull %edx 1.1178 - addl %eax, %ecx 1.1179 - movl 4(%esi), %eax 1.1180 - adcl %edx, %ebp 1.1181 - movl 24(%edi), %edx 1.1182 - adcl $0, %ebx 1.1183 - / mul a[1]*b[6] 1.1184 - mull %edx 1.1185 - addl %eax, %ecx 1.1186 - movl (%esi), %eax 1.1187 - adcl %edx, %ebp 1.1188 - movl 28(%edi), %edx 1.1189 - adcl $0, %ebx 1.1190 - / mul a[0]*b[7] 1.1191 - mull %edx 1.1192 - addl %eax, %ecx 1.1193 - movl 20(%esp), %eax 1.1194 - adcl %edx, %ebp 1.1195 - movl 4(%edi), %edx 1.1196 - adcl $0, %ebx 1.1197 - movl %ecx, 28(%eax) 1.1198 - movl 28(%esi), %eax 1.1199 - / saved r[7] 1.1200 - / ################## Calculate word 8 1.1201 - xorl %ecx, %ecx 1.1202 - / mul a[7]*b[1] 1.1203 - mull %edx 1.1204 - addl %eax, %ebp 1.1205 - movl 24(%esi), %eax 1.1206 - adcl %edx, %ebx 1.1207 - movl 8(%edi), %edx 1.1208 - adcl $0, %ecx 1.1209 - / mul a[6]*b[2] 1.1210 - mull %edx 1.1211 - addl %eax, %ebp 1.1212 - movl 20(%esi), %eax 1.1213 - adcl %edx, %ebx 1.1214 - movl 12(%edi), %edx 1.1215 - adcl $0, %ecx 1.1216 - / mul a[5]*b[3] 1.1217 - mull %edx 1.1218 - addl %eax, %ebp 1.1219 - movl 16(%esi), %eax 1.1220 - adcl %edx, %ebx 1.1221 - movl 16(%edi), %edx 1.1222 - adcl $0, %ecx 1.1223 - / mul a[4]*b[4] 1.1224 - mull %edx 1.1225 - addl %eax, %ebp 1.1226 - movl 12(%esi), %eax 1.1227 - adcl %edx, %ebx 1.1228 - movl 20(%edi), %edx 1.1229 - adcl $0, %ecx 1.1230 - / mul a[3]*b[5] 1.1231 - mull %edx 1.1232 - addl %eax, %ebp 1.1233 - movl 8(%esi), %eax 1.1234 - adcl %edx, %ebx 1.1235 - movl 24(%edi), %edx 1.1236 - adcl $0, %ecx 1.1237 - / mul a[2]*b[6] 1.1238 - mull %edx 1.1239 - addl %eax, %ebp 1.1240 - movl 4(%esi), %eax 1.1241 - adcl %edx, %ebx 1.1242 - movl 28(%edi), %edx 1.1243 - adcl $0, %ecx 1.1244 - / mul a[1]*b[7] 1.1245 - mull %edx 1.1246 - addl %eax, %ebp 1.1247 - movl 20(%esp), %eax 1.1248 - adcl %edx, %ebx 1.1249 - movl 8(%edi), %edx 1.1250 - adcl $0, %ecx 1.1251 - movl %ebp, 32(%eax) 1.1252 - movl 28(%esi), %eax 1.1253 - / saved r[8] 1.1254 - / ################## Calculate word 9 1.1255 - xorl %ebp, %ebp 1.1256 - / mul a[7]*b[2] 1.1257 - mull %edx 1.1258 - addl %eax, %ebx 1.1259 - movl 24(%esi), %eax 1.1260 - adcl %edx, %ecx 1.1261 - movl 12(%edi), %edx 1.1262 - adcl $0, %ebp 1.1263 - / mul a[6]*b[3] 1.1264 - mull %edx 1.1265 - addl %eax, %ebx 1.1266 - movl 20(%esi), %eax 1.1267 - adcl %edx, %ecx 1.1268 - movl 16(%edi), %edx 1.1269 - adcl $0, %ebp 1.1270 - / mul a[5]*b[4] 1.1271 - mull %edx 1.1272 - addl %eax, %ebx 1.1273 - movl 16(%esi), %eax 1.1274 - adcl %edx, %ecx 1.1275 - movl 20(%edi), %edx 1.1276 - adcl $0, %ebp 1.1277 - / mul a[4]*b[5] 1.1278 - mull %edx 1.1279 - addl %eax, %ebx 1.1280 - movl 12(%esi), %eax 1.1281 - adcl %edx, %ecx 1.1282 - movl 24(%edi), %edx 1.1283 - adcl $0, %ebp 1.1284 - / mul a[3]*b[6] 1.1285 - mull %edx 1.1286 - addl %eax, %ebx 1.1287 - movl 8(%esi), %eax 1.1288 - adcl %edx, %ecx 1.1289 - movl 28(%edi), %edx 1.1290 - adcl $0, %ebp 1.1291 - / mul a[2]*b[7] 1.1292 - mull %edx 1.1293 - addl %eax, %ebx 1.1294 - movl 20(%esp), %eax 1.1295 - adcl %edx, %ecx 1.1296 - movl 12(%edi), %edx 1.1297 - adcl $0, %ebp 1.1298 - movl %ebx, 36(%eax) 1.1299 - movl 28(%esi), %eax 1.1300 - / saved r[9] 1.1301 - / ################## Calculate word 10 1.1302 - xorl %ebx, %ebx 1.1303 - / mul a[7]*b[3] 1.1304 - mull %edx 1.1305 - addl %eax, %ecx 1.1306 - movl 24(%esi), %eax 1.1307 - adcl %edx, %ebp 1.1308 - movl 16(%edi), %edx 1.1309 - adcl $0, %ebx 1.1310 - / mul a[6]*b[4] 1.1311 - mull %edx 1.1312 - addl %eax, %ecx 1.1313 - movl 20(%esi), %eax 1.1314 - adcl %edx, %ebp 1.1315 - movl 20(%edi), %edx 1.1316 - adcl $0, %ebx 1.1317 - / mul a[5]*b[5] 1.1318 - mull %edx 1.1319 - addl %eax, %ecx 1.1320 - movl 16(%esi), %eax 1.1321 - adcl %edx, %ebp 1.1322 - movl 24(%edi), %edx 1.1323 - adcl $0, %ebx 1.1324 - / mul a[4]*b[6] 1.1325 - mull %edx 1.1326 - addl %eax, %ecx 1.1327 - movl 12(%esi), %eax 1.1328 - adcl %edx, %ebp 1.1329 - movl 28(%edi), %edx 1.1330 - adcl $0, %ebx 1.1331 - / mul a[3]*b[7] 1.1332 - mull %edx 1.1333 - addl %eax, %ecx 1.1334 - movl 20(%esp), %eax 1.1335 - adcl %edx, %ebp 1.1336 - movl 16(%edi), %edx 1.1337 - adcl $0, %ebx 1.1338 - movl %ecx, 40(%eax) 1.1339 - movl 28(%esi), %eax 1.1340 - / saved r[10] 1.1341 - / ################## Calculate word 11 1.1342 - xorl %ecx, %ecx 1.1343 - / mul a[7]*b[4] 1.1344 - mull %edx 1.1345 - addl %eax, %ebp 1.1346 - movl 24(%esi), %eax 1.1347 - adcl %edx, %ebx 1.1348 - movl 20(%edi), %edx 1.1349 - adcl $0, %ecx 1.1350 - / mul a[6]*b[5] 1.1351 - mull %edx 1.1352 - addl %eax, %ebp 1.1353 - movl 20(%esi), %eax 1.1354 - adcl %edx, %ebx 1.1355 - movl 24(%edi), %edx 1.1356 - adcl $0, %ecx 1.1357 - / mul a[5]*b[6] 1.1358 - mull %edx 1.1359 - addl %eax, %ebp 1.1360 - movl 16(%esi), %eax 1.1361 - adcl %edx, %ebx 1.1362 - movl 28(%edi), %edx 1.1363 - adcl $0, %ecx 1.1364 - / mul a[4]*b[7] 1.1365 - mull %edx 1.1366 - addl %eax, %ebp 1.1367 - movl 20(%esp), %eax 1.1368 - adcl %edx, %ebx 1.1369 - movl 20(%edi), %edx 1.1370 - adcl $0, %ecx 1.1371 - movl %ebp, 44(%eax) 1.1372 - movl 28(%esi), %eax 1.1373 - / saved r[11] 1.1374 - / ################## Calculate word 12 1.1375 - xorl %ebp, %ebp 1.1376 - / mul a[7]*b[5] 1.1377 - mull %edx 1.1378 - addl %eax, %ebx 1.1379 - movl 24(%esi), %eax 1.1380 - adcl %edx, %ecx 1.1381 - movl 24(%edi), %edx 1.1382 - adcl $0, %ebp 1.1383 - / mul a[6]*b[6] 1.1384 - mull %edx 1.1385 - addl %eax, %ebx 1.1386 - movl 20(%esi), %eax 1.1387 - adcl %edx, %ecx 1.1388 - movl 28(%edi), %edx 1.1389 - adcl $0, %ebp 1.1390 - / mul a[5]*b[7] 1.1391 - mull %edx 1.1392 - addl %eax, %ebx 1.1393 - movl 20(%esp), %eax 1.1394 - adcl %edx, %ecx 1.1395 - movl 24(%edi), %edx 1.1396 - adcl $0, %ebp 1.1397 - movl %ebx, 48(%eax) 1.1398 - movl 28(%esi), %eax 1.1399 - / saved r[12] 1.1400 - / ################## Calculate word 13 1.1401 - xorl %ebx, %ebx 1.1402 - / mul a[7]*b[6] 1.1403 - mull %edx 1.1404 - addl %eax, %ecx 1.1405 - movl 24(%esi), %eax 1.1406 - adcl %edx, %ebp 1.1407 - movl 28(%edi), %edx 1.1408 - adcl $0, %ebx 1.1409 - / mul a[6]*b[7] 1.1410 - mull %edx 1.1411 - addl %eax, %ecx 1.1412 - movl 20(%esp), %eax 1.1413 - adcl %edx, %ebp 1.1414 - movl 28(%edi), %edx 1.1415 - adcl $0, %ebx 1.1416 - movl %ecx, 52(%eax) 1.1417 - movl 28(%esi), %eax 1.1418 - / saved r[13] 1.1419 - / ################## Calculate word 14 1.1420 - xorl %ecx, %ecx 1.1421 - / mul a[7]*b[7] 1.1422 - mull %edx 1.1423 - addl %eax, %ebp 1.1424 - movl 20(%esp), %eax 1.1425 - adcl %edx, %ebx 1.1426 - adcl $0, %ecx 1.1427 - movl %ebp, 56(%eax) 1.1428 - / saved r[14] 1.1429 - / save r[15] 1.1430 - movl %ebx, 60(%eax) 1.1431 - popl %ebx 1.1432 - popl %ebp 1.1433 - popl %edi 1.1434 - popl %esi 1.1435 - ret 1.1436 -.L_bn_mul_comba8_end: 1.1437 - .size bn_mul_comba8,.L_bn_mul_comba8_end-bn_mul_comba8 1.1438 -.ident "desasm.pl" 1.1439 -.text 1.1440 - .align 16 1.1441 -.globl bn_mul_comba4 1.1442 - .type bn_mul_comba4,@function 1.1443 -bn_mul_comba4: 1.1444 - pushl %esi 1.1445 - movl 12(%esp), %esi 1.1446 - pushl %edi 1.1447 - movl 20(%esp), %edi 1.1448 - pushl %ebp 1.1449 - pushl %ebx 1.1450 - xorl %ebx, %ebx 1.1451 - movl (%esi), %eax 1.1452 - xorl %ecx, %ecx 1.1453 - movl (%edi), %edx 1.1454 - / ################## Calculate word 0 1.1455 - xorl %ebp, %ebp 1.1456 - / mul a[0]*b[0] 1.1457 - mull %edx 1.1458 - addl %eax, %ebx 1.1459 - movl 20(%esp), %eax 1.1460 - adcl %edx, %ecx 1.1461 - movl (%edi), %edx 1.1462 - adcl $0, %ebp 1.1463 - movl %ebx, (%eax) 1.1464 - movl 4(%esi), %eax 1.1465 - / saved r[0] 1.1466 - / ################## Calculate word 1 1.1467 - xorl %ebx, %ebx 1.1468 - / mul a[1]*b[0] 1.1469 - mull %edx 1.1470 - addl %eax, %ecx 1.1471 - movl (%esi), %eax 1.1472 - adcl %edx, %ebp 1.1473 - movl 4(%edi), %edx 1.1474 - adcl $0, %ebx 1.1475 - / mul a[0]*b[1] 1.1476 - mull %edx 1.1477 - addl %eax, %ecx 1.1478 - movl 20(%esp), %eax 1.1479 - adcl %edx, %ebp 1.1480 - movl (%edi), %edx 1.1481 - adcl $0, %ebx 1.1482 - movl %ecx, 4(%eax) 1.1483 - movl 8(%esi), %eax 1.1484 - / saved r[1] 1.1485 - / ################## Calculate word 2 1.1486 - xorl %ecx, %ecx 1.1487 - / mul a[2]*b[0] 1.1488 - mull %edx 1.1489 - addl %eax, %ebp 1.1490 - movl 4(%esi), %eax 1.1491 - adcl %edx, %ebx 1.1492 - movl 4(%edi), %edx 1.1493 - adcl $0, %ecx 1.1494 - / mul a[1]*b[1] 1.1495 - mull %edx 1.1496 - addl %eax, %ebp 1.1497 - movl (%esi), %eax 1.1498 - adcl %edx, %ebx 1.1499 - movl 8(%edi), %edx 1.1500 - adcl $0, %ecx 1.1501 - / mul a[0]*b[2] 1.1502 - mull %edx 1.1503 - addl %eax, %ebp 1.1504 - movl 20(%esp), %eax 1.1505 - adcl %edx, %ebx 1.1506 - movl (%edi), %edx 1.1507 - adcl $0, %ecx 1.1508 - movl %ebp, 8(%eax) 1.1509 - movl 12(%esi), %eax 1.1510 - / saved r[2] 1.1511 - / ################## Calculate word 3 1.1512 - xorl %ebp, %ebp 1.1513 - / mul a[3]*b[0] 1.1514 - mull %edx 1.1515 - addl %eax, %ebx 1.1516 - movl 8(%esi), %eax 1.1517 - adcl %edx, %ecx 1.1518 - movl 4(%edi), %edx 1.1519 - adcl $0, %ebp 1.1520 - / mul a[2]*b[1] 1.1521 - mull %edx 1.1522 - addl %eax, %ebx 1.1523 - movl 4(%esi), %eax 1.1524 - adcl %edx, %ecx 1.1525 - movl 8(%edi), %edx 1.1526 - adcl $0, %ebp 1.1527 - / mul a[1]*b[2] 1.1528 - mull %edx 1.1529 - addl %eax, %ebx 1.1530 - movl (%esi), %eax 1.1531 - adcl %edx, %ecx 1.1532 - movl 12(%edi), %edx 1.1533 - adcl $0, %ebp 1.1534 - / mul a[0]*b[3] 1.1535 - mull %edx 1.1536 - addl %eax, %ebx 1.1537 - movl 20(%esp), %eax 1.1538 - adcl %edx, %ecx 1.1539 - movl 4(%edi), %edx 1.1540 - adcl $0, %ebp 1.1541 - movl %ebx, 12(%eax) 1.1542 - movl 12(%esi), %eax 1.1543 - / saved r[3] 1.1544 - / ################## Calculate word 4 1.1545 - xorl %ebx, %ebx 1.1546 - / mul a[3]*b[1] 1.1547 - mull %edx 1.1548 - addl %eax, %ecx 1.1549 - movl 8(%esi), %eax 1.1550 - adcl %edx, %ebp 1.1551 - movl 8(%edi), %edx 1.1552 - adcl $0, %ebx 1.1553 - / mul a[2]*b[2] 1.1554 - mull %edx 1.1555 - addl %eax, %ecx 1.1556 - movl 4(%esi), %eax 1.1557 - adcl %edx, %ebp 1.1558 - movl 12(%edi), %edx 1.1559 - adcl $0, %ebx 1.1560 - / mul a[1]*b[3] 1.1561 - mull %edx 1.1562 - addl %eax, %ecx 1.1563 - movl 20(%esp), %eax 1.1564 - adcl %edx, %ebp 1.1565 - movl 8(%edi), %edx 1.1566 - adcl $0, %ebx 1.1567 - movl %ecx, 16(%eax) 1.1568 - movl 12(%esi), %eax 1.1569 - / saved r[4] 1.1570 - / ################## Calculate word 5 1.1571 - xorl %ecx, %ecx 1.1572 - / mul a[3]*b[2] 1.1573 - mull %edx 1.1574 - addl %eax, %ebp 1.1575 - movl 8(%esi), %eax 1.1576 - adcl %edx, %ebx 1.1577 - movl 12(%edi), %edx 1.1578 - adcl $0, %ecx 1.1579 - / mul a[2]*b[3] 1.1580 - mull %edx 1.1581 - addl %eax, %ebp 1.1582 - movl 20(%esp), %eax 1.1583 - adcl %edx, %ebx 1.1584 - movl 12(%edi), %edx 1.1585 - adcl $0, %ecx 1.1586 - movl %ebp, 20(%eax) 1.1587 - movl 12(%esi), %eax 1.1588 - / saved r[5] 1.1589 - / ################## Calculate word 6 1.1590 - xorl %ebp, %ebp 1.1591 - / mul a[3]*b[3] 1.1592 - mull %edx 1.1593 - addl %eax, %ebx 1.1594 - movl 20(%esp), %eax 1.1595 - adcl %edx, %ecx 1.1596 - adcl $0, %ebp 1.1597 - movl %ebx, 24(%eax) 1.1598 - / saved r[6] 1.1599 - / save r[7] 1.1600 - movl %ecx, 28(%eax) 1.1601 - popl %ebx 1.1602 - popl %ebp 1.1603 - popl %edi 1.1604 - popl %esi 1.1605 - ret 1.1606 -.L_bn_mul_comba4_end: 1.1607 - .size bn_mul_comba4,.L_bn_mul_comba4_end-bn_mul_comba4 1.1608 -.ident "desasm.pl" 1.1609 -.text 1.1610 - .align 16 1.1611 -.globl bn_sqr_comba8 1.1612 - .type bn_sqr_comba8,@function 1.1613 -bn_sqr_comba8: 1.1614 - pushl %esi 1.1615 - pushl %edi 1.1616 - pushl %ebp 1.1617 - pushl %ebx 1.1618 - movl 20(%esp), %edi 1.1619 - movl 24(%esp), %esi 1.1620 - xorl %ebx, %ebx 1.1621 - xorl %ecx, %ecx 1.1622 - movl (%esi), %eax 1.1623 - / ############### Calculate word 0 1.1624 - xorl %ebp, %ebp 1.1625 - / sqr a[0]*a[0] 1.1626 - mull %eax 1.1627 - addl %eax, %ebx 1.1628 - adcl %edx, %ecx 1.1629 - movl (%esi), %edx 1.1630 - adcl $0, %ebp 1.1631 - movl %ebx, (%edi) 1.1632 - movl 4(%esi), %eax 1.1633 - / saved r[0] 1.1634 - / ############### Calculate word 1 1.1635 - xorl %ebx, %ebx 1.1636 - / sqr a[1]*a[0] 1.1637 - mull %edx 1.1638 - addl %eax, %eax 1.1639 - adcl %edx, %edx 1.1640 - adcl $0, %ebx 1.1641 - addl %eax, %ecx 1.1642 - adcl %edx, %ebp 1.1643 - movl 8(%esi), %eax 1.1644 - adcl $0, %ebx 1.1645 - movl %ecx, 4(%edi) 1.1646 - movl (%esi), %edx 1.1647 - / saved r[1] 1.1648 - / ############### Calculate word 2 1.1649 - xorl %ecx, %ecx 1.1650 - / sqr a[2]*a[0] 1.1651 - mull %edx 1.1652 - addl %eax, %eax 1.1653 - adcl %edx, %edx 1.1654 - adcl $0, %ecx 1.1655 - addl %eax, %ebp 1.1656 - adcl %edx, %ebx 1.1657 - movl 4(%esi), %eax 1.1658 - adcl $0, %ecx 1.1659 - / sqr a[1]*a[1] 1.1660 - mull %eax 1.1661 - addl %eax, %ebp 1.1662 - adcl %edx, %ebx 1.1663 - movl (%esi), %edx 1.1664 - adcl $0, %ecx 1.1665 - movl %ebp, 8(%edi) 1.1666 - movl 12(%esi), %eax 1.1667 - / saved r[2] 1.1668 - / ############### Calculate word 3 1.1669 - xorl %ebp, %ebp 1.1670 - / sqr a[3]*a[0] 1.1671 - mull %edx 1.1672 - addl %eax, %eax 1.1673 - adcl %edx, %edx 1.1674 - adcl $0, %ebp 1.1675 - addl %eax, %ebx 1.1676 - adcl %edx, %ecx 1.1677 - movl 8(%esi), %eax 1.1678 - adcl $0, %ebp 1.1679 - movl 4(%esi), %edx 1.1680 - / sqr a[2]*a[1] 1.1681 - mull %edx 1.1682 - addl %eax, %eax 1.1683 - adcl %edx, %edx 1.1684 - adcl $0, %ebp 1.1685 - addl %eax, %ebx 1.1686 - adcl %edx, %ecx 1.1687 - movl 16(%esi), %eax 1.1688 - adcl $0, %ebp 1.1689 - movl %ebx, 12(%edi) 1.1690 - movl (%esi), %edx 1.1691 - / saved r[3] 1.1692 - / ############### Calculate word 4 1.1693 - xorl %ebx, %ebx 1.1694 - / sqr a[4]*a[0] 1.1695 - mull %edx 1.1696 - addl %eax, %eax 1.1697 - adcl %edx, %edx 1.1698 - adcl $0, %ebx 1.1699 - addl %eax, %ecx 1.1700 - adcl %edx, %ebp 1.1701 - movl 12(%esi), %eax 1.1702 - adcl $0, %ebx 1.1703 - movl 4(%esi), %edx 1.1704 - / sqr a[3]*a[1] 1.1705 - mull %edx 1.1706 - addl %eax, %eax 1.1707 - adcl %edx, %edx 1.1708 - adcl $0, %ebx 1.1709 - addl %eax, %ecx 1.1710 - adcl %edx, %ebp 1.1711 - movl 8(%esi), %eax 1.1712 - adcl $0, %ebx 1.1713 - / sqr a[2]*a[2] 1.1714 - mull %eax 1.1715 - addl %eax, %ecx 1.1716 - adcl %edx, %ebp 1.1717 - movl (%esi), %edx 1.1718 - adcl $0, %ebx 1.1719 - movl %ecx, 16(%edi) 1.1720 - movl 20(%esi), %eax 1.1721 - / saved r[4] 1.1722 - / ############### Calculate word 5 1.1723 - xorl %ecx, %ecx 1.1724 - / sqr a[5]*a[0] 1.1725 - mull %edx 1.1726 - addl %eax, %eax 1.1727 - adcl %edx, %edx 1.1728 - adcl $0, %ecx 1.1729 - addl %eax, %ebp 1.1730 - adcl %edx, %ebx 1.1731 - movl 16(%esi), %eax 1.1732 - adcl $0, %ecx 1.1733 - movl 4(%esi), %edx 1.1734 - / sqr a[4]*a[1] 1.1735 - mull %edx 1.1736 - addl %eax, %eax 1.1737 - adcl %edx, %edx 1.1738 - adcl $0, %ecx 1.1739 - addl %eax, %ebp 1.1740 - adcl %edx, %ebx 1.1741 - movl 12(%esi), %eax 1.1742 - adcl $0, %ecx 1.1743 - movl 8(%esi), %edx 1.1744 - / sqr a[3]*a[2] 1.1745 - mull %edx 1.1746 - addl %eax, %eax 1.1747 - adcl %edx, %edx 1.1748 - adcl $0, %ecx 1.1749 - addl %eax, %ebp 1.1750 - adcl %edx, %ebx 1.1751 - movl 24(%esi), %eax 1.1752 - adcl $0, %ecx 1.1753 - movl %ebp, 20(%edi) 1.1754 - movl (%esi), %edx 1.1755 - / saved r[5] 1.1756 - / ############### Calculate word 6 1.1757 - xorl %ebp, %ebp 1.1758 - / sqr a[6]*a[0] 1.1759 - mull %edx 1.1760 - addl %eax, %eax 1.1761 - adcl %edx, %edx 1.1762 - adcl $0, %ebp 1.1763 - addl %eax, %ebx 1.1764 - adcl %edx, %ecx 1.1765 - movl 20(%esi), %eax 1.1766 - adcl $0, %ebp 1.1767 - movl 4(%esi), %edx 1.1768 - / sqr a[5]*a[1] 1.1769 - mull %edx 1.1770 - addl %eax, %eax 1.1771 - adcl %edx, %edx 1.1772 - adcl $0, %ebp 1.1773 - addl %eax, %ebx 1.1774 - adcl %edx, %ecx 1.1775 - movl 16(%esi), %eax 1.1776 - adcl $0, %ebp 1.1777 - movl 8(%esi), %edx 1.1778 - / sqr a[4]*a[2] 1.1779 - mull %edx 1.1780 - addl %eax, %eax 1.1781 - adcl %edx, %edx 1.1782 - adcl $0, %ebp 1.1783 - addl %eax, %ebx 1.1784 - adcl %edx, %ecx 1.1785 - movl 12(%esi), %eax 1.1786 - adcl $0, %ebp 1.1787 - / sqr a[3]*a[3] 1.1788 - mull %eax 1.1789 - addl %eax, %ebx 1.1790 - adcl %edx, %ecx 1.1791 - movl (%esi), %edx 1.1792 - adcl $0, %ebp 1.1793 - movl %ebx, 24(%edi) 1.1794 - movl 28(%esi), %eax 1.1795 - / saved r[6] 1.1796 - / ############### Calculate word 7 1.1797 - xorl %ebx, %ebx 1.1798 - / sqr a[7]*a[0] 1.1799 - mull %edx 1.1800 - addl %eax, %eax 1.1801 - adcl %edx, %edx 1.1802 - adcl $0, %ebx 1.1803 - addl %eax, %ecx 1.1804 - adcl %edx, %ebp 1.1805 - movl 24(%esi), %eax 1.1806 - adcl $0, %ebx 1.1807 - movl 4(%esi), %edx 1.1808 - / sqr a[6]*a[1] 1.1809 - mull %edx 1.1810 - addl %eax, %eax 1.1811 - adcl %edx, %edx 1.1812 - adcl $0, %ebx 1.1813 - addl %eax, %ecx 1.1814 - adcl %edx, %ebp 1.1815 - movl 20(%esi), %eax 1.1816 - adcl $0, %ebx 1.1817 - movl 8(%esi), %edx 1.1818 - / sqr a[5]*a[2] 1.1819 - mull %edx 1.1820 - addl %eax, %eax 1.1821 - adcl %edx, %edx 1.1822 - adcl $0, %ebx 1.1823 - addl %eax, %ecx 1.1824 - adcl %edx, %ebp 1.1825 - movl 16(%esi), %eax 1.1826 - adcl $0, %ebx 1.1827 - movl 12(%esi), %edx 1.1828 - / sqr a[4]*a[3] 1.1829 - mull %edx 1.1830 - addl %eax, %eax 1.1831 - adcl %edx, %edx 1.1832 - adcl $0, %ebx 1.1833 - addl %eax, %ecx 1.1834 - adcl %edx, %ebp 1.1835 - movl 28(%esi), %eax 1.1836 - adcl $0, %ebx 1.1837 - movl %ecx, 28(%edi) 1.1838 - movl 4(%esi), %edx 1.1839 - / saved r[7] 1.1840 - / ############### Calculate word 8 1.1841 - xorl %ecx, %ecx 1.1842 - / sqr a[7]*a[1] 1.1843 - mull %edx 1.1844 - addl %eax, %eax 1.1845 - adcl %edx, %edx 1.1846 - adcl $0, %ecx 1.1847 - addl %eax, %ebp 1.1848 - adcl %edx, %ebx 1.1849 - movl 24(%esi), %eax 1.1850 - adcl $0, %ecx 1.1851 - movl 8(%esi), %edx 1.1852 - / sqr a[6]*a[2] 1.1853 - mull %edx 1.1854 - addl %eax, %eax 1.1855 - adcl %edx, %edx 1.1856 - adcl $0, %ecx 1.1857 - addl %eax, %ebp 1.1858 - adcl %edx, %ebx 1.1859 - movl 20(%esi), %eax 1.1860 - adcl $0, %ecx 1.1861 - movl 12(%esi), %edx 1.1862 - / sqr a[5]*a[3] 1.1863 - mull %edx 1.1864 - addl %eax, %eax 1.1865 - adcl %edx, %edx 1.1866 - adcl $0, %ecx 1.1867 - addl %eax, %ebp 1.1868 - adcl %edx, %ebx 1.1869 - movl 16(%esi), %eax 1.1870 - adcl $0, %ecx 1.1871 - / sqr a[4]*a[4] 1.1872 - mull %eax 1.1873 - addl %eax, %ebp 1.1874 - adcl %edx, %ebx 1.1875 - movl 8(%esi), %edx 1.1876 - adcl $0, %ecx 1.1877 - movl %ebp, 32(%edi) 1.1878 - movl 28(%esi), %eax 1.1879 - / saved r[8] 1.1880 - / ############### Calculate word 9 1.1881 - xorl %ebp, %ebp 1.1882 - / sqr a[7]*a[2] 1.1883 - mull %edx 1.1884 - addl %eax, %eax 1.1885 - adcl %edx, %edx 1.1886 - adcl $0, %ebp 1.1887 - addl %eax, %ebx 1.1888 - adcl %edx, %ecx 1.1889 - movl 24(%esi), %eax 1.1890 - adcl $0, %ebp 1.1891 - movl 12(%esi), %edx 1.1892 - / sqr a[6]*a[3] 1.1893 - mull %edx 1.1894 - addl %eax, %eax 1.1895 - adcl %edx, %edx 1.1896 - adcl $0, %ebp 1.1897 - addl %eax, %ebx 1.1898 - adcl %edx, %ecx 1.1899 - movl 20(%esi), %eax 1.1900 - adcl $0, %ebp 1.1901 - movl 16(%esi), %edx 1.1902 - / sqr a[5]*a[4] 1.1903 - mull %edx 1.1904 - addl %eax, %eax 1.1905 - adcl %edx, %edx 1.1906 - adcl $0, %ebp 1.1907 - addl %eax, %ebx 1.1908 - adcl %edx, %ecx 1.1909 - movl 28(%esi), %eax 1.1910 - adcl $0, %ebp 1.1911 - movl %ebx, 36(%edi) 1.1912 - movl 12(%esi), %edx 1.1913 - / saved r[9] 1.1914 - / ############### Calculate word 10 1.1915 - xorl %ebx, %ebx 1.1916 - / sqr a[7]*a[3] 1.1917 - mull %edx 1.1918 - addl %eax, %eax 1.1919 - adcl %edx, %edx 1.1920 - adcl $0, %ebx 1.1921 - addl %eax, %ecx 1.1922 - adcl %edx, %ebp 1.1923 - movl 24(%esi), %eax 1.1924 - adcl $0, %ebx 1.1925 - movl 16(%esi), %edx 1.1926 - / sqr a[6]*a[4] 1.1927 - mull %edx 1.1928 - addl %eax, %eax 1.1929 - adcl %edx, %edx 1.1930 - adcl $0, %ebx 1.1931 - addl %eax, %ecx 1.1932 - adcl %edx, %ebp 1.1933 - movl 20(%esi), %eax 1.1934 - adcl $0, %ebx 1.1935 - / sqr a[5]*a[5] 1.1936 - mull %eax 1.1937 - addl %eax, %ecx 1.1938 - adcl %edx, %ebp 1.1939 - movl 16(%esi), %edx 1.1940 - adcl $0, %ebx 1.1941 - movl %ecx, 40(%edi) 1.1942 - movl 28(%esi), %eax 1.1943 - / saved r[10] 1.1944 - / ############### Calculate word 11 1.1945 - xorl %ecx, %ecx 1.1946 - / sqr a[7]*a[4] 1.1947 - mull %edx 1.1948 - addl %eax, %eax 1.1949 - adcl %edx, %edx 1.1950 - adcl $0, %ecx 1.1951 - addl %eax, %ebp 1.1952 - adcl %edx, %ebx 1.1953 - movl 24(%esi), %eax 1.1954 - adcl $0, %ecx 1.1955 - movl 20(%esi), %edx 1.1956 - / sqr a[6]*a[5] 1.1957 - mull %edx 1.1958 - addl %eax, %eax 1.1959 - adcl %edx, %edx 1.1960 - adcl $0, %ecx 1.1961 - addl %eax, %ebp 1.1962 - adcl %edx, %ebx 1.1963 - movl 28(%esi), %eax 1.1964 - adcl $0, %ecx 1.1965 - movl %ebp, 44(%edi) 1.1966 - movl 20(%esi), %edx 1.1967 - / saved r[11] 1.1968 - / ############### Calculate word 12 1.1969 - xorl %ebp, %ebp 1.1970 - / sqr a[7]*a[5] 1.1971 - mull %edx 1.1972 - addl %eax, %eax 1.1973 - adcl %edx, %edx 1.1974 - adcl $0, %ebp 1.1975 - addl %eax, %ebx 1.1976 - adcl %edx, %ecx 1.1977 - movl 24(%esi), %eax 1.1978 - adcl $0, %ebp 1.1979 - / sqr a[6]*a[6] 1.1980 - mull %eax 1.1981 - addl %eax, %ebx 1.1982 - adcl %edx, %ecx 1.1983 - movl 24(%esi), %edx 1.1984 - adcl $0, %ebp 1.1985 - movl %ebx, 48(%edi) 1.1986 - movl 28(%esi), %eax 1.1987 - / saved r[12] 1.1988 - / ############### Calculate word 13 1.1989 - xorl %ebx, %ebx 1.1990 - / sqr a[7]*a[6] 1.1991 - mull %edx 1.1992 - addl %eax, %eax 1.1993 - adcl %edx, %edx 1.1994 - adcl $0, %ebx 1.1995 - addl %eax, %ecx 1.1996 - adcl %edx, %ebp 1.1997 - movl 28(%esi), %eax 1.1998 - adcl $0, %ebx 1.1999 - movl %ecx, 52(%edi) 1.2000 - / saved r[13] 1.2001 - / ############### Calculate word 14 1.2002 - xorl %ecx, %ecx 1.2003 - / sqr a[7]*a[7] 1.2004 - mull %eax 1.2005 - addl %eax, %ebp 1.2006 - adcl %edx, %ebx 1.2007 - adcl $0, %ecx 1.2008 - movl %ebp, 56(%edi) 1.2009 - / saved r[14] 1.2010 - movl %ebx, 60(%edi) 1.2011 - popl %ebx 1.2012 - popl %ebp 1.2013 - popl %edi 1.2014 - popl %esi 1.2015 - ret 1.2016 -.L_bn_sqr_comba8_end: 1.2017 - .size bn_sqr_comba8,.L_bn_sqr_comba8_end-bn_sqr_comba8 1.2018 -.ident "desasm.pl" 1.2019 -.text 1.2020 - .align 16 1.2021 -.globl bn_sqr_comba4 1.2022 - .type bn_sqr_comba4,@function 1.2023 -bn_sqr_comba4: 1.2024 - pushl %esi 1.2025 - pushl %edi 1.2026 - pushl %ebp 1.2027 - pushl %ebx 1.2028 - movl 20(%esp), %edi 1.2029 - movl 24(%esp), %esi 1.2030 - xorl %ebx, %ebx 1.2031 - xorl %ecx, %ecx 1.2032 - movl (%esi), %eax 1.2033 - / ############### Calculate word 0 1.2034 - xorl %ebp, %ebp 1.2035 - / sqr a[0]*a[0] 1.2036 - mull %eax 1.2037 - addl %eax, %ebx 1.2038 - adcl %edx, %ecx 1.2039 - movl (%esi), %edx 1.2040 - adcl $0, %ebp 1.2041 - movl %ebx, (%edi) 1.2042 - movl 4(%esi), %eax 1.2043 - / saved r[0] 1.2044 - / ############### Calculate word 1 1.2045 - xorl %ebx, %ebx 1.2046 - / sqr a[1]*a[0] 1.2047 - mull %edx 1.2048 - addl %eax, %eax 1.2049 - adcl %edx, %edx 1.2050 - adcl $0, %ebx 1.2051 - addl %eax, %ecx 1.2052 - adcl %edx, %ebp 1.2053 - movl 8(%esi), %eax 1.2054 - adcl $0, %ebx 1.2055 - movl %ecx, 4(%edi) 1.2056 - movl (%esi), %edx 1.2057 - / saved r[1] 1.2058 - / ############### Calculate word 2 1.2059 - xorl %ecx, %ecx 1.2060 - / sqr a[2]*a[0] 1.2061 - mull %edx 1.2062 - addl %eax, %eax 1.2063 - adcl %edx, %edx 1.2064 - adcl $0, %ecx 1.2065 - addl %eax, %ebp 1.2066 - adcl %edx, %ebx 1.2067 - movl 4(%esi), %eax 1.2068 - adcl $0, %ecx 1.2069 - / sqr a[1]*a[1] 1.2070 - mull %eax 1.2071 - addl %eax, %ebp 1.2072 - adcl %edx, %ebx 1.2073 - movl (%esi), %edx 1.2074 - adcl $0, %ecx 1.2075 - movl %ebp, 8(%edi) 1.2076 - movl 12(%esi), %eax 1.2077 - / saved r[2] 1.2078 - / ############### Calculate word 3 1.2079 - xorl %ebp, %ebp 1.2080 - / sqr a[3]*a[0] 1.2081 - mull %edx 1.2082 - addl %eax, %eax 1.2083 - adcl %edx, %edx 1.2084 - adcl $0, %ebp 1.2085 - addl %eax, %ebx 1.2086 - adcl %edx, %ecx 1.2087 - movl 8(%esi), %eax 1.2088 - adcl $0, %ebp 1.2089 - movl 4(%esi), %edx 1.2090 - / sqr a[2]*a[1] 1.2091 - mull %edx 1.2092 - addl %eax, %eax 1.2093 - adcl %edx, %edx 1.2094 - adcl $0, %ebp 1.2095 - addl %eax, %ebx 1.2096 - adcl %edx, %ecx 1.2097 - movl 12(%esi), %eax 1.2098 - adcl $0, %ebp 1.2099 - movl %ebx, 12(%edi) 1.2100 - movl 4(%esi), %edx 1.2101 - / saved r[3] 1.2102 - / ############### Calculate word 4 1.2103 - xorl %ebx, %ebx 1.2104 - / sqr a[3]*a[1] 1.2105 - mull %edx 1.2106 - addl %eax, %eax 1.2107 - adcl %edx, %edx 1.2108 - adcl $0, %ebx 1.2109 - addl %eax, %ecx 1.2110 - adcl %edx, %ebp 1.2111 - movl 8(%esi), %eax 1.2112 - adcl $0, %ebx 1.2113 - / sqr a[2]*a[2] 1.2114 - mull %eax 1.2115 - addl %eax, %ecx 1.2116 - adcl %edx, %ebp 1.2117 - movl 8(%esi), %edx 1.2118 - adcl $0, %ebx 1.2119 - movl %ecx, 16(%edi) 1.2120 - movl 12(%esi), %eax 1.2121 - / saved r[4] 1.2122 - / ############### Calculate word 5 1.2123 - xorl %ecx, %ecx 1.2124 - / sqr a[3]*a[2] 1.2125 - mull %edx 1.2126 - addl %eax, %eax 1.2127 - adcl %edx, %edx 1.2128 - adcl $0, %ecx 1.2129 - addl %eax, %ebp 1.2130 - adcl %edx, %ebx 1.2131 - movl 12(%esi), %eax 1.2132 - adcl $0, %ecx 1.2133 - movl %ebp, 20(%edi) 1.2134 - / saved r[5] 1.2135 - / ############### Calculate word 6 1.2136 - xorl %ebp, %ebp 1.2137 - / sqr a[3]*a[3] 1.2138 - mull %eax 1.2139 - addl %eax, %ebx 1.2140 - adcl %edx, %ecx 1.2141 - adcl $0, %ebp 1.2142 - movl %ebx, 24(%edi) 1.2143 - / saved r[6] 1.2144 - movl %ecx, 28(%edi) 1.2145 - popl %ebx 1.2146 - popl %ebp 1.2147 - popl %edi 1.2148 - popl %esi 1.2149 - ret 1.2150 -.L_bn_sqr_comba4_end: 1.2151 - .size bn_sqr_comba4,.L_bn_sqr_comba4_end-bn_sqr_comba4 1.2152 -.ident "desasm.pl"