Thu, 08 Jan 2009 11:10:35 +0100
Correct build configuration and port to Solaris.
cryptlib/bn-sol.s | file | annotate | diff | comparison | revisions | |
cryptlib/cryptlib.spec | file | annotate | diff | comparison | revisions |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/cryptlib/bn-sol.s Thu Jan 08 11:10:35 2009 +0100 1.3 @@ -0,0 +1,2149 @@ 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"
2.1 --- a/cryptlib/cryptlib.spec Thu Jan 08 11:09:42 2009 +0100 2.2 +++ b/cryptlib/cryptlib.spec Thu Jan 08 11:10:35 2009 +0100 2.3 @@ -37,17 +37,18 @@ 2.4 Group: Cryptography 2.5 License: MIT-style 2.6 Version: %{V_full} 2.7 -Release: 20080704 2.8 +Release: 20090106 2.9 2.10 # list of sources 2.11 Source0: ftp://ftp.franken.de/pub/crypt/cryptlib/cl%{V_comp}.zip 2.12 Source1: ftp://ftp.franken.de/pub/crypt/cryptlib/manual.pdf 2.13 +Source2: bn-sol.s 2.14 Patch0: cryptlib.patch 2.15 2.16 # build information 2.17 Prefix: %{l_prefix} 2.18 BuildRoot: %{l_buildroot} 2.19 -BuildPreReq: OpenPKG, openpkg >= 20040130, infozip, make, gcc, perl 2.20 +BuildPreReq: OpenPKG, openpkg >= 20040130, infozip, make, gcc 2.21 PreReq: OpenPKG, openpkg >= 20040130 2.22 AutoReq: no 2.23 AutoReqProv: no 2.24 @@ -79,11 +80,14 @@ 2.25 %prep 2.26 %setup -q -c -T 2.27 %{l_prefix}/bin/unzip -q -x %{SOURCE0} 2.28 + cp %{SOURCE bn-sol.s} bn/ 2.29 %patch -p0 2.30 - %{l_prefix}/bin/perl -p -i -e 's;\r$;;m' tools/*.pl tools/*.sh 2.31 + %{l_shtool} subst -e 's;\r$;;' tools/*.pl tools/*.sh 2.32 + %{l_shtool} subst -e 's;-xO3 *;;g' 's; *-O;;g' makefile 2.33 + %{l_shtool} subst -e 's; *-O[1234];;g' 's; *-O;;g' makefile 2.34 2.35 %build 2.36 - %{l_make} %{l_mflags} \ 2.37 + %{l_make} %{l_mflags -O} \ 2.38 CC="%{l_cc} %{l_cflags -O}" 2.39 2.40 %install