1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/lib/freebl/mpi/mpcpucache_x86.s Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,901 @@ 1.4 +/ This Source Code Form is subject to the terms of the Mozilla Public 1.5 +/ License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 +/ file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.7 + 1.8 + .file "mpcpucache.c" 1.9 +/ .section .rodata.str1.1,"aMS",@progbits,1 1.10 + .section .rodata 1.11 +.LC0: 1.12 + .string "GenuineIntel" 1.13 +.LC1: 1.14 + .string "AuthenticAMD" 1.15 +.LC2: 1.16 + .string "CyrixInstead" 1.17 +.LC3: 1.18 + .string "CentaurHauls" 1.19 +.LC4: 1.20 + .string "NexGenDriven" 1.21 +.LC5: 1.22 + .string "GenuineTMx86" 1.23 +.LC6: 1.24 + .string "RiseRiseRise" 1.25 +.LC7: 1.26 + .string "UMC UMC UMC " 1.27 +.LC8: 1.28 + .string "Sis Sis Sis " 1.29 +.LC9: 1.30 + .string "Geode by NSC" 1.31 + .section .data.rel.ro.local,"aw",@progbits 1.32 + .align 32 1.33 + .type manMap, @object 1.34 + .size manMap, 40 1.35 +manMap: 1.36 + .long .LC0 1.37 + .long .LC1 1.38 + .long .LC2 1.39 + .long .LC3 1.40 + .long .LC4 1.41 + .long .LC5 1.42 + .long .LC6 1.43 + .long .LC7 1.44 + .long .LC8 1.45 + .long .LC9 1.46 + .section .rodata 1.47 + .align 32 1.48 + .type CacheMap, @object 1.49 + .size CacheMap, 512 1.50 +CacheMap: 1.51 + .byte 0 1.52 + .byte 0 1.53 + .byte 3 1.54 + .byte 0 1.55 + .byte 3 1.56 + .byte 0 1.57 + .byte 4 1.58 + .byte 0 1.59 + .byte 4 1.60 + .zero 1 1.61 + .byte 1 1.62 + .byte 0 1.63 + .byte 7 1.64 + .byte 32 1.65 + .byte 1 1.66 + .byte 0 1.67 + .byte 7 1.68 + .byte 32 1.69 + .byte 1 1.70 + .byte 0 1.71 + .byte 8 1.72 + .byte 32 1.73 + .byte 1 1.74 + .byte 0 1.75 + .byte 8 1.76 + .byte 32 1.77 + .byte 1 1.78 + .byte 0 1.79 + .byte 1 1.80 + .byte 0 1.81 + .byte 1 1.82 + .byte 0 1.83 + .byte 1 1.84 + .byte 0 1.85 + .byte 1 1.86 + .byte 0 1.87 + .byte 1 1.88 + .byte 0 1.89 + .byte 1 1.90 + .byte 0 1.91 + .byte 1 1.92 + .byte 0 1.93 + .byte 1 1.94 + .byte 0 1.95 + .byte 1 1.96 + .byte 0 1.97 + .byte 1 1.98 + .byte 0 1.99 + .byte 1 1.100 + .byte 0 1.101 + .byte 1 1.102 + .byte 0 1.103 + .byte 1 1.104 + .byte 0 1.105 + .byte 1 1.106 + .byte 0 1.107 + .byte 1 1.108 + .byte 0 1.109 + .byte 1 1.110 + .byte 0 1.111 + .byte 1 1.112 + .byte 0 1.113 + .byte 1 1.114 + .byte 0 1.115 + .byte 1 1.116 + .byte 0 1.117 + .byte 1 1.118 + .byte 0 1.119 + .byte 12 1.120 + .byte 64 1.121 + .byte 12 1.122 + .byte 64 1.123 + .byte 1 1.124 + .byte 0 1.125 + .byte 12 1.126 + .byte 64 1.127 + .byte 1 1.128 + .byte 0 1.129 + .byte 1 1.130 + .byte 0 1.131 + .byte 1 1.132 + .byte 0 1.133 + .byte 12 1.134 + .byte 64 1.135 + .byte 1 1.136 + .byte 0 1.137 + .byte 1 1.138 + .byte 0 1.139 + .byte 8 1.140 + .byte 64 1.141 + .byte 1 1.142 + .byte 0 1.143 + .byte 1 1.144 + .byte 0 1.145 + .byte 1 1.146 + .byte 0 1.147 + .byte 7 1.148 + .byte 64 1.149 + .byte 1 1.150 + .byte 0 1.151 + .byte 1 1.152 + .byte 0 1.153 + .byte 1 1.154 + .byte 0 1.155 + .byte 1 1.156 + .byte 0 1.157 + .byte 1 1.158 + .byte 0 1.159 + .byte 1 1.160 + .byte 0 1.161 + .byte 1 1.162 + .byte 0 1.163 + .byte 1 1.164 + .byte 0 1.165 + .byte 9 1.166 + .byte 64 1.167 + .byte 1 1.168 + .byte 0 1.169 + .byte 9 1.170 + .byte 64 1.171 + .byte 9 1.172 + .byte 64 1.173 + .byte 1 1.174 + .byte 0 1.175 + .byte 1 1.176 + .byte 0 1.177 + .byte 1 1.178 + .byte 0 1.179 + .byte 9 1.180 + .byte 0 1.181 + .byte 9 1.182 + .byte 32 1.183 + .byte 9 1.184 + .byte 32 1.185 + .byte 9 1.186 + .byte 32 1.187 + .byte 9 1.188 + .byte 32 1.189 + .byte 9 1.190 + .byte 32 1.191 + .byte 1 1.192 + .byte 0 1.193 + .byte 1 1.194 + .byte 0 1.195 + .byte 1 1.196 + .byte 0 1.197 + .byte 1 1.198 + .byte 0 1.199 + .byte 1 1.200 + .byte 0 1.201 + .byte 1 1.202 + .byte 0 1.203 + .byte 1 1.204 + .byte 0 1.205 + .byte 1 1.206 + .byte 0 1.207 + .byte 1 1.208 + .byte 0 1.209 + .byte 1 1.210 + .byte 0 1.211 + .byte 3 1.212 + .byte 0 1.213 + .byte 3 1.214 + .byte 0 1.215 + .byte 3 1.216 + .byte 0 1.217 + .byte 1 1.218 + .byte 0 1.219 + .byte 1 1.220 + .byte 0 1.221 + .byte 1 1.222 + .byte 0 1.223 + .byte 1 1.224 + .byte 0 1.225 + .byte 1 1.226 + .byte 0 1.227 + .byte 1 1.228 + .byte 0 1.229 + .byte 1 1.230 + .byte 0 1.231 + .byte 1 1.232 + .byte 0 1.233 + .byte 4 1.234 + .byte 0 1.235 + .byte 4 1.236 + .byte 0 1.237 + .byte 4 1.238 + .byte 0 1.239 + .byte 1 1.240 + .byte 0 1.241 + .byte 1 1.242 + .byte 0 1.243 + .byte 1 1.244 + .byte 0 1.245 + .byte 1 1.246 + .byte 0 1.247 + .byte 1 1.248 + .byte 0 1.249 + .byte 1 1.250 + .byte 0 1.251 + .byte 1 1.252 + .byte 0 1.253 + .byte 1 1.254 + .byte 0 1.255 + .byte 8 1.256 + .byte 64 1.257 + .byte 8 1.258 + .byte 64 1.259 + .byte 8 1.260 + .byte 64 1.261 + .byte 1 1.262 + .byte 0 1.263 + .byte 1 1.264 + .byte 0 1.265 + .byte 1 1.266 + .byte 0 1.267 + .byte 1 1.268 + .byte 0 1.269 + .byte 1 1.270 + .byte 0 1.271 + .byte 1 1.272 + .byte 0 1.273 + .byte 1 1.274 + .byte 0 1.275 + .byte 5 1.276 + .byte 1 1.277 + .byte 5 1.278 + .byte 1 1.279 + .byte 5 1.280 + .byte 1 1.281 + .byte 1 1.282 + .byte 0 1.283 + .byte 1 1.284 + .byte 0 1.285 + .byte 1 1.286 + .byte 0 1.287 + .byte 1 1.288 + .byte 0 1.289 + .byte 1 1.290 + .byte 0 1.291 + .byte 1 1.292 + .byte 0 1.293 + .byte 9 1.294 + .byte 64 1.295 + .byte 9 1.296 + .byte 64 1.297 + .byte 9 1.298 + .byte 64 1.299 + .byte 9 1.300 + .byte 64 1.301 + .byte 1 1.302 + .byte 0 1.303 + .byte 1 1.304 + .byte 0 1.305 + .byte 1 1.306 + .byte 0 1.307 + .byte 1 1.308 + .byte 0 1.309 + .byte 1 1.310 + .byte 0 1.311 + .byte 9 1.312 + .byte 32 1.313 + .byte 9 1.314 + .byte 32 1.315 + .byte 9 1.316 + .byte 32 1.317 + .byte 9 1.318 + .byte 32 1.319 + .byte 9 1.320 + .byte 64 1.321 + .byte 9 1.322 + .byte 64 1.323 + .byte 1 1.324 + .byte 0 1.325 + .byte 1 1.326 + .byte 0 1.327 + .byte 1 1.328 + .byte 0 1.329 + .byte 1 1.330 + .byte 0 1.331 + .byte 1 1.332 + .byte 0 1.333 + .byte 1 1.334 + .byte 0 1.335 + .byte 1 1.336 + .byte 0 1.337 + .byte 1 1.338 + .byte 0 1.339 + .byte 1 1.340 + .byte 0 1.341 + .byte 1 1.342 + .byte 0 1.343 + .byte 1 1.344 + .byte 0 1.345 + .byte 1 1.346 + .byte 0 1.347 + .byte 1 1.348 + .byte 0 1.349 + .byte 1 1.350 + .byte 0 1.351 + .byte 1 1.352 + .byte 0 1.353 + .byte 1 1.354 + .byte 0 1.355 + .byte 1 1.356 + .byte 0 1.357 + .byte 1 1.358 + .byte 0 1.359 + .byte 1 1.360 + .byte 0 1.361 + .byte 1 1.362 + .byte 0 1.363 + .byte 1 1.364 + .byte 0 1.365 + .byte 1 1.366 + .byte 0 1.367 + .byte 1 1.368 + .byte 0 1.369 + .byte 1 1.370 + .byte 0 1.371 + .byte 1 1.372 + .byte 0 1.373 + .byte 1 1.374 + .byte 0 1.375 + .byte 1 1.376 + .byte 0 1.377 + .byte 1 1.378 + .byte 0 1.379 + .byte 1 1.380 + .byte 0 1.381 + .byte 1 1.382 + .byte 0 1.383 + .byte 1 1.384 + .byte 0 1.385 + .byte 1 1.386 + .byte 0 1.387 + .byte 1 1.388 + .byte 0 1.389 + .byte 1 1.390 + .byte 0 1.391 + .byte 1 1.392 + .byte 0 1.393 + .byte 1 1.394 + .byte 0 1.395 + .byte 1 1.396 + .byte 0 1.397 + .byte 1 1.398 + .byte 0 1.399 + .byte 1 1.400 + .byte 0 1.401 + .byte 1 1.402 + .byte 0 1.403 + .byte 3 1.404 + .byte 0 1.405 + .byte 1 1.406 + .byte 0 1.407 + .byte 1 1.408 + .byte 0 1.409 + .byte 4 1.410 + .byte 0 1.411 + .byte 1 1.412 + .byte 0 1.413 + .byte 1 1.414 + .byte 0 1.415 + .byte 1 1.416 + .byte 0 1.417 + .byte 1 1.418 + .byte 0 1.419 + .byte 1 1.420 + .byte 0 1.421 + .byte 1 1.422 + .byte 0 1.423 + .byte 1 1.424 + .byte 0 1.425 + .byte 1 1.426 + .byte 0 1.427 + .byte 1 1.428 + .byte 0 1.429 + .byte 1 1.430 + .byte 0 1.431 + .byte 1 1.432 + .byte 0 1.433 + .byte 1 1.434 + .byte 0 1.435 + .byte 1 1.436 + .byte 0 1.437 + .byte 1 1.438 + .byte 0 1.439 + .byte 1 1.440 + .byte 0 1.441 + .byte 1 1.442 + .byte 0 1.443 + .byte 1 1.444 + .byte 0 1.445 + .byte 1 1.446 + .byte 0 1.447 + .byte 1 1.448 + .byte 0 1.449 + .byte 1 1.450 + .byte 0 1.451 + .byte 1 1.452 + .byte 0 1.453 + .byte 1 1.454 + .byte 0 1.455 + .byte 1 1.456 + .byte 0 1.457 + .byte 1 1.458 + .byte 0 1.459 + .byte 1 1.460 + .byte 0 1.461 + .byte 1 1.462 + .byte 0 1.463 + .byte 1 1.464 + .byte 0 1.465 + .byte 1 1.466 + .byte 0 1.467 + .byte 1 1.468 + .byte 0 1.469 + .byte 1 1.470 + .byte 0 1.471 + .byte 1 1.472 + .byte 0 1.473 + .byte 1 1.474 + .byte 0 1.475 + .byte 1 1.476 + .byte 0 1.477 + .byte 1 1.478 + .byte 0 1.479 + .byte 1 1.480 + .byte 0 1.481 + .byte 1 1.482 + .byte 0 1.483 + .byte 1 1.484 + .byte 0 1.485 + .byte 1 1.486 + .byte 0 1.487 + .byte 1 1.488 + .byte 0 1.489 + .byte 1 1.490 + .byte 0 1.491 + .byte 1 1.492 + .byte 0 1.493 + .byte 1 1.494 + .byte 0 1.495 + .byte 1 1.496 + .byte 0 1.497 + .byte 1 1.498 + .byte 0 1.499 + .byte 1 1.500 + .byte 0 1.501 + .byte 1 1.502 + .byte 0 1.503 + .byte 1 1.504 + .byte 0 1.505 + .byte 1 1.506 + .byte 0 1.507 + .byte 1 1.508 + .byte 0 1.509 + .byte 1 1.510 + .byte 0 1.511 + .byte 1 1.512 + .byte 0 1.513 + .byte 1 1.514 + .byte 0 1.515 + .byte 1 1.516 + .byte 0 1.517 + .byte 1 1.518 + .byte 0 1.519 + .byte 1 1.520 + .byte 0 1.521 + .byte 1 1.522 + .byte 0 1.523 + .byte 1 1.524 + .byte 0 1.525 + .byte 1 1.526 + .byte 0 1.527 + .byte 1 1.528 + .byte 0 1.529 + .byte 1 1.530 + .byte 0 1.531 + .byte 1 1.532 + .byte 0 1.533 + .byte 1 1.534 + .byte 0 1.535 + .byte 1 1.536 + .byte 0 1.537 + .byte 1 1.538 + .byte 0 1.539 + .byte 1 1.540 + .byte 0 1.541 + .byte 1 1.542 + .byte 0 1.543 + .byte 1 1.544 + .byte 0 1.545 + .byte 1 1.546 + .byte 0 1.547 + .byte 1 1.548 + .byte 0 1.549 + .byte 1 1.550 + .byte 0 1.551 + .byte 1 1.552 + .byte 0 1.553 + .byte 1 1.554 + .byte 0 1.555 + .byte 1 1.556 + .byte 0 1.557 + .byte 1 1.558 + .byte 0 1.559 + .byte 1 1.560 + .byte 0 1.561 + .byte 1 1.562 + .byte 0 1.563 + .text 1.564 + .align 4 1.565 +.globl freebl_cpuid 1.566 + .type freebl_cpuid, @function 1.567 +freebl_cpuid: 1.568 + pushl %ebp 1.569 + pushl %edi 1.570 + pushl %esi 1.571 + subl $8, %esp 1.572 + movl %edx, %ebp 1.573 +/APP 1.574 + pushl %ebx 1.575 + cpuid 1.576 + mov %ebx,%esi 1.577 + popl %ebx 1.578 + 1.579 +/NO_APP 1.580 + movl %eax, (%ebp) 1.581 + movl 24(%esp), %eax 1.582 + movl %esi, (%eax) 1.583 + movl 28(%esp), %eax 1.584 + movl %ecx, (%eax) 1.585 + movl 32(%esp), %eax 1.586 + movl %edx, (%eax) 1.587 + addl $8, %esp 1.588 + popl %esi 1.589 + popl %edi 1.590 + popl %ebp 1.591 + ret 1.592 + .size freebl_cpuid, .-freebl_cpuid 1.593 + .align 4 1.594 + .type changeFlag, @function 1.595 +changeFlag: 1.596 +/APP 1.597 + pushfl 1.598 + popl %edx 1.599 + movl %edx,%ecx 1.600 + xorl %eax,%edx 1.601 + pushl %edx 1.602 + popfl 1.603 + pushfl 1.604 + popl %edx 1.605 + pushl %ecx 1.606 + popfl 1.607 + 1.608 +/NO_APP 1.609 + xorl %ecx, %edx 1.610 + movl %edx, %eax 1.611 + ret 1.612 + .size changeFlag, .-changeFlag 1.613 + .align 4 1.614 + .type getIntelCacheEntryLineSize, @function 1.615 +getIntelCacheEntryLineSize: 1.616 + pushl %edi 1.617 + pushl %esi 1.618 + pushl %ebx 1.619 + call .L17 1.620 +.L17: 1.621 + popl %ebx 1.622 + addl $_GLOBAL_OFFSET_TABLE_+[.-.L17], %ebx 1.623 + movzbl CacheMap@GOTOFF(%ebx,%eax,2), %ecx 1.624 + movb 1+CacheMap@GOTOFF(%ebx,%eax,2), %al 1.625 + testb %al, %al 1.626 + movl 16(%esp), %edi 1.627 + je .L3 1.628 + cmpl $6, %ecx 1.629 + je .L6 1.630 + cmpl $8, %ecx 1.631 + je .L6 1.632 + movl (%edx), %esi 1.633 + cmpl $1, %esi 1.634 + jg .L15 1.635 +.L8: 1.636 + cmpl $2, %esi 1.637 + jle .L3 1.638 + cmpl $12, %ecx 1.639 + je .L12 1.640 + cmpl $14, %ecx 1.641 + je .L12 1.642 + .align 4 1.643 +.L3: 1.644 + popl %ebx 1.645 + popl %esi 1.646 + popl %edi 1.647 + ret 1.648 + .align 4 1.649 +.L6: 1.650 + movzbl %al, %eax 1.651 + movl $1, (%edx) 1.652 + movl %eax, (%edi) 1.653 +.L16: 1.654 + popl %ebx 1.655 + popl %esi 1.656 + popl %edi 1.657 + ret 1.658 + .align 4 1.659 +.L15: 1.660 + cmpl $9, %ecx 1.661 + je .L9 1.662 + cmpl $11, %ecx 1.663 + jne .L8 1.664 +.L9: 1.665 + movzbl %al, %eax 1.666 + movl $2, (%edx) 1.667 + movl %eax, (%edi) 1.668 + jmp .L16 1.669 +.L12: 1.670 + movzbl %al, %eax 1.671 + movl $3, (%edx) 1.672 + movl %eax, (%edi) 1.673 + jmp .L16 1.674 + .size getIntelCacheEntryLineSize, .-getIntelCacheEntryLineSize 1.675 + .align 4 1.676 + .type getIntelRegisterCacheLineSize, @function 1.677 +getIntelRegisterCacheLineSize: 1.678 + pushl %ebp 1.679 + movl %esp, %ebp 1.680 + pushl %edi 1.681 + pushl %esi 1.682 + pushl %ecx 1.683 + movl 8(%ebp), %edi 1.684 + movl %eax, %esi 1.685 + movl %edx, -12(%ebp) 1.686 + shrl $24, %eax 1.687 + pushl %edi 1.688 + call getIntelCacheEntryLineSize 1.689 + movl %esi, %eax 1.690 + pushl %edi 1.691 + shrl $16, %eax 1.692 + movl -12(%ebp), %edx 1.693 + andl $255, %eax 1.694 + call getIntelCacheEntryLineSize 1.695 + pushl %edi 1.696 + movl %esi, %edx 1.697 + movzbl %dh, %eax 1.698 + movl -12(%ebp), %edx 1.699 + call getIntelCacheEntryLineSize 1.700 + andl $255, %esi 1.701 + movl %edi, 8(%ebp) 1.702 + movl -12(%ebp), %edx 1.703 + addl $12, %esp 1.704 + leal -8(%ebp), %esp 1.705 + movl %esi, %eax 1.706 + popl %esi 1.707 + popl %edi 1.708 + leave 1.709 + jmp getIntelCacheEntryLineSize 1.710 + .size getIntelRegisterCacheLineSize, .-getIntelRegisterCacheLineSize 1.711 + .align 4 1.712 +.globl s_mpi_getProcessorLineSize 1.713 + .type s_mpi_getProcessorLineSize, @function 1.714 +s_mpi_getProcessorLineSize: 1.715 + pushl %ebp 1.716 + movl %esp, %ebp 1.717 + pushl %edi 1.718 + pushl %esi 1.719 + pushl %ebx 1.720 + subl $188, %esp 1.721 + call .L52 1.722 +.L52: 1.723 + popl %ebx 1.724 + addl $_GLOBAL_OFFSET_TABLE_+[.-.L52], %ebx 1.725 + movl $9, -168(%ebp) 1.726 + movl $262144, %eax 1.727 + call changeFlag 1.728 + xorl %edx, %edx 1.729 + testl %eax, %eax 1.730 + jne .L50 1.731 +.L19: 1.732 + leal -12(%ebp), %esp 1.733 + popl %ebx 1.734 + popl %esi 1.735 + movl %edx, %eax 1.736 + popl %edi 1.737 + leave 1.738 + ret 1.739 + .align 4 1.740 +.L50: 1.741 + movl $2097152, %eax 1.742 + call changeFlag 1.743 + testl %eax, %eax 1.744 + movl $32, %edx 1.745 + je .L19 1.746 + leal -108(%ebp), %eax 1.747 + pushl %eax 1.748 + leal -112(%ebp), %eax 1.749 + pushl %eax 1.750 + leal -116(%ebp), %eax 1.751 + pushl %eax 1.752 + leal -120(%ebp), %edx 1.753 + xorl %eax, %eax 1.754 + call freebl_cpuid 1.755 + movl -120(%ebp), %eax 1.756 + movl %eax, -164(%ebp) 1.757 + movl -116(%ebp), %eax 1.758 + movl %eax, -104(%ebp) 1.759 + movl -108(%ebp), %eax 1.760 + movl %eax, -100(%ebp) 1.761 + movl -112(%ebp), %eax 1.762 + movl %eax, -96(%ebp) 1.763 + movb $0, -92(%ebp) 1.764 + xorl %esi, %esi 1.765 + addl $12, %esp 1.766 + leal -104(%ebp), %edi 1.767 + .align 4 1.768 +.L28: 1.769 + subl $8, %esp 1.770 + pushl %edi 1.771 + pushl manMap@GOTOFF(%ebx,%esi,4) 1.772 + call strcmp@PLT 1.773 + addl $16, %esp 1.774 + testl %eax, %eax 1.775 + jne .L26 1.776 + movl %esi, -168(%ebp) 1.777 +.L26: 1.778 + incl %esi 1.779 + cmpl $9, %esi 1.780 + jle .L28 1.781 + movl -168(%ebp), %eax 1.782 + testl %eax, %eax 1.783 + jne .L29 1.784 + xorl %eax, %eax 1.785 + cmpl $1, -164(%ebp) 1.786 + movl $4, -144(%ebp) 1.787 + movl $0, -140(%ebp) 1.788 + jle .L41 1.789 + leal -124(%ebp), %edx 1.790 + movl %edx, -188(%ebp) 1.791 + leal -128(%ebp), %eax 1.792 + pushl %edx 1.793 + movl %eax, -184(%ebp) 1.794 + leal -132(%ebp), %edx 1.795 + pushl %eax 1.796 + movl %edx, -180(%ebp) 1.797 + movl $2, %eax 1.798 + pushl %edx 1.799 + leal -136(%ebp), %edx 1.800 + call freebl_cpuid 1.801 + movl -136(%ebp), %eax 1.802 + movl %eax, %edi 1.803 + andl $15, %edi 1.804 + xorl %esi, %esi 1.805 + addl $12, %esp 1.806 + leal -140(%ebp), %edx 1.807 + cmpl %edi, %esi 1.808 + movl %edx, -176(%ebp) 1.809 + jl .L40 1.810 + jmp .L48 1.811 + .align 4 1.812 +.L49: 1.813 + movl -136(%ebp), %eax 1.814 +.L40: 1.815 + testl %eax, %eax 1.816 + js .L35 1.817 + xorb %al, %al 1.818 + pushl -176(%ebp) 1.819 + leal -144(%ebp), %edx 1.820 + call getIntelRegisterCacheLineSize 1.821 + popl %eax 1.822 +.L35: 1.823 + movl -132(%ebp), %eax 1.824 + testl %eax, %eax 1.825 + js .L36 1.826 + pushl -176(%ebp) 1.827 + leal -144(%ebp), %edx 1.828 + call getIntelRegisterCacheLineSize 1.829 + popl %eax 1.830 +.L36: 1.831 + movl -128(%ebp), %eax 1.832 + testl %eax, %eax 1.833 + js .L37 1.834 + pushl -176(%ebp) 1.835 + leal -144(%ebp), %edx 1.836 + call getIntelRegisterCacheLineSize 1.837 + popl %eax 1.838 +.L37: 1.839 + movl -124(%ebp), %eax 1.840 + testl %eax, %eax 1.841 + js .L38 1.842 + pushl -176(%ebp) 1.843 + leal -144(%ebp), %edx 1.844 + call getIntelRegisterCacheLineSize 1.845 + popl %eax 1.846 +.L38: 1.847 + incl %esi 1.848 + cmpl %edi, %esi 1.849 + je .L34 1.850 + pushl -188(%ebp) 1.851 + pushl -184(%ebp) 1.852 + pushl -180(%ebp) 1.853 + leal -136(%ebp), %edx 1.854 + movl $2, %eax 1.855 + call freebl_cpuid 1.856 + addl $12, %esp 1.857 +.L34: 1.858 + cmpl %edi, %esi 1.859 + jl .L49 1.860 +.L48: 1.861 + movl -140(%ebp), %eax 1.862 +.L41: 1.863 + testl %eax, %eax 1.864 + jne .L44 1.865 + movb $32, %al 1.866 +.L44: 1.867 + leal -12(%ebp), %esp 1.868 + popl %ebx 1.869 + popl %esi 1.870 + movl %eax, %edx 1.871 + movl %edx, %eax 1.872 + popl %edi 1.873 + leave 1.874 + ret 1.875 +.L29: 1.876 + leal -148(%ebp), %eax 1.877 + movl %eax, -192(%ebp) 1.878 + movl $0, -172(%ebp) 1.879 + leal -152(%ebp), %edi 1.880 + pushl %eax 1.881 + pushl %edi 1.882 + leal -156(%ebp), %esi 1.883 + pushl %esi 1.884 + leal -160(%ebp), %edx 1.885 + movl $-2147483648, %eax 1.886 + call freebl_cpuid 1.887 + addl $12, %esp 1.888 + cmpl $-2147483644, -160(%ebp) 1.889 + ja .L51 1.890 +.L42: 1.891 + movl -172(%ebp), %eax 1.892 + jmp .L41 1.893 +.L51: 1.894 + pushl -192(%ebp) 1.895 + pushl %edi 1.896 + pushl %esi 1.897 + leal -160(%ebp), %edx 1.898 + movl $-2147483643, %eax 1.899 + call freebl_cpuid 1.900 + movzbl -152(%ebp), %edx 1.901 + addl $12, %esp 1.902 + movl %edx, -172(%ebp) 1.903 + jmp .L42 1.904 + .size s_mpi_getProcessorLineSize, .-s_mpi_getProcessorLineSize