tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mpcpucache_amd64.s (10622B)


      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/.
      4 
      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
    573 
    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