security/nss/lib/freebl/mpi/mpcpucache_amd64.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, 80
    32 manMap:
    33 	.quad	.LC0
    34 	.quad	.LC1
    35 	.quad	.LC2
    36 	.quad	.LC3
    37 	.quad	.LC4
    38 	.quad	.LC5
    39 	.quad	.LC6
    40 	.quad	.LC7
    41 	.quad	.LC8
    42 	.quad	.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	16
   562 .globl freebl_cpuid
   563 	.type	freebl_cpuid, @function
   564 freebl_cpuid:
   565 .LFB2:
   566 	movq	%rdx, %r10
   567 	pushq	%rbx
   568 .LCFI0:
   569 	movq	%rcx, %r11
   570 	movq	%rdi, %rax
   571 /APP
   572 	cpuid
   574 /NO_APP
   575 	movq	%rax, (%rsi)
   576 	movq	%rbx, (%r10)
   577 	popq	%rbx
   578 	movq	%rcx, (%r11)
   579 	movq	%rdx, (%r8)
   580 	ret
   581 .LFE2:
   582 	.size	freebl_cpuid, .-freebl_cpuid
   583 	.align	16
   584 	.type	getIntelCacheEntryLineSize, @function
   585 getIntelCacheEntryLineSize:
   586 .LFB3:
   587 	leaq	CacheMap(%rip), %r9
   588 	movq	%rdx, %r10
   589 	movzbl	1(%r9,%rdi,2), %ecx
   590 	movzbl	(%r9,%rdi,2), %r8d
   591 	testb	%cl, %cl
   592 	je	.L2
   593 	cmpl	$6, %r8d
   594 	sete	%dl
   595 	cmpl	$8, %r8d
   596 	sete	%al
   597 	orl	%edx, %eax
   598 	testb	$1, %al
   599 	je	.L4
   600 	movl	$1, (%rsi)
   601 .L9:
   602 	movzbl	%cl, %eax 
   603 	movq	%rax, (%r10)
   604 	ret
   605 	.align	16
   606 .L4:
   607 	movl	(%rsi), %r11d
   608 	cmpl	$1, %r11d
   609 	jg	.L11
   610 .L6:
   611 	cmpl	$2, %r11d
   612 	jle	.L2
   613 	cmpl	$12, %r8d
   614 	sete	%dl
   615 	cmpl	$14, %r8d
   616 	sete	%al
   617 	orl	%edx, %eax
   618 	testb	$1, %al
   619 	je	.L2
   620 	movzbq	1(%r9,%rdi,2), %rax
   621 	movl	$3, (%rsi)
   622 	movq	%rax, (%r10)
   623 	.align	16
   624 .L2:
   625 	rep ; ret
   626 	.align	16
   627 .L11:
   628 	cmpl	$9, %r8d
   629 	sete	%dl
   630 	cmpl	$11, %r8d
   631 	sete	%al
   632 	orl	%edx, %eax
   633 	testb	$1, %al
   634 	je	.L6
   635 	movl	$2, (%rsi)
   636 	jmp	.L9
   637 .LFE3:
   638 	.size	getIntelCacheEntryLineSize, .-getIntelCacheEntryLineSize
   639 	.align	16
   640 	.type	getIntelRegisterCacheLineSize, @function
   641 getIntelRegisterCacheLineSize:
   642 .LFB4:
   643 	pushq	%rbp
   644 .LCFI1:
   645 	movq	%rsp, %rbp
   646 .LCFI2:
   647 	movq	%rbx, -24(%rbp)
   648 .LCFI3:
   649 	movq	%rdi, %rbx
   650 	shrq	$24, %rdi
   651 	movq	%r12, -16(%rbp)
   652 .LCFI4:
   653 	movq	%r13, -8(%rbp)
   654 .LCFI5:
   655 	andl	$255, %edi
   656 	subq	$24, %rsp
   657 .LCFI6:
   658 	movq	%rsi, %r13
   659 	movq	%rdx, %r12
   660 	call	getIntelCacheEntryLineSize
   661 	movq	%rbx, %rdi
   662 	movq	%r12, %rdx
   663 	movq	%r13, %rsi
   664 	shrq	$16, %rdi
   665 	andl	$255, %edi
   666 	call	getIntelCacheEntryLineSize
   667 	movq	%rbx, %rdi
   668 	movq	%r12, %rdx
   669 	movq	%r13, %rsi
   670 	shrq	$8, %rdi
   671 	andl	$255, %ebx
   672 	andl	$255, %edi
   673 	call	getIntelCacheEntryLineSize
   674 	movq	%r12, %rdx
   675 	movq	%r13, %rsi
   676 	movq	%rbx, %rdi
   677 	movq	8(%rsp), %r12
   678 	movq	(%rsp), %rbx
   679 	movq	16(%rsp), %r13
   680 	leave
   681 	jmp	getIntelCacheEntryLineSize
   682 .LFE4:
   683 	.size	getIntelRegisterCacheLineSize, .-getIntelRegisterCacheLineSize
   684 	.align	16
   685 .globl s_mpi_getProcessorLineSize
   686 	.type	s_mpi_getProcessorLineSize, @function
   687 s_mpi_getProcessorLineSize:
   688 .LFB7:
   689 	pushq	%rbp
   690 .LCFI7:
   691 	xorl	%edi, %edi
   692 	movq	%rsp, %rbp
   693 .LCFI8:
   694 	pushq	%r15
   695 .LCFI9:
   696 	leaq	-136(%rbp), %r8
   697 	leaq	-144(%rbp), %rcx
   698 	leaq	-152(%rbp), %rdx
   699 	pushq	%r14
   700 .LCFI10:
   701 	leaq	-160(%rbp), %rsi
   702 	leaq	-128(%rbp), %r14
   703 	pushq	%r13
   704 .LCFI11:
   705 	leaq	manMap(%rip), %r13
   706 	pushq	%r12
   707 .LCFI12:
   708 	movl	$9, %r12d
   709 	pushq	%rbx
   710 .LCFI13:
   711 	xorl	%ebx, %ebx
   712 	subq	$200, %rsp
   713 .LCFI14:
   714 	call	freebl_cpuid
   715 	movq	-152(%rbp), %rax
   716 	movq	-160(%rbp), %r15
   717 	movb	$0, -116(%rbp)
   718 	movl	%eax, -128(%rbp)
   719 	movq	-136(%rbp), %rax
   720 	movl	%eax, -124(%rbp)
   721 	movq	-144(%rbp), %rax
   722 	movl	%eax, -120(%rbp)
   723 	.align	16
   724 .L18:
   725 	movslq	%ebx,%rax
   726 	movq	%r14, %rsi
   727 	movq	(%r13,%rax,8), %rdi
   728 	call	strcmp@PLT
   729 	testl	%eax, %eax
   730 	cmove	%ebx, %r12d
   731 	incl	%ebx
   732 	cmpl	$9, %ebx
   733 	jle	.L18
   734 	testl	%r12d, %r12d
   735 	jne	.L19
   736 	xorl	%eax, %eax
   737 	decl	%r15d
   738 	movl	$4, -204(%rbp)
   739 	movq	$0, -200(%rbp)
   740 	jle	.L21
   741 	leaq	-168(%rbp), %r8
   742 	leaq	-176(%rbp), %rcx
   743 	leaq	-184(%rbp), %rdx
   744 	leaq	-192(%rbp), %rsi
   745 	movl	$2, %edi
   746 	xorl	%ebx, %ebx
   747 	call	freebl_cpuid
   748 	movq	-192(%rbp), %rdi
   749 	movl	%edi, %r12d
   750 	andl	$15, %r12d
   751 	cmpl	%r12d, %ebx
   752 	jl	.L30
   753 	jmp	.L38
   754 	.align	16
   755 .L25:
   756 	movq	-184(%rbp), %rdi
   757 	testl	$2147483648, %edi 
   758 	je	.L40
   759 .L26:
   760 	movq	-176(%rbp), %rdi
   761 	testl	$2147483648, %edi 
   762 	je	.L41
   763 .L27:
   764 	movq	-168(%rbp), %rdi
   765 	testl	$2147483648, %edi 
   766 	je	.L42
   767 .L28:
   768 	incl	%ebx
   769 	cmpl	%r12d, %ebx
   770 	je	.L24
   771 	leaq	-168(%rbp), %r8
   772 	leaq	-176(%rbp), %rcx
   773 	leaq	-184(%rbp), %rdx
   774 	leaq	-192(%rbp), %rsi
   775 	movl	$2, %edi
   776 	call	freebl_cpuid
   777 .L24:
   778 	cmpl	%r12d, %ebx
   779 	jge	.L38
   780 	movq	-192(%rbp), %rdi
   781 .L30:
   782 	testl	$2147483648, %edi 
   783 	jne	.L25
   784 	leaq	-200(%rbp), %rdx
   785 	leaq	-204(%rbp), %rsi
   786 	andl	$4294967040, %edi
   787 	call	getIntelRegisterCacheLineSize
   788 	movq	-184(%rbp), %rdi
   789 	testl	$2147483648, %edi 
   790 	jne	.L26
   791 .L40:
   792 	leaq	-200(%rbp), %rdx
   793 	leaq	-204(%rbp), %rsi
   794 	call	getIntelRegisterCacheLineSize
   795 	movq	-176(%rbp), %rdi
   796 	testl	$2147483648, %edi 
   797 	jne	.L27
   798 .L41:
   799 	leaq	-200(%rbp), %rdx
   800 	leaq	-204(%rbp), %rsi
   801 	call	getIntelRegisterCacheLineSize
   802 	movq	-168(%rbp), %rdi
   803 	testl	$2147483648, %edi 
   804 	jne	.L28
   805 .L42:
   806 	leaq	-200(%rbp), %rdx
   807 	leaq	-204(%rbp), %rsi
   808 	call	getIntelRegisterCacheLineSize
   809 	jmp	.L28
   810 .L38:
   811 	movq	-200(%rbp), %rax
   812 .L21:
   813 	movq	%rax, %rdx
   814 	movl	$32, %eax
   815 	testq	%rdx, %rdx
   816 	cmoveq	%rax, %rdx
   817 	addq	$200, %rsp
   818 	popq	%rbx
   819 	popq	%r12
   820 	popq	%r13
   821 	popq	%r14
   822 	popq	%r15
   823 	leave
   824 	movq	%rdx, %rax
   825 	ret
   826 .L19:
   827 	leaq	-216(%rbp), %r8
   828 	leaq	-224(%rbp), %rcx
   829 	leaq	-232(%rbp), %rdx
   830 	leaq	-240(%rbp), %rsi
   831 	movl	$2147483648, %edi
   832 	xorl	%ebx, %ebx
   833 	call	freebl_cpuid
   834 	movl	$2147483652, %eax
   835 	cmpq	%rax, -240(%rbp)
   836 	ja	.L43
   837 .L32:
   838 	movq	%rbx, %rdx
   839 	movl	$32, %eax
   840 	testq	%rdx, %rdx
   841 	cmoveq	%rax, %rdx
   842 	addq	$200, %rsp
   843 	popq	%rbx
   844 	popq	%r12
   845 	popq	%r13
   846 	popq	%r14
   847 	popq	%r15
   848 	leave
   849 	movq	%rdx, %rax
   850 	ret
   851 .L43:
   852 	leaq	-216(%rbp), %r8
   853 	leaq	-224(%rbp), %rcx
   854 	leaq	-232(%rbp), %rdx
   855 	leaq	-240(%rbp), %rsi
   856 	movl	$2147483653, %edi
   857 	call	freebl_cpuid
   858 	movzbq	-224(%rbp), %rbx
   859 	jmp	.L32
   860 .LFE7:
   861 	.size	s_mpi_getProcessorLineSize, .-s_mpi_getProcessorLineSize

mercurial