Path: blob/main/sys/crypto/openssl/i386/x86-gf2m.S
39482 views
/* Do not modify. This file is auto-generated from x86-gf2m.pl. */1#ifdef PIC2.text3.type _mul_1x1_mmx,@function4.align 165_mul_1x1_mmx:6#ifdef __CET__78.byte 243,15,30,2519#endif1011subl $36,%esp12movl %eax,%ecx13leal (%eax,%eax,1),%edx14andl $1073741823,%ecx15leal (%edx,%edx,1),%ebp16movl $0,(%esp)17andl $2147483647,%edx18movd %eax,%mm219movd %ebx,%mm320movl %ecx,4(%esp)21xorl %edx,%ecx22pxor %mm5,%mm523pxor %mm4,%mm424movl %edx,8(%esp)25xorl %ebp,%edx26movl %ecx,12(%esp)27pcmpgtd %mm2,%mm528paddd %mm2,%mm229xorl %edx,%ecx30movl %ebp,16(%esp)31xorl %edx,%ebp32pand %mm3,%mm533pcmpgtd %mm2,%mm434movl %ecx,20(%esp)35xorl %ecx,%ebp36psllq $31,%mm537pand %mm3,%mm438movl %edx,24(%esp)39movl $7,%esi40movl %ebp,28(%esp)41movl %esi,%ebp42andl %ebx,%esi43shrl $3,%ebx44movl %ebp,%edi45psllq $30,%mm446andl %ebx,%edi47shrl $3,%ebx48movd (%esp,%esi,4),%mm049movl %ebp,%esi50andl %ebx,%esi51shrl $3,%ebx52movd (%esp,%edi,4),%mm253movl %ebp,%edi54psllq $3,%mm255andl %ebx,%edi56shrl $3,%ebx57pxor %mm2,%mm058movd (%esp,%esi,4),%mm159movl %ebp,%esi60psllq $6,%mm161andl %ebx,%esi62shrl $3,%ebx63pxor %mm1,%mm064movd (%esp,%edi,4),%mm265movl %ebp,%edi66psllq $9,%mm267andl %ebx,%edi68shrl $3,%ebx69pxor %mm2,%mm070movd (%esp,%esi,4),%mm171movl %ebp,%esi72psllq $12,%mm173andl %ebx,%esi74shrl $3,%ebx75pxor %mm1,%mm076movd (%esp,%edi,4),%mm277movl %ebp,%edi78psllq $15,%mm279andl %ebx,%edi80shrl $3,%ebx81pxor %mm2,%mm082movd (%esp,%esi,4),%mm183movl %ebp,%esi84psllq $18,%mm185andl %ebx,%esi86shrl $3,%ebx87pxor %mm1,%mm088movd (%esp,%edi,4),%mm289movl %ebp,%edi90psllq $21,%mm291andl %ebx,%edi92shrl $3,%ebx93pxor %mm2,%mm094movd (%esp,%esi,4),%mm195movl %ebp,%esi96psllq $24,%mm197andl %ebx,%esi98shrl $3,%ebx99pxor %mm1,%mm0100movd (%esp,%edi,4),%mm2101pxor %mm4,%mm0102psllq $27,%mm2103pxor %mm2,%mm0104movd (%esp,%esi,4),%mm1105pxor %mm5,%mm0106psllq $30,%mm1107addl $36,%esp108pxor %mm1,%mm0109ret110.size _mul_1x1_mmx,.-_mul_1x1_mmx111.type _mul_1x1_ialu,@function112.align 16113_mul_1x1_ialu:114#ifdef __CET__115116.byte 243,15,30,251117#endif118119subl $36,%esp120movl %eax,%ecx121leal (%eax,%eax,1),%edx122leal (,%eax,4),%ebp123andl $1073741823,%ecx124leal (%eax,%eax,1),%edi125sarl $31,%eax126movl $0,(%esp)127andl $2147483647,%edx128movl %ecx,4(%esp)129xorl %edx,%ecx130movl %edx,8(%esp)131xorl %ebp,%edx132movl %ecx,12(%esp)133xorl %edx,%ecx134movl %ebp,16(%esp)135xorl %edx,%ebp136movl %ecx,20(%esp)137xorl %ecx,%ebp138sarl $31,%edi139andl %ebx,%eax140movl %edx,24(%esp)141andl %ebx,%edi142movl %ebp,28(%esp)143movl %eax,%edx144shll $31,%eax145movl %edi,%ecx146shrl $1,%edx147movl $7,%esi148shll $30,%edi149andl %ebx,%esi150shrl $2,%ecx151xorl %edi,%eax152shrl $3,%ebx153movl $7,%edi154andl %ebx,%edi155shrl $3,%ebx156xorl %ecx,%edx157xorl (%esp,%esi,4),%eax158movl $7,%esi159andl %ebx,%esi160shrl $3,%ebx161movl (%esp,%edi,4),%ebp162movl $7,%edi163movl %ebp,%ecx164shll $3,%ebp165andl %ebx,%edi166shrl $29,%ecx167xorl %ebp,%eax168shrl $3,%ebx169xorl %ecx,%edx170movl (%esp,%esi,4),%ecx171movl $7,%esi172movl %ecx,%ebp173shll $6,%ecx174andl %ebx,%esi175shrl $26,%ebp176xorl %ecx,%eax177shrl $3,%ebx178xorl %ebp,%edx179movl (%esp,%edi,4),%ebp180movl $7,%edi181movl %ebp,%ecx182shll $9,%ebp183andl %ebx,%edi184shrl $23,%ecx185xorl %ebp,%eax186shrl $3,%ebx187xorl %ecx,%edx188movl (%esp,%esi,4),%ecx189movl $7,%esi190movl %ecx,%ebp191shll $12,%ecx192andl %ebx,%esi193shrl $20,%ebp194xorl %ecx,%eax195shrl $3,%ebx196xorl %ebp,%edx197movl (%esp,%edi,4),%ebp198movl $7,%edi199movl %ebp,%ecx200shll $15,%ebp201andl %ebx,%edi202shrl $17,%ecx203xorl %ebp,%eax204shrl $3,%ebx205xorl %ecx,%edx206movl (%esp,%esi,4),%ecx207movl $7,%esi208movl %ecx,%ebp209shll $18,%ecx210andl %ebx,%esi211shrl $14,%ebp212xorl %ecx,%eax213shrl $3,%ebx214xorl %ebp,%edx215movl (%esp,%edi,4),%ebp216movl $7,%edi217movl %ebp,%ecx218shll $21,%ebp219andl %ebx,%edi220shrl $11,%ecx221xorl %ebp,%eax222shrl $3,%ebx223xorl %ecx,%edx224movl (%esp,%esi,4),%ecx225movl $7,%esi226movl %ecx,%ebp227shll $24,%ecx228andl %ebx,%esi229shrl $8,%ebp230xorl %ecx,%eax231shrl $3,%ebx232xorl %ebp,%edx233movl (%esp,%edi,4),%ebp234movl %ebp,%ecx235shll $27,%ebp236movl (%esp,%esi,4),%edi237shrl $5,%ecx238movl %edi,%esi239xorl %ebp,%eax240shll $30,%edi241xorl %ecx,%edx242shrl $2,%esi243xorl %edi,%eax244xorl %esi,%edx245addl $36,%esp246ret247.size _mul_1x1_ialu,.-_mul_1x1_ialu248.globl bn_GF2m_mul_2x2249.type bn_GF2m_mul_2x2,@function250.align 16251bn_GF2m_mul_2x2:252.L_bn_GF2m_mul_2x2_begin:253#ifdef __CET__254255.byte 243,15,30,251256#endif257258call .L000PIC_me_up259.L000PIC_me_up:260popl %edx261leal OPENSSL_ia32cap_P-.L000PIC_me_up(%edx),%edx262movl (%edx),%eax263movl 4(%edx),%edx264testl $8388608,%eax265jz .L001ialu266testl $16777216,%eax267jz .L002mmx268testl $2,%edx269jz .L002mmx270movups 8(%esp),%xmm0271shufps $177,%xmm0,%xmm0272.byte 102,15,58,68,192,1273movl 4(%esp),%eax274movups %xmm0,(%eax)275ret276.align 16277.L002mmx:278pushl %ebp279pushl %ebx280pushl %esi281pushl %edi282movl 24(%esp),%eax283movl 32(%esp),%ebx284call _mul_1x1_mmx285movq %mm0,%mm7286movl 28(%esp),%eax287movl 36(%esp),%ebx288call _mul_1x1_mmx289movq %mm0,%mm6290movl 24(%esp),%eax291movl 32(%esp),%ebx292xorl 28(%esp),%eax293xorl 36(%esp),%ebx294call _mul_1x1_mmx295pxor %mm7,%mm0296movl 20(%esp),%eax297pxor %mm6,%mm0298movq %mm0,%mm2299psllq $32,%mm0300popl %edi301psrlq $32,%mm2302popl %esi303pxor %mm6,%mm0304popl %ebx305pxor %mm7,%mm2306movq %mm0,(%eax)307popl %ebp308movq %mm2,8(%eax)309emms310ret311.align 16312.L001ialu:313pushl %ebp314pushl %ebx315pushl %esi316pushl %edi317subl $20,%esp318movl 44(%esp),%eax319movl 52(%esp),%ebx320call _mul_1x1_ialu321movl %eax,8(%esp)322movl %edx,12(%esp)323movl 48(%esp),%eax324movl 56(%esp),%ebx325call _mul_1x1_ialu326movl %eax,(%esp)327movl %edx,4(%esp)328movl 44(%esp),%eax329movl 52(%esp),%ebx330xorl 48(%esp),%eax331xorl 56(%esp),%ebx332call _mul_1x1_ialu333movl 40(%esp),%ebp334movl (%esp),%ebx335movl 4(%esp),%ecx336movl 8(%esp),%edi337movl 12(%esp),%esi338xorl %edx,%eax339xorl %ecx,%edx340xorl %ebx,%eax341movl %ebx,(%ebp)342xorl %edi,%edx343movl %esi,12(%ebp)344xorl %esi,%eax345addl $20,%esp346xorl %esi,%edx347popl %edi348xorl %edx,%eax349popl %esi350movl %edx,8(%ebp)351popl %ebx352movl %eax,4(%ebp)353popl %ebp354ret355.size bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin356.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105357.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32358.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97359.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103360.byte 62,0361.comm OPENSSL_ia32cap_P,40,4362363.section ".note.gnu.property", "a"364.p2align 2365.long 1f - 0f366.long 4f - 1f367.long 53680:369.asciz "GNU"3701:371.p2align 2372.long 0xc0000002373.long 3f - 2f3742:375.long 33763:377.p2align 23784:379#else380.text381.type _mul_1x1_mmx,@function382.align 16383_mul_1x1_mmx:384#ifdef __CET__385386.byte 243,15,30,251387#endif388389subl $36,%esp390movl %eax,%ecx391leal (%eax,%eax,1),%edx392andl $1073741823,%ecx393leal (%edx,%edx,1),%ebp394movl $0,(%esp)395andl $2147483647,%edx396movd %eax,%mm2397movd %ebx,%mm3398movl %ecx,4(%esp)399xorl %edx,%ecx400pxor %mm5,%mm5401pxor %mm4,%mm4402movl %edx,8(%esp)403xorl %ebp,%edx404movl %ecx,12(%esp)405pcmpgtd %mm2,%mm5406paddd %mm2,%mm2407xorl %edx,%ecx408movl %ebp,16(%esp)409xorl %edx,%ebp410pand %mm3,%mm5411pcmpgtd %mm2,%mm4412movl %ecx,20(%esp)413xorl %ecx,%ebp414psllq $31,%mm5415pand %mm3,%mm4416movl %edx,24(%esp)417movl $7,%esi418movl %ebp,28(%esp)419movl %esi,%ebp420andl %ebx,%esi421shrl $3,%ebx422movl %ebp,%edi423psllq $30,%mm4424andl %ebx,%edi425shrl $3,%ebx426movd (%esp,%esi,4),%mm0427movl %ebp,%esi428andl %ebx,%esi429shrl $3,%ebx430movd (%esp,%edi,4),%mm2431movl %ebp,%edi432psllq $3,%mm2433andl %ebx,%edi434shrl $3,%ebx435pxor %mm2,%mm0436movd (%esp,%esi,4),%mm1437movl %ebp,%esi438psllq $6,%mm1439andl %ebx,%esi440shrl $3,%ebx441pxor %mm1,%mm0442movd (%esp,%edi,4),%mm2443movl %ebp,%edi444psllq $9,%mm2445andl %ebx,%edi446shrl $3,%ebx447pxor %mm2,%mm0448movd (%esp,%esi,4),%mm1449movl %ebp,%esi450psllq $12,%mm1451andl %ebx,%esi452shrl $3,%ebx453pxor %mm1,%mm0454movd (%esp,%edi,4),%mm2455movl %ebp,%edi456psllq $15,%mm2457andl %ebx,%edi458shrl $3,%ebx459pxor %mm2,%mm0460movd (%esp,%esi,4),%mm1461movl %ebp,%esi462psllq $18,%mm1463andl %ebx,%esi464shrl $3,%ebx465pxor %mm1,%mm0466movd (%esp,%edi,4),%mm2467movl %ebp,%edi468psllq $21,%mm2469andl %ebx,%edi470shrl $3,%ebx471pxor %mm2,%mm0472movd (%esp,%esi,4),%mm1473movl %ebp,%esi474psllq $24,%mm1475andl %ebx,%esi476shrl $3,%ebx477pxor %mm1,%mm0478movd (%esp,%edi,4),%mm2479pxor %mm4,%mm0480psllq $27,%mm2481pxor %mm2,%mm0482movd (%esp,%esi,4),%mm1483pxor %mm5,%mm0484psllq $30,%mm1485addl $36,%esp486pxor %mm1,%mm0487ret488.size _mul_1x1_mmx,.-_mul_1x1_mmx489.type _mul_1x1_ialu,@function490.align 16491_mul_1x1_ialu:492#ifdef __CET__493494.byte 243,15,30,251495#endif496497subl $36,%esp498movl %eax,%ecx499leal (%eax,%eax,1),%edx500leal (,%eax,4),%ebp501andl $1073741823,%ecx502leal (%eax,%eax,1),%edi503sarl $31,%eax504movl $0,(%esp)505andl $2147483647,%edx506movl %ecx,4(%esp)507xorl %edx,%ecx508movl %edx,8(%esp)509xorl %ebp,%edx510movl %ecx,12(%esp)511xorl %edx,%ecx512movl %ebp,16(%esp)513xorl %edx,%ebp514movl %ecx,20(%esp)515xorl %ecx,%ebp516sarl $31,%edi517andl %ebx,%eax518movl %edx,24(%esp)519andl %ebx,%edi520movl %ebp,28(%esp)521movl %eax,%edx522shll $31,%eax523movl %edi,%ecx524shrl $1,%edx525movl $7,%esi526shll $30,%edi527andl %ebx,%esi528shrl $2,%ecx529xorl %edi,%eax530shrl $3,%ebx531movl $7,%edi532andl %ebx,%edi533shrl $3,%ebx534xorl %ecx,%edx535xorl (%esp,%esi,4),%eax536movl $7,%esi537andl %ebx,%esi538shrl $3,%ebx539movl (%esp,%edi,4),%ebp540movl $7,%edi541movl %ebp,%ecx542shll $3,%ebp543andl %ebx,%edi544shrl $29,%ecx545xorl %ebp,%eax546shrl $3,%ebx547xorl %ecx,%edx548movl (%esp,%esi,4),%ecx549movl $7,%esi550movl %ecx,%ebp551shll $6,%ecx552andl %ebx,%esi553shrl $26,%ebp554xorl %ecx,%eax555shrl $3,%ebx556xorl %ebp,%edx557movl (%esp,%edi,4),%ebp558movl $7,%edi559movl %ebp,%ecx560shll $9,%ebp561andl %ebx,%edi562shrl $23,%ecx563xorl %ebp,%eax564shrl $3,%ebx565xorl %ecx,%edx566movl (%esp,%esi,4),%ecx567movl $7,%esi568movl %ecx,%ebp569shll $12,%ecx570andl %ebx,%esi571shrl $20,%ebp572xorl %ecx,%eax573shrl $3,%ebx574xorl %ebp,%edx575movl (%esp,%edi,4),%ebp576movl $7,%edi577movl %ebp,%ecx578shll $15,%ebp579andl %ebx,%edi580shrl $17,%ecx581xorl %ebp,%eax582shrl $3,%ebx583xorl %ecx,%edx584movl (%esp,%esi,4),%ecx585movl $7,%esi586movl %ecx,%ebp587shll $18,%ecx588andl %ebx,%esi589shrl $14,%ebp590xorl %ecx,%eax591shrl $3,%ebx592xorl %ebp,%edx593movl (%esp,%edi,4),%ebp594movl $7,%edi595movl %ebp,%ecx596shll $21,%ebp597andl %ebx,%edi598shrl $11,%ecx599xorl %ebp,%eax600shrl $3,%ebx601xorl %ecx,%edx602movl (%esp,%esi,4),%ecx603movl $7,%esi604movl %ecx,%ebp605shll $24,%ecx606andl %ebx,%esi607shrl $8,%ebp608xorl %ecx,%eax609shrl $3,%ebx610xorl %ebp,%edx611movl (%esp,%edi,4),%ebp612movl %ebp,%ecx613shll $27,%ebp614movl (%esp,%esi,4),%edi615shrl $5,%ecx616movl %edi,%esi617xorl %ebp,%eax618shll $30,%edi619xorl %ecx,%edx620shrl $2,%esi621xorl %edi,%eax622xorl %esi,%edx623addl $36,%esp624ret625.size _mul_1x1_ialu,.-_mul_1x1_ialu626.globl bn_GF2m_mul_2x2627.type bn_GF2m_mul_2x2,@function628.align 16629bn_GF2m_mul_2x2:630.L_bn_GF2m_mul_2x2_begin:631#ifdef __CET__632633.byte 243,15,30,251634#endif635636leal OPENSSL_ia32cap_P,%edx637movl (%edx),%eax638movl 4(%edx),%edx639testl $8388608,%eax640jz .L000ialu641testl $16777216,%eax642jz .L001mmx643testl $2,%edx644jz .L001mmx645movups 8(%esp),%xmm0646shufps $177,%xmm0,%xmm0647.byte 102,15,58,68,192,1648movl 4(%esp),%eax649movups %xmm0,(%eax)650ret651.align 16652.L001mmx:653pushl %ebp654pushl %ebx655pushl %esi656pushl %edi657movl 24(%esp),%eax658movl 32(%esp),%ebx659call _mul_1x1_mmx660movq %mm0,%mm7661movl 28(%esp),%eax662movl 36(%esp),%ebx663call _mul_1x1_mmx664movq %mm0,%mm6665movl 24(%esp),%eax666movl 32(%esp),%ebx667xorl 28(%esp),%eax668xorl 36(%esp),%ebx669call _mul_1x1_mmx670pxor %mm7,%mm0671movl 20(%esp),%eax672pxor %mm6,%mm0673movq %mm0,%mm2674psllq $32,%mm0675popl %edi676psrlq $32,%mm2677popl %esi678pxor %mm6,%mm0679popl %ebx680pxor %mm7,%mm2681movq %mm0,(%eax)682popl %ebp683movq %mm2,8(%eax)684emms685ret686.align 16687.L000ialu:688pushl %ebp689pushl %ebx690pushl %esi691pushl %edi692subl $20,%esp693movl 44(%esp),%eax694movl 52(%esp),%ebx695call _mul_1x1_ialu696movl %eax,8(%esp)697movl %edx,12(%esp)698movl 48(%esp),%eax699movl 56(%esp),%ebx700call _mul_1x1_ialu701movl %eax,(%esp)702movl %edx,4(%esp)703movl 44(%esp),%eax704movl 52(%esp),%ebx705xorl 48(%esp),%eax706xorl 56(%esp),%ebx707call _mul_1x1_ialu708movl 40(%esp),%ebp709movl (%esp),%ebx710movl 4(%esp),%ecx711movl 8(%esp),%edi712movl 12(%esp),%esi713xorl %edx,%eax714xorl %ecx,%edx715xorl %ebx,%eax716movl %ebx,(%ebp)717xorl %edi,%edx718movl %esi,12(%ebp)719xorl %esi,%eax720addl $20,%esp721xorl %esi,%edx722popl %edi723xorl %edx,%eax724popl %esi725movl %edx,8(%ebp)726popl %ebx727movl %eax,4(%ebp)728popl %ebp729ret730.size bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin731.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105732.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32733.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97734.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103735.byte 62,0736.comm OPENSSL_ia32cap_P,40,4737738.section ".note.gnu.property", "a"739.p2align 2740.long 1f - 0f741.long 4f - 1f742.long 57430:744.asciz "GNU"7451:746.p2align 2747.long 0xc0000002748.long 3f - 2f7492:750.long 37513:752.p2align 27534:754#endif755756757