Tue, 28 Aug 2012 18:34:10 +0200
Modernize packaging, update version, rename CAST relevant assembly file
c-sol.s, correct typical german english grammar mistakes, repair
substitutions for GCC CFLAGS and proper dependency leverage, remove
carriage returns in sources, and use parallel make.
cryptlib/bn-sol.s | file | annotate | diff | comparison | revisions | |
cryptlib/c-sol.s | file | annotate | diff | comparison | revisions | |
cryptlib/cryptlib.spec | file | annotate | diff | comparison | revisions |
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"
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/cryptlib/c-sol.s Tue Aug 28 18:34:10 2012 +0200 2.3 @@ -0,0 +1,2149 @@ 2.4 + / Don't even think of reading this code 2.5 + / It was automatically generated by x86.pl 2.6 + / Which is a perl program used to generate the x86 assember for 2.7 + / any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris 2.8 + / eric <eay@cryptsoft.com> 2.9 + 2.10 + .file "x86.s" 2.11 + .version "01.01" 2.12 +gcc2_compiled.: 2.13 +.text 2.14 + .align 16 2.15 +.globl bn_mul_add_words 2.16 + .type bn_mul_add_words,@function 2.17 +bn_mul_add_words: 2.18 + pushl %ebp 2.19 + pushl %ebx 2.20 + pushl %esi 2.21 + pushl %edi 2.22 + 2.23 + 2.24 + xorl %esi, %esi 2.25 + movl 20(%esp), %edi 2.26 + movl 28(%esp), %ecx 2.27 + movl 24(%esp), %ebx 2.28 + andl $4294967288, %ecx 2.29 + movl 32(%esp), %ebp 2.30 + pushl %ecx 2.31 + jz .L000maw_finish 2.32 +.L001maw_loop: 2.33 + movl %ecx, (%esp) 2.34 + / Round 0 2.35 + movl (%ebx), %eax 2.36 + mull %ebp 2.37 + addl %esi, %eax 2.38 + movl (%edi), %esi 2.39 + adcl $0, %edx 2.40 + addl %esi, %eax 2.41 + adcl $0, %edx 2.42 + movl %eax, (%edi) 2.43 + movl %edx, %esi 2.44 + / Round 4 2.45 + movl 4(%ebx), %eax 2.46 + mull %ebp 2.47 + addl %esi, %eax 2.48 + movl 4(%edi), %esi 2.49 + adcl $0, %edx 2.50 + addl %esi, %eax 2.51 + adcl $0, %edx 2.52 + movl %eax, 4(%edi) 2.53 + movl %edx, %esi 2.54 + / Round 8 2.55 + movl 8(%ebx), %eax 2.56 + mull %ebp 2.57 + addl %esi, %eax 2.58 + movl 8(%edi), %esi 2.59 + adcl $0, %edx 2.60 + addl %esi, %eax 2.61 + adcl $0, %edx 2.62 + movl %eax, 8(%edi) 2.63 + movl %edx, %esi 2.64 + / Round 12 2.65 + movl 12(%ebx), %eax 2.66 + mull %ebp 2.67 + addl %esi, %eax 2.68 + movl 12(%edi), %esi 2.69 + adcl $0, %edx 2.70 + addl %esi, %eax 2.71 + adcl $0, %edx 2.72 + movl %eax, 12(%edi) 2.73 + movl %edx, %esi 2.74 + / Round 16 2.75 + movl 16(%ebx), %eax 2.76 + mull %ebp 2.77 + addl %esi, %eax 2.78 + movl 16(%edi), %esi 2.79 + adcl $0, %edx 2.80 + addl %esi, %eax 2.81 + adcl $0, %edx 2.82 + movl %eax, 16(%edi) 2.83 + movl %edx, %esi 2.84 + / Round 20 2.85 + movl 20(%ebx), %eax 2.86 + mull %ebp 2.87 + addl %esi, %eax 2.88 + movl 20(%edi), %esi 2.89 + adcl $0, %edx 2.90 + addl %esi, %eax 2.91 + adcl $0, %edx 2.92 + movl %eax, 20(%edi) 2.93 + movl %edx, %esi 2.94 + / Round 24 2.95 + movl 24(%ebx), %eax 2.96 + mull %ebp 2.97 + addl %esi, %eax 2.98 + movl 24(%edi), %esi 2.99 + adcl $0, %edx 2.100 + addl %esi, %eax 2.101 + adcl $0, %edx 2.102 + movl %eax, 24(%edi) 2.103 + movl %edx, %esi 2.104 + / Round 28 2.105 + movl 28(%ebx), %eax 2.106 + mull %ebp 2.107 + addl %esi, %eax 2.108 + movl 28(%edi), %esi 2.109 + adcl $0, %edx 2.110 + addl %esi, %eax 2.111 + adcl $0, %edx 2.112 + movl %eax, 28(%edi) 2.113 + movl %edx, %esi 2.114 + 2.115 + movl (%esp), %ecx 2.116 + addl $32, %ebx 2.117 + addl $32, %edi 2.118 + subl $8, %ecx 2.119 + jnz .L001maw_loop 2.120 +.L000maw_finish: 2.121 + movl 32(%esp), %ecx 2.122 + andl $7, %ecx 2.123 + jnz .L002maw_finish2 2.124 + jmp .L003maw_end 2.125 +.align 16 2.126 +.L002maw_finish2: 2.127 + / Tail Round 0 2.128 + movl (%ebx), %eax 2.129 + mull %ebp 2.130 + addl %esi, %eax 2.131 + movl (%edi), %esi 2.132 + adcl $0, %edx 2.133 + addl %esi, %eax 2.134 + adcl $0, %edx 2.135 + decl %ecx 2.136 + movl %eax, (%edi) 2.137 + movl %edx, %esi 2.138 + jz .L003maw_end 2.139 + / Tail Round 1 2.140 + movl 4(%ebx), %eax 2.141 + mull %ebp 2.142 + addl %esi, %eax 2.143 + movl 4(%edi), %esi 2.144 + adcl $0, %edx 2.145 + addl %esi, %eax 2.146 + adcl $0, %edx 2.147 + decl %ecx 2.148 + movl %eax, 4(%edi) 2.149 + movl %edx, %esi 2.150 + jz .L003maw_end 2.151 + / Tail Round 2 2.152 + movl 8(%ebx), %eax 2.153 + mull %ebp 2.154 + addl %esi, %eax 2.155 + movl 8(%edi), %esi 2.156 + adcl $0, %edx 2.157 + addl %esi, %eax 2.158 + adcl $0, %edx 2.159 + decl %ecx 2.160 + movl %eax, 8(%edi) 2.161 + movl %edx, %esi 2.162 + jz .L003maw_end 2.163 + / Tail Round 3 2.164 + movl 12(%ebx), %eax 2.165 + mull %ebp 2.166 + addl %esi, %eax 2.167 + movl 12(%edi), %esi 2.168 + adcl $0, %edx 2.169 + addl %esi, %eax 2.170 + adcl $0, %edx 2.171 + decl %ecx 2.172 + movl %eax, 12(%edi) 2.173 + movl %edx, %esi 2.174 + jz .L003maw_end 2.175 + / Tail Round 4 2.176 + movl 16(%ebx), %eax 2.177 + mull %ebp 2.178 + addl %esi, %eax 2.179 + movl 16(%edi), %esi 2.180 + adcl $0, %edx 2.181 + addl %esi, %eax 2.182 + adcl $0, %edx 2.183 + decl %ecx 2.184 + movl %eax, 16(%edi) 2.185 + movl %edx, %esi 2.186 + jz .L003maw_end 2.187 + / Tail Round 5 2.188 + movl 20(%ebx), %eax 2.189 + mull %ebp 2.190 + addl %esi, %eax 2.191 + movl 20(%edi), %esi 2.192 + adcl $0, %edx 2.193 + addl %esi, %eax 2.194 + adcl $0, %edx 2.195 + decl %ecx 2.196 + movl %eax, 20(%edi) 2.197 + movl %edx, %esi 2.198 + jz .L003maw_end 2.199 + / Tail Round 6 2.200 + movl 24(%ebx), %eax 2.201 + mull %ebp 2.202 + addl %esi, %eax 2.203 + movl 24(%edi), %esi 2.204 + adcl $0, %edx 2.205 + addl %esi, %eax 2.206 + adcl $0, %edx 2.207 + movl %eax, 24(%edi) 2.208 + movl %edx, %esi 2.209 +.L003maw_end: 2.210 + movl %esi, %eax 2.211 + popl %ecx 2.212 + popl %edi 2.213 + popl %esi 2.214 + popl %ebx 2.215 + popl %ebp 2.216 + ret 2.217 +.bn_mul_add_words_end: 2.218 + .size bn_mul_add_words,.bn_mul_add_words_end-bn_mul_add_words 2.219 +.ident "bn_mul_add_words" 2.220 +.text 2.221 + .align 16 2.222 +.globl bn_mul_words 2.223 + .type bn_mul_words,@function 2.224 +bn_mul_words: 2.225 + pushl %ebp 2.226 + pushl %ebx 2.227 + pushl %esi 2.228 + pushl %edi 2.229 + 2.230 + 2.231 + xorl %esi, %esi 2.232 + movl 20(%esp), %edi 2.233 + movl 24(%esp), %ebx 2.234 + movl 28(%esp), %ebp 2.235 + movl 32(%esp), %ecx 2.236 + andl $4294967288, %ebp 2.237 + jz .L004mw_finish 2.238 +.L005mw_loop: 2.239 + / Round 0 2.240 + movl (%ebx), %eax 2.241 + mull %ecx 2.242 + addl %esi, %eax 2.243 + adcl $0, %edx 2.244 + movl %eax, (%edi) 2.245 + movl %edx, %esi 2.246 + / Round 4 2.247 + movl 4(%ebx), %eax 2.248 + mull %ecx 2.249 + addl %esi, %eax 2.250 + adcl $0, %edx 2.251 + movl %eax, 4(%edi) 2.252 + movl %edx, %esi 2.253 + / Round 8 2.254 + movl 8(%ebx), %eax 2.255 + mull %ecx 2.256 + addl %esi, %eax 2.257 + adcl $0, %edx 2.258 + movl %eax, 8(%edi) 2.259 + movl %edx, %esi 2.260 + / Round 12 2.261 + movl 12(%ebx), %eax 2.262 + mull %ecx 2.263 + addl %esi, %eax 2.264 + adcl $0, %edx 2.265 + movl %eax, 12(%edi) 2.266 + movl %edx, %esi 2.267 + / Round 16 2.268 + movl 16(%ebx), %eax 2.269 + mull %ecx 2.270 + addl %esi, %eax 2.271 + adcl $0, %edx 2.272 + movl %eax, 16(%edi) 2.273 + movl %edx, %esi 2.274 + / Round 20 2.275 + movl 20(%ebx), %eax 2.276 + mull %ecx 2.277 + addl %esi, %eax 2.278 + adcl $0, %edx 2.279 + movl %eax, 20(%edi) 2.280 + movl %edx, %esi 2.281 + / Round 24 2.282 + movl 24(%ebx), %eax 2.283 + mull %ecx 2.284 + addl %esi, %eax 2.285 + adcl $0, %edx 2.286 + movl %eax, 24(%edi) 2.287 + movl %edx, %esi 2.288 + / Round 28 2.289 + movl 28(%ebx), %eax 2.290 + mull %ecx 2.291 + addl %esi, %eax 2.292 + adcl $0, %edx 2.293 + movl %eax, 28(%edi) 2.294 + movl %edx, %esi 2.295 + 2.296 + addl $32, %ebx 2.297 + addl $32, %edi 2.298 + subl $8, %ebp 2.299 + jz .L004mw_finish 2.300 + jmp .L005mw_loop 2.301 +.L004mw_finish: 2.302 + movl 28(%esp), %ebp 2.303 + andl $7, %ebp 2.304 + jnz .L006mw_finish2 2.305 + jmp .L007mw_end 2.306 +.align 16 2.307 +.L006mw_finish2: 2.308 + / Tail Round 0 2.309 + movl (%ebx), %eax 2.310 + mull %ecx 2.311 + addl %esi, %eax 2.312 + adcl $0, %edx 2.313 + movl %eax, (%edi) 2.314 + movl %edx, %esi 2.315 + decl %ebp 2.316 + jz .L007mw_end 2.317 + / Tail Round 1 2.318 + movl 4(%ebx), %eax 2.319 + mull %ecx 2.320 + addl %esi, %eax 2.321 + adcl $0, %edx 2.322 + movl %eax, 4(%edi) 2.323 + movl %edx, %esi 2.324 + decl %ebp 2.325 + jz .L007mw_end 2.326 + / Tail Round 2 2.327 + movl 8(%ebx), %eax 2.328 + mull %ecx 2.329 + addl %esi, %eax 2.330 + adcl $0, %edx 2.331 + movl %eax, 8(%edi) 2.332 + movl %edx, %esi 2.333 + decl %ebp 2.334 + jz .L007mw_end 2.335 + / Tail Round 3 2.336 + movl 12(%ebx), %eax 2.337 + mull %ecx 2.338 + addl %esi, %eax 2.339 + adcl $0, %edx 2.340 + movl %eax, 12(%edi) 2.341 + movl %edx, %esi 2.342 + decl %ebp 2.343 + jz .L007mw_end 2.344 + / Tail Round 4 2.345 + movl 16(%ebx), %eax 2.346 + mull %ecx 2.347 + addl %esi, %eax 2.348 + adcl $0, %edx 2.349 + movl %eax, 16(%edi) 2.350 + movl %edx, %esi 2.351 + decl %ebp 2.352 + jz .L007mw_end 2.353 + / Tail Round 5 2.354 + movl 20(%ebx), %eax 2.355 + mull %ecx 2.356 + addl %esi, %eax 2.357 + adcl $0, %edx 2.358 + movl %eax, 20(%edi) 2.359 + movl %edx, %esi 2.360 + decl %ebp 2.361 + jz .L007mw_end 2.362 + / Tail Round 6 2.363 + movl 24(%ebx), %eax 2.364 + mull %ecx 2.365 + addl %esi, %eax 2.366 + adcl $0, %edx 2.367 + movl %eax, 24(%edi) 2.368 + movl %edx, %esi 2.369 +.L007mw_end: 2.370 + movl %esi, %eax 2.371 + popl %edi 2.372 + popl %esi 2.373 + popl %ebx 2.374 + popl %ebp 2.375 + ret 2.376 +.bn_mul_words_end: 2.377 + .size bn_mul_words,.bn_mul_words_end-bn_mul_words 2.378 +.ident "bn_mul_words" 2.379 +.text 2.380 + .align 16 2.381 +.globl bn_sqr_words 2.382 + .type bn_sqr_words,@function 2.383 +bn_sqr_words: 2.384 + pushl %ebp 2.385 + pushl %ebx 2.386 + pushl %esi 2.387 + pushl %edi 2.388 + 2.389 + 2.390 + movl 20(%esp), %esi 2.391 + movl 24(%esp), %edi 2.392 + movl 28(%esp), %ebx 2.393 + andl $4294967288, %ebx 2.394 + jz .L008sw_finish 2.395 +.L009sw_loop: 2.396 + / Round 0 2.397 + movl (%edi), %eax 2.398 + mull %eax 2.399 + movl %eax, (%esi) 2.400 + movl %edx, 4(%esi) 2.401 + / Round 4 2.402 + movl 4(%edi), %eax 2.403 + mull %eax 2.404 + movl %eax, 8(%esi) 2.405 + movl %edx, 12(%esi) 2.406 + / Round 8 2.407 + movl 8(%edi), %eax 2.408 + mull %eax 2.409 + movl %eax, 16(%esi) 2.410 + movl %edx, 20(%esi) 2.411 + / Round 12 2.412 + movl 12(%edi), %eax 2.413 + mull %eax 2.414 + movl %eax, 24(%esi) 2.415 + movl %edx, 28(%esi) 2.416 + / Round 16 2.417 + movl 16(%edi), %eax 2.418 + mull %eax 2.419 + movl %eax, 32(%esi) 2.420 + movl %edx, 36(%esi) 2.421 + / Round 20 2.422 + movl 20(%edi), %eax 2.423 + mull %eax 2.424 + movl %eax, 40(%esi) 2.425 + movl %edx, 44(%esi) 2.426 + / Round 24 2.427 + movl 24(%edi), %eax 2.428 + mull %eax 2.429 + movl %eax, 48(%esi) 2.430 + movl %edx, 52(%esi) 2.431 + / Round 28 2.432 + movl 28(%edi), %eax 2.433 + mull %eax 2.434 + movl %eax, 56(%esi) 2.435 + movl %edx, 60(%esi) 2.436 + 2.437 + addl $32, %edi 2.438 + addl $64, %esi 2.439 + subl $8, %ebx 2.440 + jnz .L009sw_loop 2.441 +.L008sw_finish: 2.442 + movl 28(%esp), %ebx 2.443 + andl $7, %ebx 2.444 + jz .L010sw_end 2.445 + / Tail Round 0 2.446 + movl (%edi), %eax 2.447 + mull %eax 2.448 + movl %eax, (%esi) 2.449 + decl %ebx 2.450 + movl %edx, 4(%esi) 2.451 + jz .L010sw_end 2.452 + / Tail Round 1 2.453 + movl 4(%edi), %eax 2.454 + mull %eax 2.455 + movl %eax, 8(%esi) 2.456 + decl %ebx 2.457 + movl %edx, 12(%esi) 2.458 + jz .L010sw_end 2.459 + / Tail Round 2 2.460 + movl 8(%edi), %eax 2.461 + mull %eax 2.462 + movl %eax, 16(%esi) 2.463 + decl %ebx 2.464 + movl %edx, 20(%esi) 2.465 + jz .L010sw_end 2.466 + / Tail Round 3 2.467 + movl 12(%edi), %eax 2.468 + mull %eax 2.469 + movl %eax, 24(%esi) 2.470 + decl %ebx 2.471 + movl %edx, 28(%esi) 2.472 + jz .L010sw_end 2.473 + / Tail Round 4 2.474 + movl 16(%edi), %eax 2.475 + mull %eax 2.476 + movl %eax, 32(%esi) 2.477 + decl %ebx 2.478 + movl %edx, 36(%esi) 2.479 + jz .L010sw_end 2.480 + / Tail Round 5 2.481 + movl 20(%edi), %eax 2.482 + mull %eax 2.483 + movl %eax, 40(%esi) 2.484 + decl %ebx 2.485 + movl %edx, 44(%esi) 2.486 + jz .L010sw_end 2.487 + / Tail Round 6 2.488 + movl 24(%edi), %eax 2.489 + mull %eax 2.490 + movl %eax, 48(%esi) 2.491 + movl %edx, 52(%esi) 2.492 +.L010sw_end: 2.493 + popl %edi 2.494 + popl %esi 2.495 + popl %ebx 2.496 + popl %ebp 2.497 + ret 2.498 +.bn_sqr_words_end: 2.499 + .size bn_sqr_words,.bn_sqr_words_end-bn_sqr_words 2.500 +.ident "bn_sqr_words" 2.501 +.text 2.502 + .align 16 2.503 +.globl bn_div_words 2.504 + .type bn_div_words,@function 2.505 +bn_div_words: 2.506 + pushl %ebp 2.507 + pushl %ebx 2.508 + pushl %esi 2.509 + pushl %edi 2.510 + 2.511 + movl 20(%esp), %edx 2.512 + movl 24(%esp), %eax 2.513 + movl 28(%esp), %ebx 2.514 + divl %ebx 2.515 + popl %edi 2.516 + popl %esi 2.517 + popl %ebx 2.518 + popl %ebp 2.519 + ret 2.520 +.bn_div_words_end: 2.521 + .size bn_div_words,.bn_div_words_end-bn_div_words 2.522 +.ident "bn_div_words" 2.523 +.text 2.524 + .align 16 2.525 +.globl bn_add_words 2.526 + .type bn_add_words,@function 2.527 +bn_add_words: 2.528 + pushl %ebp 2.529 + pushl %ebx 2.530 + pushl %esi 2.531 + pushl %edi 2.532 + 2.533 + 2.534 + movl 20(%esp), %ebx 2.535 + movl 24(%esp), %esi 2.536 + movl 28(%esp), %edi 2.537 + movl 32(%esp), %ebp 2.538 + xorl %eax, %eax 2.539 + andl $4294967288, %ebp 2.540 + jz .L011aw_finish 2.541 +.L012aw_loop: 2.542 + / Round 0 2.543 + movl (%esi), %ecx 2.544 + movl (%edi), %edx 2.545 + addl %eax, %ecx 2.546 + movl $0, %eax 2.547 + adcl %eax, %eax 2.548 + addl %edx, %ecx 2.549 + adcl $0, %eax 2.550 + movl %ecx, (%ebx) 2.551 + / Round 1 2.552 + movl 4(%esi), %ecx 2.553 + movl 4(%edi), %edx 2.554 + addl %eax, %ecx 2.555 + movl $0, %eax 2.556 + adcl %eax, %eax 2.557 + addl %edx, %ecx 2.558 + adcl $0, %eax 2.559 + movl %ecx, 4(%ebx) 2.560 + / Round 2 2.561 + movl 8(%esi), %ecx 2.562 + movl 8(%edi), %edx 2.563 + addl %eax, %ecx 2.564 + movl $0, %eax 2.565 + adcl %eax, %eax 2.566 + addl %edx, %ecx 2.567 + adcl $0, %eax 2.568 + movl %ecx, 8(%ebx) 2.569 + / Round 3 2.570 + movl 12(%esi), %ecx 2.571 + movl 12(%edi), %edx 2.572 + addl %eax, %ecx 2.573 + movl $0, %eax 2.574 + adcl %eax, %eax 2.575 + addl %edx, %ecx 2.576 + adcl $0, %eax 2.577 + movl %ecx, 12(%ebx) 2.578 + / Round 4 2.579 + movl 16(%esi), %ecx 2.580 + movl 16(%edi), %edx 2.581 + addl %eax, %ecx 2.582 + movl $0, %eax 2.583 + adcl %eax, %eax 2.584 + addl %edx, %ecx 2.585 + adcl $0, %eax 2.586 + movl %ecx, 16(%ebx) 2.587 + / Round 5 2.588 + movl 20(%esi), %ecx 2.589 + movl 20(%edi), %edx 2.590 + addl %eax, %ecx 2.591 + movl $0, %eax 2.592 + adcl %eax, %eax 2.593 + addl %edx, %ecx 2.594 + adcl $0, %eax 2.595 + movl %ecx, 20(%ebx) 2.596 + / Round 6 2.597 + movl 24(%esi), %ecx 2.598 + movl 24(%edi), %edx 2.599 + addl %eax, %ecx 2.600 + movl $0, %eax 2.601 + adcl %eax, %eax 2.602 + addl %edx, %ecx 2.603 + adcl $0, %eax 2.604 + movl %ecx, 24(%ebx) 2.605 + / Round 7 2.606 + movl 28(%esi), %ecx 2.607 + movl 28(%edi), %edx 2.608 + addl %eax, %ecx 2.609 + movl $0, %eax 2.610 + adcl %eax, %eax 2.611 + addl %edx, %ecx 2.612 + adcl $0, %eax 2.613 + movl %ecx, 28(%ebx) 2.614 + 2.615 + addl $32, %esi 2.616 + addl $32, %edi 2.617 + addl $32, %ebx 2.618 + subl $8, %ebp 2.619 + jnz .L012aw_loop 2.620 +.L011aw_finish: 2.621 + movl 32(%esp), %ebp 2.622 + andl $7, %ebp 2.623 + jz .L013aw_end 2.624 + / Tail Round 0 2.625 + movl (%esi), %ecx 2.626 + movl (%edi), %edx 2.627 + addl %eax, %ecx 2.628 + movl $0, %eax 2.629 + adcl %eax, %eax 2.630 + addl %edx, %ecx 2.631 + adcl $0, %eax 2.632 + decl %ebp 2.633 + movl %ecx, (%ebx) 2.634 + jz .L013aw_end 2.635 + / Tail Round 1 2.636 + movl 4(%esi), %ecx 2.637 + movl 4(%edi), %edx 2.638 + addl %eax, %ecx 2.639 + movl $0, %eax 2.640 + adcl %eax, %eax 2.641 + addl %edx, %ecx 2.642 + adcl $0, %eax 2.643 + decl %ebp 2.644 + movl %ecx, 4(%ebx) 2.645 + jz .L013aw_end 2.646 + / Tail Round 2 2.647 + movl 8(%esi), %ecx 2.648 + movl 8(%edi), %edx 2.649 + addl %eax, %ecx 2.650 + movl $0, %eax 2.651 + adcl %eax, %eax 2.652 + addl %edx, %ecx 2.653 + adcl $0, %eax 2.654 + decl %ebp 2.655 + movl %ecx, 8(%ebx) 2.656 + jz .L013aw_end 2.657 + / Tail Round 3 2.658 + movl 12(%esi), %ecx 2.659 + movl 12(%edi), %edx 2.660 + addl %eax, %ecx 2.661 + movl $0, %eax 2.662 + adcl %eax, %eax 2.663 + addl %edx, %ecx 2.664 + adcl $0, %eax 2.665 + decl %ebp 2.666 + movl %ecx, 12(%ebx) 2.667 + jz .L013aw_end 2.668 + / Tail Round 4 2.669 + movl 16(%esi), %ecx 2.670 + movl 16(%edi), %edx 2.671 + addl %eax, %ecx 2.672 + movl $0, %eax 2.673 + adcl %eax, %eax 2.674 + addl %edx, %ecx 2.675 + adcl $0, %eax 2.676 + decl %ebp 2.677 + movl %ecx, 16(%ebx) 2.678 + jz .L013aw_end 2.679 + / Tail Round 5 2.680 + movl 20(%esi), %ecx 2.681 + movl 20(%edi), %edx 2.682 + addl %eax, %ecx 2.683 + movl $0, %eax 2.684 + adcl %eax, %eax 2.685 + addl %edx, %ecx 2.686 + adcl $0, %eax 2.687 + decl %ebp 2.688 + movl %ecx, 20(%ebx) 2.689 + jz .L013aw_end 2.690 + / Tail Round 6 2.691 + movl 24(%esi), %ecx 2.692 + movl 24(%edi), %edx 2.693 + addl %eax, %ecx 2.694 + movl $0, %eax 2.695 + adcl %eax, %eax 2.696 + addl %edx, %ecx 2.697 + adcl $0, %eax 2.698 + movl %ecx, 24(%ebx) 2.699 +.L013aw_end: 2.700 + popl %edi 2.701 + popl %esi 2.702 + popl %ebx 2.703 + popl %ebp 2.704 + ret 2.705 +.bn_add_words_end: 2.706 + .size bn_add_words,.bn_add_words_end-bn_add_words 2.707 +.ident "bn_add_words" 2.708 +.text 2.709 + .align 16 2.710 +.globl bn_sub_words 2.711 + .type bn_sub_words,@function 2.712 +bn_sub_words: 2.713 + pushl %ebp 2.714 + pushl %ebx 2.715 + pushl %esi 2.716 + pushl %edi 2.717 + 2.718 + 2.719 + movl 20(%esp), %ebx 2.720 + movl 24(%esp), %esi 2.721 + movl 28(%esp), %edi 2.722 + movl 32(%esp), %ebp 2.723 + xorl %eax, %eax 2.724 + andl $4294967288, %ebp 2.725 + jz .L014aw_finish 2.726 +.L015aw_loop: 2.727 + / Round 0 2.728 + movl (%esi), %ecx 2.729 + movl (%edi), %edx 2.730 + subl %eax, %ecx 2.731 + movl $0, %eax 2.732 + adcl %eax, %eax 2.733 + subl %edx, %ecx 2.734 + adcl $0, %eax 2.735 + movl %ecx, (%ebx) 2.736 + / Round 1 2.737 + movl 4(%esi), %ecx 2.738 + movl 4(%edi), %edx 2.739 + subl %eax, %ecx 2.740 + movl $0, %eax 2.741 + adcl %eax, %eax 2.742 + subl %edx, %ecx 2.743 + adcl $0, %eax 2.744 + movl %ecx, 4(%ebx) 2.745 + / Round 2 2.746 + movl 8(%esi), %ecx 2.747 + movl 8(%edi), %edx 2.748 + subl %eax, %ecx 2.749 + movl $0, %eax 2.750 + adcl %eax, %eax 2.751 + subl %edx, %ecx 2.752 + adcl $0, %eax 2.753 + movl %ecx, 8(%ebx) 2.754 + / Round 3 2.755 + movl 12(%esi), %ecx 2.756 + movl 12(%edi), %edx 2.757 + subl %eax, %ecx 2.758 + movl $0, %eax 2.759 + adcl %eax, %eax 2.760 + subl %edx, %ecx 2.761 + adcl $0, %eax 2.762 + movl %ecx, 12(%ebx) 2.763 + / Round 4 2.764 + movl 16(%esi), %ecx 2.765 + movl 16(%edi), %edx 2.766 + subl %eax, %ecx 2.767 + movl $0, %eax 2.768 + adcl %eax, %eax 2.769 + subl %edx, %ecx 2.770 + adcl $0, %eax 2.771 + movl %ecx, 16(%ebx) 2.772 + / Round 5 2.773 + movl 20(%esi), %ecx 2.774 + movl 20(%edi), %edx 2.775 + subl %eax, %ecx 2.776 + movl $0, %eax 2.777 + adcl %eax, %eax 2.778 + subl %edx, %ecx 2.779 + adcl $0, %eax 2.780 + movl %ecx, 20(%ebx) 2.781 + / Round 6 2.782 + movl 24(%esi), %ecx 2.783 + movl 24(%edi), %edx 2.784 + subl %eax, %ecx 2.785 + movl $0, %eax 2.786 + adcl %eax, %eax 2.787 + subl %edx, %ecx 2.788 + adcl $0, %eax 2.789 + movl %ecx, 24(%ebx) 2.790 + / Round 7 2.791 + movl 28(%esi), %ecx 2.792 + movl 28(%edi), %edx 2.793 + subl %eax, %ecx 2.794 + movl $0, %eax 2.795 + adcl %eax, %eax 2.796 + subl %edx, %ecx 2.797 + adcl $0, %eax 2.798 + movl %ecx, 28(%ebx) 2.799 + 2.800 + addl $32, %esi 2.801 + addl $32, %edi 2.802 + addl $32, %ebx 2.803 + subl $8, %ebp 2.804 + jnz .L015aw_loop 2.805 +.L014aw_finish: 2.806 + movl 32(%esp), %ebp 2.807 + andl $7, %ebp 2.808 + jz .L016aw_end 2.809 + / Tail Round 0 2.810 + movl (%esi), %ecx 2.811 + movl (%edi), %edx 2.812 + subl %eax, %ecx 2.813 + movl $0, %eax 2.814 + adcl %eax, %eax 2.815 + subl %edx, %ecx 2.816 + adcl $0, %eax 2.817 + decl %ebp 2.818 + movl %ecx, (%ebx) 2.819 + jz .L016aw_end 2.820 + / Tail Round 1 2.821 + movl 4(%esi), %ecx 2.822 + movl 4(%edi), %edx 2.823 + subl %eax, %ecx 2.824 + movl $0, %eax 2.825 + adcl %eax, %eax 2.826 + subl %edx, %ecx 2.827 + adcl $0, %eax 2.828 + decl %ebp 2.829 + movl %ecx, 4(%ebx) 2.830 + jz .L016aw_end 2.831 + / Tail Round 2 2.832 + movl 8(%esi), %ecx 2.833 + movl 8(%edi), %edx 2.834 + subl %eax, %ecx 2.835 + movl $0, %eax 2.836 + adcl %eax, %eax 2.837 + subl %edx, %ecx 2.838 + adcl $0, %eax 2.839 + decl %ebp 2.840 + movl %ecx, 8(%ebx) 2.841 + jz .L016aw_end 2.842 + / Tail Round 3 2.843 + movl 12(%esi), %ecx 2.844 + movl 12(%edi), %edx 2.845 + subl %eax, %ecx 2.846 + movl $0, %eax 2.847 + adcl %eax, %eax 2.848 + subl %edx, %ecx 2.849 + adcl $0, %eax 2.850 + decl %ebp 2.851 + movl %ecx, 12(%ebx) 2.852 + jz .L016aw_end 2.853 + / Tail Round 4 2.854 + movl 16(%esi), %ecx 2.855 + movl 16(%edi), %edx 2.856 + subl %eax, %ecx 2.857 + movl $0, %eax 2.858 + adcl %eax, %eax 2.859 + subl %edx, %ecx 2.860 + adcl $0, %eax 2.861 + decl %ebp 2.862 + movl %ecx, 16(%ebx) 2.863 + jz .L016aw_end 2.864 + / Tail Round 5 2.865 + movl 20(%esi), %ecx 2.866 + movl 20(%edi), %edx 2.867 + subl %eax, %ecx 2.868 + movl $0, %eax 2.869 + adcl %eax, %eax 2.870 + subl %edx, %ecx 2.871 + adcl $0, %eax 2.872 + decl %ebp 2.873 + movl %ecx, 20(%ebx) 2.874 + jz .L016aw_end 2.875 + / Tail Round 6 2.876 + movl 24(%esi), %ecx 2.877 + movl 24(%edi), %edx 2.878 + subl %eax, %ecx 2.879 + movl $0, %eax 2.880 + adcl %eax, %eax 2.881 + subl %edx, %ecx 2.882 + adcl $0, %eax 2.883 + movl %ecx, 24(%ebx) 2.884 +.L016aw_end: 2.885 + popl %edi 2.886 + popl %esi 2.887 + popl %ebx 2.888 + popl %ebp 2.889 + ret 2.890 +.bn_sub_words_end: 2.891 + .size bn_sub_words,.bn_sub_words_end-bn_sub_words 2.892 +.ident "bn_sub_words" 2.893 +.text 2.894 + .align 16 2.895 +.globl bn_mul_comba8 2.896 + .type bn_mul_comba8,@function 2.897 +bn_mul_comba8: 2.898 + pushl %esi 2.899 + movl 12(%esp), %esi 2.900 + pushl %edi 2.901 + movl 20(%esp), %edi 2.902 + pushl %ebp 2.903 + pushl %ebx 2.904 + xorl %ebx, %ebx 2.905 + movl (%esi), %eax 2.906 + xorl %ecx, %ecx 2.907 + movl (%edi), %edx 2.908 + / ################## Calculate word 0 2.909 + xorl %ebp, %ebp 2.910 + / mul a[0]*b[0] 2.911 + mull %edx 2.912 + addl %eax, %ebx 2.913 + movl 20(%esp), %eax 2.914 + adcl %edx, %ecx 2.915 + movl (%edi), %edx 2.916 + adcl $0, %ebp 2.917 + movl %ebx, (%eax) 2.918 + movl 4(%esi), %eax 2.919 + / saved r[0] 2.920 + / ################## Calculate word 1 2.921 + xorl %ebx, %ebx 2.922 + / mul a[1]*b[0] 2.923 + mull %edx 2.924 + addl %eax, %ecx 2.925 + movl (%esi), %eax 2.926 + adcl %edx, %ebp 2.927 + movl 4(%edi), %edx 2.928 + adcl $0, %ebx 2.929 + / mul a[0]*b[1] 2.930 + mull %edx 2.931 + addl %eax, %ecx 2.932 + movl 20(%esp), %eax 2.933 + adcl %edx, %ebp 2.934 + movl (%edi), %edx 2.935 + adcl $0, %ebx 2.936 + movl %ecx, 4(%eax) 2.937 + movl 8(%esi), %eax 2.938 + / saved r[1] 2.939 + / ################## Calculate word 2 2.940 + xorl %ecx, %ecx 2.941 + / mul a[2]*b[0] 2.942 + mull %edx 2.943 + addl %eax, %ebp 2.944 + movl 4(%esi), %eax 2.945 + adcl %edx, %ebx 2.946 + movl 4(%edi), %edx 2.947 + adcl $0, %ecx 2.948 + / mul a[1]*b[1] 2.949 + mull %edx 2.950 + addl %eax, %ebp 2.951 + movl (%esi), %eax 2.952 + adcl %edx, %ebx 2.953 + movl 8(%edi), %edx 2.954 + adcl $0, %ecx 2.955 + / mul a[0]*b[2] 2.956 + mull %edx 2.957 + addl %eax, %ebp 2.958 + movl 20(%esp), %eax 2.959 + adcl %edx, %ebx 2.960 + movl (%edi), %edx 2.961 + adcl $0, %ecx 2.962 + movl %ebp, 8(%eax) 2.963 + movl 12(%esi), %eax 2.964 + / saved r[2] 2.965 + / ################## Calculate word 3 2.966 + xorl %ebp, %ebp 2.967 + / mul a[3]*b[0] 2.968 + mull %edx 2.969 + addl %eax, %ebx 2.970 + movl 8(%esi), %eax 2.971 + adcl %edx, %ecx 2.972 + movl 4(%edi), %edx 2.973 + adcl $0, %ebp 2.974 + / mul a[2]*b[1] 2.975 + mull %edx 2.976 + addl %eax, %ebx 2.977 + movl 4(%esi), %eax 2.978 + adcl %edx, %ecx 2.979 + movl 8(%edi), %edx 2.980 + adcl $0, %ebp 2.981 + / mul a[1]*b[2] 2.982 + mull %edx 2.983 + addl %eax, %ebx 2.984 + movl (%esi), %eax 2.985 + adcl %edx, %ecx 2.986 + movl 12(%edi), %edx 2.987 + adcl $0, %ebp 2.988 + / mul a[0]*b[3] 2.989 + mull %edx 2.990 + addl %eax, %ebx 2.991 + movl 20(%esp), %eax 2.992 + adcl %edx, %ecx 2.993 + movl (%edi), %edx 2.994 + adcl $0, %ebp 2.995 + movl %ebx, 12(%eax) 2.996 + movl 16(%esi), %eax 2.997 + / saved r[3] 2.998 + / ################## Calculate word 4 2.999 + xorl %ebx, %ebx 2.1000 + / mul a[4]*b[0] 2.1001 + mull %edx 2.1002 + addl %eax, %ecx 2.1003 + movl 12(%esi), %eax 2.1004 + adcl %edx, %ebp 2.1005 + movl 4(%edi), %edx 2.1006 + adcl $0, %ebx 2.1007 + / mul a[3]*b[1] 2.1008 + mull %edx 2.1009 + addl %eax, %ecx 2.1010 + movl 8(%esi), %eax 2.1011 + adcl %edx, %ebp 2.1012 + movl 8(%edi), %edx 2.1013 + adcl $0, %ebx 2.1014 + / mul a[2]*b[2] 2.1015 + mull %edx 2.1016 + addl %eax, %ecx 2.1017 + movl 4(%esi), %eax 2.1018 + adcl %edx, %ebp 2.1019 + movl 12(%edi), %edx 2.1020 + adcl $0, %ebx 2.1021 + / mul a[1]*b[3] 2.1022 + mull %edx 2.1023 + addl %eax, %ecx 2.1024 + movl (%esi), %eax 2.1025 + adcl %edx, %ebp 2.1026 + movl 16(%edi), %edx 2.1027 + adcl $0, %ebx 2.1028 + / mul a[0]*b[4] 2.1029 + mull %edx 2.1030 + addl %eax, %ecx 2.1031 + movl 20(%esp), %eax 2.1032 + adcl %edx, %ebp 2.1033 + movl (%edi), %edx 2.1034 + adcl $0, %ebx 2.1035 + movl %ecx, 16(%eax) 2.1036 + movl 20(%esi), %eax 2.1037 + / saved r[4] 2.1038 + / ################## Calculate word 5 2.1039 + xorl %ecx, %ecx 2.1040 + / mul a[5]*b[0] 2.1041 + mull %edx 2.1042 + addl %eax, %ebp 2.1043 + movl 16(%esi), %eax 2.1044 + adcl %edx, %ebx 2.1045 + movl 4(%edi), %edx 2.1046 + adcl $0, %ecx 2.1047 + / mul a[4]*b[1] 2.1048 + mull %edx 2.1049 + addl %eax, %ebp 2.1050 + movl 12(%esi), %eax 2.1051 + adcl %edx, %ebx 2.1052 + movl 8(%edi), %edx 2.1053 + adcl $0, %ecx 2.1054 + / mul a[3]*b[2] 2.1055 + mull %edx 2.1056 + addl %eax, %ebp 2.1057 + movl 8(%esi), %eax 2.1058 + adcl %edx, %ebx 2.1059 + movl 12(%edi), %edx 2.1060 + adcl $0, %ecx 2.1061 + / mul a[2]*b[3] 2.1062 + mull %edx 2.1063 + addl %eax, %ebp 2.1064 + movl 4(%esi), %eax 2.1065 + adcl %edx, %ebx 2.1066 + movl 16(%edi), %edx 2.1067 + adcl $0, %ecx 2.1068 + / mul a[1]*b[4] 2.1069 + mull %edx 2.1070 + addl %eax, %ebp 2.1071 + movl (%esi), %eax 2.1072 + adcl %edx, %ebx 2.1073 + movl 20(%edi), %edx 2.1074 + adcl $0, %ecx 2.1075 + / mul a[0]*b[5] 2.1076 + mull %edx 2.1077 + addl %eax, %ebp 2.1078 + movl 20(%esp), %eax 2.1079 + adcl %edx, %ebx 2.1080 + movl (%edi), %edx 2.1081 + adcl $0, %ecx 2.1082 + movl %ebp, 20(%eax) 2.1083 + movl 24(%esi), %eax 2.1084 + / saved r[5] 2.1085 + / ################## Calculate word 6 2.1086 + xorl %ebp, %ebp 2.1087 + / mul a[6]*b[0] 2.1088 + mull %edx 2.1089 + addl %eax, %ebx 2.1090 + movl 20(%esi), %eax 2.1091 + adcl %edx, %ecx 2.1092 + movl 4(%edi), %edx 2.1093 + adcl $0, %ebp 2.1094 + / mul a[5]*b[1] 2.1095 + mull %edx 2.1096 + addl %eax, %ebx 2.1097 + movl 16(%esi), %eax 2.1098 + adcl %edx, %ecx 2.1099 + movl 8(%edi), %edx 2.1100 + adcl $0, %ebp 2.1101 + / mul a[4]*b[2] 2.1102 + mull %edx 2.1103 + addl %eax, %ebx 2.1104 + movl 12(%esi), %eax 2.1105 + adcl %edx, %ecx 2.1106 + movl 12(%edi), %edx 2.1107 + adcl $0, %ebp 2.1108 + / mul a[3]*b[3] 2.1109 + mull %edx 2.1110 + addl %eax, %ebx 2.1111 + movl 8(%esi), %eax 2.1112 + adcl %edx, %ecx 2.1113 + movl 16(%edi), %edx 2.1114 + adcl $0, %ebp 2.1115 + / mul a[2]*b[4] 2.1116 + mull %edx 2.1117 + addl %eax, %ebx 2.1118 + movl 4(%esi), %eax 2.1119 + adcl %edx, %ecx 2.1120 + movl 20(%edi), %edx 2.1121 + adcl $0, %ebp 2.1122 + / mul a[1]*b[5] 2.1123 + mull %edx 2.1124 + addl %eax, %ebx 2.1125 + movl (%esi), %eax 2.1126 + adcl %edx, %ecx 2.1127 + movl 24(%edi), %edx 2.1128 + adcl $0, %ebp 2.1129 + / mul a[0]*b[6] 2.1130 + mull %edx 2.1131 + addl %eax, %ebx 2.1132 + movl 20(%esp), %eax 2.1133 + adcl %edx, %ecx 2.1134 + movl (%edi), %edx 2.1135 + adcl $0, %ebp 2.1136 + movl %ebx, 24(%eax) 2.1137 + movl 28(%esi), %eax 2.1138 + / saved r[6] 2.1139 + / ################## Calculate word 7 2.1140 + xorl %ebx, %ebx 2.1141 + / mul a[7]*b[0] 2.1142 + mull %edx 2.1143 + addl %eax, %ecx 2.1144 + movl 24(%esi), %eax 2.1145 + adcl %edx, %ebp 2.1146 + movl 4(%edi), %edx 2.1147 + adcl $0, %ebx 2.1148 + / mul a[6]*b[1] 2.1149 + mull %edx 2.1150 + addl %eax, %ecx 2.1151 + movl 20(%esi), %eax 2.1152 + adcl %edx, %ebp 2.1153 + movl 8(%edi), %edx 2.1154 + adcl $0, %ebx 2.1155 + / mul a[5]*b[2] 2.1156 + mull %edx 2.1157 + addl %eax, %ecx 2.1158 + movl 16(%esi), %eax 2.1159 + adcl %edx, %ebp 2.1160 + movl 12(%edi), %edx 2.1161 + adcl $0, %ebx 2.1162 + / mul a[4]*b[3] 2.1163 + mull %edx 2.1164 + addl %eax, %ecx 2.1165 + movl 12(%esi), %eax 2.1166 + adcl %edx, %ebp 2.1167 + movl 16(%edi), %edx 2.1168 + adcl $0, %ebx 2.1169 + / mul a[3]*b[4] 2.1170 + mull %edx 2.1171 + addl %eax, %ecx 2.1172 + movl 8(%esi), %eax 2.1173 + adcl %edx, %ebp 2.1174 + movl 20(%edi), %edx 2.1175 + adcl $0, %ebx 2.1176 + / mul a[2]*b[5] 2.1177 + mull %edx 2.1178 + addl %eax, %ecx 2.1179 + movl 4(%esi), %eax 2.1180 + adcl %edx, %ebp 2.1181 + movl 24(%edi), %edx 2.1182 + adcl $0, %ebx 2.1183 + / mul a[1]*b[6] 2.1184 + mull %edx 2.1185 + addl %eax, %ecx 2.1186 + movl (%esi), %eax 2.1187 + adcl %edx, %ebp 2.1188 + movl 28(%edi), %edx 2.1189 + adcl $0, %ebx 2.1190 + / mul a[0]*b[7] 2.1191 + mull %edx 2.1192 + addl %eax, %ecx 2.1193 + movl 20(%esp), %eax 2.1194 + adcl %edx, %ebp 2.1195 + movl 4(%edi), %edx 2.1196 + adcl $0, %ebx 2.1197 + movl %ecx, 28(%eax) 2.1198 + movl 28(%esi), %eax 2.1199 + / saved r[7] 2.1200 + / ################## Calculate word 8 2.1201 + xorl %ecx, %ecx 2.1202 + / mul a[7]*b[1] 2.1203 + mull %edx 2.1204 + addl %eax, %ebp 2.1205 + movl 24(%esi), %eax 2.1206 + adcl %edx, %ebx 2.1207 + movl 8(%edi), %edx 2.1208 + adcl $0, %ecx 2.1209 + / mul a[6]*b[2] 2.1210 + mull %edx 2.1211 + addl %eax, %ebp 2.1212 + movl 20(%esi), %eax 2.1213 + adcl %edx, %ebx 2.1214 + movl 12(%edi), %edx 2.1215 + adcl $0, %ecx 2.1216 + / mul a[5]*b[3] 2.1217 + mull %edx 2.1218 + addl %eax, %ebp 2.1219 + movl 16(%esi), %eax 2.1220 + adcl %edx, %ebx 2.1221 + movl 16(%edi), %edx 2.1222 + adcl $0, %ecx 2.1223 + / mul a[4]*b[4] 2.1224 + mull %edx 2.1225 + addl %eax, %ebp 2.1226 + movl 12(%esi), %eax 2.1227 + adcl %edx, %ebx 2.1228 + movl 20(%edi), %edx 2.1229 + adcl $0, %ecx 2.1230 + / mul a[3]*b[5] 2.1231 + mull %edx 2.1232 + addl %eax, %ebp 2.1233 + movl 8(%esi), %eax 2.1234 + adcl %edx, %ebx 2.1235 + movl 24(%edi), %edx 2.1236 + adcl $0, %ecx 2.1237 + / mul a[2]*b[6] 2.1238 + mull %edx 2.1239 + addl %eax, %ebp 2.1240 + movl 4(%esi), %eax 2.1241 + adcl %edx, %ebx 2.1242 + movl 28(%edi), %edx 2.1243 + adcl $0, %ecx 2.1244 + / mul a[1]*b[7] 2.1245 + mull %edx 2.1246 + addl %eax, %ebp 2.1247 + movl 20(%esp), %eax 2.1248 + adcl %edx, %ebx 2.1249 + movl 8(%edi), %edx 2.1250 + adcl $0, %ecx 2.1251 + movl %ebp, 32(%eax) 2.1252 + movl 28(%esi), %eax 2.1253 + / saved r[8] 2.1254 + / ################## Calculate word 9 2.1255 + xorl %ebp, %ebp 2.1256 + / mul a[7]*b[2] 2.1257 + mull %edx 2.1258 + addl %eax, %ebx 2.1259 + movl 24(%esi), %eax 2.1260 + adcl %edx, %ecx 2.1261 + movl 12(%edi), %edx 2.1262 + adcl $0, %ebp 2.1263 + / mul a[6]*b[3] 2.1264 + mull %edx 2.1265 + addl %eax, %ebx 2.1266 + movl 20(%esi), %eax 2.1267 + adcl %edx, %ecx 2.1268 + movl 16(%edi), %edx 2.1269 + adcl $0, %ebp 2.1270 + / mul a[5]*b[4] 2.1271 + mull %edx 2.1272 + addl %eax, %ebx 2.1273 + movl 16(%esi), %eax 2.1274 + adcl %edx, %ecx 2.1275 + movl 20(%edi), %edx 2.1276 + adcl $0, %ebp 2.1277 + / mul a[4]*b[5] 2.1278 + mull %edx 2.1279 + addl %eax, %ebx 2.1280 + movl 12(%esi), %eax 2.1281 + adcl %edx, %ecx 2.1282 + movl 24(%edi), %edx 2.1283 + adcl $0, %ebp 2.1284 + / mul a[3]*b[6] 2.1285 + mull %edx 2.1286 + addl %eax, %ebx 2.1287 + movl 8(%esi), %eax 2.1288 + adcl %edx, %ecx 2.1289 + movl 28(%edi), %edx 2.1290 + adcl $0, %ebp 2.1291 + / mul a[2]*b[7] 2.1292 + mull %edx 2.1293 + addl %eax, %ebx 2.1294 + movl 20(%esp), %eax 2.1295 + adcl %edx, %ecx 2.1296 + movl 12(%edi), %edx 2.1297 + adcl $0, %ebp 2.1298 + movl %ebx, 36(%eax) 2.1299 + movl 28(%esi), %eax 2.1300 + / saved r[9] 2.1301 + / ################## Calculate word 10 2.1302 + xorl %ebx, %ebx 2.1303 + / mul a[7]*b[3] 2.1304 + mull %edx 2.1305 + addl %eax, %ecx 2.1306 + movl 24(%esi), %eax 2.1307 + adcl %edx, %ebp 2.1308 + movl 16(%edi), %edx 2.1309 + adcl $0, %ebx 2.1310 + / mul a[6]*b[4] 2.1311 + mull %edx 2.1312 + addl %eax, %ecx 2.1313 + movl 20(%esi), %eax 2.1314 + adcl %edx, %ebp 2.1315 + movl 20(%edi), %edx 2.1316 + adcl $0, %ebx 2.1317 + / mul a[5]*b[5] 2.1318 + mull %edx 2.1319 + addl %eax, %ecx 2.1320 + movl 16(%esi), %eax 2.1321 + adcl %edx, %ebp 2.1322 + movl 24(%edi), %edx 2.1323 + adcl $0, %ebx 2.1324 + / mul a[4]*b[6] 2.1325 + mull %edx 2.1326 + addl %eax, %ecx 2.1327 + movl 12(%esi), %eax 2.1328 + adcl %edx, %ebp 2.1329 + movl 28(%edi), %edx 2.1330 + adcl $0, %ebx 2.1331 + / mul a[3]*b[7] 2.1332 + mull %edx 2.1333 + addl %eax, %ecx 2.1334 + movl 20(%esp), %eax 2.1335 + adcl %edx, %ebp 2.1336 + movl 16(%edi), %edx 2.1337 + adcl $0, %ebx 2.1338 + movl %ecx, 40(%eax) 2.1339 + movl 28(%esi), %eax 2.1340 + / saved r[10] 2.1341 + / ################## Calculate word 11 2.1342 + xorl %ecx, %ecx 2.1343 + / mul a[7]*b[4] 2.1344 + mull %edx 2.1345 + addl %eax, %ebp 2.1346 + movl 24(%esi), %eax 2.1347 + adcl %edx, %ebx 2.1348 + movl 20(%edi), %edx 2.1349 + adcl $0, %ecx 2.1350 + / mul a[6]*b[5] 2.1351 + mull %edx 2.1352 + addl %eax, %ebp 2.1353 + movl 20(%esi), %eax 2.1354 + adcl %edx, %ebx 2.1355 + movl 24(%edi), %edx 2.1356 + adcl $0, %ecx 2.1357 + / mul a[5]*b[6] 2.1358 + mull %edx 2.1359 + addl %eax, %ebp 2.1360 + movl 16(%esi), %eax 2.1361 + adcl %edx, %ebx 2.1362 + movl 28(%edi), %edx 2.1363 + adcl $0, %ecx 2.1364 + / mul a[4]*b[7] 2.1365 + mull %edx 2.1366 + addl %eax, %ebp 2.1367 + movl 20(%esp), %eax 2.1368 + adcl %edx, %ebx 2.1369 + movl 20(%edi), %edx 2.1370 + adcl $0, %ecx 2.1371 + movl %ebp, 44(%eax) 2.1372 + movl 28(%esi), %eax 2.1373 + / saved r[11] 2.1374 + / ################## Calculate word 12 2.1375 + xorl %ebp, %ebp 2.1376 + / mul a[7]*b[5] 2.1377 + mull %edx 2.1378 + addl %eax, %ebx 2.1379 + movl 24(%esi), %eax 2.1380 + adcl %edx, %ecx 2.1381 + movl 24(%edi), %edx 2.1382 + adcl $0, %ebp 2.1383 + / mul a[6]*b[6] 2.1384 + mull %edx 2.1385 + addl %eax, %ebx 2.1386 + movl 20(%esi), %eax 2.1387 + adcl %edx, %ecx 2.1388 + movl 28(%edi), %edx 2.1389 + adcl $0, %ebp 2.1390 + / mul a[5]*b[7] 2.1391 + mull %edx 2.1392 + addl %eax, %ebx 2.1393 + movl 20(%esp), %eax 2.1394 + adcl %edx, %ecx 2.1395 + movl 24(%edi), %edx 2.1396 + adcl $0, %ebp 2.1397 + movl %ebx, 48(%eax) 2.1398 + movl 28(%esi), %eax 2.1399 + / saved r[12] 2.1400 + / ################## Calculate word 13 2.1401 + xorl %ebx, %ebx 2.1402 + / mul a[7]*b[6] 2.1403 + mull %edx 2.1404 + addl %eax, %ecx 2.1405 + movl 24(%esi), %eax 2.1406 + adcl %edx, %ebp 2.1407 + movl 28(%edi), %edx 2.1408 + adcl $0, %ebx 2.1409 + / mul a[6]*b[7] 2.1410 + mull %edx 2.1411 + addl %eax, %ecx 2.1412 + movl 20(%esp), %eax 2.1413 + adcl %edx, %ebp 2.1414 + movl 28(%edi), %edx 2.1415 + adcl $0, %ebx 2.1416 + movl %ecx, 52(%eax) 2.1417 + movl 28(%esi), %eax 2.1418 + / saved r[13] 2.1419 + / ################## Calculate word 14 2.1420 + xorl %ecx, %ecx 2.1421 + / mul a[7]*b[7] 2.1422 + mull %edx 2.1423 + addl %eax, %ebp 2.1424 + movl 20(%esp), %eax 2.1425 + adcl %edx, %ebx 2.1426 + adcl $0, %ecx 2.1427 + movl %ebp, 56(%eax) 2.1428 + / saved r[14] 2.1429 + / save r[15] 2.1430 + movl %ebx, 60(%eax) 2.1431 + popl %ebx 2.1432 + popl %ebp 2.1433 + popl %edi 2.1434 + popl %esi 2.1435 + ret 2.1436 +.L_bn_mul_comba8_end: 2.1437 + .size bn_mul_comba8,.L_bn_mul_comba8_end-bn_mul_comba8 2.1438 +.ident "desasm.pl" 2.1439 +.text 2.1440 + .align 16 2.1441 +.globl bn_mul_comba4 2.1442 + .type bn_mul_comba4,@function 2.1443 +bn_mul_comba4: 2.1444 + pushl %esi 2.1445 + movl 12(%esp), %esi 2.1446 + pushl %edi 2.1447 + movl 20(%esp), %edi 2.1448 + pushl %ebp 2.1449 + pushl %ebx 2.1450 + xorl %ebx, %ebx 2.1451 + movl (%esi), %eax 2.1452 + xorl %ecx, %ecx 2.1453 + movl (%edi), %edx 2.1454 + / ################## Calculate word 0 2.1455 + xorl %ebp, %ebp 2.1456 + / mul a[0]*b[0] 2.1457 + mull %edx 2.1458 + addl %eax, %ebx 2.1459 + movl 20(%esp), %eax 2.1460 + adcl %edx, %ecx 2.1461 + movl (%edi), %edx 2.1462 + adcl $0, %ebp 2.1463 + movl %ebx, (%eax) 2.1464 + movl 4(%esi), %eax 2.1465 + / saved r[0] 2.1466 + / ################## Calculate word 1 2.1467 + xorl %ebx, %ebx 2.1468 + / mul a[1]*b[0] 2.1469 + mull %edx 2.1470 + addl %eax, %ecx 2.1471 + movl (%esi), %eax 2.1472 + adcl %edx, %ebp 2.1473 + movl 4(%edi), %edx 2.1474 + adcl $0, %ebx 2.1475 + / mul a[0]*b[1] 2.1476 + mull %edx 2.1477 + addl %eax, %ecx 2.1478 + movl 20(%esp), %eax 2.1479 + adcl %edx, %ebp 2.1480 + movl (%edi), %edx 2.1481 + adcl $0, %ebx 2.1482 + movl %ecx, 4(%eax) 2.1483 + movl 8(%esi), %eax 2.1484 + / saved r[1] 2.1485 + / ################## Calculate word 2 2.1486 + xorl %ecx, %ecx 2.1487 + / mul a[2]*b[0] 2.1488 + mull %edx 2.1489 + addl %eax, %ebp 2.1490 + movl 4(%esi), %eax 2.1491 + adcl %edx, %ebx 2.1492 + movl 4(%edi), %edx 2.1493 + adcl $0, %ecx 2.1494 + / mul a[1]*b[1] 2.1495 + mull %edx 2.1496 + addl %eax, %ebp 2.1497 + movl (%esi), %eax 2.1498 + adcl %edx, %ebx 2.1499 + movl 8(%edi), %edx 2.1500 + adcl $0, %ecx 2.1501 + / mul a[0]*b[2] 2.1502 + mull %edx 2.1503 + addl %eax, %ebp 2.1504 + movl 20(%esp), %eax 2.1505 + adcl %edx, %ebx 2.1506 + movl (%edi), %edx 2.1507 + adcl $0, %ecx 2.1508 + movl %ebp, 8(%eax) 2.1509 + movl 12(%esi), %eax 2.1510 + / saved r[2] 2.1511 + / ################## Calculate word 3 2.1512 + xorl %ebp, %ebp 2.1513 + / mul a[3]*b[0] 2.1514 + mull %edx 2.1515 + addl %eax, %ebx 2.1516 + movl 8(%esi), %eax 2.1517 + adcl %edx, %ecx 2.1518 + movl 4(%edi), %edx 2.1519 + adcl $0, %ebp 2.1520 + / mul a[2]*b[1] 2.1521 + mull %edx 2.1522 + addl %eax, %ebx 2.1523 + movl 4(%esi), %eax 2.1524 + adcl %edx, %ecx 2.1525 + movl 8(%edi), %edx 2.1526 + adcl $0, %ebp 2.1527 + / mul a[1]*b[2] 2.1528 + mull %edx 2.1529 + addl %eax, %ebx 2.1530 + movl (%esi), %eax 2.1531 + adcl %edx, %ecx 2.1532 + movl 12(%edi), %edx 2.1533 + adcl $0, %ebp 2.1534 + / mul a[0]*b[3] 2.1535 + mull %edx 2.1536 + addl %eax, %ebx 2.1537 + movl 20(%esp), %eax 2.1538 + adcl %edx, %ecx 2.1539 + movl 4(%edi), %edx 2.1540 + adcl $0, %ebp 2.1541 + movl %ebx, 12(%eax) 2.1542 + movl 12(%esi), %eax 2.1543 + / saved r[3] 2.1544 + / ################## Calculate word 4 2.1545 + xorl %ebx, %ebx 2.1546 + / mul a[3]*b[1] 2.1547 + mull %edx 2.1548 + addl %eax, %ecx 2.1549 + movl 8(%esi), %eax 2.1550 + adcl %edx, %ebp 2.1551 + movl 8(%edi), %edx 2.1552 + adcl $0, %ebx 2.1553 + / mul a[2]*b[2] 2.1554 + mull %edx 2.1555 + addl %eax, %ecx 2.1556 + movl 4(%esi), %eax 2.1557 + adcl %edx, %ebp 2.1558 + movl 12(%edi), %edx 2.1559 + adcl $0, %ebx 2.1560 + / mul a[1]*b[3] 2.1561 + mull %edx 2.1562 + addl %eax, %ecx 2.1563 + movl 20(%esp), %eax 2.1564 + adcl %edx, %ebp 2.1565 + movl 8(%edi), %edx 2.1566 + adcl $0, %ebx 2.1567 + movl %ecx, 16(%eax) 2.1568 + movl 12(%esi), %eax 2.1569 + / saved r[4] 2.1570 + / ################## Calculate word 5 2.1571 + xorl %ecx, %ecx 2.1572 + / mul a[3]*b[2] 2.1573 + mull %edx 2.1574 + addl %eax, %ebp 2.1575 + movl 8(%esi), %eax 2.1576 + adcl %edx, %ebx 2.1577 + movl 12(%edi), %edx 2.1578 + adcl $0, %ecx 2.1579 + / mul a[2]*b[3] 2.1580 + mull %edx 2.1581 + addl %eax, %ebp 2.1582 + movl 20(%esp), %eax 2.1583 + adcl %edx, %ebx 2.1584 + movl 12(%edi), %edx 2.1585 + adcl $0, %ecx 2.1586 + movl %ebp, 20(%eax) 2.1587 + movl 12(%esi), %eax 2.1588 + / saved r[5] 2.1589 + / ################## Calculate word 6 2.1590 + xorl %ebp, %ebp 2.1591 + / mul a[3]*b[3] 2.1592 + mull %edx 2.1593 + addl %eax, %ebx 2.1594 + movl 20(%esp), %eax 2.1595 + adcl %edx, %ecx 2.1596 + adcl $0, %ebp 2.1597 + movl %ebx, 24(%eax) 2.1598 + / saved r[6] 2.1599 + / save r[7] 2.1600 + movl %ecx, 28(%eax) 2.1601 + popl %ebx 2.1602 + popl %ebp 2.1603 + popl %edi 2.1604 + popl %esi 2.1605 + ret 2.1606 +.L_bn_mul_comba4_end: 2.1607 + .size bn_mul_comba4,.L_bn_mul_comba4_end-bn_mul_comba4 2.1608 +.ident "desasm.pl" 2.1609 +.text 2.1610 + .align 16 2.1611 +.globl bn_sqr_comba8 2.1612 + .type bn_sqr_comba8,@function 2.1613 +bn_sqr_comba8: 2.1614 + pushl %esi 2.1615 + pushl %edi 2.1616 + pushl %ebp 2.1617 + pushl %ebx 2.1618 + movl 20(%esp), %edi 2.1619 + movl 24(%esp), %esi 2.1620 + xorl %ebx, %ebx 2.1621 + xorl %ecx, %ecx 2.1622 + movl (%esi), %eax 2.1623 + / ############### Calculate word 0 2.1624 + xorl %ebp, %ebp 2.1625 + / sqr a[0]*a[0] 2.1626 + mull %eax 2.1627 + addl %eax, %ebx 2.1628 + adcl %edx, %ecx 2.1629 + movl (%esi), %edx 2.1630 + adcl $0, %ebp 2.1631 + movl %ebx, (%edi) 2.1632 + movl 4(%esi), %eax 2.1633 + / saved r[0] 2.1634 + / ############### Calculate word 1 2.1635 + xorl %ebx, %ebx 2.1636 + / sqr a[1]*a[0] 2.1637 + mull %edx 2.1638 + addl %eax, %eax 2.1639 + adcl %edx, %edx 2.1640 + adcl $0, %ebx 2.1641 + addl %eax, %ecx 2.1642 + adcl %edx, %ebp 2.1643 + movl 8(%esi), %eax 2.1644 + adcl $0, %ebx 2.1645 + movl %ecx, 4(%edi) 2.1646 + movl (%esi), %edx 2.1647 + / saved r[1] 2.1648 + / ############### Calculate word 2 2.1649 + xorl %ecx, %ecx 2.1650 + / sqr a[2]*a[0] 2.1651 + mull %edx 2.1652 + addl %eax, %eax 2.1653 + adcl %edx, %edx 2.1654 + adcl $0, %ecx 2.1655 + addl %eax, %ebp 2.1656 + adcl %edx, %ebx 2.1657 + movl 4(%esi), %eax 2.1658 + adcl $0, %ecx 2.1659 + / sqr a[1]*a[1] 2.1660 + mull %eax 2.1661 + addl %eax, %ebp 2.1662 + adcl %edx, %ebx 2.1663 + movl (%esi), %edx 2.1664 + adcl $0, %ecx 2.1665 + movl %ebp, 8(%edi) 2.1666 + movl 12(%esi), %eax 2.1667 + / saved r[2] 2.1668 + / ############### Calculate word 3 2.1669 + xorl %ebp, %ebp 2.1670 + / sqr a[3]*a[0] 2.1671 + mull %edx 2.1672 + addl %eax, %eax 2.1673 + adcl %edx, %edx 2.1674 + adcl $0, %ebp 2.1675 + addl %eax, %ebx 2.1676 + adcl %edx, %ecx 2.1677 + movl 8(%esi), %eax 2.1678 + adcl $0, %ebp 2.1679 + movl 4(%esi), %edx 2.1680 + / sqr a[2]*a[1] 2.1681 + mull %edx 2.1682 + addl %eax, %eax 2.1683 + adcl %edx, %edx 2.1684 + adcl $0, %ebp 2.1685 + addl %eax, %ebx 2.1686 + adcl %edx, %ecx 2.1687 + movl 16(%esi), %eax 2.1688 + adcl $0, %ebp 2.1689 + movl %ebx, 12(%edi) 2.1690 + movl (%esi), %edx 2.1691 + / saved r[3] 2.1692 + / ############### Calculate word 4 2.1693 + xorl %ebx, %ebx 2.1694 + / sqr a[4]*a[0] 2.1695 + mull %edx 2.1696 + addl %eax, %eax 2.1697 + adcl %edx, %edx 2.1698 + adcl $0, %ebx 2.1699 + addl %eax, %ecx 2.1700 + adcl %edx, %ebp 2.1701 + movl 12(%esi), %eax 2.1702 + adcl $0, %ebx 2.1703 + movl 4(%esi), %edx 2.1704 + / sqr a[3]*a[1] 2.1705 + mull %edx 2.1706 + addl %eax, %eax 2.1707 + adcl %edx, %edx 2.1708 + adcl $0, %ebx 2.1709 + addl %eax, %ecx 2.1710 + adcl %edx, %ebp 2.1711 + movl 8(%esi), %eax 2.1712 + adcl $0, %ebx 2.1713 + / sqr a[2]*a[2] 2.1714 + mull %eax 2.1715 + addl %eax, %ecx 2.1716 + adcl %edx, %ebp 2.1717 + movl (%esi), %edx 2.1718 + adcl $0, %ebx 2.1719 + movl %ecx, 16(%edi) 2.1720 + movl 20(%esi), %eax 2.1721 + / saved r[4] 2.1722 + / ############### Calculate word 5 2.1723 + xorl %ecx, %ecx 2.1724 + / sqr a[5]*a[0] 2.1725 + mull %edx 2.1726 + addl %eax, %eax 2.1727 + adcl %edx, %edx 2.1728 + adcl $0, %ecx 2.1729 + addl %eax, %ebp 2.1730 + adcl %edx, %ebx 2.1731 + movl 16(%esi), %eax 2.1732 + adcl $0, %ecx 2.1733 + movl 4(%esi), %edx 2.1734 + / sqr a[4]*a[1] 2.1735 + mull %edx 2.1736 + addl %eax, %eax 2.1737 + adcl %edx, %edx 2.1738 + adcl $0, %ecx 2.1739 + addl %eax, %ebp 2.1740 + adcl %edx, %ebx 2.1741 + movl 12(%esi), %eax 2.1742 + adcl $0, %ecx 2.1743 + movl 8(%esi), %edx 2.1744 + / sqr a[3]*a[2] 2.1745 + mull %edx 2.1746 + addl %eax, %eax 2.1747 + adcl %edx, %edx 2.1748 + adcl $0, %ecx 2.1749 + addl %eax, %ebp 2.1750 + adcl %edx, %ebx 2.1751 + movl 24(%esi), %eax 2.1752 + adcl $0, %ecx 2.1753 + movl %ebp, 20(%edi) 2.1754 + movl (%esi), %edx 2.1755 + / saved r[5] 2.1756 + / ############### Calculate word 6 2.1757 + xorl %ebp, %ebp 2.1758 + / sqr a[6]*a[0] 2.1759 + mull %edx 2.1760 + addl %eax, %eax 2.1761 + adcl %edx, %edx 2.1762 + adcl $0, %ebp 2.1763 + addl %eax, %ebx 2.1764 + adcl %edx, %ecx 2.1765 + movl 20(%esi), %eax 2.1766 + adcl $0, %ebp 2.1767 + movl 4(%esi), %edx 2.1768 + / sqr a[5]*a[1] 2.1769 + mull %edx 2.1770 + addl %eax, %eax 2.1771 + adcl %edx, %edx 2.1772 + adcl $0, %ebp 2.1773 + addl %eax, %ebx 2.1774 + adcl %edx, %ecx 2.1775 + movl 16(%esi), %eax 2.1776 + adcl $0, %ebp 2.1777 + movl 8(%esi), %edx 2.1778 + / sqr a[4]*a[2] 2.1779 + mull %edx 2.1780 + addl %eax, %eax 2.1781 + adcl %edx, %edx 2.1782 + adcl $0, %ebp 2.1783 + addl %eax, %ebx 2.1784 + adcl %edx, %ecx 2.1785 + movl 12(%esi), %eax 2.1786 + adcl $0, %ebp 2.1787 + / sqr a[3]*a[3] 2.1788 + mull %eax 2.1789 + addl %eax, %ebx 2.1790 + adcl %edx, %ecx 2.1791 + movl (%esi), %edx 2.1792 + adcl $0, %ebp 2.1793 + movl %ebx, 24(%edi) 2.1794 + movl 28(%esi), %eax 2.1795 + / saved r[6] 2.1796 + / ############### Calculate word 7 2.1797 + xorl %ebx, %ebx 2.1798 + / sqr a[7]*a[0] 2.1799 + mull %edx 2.1800 + addl %eax, %eax 2.1801 + adcl %edx, %edx 2.1802 + adcl $0, %ebx 2.1803 + addl %eax, %ecx 2.1804 + adcl %edx, %ebp 2.1805 + movl 24(%esi), %eax 2.1806 + adcl $0, %ebx 2.1807 + movl 4(%esi), %edx 2.1808 + / sqr a[6]*a[1] 2.1809 + mull %edx 2.1810 + addl %eax, %eax 2.1811 + adcl %edx, %edx 2.1812 + adcl $0, %ebx 2.1813 + addl %eax, %ecx 2.1814 + adcl %edx, %ebp 2.1815 + movl 20(%esi), %eax 2.1816 + adcl $0, %ebx 2.1817 + movl 8(%esi), %edx 2.1818 + / sqr a[5]*a[2] 2.1819 + mull %edx 2.1820 + addl %eax, %eax 2.1821 + adcl %edx, %edx 2.1822 + adcl $0, %ebx 2.1823 + addl %eax, %ecx 2.1824 + adcl %edx, %ebp 2.1825 + movl 16(%esi), %eax 2.1826 + adcl $0, %ebx 2.1827 + movl 12(%esi), %edx 2.1828 + / sqr a[4]*a[3] 2.1829 + mull %edx 2.1830 + addl %eax, %eax 2.1831 + adcl %edx, %edx 2.1832 + adcl $0, %ebx 2.1833 + addl %eax, %ecx 2.1834 + adcl %edx, %ebp 2.1835 + movl 28(%esi), %eax 2.1836 + adcl $0, %ebx 2.1837 + movl %ecx, 28(%edi) 2.1838 + movl 4(%esi), %edx 2.1839 + / saved r[7] 2.1840 + / ############### Calculate word 8 2.1841 + xorl %ecx, %ecx 2.1842 + / sqr a[7]*a[1] 2.1843 + mull %edx 2.1844 + addl %eax, %eax 2.1845 + adcl %edx, %edx 2.1846 + adcl $0, %ecx 2.1847 + addl %eax, %ebp 2.1848 + adcl %edx, %ebx 2.1849 + movl 24(%esi), %eax 2.1850 + adcl $0, %ecx 2.1851 + movl 8(%esi), %edx 2.1852 + / sqr a[6]*a[2] 2.1853 + mull %edx 2.1854 + addl %eax, %eax 2.1855 + adcl %edx, %edx 2.1856 + adcl $0, %ecx 2.1857 + addl %eax, %ebp 2.1858 + adcl %edx, %ebx 2.1859 + movl 20(%esi), %eax 2.1860 + adcl $0, %ecx 2.1861 + movl 12(%esi), %edx 2.1862 + / sqr a[5]*a[3] 2.1863 + mull %edx 2.1864 + addl %eax, %eax 2.1865 + adcl %edx, %edx 2.1866 + adcl $0, %ecx 2.1867 + addl %eax, %ebp 2.1868 + adcl %edx, %ebx 2.1869 + movl 16(%esi), %eax 2.1870 + adcl $0, %ecx 2.1871 + / sqr a[4]*a[4] 2.1872 + mull %eax 2.1873 + addl %eax, %ebp 2.1874 + adcl %edx, %ebx 2.1875 + movl 8(%esi), %edx 2.1876 + adcl $0, %ecx 2.1877 + movl %ebp, 32(%edi) 2.1878 + movl 28(%esi), %eax 2.1879 + / saved r[8] 2.1880 + / ############### Calculate word 9 2.1881 + xorl %ebp, %ebp 2.1882 + / sqr a[7]*a[2] 2.1883 + mull %edx 2.1884 + addl %eax, %eax 2.1885 + adcl %edx, %edx 2.1886 + adcl $0, %ebp 2.1887 + addl %eax, %ebx 2.1888 + adcl %edx, %ecx 2.1889 + movl 24(%esi), %eax 2.1890 + adcl $0, %ebp 2.1891 + movl 12(%esi), %edx 2.1892 + / sqr a[6]*a[3] 2.1893 + mull %edx 2.1894 + addl %eax, %eax 2.1895 + adcl %edx, %edx 2.1896 + adcl $0, %ebp 2.1897 + addl %eax, %ebx 2.1898 + adcl %edx, %ecx 2.1899 + movl 20(%esi), %eax 2.1900 + adcl $0, %ebp 2.1901 + movl 16(%esi), %edx 2.1902 + / sqr a[5]*a[4] 2.1903 + mull %edx 2.1904 + addl %eax, %eax 2.1905 + adcl %edx, %edx 2.1906 + adcl $0, %ebp 2.1907 + addl %eax, %ebx 2.1908 + adcl %edx, %ecx 2.1909 + movl 28(%esi), %eax 2.1910 + adcl $0, %ebp 2.1911 + movl %ebx, 36(%edi) 2.1912 + movl 12(%esi), %edx 2.1913 + / saved r[9] 2.1914 + / ############### Calculate word 10 2.1915 + xorl %ebx, %ebx 2.1916 + / sqr a[7]*a[3] 2.1917 + mull %edx 2.1918 + addl %eax, %eax 2.1919 + adcl %edx, %edx 2.1920 + adcl $0, %ebx 2.1921 + addl %eax, %ecx 2.1922 + adcl %edx, %ebp 2.1923 + movl 24(%esi), %eax 2.1924 + adcl $0, %ebx 2.1925 + movl 16(%esi), %edx 2.1926 + / sqr a[6]*a[4] 2.1927 + mull %edx 2.1928 + addl %eax, %eax 2.1929 + adcl %edx, %edx 2.1930 + adcl $0, %ebx 2.1931 + addl %eax, %ecx 2.1932 + adcl %edx, %ebp 2.1933 + movl 20(%esi), %eax 2.1934 + adcl $0, %ebx 2.1935 + / sqr a[5]*a[5] 2.1936 + mull %eax 2.1937 + addl %eax, %ecx 2.1938 + adcl %edx, %ebp 2.1939 + movl 16(%esi), %edx 2.1940 + adcl $0, %ebx 2.1941 + movl %ecx, 40(%edi) 2.1942 + movl 28(%esi), %eax 2.1943 + / saved r[10] 2.1944 + / ############### Calculate word 11 2.1945 + xorl %ecx, %ecx 2.1946 + / sqr a[7]*a[4] 2.1947 + mull %edx 2.1948 + addl %eax, %eax 2.1949 + adcl %edx, %edx 2.1950 + adcl $0, %ecx 2.1951 + addl %eax, %ebp 2.1952 + adcl %edx, %ebx 2.1953 + movl 24(%esi), %eax 2.1954 + adcl $0, %ecx 2.1955 + movl 20(%esi), %edx 2.1956 + / sqr a[6]*a[5] 2.1957 + mull %edx 2.1958 + addl %eax, %eax 2.1959 + adcl %edx, %edx 2.1960 + adcl $0, %ecx 2.1961 + addl %eax, %ebp 2.1962 + adcl %edx, %ebx 2.1963 + movl 28(%esi), %eax 2.1964 + adcl $0, %ecx 2.1965 + movl %ebp, 44(%edi) 2.1966 + movl 20(%esi), %edx 2.1967 + / saved r[11] 2.1968 + / ############### Calculate word 12 2.1969 + xorl %ebp, %ebp 2.1970 + / sqr a[7]*a[5] 2.1971 + mull %edx 2.1972 + addl %eax, %eax 2.1973 + adcl %edx, %edx 2.1974 + adcl $0, %ebp 2.1975 + addl %eax, %ebx 2.1976 + adcl %edx, %ecx 2.1977 + movl 24(%esi), %eax 2.1978 + adcl $0, %ebp 2.1979 + / sqr a[6]*a[6] 2.1980 + mull %eax 2.1981 + addl %eax, %ebx 2.1982 + adcl %edx, %ecx 2.1983 + movl 24(%esi), %edx 2.1984 + adcl $0, %ebp 2.1985 + movl %ebx, 48(%edi) 2.1986 + movl 28(%esi), %eax 2.1987 + / saved r[12] 2.1988 + / ############### Calculate word 13 2.1989 + xorl %ebx, %ebx 2.1990 + / sqr a[7]*a[6] 2.1991 + mull %edx 2.1992 + addl %eax, %eax 2.1993 + adcl %edx, %edx 2.1994 + adcl $0, %ebx 2.1995 + addl %eax, %ecx 2.1996 + adcl %edx, %ebp 2.1997 + movl 28(%esi), %eax 2.1998 + adcl $0, %ebx 2.1999 + movl %ecx, 52(%edi) 2.2000 + / saved r[13] 2.2001 + / ############### Calculate word 14 2.2002 + xorl %ecx, %ecx 2.2003 + / sqr a[7]*a[7] 2.2004 + mull %eax 2.2005 + addl %eax, %ebp 2.2006 + adcl %edx, %ebx 2.2007 + adcl $0, %ecx 2.2008 + movl %ebp, 56(%edi) 2.2009 + / saved r[14] 2.2010 + movl %ebx, 60(%edi) 2.2011 + popl %ebx 2.2012 + popl %ebp 2.2013 + popl %edi 2.2014 + popl %esi 2.2015 + ret 2.2016 +.L_bn_sqr_comba8_end: 2.2017 + .size bn_sqr_comba8,.L_bn_sqr_comba8_end-bn_sqr_comba8 2.2018 +.ident "desasm.pl" 2.2019 +.text 2.2020 + .align 16 2.2021 +.globl bn_sqr_comba4 2.2022 + .type bn_sqr_comba4,@function 2.2023 +bn_sqr_comba4: 2.2024 + pushl %esi 2.2025 + pushl %edi 2.2026 + pushl %ebp 2.2027 + pushl %ebx 2.2028 + movl 20(%esp), %edi 2.2029 + movl 24(%esp), %esi 2.2030 + xorl %ebx, %ebx 2.2031 + xorl %ecx, %ecx 2.2032 + movl (%esi), %eax 2.2033 + / ############### Calculate word 0 2.2034 + xorl %ebp, %ebp 2.2035 + / sqr a[0]*a[0] 2.2036 + mull %eax 2.2037 + addl %eax, %ebx 2.2038 + adcl %edx, %ecx 2.2039 + movl (%esi), %edx 2.2040 + adcl $0, %ebp 2.2041 + movl %ebx, (%edi) 2.2042 + movl 4(%esi), %eax 2.2043 + / saved r[0] 2.2044 + / ############### Calculate word 1 2.2045 + xorl %ebx, %ebx 2.2046 + / sqr a[1]*a[0] 2.2047 + mull %edx 2.2048 + addl %eax, %eax 2.2049 + adcl %edx, %edx 2.2050 + adcl $0, %ebx 2.2051 + addl %eax, %ecx 2.2052 + adcl %edx, %ebp 2.2053 + movl 8(%esi), %eax 2.2054 + adcl $0, %ebx 2.2055 + movl %ecx, 4(%edi) 2.2056 + movl (%esi), %edx 2.2057 + / saved r[1] 2.2058 + / ############### Calculate word 2 2.2059 + xorl %ecx, %ecx 2.2060 + / sqr a[2]*a[0] 2.2061 + mull %edx 2.2062 + addl %eax, %eax 2.2063 + adcl %edx, %edx 2.2064 + adcl $0, %ecx 2.2065 + addl %eax, %ebp 2.2066 + adcl %edx, %ebx 2.2067 + movl 4(%esi), %eax 2.2068 + adcl $0, %ecx 2.2069 + / sqr a[1]*a[1] 2.2070 + mull %eax 2.2071 + addl %eax, %ebp 2.2072 + adcl %edx, %ebx 2.2073 + movl (%esi), %edx 2.2074 + adcl $0, %ecx 2.2075 + movl %ebp, 8(%edi) 2.2076 + movl 12(%esi), %eax 2.2077 + / saved r[2] 2.2078 + / ############### Calculate word 3 2.2079 + xorl %ebp, %ebp 2.2080 + / sqr a[3]*a[0] 2.2081 + mull %edx 2.2082 + addl %eax, %eax 2.2083 + adcl %edx, %edx 2.2084 + adcl $0, %ebp 2.2085 + addl %eax, %ebx 2.2086 + adcl %edx, %ecx 2.2087 + movl 8(%esi), %eax 2.2088 + adcl $0, %ebp 2.2089 + movl 4(%esi), %edx 2.2090 + / sqr a[2]*a[1] 2.2091 + mull %edx 2.2092 + addl %eax, %eax 2.2093 + adcl %edx, %edx 2.2094 + adcl $0, %ebp 2.2095 + addl %eax, %ebx 2.2096 + adcl %edx, %ecx 2.2097 + movl 12(%esi), %eax 2.2098 + adcl $0, %ebp 2.2099 + movl %ebx, 12(%edi) 2.2100 + movl 4(%esi), %edx 2.2101 + / saved r[3] 2.2102 + / ############### Calculate word 4 2.2103 + xorl %ebx, %ebx 2.2104 + / sqr a[3]*a[1] 2.2105 + mull %edx 2.2106 + addl %eax, %eax 2.2107 + adcl %edx, %edx 2.2108 + adcl $0, %ebx 2.2109 + addl %eax, %ecx 2.2110 + adcl %edx, %ebp 2.2111 + movl 8(%esi), %eax 2.2112 + adcl $0, %ebx 2.2113 + / sqr a[2]*a[2] 2.2114 + mull %eax 2.2115 + addl %eax, %ecx 2.2116 + adcl %edx, %ebp 2.2117 + movl 8(%esi), %edx 2.2118 + adcl $0, %ebx 2.2119 + movl %ecx, 16(%edi) 2.2120 + movl 12(%esi), %eax 2.2121 + / saved r[4] 2.2122 + / ############### Calculate word 5 2.2123 + xorl %ecx, %ecx 2.2124 + / sqr a[3]*a[2] 2.2125 + mull %edx 2.2126 + addl %eax, %eax 2.2127 + adcl %edx, %edx 2.2128 + adcl $0, %ecx 2.2129 + addl %eax, %ebp 2.2130 + adcl %edx, %ebx 2.2131 + movl 12(%esi), %eax 2.2132 + adcl $0, %ecx 2.2133 + movl %ebp, 20(%edi) 2.2134 + / saved r[5] 2.2135 + / ############### Calculate word 6 2.2136 + xorl %ebp, %ebp 2.2137 + / sqr a[3]*a[3] 2.2138 + mull %eax 2.2139 + addl %eax, %ebx 2.2140 + adcl %edx, %ecx 2.2141 + adcl $0, %ebp 2.2142 + movl %ebx, 24(%edi) 2.2143 + / saved r[6] 2.2144 + movl %ecx, 28(%edi) 2.2145 + popl %ebx 2.2146 + popl %ebp 2.2147 + popl %edi 2.2148 + popl %esi 2.2149 + ret 2.2150 +.L_bn_sqr_comba4_end: 2.2151 + .size bn_sqr_comba4,.L_bn_sqr_comba4_end-bn_sqr_comba4 2.2152 +.ident "desasm.pl"
3.1 --- a/cryptlib/cryptlib.spec Tue Aug 28 18:34:05 2012 +0200 3.2 +++ b/cryptlib/cryptlib.spec Tue Aug 28 18:34:10 2012 +0200 3.3 @@ -22,9 +22,9 @@ 3.4 ## 3.5 3.6 # package version 3.7 -%define V_full 3.3.2 3.8 -%define V_comp 332 3.9 -%define V_track 332 3.10 +%define V_full 3.4.1 3.11 +%define V_comp 341 3.12 +%define V_track 341 3.13 3.14 # package information 3.15 Name: cryptlib 3.16 @@ -37,35 +37,31 @@ 3.17 Group: Cryptography 3.18 License: MIT-style 3.19 Version: %{V_full} 3.20 -Release: 20090106 3.21 +Release: 20120800 3.22 3.23 # list of sources 3.24 Source0: ftp://ftp.franken.de/pub/crypt/cryptlib/cl%{V_comp}.zip 3.25 Source1: ftp://ftp.franken.de/pub/crypt/cryptlib/manual.pdf 3.26 -Source2: bn-sol.s 3.27 +Source2: c-sol.s 3.28 Patch0: cryptlib.patch 3.29 3.30 # build information 3.31 -Prefix: %{l_prefix} 3.32 -BuildRoot: %{l_buildroot} 3.33 -BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, infozip 3.34 -PreReq: OpenPKG, openpkg >= 20040130 3.35 -AutoReq: no 3.36 -AutoReqProv: no 3.37 +BuildPreReq: OpenPKG, openpkg >= 20100101, infozip, make, gcc 3.38 +PreReq: OpenPKG, openpkg >= 20100101 3.39 3.40 %description 3.41 CryptLib is a powerful security toolkit which allows even 3.42 inexperienced crypto programmers to easily add encryption and 3.43 - authentication services to their software. The high-level interface 3.44 + authentication services to their software. The high level interface 3.45 provides anyone with the ability to add strong security capabilities 3.46 to an application in as little as half an hour, without needing 3.47 - to know any of the low-level details which make the encryption 3.48 + to know any of the low level details which make the encryption 3.49 or authentication work. Because of this, cryptlib dramatically 3.50 reduces the cost involved in adding security to new or existing 3.51 applications. CryptLib provides a standardised interface to a number 3.52 - of popular encryption algorithms, as well as providing a high-level 3.53 + of popular encryption algorithms, as well as providing a high level 3.54 interface which hides most of the implementation details and 3.55 - provides an operating-system-independent encoding method which makes 3.56 + provides an operating system independent encoding method which makes 3.57 it easy to transfer secured data from one operating environment to 3.58 another. 3.59 3.60 @@ -80,18 +76,38 @@ 3.61 %prep 3.62 %setup -q -c -T 3.63 %{l_prefix}/bin/unzip -q -x %{SOURCE0} 3.64 - cp %{SOURCE bn-sol.s} bn/ 3.65 %patch -p0 3.66 - %{l_shtool} subst -e 's;\r$;;' tools/*.pl tools/*.sh 3.67 - %{l_shtool} subst -e 's;-xO3 *;;g' 's; *-O;;g' makefile 3.68 - %{l_shtool} subst -e 's; *-O[1234];;g' 's; *-O;;g' makefile 3.69 + 3.70 + # repair 'can't open crypt/c-sol.s for reading' 3.71 + cp %{SOURCE c-sol.s} bn/bn-sol.s 3.72 + cp %{SOURCE c-sol.s} crypt/ 3.73 + 3.74 + # remove CR causing build failure 3.75 + %{l_shtool} subst -e 's;\r$;;' tools/*.sh 3.76 + 3.77 + # disable automatic detection 3.78 + %{l_shtool} subst \ 3.79 + -e 's;if \[ .*/sql.h \];if false;g' \ 3.80 + -e 's;if \[ .*/ldap.h \];if false;g' \ 3.81 + tools/ccopts.sh 3.82 + 3.83 + # allow for parallel build 3.84 + %{l_shtool} subst \ 3.85 + -e 's;@\([\.\-]\);@+\1;g' \ 3.86 + -e 's;@\(make\);@+\1;g' \ 3.87 + makefile 3.88 + 3.89 + # special handling for GCC 3.90 + if [ ".`(%{l_cc} -v; %{l_cc} --version) </dev/null 2>&1 | grep -i 'gcc'`" != . ]; then 3.91 + %{l_shtool} subst -e 's;-xO\([0-9] *\);-O\1;g' makefile 3.92 + fi 3.93 3.94 %build 3.95 + %{l_make} babies love cookies 3.96 %{l_make} %{l_mflags -O} \ 3.97 CC="%{l_cc} %{l_cflags -O}" 3.98 3.99 %install 3.100 - rm -rf $RPM_BUILD_ROOT 3.101 %{l_shtool} mkdir -f -p -m 755 \ 3.102 $RPM_BUILD_ROOT%{l_prefix}/include \ 3.103 $RPM_BUILD_ROOT%{l_prefix}/lib \ 3.104 @@ -109,5 +125,4 @@ 3.105 %files -f files 3.106 3.107 %clean 3.108 - rm -rf $RPM_BUILD_ROOT 3.109