security/nss/lib/freebl/mpi/mpcpucache_x86.s

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 / This Source Code Form is subject to the terms of the Mozilla Public
     2 / License, v. 2.0. If a copy of the MPL was not distributed with this
     3 / file, You can obtain one at http://mozilla.org/MPL/2.0/.
     5 	.file	"mpcpucache.c"
     6 /	.section	.rodata.str1.1,"aMS",@progbits,1
     7 	.section	.rodata
     8 .LC0:
     9 	.string	"GenuineIntel"
    10 .LC1:
    11 	.string	"AuthenticAMD"
    12 .LC2:
    13 	.string	"CyrixInstead"
    14 .LC3:
    15 	.string	"CentaurHauls"
    16 .LC4:
    17 	.string	"NexGenDriven"
    18 .LC5:
    19 	.string	"GenuineTMx86"
    20 .LC6:
    21 	.string	"RiseRiseRise"
    22 .LC7:
    23 	.string	"UMC UMC UMC "
    24 .LC8:
    25 	.string	"Sis Sis Sis "
    26 .LC9:
    27 	.string	"Geode by NSC"
    28 	.section	.data.rel.ro.local,"aw",@progbits
    29 	.align 32
    30 	.type	manMap, @object
    31 	.size	manMap, 40
    32 manMap:
    33 	.long	.LC0
    34 	.long	.LC1
    35 	.long	.LC2
    36 	.long	.LC3
    37 	.long	.LC4
    38 	.long	.LC5
    39 	.long	.LC6
    40 	.long	.LC7
    41 	.long	.LC8
    42 	.long	.LC9
    43 	.section	.rodata
    44 	.align 32
    45 	.type	CacheMap, @object
    46 	.size	CacheMap, 512
    47 CacheMap:
    48 	.byte	0
    49 	.byte	0
    50 	.byte	3
    51 	.byte	0
    52 	.byte	3
    53 	.byte	0
    54 	.byte	4
    55 	.byte	0
    56 	.byte	4
    57 	.zero	1
    58 	.byte	1
    59 	.byte	0
    60 	.byte	7
    61 	.byte	32
    62 	.byte	1
    63 	.byte	0
    64 	.byte	7
    65 	.byte	32
    66 	.byte	1
    67 	.byte	0
    68 	.byte	8
    69 	.byte	32
    70 	.byte	1
    71 	.byte	0
    72 	.byte	8
    73 	.byte	32
    74 	.byte	1
    75 	.byte	0
    76 	.byte	1
    77 	.byte	0
    78 	.byte	1
    79 	.byte	0
    80 	.byte	1
    81 	.byte	0
    82 	.byte	1
    83 	.byte	0
    84 	.byte	1
    85 	.byte	0
    86 	.byte	1
    87 	.byte	0
    88 	.byte	1
    89 	.byte	0
    90 	.byte	1
    91 	.byte	0
    92 	.byte	1
    93 	.byte	0
    94 	.byte	1
    95 	.byte	0
    96 	.byte	1
    97 	.byte	0
    98 	.byte	1
    99 	.byte	0
   100 	.byte	1
   101 	.byte	0
   102 	.byte	1
   103 	.byte	0
   104 	.byte	1
   105 	.byte	0
   106 	.byte	1
   107 	.byte	0
   108 	.byte	1
   109 	.byte	0
   110 	.byte	1
   111 	.byte	0
   112 	.byte	1
   113 	.byte	0
   114 	.byte	1
   115 	.byte	0
   116 	.byte	12
   117 	.byte	64
   118 	.byte	12
   119 	.byte	64
   120 	.byte	1
   121 	.byte	0
   122 	.byte	12
   123 	.byte	64
   124 	.byte	1
   125 	.byte	0
   126 	.byte	1
   127 	.byte	0
   128 	.byte	1
   129 	.byte	0
   130 	.byte	12
   131 	.byte	64
   132 	.byte	1
   133 	.byte	0
   134 	.byte	1
   135 	.byte	0
   136 	.byte	8
   137 	.byte	64
   138 	.byte	1
   139 	.byte	0
   140 	.byte	1
   141 	.byte	0
   142 	.byte	1
   143 	.byte	0
   144 	.byte	7
   145 	.byte	64
   146 	.byte	1
   147 	.byte	0
   148 	.byte	1
   149 	.byte	0
   150 	.byte	1
   151 	.byte	0
   152 	.byte	1
   153 	.byte	0
   154 	.byte	1
   155 	.byte	0
   156 	.byte	1
   157 	.byte	0
   158 	.byte	1
   159 	.byte	0
   160 	.byte	1
   161 	.byte	0
   162 	.byte	9
   163 	.byte	64
   164 	.byte	1
   165 	.byte	0
   166 	.byte	9
   167 	.byte	64
   168 	.byte	9
   169 	.byte	64
   170 	.byte	1
   171 	.byte	0
   172 	.byte	1
   173 	.byte	0
   174 	.byte	1
   175 	.byte	0
   176 	.byte	9
   177 	.byte	0
   178 	.byte	9
   179 	.byte	32
   180 	.byte	9
   181 	.byte	32
   182 	.byte	9
   183 	.byte	32
   184 	.byte	9
   185 	.byte	32
   186 	.byte	9
   187 	.byte	32
   188 	.byte	1
   189 	.byte	0
   190 	.byte	1
   191 	.byte	0
   192 	.byte	1
   193 	.byte	0
   194 	.byte	1
   195 	.byte	0
   196 	.byte	1
   197 	.byte	0
   198 	.byte	1
   199 	.byte	0
   200 	.byte	1
   201 	.byte	0
   202 	.byte	1
   203 	.byte	0
   204 	.byte	1
   205 	.byte	0
   206 	.byte	1
   207 	.byte	0
   208 	.byte	3
   209 	.byte	0
   210 	.byte	3
   211 	.byte	0
   212 	.byte	3
   213 	.byte	0
   214 	.byte	1
   215 	.byte	0
   216 	.byte	1
   217 	.byte	0
   218 	.byte	1
   219 	.byte	0
   220 	.byte	1
   221 	.byte	0
   222 	.byte	1
   223 	.byte	0
   224 	.byte	1
   225 	.byte	0
   226 	.byte	1
   227 	.byte	0
   228 	.byte	1
   229 	.byte	0
   230 	.byte	4
   231 	.byte	0
   232 	.byte	4
   233 	.byte	0
   234 	.byte	4
   235 	.byte	0
   236 	.byte	1
   237 	.byte	0
   238 	.byte	1
   239 	.byte	0
   240 	.byte	1
   241 	.byte	0
   242 	.byte	1
   243 	.byte	0
   244 	.byte	1
   245 	.byte	0
   246 	.byte	1
   247 	.byte	0
   248 	.byte	1
   249 	.byte	0
   250 	.byte	1
   251 	.byte	0
   252 	.byte	8
   253 	.byte	64
   254 	.byte	8
   255 	.byte	64
   256 	.byte	8
   257 	.byte	64
   258 	.byte	1
   259 	.byte	0
   260 	.byte	1
   261 	.byte	0
   262 	.byte	1
   263 	.byte	0
   264 	.byte	1
   265 	.byte	0
   266 	.byte	1
   267 	.byte	0
   268 	.byte	1
   269 	.byte	0
   270 	.byte	1
   271 	.byte	0
   272 	.byte	5
   273 	.byte	1
   274 	.byte	5
   275 	.byte	1
   276 	.byte	5
   277 	.byte	1
   278 	.byte	1
   279 	.byte	0
   280 	.byte	1
   281 	.byte	0
   282 	.byte	1
   283 	.byte	0
   284 	.byte	1
   285 	.byte	0
   286 	.byte	1
   287 	.byte	0
   288 	.byte	1
   289 	.byte	0
   290 	.byte	9
   291 	.byte	64
   292 	.byte	9
   293 	.byte	64
   294 	.byte	9
   295 	.byte	64
   296 	.byte	9
   297 	.byte	64
   298 	.byte	1
   299 	.byte	0
   300 	.byte	1
   301 	.byte	0
   302 	.byte	1
   303 	.byte	0
   304 	.byte	1
   305 	.byte	0
   306 	.byte	1
   307 	.byte	0
   308 	.byte	9
   309 	.byte	32
   310 	.byte	9
   311 	.byte	32
   312 	.byte	9
   313 	.byte	32
   314 	.byte	9
   315 	.byte	32
   316 	.byte	9
   317 	.byte	64
   318 	.byte	9
   319 	.byte	64
   320 	.byte	1
   321 	.byte	0
   322 	.byte	1
   323 	.byte	0
   324 	.byte	1
   325 	.byte	0
   326 	.byte	1
   327 	.byte	0
   328 	.byte	1
   329 	.byte	0
   330 	.byte	1
   331 	.byte	0
   332 	.byte	1
   333 	.byte	0
   334 	.byte	1
   335 	.byte	0
   336 	.byte	1
   337 	.byte	0
   338 	.byte	1
   339 	.byte	0
   340 	.byte	1
   341 	.byte	0
   342 	.byte	1
   343 	.byte	0
   344 	.byte	1
   345 	.byte	0
   346 	.byte	1
   347 	.byte	0
   348 	.byte	1
   349 	.byte	0
   350 	.byte	1
   351 	.byte	0
   352 	.byte	1
   353 	.byte	0
   354 	.byte	1
   355 	.byte	0
   356 	.byte	1
   357 	.byte	0
   358 	.byte	1
   359 	.byte	0
   360 	.byte	1
   361 	.byte	0
   362 	.byte	1
   363 	.byte	0
   364 	.byte	1
   365 	.byte	0
   366 	.byte	1
   367 	.byte	0
   368 	.byte	1
   369 	.byte	0
   370 	.byte	1
   371 	.byte	0
   372 	.byte	1
   373 	.byte	0
   374 	.byte	1
   375 	.byte	0
   376 	.byte	1
   377 	.byte	0
   378 	.byte	1
   379 	.byte	0
   380 	.byte	1
   381 	.byte	0
   382 	.byte	1
   383 	.byte	0
   384 	.byte	1
   385 	.byte	0
   386 	.byte	1
   387 	.byte	0
   388 	.byte	1
   389 	.byte	0
   390 	.byte	1
   391 	.byte	0
   392 	.byte	1
   393 	.byte	0
   394 	.byte	1
   395 	.byte	0
   396 	.byte	1
   397 	.byte	0
   398 	.byte	1
   399 	.byte	0
   400 	.byte	3
   401 	.byte	0
   402 	.byte	1
   403 	.byte	0
   404 	.byte	1
   405 	.byte	0
   406 	.byte	4
   407 	.byte	0
   408 	.byte	1
   409 	.byte	0
   410 	.byte	1
   411 	.byte	0
   412 	.byte	1
   413 	.byte	0
   414 	.byte	1
   415 	.byte	0
   416 	.byte	1
   417 	.byte	0
   418 	.byte	1
   419 	.byte	0
   420 	.byte	1
   421 	.byte	0
   422 	.byte	1
   423 	.byte	0
   424 	.byte	1
   425 	.byte	0
   426 	.byte	1
   427 	.byte	0
   428 	.byte	1
   429 	.byte	0
   430 	.byte	1
   431 	.byte	0
   432 	.byte	1
   433 	.byte	0
   434 	.byte	1
   435 	.byte	0
   436 	.byte	1
   437 	.byte	0
   438 	.byte	1
   439 	.byte	0
   440 	.byte	1
   441 	.byte	0
   442 	.byte	1
   443 	.byte	0
   444 	.byte	1
   445 	.byte	0
   446 	.byte	1
   447 	.byte	0
   448 	.byte	1
   449 	.byte	0
   450 	.byte	1
   451 	.byte	0
   452 	.byte	1
   453 	.byte	0
   454 	.byte	1
   455 	.byte	0
   456 	.byte	1
   457 	.byte	0
   458 	.byte	1
   459 	.byte	0
   460 	.byte	1
   461 	.byte	0
   462 	.byte	1
   463 	.byte	0
   464 	.byte	1
   465 	.byte	0
   466 	.byte	1
   467 	.byte	0
   468 	.byte	1
   469 	.byte	0
   470 	.byte	1
   471 	.byte	0
   472 	.byte	1
   473 	.byte	0
   474 	.byte	1
   475 	.byte	0
   476 	.byte	1
   477 	.byte	0
   478 	.byte	1
   479 	.byte	0
   480 	.byte	1
   481 	.byte	0
   482 	.byte	1
   483 	.byte	0
   484 	.byte	1
   485 	.byte	0
   486 	.byte	1
   487 	.byte	0
   488 	.byte	1
   489 	.byte	0
   490 	.byte	1
   491 	.byte	0
   492 	.byte	1
   493 	.byte	0
   494 	.byte	1
   495 	.byte	0
   496 	.byte	1
   497 	.byte	0
   498 	.byte	1
   499 	.byte	0
   500 	.byte	1
   501 	.byte	0
   502 	.byte	1
   503 	.byte	0
   504 	.byte	1
   505 	.byte	0
   506 	.byte	1
   507 	.byte	0
   508 	.byte	1
   509 	.byte	0
   510 	.byte	1
   511 	.byte	0
   512 	.byte	1
   513 	.byte	0
   514 	.byte	1
   515 	.byte	0
   516 	.byte	1
   517 	.byte	0
   518 	.byte	1
   519 	.byte	0
   520 	.byte	1
   521 	.byte	0
   522 	.byte	1
   523 	.byte	0
   524 	.byte	1
   525 	.byte	0
   526 	.byte	1
   527 	.byte	0
   528 	.byte	1
   529 	.byte	0
   530 	.byte	1
   531 	.byte	0
   532 	.byte	1
   533 	.byte	0
   534 	.byte	1
   535 	.byte	0
   536 	.byte	1
   537 	.byte	0
   538 	.byte	1
   539 	.byte	0
   540 	.byte	1
   541 	.byte	0
   542 	.byte	1
   543 	.byte	0
   544 	.byte	1
   545 	.byte	0
   546 	.byte	1
   547 	.byte	0
   548 	.byte	1
   549 	.byte	0
   550 	.byte	1
   551 	.byte	0
   552 	.byte	1
   553 	.byte	0
   554 	.byte	1
   555 	.byte	0
   556 	.byte	1
   557 	.byte	0
   558 	.byte	1
   559 	.byte	0
   560 	.text
   561 	.align	4
   562 .globl freebl_cpuid
   563 	.type	freebl_cpuid, @function
   564 freebl_cpuid:
   565 	pushl	%ebp
   566 	pushl	%edi
   567 	pushl	%esi
   568 	subl	$8, %esp
   569 	movl	%edx, %ebp
   570 /APP
   571 	pushl %ebx
   572 	cpuid
   573 	mov %ebx,%esi
   574 	popl %ebx
   576 /NO_APP
   577 	movl	%eax, (%ebp)
   578 	movl	24(%esp), %eax
   579 	movl	%esi, (%eax)
   580 	movl	28(%esp), %eax
   581 	movl	%ecx, (%eax)
   582 	movl	32(%esp), %eax
   583 	movl	%edx, (%eax)
   584 	addl	$8, %esp
   585 	popl	%esi
   586 	popl	%edi
   587 	popl	%ebp
   588 	ret
   589 	.size	freebl_cpuid, .-freebl_cpuid
   590 	.align	4
   591 	.type	changeFlag, @function
   592 changeFlag:
   593 /APP
   594 	pushfl
   595 	popl %edx
   596 	movl %edx,%ecx
   597 	xorl %eax,%edx
   598 	pushl %edx
   599 	popfl
   600 	pushfl
   601 	popl %edx
   602 	pushl %ecx
   603 	popfl
   605 /NO_APP
   606 	xorl	%ecx, %edx
   607 	movl	%edx, %eax
   608 	ret
   609 	.size	changeFlag, .-changeFlag
   610 	.align	4
   611 	.type	getIntelCacheEntryLineSize, @function
   612 getIntelCacheEntryLineSize:
   613 	pushl	%edi
   614 	pushl	%esi
   615 	pushl	%ebx
   616 	call	.L17
   617 .L17:
   618 	popl	%ebx
   619 	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L17], %ebx
   620 	movzbl	CacheMap@GOTOFF(%ebx,%eax,2), %ecx
   621 	movb	1+CacheMap@GOTOFF(%ebx,%eax,2), %al
   622 	testb	%al, %al
   623 	movl	16(%esp), %edi
   624 	je	.L3
   625 	cmpl	$6, %ecx
   626 	je	.L6
   627 	cmpl	$8, %ecx
   628 	je	.L6
   629 	movl	(%edx), %esi
   630 	cmpl	$1, %esi
   631 	jg	.L15
   632 .L8:
   633 	cmpl	$2, %esi
   634 	jle	.L3
   635 	cmpl	$12, %ecx
   636 	je	.L12
   637 	cmpl	$14, %ecx
   638 	je	.L12
   639 	.align	4
   640 .L3:
   641 	popl	%ebx
   642 	popl	%esi
   643 	popl	%edi
   644 	ret
   645 	.align	4
   646 .L6:
   647 	movzbl	%al, %eax
   648 	movl	$1, (%edx)
   649 	movl	%eax, (%edi)
   650 .L16:
   651 	popl	%ebx
   652 	popl	%esi
   653 	popl	%edi
   654 	ret
   655 	.align	4
   656 .L15:
   657 	cmpl	$9, %ecx
   658 	je	.L9
   659 	cmpl	$11, %ecx
   660 	jne	.L8
   661 .L9:
   662 	movzbl	%al, %eax
   663 	movl	$2, (%edx)
   664 	movl	%eax, (%edi)
   665 	jmp	.L16
   666 .L12:
   667 	movzbl	%al, %eax
   668 	movl	$3, (%edx)
   669 	movl	%eax, (%edi)
   670 	jmp	.L16
   671 	.size	getIntelCacheEntryLineSize, .-getIntelCacheEntryLineSize
   672 	.align	4
   673 	.type	getIntelRegisterCacheLineSize, @function
   674 getIntelRegisterCacheLineSize:
   675 	pushl	%ebp
   676 	movl	%esp, %ebp
   677 	pushl	%edi
   678 	pushl	%esi
   679 	pushl	%ecx
   680 	movl	8(%ebp), %edi
   681 	movl	%eax, %esi
   682 	movl	%edx, -12(%ebp)
   683 	shrl	$24, %eax
   684 	pushl	%edi
   685 	call	getIntelCacheEntryLineSize
   686 	movl	%esi, %eax
   687 	pushl	%edi
   688 	shrl	$16, %eax
   689 	movl	-12(%ebp), %edx
   690 	andl	$255, %eax
   691 	call	getIntelCacheEntryLineSize
   692 	pushl	%edi
   693 	movl	%esi, %edx
   694 	movzbl	%dh, %eax
   695 	movl	-12(%ebp), %edx
   696 	call	getIntelCacheEntryLineSize
   697 	andl	$255, %esi
   698 	movl	%edi, 8(%ebp)
   699 	movl	-12(%ebp), %edx
   700 	addl	$12, %esp
   701 	leal	-8(%ebp), %esp
   702 	movl	%esi, %eax
   703 	popl	%esi
   704 	popl	%edi
   705 	leave
   706 	jmp	getIntelCacheEntryLineSize
   707 	.size	getIntelRegisterCacheLineSize, .-getIntelRegisterCacheLineSize
   708 	.align	4
   709 .globl s_mpi_getProcessorLineSize
   710 	.type	s_mpi_getProcessorLineSize, @function
   711 s_mpi_getProcessorLineSize:
   712 	pushl	%ebp
   713 	movl	%esp, %ebp
   714 	pushl	%edi
   715 	pushl	%esi
   716 	pushl	%ebx
   717 	subl	$188, %esp
   718 	call	.L52
   719 .L52:
   720 	popl	%ebx
   721 	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L52], %ebx
   722 	movl	$9, -168(%ebp)
   723 	movl	$262144, %eax
   724 	call	changeFlag
   725 	xorl	%edx, %edx
   726 	testl	%eax, %eax
   727 	jne	.L50
   728 .L19:
   729 	leal	-12(%ebp), %esp
   730 	popl	%ebx
   731 	popl	%esi
   732 	movl	%edx, %eax
   733 	popl	%edi
   734 	leave
   735 	ret
   736 	.align	4
   737 .L50:
   738 	movl	$2097152, %eax
   739 	call	changeFlag
   740 	testl	%eax, %eax
   741 	movl	$32, %edx
   742 	je	.L19
   743 	leal	-108(%ebp), %eax
   744 	pushl	%eax
   745 	leal	-112(%ebp), %eax
   746 	pushl	%eax
   747 	leal	-116(%ebp), %eax
   748 	pushl	%eax
   749 	leal	-120(%ebp), %edx
   750 	xorl	%eax, %eax
   751 	call	freebl_cpuid
   752 	movl	-120(%ebp), %eax
   753 	movl	%eax, -164(%ebp)
   754 	movl	-116(%ebp), %eax
   755 	movl	%eax, -104(%ebp)
   756 	movl	-108(%ebp), %eax
   757 	movl	%eax, -100(%ebp)
   758 	movl	-112(%ebp), %eax
   759 	movl	%eax, -96(%ebp)
   760 	movb	$0, -92(%ebp)
   761 	xorl	%esi, %esi
   762 	addl	$12, %esp
   763 	leal	-104(%ebp), %edi
   764 	.align	4
   765 .L28:
   766 	subl	$8, %esp
   767 	pushl	%edi
   768 	pushl	manMap@GOTOFF(%ebx,%esi,4)
   769 	call	strcmp@PLT
   770 	addl	$16, %esp
   771 	testl	%eax, %eax
   772 	jne	.L26
   773 	movl	%esi, -168(%ebp)
   774 .L26:
   775 	incl	%esi
   776 	cmpl	$9, %esi
   777 	jle	.L28
   778 	movl	-168(%ebp), %eax
   779 	testl	%eax, %eax
   780 	jne	.L29
   781 	xorl	%eax, %eax
   782 	cmpl	$1, -164(%ebp)
   783 	movl	$4, -144(%ebp)
   784 	movl	$0, -140(%ebp)
   785 	jle	.L41
   786 	leal	-124(%ebp), %edx
   787 	movl	%edx, -188(%ebp)
   788 	leal	-128(%ebp), %eax
   789 	pushl	%edx
   790 	movl	%eax, -184(%ebp)
   791 	leal	-132(%ebp), %edx
   792 	pushl	%eax
   793 	movl	%edx, -180(%ebp)
   794 	movl	$2, %eax
   795 	pushl	%edx
   796 	leal	-136(%ebp), %edx
   797 	call	freebl_cpuid
   798 	movl	-136(%ebp), %eax
   799 	movl	%eax, %edi
   800 	andl	$15, %edi
   801 	xorl	%esi, %esi
   802 	addl	$12, %esp
   803 	leal	-140(%ebp), %edx
   804 	cmpl	%edi, %esi
   805 	movl	%edx, -176(%ebp)
   806 	jl	.L40
   807 	jmp	.L48
   808 	.align	4
   809 .L49:
   810 	movl	-136(%ebp), %eax
   811 .L40:
   812 	testl	%eax, %eax
   813 	js	.L35
   814 	xorb	%al, %al
   815 	pushl	-176(%ebp)
   816 	leal	-144(%ebp), %edx
   817 	call	getIntelRegisterCacheLineSize
   818 	popl	%eax
   819 .L35:
   820 	movl	-132(%ebp), %eax
   821 	testl	%eax, %eax
   822 	js	.L36
   823 	pushl	-176(%ebp)
   824 	leal	-144(%ebp), %edx
   825 	call	getIntelRegisterCacheLineSize
   826 	popl	%eax
   827 .L36:
   828 	movl	-128(%ebp), %eax
   829 	testl	%eax, %eax
   830 	js	.L37
   831 	pushl	-176(%ebp)
   832 	leal	-144(%ebp), %edx
   833 	call	getIntelRegisterCacheLineSize
   834 	popl	%eax
   835 .L37:
   836 	movl	-124(%ebp), %eax
   837 	testl	%eax, %eax
   838 	js	.L38
   839 	pushl	-176(%ebp)
   840 	leal	-144(%ebp), %edx
   841 	call	getIntelRegisterCacheLineSize
   842 	popl	%eax
   843 .L38:
   844 	incl	%esi
   845 	cmpl	%edi, %esi
   846 	je	.L34
   847 	pushl	-188(%ebp)
   848 	pushl	-184(%ebp)
   849 	pushl	-180(%ebp)
   850 	leal	-136(%ebp), %edx
   851 	movl	$2, %eax
   852 	call	freebl_cpuid
   853 	addl	$12, %esp
   854 .L34:
   855 	cmpl	%edi, %esi
   856 	jl	.L49
   857 .L48:
   858 	movl	-140(%ebp), %eax
   859 .L41:
   860 	testl	%eax, %eax
   861 	jne	.L44
   862 	movb	$32, %al
   863 .L44:
   864 	leal	-12(%ebp), %esp
   865 	popl	%ebx
   866 	popl	%esi
   867 	movl	%eax, %edx
   868 	movl	%edx, %eax
   869 	popl	%edi
   870 	leave
   871 	ret
   872 .L29:
   873 	leal	-148(%ebp), %eax
   874 	movl	%eax, -192(%ebp)
   875 	movl	$0, -172(%ebp)
   876 	leal	-152(%ebp), %edi
   877 	pushl	%eax
   878 	pushl	%edi
   879 	leal	-156(%ebp), %esi
   880 	pushl	%esi
   881 	leal	-160(%ebp), %edx
   882 	movl	$-2147483648, %eax
   883 	call	freebl_cpuid
   884 	addl	$12, %esp
   885 	cmpl	$-2147483644, -160(%ebp)
   886 	ja	.L51
   887 .L42:
   888 	movl	-172(%ebp), %eax
   889 	jmp	.L41
   890 .L51:
   891 	pushl	-192(%ebp)
   892 	pushl	%edi
   893 	pushl	%esi
   894 	leal	-160(%ebp), %edx
   895 	movl	$-2147483643, %eax
   896 	call	freebl_cpuid
   897 	movzbl	-152(%ebp), %edx
   898 	addl	$12, %esp
   899 	movl	%edx, -172(%ebp)
   900 	jmp	.L42
   901 	.size	s_mpi_getProcessorLineSize, .-s_mpi_getProcessorLineSize

mercurial