Path: blob/main/sys/crypto/openssl/i386/x86cpuid.S
39483 views
/* Do not modify. This file is auto-generated from x86cpuid.pl. */1#ifdef PIC2.text3.globl OPENSSL_ia32_cpuid4.type OPENSSL_ia32_cpuid,@function5.align 166OPENSSL_ia32_cpuid:7.L_OPENSSL_ia32_cpuid_begin:8#ifdef __CET__910.byte 243,15,30,25111#endif1213pushl %ebp14pushl %ebx15pushl %esi16pushl %edi17xorl %edx,%edx18pushfl19popl %eax20movl %eax,%ecx21xorl $2097152,%eax22pushl %eax23popfl24pushfl25popl %eax26xorl %eax,%ecx27xorl %eax,%eax28movl 20(%esp),%esi29movl %eax,8(%esi)30btl $21,%ecx31jnc .L000nocpuid32.byte 0x0f,0xa233movl %eax,%edi34xorl %eax,%eax35cmpl $1970169159,%ebx36setne %al37movl %eax,%ebp38cmpl $1231384169,%edx39setne %al40orl %eax,%ebp41cmpl $1818588270,%ecx42setne %al43orl %eax,%ebp44jz .L001intel45cmpl $1752462657,%ebx46setne %al47movl %eax,%esi48cmpl $1769238117,%edx49setne %al50orl %eax,%esi51cmpl $1145913699,%ecx52setne %al53orl %eax,%esi54jnz .L001intel55movl $2147483648,%eax56.byte 0x0f,0xa257cmpl $2147483649,%eax58jb .L001intel59movl %eax,%esi60movl $2147483649,%eax61.byte 0x0f,0xa262orl %ecx,%ebp63andl $2049,%ebp64cmpl $2147483656,%esi65jb .L001intel66movl $2147483656,%eax67.byte 0x0f,0xa268movzbl %cl,%esi69incl %esi70movl $1,%eax71xorl %ecx,%ecx72.byte 0x0f,0xa273btl $28,%edx74jnc .L002generic75shrl $16,%ebx76andl $255,%ebx77cmpl %esi,%ebx78ja .L002generic79andl $4026531839,%edx80jmp .L002generic81.L001intel:82cmpl $4,%edi83movl $-1,%esi84jb .L003nocacheinfo85movl $4,%eax86movl $0,%ecx87.byte 0x0f,0xa288movl %eax,%esi89shrl $14,%esi90andl $4095,%esi91.L003nocacheinfo:92movl $1,%eax93xorl %ecx,%ecx94.byte 0x0f,0xa295andl $3220176895,%edx96cmpl $0,%ebp97jne .L004notintel98orl $1073741824,%edx99andb $15,%ah100cmpb $15,%ah101jne .L004notintel102orl $1048576,%edx103.L004notintel:104btl $28,%edx105jnc .L002generic106andl $4026531839,%edx107cmpl $0,%esi108je .L002generic109orl $268435456,%edx110shrl $16,%ebx111cmpb $1,%bl112ja .L002generic113andl $4026531839,%edx114.L002generic:115andl $2048,%ebp116andl $4294965247,%ecx117movl %edx,%esi118orl %ecx,%ebp119cmpl $7,%edi120movl 20(%esp),%edi121jb .L005no_extended_info122movl $7,%eax123xorl %ecx,%ecx124.byte 0x0f,0xa2125movl %ebx,8(%edi)126movl %ecx,12(%edi)127movl %edx,16(%edi)128cmpl $1,%eax129jb .L005no_extended_info130movl $7,%eax131movl $1,%ecx132.byte 0x0f,0xa2133movl %eax,20(%edi)134movl %edx,24(%edi)135movl %ebx,28(%edi)136movl %ecx,32(%edi)137andl $524288,%edx138cmpl $0,%edx139je .L005no_extended_info140movl $36,%eax141movl $0,%ecx142.byte 0x0f,0xa2143movl %ebx,36(%edi)144.L005no_extended_info:145btl $27,%ebp146jnc .L006clear_avx147xorl %ecx,%ecx148.byte 15,1,208149andl $6,%eax150cmpl $6,%eax151je .L007done152cmpl $2,%eax153je .L006clear_avx154.L008clear_xmm:155andl $4261412861,%ebp156andl $4278190079,%esi157.L006clear_avx:158andl $4026525695,%ebp159andl $4286578687,20(%edi)160andl $4294967263,8(%edi)161.L007done:162movl %esi,%eax163movl %ebp,%edx164.L000nocpuid:165popl %edi166popl %esi167popl %ebx168popl %ebp169ret170.size OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin171.globl OPENSSL_rdtsc172.type OPENSSL_rdtsc,@function173.align 16174OPENSSL_rdtsc:175.L_OPENSSL_rdtsc_begin:176#ifdef __CET__177178.byte 243,15,30,251179#endif180181xorl %eax,%eax182xorl %edx,%edx183call .L009PIC_me_up184.L009PIC_me_up:185popl %ecx186leal OPENSSL_ia32cap_P-.L009PIC_me_up(%ecx),%ecx187btl $4,(%ecx)188jnc .L010notsc189.byte 0x0f,0x31190.L010notsc:191ret192.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin193.globl OPENSSL_instrument_halt194.type OPENSSL_instrument_halt,@function195.align 16196OPENSSL_instrument_halt:197.L_OPENSSL_instrument_halt_begin:198#ifdef __CET__199200.byte 243,15,30,251201#endif202203call .L011PIC_me_up204.L011PIC_me_up:205popl %ecx206leal OPENSSL_ia32cap_P-.L011PIC_me_up(%ecx),%ecx207btl $4,(%ecx)208jnc .L012nohalt209.long 2421723150210andl $3,%eax211jnz .L012nohalt212pushfl213popl %eax214btl $9,%eax215jnc .L012nohalt216.byte 0x0f,0x31217pushl %edx218pushl %eax219hlt220.byte 0x0f,0x31221subl (%esp),%eax222sbbl 4(%esp),%edx223addl $8,%esp224ret225.L012nohalt:226xorl %eax,%eax227xorl %edx,%edx228ret229.size OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin230.globl OPENSSL_far_spin231.type OPENSSL_far_spin,@function232.align 16233OPENSSL_far_spin:234.L_OPENSSL_far_spin_begin:235#ifdef __CET__236237.byte 243,15,30,251238#endif239240pushfl241popl %eax242btl $9,%eax243jnc .L013nospin244movl 4(%esp),%eax245movl 8(%esp),%ecx246.long 2430111262247xorl %eax,%eax248movl (%ecx),%edx249jmp .L014spin250.align 16251.L014spin:252incl %eax253cmpl (%ecx),%edx254je .L014spin255.long 529567888256ret257.L013nospin:258xorl %eax,%eax259xorl %edx,%edx260ret261.size OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin262.globl OPENSSL_wipe_cpu263.type OPENSSL_wipe_cpu,@function264.align 16265OPENSSL_wipe_cpu:266.L_OPENSSL_wipe_cpu_begin:267#ifdef __CET__268269.byte 243,15,30,251270#endif271272xorl %eax,%eax273xorl %edx,%edx274call .L015PIC_me_up275.L015PIC_me_up:276popl %ecx277leal OPENSSL_ia32cap_P-.L015PIC_me_up(%ecx),%ecx278movl (%ecx),%ecx279btl $1,(%ecx)280jnc .L016no_x87281andl $83886080,%ecx282cmpl $83886080,%ecx283jne .L017no_sse2284pxor %xmm0,%xmm0285pxor %xmm1,%xmm1286pxor %xmm2,%xmm2287pxor %xmm3,%xmm3288pxor %xmm4,%xmm4289pxor %xmm5,%xmm5290pxor %xmm6,%xmm6291pxor %xmm7,%xmm7292.L017no_sse2:293.long 4007259865,4007259865,4007259865,4007259865,2430851995294.L016no_x87:295leal 4(%esp),%eax296ret297.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin298.globl OPENSSL_atomic_add299.type OPENSSL_atomic_add,@function300.align 16301OPENSSL_atomic_add:302.L_OPENSSL_atomic_add_begin:303#ifdef __CET__304305.byte 243,15,30,251306#endif307308movl 4(%esp),%edx309movl 8(%esp),%ecx310pushl %ebx311nop312movl (%edx),%eax313.L018spin:314leal (%eax,%ecx,1),%ebx315nop316.long 447811568317jne .L018spin318movl %ebx,%eax319popl %ebx320ret321.size OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin322.globl OPENSSL_cleanse323.type OPENSSL_cleanse,@function324.align 16325OPENSSL_cleanse:326.L_OPENSSL_cleanse_begin:327#ifdef __CET__328329.byte 243,15,30,251330#endif331332movl 4(%esp),%edx333movl 8(%esp),%ecx334xorl %eax,%eax335cmpl $7,%ecx336jae .L019lot337cmpl $0,%ecx338je .L020ret339.L021little:340movb %al,(%edx)341subl $1,%ecx342leal 1(%edx),%edx343jnz .L021little344.L020ret:345ret346.align 16347.L019lot:348testl $3,%edx349jz .L022aligned350movb %al,(%edx)351leal -1(%ecx),%ecx352leal 1(%edx),%edx353jmp .L019lot354.L022aligned:355movl %eax,(%edx)356leal -4(%ecx),%ecx357testl $-4,%ecx358leal 4(%edx),%edx359jnz .L022aligned360cmpl $0,%ecx361jne .L021little362ret363.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin364.globl CRYPTO_memcmp365.type CRYPTO_memcmp,@function366.align 16367CRYPTO_memcmp:368.L_CRYPTO_memcmp_begin:369#ifdef __CET__370371.byte 243,15,30,251372#endif373374pushl %esi375pushl %edi376movl 12(%esp),%esi377movl 16(%esp),%edi378movl 20(%esp),%ecx379xorl %eax,%eax380xorl %edx,%edx381cmpl $0,%ecx382je .L023no_data383.L024loop:384movb (%esi),%dl385leal 1(%esi),%esi386xorb (%edi),%dl387leal 1(%edi),%edi388orb %dl,%al389decl %ecx390jnz .L024loop391negl %eax392shrl $31,%eax393.L023no_data:394popl %edi395popl %esi396ret397.size CRYPTO_memcmp,.-.L_CRYPTO_memcmp_begin398.globl OPENSSL_instrument_bus399.type OPENSSL_instrument_bus,@function400.align 16401OPENSSL_instrument_bus:402.L_OPENSSL_instrument_bus_begin:403#ifdef __CET__404405.byte 243,15,30,251406#endif407408pushl %ebp409pushl %ebx410pushl %esi411pushl %edi412movl $0,%eax413call .L025PIC_me_up414.L025PIC_me_up:415popl %edx416leal OPENSSL_ia32cap_P-.L025PIC_me_up(%edx),%edx417btl $4,(%edx)418jnc .L026nogo419btl $19,(%edx)420jnc .L026nogo421movl 20(%esp),%edi422movl 24(%esp),%ecx423.byte 0x0f,0x31424movl %eax,%esi425movl $0,%ebx426clflush (%edi)427.byte 240428addl %ebx,(%edi)429jmp .L027loop430.align 16431.L027loop:432.byte 0x0f,0x31433movl %eax,%edx434subl %esi,%eax435movl %edx,%esi436movl %eax,%ebx437clflush (%edi)438.byte 240439addl %eax,(%edi)440leal 4(%edi),%edi441subl $1,%ecx442jnz .L027loop443movl 24(%esp),%eax444.L026nogo:445popl %edi446popl %esi447popl %ebx448popl %ebp449ret450.size OPENSSL_instrument_bus,.-.L_OPENSSL_instrument_bus_begin451.globl OPENSSL_instrument_bus2452.type OPENSSL_instrument_bus2,@function453.align 16454OPENSSL_instrument_bus2:455.L_OPENSSL_instrument_bus2_begin:456#ifdef __CET__457458.byte 243,15,30,251459#endif460461pushl %ebp462pushl %ebx463pushl %esi464pushl %edi465movl $0,%eax466call .L028PIC_me_up467.L028PIC_me_up:468popl %edx469leal OPENSSL_ia32cap_P-.L028PIC_me_up(%edx),%edx470btl $4,(%edx)471jnc .L029nogo472btl $19,(%edx)473jnc .L029nogo474movl 20(%esp),%edi475movl 24(%esp),%ecx476movl 28(%esp),%ebp477.byte 0x0f,0x31478movl %eax,%esi479movl $0,%ebx480clflush (%edi)481.byte 240482addl %ebx,(%edi)483.byte 0x0f,0x31484movl %eax,%edx485subl %esi,%eax486movl %edx,%esi487movl %eax,%ebx488jmp .L030loop2489.align 16490.L030loop2:491clflush (%edi)492.byte 240493addl %eax,(%edi)494subl $1,%ebp495jz .L031done2496.byte 0x0f,0x31497movl %eax,%edx498subl %esi,%eax499movl %edx,%esi500cmpl %ebx,%eax501movl %eax,%ebx502movl $0,%edx503setne %dl504subl %edx,%ecx505leal (%edi,%edx,4),%edi506jnz .L030loop2507.L031done2:508movl 24(%esp),%eax509subl %ecx,%eax510.L029nogo:511popl %edi512popl %esi513popl %ebx514popl %ebp515ret516.size OPENSSL_instrument_bus2,.-.L_OPENSSL_instrument_bus2_begin517.globl OPENSSL_ia32_rdrand_bytes518.type OPENSSL_ia32_rdrand_bytes,@function519.align 16520OPENSSL_ia32_rdrand_bytes:521.L_OPENSSL_ia32_rdrand_bytes_begin:522#ifdef __CET__523524.byte 243,15,30,251525#endif526527pushl %edi528pushl %ebx529xorl %eax,%eax530movl 12(%esp),%edi531movl 16(%esp),%ebx532cmpl $0,%ebx533je .L032done534movl $8,%ecx535.L033loop:536.byte 15,199,242537jc .L034break538loop .L033loop539jmp .L032done540.align 16541.L034break:542cmpl $4,%ebx543jb .L035tail544movl %edx,(%edi)545leal 4(%edi),%edi546addl $4,%eax547subl $4,%ebx548jz .L032done549movl $8,%ecx550jmp .L033loop551.align 16552.L035tail:553movb %dl,(%edi)554leal 1(%edi),%edi555incl %eax556shrl $8,%edx557decl %ebx558jnz .L035tail559.L032done:560xorl %edx,%edx561popl %ebx562popl %edi563ret564.size OPENSSL_ia32_rdrand_bytes,.-.L_OPENSSL_ia32_rdrand_bytes_begin565.globl OPENSSL_ia32_rdseed_bytes566.type OPENSSL_ia32_rdseed_bytes,@function567.align 16568OPENSSL_ia32_rdseed_bytes:569.L_OPENSSL_ia32_rdseed_bytes_begin:570#ifdef __CET__571572.byte 243,15,30,251573#endif574575pushl %edi576pushl %ebx577xorl %eax,%eax578movl 12(%esp),%edi579movl 16(%esp),%ebx580cmpl $0,%ebx581je .L036done582movl $8,%ecx583.L037loop:584.byte 15,199,250585jc .L038break586loop .L037loop587jmp .L036done588.align 16589.L038break:590cmpl $4,%ebx591jb .L039tail592movl %edx,(%edi)593leal 4(%edi),%edi594addl $4,%eax595subl $4,%ebx596jz .L036done597movl $8,%ecx598jmp .L037loop599.align 16600.L039tail:601movb %dl,(%edi)602leal 1(%edi),%edi603incl %eax604shrl $8,%edx605decl %ebx606jnz .L039tail607.L036done:608xorl %edx,%edx609popl %ebx610popl %edi611ret612.size OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin613.hidden OPENSSL_cpuid_setup614.hidden OPENSSL_ia32cap_P615.comm OPENSSL_ia32cap_P,40,4616.section .init617call OPENSSL_cpuid_setup618619.section ".note.gnu.property", "a"620.p2align 2621.long 1f - 0f622.long 4f - 1f623.long 56240:625.asciz "GNU"6261:627.p2align 2628.long 0xc0000002629.long 3f - 2f6302:631.long 36323:633.p2align 26344:635#else636.text637.globl OPENSSL_ia32_cpuid638.type OPENSSL_ia32_cpuid,@function639.align 16640OPENSSL_ia32_cpuid:641.L_OPENSSL_ia32_cpuid_begin:642#ifdef __CET__643644.byte 243,15,30,251645#endif646647pushl %ebp648pushl %ebx649pushl %esi650pushl %edi651xorl %edx,%edx652pushfl653popl %eax654movl %eax,%ecx655xorl $2097152,%eax656pushl %eax657popfl658pushfl659popl %eax660xorl %eax,%ecx661xorl %eax,%eax662movl 20(%esp),%esi663movl %eax,8(%esi)664btl $21,%ecx665jnc .L000nocpuid666.byte 0x0f,0xa2667movl %eax,%edi668xorl %eax,%eax669cmpl $1970169159,%ebx670setne %al671movl %eax,%ebp672cmpl $1231384169,%edx673setne %al674orl %eax,%ebp675cmpl $1818588270,%ecx676setne %al677orl %eax,%ebp678jz .L001intel679cmpl $1752462657,%ebx680setne %al681movl %eax,%esi682cmpl $1769238117,%edx683setne %al684orl %eax,%esi685cmpl $1145913699,%ecx686setne %al687orl %eax,%esi688jnz .L001intel689movl $2147483648,%eax690.byte 0x0f,0xa2691cmpl $2147483649,%eax692jb .L001intel693movl %eax,%esi694movl $2147483649,%eax695.byte 0x0f,0xa2696orl %ecx,%ebp697andl $2049,%ebp698cmpl $2147483656,%esi699jb .L001intel700movl $2147483656,%eax701.byte 0x0f,0xa2702movzbl %cl,%esi703incl %esi704movl $1,%eax705xorl %ecx,%ecx706.byte 0x0f,0xa2707btl $28,%edx708jnc .L002generic709shrl $16,%ebx710andl $255,%ebx711cmpl %esi,%ebx712ja .L002generic713andl $4026531839,%edx714jmp .L002generic715.L001intel:716cmpl $4,%edi717movl $-1,%esi718jb .L003nocacheinfo719movl $4,%eax720movl $0,%ecx721.byte 0x0f,0xa2722movl %eax,%esi723shrl $14,%esi724andl $4095,%esi725.L003nocacheinfo:726movl $1,%eax727xorl %ecx,%ecx728.byte 0x0f,0xa2729andl $3220176895,%edx730cmpl $0,%ebp731jne .L004notintel732orl $1073741824,%edx733andb $15,%ah734cmpb $15,%ah735jne .L004notintel736orl $1048576,%edx737.L004notintel:738btl $28,%edx739jnc .L002generic740andl $4026531839,%edx741cmpl $0,%esi742je .L002generic743orl $268435456,%edx744shrl $16,%ebx745cmpb $1,%bl746ja .L002generic747andl $4026531839,%edx748.L002generic:749andl $2048,%ebp750andl $4294965247,%ecx751movl %edx,%esi752orl %ecx,%ebp753cmpl $7,%edi754movl 20(%esp),%edi755jb .L005no_extended_info756movl $7,%eax757xorl %ecx,%ecx758.byte 0x0f,0xa2759movl %ebx,8(%edi)760movl %ecx,12(%edi)761movl %edx,16(%edi)762cmpl $1,%eax763jb .L005no_extended_info764movl $7,%eax765movl $1,%ecx766.byte 0x0f,0xa2767movl %eax,20(%edi)768movl %edx,24(%edi)769movl %ebx,28(%edi)770movl %ecx,32(%edi)771andl $524288,%edx772cmpl $0,%edx773je .L005no_extended_info774movl $36,%eax775movl $0,%ecx776.byte 0x0f,0xa2777movl %ebx,36(%edi)778.L005no_extended_info:779btl $27,%ebp780jnc .L006clear_avx781xorl %ecx,%ecx782.byte 15,1,208783andl $6,%eax784cmpl $6,%eax785je .L007done786cmpl $2,%eax787je .L006clear_avx788.L008clear_xmm:789andl $4261412861,%ebp790andl $4278190079,%esi791.L006clear_avx:792andl $4026525695,%ebp793andl $4286578687,20(%edi)794andl $4294967263,8(%edi)795.L007done:796movl %esi,%eax797movl %ebp,%edx798.L000nocpuid:799popl %edi800popl %esi801popl %ebx802popl %ebp803ret804.size OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin805.globl OPENSSL_rdtsc806.type OPENSSL_rdtsc,@function807.align 16808OPENSSL_rdtsc:809.L_OPENSSL_rdtsc_begin:810#ifdef __CET__811812.byte 243,15,30,251813#endif814815xorl %eax,%eax816xorl %edx,%edx817leal OPENSSL_ia32cap_P,%ecx818btl $4,(%ecx)819jnc .L009notsc820.byte 0x0f,0x31821.L009notsc:822ret823.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin824.globl OPENSSL_instrument_halt825.type OPENSSL_instrument_halt,@function826.align 16827OPENSSL_instrument_halt:828.L_OPENSSL_instrument_halt_begin:829#ifdef __CET__830831.byte 243,15,30,251832#endif833834leal OPENSSL_ia32cap_P,%ecx835btl $4,(%ecx)836jnc .L010nohalt837.long 2421723150838andl $3,%eax839jnz .L010nohalt840pushfl841popl %eax842btl $9,%eax843jnc .L010nohalt844.byte 0x0f,0x31845pushl %edx846pushl %eax847hlt848.byte 0x0f,0x31849subl (%esp),%eax850sbbl 4(%esp),%edx851addl $8,%esp852ret853.L010nohalt:854xorl %eax,%eax855xorl %edx,%edx856ret857.size OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin858.globl OPENSSL_far_spin859.type OPENSSL_far_spin,@function860.align 16861OPENSSL_far_spin:862.L_OPENSSL_far_spin_begin:863#ifdef __CET__864865.byte 243,15,30,251866#endif867868pushfl869popl %eax870btl $9,%eax871jnc .L011nospin872movl 4(%esp),%eax873movl 8(%esp),%ecx874.long 2430111262875xorl %eax,%eax876movl (%ecx),%edx877jmp .L012spin878.align 16879.L012spin:880incl %eax881cmpl (%ecx),%edx882je .L012spin883.long 529567888884ret885.L011nospin:886xorl %eax,%eax887xorl %edx,%edx888ret889.size OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin890.globl OPENSSL_wipe_cpu891.type OPENSSL_wipe_cpu,@function892.align 16893OPENSSL_wipe_cpu:894.L_OPENSSL_wipe_cpu_begin:895#ifdef __CET__896897.byte 243,15,30,251898#endif899900xorl %eax,%eax901xorl %edx,%edx902leal OPENSSL_ia32cap_P,%ecx903movl (%ecx),%ecx904btl $1,(%ecx)905jnc .L013no_x87906andl $83886080,%ecx907cmpl $83886080,%ecx908jne .L014no_sse2909pxor %xmm0,%xmm0910pxor %xmm1,%xmm1911pxor %xmm2,%xmm2912pxor %xmm3,%xmm3913pxor %xmm4,%xmm4914pxor %xmm5,%xmm5915pxor %xmm6,%xmm6916pxor %xmm7,%xmm7917.L014no_sse2:918.long 4007259865,4007259865,4007259865,4007259865,2430851995919.L013no_x87:920leal 4(%esp),%eax921ret922.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin923.globl OPENSSL_atomic_add924.type OPENSSL_atomic_add,@function925.align 16926OPENSSL_atomic_add:927.L_OPENSSL_atomic_add_begin:928#ifdef __CET__929930.byte 243,15,30,251931#endif932933movl 4(%esp),%edx934movl 8(%esp),%ecx935pushl %ebx936nop937movl (%edx),%eax938.L015spin:939leal (%eax,%ecx,1),%ebx940nop941.long 447811568942jne .L015spin943movl %ebx,%eax944popl %ebx945ret946.size OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin947.globl OPENSSL_cleanse948.type OPENSSL_cleanse,@function949.align 16950OPENSSL_cleanse:951.L_OPENSSL_cleanse_begin:952#ifdef __CET__953954.byte 243,15,30,251955#endif956957movl 4(%esp),%edx958movl 8(%esp),%ecx959xorl %eax,%eax960cmpl $7,%ecx961jae .L016lot962cmpl $0,%ecx963je .L017ret964.L018little:965movb %al,(%edx)966subl $1,%ecx967leal 1(%edx),%edx968jnz .L018little969.L017ret:970ret971.align 16972.L016lot:973testl $3,%edx974jz .L019aligned975movb %al,(%edx)976leal -1(%ecx),%ecx977leal 1(%edx),%edx978jmp .L016lot979.L019aligned:980movl %eax,(%edx)981leal -4(%ecx),%ecx982testl $-4,%ecx983leal 4(%edx),%edx984jnz .L019aligned985cmpl $0,%ecx986jne .L018little987ret988.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin989.globl CRYPTO_memcmp990.type CRYPTO_memcmp,@function991.align 16992CRYPTO_memcmp:993.L_CRYPTO_memcmp_begin:994#ifdef __CET__995996.byte 243,15,30,251997#endif998999pushl %esi1000pushl %edi1001movl 12(%esp),%esi1002movl 16(%esp),%edi1003movl 20(%esp),%ecx1004xorl %eax,%eax1005xorl %edx,%edx1006cmpl $0,%ecx1007je .L020no_data1008.L021loop:1009movb (%esi),%dl1010leal 1(%esi),%esi1011xorb (%edi),%dl1012leal 1(%edi),%edi1013orb %dl,%al1014decl %ecx1015jnz .L021loop1016negl %eax1017shrl $31,%eax1018.L020no_data:1019popl %edi1020popl %esi1021ret1022.size CRYPTO_memcmp,.-.L_CRYPTO_memcmp_begin1023.globl OPENSSL_instrument_bus1024.type OPENSSL_instrument_bus,@function1025.align 161026OPENSSL_instrument_bus:1027.L_OPENSSL_instrument_bus_begin:1028#ifdef __CET__10291030.byte 243,15,30,2511031#endif10321033pushl %ebp1034pushl %ebx1035pushl %esi1036pushl %edi1037movl $0,%eax1038leal OPENSSL_ia32cap_P,%edx1039btl $4,(%edx)1040jnc .L022nogo1041btl $19,(%edx)1042jnc .L022nogo1043movl 20(%esp),%edi1044movl 24(%esp),%ecx1045.byte 0x0f,0x311046movl %eax,%esi1047movl $0,%ebx1048clflush (%edi)1049.byte 2401050addl %ebx,(%edi)1051jmp .L023loop1052.align 161053.L023loop:1054.byte 0x0f,0x311055movl %eax,%edx1056subl %esi,%eax1057movl %edx,%esi1058movl %eax,%ebx1059clflush (%edi)1060.byte 2401061addl %eax,(%edi)1062leal 4(%edi),%edi1063subl $1,%ecx1064jnz .L023loop1065movl 24(%esp),%eax1066.L022nogo:1067popl %edi1068popl %esi1069popl %ebx1070popl %ebp1071ret1072.size OPENSSL_instrument_bus,.-.L_OPENSSL_instrument_bus_begin1073.globl OPENSSL_instrument_bus21074.type OPENSSL_instrument_bus2,@function1075.align 161076OPENSSL_instrument_bus2:1077.L_OPENSSL_instrument_bus2_begin:1078#ifdef __CET__10791080.byte 243,15,30,2511081#endif10821083pushl %ebp1084pushl %ebx1085pushl %esi1086pushl %edi1087movl $0,%eax1088leal OPENSSL_ia32cap_P,%edx1089btl $4,(%edx)1090jnc .L024nogo1091btl $19,(%edx)1092jnc .L024nogo1093movl 20(%esp),%edi1094movl 24(%esp),%ecx1095movl 28(%esp),%ebp1096.byte 0x0f,0x311097movl %eax,%esi1098movl $0,%ebx1099clflush (%edi)1100.byte 2401101addl %ebx,(%edi)1102.byte 0x0f,0x311103movl %eax,%edx1104subl %esi,%eax1105movl %edx,%esi1106movl %eax,%ebx1107jmp .L025loop21108.align 161109.L025loop2:1110clflush (%edi)1111.byte 2401112addl %eax,(%edi)1113subl $1,%ebp1114jz .L026done21115.byte 0x0f,0x311116movl %eax,%edx1117subl %esi,%eax1118movl %edx,%esi1119cmpl %ebx,%eax1120movl %eax,%ebx1121movl $0,%edx1122setne %dl1123subl %edx,%ecx1124leal (%edi,%edx,4),%edi1125jnz .L025loop21126.L026done2:1127movl 24(%esp),%eax1128subl %ecx,%eax1129.L024nogo:1130popl %edi1131popl %esi1132popl %ebx1133popl %ebp1134ret1135.size OPENSSL_instrument_bus2,.-.L_OPENSSL_instrument_bus2_begin1136.globl OPENSSL_ia32_rdrand_bytes1137.type OPENSSL_ia32_rdrand_bytes,@function1138.align 161139OPENSSL_ia32_rdrand_bytes:1140.L_OPENSSL_ia32_rdrand_bytes_begin:1141#ifdef __CET__11421143.byte 243,15,30,2511144#endif11451146pushl %edi1147pushl %ebx1148xorl %eax,%eax1149movl 12(%esp),%edi1150movl 16(%esp),%ebx1151cmpl $0,%ebx1152je .L027done1153movl $8,%ecx1154.L028loop:1155.byte 15,199,2421156jc .L029break1157loop .L028loop1158jmp .L027done1159.align 161160.L029break:1161cmpl $4,%ebx1162jb .L030tail1163movl %edx,(%edi)1164leal 4(%edi),%edi1165addl $4,%eax1166subl $4,%ebx1167jz .L027done1168movl $8,%ecx1169jmp .L028loop1170.align 161171.L030tail:1172movb %dl,(%edi)1173leal 1(%edi),%edi1174incl %eax1175shrl $8,%edx1176decl %ebx1177jnz .L030tail1178.L027done:1179xorl %edx,%edx1180popl %ebx1181popl %edi1182ret1183.size OPENSSL_ia32_rdrand_bytes,.-.L_OPENSSL_ia32_rdrand_bytes_begin1184.globl OPENSSL_ia32_rdseed_bytes1185.type OPENSSL_ia32_rdseed_bytes,@function1186.align 161187OPENSSL_ia32_rdseed_bytes:1188.L_OPENSSL_ia32_rdseed_bytes_begin:1189#ifdef __CET__11901191.byte 243,15,30,2511192#endif11931194pushl %edi1195pushl %ebx1196xorl %eax,%eax1197movl 12(%esp),%edi1198movl 16(%esp),%ebx1199cmpl $0,%ebx1200je .L031done1201movl $8,%ecx1202.L032loop:1203.byte 15,199,2501204jc .L033break1205loop .L032loop1206jmp .L031done1207.align 161208.L033break:1209cmpl $4,%ebx1210jb .L034tail1211movl %edx,(%edi)1212leal 4(%edi),%edi1213addl $4,%eax1214subl $4,%ebx1215jz .L031done1216movl $8,%ecx1217jmp .L032loop1218.align 161219.L034tail:1220movb %dl,(%edi)1221leal 1(%edi),%edi1222incl %eax1223shrl $8,%edx1224decl %ebx1225jnz .L034tail1226.L031done:1227xorl %edx,%edx1228popl %ebx1229popl %edi1230ret1231.size OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin1232.hidden OPENSSL_cpuid_setup1233.hidden OPENSSL_ia32cap_P1234.comm OPENSSL_ia32cap_P,40,41235.section .init1236call OPENSSL_cpuid_setup12371238.section ".note.gnu.property", "a"1239.p2align 21240.long 1f - 0f1241.long 4f - 1f1242.long 512430:1244.asciz "GNU"12451:1246.p2align 21247.long 0xc00000021248.long 3f - 2f12492:1250.long 312513:1252.p2align 212534:1254#endif125512561257